]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
OSX Preference Pane Source Import
authorClaudio Bisegni <Claudio.Bisegni@lnf.infn.it>
Fri, 10 Jul 2009 22:18:56 +0000 (00:18 +0200)
committerDerrick Brashear <shadow|account-1000005@unknown>
Thu, 17 Dec 2009 06:33:05 +0000 (22:33 -0800)
Reviewed-on: http://gerrit.openafs.org/http://gerrit.openafs.org/196
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 694c5ca3f400ce88219f60edec75249bf73cc8fc)
Change-Id: I4078bfc6004431c2dd277cbc2a665b4c6cc412a3
Reviewed-on: http://gerrit.openafs.org/937

69 files changed:
src/platform/DARWIN/AFSPreference/AFSCommanderIcon.icns [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSCommanderPref.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSCommanderPref.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSCommander_Prefix.pch [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuExtra-Info.plist [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuExtra.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuExtra.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuExtraView.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSMenuExtraView.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSPropertyManager.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AFSPropertyManager.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/classes.nib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/info.nib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/keyedobjects.nib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/Info.plist [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AuthUtil.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/AuthUtil.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/CellIp.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/CellIp.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/CredentialWindowController.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/CredentialWindowController.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/DBCellElement.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/DBCellElement.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/DialogUtility.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/DialogUtility.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/CredentialPanel.xib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/InfoPlist.strings [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/IpPanel.xib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/Localizable.strings [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/English.lproj/SymLinkEdit.xib [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/FileUtil.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/FileUtil.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/Info.plist [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/InfoController.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/InfoController.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/LynkCreationController.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/LynkCreationController.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Info.plist [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/MacOS/MenuCracker [new file with mode: 0755]
src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Resources/ReadMe.rtf [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/NSString+search.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/NSString+search.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/bisegni.mode1 [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/PListManager.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/PListManager.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/SystemUIPlugin.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/TaskUtil.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/TaskUtil.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/TestLib.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/TokenCredentialController.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/TokenCredentialController.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/ViewUtility.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/ViewUtility.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/afscommlogo.png [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/afshlp.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/afslogo.psd [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/afsltd.m [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/global.h [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/hasToken.png [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/licenza.rtf [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/noToken.png [new file with mode: 0644]
src/platform/DARWIN/AFSPreference/start_afs.sh [new file with mode: 0755]
src/platform/DARWIN/AFSPreference/stop_afs.sh [new file with mode: 0755]

diff --git a/src/platform/DARWIN/AFSPreference/AFSCommanderIcon.icns b/src/platform/DARWIN/AFSPreference/AFSCommanderIcon.icns
new file mode 100644 (file)
index 0000000..b07e484
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/AFSCommanderIcon.icns differ
diff --git a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h
new file mode 100644 (file)
index 0000000..a6e03f2
--- /dev/null
@@ -0,0 +1,145 @@
+//
+//  AFSCommanderPref.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 10/05/07.
+//  Copyright (c) 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <PreferencePanes/PreferencePanes.h>
+#import "AFSPropertyManager.h"
+#import "global.h"
+#import "ViewUtility.h"
+#import "LynkCreationController.h"
+
+// the way to load and unload the menuextra was inspired by MenuMeters developed by Alex Harper
+// Routines to handle adding and remove menu extras in HIServices (from ASM source)
+int CoreMenuExtraGetMenuExtra(CFStringRef identifier, void *menuExtra);
+int CoreMenuExtraAddMenuExtra(CFURLRef path, int position, int whoCares, int whoCares2, int whoCares3, int whoCares4);
+int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
+
+
+
+@interface AFSCommanderPref : NSPreferencePane 
+{
+       //for check system version
+       int prefStartUp;
+       // Main View
+       IBOutlet NSView *afsCommanderView;
+       IBOutlet NSSearchField *textSearchField;
+       IBOutlet NSTextField *afsDefaultCellLabel;
+       IBOutlet NSButton *tokensButton;
+       IBOutlet NSButton *unlogButton;
+       IBOutlet NSButton *aklogCredentialAtLoginTime;
+       IBOutlet NSButton *installKRB5AuthAtLoginButton;
+       IBOutlet NSButton *useAklogCheck;
+       IBOutlet NSTextField *afsVersionLabel;
+       BOOL startAFSAtLogin;
+       IBOutlet NSButton *checkButtonAfsAtBootTime;
+       IBOutlet NSTextField *textFieldDevInfoLabel;
+       
+       //NSString *appID;
+       //id installationPathTextField;
+       id startStopButton;
+       id cellList;
+       //id cellNameTextEdit;
+       id cellIpButton;
+       id addCellButton;
+       id removeCellButton;
+       //id refreshConfigurationButton;
+       id saveConfigurationButton;
+       id labelSaveResult;
+       id tokensTable;
+       id afsMenucheckBox;
+               
+       //cache manager IBOutlet
+       IBOutlet NSTextField *statCacheEntry;
+       IBOutlet NSTextField *dCacheDim;
+       IBOutlet NSTextField *cacheDimension;
+       IBOutlet NSTextField *daemonNumber;
+       IBOutlet NSTextField *afsRootMountPoint;
+       IBOutlet NSTextField *nVolEntry;
+       IBOutlet NSButton *dynRoot;
+       IBOutlet NSButton *afsDB;
+       IBOutlet NSButton *verbose;
+       IBOutlet NSBox *groupsBox;
+       
+       //Configuration sheet
+       id ipConfigurationSheet;
+       id ipConfControllerCommander;
+       
+       //Token sheet
+       id credentialSheet;
+       id credentialCommander; 
+
+       
+       //Info Sheet
+       id infoSheet;
+       id infoController;      
+
+       //lynk creation
+       id lyncCreationSheet;
+       IBOutlet LynkCreationController         *lynkCreationController;
+       
+       //manage link
+       IBOutlet NSButton                                       *checkEnableLink;
+       IBOutlet NSButton                                       *buttonAddLink;
+       IBOutlet NSButton                                       *buttonRemoveLink;
+       bool enableLink;
+       
+       AFSPropertyManager *afsProperty;        //AFS Property managment class
+       NSMutableArray *filteredCellDB;         //Filtered CellServDB
+       NSArray *tokenList;
+       NSTimer *timerForCheckTokensList;
+       NSLock *tokensLock;
+}
+
+- (void) mainViewDidLoad;
+- (void) willUnselect;
+- (void) didSelect;
+- (id) initWithBundle:(NSBundle *)bundle;
+- (void)startTimer;
+- (void)stopTimer;
+//View Action
+- (IBAction) refreshConfiguration:(id) sender;
+- (void) fillCacheParamView;
+- (void) updateCacheParamFromView;
+- (IBAction) showCellIP:(id) sender;
+- (IBAction) addRemoveCell:(id) sender;
+- (IBAction) addLink:(id) sender;
+- (IBAction) removeLink:(id) sender;
+- (IBAction) enableLink:(id) sender;
+- (IBAction) saveConfiguration:(id) sender;
+- (IBAction) saveCacheManagerParam:(id) sender;
+- (IBAction) startStopAfs:(id) sender;
+- (IBAction) info:(id) sender;
+- (IBAction) tableDoubleAction:(id) sender;
+- (IBAction) getNewToken:(id) sender;
+- (IBAction) unlog:(id) sender;
+- (IBAction) afsMenuActivationEvent:(id) sender;
+- (IBAction) aklogSwitchEvent:(id) sender;
+- (IBAction) credentialAtLoginTimeEvent:(id) sender;
+- (IBAction) afsStartupSwitchEvent:(id) sender;
+- (void) credentialAtLoginTimeEventCreationLaunchAgentDir:(NSWindow*)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo;
+- (IBAction) krb5KredentialAtLoginTimeEvent:(id) sender;
+- (IBAction) searchCellTextEvent:(id) sender;
+- (void) clearCellServDBFiltering;
+- (void) filterCellServDB:(NSString*)textToFilter;
+- (DBCellElement*) getCurrentCellInDB;
+- (DBCellElement*) getCellByIDX:(int) idx;
+- (void) modifyCell:(DBCellElement*) cellElement;
+- (void) modifyCellByIDX:(int) idx;
+- (void) showMessage:(NSString*) message;
+- (void) manageButtonState:(int) rowSelected;
+- (void) setAfsStatus;
+- (void) refreshTokens:(NSTimer*)theTimer;
+- (BOOL) isAFSMenuExtraLoaded;
+- (void) addAFSMenuExtra;
+- (void) removeAFSMenuExtra;
+- (void) repairHelperTool;
+- (void) writePreferenceFile;
+- (void) readPreferenceFile;
+- (void) mextraChangeActivation:(NSNotification *)notification;
+- (void) refreshGui:(NSNotification *)notification;
+- (void) afsVolumeMountChange:(NSNotification *)notification;
+@end
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m
new file mode 100644 (file)
index 0000000..09b65b0
--- /dev/null
@@ -0,0 +1,1292 @@
+//
+//  AFSCommanderPref.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 10/05/07.
+//  Copyright (c) 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "AFSCommanderPref.h"
+#import "IpConfiguratorCommander.h"
+#import "TokenCredentialController.h"
+#import "InfoController.h"
+#import "TaskUtil.h"
+#import "PListManager.h"
+#import "DialogUtility.h"
+#import "NSString+search.h"
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/fcntl.h>
+#include <sys/errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#import <CoreServices/CoreServices.h>
+
+
+#define ADD_CELL_CONTROL_TAG 1
+#define REMOVE_CELL_CONTROL_TAG 2
+
+#define TABLE_TOKENS_LIST 1
+#define TABLE_CELL_LIST 2
+
+#define TAB_TOKENS 1
+#define TAB_CELL_SERV_DB 2
+#define TAB_CACHE 3
+#define TAB_GROUP 4
+
+//CellServDB table id
+#define CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN  0
+#define CELLSRVDB_TABLE_DFLT_CHECK_COLUMN              1
+#define CELLSRVDB_TABLE_NAME_COLUMN                            2
+#define CELLSRVDB_TABLE_DESCRIPTION_COLUMN             3
+
+@implementation AFSCommanderPref
+
+// -------------------------------------------------------------------------------
+//  initWithBundle:
+// -------------------------------------------------------------------------------
+- (id)initWithBundle:(NSBundle *)bundle
+{
+    if ( ( self = [super initWithBundle:bundle] ) != nil ) {
+        //appID = afsCommanderID;
+               prefStartUp = 1;
+    }
+    return self;
+}
+
+// -------------------------------------------------------------------------------
+//  mainView:
+// -------------------------------------------------------------------------------
+- (NSView *) mainView {
+       if (prefStartUp == 1){
+               SInt32 osxMJVers = 0;
+               SInt32 osxMnVers = 0;
+               if (Gestalt(gestaltSystemVersionMajor, &osxMJVers) == noErr && Gestalt(gestaltSystemVersionMinor, &osxMnVers) == noErr) {
+                       if (osxMJVers == 10 && osxMnVers>= 5) {
+                               // we are working on leopard
+                               NSLog(@"Leopard AFSCommander adapting");
+                               [afsCommanderView  setFrameSize:NSMakeSize(668, [afsCommanderView frame].size.height)];
+                prefStartUp = 0;
+                       }
+               }
+       }
+       
+    return afsCommanderView;
+}
+
+// -------------------------------------------------------------------------------
+//  mainViewDidLoad:
+// -------------------------------------------------------------------------------
+- (void) mainViewDidLoad
+{
+       //CellServDB Table
+       [((NSTableView*)cellList) setDelegate:self];
+       [((NSTableView*)cellList) setTarget:self];
+       [((NSTableView*)cellList) setDoubleAction:@selector(tableDoubleAction:)];
+       
+       
+}
+
+// -------------------------------------------------------------------------------
+//  didSelect:
+// -------------------------------------------------------------------------------
+- (void) didSelect
+{
+       // Set Developer info
+       [textFieldDevInfoLabel setStringValue:kDevelopInfo];
+       // creating the lock
+       tokensLock = [[NSLock alloc] init];
+       
+       //Initialization cellservdb and token list
+       filteredCellDB = nil;
+       tokenList = nil;
+       
+       [self readPreferenceFile];
+                       
+       // alloc the afs property mananger
+       afsProperty = [[AFSPropertyManager alloc] init];
+       
+       // register preference pane to detect menuextra killed by user
+       [[NSDistributedNotificationCenter defaultCenter] addObserver:self 
+                                                                                                               selector:@selector(mextraChangeActivation:) 
+                                                                                                                       name:afsCommanderID 
+                                                                                                                 object:kMExtraClosedNotification];
+        
+       [[NSDistributedNotificationCenter defaultCenter] addObserver:self 
+                                                                                                               selector:@selector(refreshGui:) 
+                                                                                                                       name:afsCommanderID 
+                                                                                                                 object:kMenuExtraEventOccured];
+       
+       //Register for mount/unmount afs volume
+       [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
+                                                                                                                  selector:@selector(afsVolumeMountChange:) 
+                                                                                                                          name:NSWorkspaceDidMountNotification object:nil];
+       
+       [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
+                                                                                                                  selector:@selector(afsVolumeMountChange:) 
+                                                                                                                          name:NSWorkspaceDidUnmountNotification object:nil];
+       
+       // set self as table data source
+       [((NSTableView*)cellList) setDataSource:self];
+       [((NSTableView*)tokensTable) setDataSource:self];
+       
+       //check the afs state
+       [self setAfsStatus];
+       
+       // check the MenuExtra state
+       [self mextraChangeActivation:nil];
+
+       // let show the configuration after prefpane is open
+       [self refreshConfiguration:nil];
+       
+       // refresh the token list
+       //[self refreshTokens:nil];
+       
+       //refresh table to reflect the NSSearchField contained text
+       [self searchCellTextEvent:nil];
+}
+
+// -------------------------------------------------------------------------------
+//  willUnselect:
+// -------------------------------------------------------------------------------
+- (void)willUnselect
+{
+       NSLog(@"willUnselect");
+       // remove self as datasource
+       [((NSTableView*)cellList) setDataSource:nil];
+       [((NSTableView*)tokensTable) setDataSource:nil];
+
+       //release the afs property manager
+       if(afsProperty) [afsProperty release];
+       //release tokens list
+       if(tokenList) [tokenList release];      
+       //Remove the cell temp array
+       if(filteredCellDB) [filteredCellDB release];
+       
+       [self writePreferenceFile];
+       
+       // unregister preference pane to detect menuextra killed by user
+       [[NSDistributedNotificationCenter defaultCenter] removeObserver:self 
+                                                                                                                          name:afsCommanderID 
+                                                                                                                        object:kMExtraClosedNotification];
+       [[NSDistributedNotificationCenter defaultCenter] removeObserver:self 
+                                                                                                                          name:afsCommanderID 
+                                                                                                                        object:kMenuExtraEventOccured];
+       [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self 
+                                                                                                                                 name:NSWorkspaceDidMountNotification object:nil];
+       [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self 
+                                                                                                                                 name:NSWorkspaceDidUnmountNotification object:nil];
+       
+       [self stopTimer];
+       [tokensLock release];
+}
+
+
+// -------------------------------------------------------------------------------
+//  startTimer:
+// -------------------------------------------------------------------------------
+- (void)startTimer{
+       //start the time for check tokens validity
+       if(timerForCheckTokensList) return;
+       timerForCheckTokensList = [NSTimer scheduledTimerWithTimeInterval:TOKENS_REFRESH_TIME_IN_SEC 
+                                                                                                                          target:self 
+                                                                                                                        selector:@selector(refreshTokens:) 
+                                                                                                                        userInfo:nil 
+                                                                                                                         repeats:YES];
+       [timerForCheckTokensList fire]; 
+}
+
+// -------------------------------------------------------------------------------
+//  stopTimer:
+// -------------------------------------------------------------------------------
+- (void)stopTimer{
+       if(!timerForCheckTokensList) return;
+       [timerForCheckTokensList invalidate];   
+       timerForCheckTokensList = nil;
+}
+
+
+// -------------------------------------------------------------------------------
+//  readPreferenceFile:
+// -------------------------------------------------------------------------------
+- (void) readPreferenceFile
+{
+       
+       // read the preference for afs path
+       //NSString *afsSysPath = PREFERENCE_AFS_SYS_PAT_STATIC;/*(NSString*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AFS_SYS_PAT, (CFStringRef)afsCommanderID,  
+                                                                                                                       // kCFPreferencesAnyUser, kCFPreferencesAnyHost);*/
+       /*if(afsSysPath){
+               [((NSTextField*) installationPathTextField ) setStringValue:afsSysPath];
+       }*/
+       
+       // read the preference for aklog use
+       NSNumber *useAklogPrefValue = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_AKLOG, (CFStringRef)afsCommanderID,  
+                                                                                                                                       kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+       if(useAklogPrefValue){
+               [useAklogCheck setState:[useAklogPrefValue intValue]];
+               [aklogCredentialAtLoginTime setEnabled:[useAklogPrefValue intValue]];
+       } else {
+               [useAklogCheck setState:NSOffState];
+               [aklogCredentialAtLoginTime setEnabled:NSOffState];
+               [aklogCredentialAtLoginTime setState:NSOffState];
+               [PListManager installLaunchdFile:NO
+                                                       resourcePath:nil];
+       }
+       
+       //check if krb5 at startup is enable at system level
+       [installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
+       
+       //check if the user has installed and enabled the afs agent
+       [aklogCredentialAtLoginTime setState:[PListManager checkAklogAtLoginTimeLaunchdEnable]];
+       
+       //check for AFS enable at startup
+       NSNumber *afsEnableStartupTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP, 
+                                                                                                                                          (CFStringRef)afsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+       if(afsEnableStartupTime) 
+               startAFSAtLogin = [afsEnableStartupTime boolValue];
+       else 
+               startAFSAtLogin = false;
+       //set the check button state
+       [checkButtonAfsAtBootTime setState:startAFSAtLogin];
+}
+
+// -------------------------------------------------------------------------------
+//  willUnselect:
+// -------------------------------------------------------------------------------
+- (void) writePreferenceFile
+{
+       //Set the preference for afs path
+       /*CFPreferencesSetValue((CFStringRef)PREFERENCE_AFS_SYS_PAT, 
+                                                 (CFStringRef)[((NSTextField*) installationPathTextField ) stringValue], 
+                                                 (CFStringRef)afsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);*/
+       
+       //Set the preference for aklog use
+       CFPreferencesSetValue((CFStringRef)PREFERENCE_USE_AKLOG, 
+                                                 (CFNumberRef)[NSNumber numberWithInt:[useAklogCheck state]], 
+                                                 (CFStringRef)afsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+       
+       
+       // Notify
+       if ([self isAFSMenuExtraLoaded])  [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kPrefChangeNotification];
+       
+       //set AFS enable state at startup
+       CFPreferencesSetValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP, 
+                                                 (CFNumberRef)[NSNumber numberWithBool:startAFSAtLogin], 
+                                                 (CFStringRef)afsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+       
+       CFPreferencesSynchronize((CFStringRef)afsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+       CFPreferencesSynchronize((CFStringRef)afsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+}
+
+// -------------------------------------------------------------------------------
+//  saveConfiguration:
+// -------------------------------------------------------------------------------
+- (IBAction) saveConfiguration:(id) sender
+{
+       @try{
+               
+               //[afsProperty setCellName:[cellNameTextEdit stringValue]];
+               [afsProperty setCellName:[afsProperty getDefaultCellName]];
+               
+               //save configurations
+               [afsProperty saveConfigurationFiles:YES];
+               
+               
+               //Reload all configuration
+               [self refreshConfiguration:nil];
+               
+               //refresh table to reflect the NSSearchField contained text
+               [self searchCellTextEvent:nil];
+               
+               //Show dialog for notifity al saving process ar gone ell
+               [self showMessage:kConfigurationSaved];
+       }@catch(NSException *e){
+               [self showMessage:[e reason]];
+       } @finally {
+               [((NSTableView*)cellList) reloadData];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  saveCacheManagerParam:
+// -------------------------------------------------------------------------------
+- (IBAction) saveCacheManagerParam:(id) sender
+{
+       @try{
+               NSLog(@"Backing up the cache configuration file");
+               //Update the value form view to afs property manager class
+               [self updateCacheParamFromView];
+               [afsProperty saveCacheConfigurationFiles:YES];
+               NSLog(@"Cache configuration file backuped");
+               [self showMessage:kSavedCacheConfiguration];
+       }@catch(NSException *e){
+               [self showMessage:[e reason]];
+       } @finally {
+               [((NSTableView*)cellList) reloadData];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  refreshConfiguration:
+// -------------------------------------------------------------------------------
+- (IBAction) refreshConfiguration:(id) sender
+{
+       NSLog(@"refreshConfiguration");
+       NSString *afsBasePath = PREFERENCE_AFS_SYS_PAT_STATIC;
+       
+       @try{
+               // set the afs path
+               [afsProperty setPath:afsBasePath];
+               
+               // load configuration
+               [afsProperty loadConfiguration];
+               
+               //set the afs version label
+               [afsVersionLabel setStringValue:[afsProperty getAfsVersion]];
+               
+               //set the current default cell
+               [afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
+               
+               // Update cache view
+               [self fillCacheParamView];
+               
+               //Filter the cellServDb and allocate filtered array
+               [self filterCellServDB:nil];
+               
+       }@catch(NSException *e){
+               [self showMessage:[e reason]];
+       } @finally {
+               [((NSTableView*)cellList) reloadData];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  fillCacheParamView:
+// -------------------------------------------------------------------------------
+-(void) fillCacheParamView
+{
+       [dynRoot setState:[afsProperty dynRoot]?NSOnState:NSOffState];
+       [afsDB setState:[afsProperty afsDB]?NSOnState:NSOffState];
+       [statCacheEntry setIntValue:[afsProperty statCacheEntry]];
+       [dCacheDim setIntValue:[afsProperty dCacheDim]];
+       [cacheDimension setIntValue:[afsProperty cacheDimension]];
+       [daemonNumber setIntValue:[afsProperty daemonNumber]];
+       [afsRootMountPoint setStringValue:[afsProperty afsRootMountPoint]];
+       [nVolEntry setIntValue:[afsProperty nVolEntry]];
+       
+       //new version property
+       //[verbose setEnabled:[afsProperty useAfsdConfConfigFile]];
+       [verbose setState:[afsProperty verbose]?NSOnState:NSOffState];
+       
+}
+
+// -------------------------------------------------------------------------------
+//  updateCacheParamFromView:
+// -------------------------------------------------------------------------------
+-(void) updateCacheParamFromView
+{
+       NSString *tmpAfsPath = [afsRootMountPoint stringValue];
+       if(!tmpAfsPath || ([tmpAfsPath length] == 0) || ([tmpAfsPath characterAtIndex:0] != '/')) 
+               @throw [NSException exceptionWithName:@"updateCacheParamFromView" 
+                                                                          reason:kBadAfsRootMountPoint
+                                                                        userInfo:nil];
+
+       
+       [afsProperty setDynRoot:[dynRoot state]==NSOnState];
+       [afsProperty setAfsDB:[afsDB state]==NSOnState];
+       [afsProperty setStatCacheEntry:[statCacheEntry intValue]];
+       [afsProperty setDCacheDim:[dCacheDim intValue]]; 
+       [afsProperty setCacheDimension:[cacheDimension intValue]]; 
+       [afsProperty setDaemonNumber:[daemonNumber intValue]];
+       [afsProperty setAfsRootMountPoint:tmpAfsPath];
+       [afsProperty setNVolEntry:[nVolEntry intValue]];
+       [afsProperty setVerbose:[verbose state]==NSOnState];
+}
+
+
+// -------------------------------------------------------------------------------
+//  showCellIP:
+// -------------------------------------------------------------------------------
+- (IBAction) showCellIP:(id) sender
+{
+       int rowSelected = [((NSTableView *) cellList) selectedRow];
+       [self modifyCellByIDX:rowSelected];
+}
+
+// -------------------------------------------------------------------------------
+//  modifyCellByIDX:
+// -------------------------------------------------------------------------------
+-(void) modifyCellByIDX:(int) idx
+{
+       [self modifyCell:[self getCellByIDX:idx]];
+}
+
+// -------------------------------------------------------------------------------
+//  modifyCellByIDX:
+// -------------------------------------------------------------------------------
+-(void) modifyCell:(DBCellElement*) cellElement
+{
+       [NSBundle loadNibNamed:@"IpPanel" owner:self];
+       [((IpConfiguratorCommander*) ipConfControllerCommander) setWorkCell:cellElement];
+       [NSApp beginSheet: ipConfigurationSheet
+          modalForWindow: [[self mainView] window]
+               modalDelegate: self
+          didEndSelector: @selector(didEndSheet:returnCode:contextInfo:)
+                 contextInfo: nil];
+}
+
+// -------------------------------------------------------------------------------
+//  addMoifyCell:
+// -------------------------------------------------------------------------------
+- (IBAction) addRemoveCell:(id) sender
+{
+       switch([((NSControl*) sender) tag]){
+               case ADD_CELL_CONTROL_TAG:
+               {
+                       DBCellElement *newCell = [[DBCellElement alloc] init];
+                       if(!newCell) break;
+                       
+                       [newCell setCellName:kNewCellName];
+                       [newCell setCellComment:kNewCellComment];
+                       //cellArray = ;
+                       [[afsProperty getCellList] addObject:newCell];
+                       [newCell release];
+                       
+                       //Modify new cell
+                       [self modifyCell:newCell];
+               }
+               break;
+                       
+               case REMOVE_CELL_CONTROL_TAG:
+               {
+                       int index = 0;
+                       NSIndexSet *selectedIndex = [(NSTableView*)cellList selectedRowIndexes];
+                       if( [selectedIndex count] > 0) {
+                               index = [selectedIndex firstIndex]; 
+                               do {
+                                       DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:index];
+                                       [[afsProperty getCellList] removeObject:cellElement];
+                               } while ((index = [selectedIndex indexGreaterThanIndex: index]) != NSNotFound);
+                       }
+               }
+               break;
+       }
+       //Filter the cellServDb and allocate filtered array
+       [self searchCellTextEvent:nil];
+       [(NSTableView*)cellList deselectAll:nil];
+       [(NSTableView*)cellList reloadData];
+}
+
+// -------------------------------------------------------------------------------
+//  repairHelperTool:
+// -------------------------------------------------------------------------------
+- (void) repairHelperTool
+{
+       struct stat st;
+    int fdTool;
+       int status = 0;
+       NSLog(@"repairHelperTool"); 
+       NSString *afshlpPath = [[self bundle] pathForResource:@"afshlp" ofType:nil];
+       
+       
+    
+    // Open tool exclusively, so nobody can change it while we bless it.
+    fdTool = open([afshlpPath UTF8String], O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
+    
+    if(fdTool == -1)
+    {
+        NSLog(@"Exclusive open while repairing tool failed: %d.", errno);
+        exit(-1);
+    }
+    
+    if(fstat(fdTool, &st))
+    {
+        NSLog(@"fstat failed.");
+        exit(-1);
+    }
+    
+    if(st.st_uid != 0)
+    {
+               status = [[AuthUtil shared] autorize];
+               if(status == noErr){
+                       fchown(fdTool, 0, st.st_gid);
+                       
+                       // Disable group and world writability and make setuid root.
+                       fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH)))/* | S_ISUID*/);
+                       const char *args[] = {"root", [afshlpPath UTF8String],0L};
+                       [[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" 
+                                                                                 args:args
+                                                                               output:nil];
+                       [[AuthUtil shared] deautorize];
+               }
+    } else  NSLog(@"st_uid = 0");
+    
+       
+    
+    close(fdTool);
+    
+    NSLog(@"Self-repair done.");
+       
+}
+
+
+// -------------------------------------------------------------------------------
+//  startStopAfs:
+// -------------------------------------------------------------------------------
+- (IBAction) startStopAfs:(id) sender
+{
+       OSStatus status = noErr;
+       NSString *afsdPath = [TaskUtil searchExecutablePath:@"afsd"];
+       //NSString *startStopScript = nil;
+       NSString *rootHelperApp = nil;
+       BOOL currentAfsState = NO;
+       
+       @try {
+               if(afsdPath == nil) return;
+               currentAfsState = [afsProperty checkAfsStatus];
+               rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+                       
+               //[startStopScript setString: resourcePath];
+               NSLog(@"Launch repair HelperTool");
+               //Check helper app
+               [self repairHelperTool];
+               
+               // make the parameter to call the root helper app
+               status = [[AuthUtil shared] autorize];
+               if(status == noErr){
+                       if(currentAfsState){
+                               //shutdown afs
+                               NSLog(@"Shutting down afs");
+                               NSMutableString *afsKextPath = [[NSMutableString alloc] initWithCapacity:256];
+                               [afsKextPath setString:[afsProperty path]];
+                               [afsKextPath appendString:@"/etc/afs.kext"];
+                               
+                               //Make the array for arguments
+                               NSLog(@"executeTaskWithAuth");
+                               const char *stopAfsArgs[] = {"stop_afs", [afsKextPath  UTF8String], [afsdPath UTF8String], 0L};
+                               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                                         args:stopAfsArgs
+                                                                                       output:nil];
+                               
+                       } else {
+                               NSLog(@"Starting up afs");
+                               const char *startAfsArgs[] = {[[[self bundle] pathForResource:@"start_afs" ofType:@"sh"]  UTF8String], [[afsProperty path]  UTF8String], [afsdPath UTF8String], 0L};
+                               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                                         args:startAfsArgs
+                                                                                       output:nil];
+                       }
+               }
+               [self refreshGui:nil];
+       }
+       @catch (NSException * e) {
+               [self showMessage:[e reason]];
+       }
+       @finally {
+               [[AuthUtil shared] deautorize];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  info:
+// -------------------------------------------------------------------------------
+- (void) refreshGui:(NSNotification *)notification{
+       BOOL afsIsUp = [afsProperty checkAfsStatus];
+       [self setAfsStatus];
+       //[self refreshTokens:nil];
+       [tokensButton setEnabled:afsIsUp];
+       [unlogButton setEnabled:afsIsUp];
+}
+
+// -------------------------------------------------------------------------------
+//  afsVolumeMountChange: Track the afs volume state change
+// -------------------------------------------------------------------------------
+- (void) afsVolumeMountChange:(NSNotification *)notification{
+       // Cehck if is mounted or unmounted afs
+       if([[[notification userInfo] objectForKey:@"NSDevicePath"] isEqualToString:@"/afs"]){
+               [self setAfsStatus];
+               [self refreshTokens:nil];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  info:
+// -------------------------------------------------------------------------------
+- (IBAction) info:(id) sender
+{
+       //NSLog(kDevelopInfo);
+       //[self showMessage:kDevelopInfo];
+       [((InfoController*) infoController) showHtmlResource:[[self bundle] pathForResource:@"licenza" ofType:@"rtf"]];
+
+       [NSApp beginSheet: infoSheet
+          modalForWindow: [[self mainView] window]
+               modalDelegate: self
+          didEndSelector:  @selector(didEndInfoSheet:returnCode:contextInfo:)
+                 contextInfo: nil];
+}
+
+// -------------------------------------------------------------------------------
+//  tableDoubleAction:
+// -------------------------------------------------------------------------------
+- (IBAction) tableDoubleAction:(id) sender
+{
+       [self showCellIP:nil];
+}
+
+// -------------------------------------------------------------------------------
+//  getNewToken:
+// -------------------------------------------------------------------------------
+- (IBAction) getNewToken:(id) sender
+{
+       BOOL useAklog = [useAklogCheck state] == NSOnState;
+       if(useAklog){
+               //[AFSPropertyManager aklog];
+               [afsProperty getTokens:false 
+                                                  usr:nil 
+                                                  pwd:nil];
+               [self refreshTokens:nil];
+               //Inform afs menuextra to updata afs status
+               if ([self isAFSMenuExtraLoaded])  [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
+
+       } else {
+               [NSBundle loadNibNamed:@"CredentialPanel" owner:self];
+               [NSApp beginSheet: credentialSheet
+                  modalForWindow: [[self mainView] window]
+                       modalDelegate: self
+                  didEndSelector: @selector(didEndCredentialSheet:returnCode:contextInfo:)
+                         contextInfo: nil];
+       }
+}
+
+
+// -------------------------------------------------------------------------------
+//  getCurrentCellInDB:
+// -------------------------------------------------------------------------------
+- (IBAction) unlog:(id) sender
+{
+       int index = -1;
+       NSIndexSet *selectedIndex = [(NSTableView*)tokensTable selectedRowIndexes];
+       if( [selectedIndex count] > 0) {
+               index = [selectedIndex firstIndex]; 
+               do {
+                       NSString *tokenDesc = [tokenList objectAtIndex:index];
+                       NSString *cellToUnlog = [tokenDesc estractTokenByDelimiter:@"afs@" 
+                                                                                                                         endToken:@" "];
+                       [afsProperty unlog:cellToUnlog];
+               } while ((index = [selectedIndex indexGreaterThanIndex: index]) != NSNotFound);
+       } else {
+               [afsProperty unlog:nil];
+       }
+       [self refreshTokens:nil];
+       //Inform afs menuextra to updata afs status
+       if ([self isAFSMenuExtraLoaded])  [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
+
+}
+
+
+// -------------------------------------------------------------------------------
+//  aklogSwitchEvent:
+// -------------------------------------------------------------------------------
+- (IBAction) aklogSwitchEvent:(id) sender
+{
+       //afs menu extra is loaded inform it to read preference
+       @try {
+               if(![useAklogCheck state]) {
+                       //Remove launchd ctrl file
+                       [PListManager installLaunchdFile:NO resourcePath:[[self bundle] resourcePath]];
+                       
+                       //deselect the checkbox
+                       [aklogCredentialAtLoginTime setState:NO];
+               }
+               
+               [self writePreferenceFile];
+               
+               //Enable disable aklog at login time checkbox according the useAklog checkbox
+               [aklogCredentialAtLoginTime setEnabled:[useAklogCheck state]];
+               
+       }
+       @catch (NSException * e) {
+               [self showMessage:[e reason]];
+       }
+       
+               
+}
+
+
+// -------------------------------------------------------------------------------
+//  credentialAtLoginTimeEvent:
+// -------------------------------------------------------------------------------
+- (IBAction) credentialAtLoginTimeEvent:(id) sender {
+       @try {
+               [PListManager installLaunchdFile:[aklogCredentialAtLoginTime state] 
+                                                       resourcePath:[[self bundle] resourcePath]];
+               
+               
+
+       }
+       @catch (NSException * e) {
+               if([e userInfo] != nil && [[e userInfo] isKindOfClass:[NSNumber class]]) {
+                       if([((NSNumber*)[e userInfo]) intValue] == 1) {
+                                       // the dir HOME_LAUNCHD_AGENT_FOLDER (PListManager.h) must be created
+                               NSBeginAlertSheet([[NSString stringWithString:kDoYouWantCreateTheDirectory] stringByAppendingString:HOME_LAUNCHD_AGENT_FOLDER],
+                                                                 @"Create", @"Cancel", nil,                                                                            
+                                                                 [[self mainView] window],     self, @selector(credentialAtLoginTimeEventCreationLaunchAgentDir:returnCode:contextInfo:), NULL, 
+                                                                 nil, @"", nil);
+                       }
+               } else {
+                       [self showMessage:[e reason]];
+               }
+       }
+       @finally {
+               [aklogCredentialAtLoginTime setState:[PListManager checkAklogAtLoginTimeLaunchdEnable]];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  afsStartupSwitchEvent:
+// -------------------------------------------------------------------------------
+- (IBAction) afsStartupSwitchEvent:(id) sender {
+       NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+       //get the new state
+       NSString *afsdPath = [TaskUtil searchExecutablePath:@"afsd"];
+       NSString *afsStartupScriptPath = [[self bundle] pathForResource:@"start_afs" ofType:@"sh"];
+       startAFSAtLogin = [checkButtonAfsAtBootTime state];
+       const char                      *startAfsArgs[] = {"load", "-w", [AFS_STARTUP_CONTROL_FILE UTF8String], 0L};
+       const char                      *stopAfsArgs[] = {"unload", "-w", [AFS_STARTUP_CONTROL_FILE UTF8String], 0L};
+       const char                      *launchctlExecutable = "/bin/launchctl";
+       /*      [PListManager manageAfsStartupLaunchdFile:startAFSAtLogin 
+        afsStartupScript:afsStartupScriptPath 
+        afsBasePath:[afsProperty path] afsdPath:afsdPath];
+        */
+       const char *startupConfigureOption[] = {"start_afs_at_startup", [afsStartupScriptPath  UTF8String],  [afsdPath UTF8String], [[afsProperty path]  UTF8String], 0L};
+       if([[AuthUtil shared] autorize] == noErr) {
+               if(startAFSAtLogin) {
+                       [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                                 args:startupConfigureOption
+                                                                               output:nil];
+                       
+                       [[AuthUtil shared] execUnixCommand:launchctlExecutable 
+                                                                                 args:startAfsArgs
+                                                                               output:nil];
+               } else {
+                       //now disable the launchd configuration
+                       [[AuthUtil shared] execUnixCommand:launchctlExecutable
+                                                                                 args:stopAfsArgs
+                                                                               output:nil];
+               }
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  credentialAtLoginTimeEventCreationLaunchAgentDir:
+// -------------------------------------------------------------------------------
+- (void) credentialAtLoginTimeEventCreationLaunchAgentDir:(NSWindow*)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+       [alert close];
+       switch (returnCode) {
+               case  1:
+                       NSLog(@"Yes");
+                       if([[NSFileManager defaultManager] createDirectoryAtPath:[HOME_LAUNCHD_AGENT_FOLDER stringByExpandingTildeInPath] 
+                                                                                                                 attributes:nil]) {
+
+                               //Create the file
+                               [PListManager installLaunchdFile:YES
+                                                                       resourcePath:[[self bundle] resourcePath]];
+                               
+                               //refresh the check box
+                               [aklogCredentialAtLoginTime setState:[PListManager checkAklogAtLoginTimeLaunchdEnable]];
+                               [self showMessage:kDirectoryCreated];
+                       } else {
+                               [self showMessage:kErrorCreatingDirectory];
+                       }
+                       break;
+               case 0:
+                       NSLog(@"No");
+                       
+                       break;
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  afsMenuActivationEvent:
+// -------------------------------------------------------------------------------
+- (IBAction) krb5KredentialAtLoginTimeEvent:(id) sender {
+       //
+       NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+       const char *args[] = {"enable_krb5_startup", [[installKRB5AuthAtLoginButton stringValue] UTF8String], "", 0L};
+       
+       //Check helper app
+       [self repairHelperTool];
+       if([[AuthUtil shared] autorize] == noErr) {
+               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                         args:args
+                                                                       output:nil];
+               
+               //check if all is gone well
+               [installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  afsMenuActivationEvent:
+// -------------------------------------------------------------------------------
+-(IBAction) afsMenuActivationEvent:(id) sender
+{
+       if([(NSButton*)afsMenucheckBox state] == NSOffState){
+               // must remove the menu
+               [self removeAFSMenuExtra];
+       } else {
+               // must add the menu
+               [self addAFSMenuExtra];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  searchCellTextEvent:
+//             Fileter the CellServDB list according to NSSearch content
+// -------------------------------------------------------------------------------
+- (IBAction) searchCellTextEvent:(id) sender
+{
+       
+       NSString *searchText = [[textSearchField stringValue] lowercaseString]; //filter string
+       [self filterCellServDB:searchText];
+       [((NSTableView*)cellList) reloadData];
+}
+
+// -------------------------------------------------------------------------------
+//  clearCellServDBFiltering:
+//             clear the NSSearchField and showw all CellServDB table
+// -------------------------------------------------------------------------------
+- (void) clearCellServDBFiltering {
+       //Clear the text search
+       [textSearchField setStringValue:@""];
+       //load the temp array with all cell servdb
+       [self searchCellTextEvent:nil];
+}
+// --------------------------------------o-----------------------------------------
+//  filterCellServDB:
+//  make the NSMutableArray with all cellservdb or filtered element
+// -------------------------------------------------------------------------------
+- (void) filterCellServDB:(NSString*)textToFilter {
+       DBCellElement *cellElement; //Filtered element
+       BOOL doFilter = !(textToFilter == nil || ([textToFilter length] == 0));
+       
+       // We can do filtering and make the temp array
+       if(filteredCellDB){
+               [filteredCellDB release];
+       }
+       filteredCellDB = [[NSMutableArray alloc] init];
+       NSEnumerator *e = [[afsProperty getCellList] objectEnumerator];
+       while(cellElement = (DBCellElement*)[e nextObject]) {
+               // check if the element can be get
+               if(doFilter) {
+                       //Get the CellServDB array enumerator
+                       //NSLog(@"String for filtering: %s", [textToFilter UTF8String]);
+                       NSRange rsltRng = [[[cellElement getCellName] lowercaseString] rangeOfString:textToFilter];
+                  if(rsltRng.location != NSNotFound) {
+                       //we can add this cell to filtered
+                       //NSLog(@"Element found during filter: %s", [[cellElement getCellName] UTF8String]);
+                       [filteredCellDB addObject:[cellElement retain]];
+                  }
+               } else {
+                       [filteredCellDB addObject:[cellElement retain]];
+
+               }
+       }
+}
+                  
+// -------------------------------------------------------------------------------
+//  getCurrentCellInDB:
+// -------------------------------------------------------------------------------
+- (DBCellElement*) getCurrentCellInDB
+{
+       int rowSelected = [((NSTableView *) cellList) selectedRow];
+       return [self getCellByIDX:rowSelected];
+}
+
+// -------------------------------------------------------------------------------
+//  getCurrentCellInDB:
+// -------------------------------------------------------------------------------
+- (DBCellElement*) getCellByIDX:(int) idx
+{
+       //NSMutableArray *cellArray = [afsProperty getCellList];
+       DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:idx];
+       return cellElement;
+}
+
+// -------------------------------------------------------------------------------
+//  showMessage:
+// -------------------------------------------------------------------------------
+-(void) showMessage:(NSString*) message{
+       NSAlert *alert = [[NSAlert alloc] init];
+       
+       [alert setMessageText:message];
+       [alert beginSheetModalForWindow:[[self mainView] window]
+                                         modalDelegate:nil 
+                                        didEndSelector:nil
+                                               contextInfo:nil];
+       [alert release];
+}
+
+// -------------------------------------------------------------------------------
+//  manageButtonState:
+// -------------------------------------------------------------------------------
+-(void) manageButtonState:(int) rowSelected {
+       [((NSControl*) cellIpButton) setEnabled:rowSelected >= 0];
+       [((NSControl*) removeCellButton) setEnabled:rowSelected >= 0];
+}
+
+// -------------------------------------------------------------------------------
+//  setAfsStatus:
+// -------------------------------------------------------------------------------
+-(void) setAfsStatus
+{
+       BOOL afsIsUp = [afsProperty checkAfsStatus];
+       NSLog(@"Afs is: %s", afsIsUp?"Up":"Down");
+       [((NSButton *)startStopButton) setTitle: (afsIsUp?kAfsButtonShutdown:kAfsButtonStartup)];
+       
+       NSMutableAttributedString *colorTitle =[[NSMutableAttributedString alloc] initWithAttributedString:[((NSButton *)startStopButton) attributedTitle]];
+    NSRange titleRange = NSMakeRange(0, [colorTitle length]);
+       
+    [colorTitle addAttribute:NSForegroundColorAttributeName
+                       value:(afsIsUp?[NSColor redColor]:[NSColor blackColor])
+                       range:titleRange];
+       
+    [((NSButton *)startStopButton) setAttributedTitle:colorTitle];
+       
+       if(afsIsUp) {
+               [self startTimer];
+       } else {
+               [self stopTimer];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  refreshToken:
+// -------------------------------------------------------------------------------
+- (void) refreshTokens:(NSTimer*)theTimer;
+{
+       if(![tokensLock tryLock]) return;
+       if(tokenList){
+               [tokenList release];
+       }
+       
+       tokenList = [afsProperty getTokenList];
+       [((NSTableView*)tokensTable) reloadData];
+       [tokensLock unlock];
+}
+
+
+// -------------------------------------------------------------------------------
+//  isExtraMenuLoaded:
+// -------------------------------------------------------------------------------
+- (BOOL) isAFSMenuExtraLoaded
+{
+       void            *menu;
+       if ((CoreMenuExtraGetMenuExtra((CFStringRef)kAFSMenuExtraID, &menu) == 0) && menu) {
+               return YES;
+       }
+       else {
+               return NO;
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  isExtraMenuLoaded:
+// -------------------------------------------------------------------------------
+- (void)addAFSMenuExtra {
+       
+       void *menuCracker = 0L;
+       
+       //Check for MenuCracker
+       if ((CoreMenuExtraGetMenuExtra((CFStringRef)kMenuCrakerMenuExtraID, &menuCracker) != 0) || !menuCracker) {
+               NSLog(@"MenuCracker not present");
+               
+               // load the MenuCracker.menu menu extra
+               CoreMenuExtraAddMenuExtra((CFURLRef)kMenuCrakerMenuExtra, 0, 0, 0, 0, 0);
+       } else NSLog(@"MenuCracker alredy loaded");
+       
+       
+       //Load the AFSCommander menu extra
+       CoreMenuExtraAddMenuExtra((CFURLRef)kAFSMenuExtra, 0, 0, 0, 0, 0);
+}
+
+// -------------------------------------------------------------------------------
+//  removeExtra:
+// -------------------------------------------------------------------------------
+- (IBAction) addLink:(id) sender {
+       [NSBundle loadNibNamed:@"SymLinkEdit" owner:self];
+       
+       [NSApp beginSheet: lyncCreationSheet
+          modalForWindow: [[self mainView] window]
+               modalDelegate: self
+          didEndSelector: @selector(didEndSymlinkSheet:returnCode:contextInfo:)
+                 contextInfo: nil];
+       
+}
+
+// -------------------------------------------------------------------------------
+//  removeExtra:
+// -------------------------------------------------------------------------------
+- (IBAction) removeLink:(id) sender {
+       
+}
+
+// -------------------------------------------------------------------------------
+//  removeExtra:
+// -------------------------------------------------------------------------------
+- (IBAction) enableLink:(id) sender {
+       
+}
+
+
+// -------------------------------------------------------------------------------
+//  removeExtra:
+// -------------------------------------------------------------------------------
+- (void)removeAFSMenuExtra{
+       void            *menu;
+       if ((CoreMenuExtraGetMenuExtra((CFStringRef)kAFSMenuExtraID, &menu) == 0) && menu) {
+               CoreMenuExtraRemoveMenuExtra(menu, 0);
+       }
+} 
+
+
+// -------------------------------------------------------------------------------
+//  mextraChangeActivation:
+// -------------------------------------------------------------------------------
+- (void)mextraChangeActivation:(NSNotification *)notification
+{
+       // set the afsmenu check state
+       [(NSButton*)afsMenucheckBox setState: [self isAFSMenuExtraLoaded]?NSOnState:NSOffState];
+}
+@end
+
+@implementation AFSCommanderPref (NSTableDataSource)
+
+
+// -------------------------------------------------------------------------------
+//  tableView:
+//             Manage the checkbox of CellServDB Table
+
+// -------------------------------------------------------------------------------
+- (void)tableView:(NSTableView *)table 
+   setObjectValue:(id)data 
+   forTableColumn:(NSTableColumn *)col 
+                         row:(int)row
+{
+       NSString *identifier = (NSString*)[col identifier];
+       switch([table tag]){
+               case TABLE_TOKENS_LIST:
+                       break;
+                       
+               case TABLE_CELL_LIST:
+                       // we are editing checkbox for cellservdb table
+                       if([identifier intValue] == CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN) {
+                               // set the user default cell
+                               DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+                               [afsProperty setDefaultCellByName:[cellElement getCellName]];
+                               //[afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
+                               [((NSTableView*)cellList) reloadData];
+                       } else if([identifier intValue] == CELLSRVDB_TABLE_DFLT_CHECK_COLUMN) {
+                               // set the cell for wich the user want to get token
+                               DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+                               [cellElement setUserDefaultForToken:![cellElement userDefaultForToken]];
+                       }  
+                       break;
+       }
+       
+}
+
+
+// -------------------------------------------------------------------------------
+//  tableView:
+//             refresh delegate method for two AFSCommander table
+// -------------------------------------------------------------------------------
+- (id)         tableView:(NSTableView *) aTableView
+       objectValueForTableColumn:(NSTableColumn *) aTableColumn
+                                                 row:(int) rowIndex
+{  
+       
+       id result = nil;
+       NSString *identifier = (NSString*)[aTableColumn identifier];
+       switch([aTableView tag]){
+               case TABLE_TOKENS_LIST:
+                       //We are refreshing tokens table
+                       result = [self getTableTokensListValue:[identifier intValue] row:rowIndex];
+                       break;
+                       
+               case TABLE_CELL_LIST:
+                       //We are refreshing cell db table
+                       result = [self getTableCelListValue:[identifier intValue] row:rowIndex];
+                       break;
+               
+       }
+       return result;  
+}
+
+
+// -------------------------------------------------------------------------------
+//  getTableCelListValue:
+// -------------------------------------------------------------------------------
+- (id)getTableTokensListValue:(int) colId row:(int)row
+{
+       id result = nil;
+       if(!tokenList) return nil;
+       switch(colId){
+               case 0:
+                       result = (NSString*)[tokenList objectAtIndex:row];
+                       break;
+       }
+       return result;
+}
+
+
+// -------------------------------------------------------------------------------
+//  getTableCelListValue:
+// -------------------------------------------------------------------------------
+- (id)getTableCelListValue:(int) colId row:(int)row
+{
+       id result = nil;
+       //NSMutableArray *cellArray = [afsProperty getCellList];
+       DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+       switch(colId){
+               case CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN:
+                       result = [NSNumber numberWithInt:[cellElement userDefaultForCell]];
+                       break;
+                       
+               case CELLSRVDB_TABLE_DFLT_CHECK_COLUMN:
+                       result = [NSNumber numberWithInt:[cellElement userDefaultForToken]];
+                       break;
+               case CELLSRVDB_TABLE_NAME_COLUMN:
+                       result = [cellElement getCellName];
+                       break;
+                       
+               case CELLSRVDB_TABLE_DESCRIPTION_COLUMN:
+                       result = [cellElement getCellComment];
+                       break;
+       }
+       return result;
+}
+
+// -------------------------------------------------------------------------------
+//  numberOfRowsInTableView:
+// -------------------------------------------------------------------------------
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView
+{
+       int rowCount = 0;
+       //NSMutableArray *cellArray = nil;
+       switch([aTableView tag]){
+               case TABLE_TOKENS_LIST:
+                       if(tokenList)  rowCount = [tokenList count];
+                       break;
+                       
+               case TABLE_CELL_LIST:
+                       //cellArray = [afsProperty getCellList];
+                       if(filteredCellDB)  rowCount = [filteredCellDB count];
+                       break;
+                       
+       }       
+       return rowCount;  
+}
+
+
+@end
+
+
+@implementation AFSCommanderPref (TableDelegate)
+// -------------------------------------------------------------------------------
+//  selectionShouldChangeInTableView:
+// -------------------------------------------------------------------------------
+- (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTable
+{
+       [self manageButtonState:[aTable selectedRow]];
+       return YES;
+}
+
+// -------------------------------------------------------------------------------
+//  tableView:
+// -------------------------------------------------------------------------------
+- (BOOL)tableView:(NSTableView *)aTable shouldSelectRow:(int)aRow
+{
+       [self manageButtonState:aRow];
+       return YES;
+}
+
+@end
+
+
+@implementation AFSCommanderPref (ModalDelegate)
+// -------------------------------------------------------------------------------
+//  didEndSheet:
+// -------------------------------------------------------------------------------
+- (void)didEndSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
+{
+       NSLog(@"didEndSheet");
+    [sheet orderOut:self];
+       //Filter the cellServDb and allocate filtered array
+       [self searchCellTextEvent:nil];
+       [((NSTableView*)cellList) reloadData];
+       NSLog(@"Has saved %s:", ([((IpConfiguratorCommander*) ipConfControllerCommander) saved])?"YES":"NO");
+}
+
+// -------------------------------------------------------------------------------
+//  Klog credential request
+// -------------------------------------------------------------------------------
+- (void)didEndCredentialSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
+{
+       NSLog(@"didEndCredentialSheet");
+       if([((TokenCredentialController*)credentialCommander) takenToken] == YES){
+               /*[AFSPropertyManager klog:[((TokenCredentialController*)credentialCommander) uName] 
+                                                       uPwd:[((TokenCredentialController*)credentialCommander) uPwd] ];*/
+               [afsProperty getTokens:true 
+                                                  usr:[((TokenCredentialController*)credentialCommander) uName] 
+                                                  pwd:[((TokenCredentialController*)credentialCommander) uPwd]];
+       }
+    [sheet orderOut:self];
+       [self refreshTokens:nil];
+       //Inform afs menuextra to updata afs status
+       if ([self isAFSMenuExtraLoaded])  [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
+
+}
+
+// -------------------------------------------------------------------------------
+//  Klog credential request
+// -------------------------------------------------------------------------------
+- (void)didEndInfoSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
+{
+       NSLog(@"didEndInfoSheet");
+       [sheet orderOut:self];
+}
+
+// -------------------------------------------------------------------------------
+//  symlink edite
+// -------------------------------------------------------------------------------
+- (void)didEndSymlinkSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
+{
+       NSLog(@"didEndSymlinkSheet");
+       [lyncCreationSheet orderOut:self];
+}
+@end
+
+// -------------------------------------------------------------------------------
+//  AFSCommanderPref(NSTabViewDelegator) - delegate for nstabview in 
+//  main preference view
+// -------------------------------------------------------------------------------
+@implementation  AFSCommanderPref(NSTabViewDelegator)
+- (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem 
+{
+       //check to see if the cache param tab is the tab that will be selected
+       if([((NSString*)[tabViewItem identifier]) intValue] == TAB_GROUP)
+       {
+               //get
+               NSLog(@"cache param tab");
+       //      [groupsBox setHidden:YES];
+               NSLog([groupsBox title]);
+               [ViewUtility enbleDisableControlView:[groupsBox contentView]
+                                                               controlState:NO];
+       }
+}
+@end
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/AFSCommander_Prefix.pch b/src/platform/DARWIN/AFSPreference/AFSCommander_Prefix.pch
new file mode 100644 (file)
index 0000000..4141e70
--- /dev/null
@@ -0,0 +1,9 @@
+//
+// Prefix header for all source files of the 'AFSCommander' target in the 'AFSCommander' project.
+//
+
+#ifdef __OBJC__
+    #import <Foundation/Foundation.h>
+    #import <AppKit/AppKit.h>
+
+#endif
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.h b/src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.h
new file mode 100644 (file)
index 0000000..5dca5fa
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  AFSMenuCredentialContoller.h
+//  AFSCommander
+//
+//  Created by Claudio on 14/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "CredentialWindowController.h"
+#import "AFSPropertyManager.h"
+
+@interface AFSMenuCredentialContoller : NSObject {
+       NSRect viewRect;
+       id credentialView;
+       id credentialController;
+       NSPanel *credentialWindow;
+       id credWinController;
+       AFSPropertyManager *afsPropMngr;
+}
+-(id) initWhitRec:(NSRect)rect afsPropManager:(AFSPropertyManager*)afsPropManager;
+-(void) showWindow;
+-(void) closeWindow;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.m b/src/platform/DARWIN/AFSPreference/AFSMenuCredentialContoller.m
new file mode 100644 (file)
index 0000000..5775246
--- /dev/null
@@ -0,0 +1,67 @@
+//
+//  AFSMenuCredentialContoller.m
+//  AFSCommander
+//
+//  Created by Claudio on 14/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "AFSMenuCredentialContoller.h"
+#import "CredentialWindowController.h"
+#import "global.h"
+#import "AFSPropertyManager.h"
+
+@implementation AFSMenuCredentialContoller
+
+-(id) initWhitRec:(NSRect)rect  afsPropManager:(AFSPropertyManager*)afsPropManager;
+{
+       viewRect = rect;
+       credentialWindow = nil;
+       afsPropMngr = [afsPropManager retain];
+       NSLog(@"init AFSMenuCredentialContoller");
+       return  [self init];
+}
+
+- (void)dealloc {
+       NSLog(@"dealloc AFSMenuCredentialContoller");
+       if(credentialWindow) [credentialWindow release];
+    [super dealloc];
+       
+} // dealloc
+
+-(void) showWindow
+{      
+       // calculate the point where show the window
+       NSPoint topLeft = {viewRect.origin.x-160,[[NSScreen mainScreen] frame].size.height-kMenuBarHeight};
+       NSLog(@"viewRect.origin.x=%d, topLeft.x=%d", viewRect.origin.x, topLeft.x);
+       // load the bundle for
+       [NSBundle loadNibNamed:@"CredentialWindow.nib" owner:self];
+       NSLog(@"prepare to open window CredentialWindow");
+
+       credentialWindow = [[NSWindow alloc] initWithContentRect:[((NSView*) credentialView) frame]
+                                                                                                  styleMask:NSTitledWindowMask /*| NSUtilityWindowMask*/
+                                                                                                        backing:NSBackingStoreBuffered
+                                                                                                          defer:YES screen:[NSScreen mainScreen]];
+       NSLog(@"Finestra");
+       [credentialWindow setTitle:@"Klog"];
+       [credentialWindow setFrameTopLeftPoint:topLeft];
+       [credentialWindow setContentView:credentialView];
+       [credentialWindow makeKeyAndOrderFront:self];
+       NSLog(@"creata");
+       
+}
+
+-(void) closeWindow
+{
+       NSLog(@"closeWindow");
+       if([(CredentialWindowController*)credWinController takenToken] && afsPropMngr) {
+               [afsPropMngr getTokens:true 
+                                                  usr:[(CredentialWindowController*)credWinController uName] 
+                                                  pwd:[(CredentialWindowController*)credWinController uPwd]];
+               [afsPropMngr release];
+               afsPropMngr = nil;
+       }
+       [credentialWindow close];
+       credentialWindow = nil;
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuExtra-Info.plist b/src/platform/DARWIN/AFSPreference/AFSMenuExtra-Info.plist
new file mode 100644 (file)
index 0000000..c50ffe1
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIdentifier</key>
+       <string>it.infn.lnf.network.AFSMenuExtra</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>INFN</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>NSPrincipalClass</key>
+       <string>AFSMenuExtra</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuExtra.h b/src/platform/DARWIN/AFSPreference/AFSMenuExtra.h
new file mode 100644 (file)
index 0000000..1c41e24
--- /dev/null
@@ -0,0 +1,57 @@
+//
+//  AFSMenuExtra.h
+//  AFSCommander
+//
+//  Created by Claudio on 10/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+
+#import <Cocoa/Cocoa.h>
+#import "SystemUIPlugin.h"
+#import "global.h"
+#import "AFSMenuCredentialContoller.h"
+@class AFSMenuExtraView;
+@interface AFSMenuExtra : NSMenuExtra {
+       @public
+       BOOL afsState; //0-off 1-on
+       BOOL gotToken; //0-no 1-one o more token
+       
+       @protected
+       NSString *afsSysPath;
+       NSNumber *useAklogPrefValue;
+       //menu extra
+       NSMenu *theMenu;
+       
+       //Menu extra view
+       AFSMenuExtraView *theView;
+       // menu reference
+       NSMenuItem *startStopMenu;
+       NSMenuItem *loginMenu;
+       NSMenuItem *unlogMenu;
+       
+       //Icon for state visualization
+       NSImage                 *hasTokenImage;
+       NSImage                 *noTokenImage;
+       
+       //credential windows mainWindow
+       AFSMenuCredentialContoller *credentialMenuController;
+       
+       //NSTimer for tokens refresh
+       NSTimer *timerForCheckTokensList;
+       NSLock *tokensLock;
+}
+- (void)startTimer;
+- (void)stopTimer;
+- (BOOL)useAklogPrefValue;
+- (void)readPreferenceFile:(NSNotification *)notification;
+- (void)getToken:(id)sender;
+- (void)releaseToken:(id)sender;
+- (void)updateAfsStatus:(NSTimer*)timer;
+- (void)klogUserEven:(NSNotification *)notification;
+- (NSImage*)getImageFromBundle:(NSString*)fileName fileExt:(NSString*)ext;
+- (NSImage*)imageToRender;
+- (void)updateMenu;
+- (void)repairHelperTool;
+- (void) afsVolumeMountChange:(NSNotification *)notification;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuExtra.m b/src/platform/DARWIN/AFSPreference/AFSMenuExtra.m
new file mode 100644 (file)
index 0000000..76f079c
--- /dev/null
@@ -0,0 +1,435 @@
+//
+//  AFSMenuExtra.m
+//  AFSCommander
+//
+//  Created by Claudio on 10/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "AFSMenuExtra.h"
+#import "AFSMenuExtraView.h"
+#import "AFSPropertyManager.h"
+#import "TaskUtil.h"
+#import "TokenCredentialController.h"
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/fcntl.h>
+#include <sys/errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+@implementation AFSMenuExtra
+// -------------------------------------------------------------------------------
+//  -(id) initWithBundle
+// -------------------------------------------------------------------------------
+- (id) initWithBundle:(NSBundle *)bundle
+{
+    self = [super initWithBundle:bundle];
+    if( self == nil )
+        return nil;
+       
+       // allocate the lock
+       tokensLock = [[NSLock alloc] init];
+       // inizialize the afspath
+       afsSysPath = nil;
+       credentialMenuController = nil;
+
+    theView = [[AFSMenuExtraView alloc] initWithFrame:[[self view] frame] 
+                                                                                       menuExtra:self];
+       [self setView:theView];
+    
+       
+    // Get the imge for menu
+       //Load image for menu rappresentation
+       hasTokenImage = [self getImageFromBundle:@"hasToken" 
+                                                                                        fileExt:@"png"];
+       
+       noTokenImage = [self getImageFromBundle:@"noToken" 
+                                                                                       fileExt:@"png"];
+       
+    theMenu = [[NSMenu alloc] initWithTitle: @""];
+    [theMenu setAutoenablesItems: NO];
+    startStopMenu = [theMenu addItemWithTitle: kAfsOff action: @selector(startStopAfs:)  keyEquivalent: @""];
+       [startStopMenu setTarget:self];
+       
+       loginMenu = [theMenu addItemWithTitle: kMenuLogin action: @selector(getToken:)  keyEquivalent: @""];
+       [loginMenu setTarget:self];
+
+       unlogMenu = [theMenu addItemWithTitle: kMenuUnlog action: @selector(releaseToken:)  keyEquivalent: @""];
+       [unlogMenu setTarget:self];
+
+       // Register for preference user change
+       [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(readPreferenceFile:) 
+                                                                                                                       name:kAFSMenuExtraID object:kPrefChangeNotification];
+       
+       // Register for afs state change
+       [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(afsVolumeMountChange:) 
+                                                                                                                       name:kAFSMenuExtraID object:kMExtraAFSStateChange];
+       
+       
+       //Register for mount/unmount afs volume
+       [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
+                                                                                                                  selector:@selector(afsVolumeMountChange:) 
+                                                                                                                          name:NSWorkspaceDidMountNotification object:nil];
+       
+       [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
+                                                                                                                  selector:@selector(afsVolumeMountChange:) 
+                                                                                                                          name:NSWorkspaceDidUnmountNotification object:nil];
+       //Start to read the afs path
+       [self readPreferenceFile:nil];  
+       [self startTimer];
+    return self;
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) willUnload
+// -------------------------------------------------------------------------------
+- (void) willUnload {
+       //release the lock
+       [self stopTimer];
+       
+       if(hasTokenImage) [hasTokenImage release];
+       if(noTokenImage) [noTokenImage release];
+       
+       // Unregister for preference change
+       [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kAFSMenuExtraID object:kPrefChangeNotification];
+       [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kAFSMenuExtraID object:kMExtraAFSStateChange];
+       [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self name:NSWorkspaceDidMountNotification object:nil];
+       [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self name:NSWorkspaceDidUnmountNotification object:nil];
+
+       
+       [tokensLock release];
+}
+
+// -------------------------------------------------------------------------------
+//  startTimer:
+// -------------------------------------------------------------------------------
+- (void)startTimer{
+       //start the time for check tokens validity
+       if(timerForCheckTokensList) return;
+       timerForCheckTokensList = [NSTimer scheduledTimerWithTimeInterval:TOKENS_REFRESH_TIME_IN_SEC 
+                                                                                                                          target:self 
+                                                                                                                        selector:@selector(updateAfsStatus:) 
+                                                                                                                        userInfo:nil 
+                                                                                                                         repeats:YES];
+       [timerForCheckTokensList fire]; 
+}
+
+// -------------------------------------------------------------------------------
+//  stopTimer:
+// -------------------------------------------------------------------------------
+- (void)stopTimer{
+       if(!timerForCheckTokensList) return;
+       [timerForCheckTokensList invalidate];   
+       timerForCheckTokensList = nil;
+}
+// -------------------------------------------------------------------------------
+//  -(void) dealloc
+// -------------------------------------------------------------------------------
+- (void) dealloc
+{
+    [theMenu release];
+    [theView release];
+       if(afsSysPath) [afsSysPath release];
+       // send notify that menuextra has closed
+       [[NSDistributedNotificationCenter defaultCenter] postNotificationName:afsCommanderID object:kPrefChangeNotification];
+    [super dealloc];
+}
+
+// -------------------------------------------------------------------------------
+//  -(NSMenu*) menu
+// -------------------------------------------------------------------------------
+- (NSMenu *) menu
+{
+    return theMenu;
+}
+
+
+// -------------------------------------------------------------------------------
+//  -(void) readPreferenceFile
+// -------------------------------------------------------------------------------
+- (void) readPreferenceFile:(NSNotification *)notification
+{
+       NSLog(@"Reading preference file");
+       //CFPreferencesSynchronize((CFStringRef)afsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+       //CFPreferencesSynchronize((CFStringRef)afsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+       
+       if(afsSysPath) {
+               [afsSysPath release];
+               afsSysPath = nil;
+       }
+       
+       afsSysPath = PREFERENCE_AFS_SYS_PAT_STATIC;/*(NSString*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AFS_SYS_PAT, 
+                                                                                                  (CFStringRef)afsCommanderID,  
+                                                                                                  kCFPreferencesAnyUser, 
+                                                                                                  kCFPreferencesAnyHost);*/
+       //NSLog(@"Path readed %s", (afsSysPath==nil?[afsSysPath UTF8String]:@" no path found "));
+               
+       // read the preference for aklog use
+       useAklogPrefValue = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_AKLOG, 
+                                                                                                                 (CFStringRef)afsCommanderID, 
+                                                                                                                 kCFPreferencesCurrentUser, 
+                                                                                                                 kCFPreferencesAnyHost);
+       //set the menu name
+       //NSLog(@"Preference readed for useAklogPrefValue %d", [useAklogPrefValue intValue]);
+       
+       [self updateAfsStatus:nil];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) readPreferenceFile
+// -------------------------------------------------------------------------------
+- (void)startStopAfs:(id)sender
+{
+       NSLog(@"startStopAfs: %s",[afsSysPath UTF8String]);
+       if(!afsSysPath) return;
+       
+       OSStatus status = noErr;
+       NSString *afsdPath = [TaskUtil searchExecutablePath:@"afsd"];
+       NSString *rootHelperApp = nil;
+       BOOL currentAfsState = NO;
+       
+       @try {
+               if(afsdPath == nil) return;
+               AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
+               currentAfsState = [afsMngr checkAfsStatus];
+               [afsMngr release];
+               
+               rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+               
+               //[startStopScript setString: resourcePath];
+               //NSLog(@"LAunch repair HelperTool");
+               //Check helper app
+               [self repairHelperTool];
+               
+               // make the parameter to call the root helper app
+               //NSLog(@"Path installazione afs: %s",[afsSysPath UTF8String]);
+               //NSLog(@"Path installazione afsd: %s", [afsdPath UTF8String]);
+               status = [[AuthUtil shared] autorize];
+               if(status == noErr){
+                       if(currentAfsState){
+                               //shutdown afs
+                               //NSLog(@"Shutting down afs");
+                               NSMutableString *afsKextPath = [[NSMutableString alloc] initWithCapacity:256];
+                               [afsKextPath setString:afsSysPath];
+                               [afsKextPath appendString:@"/etc/afs.kext"];
+                               
+                               //NSLog(@"executeTaskWithAuth");
+                               const char *stopAfsArgs[] = {"stop_afs", [afsKextPath  UTF8String], [afsdPath UTF8String], 0L};
+                               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                                         args:stopAfsArgs
+                                                                                       output:nil];
+                       } else {
+                               //NSLog(@"Starting up afs");
+                               const char *startAfsArgs[] = {[[[self bundle] pathForResource:@"start_afs" ofType:@"sh"]  UTF8String], [afsSysPath UTF8String], [afsdPath UTF8String], 0L};
+                               [[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
+                                                                                         args:startAfsArgs
+                                                                                       output:nil];
+                       }
+               }
+       }
+       @catch (NSException * e) {
+               NSLog([e reason]);
+       }
+       @finally {
+               [[AuthUtil shared] deautorize];
+               [self updateAfsStatus:nil];
+               //Send notification to preferencepane
+               [[NSDistributedNotificationCenter defaultCenter] postNotificationName:afsCommanderID object:kMenuExtraEventOccured];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) getToken
+// -------------------------------------------------------------------------------
+- (void)getToken:(id)sender
+{
+       
+       NSRect globalRect;
+       globalRect.origin = [[[self view] window] convertBaseToScreen:[[self view] frame].origin];
+       globalRect.size = [[self view] frame].size;
+       AFSPropertyManager *afsPropMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath ];
+       [afsPropMngr loadConfiguration]; 
+       
+       
+       if([useAklogPrefValue intValue]==NSOnState ) {
+               NSLog(@"Use Aklog");
+               [afsPropMngr getTokens:false 
+                                                  usr:nil 
+                                                  pwd:nil];
+               [self klogUserEven:nil];
+       } else {
+               NSLog(@"Use Klog");
+               // register for user event
+               [[NSDistributedNotificationCenter defaultCenter] addObserver:self 
+                                                                                                                       selector:@selector(klogUserEven:) 
+                                                                                                                               name:kAFSMenuExtraID 
+                                                                                                                         object:kLogWindowClosed];
+       
+               credentialMenuController = [[AFSMenuCredentialContoller alloc] initWhitRec:globalRect 
+                                                                                                                                       afsPropManager:afsPropMngr];
+               [credentialMenuController showWindow];
+       }
+       
+       //Dispose afs manager
+       [afsPropMngr release];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) releaseToken
+// -------------------------------------------------------------------------------
+- (void)releaseToken:(id)sender
+{
+       AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
+       [afsMngr unlog:nil];
+       [afsMngr release];
+       [self updateAfsStatus:nil];
+}
+
+
+// -------------------------------------------------------------------------------
+//  -(void) afsVolumeMountChange - Track for mount unmount afs volume
+// -------------------------------------------------------------------------------
+- (void) afsVolumeMountChange:(NSNotification *)notification{
+       [self updateAfsStatus:nil];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) updateAfsStatus
+// -------------------------------------------------------------------------------
+- (void)updateAfsStatus:(NSTimer*)timer
+{
+       //Try to locking
+       if(![tokensLock tryLock]) return;
+       
+       // check the afs state in esclusive mode
+       AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
+       afsState = [afsMngr checkAfsStatus];
+       
+       NSArray *tokens = [afsMngr getTokenList];
+       [afsMngr release];
+       gotToken = [tokens count] > 0;
+       [tokens release];
+       // update the menu item title
+       [startStopMenu setTitle:afsState?kAfsButtonShutdown:kAfsButtonStartup];
+       
+       [self updateMenu];
+       
+       [theView setNeedsDisplay:YES];
+       
+       //unlock
+       [tokensLock unlock];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) klogUserEven
+// -------------------------------------------------------------------------------
+-(void) klogUserEven:(NSNotification *)notification
+{
+       if(credentialMenuController) {
+               [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:kAFSMenuExtraID object:kLogWindowClosed];
+               [credentialMenuController closeWindow];
+               [credentialMenuController release];
+               credentialMenuController = nil;
+       }
+       //Send notification to PreferencePane
+       [[NSDistributedNotificationCenter defaultCenter] postNotificationName:afsCommanderID object:kMenuExtraEventOccured];
+       
+       [self updateAfsStatus:nil];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) getImageFromBundle
+// -------------------------------------------------------------------------------
+- (NSImage*)getImageFromBundle:(NSString*)fileName fileExt:(NSString*)ext
+{
+       return [[NSImage alloc]initWithContentsOfFile:[[self bundle] pathForResource:fileName 
+                                                                                                                                  ofType:ext]];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) imageToRender
+// -------------------------------------------------------------------------------
+- (NSImage*)imageToRender
+{
+       if(gotToken){
+               return hasTokenImage;
+       } else {
+               return noTokenImage;
+       }
+}
+
+
+// -------------------------------------------------------------------------------
+//  -(void) updateMenu
+// -------------------------------------------------------------------------------
+- (void)updateMenu{
+       [loginMenu setEnabled:afsState];
+       [unlogMenu setEnabled:afsState];
+}
+
+
+// -------------------------------------------------------------------------------
+//  -(void) useAklogPrefValue
+// -------------------------------------------------------------------------------
+- (BOOL)useAklogPrefValue
+{
+       if(useAklogPrefValue) return [useAklogPrefValue intValue] == NSOnState; 
+       else return NSOffState;
+}
+
+// -------------------------------------------------------------------------------
+//  repairHelperTool:
+// -------------------------------------------------------------------------------
+- (void) repairHelperTool
+{
+       struct stat st;
+    int fdTool;
+       int status = 0;
+       NSLog(@"repairHelperTool"); 
+       NSString *afshlpPath = [[self bundle] pathForResource:@"afshlp" ofType:nil];
+       
+       
+    
+    // Open tool exclusively, so nobody can change it while we bless it.
+    fdTool = open([afshlpPath UTF8String], O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
+    
+    if(fdTool == -1)
+    {
+        NSLog(@"Exclusive open while repairing tool failed: %d.", errno);
+        exit(-1);
+    }
+    
+    if(fstat(fdTool, &st))
+    {
+        NSLog(@"fstat failed.");
+        exit(-1);
+    }
+    
+    if(st.st_uid != 0)
+    {
+               status = [[AuthUtil shared] autorize];
+               if(status == noErr){
+                       fchown(fdTool, 0, st.st_gid);
+                       
+                       // Disable group and world writability and make setuid root.
+                       fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH)))/* | S_ISUID*/);
+                       const char *args[] = {"root", [afshlpPath UTF8String],0L};
+                       [[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" 
+                                                                                 args:args
+                                                                               output:nil];
+                       [[AuthUtil shared] deautorize];
+               }
+    } else  NSLog(@"st_uid = 0");
+    
+       
+    
+    close(fdTool);
+    
+    NSLog(@"Self-repair done.");
+       
+}@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuExtraView.h b/src/platform/DARWIN/AFSPreference/AFSMenuExtraView.h
new file mode 100644 (file)
index 0000000..8869c1c
--- /dev/null
@@ -0,0 +1,18 @@
+//
+//  AFSMenuExtraView.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 11/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "SystemUIPlugin.h"
+#import "AFSMenuExtra.h"
+
+@interface AFSMenuExtraView : NSMenuExtraView {
+       AFSMenuExtra    *theMenuExtra;
+
+}
+- (NSAttributedString*) makeKerberosIndicator:(int*)fontHeight;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSMenuExtraView.m b/src/platform/DARWIN/AFSPreference/AFSMenuExtraView.m
new file mode 100644 (file)
index 0000000..0c6aee8
--- /dev/null
@@ -0,0 +1,72 @@
+//
+//  AFSMenuExtraView.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 11/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "AFSMenuExtraView.h"
+#import "AFSPropertyManager.h"
+@implementation AFSMenuExtraView
+
+- initWithFrame:(NSRect)myRect menuExtra:(AFSMenuExtra*)myExtra {
+       
+       // Have super init
+       self = [super initWithFrame:myRect];
+       if(!self) {
+               return nil;
+       }
+       
+       // Store our extra
+       theMenuExtra = myExtra;
+
+       // Send it on back
+    return self;
+       
+} // initWithFrame
+
+- (void)dealloc {
+       
+    [super dealloc];
+       
+} // dealloc
+
+- (void)drawRect:(NSRect)rect 
+{
+       NSImage *image = nil;
+       int fontHeight = 0;
+       NSAttributedString *kerberosStringIndicator = nil;
+       
+       image = [theMenuExtra imageToRender];
+    if (image) {
+               // Live updating even when menu is down handled by making the extra
+               // draw the background if needed.
+               if ([theMenuExtra isMenuDown]) {
+                       [theMenuExtra drawMenuBackground:YES];
+               }
+               [image compositeToPoint:NSMakePoint(0, 0) operation:NSCompositeSourceOver];
+       }
+       
+       //Draw, if necessary, the kerberos indicator for aklog usage for get token
+       if([theMenuExtra useAklogPrefValue] == NSOnState) {
+               kerberosStringIndicator = [[self makeKerberosIndicator:&fontHeight] autorelease];
+               if(kerberosStringIndicator) [kerberosStringIndicator drawAtPoint:NSMakePoint(0, kMenuBarHeight-fontHeight)];
+       }
+}
+
+/*!
+    @method     makeKerberosIndicator
+    @abstract   Make the kerberos indicator
+    @discussion Make a letter to render in menu view to inform the user if is enable aklog use
+*/
+- (NSAttributedString*) makeKerberosIndicator:(int*)fontHeight  {
+       NSFont *font = [NSFont fontWithName:@"Palatino-Roman" size:9.0];
+       NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:font
+                                                                                                                               forKey:NSFontAttributeName];
+       NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"K"
+                                                                                                                                        attributes:attrsDictionary];
+       *fontHeight = [attrString size].height;
+       return attrString;
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h
new file mode 100644 (file)
index 0000000..9b1ab28
--- /dev/null
@@ -0,0 +1,397 @@
+//
+//  AFSPropertyManager.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/05/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "DBCellElement.h"
+#import "FileUtil.h"
+
+/*!
+    @class             AFSPropertyManager
+    @abstract   AFS Manage Class
+    @discussion This class manage the openafs param for celldbserv, cache param, group creation, get and release token
+*/
+
+@interface AFSPropertyManager : NSObject {
+       NSString *installationPath;
+       NSString *cellName;
+       NSMutableArray *cellList;
+       NSArray *userDefaultCellArray;
+       NSString *afsRootMountPoint;
+       int statCacheEntry;
+       int dCacheDim;
+       int     cacheDimension;
+       int daemonNumber;
+       int nVolEntry;
+       bool dynRoot;
+       bool afsDB;
+       bool verbose;
+       
+       //-------------------
+       FileUtil *futil;
+       BOOL useAfsdConfVersion;
+}
+
+/*!
+    @method     
+    @abstract   (brief description)
+    @discussion (comprehensive description)
+*/
+-(id) init;
+
+/*!
+@function      initWithAfsPath
+ @abstract   (description)
+ @discussion (description)
+ @param      path Path di installazione afs
+ @result     Istanza della classe di gestione delle propieta' afs
+ */
+- (id)initWithAfsPath:(NSString*)path;
+
+/*!
+    @method     
+    @abstract   (brief description)
+    @discussion (comprehensive description)
+*/
+-(void) dealloc;
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */
+-(NSMutableArray*) getCellList;
+
+
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */
+-(NSArray*) getAllCellsName;
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */
+-(NSArray*) getUserDefaultForTokenCells;
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */
+-(NSArray*) getDefaultForTokenCellsName;
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */
+-(NSString*) getDefaultCellName;
+
+/*!
+ @method     setDefaultCellByName
+ @abstract   set the cell named "name" to be se user default
+ @discussion first clean the last one selected as default and then  set the cell named "name" as default user cell
+ */
+-(void) setDefaultCellByName:(NSString*)name;
+
+/*!
+ @method     
+ @abstract   (brief description)
+ @discussion (comprehensive description)
+ */- (void) setCellName:(NSString*)cell;
+
+/*!
+    @method     setPath
+    @abstract   Imposta Path
+    @discussion Imposta il path dove e' installato afs, in modo da leggere e scrivere le configurazioni
+*/
+-(void) setPath:(NSString*)path;
+
+/*!
+    @method     path
+    @abstract   Return the afs base
+    @discussion Return the Afs base installation path
+*/
+-(NSString*) path;
+
+/*!
+ @function      statCacheEntry
+ @abstract   get the afs number of state cache entry
+ @discussion 
+ @result     Number of stat cache entry
+ */
+-(int) statCacheEntry;
+
+
+/*!
+ @function      setStatCacheEntry
+ @abstract   Set the afs number of state cache entry
+ @discussion 
+ @result     Number of stat cache entry
+ */
+-(void) setStatCacheEntry:(int)statEntry;
+
+/*!
+@function      dCacheDim
+@abstract   return the dCacheDim param value for cache manager
+@result     dCacheDim value
+*/
+-(int) dCacheDim;
+
+/*!
+ @function      setDCacheDim
+ @abstract   set the setDCacheDim value for cache manager param
+ @discussion <#(description)#>
+ @param      dcacheDim cache param value
+ */
+-(void) setDCacheDim:(int)dcacheDim;
+
+/*!
+ @function      cacheDimension
+ @abstract   return the max size of the cache 
+ @result     Cache  dimension
+ */
+-(int) cacheDimension;
+
+/*!
+ @function     setCacheDimension
+ @abstract   Set the max cache dimension
+ @discussion 
+ @param      cacheDim MAx Chace dimension
+ */
+-(void) setCacheDimension:(int)cacheDim;
+
+/*!
+ @function      daemonNumber
+ @abstract   Return the number of daemon for the cache manager
+ @result     Number of daemon
+ */
+-(int) daemonNumber;
+
+/*!
+ @function      setDaemonNumber
+ @abstract   Set the daemon numbero for the cache manager
+ @param      dNumber number of daemon
+ */
+-(void) setDaemonNumber:(int)dNumber;
+
+/*!
+ @function      afsRootMountPoint
+ @abstract   Return the path where afs root volume will be mounted
+ @result     AFS mount point
+ */
+-(NSString*) afsRootMountPoint;
+
+/*!
+ @function      setAfsRootMountPoint
+ @abstract   Set the AFS mount point
+ @param      mountPoint AFS mount point
+ */
+-(void) setAfsRootMountPoint:(NSString*)mountPoint;
+
+/*!
+ @function      nVolEntry
+ @abstract   Return the nVolEntry for cache manager
+ @result     value for nVolEntry cache parameter
+ */
+-(int) nVolEntry;
+
+/*!
+ @function      setNVolEntry
+ @abstract   Set the nVolEntry parameter for cache manager
+ @param      entry value for nVolEntry cache manager parameter
+ */
+-(void) setNVolEntry:(int)entry;
+
+/*!
+ @function      dynRoot
+ @abstract   Return the DynRoot parametr for cache manager
+ @result     dynRoot parameter value
+ */
+-(bool) dynRoot;
+
+/*!
+ @function      setDynRoot
+ @abstract   Set the DynRoot flag value for cache manager
+ @param      flag dynRoot state (enable/disable)
+ */
+-(void) setDynRoot:(bool)flag;
+/*!
+ @function      afsDB
+ @abstract   Get the afsdb flag value for cache manager
+ @result     Return the value of the flag
+ */
+-(bool) afsDB;
+
+/*!
+ @function      setAfsDB
+ @abstract   Set the flag value for afsdb cache manager
+ @param      flag AfsDB state (enable/disable)
+ */
+-(void) setAfsDB:(bool)flag;
+/*!
+ @function      verbose
+ */
+-(bool) verbose;
+
+/*!
+ @function      setVerbose
+ */
+-(void) setVerbose:(bool)flag;
+/*!
+ @function      readCacheInfo
+ @abstract   Read the cache info
+ @discussion The cache info is read from the file pointed by filePath param
+ @param      filePath file location for the CacheInfo
+ */
+-(void) readCacheInfo:(NSString*)filePath;
+
+/*!
+ @function      writeCacheInfo
+ @abstract   Write the cache info down the file
+ @param      filePath where to write the CacheInfo
+ @result     return the execution error
+ */
+-(int) writeCacheInfo:(NSString*)filePath;
+
+/*!
+ @function      readAfsdOption
+ @abstract   Read the afs option
+ @discussion Read the afs option checking firt the afs version so it can read the old afsd.option or afs.conf file. If any error accour an NSException wil be trown
+ @param      filePath file where the parameter are store for default afsd.option or afs.conf
+ */
+-(void) readAfsdOption:(NSString*)filePath;
+
+/*!
+ @function      readOldAfsdOption
+ @abstract   Read the afsd.option file
+ @discussion Read the old afsd.option style afsd option file. If any error accour an NSException wil be trown22
+ @param      filePath file path to afsd.option like file
+ @result     <#(description)#>
+ */
+-(void) readOldAfsdOption:(NSString*)filePath;
+/*!
+ @function      readAFSDParamLineContent
+ @abstract   Try to decode one line of afsd.option or afs.conf
+ @param      paramLine one line of file afsd.option(the only one that is present) os afs.conf
+ */
+-(void) readAFSDParamLineContent:(NSString*)paramLine;
+/*!
+ @function      readNewAfsdOption
+ @abstract   Read the new afs.conf file format
+ @discussion Scann every line f the afs.conf file ad for each one call the readAFSDParamLineContent with it's content
+ @param      filePath path of the new file with afs.conf file format
+ */
+-(void) readNewAfsdOption:(NSString*)filePath;
+/*!
+ @function      writeAfsdOption
+ @abstract   <#(description)#>
+ @discussion <#(description)#>
+ @param      <#(name) (description)#>
+ @result     <#(description)#>
+ */
+-(int) writeAfsdOption:(NSString*)filePath;
+/*!
+ @function      writeOldAfsdOption
+ @abstract   Write the cache manager parameter to file
+ @discussion First chech the version of afs installed then choice to save old o new file version(afsd.option or afs.conf)
+ @param      filePath file path for file to write into
+ @result     <#(description)#>
+ */
+-(int) writeOldAfsdOption:(NSString*)filePath;
+/*!
+ @function      writeNewAfsdOption
+ @abstract   Write the cache parameter to a file with the new format
+ @param      filePath file path where write into
+ */
+-(int) writeNewAfsdOption:(NSString*)filePath;
+/*!
+ @function      getAfsVersion
+ @abstract   Return the string representing the afs version
+ @result     The Enteir string returned from the call of fs -version
+ */
+-(NSString*) getAfsVersion;
+/*!
+ @function      getAfsMajorVersionVersion
+ @abstract   Return the major version of afs Major.x.x
+ @result     
+ */
+-(int) getAfsMajorVersionVersion;
+/*!
+ @function      getAfsMinorVersionVersion
+ @abstract   Return the major version of afs x.Minor.x
+ @result     
+ */
+-(int) getAfsMinorVersionVersion;
+
+/*!
+ @function      getAfsPatchVersionVersion
+ @abstract   Return the major version of afs x.x.Patch
+ @result     
+ */
+-(int) getAfsPatchVersionVersion;
+
+/*!
+ @method     clearConfiguration
+ @abstract   Clear all structure or array that contain value for afs client setting(cells cache param etch)
+ @discussion 
+        */
+-(void) clearConfiguration;
+
+/*!
+ @function      exceptionOnInvalidPath
+ @abstract   Check the validity of afs path
+ @discussion If the installationPath variable don't point to a valid path, will be fired an NSException
+ */
+-(void) exceptionOnInvalidPath;
+
+/*!
+    @method     loadConfiguration
+    @abstract   load the all afs configuration (ThisCell & CellServDB & cache parameter)
+*/
+-(void) loadConfiguration;
+
+/*!
+    @method     readCellInfo
+    @abstract   Read the Main Cell Name
+*/
+-(void) readCellInfo:(NSString*) configFile;
+/*!
+    @method     readCellDB
+    @abstract   Read the CellServDB File
+    @discussion Read the file of all cellservbd ad make the NSArray containing a DBCellElement for aech cell found
+*/
+-(void) readCellDB:(NSString*) configFile;
+/*!
+    @function  readTheseCell
+    @abstract   Read the "These Cell"
+    @discussion Read the "These Cell" file that contains all the cell from which the user want to get the token
+    @param      configFile TheseCell file path
+    @result     NSAray with the cells name
+*/
+-(NSArray*) readTheseCell:(NSString*) configFile;
+/*!
+    @method     shutdown
+    @abstract   Stop The AFS
+*/
+-(void) shutdown;
+
+-(void) scanIpForCell:(DBCellElement*) cellElement allIP:(NSString*)allIP;
+-(void) backupConfigurationFiles;
+-(void) backupFile:(NSString*)localAfsFilePath;
+-(void) saveConfigurationFiles:(BOOL) makeBackup;
+-(void) saveCacheConfigurationFiles:(BOOL) makeBackup;
+-(void) installConfigurationFile:(NSString*)srcConfFile destPath:(NSString*) destPath;
+-(NSArray*) getTokenList;
+-(BOOL) checkAfsStatus;
+-(void) klog:(NSString*)uName uPwd:(NSString*)uPwd  cell:(NSString*)theCell;
+-(void) aklog:(NSString*)theCell noKerberosCall:(BOOL)krb5CallEnable;
+-(void) getTokens:(BOOL)klogAklogFlag usr:(NSString*)usr pwd:(NSString*)pwd;
+-(void) unlog:(NSString*)cell;
+-(NSString*) makeChaceParamString;
+-(BOOL) useAfsdConfConfigFile;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m
new file mode 100644 (file)
index 0000000..aaefbd5
--- /dev/null
@@ -0,0 +1,1418 @@
+//
+//  AFSPropertyManager.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/05/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Kerberos/Kerberos.h>
+#import "AFSPropertyManager.h"
+#import "TaskUtil.h"
+
+#define kKerberosAuthError                                     NSLocalizedStringFromTableInBundle(@"KerberosAuthError",nil,[NSBundle bundleForClass:[self class]],@"KerberosAuthError")
+#define kPathNotEmpty                                          NSLocalizedStringFromTableInBundle(@"PathNotEmpty",nil,[NSBundle bundleForClass:[self class]],@"PathNotEmpty")
+#define kPathDontContainAfsInstallation                NSLocalizedStringFromTableInBundle(@"PathDontContainAfsInstallation",nil,[NSBundle bundleForClass:[self class]],@"PathDontContainAfsInstallation")
+#define kThisCellFOError                                       NSLocalizedStringFromTableInBundle(@"ThisCellFOError",nil,[NSBundle bundleForClass:[self class]],@"ThisCellFOError")
+#define kConfFileNotExits                                      NSLocalizedStringFromTableInBundle(@"ConfFileNotExits",nil,[NSBundle bundleForClass:[self class]],@"ConfFileNotExits")
+#define kUserNotAuth                                           NSLocalizedStringFromTableInBundle(@"UserNotAuth",nil,[NSBundle bundleForClass:[self class]],@"UserNotAuth")
+#define kBadAfsPath                                                    NSLocalizedStringFromTableInBundle(@"BadAfsPath",nil,[NSBundle bundleForClass:[self class]],@"BadAfsPath")
+
+#define AFS_TOOLS_DIRECTORY /Library/Openafs/
+#define AFS_TOOLS_BIN(x) "/Library/Openafs/bin/"#x
+#define AFS_CACHE_PATH "/var/db/openafs/cache"
+
+#define AFSD_TMP_OLD_PREFERENCE_FILE @"/tmp/afsd.options"  
+#define AFSD_TMP_NEW_PREFERENCE_FILE @"/tmp/afs.conf"
+#define AFSD_OLD_PREFERENCE_FILE @"/etc/config/afsd.options" 
+#define AFSD_NEW_PREFERENCE_FILE @"/etc/config/afs.conf"
+
+
+//-afsdb -stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all
+#define AFSD_OPTION_AFSDB_KEY  "-afsdb"
+#define AFSD_OPTION_VERBOSE_KEY        "-verbose"
+#define AFSD_OPTION_STAT_KEY   "-stat"
+#define AFSD_OPTION_DCACHE_KEY "-dcache"
+#define AFSD_OPTION_DAEMONS_KEY        "-daemons"
+#define AFSD_OPTION_VOLUMES_KEY        "-volumes"
+#define AFSD_OPTION_DYNROOT_KEY        "-dynroot"
+#define AFSD_OPTION_FKESTAT_ALL "-fakestat-all"
+
+#define AFSD_CONF_VERBOSE              @"VERBOSE"
+#define AFSD_CONF_OPTION               @"OPTIONS"
+#define AFSD_CONF_SYSNAME              @"AFS_SYSNAME"
+#define AFSD_CONF_POST_INI             @"AFS_POST_INIT"
+#define AFSD_CONF_PRE_SHUTDOWN @"AFS_PRE_SHUTDOWN"
+
+#define AFS_CONF_CHANGE_FROM_Mj_VERSION 1
+#define AFS_CONF_CHANGE_FROM_Mi_VERSION 4
+#define AFS_DEV_CONF_CHANGE_FROM_Mi_VERSION 5
+#define AFS_CONF_CHANGE_FROM_Pa_VERSION 7
+#define AFS_DEV_CONF_CHANGE_FROM_Pa_VERSION 31
+
+@implementation AFSPropertyManager
+
+
+// -------------------------------------------------------------------------------
+//  init:
+// -------------------------------------------------------------------------------
+-(id) init
+{
+       [super init];
+       cellList = [[NSMutableArray alloc] init];
+       cellName = nil;
+       userDefaultCellArray = nil;
+       useAfsdConfVersion = NO;
+       dynRoot = NO;
+       afsDB = NO;
+       verbose = NO;
+       futil = [[FileUtil alloc] init];
+       return self;
+}
+
+// -------------------------------------------------------------------------------
+//  initWithAfsPath:
+// -------------------------------------------------------------------------------
+- (id)initWithAfsPath:(NSString*)path
+{
+       // avvio la creazione standard dell'oggetto
+       if([self init]){
+               // imposto il path
+               [self setPath:path];
+       }
+       return self;
+}
+
+// -------------------------------------------------------------------------------
+//  dealloc:
+// -------------------------------------------------------------------------------
+-(void) dealloc
+{
+       if(installationPath){ [installationPath release]; NSLog(@"Released installationPath"); }
+       if(cellList) { NSLog(@"Released cellList");[cellList removeAllObjects];[cellList release];}
+       if(cellName) { NSLog(@"Released cellName");[cellName release];}
+       if(futil) {
+               [futil endAutorization];
+               [futil release];
+               futil = nil; 
+       }
+       [super dealloc];
+}
+
+// -------------------------------------------------------------------------------
+//  setPath:
+// -------------------------------------------------------------------------------
+- (void) setPath:(NSString*)path {
+       if(installationPath)[installationPath release];
+       
+       if(path)
+               installationPath = [path retain];
+}
+
+// -------------------------------------------------------------------------------
+//  path:
+// -------------------------------------------------------------------------------
+- (NSString*) path{
+       return installationPath;
+}
+
+// -------------------------------------------------------------------------------
+//  statCacheEntry:
+// -------------------------------------------------------------------------------
+-(int) statCacheEntry
+{
+       return statCacheEntry;
+}
+
+// -------------------------------------------------------------------------------
+//  setStatCacheEntry:
+// -------------------------------------------------------------------------------
+-(void) setStatCacheEntry:(int)statEntry
+{
+       statCacheEntry = statEntry;
+}
+
+
+// -------------------------------------------------------------------------------
+//  dCacheDim:
+// -------------------------------------------------------------------------------
+-(int) dCacheDim
+{
+       return dCacheDim;
+}
+
+// -------------------------------------------------------------------------------
+//  setDCacheDim:
+// -------------------------------------------------------------------------------
+-(void) setDCacheDim:(int)dcDim
+{
+       dCacheDim = dcDim;
+}
+
+// -------------------------------------------------------------------------------
+//  cacheDimension:
+// -------------------------------------------------------------------------------
+-(int) cacheDimension
+{
+       return cacheDimension;
+}
+
+// -------------------------------------------------------------------------------
+//  setCacheDimension:
+// -------------------------------------------------------------------------------
+-(void) setCacheDimension:(int)cacheDim
+{
+       cacheDimension = cacheDim;
+}
+
+// -------------------------------------------------------------------------------
+//  daemonNumber:
+// -------------------------------------------------------------------------------
+-(int) daemonNumber
+{
+       return daemonNumber;
+}
+
+// -------------------------------------------------------------------------------
+//  setDaemonNumber:
+// -------------------------------------------------------------------------------
+-(void) setDaemonNumber:(int)dNumber
+{
+       daemonNumber = dNumber;
+}
+
+// -------------------------------------------------------------------------------
+//  afsRootMountPoint:
+// -------------------------------------------------------------------------------
+-(NSString*) afsRootMountPoint
+{
+       return afsRootMountPoint;
+}
+
+// -------------------------------------------------------------------------------
+//  setAfsRootMountPoint:
+// -------------------------------------------------------------------------------
+-(void) setAfsRootMountPoint:(NSString*)mountPoint
+{
+       if(afsRootMountPoint)[afsRootMountPoint release];
+       
+       if(mountPoint)
+               afsRootMountPoint = [mountPoint retain];
+}
+
+// -------------------------------------------------------------------------------
+//  nVolEntry:
+// -------------------------------------------------------------------------------
+-(int) nVolEntry
+{
+       return nVolEntry;
+}
+
+// -------------------------------------------------------------------------------
+//  setNVolEntry:
+// -------------------------------------------------------------------------------
+-(void) setNVolEntry:(int)entry
+{
+       nVolEntry = entry;
+}
+
+// -------------------------------------------------------------------------------
+//  dynRoot:
+// -------------------------------------------------------------------------------
+-(bool) dynRoot
+{
+       return dynRoot;
+}
+
+// -------------------------------------------------------------------------------
+//  setDynRoot:
+// -------------------------------------------------------------------------------
+-(void) setDynRoot:(bool)flag
+{
+       dynRoot = flag;
+}
+
+// -------------------------------------------------------------------------------
+//  dynRoot:
+// -------------------------------------------------------------------------------
+-(bool) afsDB
+{
+       return afsDB;
+}
+
+// -------------------------------------------------------------------------------
+//  setDynRoot:
+// -------------------------------------------------------------------------------
+-(void) setAfsDB:(bool)flag
+{
+       afsDB = flag;
+}
+
+// -------------------------------------------------------------------------------
+//  setDynRoot:
+// -------------------------------------------------------------------------------
+-(bool) verbose
+{
+       return verbose;
+}
+
+// -------------------------------------------------------------------------------
+//  setDynRoot:
+// -------------------------------------------------------------------------------
+-(void) setVerbose:(bool)flag
+{
+       verbose = flag;
+}
+
+// -------------------------------------------------------------------------------
+//  useAfsdConfVersion:
+// -------------------------------------------------------------------------------
+-(BOOL) useAfsdConfConfigFile
+{
+       return useAfsdConfVersion;
+}
+
+// -------------------------------------------------------------------------------
+//  exceptionOnInvalidPath:
+// -------------------------------------------------------------------------------
+- (void) exceptionOnInvalidPath
+{
+       if(!installationPath || ([installationPath length] == 0)) {
+               @throw [NSException exceptionWithName:@"AFSPropertyManager:exceptionOnInvalidPath" 
+                                                                          reason:kPathNotEmpty 
+                                                                        userInfo:nil];                 
+       }
+       if(![[NSFileManager defaultManager] fileExistsAtPath:installationPath]){
+               @throw [NSException exceptionWithName:@"AFSPropertyManager:exceptionOnInvalidPath" 
+                                                                          reason:kPathDontContainAfsInstallation
+                                                                        userInfo:nil];                 
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  loadConfiguration:
+// -------------------------------------------------------------------------------
+- (void) loadConfiguration {
+       int mjVersion = [self getAfsMajorVersionVersion];
+       int miVersion = [self getAfsMinorVersionVersion];
+       int paVersion = [self getAfsPatchVersionVersion];
+       
+       NSMutableString *filePath = [[NSMutableString alloc] initWithCapacity:256];
+       @try{
+               
+               [self exceptionOnInvalidPath];
+               [self clearConfiguration];
+               
+               //chech the afs version for chioce wich afsd conf file usage
+               useAfsdConfVersion = mjVersion >= 1 && miVersion>=4 && paVersion>=7;
+               useAfsdConfVersion = useAfsdConfVersion || (mjVersion >= 1 && miVersion>=6 && paVersion>=31);
+               
+               // read thiscell config file
+               [filePath setString:installationPath];
+               [filePath appendString: @"/etc/ThisCell"];
+               NSLog(@"Search for cell name.");
+               [self readCellInfo:filePath];
+               if(!cellName){
+                       @throw [NSException exceptionWithName:@"readCellInfo" 
+                                                                       reason:kThisCellFOError 
+                                                                 userInfo:nil];
+               }
+               NSLog(@"Cell found: %s", [cellName cString]);
+               
+               //read TheseCell file
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/TheseCells"];
+               userDefaultCellArray = [self readTheseCell:filePath];
+               
+               //read cell serv db
+               NSLog(@"Scan for cell db");
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/CellServDB"];
+               [self readCellDB:filePath];
+               NSLog(@"Server found: %d", [cellList count]);
+               
+               
+               
+               //Read cacheinfo
+               NSLog(@"Scan cacheinfo file");
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/cacheinfo"];
+               [self readCacheInfo:filePath];
+               NSLog(@"End scan cacheinfo file");
+               
+               //Read config/afsd.options
+               [filePath setString: installationPath];
+               [filePath appendString: useAfsdConfVersion?AFSD_NEW_PREFERENCE_FILE:AFSD_OLD_PREFERENCE_FILE];
+               [self readAfsdOption:filePath];
+               
+       } @catch(NSException * e){
+               @throw e;
+       } @finally {
+               [filePath release];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  readCacheInfo:
+//  file template "/afs:/var/db/openafs/cache:30000"
+// -------------------------------------------------------------------------------
+-(void) readCacheInfo:(NSString*)filePath
+{
+       int cicle = 0;
+       NSString *tmpString = nil;
+       NSCharacterSet *fullStopCS = [NSCharacterSet characterSetWithCharactersInString:@":"];
+       NSMutableCharacterSet *chunkStartCS = [[NSMutableCharacterSet alloc] init];
+       [chunkStartCS formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
+       [chunkStartCS formUnionWithCharacterSet:[NSMutableCharacterSet characterSetWithCharactersInString:@"/"]];
+       
+       NSCharacterSet *returnCS = [NSCharacterSet characterSetWithCharactersInString:@"\n"];
+       NSFileHandle *fileH = [NSFileHandle fileHandleForReadingAtPath:filePath];
+       NSData *fileHData = [fileH readDataToEndOfFile];
+       NSString *cacheInfoStrData = [[NSString alloc] initWithData:fileHData
+                                                                                                          encoding:NSASCIIStringEncoding];
+       NSScanner *cacheInfoS = [NSScanner  scannerWithString:cacheInfoStrData];
+       
+       @try{
+               do {
+                       cicle++;
+                       switch(cicle){
+                               case 1:
+                                       // afs mount path
+                                       [cacheInfoS scanUpToCharactersFromSet:fullStopCS intoString:&tmpString];
+                                       [self setAfsRootMountPoint:tmpString];
+                                       [cacheInfoS scanUpToCharactersFromSet:chunkStartCS intoString:&tmpString];
+                                       break;
+                                       
+                               case 2:
+                                       //cache path default '/var/db/openafs/cache'
+                                       [cacheInfoS scanUpToCharactersFromSet:fullStopCS intoString:&tmpString];
+                                       [cacheInfoS scanUpToCharactersFromSet:chunkStartCS intoString:&tmpString];
+                                       break;
+                               
+                               case 3:
+                                       // cache dimension
+                                       [cacheInfoS scanUpToCharactersFromSet:returnCS intoString:&tmpString];
+                                       [self setCacheDimension:[tmpString intValue]];
+                                       break;
+                       }
+               }while(cicle < 3 && ![cacheInfoS isAtEnd]);
+       }@catch(NSException *e){
+               @throw e;
+       }@finally{
+               //if(cacheInfoStrData) [cacheInfoStrData release];
+               if(chunkStartCS) [chunkStartCS release];
+       }
+       
+}
+
+
+// -------------------------------------------------------------------------------
+//  writeCacheInfo:
+// -------------------------------------------------------------------------------
+-(int) writeCacheInfo:(NSString*)filePath
+{
+       NSNumber *tmpNum = nil;
+       NSMutableString *cacheInfoContent = [[NSMutableString alloc] init];
+       if(!cacheInfoContent) return -1;
+       
+       //Afs root mount point
+       if([[self afsRootMountPoint] rangeOfString:@"/"].location == NSNotFound || [[self afsRootMountPoint] length] == 0) 
+               @throw [NSException exceptionWithName:@"AFSPropertyManager:writeCacheInfo"  
+                                                                          reason:@"Bad afs path" 
+                                                                        userInfo:nil];
+       [cacheInfoContent appendString:[self afsRootMountPoint]];
+       
+       //standard cache path
+       
+       [cacheInfoContent appendString:@":"]; [cacheInfoContent appendString:@AFS_CACHE_PATH]; [cacheInfoContent appendString:@":"];
+       
+       //cache dimension
+       tmpNum = [NSNumber numberWithInt:[self cacheDimension]];
+       if([tmpNum intValue] == 0)
+               @throw [NSException exceptionWithName:@"AFSPropertyManager:writeCacheInfo"  
+                                                                          reason:@"Bad cache dimension" 
+                                                                        userInfo:nil];
+       [cacheInfoContent appendString:[tmpNum stringValue]];
+       
+       [cacheInfoContent writeToFile: [filePath stringByExpandingTildeInPath]
+                                          atomically: YES 
+                                                encoding: NSASCIIStringEncoding 
+                                                       error: nil];
+       
+       [cacheInfoContent release];
+       return noErr;
+}
+
+// -------------------------------------------------------------------------------
+//  readCacheInfo:
+//  file template "/afs:/var/db/openafs/cache:30000"
+// -------------------------------------------------------------------------------
+-(void) readAfsdOption:(NSString*)filePath
+{
+       @try{
+               if(useAfsdConfVersion) {
+                       [self readNewAfsdOption:filePath];
+               } else {
+                       [self readOldAfsdOption:filePath];
+               }
+       
+       }@catch(NSException *e){
+               @throw e;
+       }@finally{
+               
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  readOldAfsdOption:
+// -------------------------------------------------------------------------------
+-(void) readOldAfsdOption:(NSString*)filePath
+{
+
+       /*NSFileHandle *fileH = [NSFileHandle fileHandleForReadingAtPath:filePath];
+       NSData *fileHData = [fileH readDataToEndOfFile];
+       NSString *afsdOptionStrData = [[NSString alloc] initWithData:fileHData
+                                                                                                               encoding:NSASCIIStringEncoding];*/
+       if(!filePath) return;
+       [self readAFSDParamLineContent:[[NSString stringWithContentsOfFile:filePath] stringByStandardizingPath]];
+}
+
+// -------------------------------------------------------------------------------
+//  readAFSDParamLineContent:
+// -------------------------------------------------------------------------------
+-(void) readAFSDParamLineContent:(NSString*) paramLine{
+       NSString *tmpString = nil;
+       NSCharacterSet *space = [NSCharacterSet characterSetWithCharactersInString:@" "];
+       NSScanner *afsdOptionS = [NSScanner  scannerWithString:paramLine];
+       
+       do{
+               [afsdOptionS scanUpToCharactersFromSet:space intoString:&tmpString];
+               if(!tmpString) continue;
+               
+               NSLog(tmpString);
+               //check parameter type
+               if([tmpString isEqualToString:@AFSD_OPTION_DAEMONS_KEY])
+               {
+                       // get number of daemon
+                       [afsdOptionS scanUpToCharactersFromSet:space intoString:&tmpString];
+                       [self setDaemonNumber:[tmpString intValue]];
+               } else                          
+                       //check parameter type
+                       if([tmpString isEqualToString:@AFSD_OPTION_DCACHE_KEY])
+                       {
+                               //get dcache dimension
+                               [afsdOptionS scanUpToCharactersFromSet:space intoString:&tmpString];
+                               [self setDCacheDim:[tmpString intValue]];
+                       } else 
+                               //check parameter type
+                               if([tmpString isEqualToString:@AFSD_OPTION_DYNROOT_KEY])
+                               {
+                                       [self setDynRoot:true];
+                               } else 
+                                       if([tmpString isEqualToString:@AFSD_OPTION_VERBOSE_KEY])
+                                       {
+                                               [self setVerbose:true];
+                                       } else if([tmpString isEqualToString:@AFSD_OPTION_AFSDB_KEY])
+                                       {
+                                               [self setAfsDB:true];
+                                       } else
+                                               //check parameter type
+                                               if([tmpString isEqualToString:@AFSD_OPTION_STAT_KEY])
+                                               {
+                                                       // get fstat entry num
+                                                       [afsdOptionS scanUpToCharactersFromSet:space intoString:&tmpString];
+                                                       [self setStatCacheEntry:[tmpString intValue]];
+                                               } else
+                                                       
+                                                       //check parameter type
+                                                       if([tmpString isEqualToString:@AFSD_OPTION_VOLUMES_KEY])
+                                                       {
+                                                               // get fstat entry num
+                                                               [afsdOptionS scanUpToCharactersFromSet:space intoString:&tmpString];
+                                                               [self setNVolEntry:[tmpString intValue]];
+                                                       }
+               
+               
+               
+       }while(![afsdOptionS isAtEnd]);
+       
+}
+
+// -------------------------------------------------------------------------------
+//  readNewAfsdOption:
+// -------------------------------------------------------------------------------
+-(void) readNewAfsdOption:(NSString*)filePath
+{
+       if(!filePath) return;
+       NSString *currentLines = nil;
+       NSString *paramValue = nil;
+       NSScanner *lineScanner = nil;
+       
+       //Get file content
+       NSString *newAFSDConfContent = [NSString stringWithContentsOfFile:filePath];
+       
+       //get lines in array
+       NSArray *confLines = [newAFSDConfContent componentsSeparatedByString:@"\n"];
+       
+       //Get the lines enumerator
+       NSEnumerator *lineEnumerator = [confLines objectEnumerator];
+       
+       //scann all lines
+       while(currentLines = [lineEnumerator nextObject]) {
+               if([currentLines rangeOfString:@"#"].location != NSNotFound) continue;
+                       
+               if([currentLines rangeOfString:AFSD_CONF_OPTION].location != NSNotFound) {
+                       lineScanner = [NSScanner scannerWithString:currentLines];
+                       if(!lineScanner) continue;
+                       
+                       //scann the line
+                       
+                       [lineScanner scanUpToString:@"\"" intoString:&paramValue]; NSLog(paramValue);[lineScanner scanUpToString:@"-" intoString:&paramValue];
+                       [lineScanner scanUpToString:@"\"" intoString:&paramValue]; NSLog(paramValue);
+                       
+                       // read the asfd option param line
+                       [self readAFSDParamLineContent:paramValue];
+               } else if([currentLines rangeOfString:AFSD_CONF_SYSNAME].location != NSNotFound) {
+                       
+               } else if([currentLines rangeOfString:AFSD_CONF_POST_INI].location != NSNotFound) {
+                       
+               } else if([currentLines rangeOfString:AFSD_CONF_PRE_SHUTDOWN].location != NSNotFound) {
+                       
+               }
+       }
+}
+
+
+// -------------------------------------------------------------------------------
+//  writeCacheInfo:
+// -------------------------------------------------------------------------------
+-(int) writeAfsdOption:(NSString*)filePath
+{
+       int result = 0;
+       @try{
+               if(useAfsdConfVersion) {
+                       result = [self writeNewAfsdOption:filePath];                    
+               } else {
+                       result = [self writeOldAfsdOption:filePath];
+               }
+               
+       }@catch(NSException *e){
+               @throw e;
+       }@finally{
+               
+       }
+       return result;
+}
+
+// -------------------------------------------------------------------------------
+//  writeOldAfsdOption:
+// -------------------------------------------------------------------------------
+-(int) writeOldAfsdOption:(NSString*)filePath;
+{
+       NSMutableString *oldConfFileContent = [[[NSMutableString alloc] init] autorelease];
+       //add afsd param
+       [oldConfFileContent appendString:[self makeChaceParamString]];
+       
+       //add cariage return at end of file
+       [oldConfFileContent appendString:@"\n"];
+       
+       //write content on file
+       [oldConfFileContent writeToFile: [filePath stringByExpandingTildeInPath]
+                                                atomically: YES 
+                                                  encoding: NSASCIIStringEncoding 
+                                                         error: nil];
+       return noErr;
+       
+}
+
+// -------------------------------------------------------------------------------
+//  writeNewAfsdOption:
+//  OPTIONS=
+//  AFS_SYSNAME=
+//  AFS_POST_INIT=afs_server_prefs
+//  AFS_PRE_SHUTDOWN=
+// -------------------------------------------------------------------------------
+-(int) writeNewAfsdOption:(NSString*)filePath
+{
+       NSMutableString *newConfFileContent = [[[NSMutableString alloc] init] autorelease];
+       
+       //Verbose
+       [newConfFileContent appendString:AFSD_CONF_VERBOSE]; [newConfFileContent appendString:@"="]; [newConfFileContent appendString:@"\n"];
+       
+       //AFSD Option
+       [newConfFileContent appendString:AFSD_CONF_OPTION];[newConfFileContent appendString:@"=\""]; [newConfFileContent appendString:[self makeChaceParamString]]; [newConfFileContent appendString:@"\""]; [newConfFileContent appendString:@"\n"]; 
+       
+       //AFS_SYSNAME
+       [newConfFileContent appendString:AFSD_CONF_SYSNAME];[newConfFileContent appendString:@"=\""];[newConfFileContent appendString:@"\""]; [newConfFileContent appendString:@"\n"];
+       
+       //AFS_POST_INIT
+       [newConfFileContent appendString:AFSD_CONF_POST_INI];[newConfFileContent appendString:@"="]; [newConfFileContent appendString:@"\n"]; 
+       
+       //AFS_PRE_SHUTDOWN
+       [newConfFileContent appendString:AFSD_CONF_PRE_SHUTDOWN];[newConfFileContent appendString:@"="]; [newConfFileContent appendString:@"\n"];
+       
+       //add content on file
+       [newConfFileContent appendString:@"\n"];
+       
+       //Write to file
+       [newConfFileContent writeToFile: [filePath stringByExpandingTildeInPath]
+                                                atomically: YES 
+                                                  encoding: NSASCIIStringEncoding 
+                                                         error: nil];
+       return noErr;
+}
+
+// -------------------------------------------------------------------------------
+//  getAfsVersion:
+// -------------------------------------------------------------------------------
+-(NSString*) getAfsVersion
+{
+       NSString *tmpString = nil;
+       NSString *result = [TaskUtil executeTaskSearchingPath:@"fs" args:[NSArray arrayWithObjects:@"-version", nil]];
+       if(result) NSLog(@"fs -version return: %s", [result cString]);
+       
+       
+       NSCharacterSet *endVersionCS = [NSCharacterSet characterSetWithCharactersInString:@"qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAPOIUYTREWQ"];
+
+       NSCharacterSet *spaceCS = [NSCharacterSet characterSetWithCharactersInString:@" "];
+       NSScanner *versionS = [NSScanner  scannerWithString:result];
+       //go to  start of version
+       [versionS scanUpToCharactersFromSet:spaceCS intoString:&tmpString];
+       
+       //get the total version string
+       [versionS scanUpToCharactersFromSet:endVersionCS intoString:&tmpString];
+
+       return tmpString;
+}
+
+// -------------------------------------------------------------------------------
+//  getAfsMajorVersionVersion:
+// -------------------------------------------------------------------------------
+-(int) getAfsMajorVersionVersion
+{
+       NSString *tmpString = nil;
+       NSString *totalVersion = [self getAfsVersion];
+       NSCharacterSet *pointCS = [NSCharacterSet characterSetWithCharactersInString:@"."];
+       NSScanner *versionMS = [NSScanner  scannerWithString:totalVersion];
+       [versionMS scanUpToCharactersFromSet:pointCS intoString:&tmpString];
+       return [tmpString intValue];
+}
+
+// -------------------------------------------------------------------------------
+//  getAfsMinorVersionVersion:
+// -------------------------------------------------------------------------------
+-(int) getAfsMinorVersionVersion
+{
+       NSString *tmpString = nil;
+       NSString *totalVersion = [self getAfsVersion];
+       NSCharacterSet *numCS = [NSCharacterSet characterSetWithCharactersInString:@"1234567890"];
+       NSCharacterSet *pointCS = [NSCharacterSet characterSetWithCharactersInString:@"."];
+       NSScanner *versionMS = [NSScanner  scannerWithString:totalVersion];
+       [versionMS scanUpToCharactersFromSet:pointCS intoString:&tmpString];[versionMS scanUpToCharactersFromSet:numCS intoString:&tmpString];[versionMS scanUpToCharactersFromSet:pointCS intoString:&tmpString];
+       return [tmpString intValue];
+}
+
+// -------------------------------------------------------------------------------
+//  getAfsPatchVersionVersion:
+// -------------------------------------------------------------------------------
+-(int) getAfsPatchVersionVersion
+{
+       NSString *totalVersion = [self getAfsVersion];
+       NSCharacterSet *pointCS = [NSCharacterSet characterSetWithCharactersInString:@"."];
+       int lastPointIndex = [totalVersion rangeOfCharacterFromSet:pointCS 
+                                                                                                          options:NSBackwardsSearch].location;
+       int patchVersion = [[totalVersion substringFromIndex:lastPointIndex+1] intValue];
+       return patchVersion;
+}
+
+
+// -------------------------------------------------------------------------------
+//  clearConfiguration:
+// -------------------------------------------------------------------------------
+- (void) clearConfiguration{
+       
+       // clear list of cell
+       [cellList removeAllObjects];
+       
+       userDefaultCellArray= nil;
+       
+       // remove the old cell name
+       if(cellName) {
+               [cellName release];
+               cellName = nil;
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  getCellList:
+// -------------------------------------------------------------------------------
+-(NSMutableArray*) getCellList
+{
+       return cellList;
+}
+
+
+
+// -------------------------------------------------------------------------------
+//  getAllCellName:
+// -------------------------------------------------------------------------------
+-(NSArray*) getAllCellsName {
+       NSMutableArray *allCelListName = [[[NSMutableArray alloc] init] autorelease];
+       for(int idx = 0; idx < [cellList count]; idx++){
+               DBCellElement *elemnt = [cellList objectAtIndex:idx];
+               [allCelListName addObject:[elemnt getCellName]];
+       }
+       return allCelListName;
+}
+
+// -------------------------------------------------------------------------------
+//  getCellList:
+// -------------------------------------------------------------------------------
+-(NSArray*) getUserDefaultForTokenCells {
+       return userDefaultCellArray;
+}
+
+// -------------------------------------------------------------------------------
+//  getDefaultCellName:
+// -------------------------------------------------------------------------------
+-(NSArray*) getDefaultForTokenCellsName {
+       NSMutableArray *allCelListName = [[[NSMutableArray alloc] init] autorelease];
+       for(int idx = 0; idx < [cellList count]; idx++){
+               DBCellElement *elemnt = [cellList objectAtIndex:idx];
+               if([elemnt userDefaultForToken]) [allCelListName addObject:[[elemnt getCellName] retain]];
+       }
+       return allCelListName;
+}
+
+// -------------------------------------------------------------------------------
+//  getCellName:
+// -------------------------------------------------------------------------------
+-(NSString*) getDefaultCellName
+{
+       return cellName;
+}
+
+// -------------------------------------------------------------------------------
+//  setDefaultCellByName:
+// -------------------------------------------------------------------------------
+-(void) setDefaultCellByName:(NSString*)name
+{
+       DBCellElement *elementCell = nil;
+       BOOL cellFound = false;
+       if(!name) return;
+       
+       for(int idx = 0; idx < [cellList count]; idx++) {
+               // check every cell for delete as old user default cell or selected as neww cell
+               elementCell = [cellList objectAtIndex:idx];
+               cellFound = [name  compare:[elementCell getCellName]] == NSOrderedSame;
+               [elementCell setUserDefaultCell:cellFound];
+               if(cellFound) {
+                       [elementCell setUserDefaultForToken:YES];
+                       if(cellName)[cellName release];
+                       cellName = [name retain];
+                }
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  setCellName:
+// -------------------------------------------------------------------------------
+- (void) setCellName:(NSString*)cell {
+       [self setDefaultCellByName:cell];
+}
+
+// -------------------------------------------------------------------------------
+//  readCellInfo:
+// -------------------------------------------------------------------------------
+-(void) readCellInfo:(NSString*) configFile {
+
+       
+       NSError *error = nil;
+       NSString *tmpStr = nil;
+       NSLog(@"Try to opening file: %s",[configFile cString] );
+       NSString * result = [NSString stringWithContentsOfFile:configFile
+                                                                                                 encoding:NSASCIIStringEncoding
+                                                                                                        error:&error];
+       if(!result && error){
+               if([error domain] )
+               @throw [NSException exceptionWithName:@"readCellInfo" 
+                                                                          reason:kConfFileNotExits
+                                                                        userInfo:nil];
+       }
+       NSScanner *scanner = [NSScanner scannerWithString:result];
+       
+       [scanner scanUpToString:@"\n" 
+                                intoString:&tmpStr];
+       
+       // make a copy of self created string
+       cellName = [tmpStr retain];
+}
+
+// -------------------------------------------------------------------------------
+//  readCellDB:
+// -------------------------------------------------------------------------------
+-(void) readCellDB:(NSString*) configFile {    
+       NSString *tmpString = nil;
+       BOOL isInCellDefaultArray = NO; // the cell belong
+       BOOL isDefaultCell = NO;
+       DBCellElement *afsCellDBElement = nil;
+       NSCharacterSet *returnCS = [NSCharacterSet characterSetWithCharactersInString:@"\n"];
+       NSCharacterSet *spaceCS = [NSCharacterSet characterSetWithCharactersInString:@" \t"];
+       
+       NSFileHandle *fileH = [NSFileHandle fileHandleForReadingAtPath:configFile];
+       NSData *dbCellData = [fileH readDataToEndOfFile];
+       NSString *strData = [[NSString alloc] initWithData:dbCellData
+                                                                                         encoding:NSASCIIStringEncoding];
+       NSScanner *cellDBScanner = [NSScanner  scannerWithString:strData];
+       
+       @try{
+       [cellDBScanner scanUpToCharactersFromSet:[NSCharacterSet alphanumericCharacterSet] intoString:&tmpString];
+       while([cellDBScanner isAtEnd] == NO) {
+               // make new cell
+               afsCellDBElement = [[DBCellElement alloc] init];
+               
+               // get the name of cell
+               [cellDBScanner scanUpToCharactersFromSet:spaceCS intoString:&tmpString];
+               [afsCellDBElement setCellName: tmpString];
+               
+               //check if this cells is one of user has selected to get token
+               isInCellDefaultArray = [userDefaultCellArray containsObject:tmpString];
+               //check if this cell is also the default cell
+               isDefaultCell = [cellName compare:tmpString]==NSOrderedSame;
+               
+               [afsCellDBElement setUserDefaultForToken:isInCellDefaultArray||isDefaultCell];
+               [afsCellDBElement setUserDefaultCell:isDefaultCell];
+               
+               
+       
+               
+               
+               // get the cell comment
+               [cellDBScanner scanUpToCharactersFromSet:[NSCharacterSet alphanumericCharacterSet] intoString:nil];
+               [cellDBScanner scanUpToCharactersFromSet:returnCS intoString:&tmpString];
+               [afsCellDBElement setCellComment: tmpString];
+
+               // get all ip
+               [cellDBScanner scanUpToString:@">" intoString:&tmpString];
+               // scann all ip in list
+               [self scanIpForCell:afsCellDBElement allIP:tmpString];  
+               
+               // add cell to list
+               [cellList addObject:afsCellDBElement];
+               // release the object becasuse NSMutableArray make a retain on object
+               [afsCellDBElement release];
+               //repeat
+               [cellDBScanner scanUpToCharactersFromSet:[NSCharacterSet alphanumericCharacterSet] intoString:&tmpString];
+       }
+       }@catch(NSException *e){
+               @throw e;
+       }@finally{
+               //if(strData) [strData release];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  scanIpForCell:
+// -------------------------------------------------------------------------------
+-(void) scanIpForCell:(DBCellElement*) cellElement allIP:(NSString*)allIP {
+       NSScanner *ipScann = [NSScanner scannerWithString:allIP];
+       NSCharacterSet *returnCS = [NSCharacterSet characterSetWithCharactersInString:@"\n"];
+       NSCharacterSet *spaceCS = [NSCharacterSet characterSetWithCharactersInString:@" \t"];
+       NSCharacterSet *startCommentCS = [NSCharacterSet characterSetWithCharactersInString:@"#"];
+       NSString *tmpString = nil;
+       while([ipScann isAtEnd] == NO){
+               CellIp *cellIpDesc = [[CellIp alloc] init];
+               
+               //ip string
+               [ipScann scanUpToCharactersFromSet:spaceCS 
+                                                               intoString:&tmpString];
+               
+               [cellIpDesc setCellIp:tmpString];
+               //[tmpString release];
+               
+               // go to comment
+               [ipScann scanUpToCharactersFromSet:startCommentCS intoString:nil];
+               // skip comment symbol
+               [ipScann scanUpToCharactersFromSet:[NSCharacterSet alphanumericCharacterSet] intoString:nil];
+               // get comment
+               [ipScann scanUpToCharactersFromSet:returnCS intoString:&tmpString];
+               [cellIpDesc setCellComment:tmpString];
+               //[tmpString release];
+               
+               [cellElement addIpToCell:cellIpDesc];
+               // release the object becasuse NSMutableArray make a retain on object
+               [cellIpDesc release];
+       }
+}
+
+
+// -------------------------------------------------------------------------------
+//  scanIpForCell:
+// -------------------------------------------------------------------------------
+-(NSArray*) readTheseCell:(NSString*) configFile {
+       
+       NSFileHandle *fileH = [NSFileHandle fileHandleForReadingAtPath:configFile];
+       NSData *dbCellData = [fileH readDataToEndOfFile];
+       NSString *strData = [[NSString alloc] initWithData:dbCellData
+                                                                                         encoding:NSASCIIStringEncoding];
+       
+       return [strData componentsSeparatedByString:@"\n"];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) getTokenList
+// -------------------------------------------------------------------------------
+-(NSArray*) getTokenList
+{
+       int line = 0;
+       NSString *tokenLine = nil;
+       //NSString *tmpValue = nil;
+       NSMutableArray *tokenList = [[NSMutableArray alloc] init];
+       NSString *tokensOutput = [TaskUtil executeTaskSearchingPath:@"tokens" args:[NSArray arrayWithObjects:nil]];
+       
+       // scann the tokens
+       NSScanner *tokenScan = [NSScanner scannerWithString:tokensOutput];
+       NSCharacterSet *returnCS = [NSCharacterSet characterSetWithCharactersInString:@"\n"];
+       
+       while([tokenScan isAtEnd] == NO){
+               line++;
+               // get the next line
+               [tokenScan scanUpToCharactersFromSet:returnCS 
+                                                               intoString:&tokenLine];
+               
+               // check for tokens end
+               if([tokenLine rangeOfString:@"--End of list--"].location != NSNotFound) break;
+               
+               
+               if(line >= 2){
+                       NSLog(@"Token found %s", [tokenLine UTF8String]);
+                       // add enteir row to result
+                       [tokenList addObject:tokenLine];
+                       // create the line scanner for all the row that contains token info
+               }
+       }
+       //
+       return tokenList;
+}
+
+// -------------------------------------------------------------------------------
+//  +(void) klog:(NSString*)uName uPwd:(NSString*)uPwd
+// -------------------------------------------------------------------------------
+-(void) klog:(NSString*)uName uPwd:(NSString*)uPwd cell:(NSString*)theCell
+{
+       if(uName == @"" ||  uPwd == @"") return;
+       
+       [TaskUtil executeTaskSearchingPath:@"klog" 
+                                                                 args:(theCell==nil?[NSArray arrayWithObjects:@"-principal", uName, @"-password", uPwd, nil]:[NSArray arrayWithObjects:@"-principal", uName, @"-password", uPwd, @"-c", theCell, nil])];
+       
+       
+}
+
+
+// -------------------------------------------------------------------------------
+//  +(void) aklog
+// -------------------------------------------------------------------------------
+-(void) aklog:(NSString*)theCell noKerberosCall:(BOOL)krb5CallEnable {
+       KLPrincipal  princ = nil;
+       KLStatus kstatus = noErr;
+       char *princName = malloc(255);
+       @try {
+               // trying to ket kerberos ticket
+               if(krb5CallEnable) {
+                       kstatus =  KLAcquireInitialTickets (0L, 0L, &princ,  &princName);
+                       if(kstatus != noErr && kstatus != klUserCanceledErr) @throw [NSException exceptionWithName:@"aklog" 
+                                                                                                                                                                                               reason:kPathNotEmpty 
+                                                                                                                                                                                         userInfo:nil];
+               } else kstatus = klNoErr;
+               
+                //ok to launch aklog
+               if(kstatus == klNoErr) [TaskUtil executeTaskSearchingPath:@"aklog" 
+                                                                                                                        args:(theCell==nil?[NSArray arrayWithObjects:nil]:[NSArray arrayWithObjects:@"-c", theCell, nil])];
+               
+       }
+       @catch (NSException * e) {
+               @throw e;
+       }
+       @finally {
+               // destory the kerberos va
+               if(princName && princ != nil) 
+                       KLDisposeString(princName);
+               else if(princName) free(princName);
+       }
+               
+}
+
+
+// -------------------------------------------------------------------------------
+//  getTokens:
+// -------------------------------------------------------------------------------
+- (void) getTokens:(BOOL)klogAklogFlag usr:(NSString*)usr pwd:(NSString*)pwd {
+       
+       NSString *celStrName = nil;
+       NSArray *tmpDefaultArray = [self getDefaultForTokenCellsName];
+       if(tmpDefaultArray && [tmpDefaultArray count] > 1) {
+               //there are other cell to autenticate
+               for(int idx=0; idx < [tmpDefaultArray count]; idx++){
+                       celStrName = [tmpDefaultArray objectAtIndex:idx];
+                       if(klogAklogFlag)
+                               [self klog:usr 
+                                         uPwd:pwd  
+                                         cell:celStrName];
+                       else
+                               [self aklog:celStrName noKerberosCall:YES];     
+               }
+               
+       } else {
+               //there is only default cell to autenticate
+               if(klogAklogFlag)
+                       [self klog:usr 
+                                 uPwd:pwd 
+                                 cell:nil];
+               else
+                       [self aklog:nil noKerberosCall:YES];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  +(void) unlog
+// -------------------------------------------------------------------------------
+-(void) unlog:(NSString*)cell
+{
+       [TaskUtil executeTaskSearchingPath:@"unlog" 
+                                                                 args:(cell?[NSArray arrayWithObjects:@"-c",cell,nil]:[NSArray arrayWithObjects:nil])];
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) shutdown
+// -------------------------------------------------------------------------------
+-(void) shutdown
+{
+       NSMutableString *filePath = [[NSMutableString alloc] initWithCapacity:256];
+       @try {
+               if([[AuthUtil shared] autorize] != noErr)
+                       return;
+               
+               /*const char *args0[] = {"stop", 0L};
+               [[AuthUtil shared] execUnixCommand:"/Library/StartupItems/OpenAFS/OpenAFS_stop"
+                                                                         args:args0 
+                                                                       output:0L];*/
+               
+               // unmount afs
+               const char *args1[] = {"-f", "/afs", 0L};
+               [[AuthUtil shared] execUnixCommand:"/sbin/umount"
+                                                                         args:args1 
+                                                                       output:0L];
+               
+               const char *args2[] = {"-shutdown", 0L};
+               [[AuthUtil shared] execUnixCommand:"/usr/sbin/afsd"
+                                                                         args:args2 
+                                                                       output:0L];
+                               
+               const char *args3[] = {[filePath UTF8String], 0L};
+               [[AuthUtil shared] execUnixCommand:"/sbin/kextunload"
+                                                                         args:args3 
+                                                                       output:0L];
+               
+       }
+       @catch (NSException * e) {
+               @throw e;
+       }
+       @finally {
+       
+       }
+       
+       
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) saveConfigurationFiles
+// -------------------------------------------------------------------------------
+-(void) saveConfigurationFiles:(BOOL) makeBackup
+{
+       NSError *err;
+       NSMutableString *filePath = [[NSMutableString alloc] initWithCapacity:256];
+       NSMutableString *cellServDBString = [[NSMutableString alloc] initWithCapacity:256];
+       NSMutableString *theseCellString = [[NSMutableString alloc] initWithCapacity:256];
+       DBCellElement *cellElement = nil;
+       
+       // save the configuration file
+       @try{
+               [self exceptionOnInvalidPath];
+
+               // ThisCell
+               [filePath setString: @"/tmp/ThisCell"];
+               [cellName writeToFile: [filePath stringByExpandingTildeInPath]
+                                  atomically:YES 
+                                        encoding: NSASCIIStringEncoding 
+                                               error:nil];
+               // CellServDB
+               
+               for(int idx = 0; idx < [cellList count]; idx++){
+                       cellElement = [cellList objectAtIndex:idx];
+                       [cellServDBString appendString:[cellElement description]];
+                       if([cellElement userDefaultForToken]) {
+                               [theseCellString  appendString:[cellElement getCellName]];
+                               [theseCellString  appendString:@"\n"];
+                       }
+               }
+               
+               
+               [filePath setString: @"/tmp/CellServDB"];
+               [cellServDBString writeToFile: [filePath stringByExpandingTildeInPath]
+                                                  atomically:YES 
+                                                        encoding:  NSUTF8StringEncoding 
+                                                               error:&err];
+               
+               [filePath setString: @"/tmp/TheseCells"];
+               [theseCellString writeToFile: [filePath stringByExpandingTildeInPath]
+                                                  atomically:YES 
+                                                        encoding:  NSUTF8StringEncoding 
+                                                               error:&err];
+               
+               // backup original file
+               if([futil startAutorization] != noErr){
+                       @throw [NSException exceptionWithName:@"saveConfigurationFiles:startAutorization" 
+                                                                                  reason:kUserNotAuth
+                                                                                userInfo:nil];
+               }
+
+               if(makeBackup) [self backupConfigurationFiles];
+
+               // install ThisCell
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/ThisCell"];
+               [self installConfigurationFile:@"/tmp/ThisCell" 
+                                                         destPath:filePath];           
+               
+               // install CellServDB
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/CellServDB"];
+               [self installConfigurationFile:@"/tmp/CellServDB" 
+                                                         destPath:filePath];
+               
+               // install CellServDB
+               [filePath setString: installationPath];
+               [filePath appendString: @"/etc/TheseCells"];
+               [self installConfigurationFile:@"/tmp/TheseCells" 
+                                                         destPath:filePath];
+               
+       } @catch (NSException *e) {
+               @throw e;
+       }@finally {
+               // dispose all variable used
+               if(filePath) [filePath release];
+               if(cellServDBString) [cellServDBString release];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) saveCacheConfigurationFiles
+// -------------------------------------------------------------------------------
+-(void) saveCacheConfigurationFiles:(BOOL)makeBackup
+{
+       NSMutableString *filePath = [[NSMutableString alloc] initWithCapacity:256];     
+       // save the configuration file
+       @try{
+               [self exceptionOnInvalidPath];
+               
+               // cacheinfo file creation
+               [self writeCacheInfo:@"/tmp/cacheinfo"];
+               
+               //afsd.option or afs.conf file creation
+               [self writeAfsdOption:useAfsdConfVersion?AFSD_TMP_NEW_PREFERENCE_FILE:AFSD_TMP_OLD_PREFERENCE_FILE];
+               
+               // backup original file
+               if([futil startAutorization] != noErr){
+                       @throw [NSException exceptionWithName:@"AFSPropertyManager:saveCacheConfigurationFiles:startAutorization" 
+                                                                                  reason:kUserNotAuth
+                                                                                userInfo:nil];
+               }
+               
+               if(makeBackup) {
+                       //cacheinfo
+                       [self backupFile:@"/etc/cacheinfo"];
+                       
+                       //afsd.options
+                       [self backupFile:useAfsdConfVersion?AFSD_NEW_PREFERENCE_FILE:AFSD_OLD_PREFERENCE_FILE]; 
+               }
+               
+               // install cacheinfo
+               [filePath setString:installationPath];
+               [filePath appendString: @"/etc/cacheinfo"];
+               [self installConfigurationFile:@"/tmp/cacheinfo" 
+                                                         destPath:filePath];           
+               
+               // install afsd.conf or afs.conf configuration file 
+               [filePath setString: installationPath];
+               [filePath appendString: useAfsdConfVersion?AFSD_NEW_PREFERENCE_FILE:AFSD_OLD_PREFERENCE_FILE];
+               [self installConfigurationFile:useAfsdConfVersion?AFSD_TMP_NEW_PREFERENCE_FILE:AFSD_TMP_OLD_PREFERENCE_FILE
+                                                         destPath:filePath];
+               
+       } @catch (NSException *e) {
+               @throw e;
+       }@finally {
+               if(filePath) [filePath release];
+       }
+       
+       
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) installConfigurationFile
+// -------------------------------------------------------------------------------
+-(void) installConfigurationFile:(NSString*)srcConfFile 
+                                               destPath:(NSString*)destPath
+{
+       // delete the file original file
+
+       if([futil autorizedDelete:destPath] != noErr){
+               @throw [NSException exceptionWithName:@"installConfigurationFile:autorizedDelete" 
+                                                                          reason:destPath
+                                                                        userInfo:nil];
+       }
+       
+       // move the file
+       if([futil autorizedMoveFile:srcConfFile
+                                                toPath:destPath] != noErr) {
+               @throw [NSException exceptionWithName:@"saveConfigurationFiles:autorizedMoveFile" 
+                                                                          reason:srcConfFile
+                                                                        userInfo:nil];
+       }
+       
+       
+       if([futil autorizedChown:destPath 
+                                          owner:@"root"
+                                          group:@"wheel"]!= noErr) {
+               @throw [NSException exceptionWithName:@"saveConfigurationFiles:autorizedChown" 
+                                                                          reason:destPath
+                                                                        userInfo:nil];
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) backupConfigurationFiles
+// -------------------------------------------------------------------------------
+-(void) backupConfigurationFiles
+{      
+
+       @try{
+               if([futil startAutorization] != noErr){
+                       @throw [NSException exceptionWithName:@"backupConfigurationFiles:startAutorization" 
+                                                                                  reason:kUserNotAuth
+                                                                                userInfo:nil];
+               }
+               //This cell
+               [self backupFile:@"/etc/ThisCell"];
+       
+               //CellServDB
+               [self backupFile:@"/etc/CellServDB"];
+               
+               //TheseCell
+               [self backupFile:@"/etc/TheseCells"];
+               
+               //[futil endAutorization];
+       } @catch (NSException *e) {
+               @throw e;
+       } @finally {
+       }
+}
+
+// -------------------------------------------------------------------------------
+//  -(void) backupFile:(NSString*)localAfsFilePath
+// -------------------------------------------------------------------------------
+-(void) backupFile:(NSString*)localAfsFilePath
+{
+       NSString *srcString = nil;
+       NSMutableString *filePath = [[NSMutableString alloc] initWithCapacity:256];
+       OSStatus err = noErr;
+       @try{
+               [filePath setString: installationPath];
+               [filePath appendString: localAfsFilePath];
+               
+               //Check if the file at path exist
+               NSFileManager *fileManager = [NSFileManager defaultManager];
+               
+               //check if th efile exist
+               if(![fileManager fileExistsAtPath:[filePath stringByExpandingTildeInPath]]) return;
+               
+               // store the source path
+               srcString  = [filePath stringByExpandingTildeInPath];
+               [filePath appendString: @".afscommander_bk"];
+               
+               // check for presence of bk file
+               if(![[NSFileManager defaultManager] fileExistsAtPath:[filePath stringByExpandingTildeInPath]]){
+                       // backup the file
+                       err = [futil autorizedCopy:srcString 
+                                                 toPath:[filePath stringByExpandingTildeInPath]];
+               }
+       } @catch (NSException *e) {
+               @throw e;
+       } @finally {
+               if(filePath) [filePath release];
+       }
+}
+// -------------------------------------------------------------------------------
+//  checkAfsStatus:[NSArray arrayWithObjects:@"checkserver", nil];
+// -------------------------------------------------------------------------------
+-(BOOL) checkAfsStatus
+{
+       BOOL result = NO;
+       NSString *fsResult = [TaskUtil executeTaskSearchingPath:@"fs" args:[NSArray arrayWithObjects:@"checkserver", nil]];
+       result = (fsResult?([fsResult rangeOfString:@"All servers are running."].location != NSNotFound):NO);
+       return result;  
+}
+
+// -------------------------------------------------------------------------------
+//  makeChaceParamString
+// -------------------------------------------------------------------------------
+-(NSString*) makeChaceParamString
+{
+       NSNumber *tmpNum = nil;
+       NSMutableString *afsdOption = [[NSMutableString alloc] init];
+       if(!afsdOption) return @"";
+       //write the data for afsd config file '-afsdb -stat x -dcache x -daemons x -volumes x -dynroot -fakestat-all'
+       //afsdb
+       //dynRoot
+       if([self afsDB]) {
+               [afsdOption appendString:@AFSD_OPTION_AFSDB_KEY];[afsdOption appendString:@" "];
+       }
+       
+       //Verbose
+       if([self verbose]) {
+               [afsdOption appendString:@AFSD_OPTION_VERBOSE_KEY];[afsdOption appendString:@" "];
+       }
+       
+       //stat entry
+       tmpNum = [NSNumber numberWithInt:[self statCacheEntry]];
+       if([tmpNum  intValue]) {[afsdOption appendString:@AFSD_OPTION_STAT_KEY];[afsdOption appendString:@" "];[afsdOption appendString:[tmpNum stringValue]];[afsdOption appendString:@" "];}
+       
+       //dcace
+       tmpNum = [NSNumber numberWithInt:[self dCacheDim]];
+       if([tmpNum  intValue]) {[afsdOption appendString:@AFSD_OPTION_DCACHE_KEY];[afsdOption appendString:@" "];[afsdOption appendString:[tmpNum stringValue]];[afsdOption appendString:@" "];}
+       
+       //daemons
+       tmpNum = [NSNumber numberWithInt:[self daemonNumber]];
+       if([tmpNum  intValue]) {[afsdOption appendString:@AFSD_OPTION_DAEMONS_KEY];[afsdOption appendString:@" "];[afsdOption appendString:[tmpNum stringValue]];[afsdOption appendString:@" "];}
+       
+       //volumes
+       tmpNum = [NSNumber numberWithInt:[self nVolEntry]];
+       if([tmpNum  intValue]) {[afsdOption appendString:@AFSD_OPTION_VOLUMES_KEY];[afsdOption appendString:@" "];[afsdOption appendString:[tmpNum stringValue]];[afsdOption appendString:@" "];}
+       
+       //dynRoot
+       if([self dynRoot]) {
+               [afsdOption appendString:@AFSD_OPTION_DYNROOT_KEY];[afsdOption appendString:@" "];
+       }
+       
+       //fakestat-all
+       [afsdOption appendString:@AFSD_OPTION_FKESTAT_ALL];[afsdOption appendString:@" "];
+       
+       return [afsdOption autorelease];
+}
+
+@end
+
diff --git a/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/classes.nib b/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/classes.nib
new file mode 100644 (file)
index 0000000..0f736c1
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBClasses</key>
+       <array>
+               <dict>
+                       <key>CLASS</key>
+                       <string>FirstResponder</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+               <dict>
+                       <key>CLASS</key>
+                       <string>AFSMenuCredentialContoller</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>OUTLETS</key>
+                       <dict>
+                               <key>credWinController</key>
+                               <string>CredentialWindowController</string>
+                               <key>credentialController</key>
+                               <string>id</string>
+                               <key>credentialView</key>
+                               <string>id</string>
+                       </dict>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+               <dict>
+                       <key>ACTIONS</key>
+                       <dict>
+                               <key>closePanel</key>
+                               <string>id</string>
+                               <key>getToken</key>
+                               <string>id</string>
+                       </dict>
+                       <key>CLASS</key>
+                       <string>CredentialWindowController</string>
+                       <key>LANGUAGE</key>
+                       <string>ObjC</string>
+                       <key>OUTLETS</key>
+                       <dict>
+                               <key>afsMenuController</key>
+                               <string>id</string>
+                               <key>credentialView</key>
+                               <string>id</string>
+                               <key>textEditPassword</key>
+                               <string>id</string>
+                               <key>textEditUserName</key>
+                               <string>id</string>
+                       </dict>
+                       <key>SUPERCLASS</key>
+                       <string>NSObject</string>
+               </dict>
+       </array>
+       <key>IBVersion</key>
+       <string>1</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/info.nib b/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/info.nib
new file mode 100644 (file)
index 0000000..f32b985
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>IBFramework Version</key>
+       <string>644</string>
+       <key>IBLastKnownRelativeProjectPath</key>
+       <string>../AFSCommander.xcodeproj</string>
+       <key>IBOldestOS</key>
+       <integer>5</integer>
+       <key>IBOpenObjects</key>
+       <array>
+               <integer>248</integer>
+       </array>
+       <key>IBSystem Version</key>
+       <string>9C31</string>
+       <key>targetFramework</key>
+       <string>IBCocoaFramework</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/keyedobjects.nib b/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/keyedobjects.nib
new file mode 100644 (file)
index 0000000..b74c68d
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/CredentialWindow.nib/keyedobjects.nib differ
diff --git a/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/Info.plist b/src/platform/DARWIN/AFSPreference/AfsMenuExtraResource/Info.plist
new file mode 100644 (file)
index 0000000..01c9dea
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>AFSMenuExtra</string>
+       <key>CFBundleIdentifier</key>
+       <string>it.infn.lnf.network.AFSMenuExtra</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>INFN</string>
+       <key>CFBundleVersion</key>
+       <string>0.2a</string>
+       <key>NSPrincipalClass</key>
+       <string>AFSMenuExtra</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/AuthUtil.h b/src/platform/DARWIN/AFSPreference/AuthUtil.h
new file mode 100644 (file)
index 0000000..f92156a
--- /dev/null
@@ -0,0 +1,29 @@
+//
+//  AuthUtil.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#include <Security/Authorization.h>
+#include <Security/AuthorizationTags.h>
+
+@interface AuthUtil : NSObject {
+       AuthorizationRef authorizationRef;
+}
+-(id) init;
+-(OSStatus) autorize;
+-(BOOL) deautorize;
+-(AuthorizationRef) authorization;
+-(NSData*) extFormAuth;
+-(OSStatus) execUnixCommand:(const char*) commandPath args:(const char*[])args output:(NSMutableString*)output;
++(AuthUtil*) shared;
++ (id)allocWithZone:(NSZone *)zone;
+- (id)copyWithZone:(NSZone *)zone;
+- (id)retain;
+- (unsigned)retainCount;
+- (void)release;
+- (id)autorelease;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AuthUtil.m b/src/platform/DARWIN/AFSPreference/AuthUtil.m
new file mode 100644 (file)
index 0000000..fa3d16e
--- /dev/null
@@ -0,0 +1,186 @@
+//
+//  AuthUtil.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "AuthUtil.h"
+//#include <stdio.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <unistd.h>
+static AuthUtil *sharedAuthUtil = nil;
+
+@implementation AuthUtil
+
++(AuthUtil*) shared
+{
+       @synchronized(self) {
+        if (sharedAuthUtil == nil) {
+            [[self alloc] init]; // assignment not done here
+        }
+    }
+    return sharedAuthUtil;
+}
+
++ (id)allocWithZone:(NSZone *)zone
+{
+    @synchronized(self) {
+        if (sharedAuthUtil == nil) {
+            sharedAuthUtil = [super allocWithZone:zone];
+            return sharedAuthUtil;  // assignment and return on first allocation
+        }
+    }
+    return nil; //on subsequent allocation attempts return nil
+}
+
+- (id)copyWithZone:(NSZone *)zone
+{
+    return self;
+}
+
+// -------------------------------------------------------------------------------
+//  init:
+// -------------------------------------------------------------------------------
+-(id) init {
+       [super init];
+       authorizationRef = nil; 
+       return self;
+}
+
+// -------------------------------------------------------------------------------
+//  autorize:
+// -------------------------------------------------------------------------------
+-(OSStatus) autorize
+{
+       OSStatus status = noErr;
+       AuthorizationFlags flags;
+       AuthorizationItem myItems = {kAuthorizationRightExecute, 0, NULL, 0};
+       AuthorizationRights myRights = {1, &myItems};
+       flags = kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize | kAuthorizationFlagExtendRights;
+       
+       /*if(authorizationRef) {
+               [self deautorize];
+       }*/
+       
+       // chek if autorization is valid for and old password request
+       status = AuthorizationCopyRights (authorizationRef, &myRights, NULL, flags, NULL );
+
+       if (status != errAuthorizationSuccess) { 
+               //
+               flags = kAuthorizationFlagDefaults;
+               if(!authorizationRef){
+                       status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, flags, &authorizationRef);
+                       if (status != errAuthorizationSuccess) {
+                               return status;
+                       }
+               }
+               
+               flags = kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize | kAuthorizationFlagExtendRights;
+               status = AuthorizationCopyRights (authorizationRef, &myRights, NULL, flags, NULL );
+
+               if (status != errAuthorizationSuccess) {
+                       AuthorizationFree (authorizationRef, kAuthorizationFlagDefaults);
+                       return status;
+               }
+       }
+
+       return status;
+}
+
+
+// -------------------------------------------------------------------------------
+//  deatorize:
+// -------------------------------------------------------------------------------
+-(BOOL) deautorize
+{
+       OSStatus status = 0L;
+       if(authorizationRef){
+               status = AuthorizationFree (authorizationRef, kAuthorizationFlagDefaults);
+               authorizationRef = 0L; 
+       }
+       return status == noErr;
+}
+
+
+// -------------------------------------------------------------------------------
+//  authorization:
+// -------------------------------------------------------------------------------
+-(AuthorizationRef) authorization
+{
+       return authorizationRef;
+}
+
+// -------------------------------------------------------------------------------
+//  authorization:
+// -------------------------------------------------------------------------------
+-(NSData*) extFormAuth {
+       AuthorizationExternalForm extAuth; // external authorization
+       NSData *authorizationData = nil;
+       if(AuthorizationMakeExternalForm([self authorization], &extAuth))
+    {
+        NSLog(@"Could not create external authorization form.");
+               return nil;
+       }
+       authorizationData = [NSData dataWithBytes:&extAuth length:sizeof(AuthorizationExternalForm)];
+       return authorizationData;
+}
+
+// -------------------------------------------------------------------------------
+//  execUnixCommand:
+// -------------------------------------------------------------------------------
+-(OSStatus) execUnixCommand:(const char*) commandPath args:(const char*[])args output:(NSMutableString*)output
+{
+       OSStatus status = noErr;
+       FILE *commandOutIn = NULL;
+       char buff[1024];
+       int pid, pidStatus;
+
+       status = AuthorizationExecuteWithPrivileges (authorizationRef, commandPath, kAuthorizationFlagDefaults , (char *const *)args, &commandOutIn);
+       if (status == errAuthorizationSuccess && commandOutIn){
+               for(;;)
+               {
+                       int bytesRead = read(fileno (commandOutIn), buff, sizeof (buff));
+                       if (bytesRead < 1) break;
+                       //write (fileno (stdout), buff, bytesRead);
+                       if(output) {
+                               [output appendString:[NSString stringWithCString:buff length:bytesRead]];
+                       }
+               }
+       }
+       if(commandOutIn){
+               fflush(commandOutIn);
+               fclose(commandOutIn);
+       }
+       // whait for comand finish
+       pid = wait( &pidStatus );
+       if (pid == -1 || !WIFEXITED( pidStatus ))
+       {
+               NSLog( @"Error: problem with wait pid status: %d", pidStatus );
+               return 1;
+       }
+       return status;
+}
+
+- (id)retain
+{
+    return self;
+}
+
+- (unsigned)retainCount
+{
+    return UINT_MAX;  //denotes an object that cannot be released
+}
+
+- (void)release
+{
+    //do nothing
+}
+
+- (id)autorelease
+{
+    return self;
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/CellIp.h b/src/platform/DARWIN/AFSPreference/CellIp.h
new file mode 100644 (file)
index 0000000..dbd4812
--- /dev/null
@@ -0,0 +1,23 @@
+//
+//  CellIp.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 14/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CellIp : NSObject {
+       NSString *ip;
+       NSString *ipComment;
+}
+-(id)init;
+-(void)dealloc;
+-(void)setCellIp:(NSString*)newip;
+-(NSString*) getCellIp;
+-(void)setCellComment:(NSString*)newcomment;
+-(NSString*) getCellComment;
+-(NSString*) description;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/CellIp.m b/src/platform/DARWIN/AFSPreference/CellIp.m
new file mode 100644 (file)
index 0000000..6fe80bc
--- /dev/null
@@ -0,0 +1,76 @@
+//
+//  CellIp.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 14/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "CellIp.h"
+
+
+@implementation CellIp
+// -------------------------------------------------------------------------------
+//  init:
+// -------------------------------------------------------------------------------
+-(id)init {
+       [super init];
+       ip = @"0.0.0.0";
+       ipComment = @"-----";
+       return self;
+}
+
+// -------------------------------------------------------------------------------
+//  dealloc:
+// -------------------------------------------------------------------------------
+-(void)dealloc{
+       if(ip) [ip release];
+       if(ipComment) [ipComment release];
+       [super dealloc];
+}
+
+// -------------------------------------------------------------------------------
+//  setCellIp:
+// -------------------------------------------------------------------------------
+-(void)setCellIp:(NSString*)newip{
+       if(ip){
+               [ip release];
+       }
+       ip = [newip retain];
+}
+
+// -------------------------------------------------------------------------------
+//  getCellIp:
+// -------------------------------------------------------------------------------
+-(NSString*) getCellIp{
+       return ip;
+}
+
+// -------------------------------------------------------------------------------
+//  setCellComment:(NSString*)newcomment
+// -------------------------------------------------------------------------------
+-(void)setCellComment:(NSString*)newcomment{
+       if(ipComment){
+               [ipComment release];
+       }
+       ipComment = [newcomment retain];
+}
+
+// -------------------------------------------------------------------------------
+//  getCellComment:
+// -------------------------------------------------------------------------------
+-(NSString*) getCellComment{
+       return ipComment;
+}
+
+// -------------------------------------------------------------------------------
+//  description:
+// -------------------------------------------------------------------------------
+-(NSString*) description{
+       NSMutableString *desc = [[NSMutableString alloc] init];
+       [desc autorelease];
+       [desc appendString:ip];[desc appendString:@" "];[desc appendString:@"#"];[desc appendString:ipComment];[desc appendString:@"\n"];
+       return desc;
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/CredentialWindowController.h b/src/platform/DARWIN/AFSPreference/CredentialWindowController.h
new file mode 100644 (file)
index 0000000..5a67d07
--- /dev/null
@@ -0,0 +1,30 @@
+//
+//  CredentialWindowController.h
+//  AFSCommander
+//
+//  Created by Claudio on 14/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "AFSMenuCredentialContoller.h"
+#import "global.h"
+
+@interface CredentialWindowController : NSObject {
+       id credentialView;
+       id afsMenuController;
+       id textEditUserName;
+       id textEditPassword;
+       
+       BOOL taken;
+       NSString *uName;
+       NSString *uPwd;
+       
+}
+
+- (IBAction) getToken:(id) sender;
+- (IBAction) closePanel:(id) sender;
+- (BOOL) takenToken;
+- (NSString*) uName;
+- (NSString*) uPwd;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/CredentialWindowController.m b/src/platform/DARWIN/AFSPreference/CredentialWindowController.m
new file mode 100644 (file)
index 0000000..131bcb7
--- /dev/null
@@ -0,0 +1,71 @@
+//
+//  CredentialWindowController.m
+//  AFSCommander
+//
+//  Created by Claudio on 14/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "CredentialWindowController.h"
+#import "AFSPropertyManager.h"
+
+@implementation CredentialWindowController
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (void)awakeFromNib
+{
+       NSLog(@"awakeFromNib");
+}
+
+// -------------------------------------------------------------------------------
+//  getToken:
+// -------------------------------------------------------------------------------
+- (IBAction) getToken:(id) sender
+{
+       uName   = [((NSTextField*) textEditUserName) stringValue];
+       uPwd    = [((NSTextField*) textEditPassword) stringValue];
+       if(uName == @"" ||  uPwd == @"") return;
+       taken = YES;
+       
+       
+       [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kLogWindowClosed];
+}
+
+
+// -------------------------------------------------------------------------------
+//  closePanel:
+// -------------------------------------------------------------------------------
+- (IBAction) closePanel:(id) sender
+{
+       taken = NO;
+       NSLog(@"closePanel");
+       [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kLogWindowClosed];
+}
+
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (BOOL) takenToken
+{
+       return taken;
+}
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (NSString*) uName
+{
+       return uName;
+}
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (NSString*) uPwd
+{
+       return uPwd;
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/DBCellElement.h b/src/platform/DARWIN/AFSPreference/DBCellElement.h
new file mode 100644 (file)
index 0000000..8ebc2ab
--- /dev/null
@@ -0,0 +1,134 @@
+//
+//  DBCellElement.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 14/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+// 
+// Is the identification of a cell in he afs cell database
+
+#import <Cocoa/Cocoa.h>
+#import "CellIp.h"
+
+@interface DBCellElement : NSObject {
+       BOOL userDefaultForToken;
+       BOOL userDefaultCell;
+       NSString *cellName;
+       NSString *cellComment;
+       NSMutableArray *ipCellList;
+}
+
+/*!
+ @method     init
+ @abstract   
+ @discussion 
+ */
+-(id) init;
+
+/*!
+ @method     dealloc
+ @abstract   
+ @discussion 
+ */
+-(void) dealloc;
+
+/*!
+ @method     setCellName
+ @abstract   Set the cel name
+ @discussion Release the old cell name andretain the new one 
+ @param      name - Name of the cell
+ */
+-(void) setCellName:(NSString *)name;
+
+/*!
+ @method     getCellName
+ @abstract   Return the cell name
+ @discussion Return the cell name
+ @result     Name of the cell
+ */
+-(NSString*) getCellName;
+
+/*!
+ @method     setCellComment
+ @abstract   Set the comment of the cell
+ @discussion Release the old cell comment and retain the new one
+ @param      comment - Comment of the cell
+ */
+-(void) setCellComment:(NSString *)comment;
+
+/*!
+ @method     getCellComment
+ @abstract   Get the comment of the cell
+ @discussion Get the comment of the cell
+ @result     comment of the cell
+
+ */
+-(NSString*) getCellComment;
+
+/*!
+ @method     setUserDefaultForToken
+ @abstract   Set the userde fault for tokens for the cell
+ @discussion If this cell is a cell used by user this flag will be true, 
+                        for multi cell authentication will be more cell with this flag on true.
+ @param      isDefault - true if the this cell is default which the user want to ge token for
+
+ */
+-(void) setUserDefaultForToken:(BOOL)isDefault;
+
+/*!
+ @method     userDefault
+ @abstract   Return the user request for token flag
+ @discussion 
+ @result     if true this cell is used to get the tokens
+ */
+-(BOOL) userDefaultForToken;
+/*!
+ @method     setUserDefaultCell
+ @abstract   set the user default cell state
+ @discussion 
+ @result     set this cell as default user cell
+ */
+-(void) setUserDefaultCell:(BOOL)isDefault;
+/*!
+ @method     userDefaultForCell
+ @abstract  Return the user default cell state
+ @discussion 
+ @result     is true if this cell is the default cell
+ */
+-(BOOL) userDefaultForCell;
+/*!
+ @method     addIpToCell
+ @abstract   Add an ipcell description to this cell
+ @discussion Add a new IpCell class to this cell to specify the server ip
+ @param      ip - CellIP class representing the ip of one server of the cell
+ */
+-(void) addIpToCell:(CellIp*)ip;
+
+/*!
+ @method     getIp
+ @abstract   Return the array containing all ip for thi cell
+ @discussion 
+ @result     The array containing all the cell ip decription class
+ */
+-(NSMutableArray*) getIp;
+
+/*!
+ @method     description
+ @abstract   Return the description of this cell
+ @discussion The description is the same stile used in CellServDB file(for a single cell)
+                        so calling thi method for all cell will be reconstructed the entire afs configuration file for CellSerDB
+ @result     The string description of the cell with all the ip
+ */
+-(NSString*) description;
+
+/*!
+ @method     isEqual
+ @abstract   Compare this object with anoter of the same type 
+ @discussion Compare this object with the ine passed to the function
+ @param      anObject - An object to compare with this.
+ @result     true if the two object are the same.
+ */
+- (BOOL)isEqual:(id)anObject;
+
+- (BOOL)isEqualToString:(NSString *)aString;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/DBCellElement.m b/src/platform/DARWIN/AFSPreference/DBCellElement.m
new file mode 100644 (file)
index 0000000..ac43f00
--- /dev/null
@@ -0,0 +1,143 @@
+//
+//  DBCellElement.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 14/06/07.
+//  Copyright 2007 INFN. All rights reserved.
+//
+
+#import "DBCellElement.h"
+
+
+@implementation DBCellElement
+
+// -------------------------------------------------------------------------------
+//  init:
+// -------------------------------------------------------------------------------
+-(id) init{
+       [super init];
+       userDefaultForToken = false;
+       userDefaultCell = false;
+       ipCellList = [[NSMutableArray alloc] init];
+       return self;
+}
+
+// -------------------------------------------------------------------------------
+//  dealloc:
+// -------------------------------------------------------------------------------
+-(void) dealloc{
+       if(ipCellList) [ipCellList release];
+       if(cellName) [cellName release];
+       if(cellComment) [cellComment release];
+       [super dealloc];
+}
+
+// -------------------------------------------------------------------------------
+//  setCellName:
+// -------------------------------------------------------------------------------
+-(void) setCellName:(NSString *)name
+{
+       if(cellName){
+               [cellName release];
+       }
+       cellName = [name retain];
+}
+
+// -------------------------------------------------------------------------------
+//  getCellName:
+// -------------------------------------------------------------------------------
+-(NSString*) getCellName{
+       return cellName;
+}
+
+// -------------------------------------------------------------------------------
+//  setCellComment:
+// -------------------------------------------------------------------------------
+-(void) setCellComment:(NSString *)comment{
+       if(cellComment){
+               [cellComment release];
+       }
+       cellComment = [comment retain];
+}
+
+// -------------------------------------------------------------------------------
+//  getCellComment:
+// -------------------------------------------------------------------------------
+-(NSString*) getCellComment{
+       return cellComment;
+}
+
+// -------------------------------------------------------------------------------
+//  setCellComment:
+// -------------------------------------------------------------------------------
+-(void) setUserDefaultForToken:(BOOL)isDefault {
+       userDefaultForToken = isDefault;
+}
+
+// -------------------------------------------------------------------------------
+//  getCellComment:
+// -------------------------------------------------------------------------------
+-(BOOL) userDefaultForToken {
+       return userDefaultForToken;
+}
+
+// -------------------------------------------------------------------------------
+//  setCellComment:
+// -------------------------------------------------------------------------------
+-(void) setUserDefaultCell:(BOOL)isDefault {
+       userDefaultCell = isDefault;
+}
+
+// -------------------------------------------------------------------------------
+//  getCellComment:
+// -------------------------------------------------------------------------------
+-(BOOL) userDefaultForCell {
+       return userDefaultCell;
+}
+
+// -------------------------------------------------------------------------------
+//  addIpToCell:
+// -------------------------------------------------------------------------------
+-(void) addIpToCell:(CellIp*)ip{
+       [ipCellList addObject:ip];
+}
+
+// -------------------------------------------------------------------------------
+//  getIp:
+// -------------------------------------------------------------------------------
+-(NSMutableArray*) getIp{
+       return ipCellList;
+}
+
+// -------------------------------------------------------------------------------
+//  description:
+// -------------------------------------------------------------------------------
+-(NSString*) description{
+       NSMutableString *desc = [[NSMutableString alloc] init];
+       // write the description according to CellServDB semantic
+       // write cell name
+       [desc appendString:@">"];[desc appendString:cellName];[desc appendString:@" "];[desc appendString:@"#"];[desc appendString:cellComment];[desc appendString:@"\n"];
+       
+       // write all ip
+       for(int idx = 0, count = [ipCellList count]; idx < count; idx++){
+               CellIp *cellIP = (CellIp*)[ipCellList objectAtIndex:idx];
+               [desc appendString:[cellIP description]];
+       }
+       
+       return desc;
+}
+
+// -------------------------------------------------------------------------------
+//  description:
+// -------------------------------------------------------------------------------
+- (BOOL)isEqual:(id)anObject
+{
+       if(!anObject) return NO;
+       else return [cellName isEqual:[anObject getCellName]] && [cellComment isEqual:[anObject getCellComment]];
+}
+
+- (BOOL)isEqualToString:(NSString *)aString {
+       if(!aString) return NO;
+       else return [aString isEqualToString:[self getCellName]];
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/DialogUtility.h b/src/platform/DARWIN/AFSPreference/DialogUtility.h
new file mode 100644 (file)
index 0000000..992ab37
--- /dev/null
@@ -0,0 +1,16 @@
+//
+//  DialogUtility.h
+//  OpenAFS
+//
+//  Created by Claudio Bisegni on 01/05/08.
+//  Copyright 2008 Infn. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface DialogUtility : NSObject {
+
+}
++ (BOOL) showMessageYesNo:(NSString*) message delegator:(id)delegator functionSelecter:(SEL)fSelector window:(NSWindow*)window;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/DialogUtility.m b/src/platform/DARWIN/AFSPreference/DialogUtility.m
new file mode 100644 (file)
index 0000000..77feb2c
--- /dev/null
@@ -0,0 +1,26 @@
+//
+//  DialogUtility.m
+//  OpenAFS
+//
+//  Created by Claudio Bisegni on 01/05/08.
+//  Copyright 2008 Infn. All rights reserved.
+//
+
+#import "DialogUtility.h"
+
+
+@implementation DialogUtility
+// -------------------------------------------------------------------------------
+//  showMessage:
+// -------------------------------------------------------------------------------
++ (BOOL) showMessageYesNo:(NSString*) message delegator:(id)delegator functionSelecter:(SEL)fSelector window:(NSWindow*)window {
+       NSAlert *alert = [[[NSAlert alloc] init] autorelease];
+       [alert setMessageText:message];
+       [alert addButtonWithTitle:@"Yes"];
+       [alert addButtonWithTitle:@"No"];
+       [alert beginSheetModalForWindow:window
+                                         modalDelegate:delegator 
+                                        didEndSelector:fSelector
+                                               contextInfo:nil];
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/CredentialPanel.xib b/src/platform/DARWIN/AFSPreference/English.lproj/CredentialPanel.xib
new file mode 100644 (file)
index 0000000..c3f419e
--- /dev/null
@@ -0,0 +1,710 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">9C31</string>
+               <string key="IBDocument.InterfaceBuilderVersion">648</string>
+               <string key="IBDocument.AppKitVersion">949.26</string>
+               <string key="IBDocument.HIToolboxVersion">352.00</string>
+               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" id="500241113">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSCustomObject" id="483479706">
+                               <string key="NSClassName">AFSCommanderPref</string>
+                       </object>
+                       <object class="NSCustomObject" id="194032068">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="136977041">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="317089838">
+                               <int key="NSWindowStyleMask">3</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{594, 606}, {360, 116}}</string>
+                               <int key="NSWTFlags">1886912512</int>
+                               <string key="NSWindowTitle">Panel</string>
+                               <object class="NSMutableString" key="NSWindowClass">
+                                       <characters key="NS.bytes">NSPanel</characters>
+                               </object>
+                               <object class="NSMutableString" key="NSViewClass">
+                                       <characters key="NS.bytes">View</characters>
+                               </object>
+                               <string key="NSWindowContentMinSize">{213, 107}</string>
+                               <object class="NSView" key="NSWindowView" id="897176997">
+                                       <nil key="NSNextResponder"/>
+                                       <int key="NSvFlags">256</int>
+                                       <object class="NSMutableArray" key="NSSubviews">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSTextField" id="1043652849">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{19, 75}, {63, 14}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="285386094">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">272629760</int>
+                                                               <string key="NSContents">Username:</string>
+                                                               <object class="NSFont" key="NSSupport" id="26">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                       <int key="NSfFlags">3100</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="1043652849"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="39862648">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlColor</string>
+                                                                       <object class="NSColor" key="NSColor">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="625691461">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlTextColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="993541148">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MAA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="6777892">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{21, 47}, {61, 14}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="941629363">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">272629760</int>
+                                                               <string key="NSContents">Password:</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="6777892"/>
+                                                               <reference key="NSBackgroundColor" ref="39862648"/>
+                                                               <reference key="NSTextColor" ref="625691461"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="167535534">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{87, 73}, {253, 19}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="690718153">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="167535534"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="547292417">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textBackgroundColor</string>
+                                                                       <object class="NSColor" key="NSColor">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="303282358">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textColor</string>
+                                                                       <reference key="NSColor" ref="993541148"/>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="944739158">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{87, 45}, {253, 19}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="590522050">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="944739158"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <reference key="NSBackgroundColor" ref="547292417"/>
+                                                               <reference key="NSTextColor" ref="303282358"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="394185848">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{242, 13}, {103, 28}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="543624439">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Get Token</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="394185848"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <object class="NSFont" key="NSAlternateImage" id="961233622">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                       <int key="NSfFlags">16</int>
+                                                               </object>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="37378773">
+                                                       <reference key="NSNextResponder" ref="897176997"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{160, 13}, {80, 28}}</string>
+                                                       <reference key="NSSuperview" ref="897176997"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="464336313">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Cancel</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="37378773"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <reference key="NSAlternateImage" ref="961233622"/>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <string key="NSFrame">{{1, 1}, {360, 116}}</string>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+                               <string key="NSMinSize">{213, 129}</string>
+                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                       </object>
+                       <object class="NSCustomObject" id="643915252">
+                               <string key="NSClassName">TokenCredentialController</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsCommanderPref</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="483479706"/>
+                                       </object>
+                                       <int key="connectionID">8</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">credentialCommander</string>
+                                               <reference key="source" ref="483479706"/>
+                                               <reference key="destination" ref="643915252"/>
+                                       </object>
+                                       <int key="connectionID">9</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">credentialSheet</string>
+                                               <reference key="source" ref="483479706"/>
+                                               <reference key="destination" ref="317089838"/>
+                                       </object>
+                                       <int key="connectionID">10</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">credentialPanel</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="317089838"/>
+                                       </object>
+                                       <int key="connectionID">11</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textEditUserName</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="167535534"/>
+                                       </object>
+                                       <int key="connectionID">18</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textEditPassword</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="944739158"/>
+                                       </object>
+                                       <int key="connectionID">19</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">getToken:</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="394185848"/>
+                                       </object>
+                                       <int key="connectionID">20</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">closePanel:</string>
+                                               <reference key="source" ref="643915252"/>
+                                               <reference key="destination" ref="37378773"/>
+                                       </object>
+                                       <int key="connectionID">21</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <object class="NSArray" key="object" id="0">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="children" ref="500241113"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="483479706"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="194032068"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">5</int>
+                                               <reference key="object" ref="317089838"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="897176997"/>
+                                               </object>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Panel</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">6</int>
+                                               <reference key="object" ref="897176997"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1043652849"/>
+                                                       <reference ref="6777892"/>
+                                                       <reference ref="167535534"/>
+                                                       <reference ref="944739158"/>
+                                                       <reference ref="394185848"/>
+                                                       <reference ref="37378773"/>
+                                               </object>
+                                               <reference key="parent" ref="317089838"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">12</int>
+                                               <reference key="object" ref="1043652849"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="285386094"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">13</int>
+                                               <reference key="object" ref="6777892"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="941629363"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">14</int>
+                                               <reference key="object" ref="167535534"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="690718153"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">15</int>
+                                               <reference key="object" ref="944739158"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="590522050"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">16</int>
+                                               <reference key="object" ref="394185848"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="543624439"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">17</int>
+                                               <reference key="object" ref="37378773"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="464336313"/>
+                                               </object>
+                                               <reference key="parent" ref="897176997"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">7</int>
+                                               <reference key="object" ref="643915252"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">TokenCredentialController</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">23</int>
+                                               <reference key="object" ref="285386094"/>
+                                               <reference key="parent" ref="1043652849"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">24</int>
+                                               <reference key="object" ref="941629363"/>
+                                               <reference key="parent" ref="6777892"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">25</int>
+                                               <reference key="object" ref="690718153"/>
+                                               <reference key="parent" ref="167535534"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">26</int>
+                                               <reference key="object" ref="590522050"/>
+                                               <reference key="parent" ref="944739158"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">27</int>
+                                               <reference key="object" ref="543624439"/>
+                                               <reference key="parent" ref="394185848"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">28</int>
+                                               <reference key="object" ref="464336313"/>
+                                               <reference key="parent" ref="37378773"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="136977041"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.IBPluginDependency</string>
+                                       <string>-2.IBPluginDependency</string>
+                                       <string>12.IBPluginDependency</string>
+                                       <string>12.ImportedFromIB2</string>
+                                       <string>13.IBPluginDependency</string>
+                                       <string>13.ImportedFromIB2</string>
+                                       <string>14.IBPluginDependency</string>
+                                       <string>14.ImportedFromIB2</string>
+                                       <string>15.CustomClassName</string>
+                                       <string>15.IBPluginDependency</string>
+                                       <string>15.ImportedFromIB2</string>
+                                       <string>16.IBPluginDependency</string>
+                                       <string>16.ImportedFromIB2</string>
+                                       <string>17.IBPluginDependency</string>
+                                       <string>17.ImportedFromIB2</string>
+                                       <string>5.IBPluginDependency</string>
+                                       <string>5.ImportedFromIB2</string>
+                                       <string>5.windowTemplate.hasMinSize</string>
+                                       <string>5.windowTemplate.minSize</string>
+                                       <string>6.IBPluginDependency</string>
+                                       <string>6.ImportedFromIB2</string>
+                                       <string>7.IBPluginDependency</string>
+                                       <string>7.ImportedFromIB2</string>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <integer value="1" id="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>NSSecureTextField</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <string>{213, 107}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">28</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addRemoveCell:</string>
+                                                       <string>afsMenuActivationEvent:</string>
+                                                       <string>aklogSwitchEvent:</string>
+                                                       <string>getNewToken:</string>
+                                                       <string>info:</string>
+                                                       <string>refreshConfiguration:</string>
+                                                       <string>saveCacheManagerParam:</string>
+                                                       <string>saveConfiguration:</string>
+                                                       <string>searchCellTextEvent:</string>
+                                                       <string>showCellIP:</string>
+                                                       <string>startStopAfs:</string>
+                                                       <string>tableDoubleAction:</string>
+                                                       <string>unlog:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addCellButton</string>
+                                                       <string>afsCommanderView</string>
+                                                       <string>afsDB</string>
+                                                       <string>afsDefaultCellLabel</string>
+                                                       <string>afsMenucheckBox</string>
+                                                       <string>afsRootMountPoint</string>
+                                                       <string>afsVersionLabel</string>
+                                                       <string>cacheDimension</string>
+                                                       <string>cellIpButton</string>
+                                                       <string>cellList</string>
+                                                       <string>credentialCommander</string>
+                                                       <string>credentialSheet</string>
+                                                       <string>dCacheDim</string>
+                                                       <string>daemonNumber</string>
+                                                       <string>dynRoot</string>
+                                                       <string>groupsBox</string>
+                                                       <string>infoController</string>
+                                                       <string>infoSheet</string>
+                                                       <string>installationPathTextField</string>
+                                                       <string>ipConfControllerCommander</string>
+                                                       <string>ipConfigurationSheet</string>
+                                                       <string>labelSaveResult</string>
+                                                       <string>nVolEntry</string>
+                                                       <string>refreshConfigurationButton</string>
+                                                       <string>removeCellButton</string>
+                                                       <string>saveConfigurationButton</string>
+                                                       <string>startStopButton</string>
+                                                       <string>statCacheEntry</string>
+                                                       <string>textSearchField</string>
+                                                       <string>tokensButton</string>
+                                                       <string>tokensTable</string>
+                                                       <string>unlogButton</string>
+                                                       <string>useAklogCheck</string>
+                                                       <string>verbose</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>NSView</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSBox</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSSearchField</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">AFSCommanderPref.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <string key="NS.key.0">cellNameTextEdit</string>
+                                               <string key="NS.object.0">id</string>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">FirstResponder</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSPreferencePane</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>_firstKeyView</string>
+                                                       <string>_initialKeyView</string>
+                                                       <string>_lastKeyView</string>
+                                                       <string>_window</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSWindow</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">TokenCredentialController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>closePanel:</string>
+                                                       <string>getToken:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>afsCommanderPref</string>
+                                                       <string>credentialPanel</string>
+                                                       <string>textEditPassword</string>
+                                                       <string>textEditUserName</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">TokenCredentialController.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">TokenCredentialController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                       </object>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <nil key="IBDocument.LastKnownRelativeProjectPath"/>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+       </data>
+</archive>
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/InfoPlist.strings b/src/platform/DARWIN/AFSPreference/English.lproj/InfoPlist.strings
new file mode 100644 (file)
index 0000000..1352c22
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/English.lproj/InfoPlist.strings differ
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/IpPanel.xib b/src/platform/DARWIN/AFSPreference/English.lproj/IpPanel.xib
new file mode 100644 (file)
index 0000000..269b673
--- /dev/null
@@ -0,0 +1,1199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">9C31</string>
+               <string key="IBDocument.InterfaceBuilderVersion">648</string>
+               <string key="IBDocument.AppKitVersion">949.26</string>
+               <string key="IBDocument.HIToolboxVersion">352.00</string>
+               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" id="429600039">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSCustomObject" id="657952263">
+                               <string key="NSClassName">AFSCommanderPref</string>
+                       </object>
+                       <object class="NSCustomObject" id="930067686">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="784296185">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="249730404">
+                               <int key="NSWindowStyleMask">11</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{622, 526}, {525, 370}}</string>
+                               <int key="NSWTFlags">813170688</int>
+                               <string key="NSWindowTitle">Panel</string>
+                               <object class="NSMutableString" key="NSWindowClass">
+                                       <characters key="NS.bytes">NSPanel</characters>
+                               </object>
+                               <object class="NSMutableString" key="NSViewClass">
+                                       <characters key="NS.bytes">View</characters>
+                               </object>
+                               <string key="NSWindowContentMinSize">{525, 345}</string>
+                               <object class="NSView" key="NSWindowView" id="274468230">
+                                       <nil key="NSNextResponder"/>
+                                       <int key="NSvFlags">256</int>
+                                       <object class="NSMutableArray" key="NSSubviews">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSButton" id="800283714">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{430, 13}, {80, 28}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="1042040079">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Ok</string>
+                                                               <object class="NSFont" key="NSSupport" id="26">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                       <int key="NSfFlags">3100</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="800283714"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <object class="NSFont" key="NSAlternateImage" id="845391598">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                       <int key="NSfFlags">16</int>
+                                                               </object>
+                                                               <string key="NSAlternateContents"/>
+                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                       <characters key="NS.bytes"/>
+                                                               </object>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="956015576">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{348, 13}, {80, 28}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="441391248">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Cancel</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="956015576"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <reference key="NSAlternateImage" ref="845391598"/>
+                                                               <string key="NSAlternateContents"/>
+                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                       <characters key="NS.bytes"/>
+                                                               </object>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="680338282">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{51, 344}, {54, 16}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="496687085">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">272760832</int>
+                                                               <string type="base64-UTF8" key="NSContents">QWZzIENlbGw6Cg</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="680338282"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="319048697">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="315060860">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="513483274">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlTextColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="350675897">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MAA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSBox" id="338197250">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">274</int>
+                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                               <object class="NSView" id="612441040">
+                                                                       <reference key="NSNextResponder" ref="338197250"/>
+                                                                       <int key="NSvFlags">256</int>
+                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                               <object class="NSScrollView" id="585065386">
+                                                                                       <reference key="NSNextResponder" ref="612441040"/>
+                                                                                       <int key="NSvFlags">274</int>
+                                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                               <object class="NSClipView" id="786132725">
+                                                                                                       <reference key="NSNextResponder" ref="585065386"/>
+                                                                                                       <int key="NSvFlags">2304</int>
+                                                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <object class="NSTableView" id="234348651">
+                                                                                                                       <reference key="NSNextResponder" ref="786132725"/>
+                                                                                                                       <int key="NSvFlags">256</int>
+                                                                                                                       <string key="NSFrameSize">{453, 190}</string>
+                                                                                                                       <reference key="NSSuperview" ref="786132725"/>
+                                                                                                                       <bool key="NSEnabled">YES</bool>
+                                                                                                                       <object class="NSTableHeaderView" key="NSHeaderView" id="367895900">
+                                                                                                                               <reference key="NSNextResponder" ref="336840699"/>
+                                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                                               <string key="NSFrameSize">{453, 17}</string>
+                                                                                                                               <reference key="NSSuperview" ref="336840699"/>
+                                                                                                                               <reference key="NSTableView" ref="234348651"/>
+                                                                                                                       </object>
+                                                                                                                       <object class="_NSCornerView" key="NSCornerView" id="211425262">
+                                                                                                                               <reference key="NSNextResponder" ref="585065386"/>
+                                                                                                                               <int key="NSvFlags">-2147483392</int>
+                                                                                                                               <string key="NSFrame">{{-22, 0}, {12, 17}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="585065386"/>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSMutableArray" key="NSTableColumns">
+                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                               <object class="NSTableColumn" id="304822933">
+                                                                                                                                       <string key="NSIdentifier">1</string>
+                                                                                                                                       <double key="NSWidth">2.080000e+02</double>
+                                                                                                                                       <double key="NSMinWidth">4.000000e+01</double>
+                                                                                                                                       <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                       <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                               <int key="NSCellFlags">75628032</int>
+                                                                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                                                                               <string key="NSContents">IP</string>
+                                                                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                                                                               <object class="NSColor" key="NSBackgroundColor" id="87486732">
+                                                                                                                                                       <int key="NSColorSpace">3</int>
+                                                                                                                                                       <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSColor" key="NSTextColor" id="446718123">
+                                                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                                                       <string key="NSColorName">headerTextColor</string>
+                                                                                                                                                       <reference key="NSColor" ref="350675897"/>
+                                                                                                                                               </object>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTextFieldCell" key="NSDataCell" id="204595378">
+                                                                                                                                               <int key="NSCellFlags">337772096</int>
+                                                                                                                                               <int key="NSCellFlags2">133120</int>
+                                                                                                                                               <string key="NSContents">Text Cell</string>
+                                                                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                                                                               <reference key="NSControlView" ref="234348651"/>
+                                                                                                                                               <object class="NSColor" key="NSBackgroundColor" id="189347581">
+                                                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                                                       <string key="NSColorName">controlBackgroundColor</string>
+                                                                                                                                                       <reference key="NSColor" ref="315060860"/>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NSTextColor" ref="513483274"/>
+                                                                                                                                       </object>
+                                                                                                                                       <int key="NSResizingMask">3</int>
+                                                                                                                                       <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                       <bool key="NSIsEditable">YES</bool>
+                                                                                                                                       <reference key="NSTableView" ref="234348651"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="NSTableColumn" id="1066913939">
+                                                                                                                                       <string key="NSIdentifier">2</string>
+                                                                                                                                       <double key="NSWidth">2.389761e+02</double>
+                                                                                                                                       <double key="NSMinWidth">5.997607e+01</double>
+                                                                                                                                       <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                       <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                               <int key="NSCellFlags">75628032</int>
+                                                                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                                                                               <string key="NSContents">Comment</string>
+                                                                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                                                                               <reference key="NSBackgroundColor" ref="87486732"/>
+                                                                                                                                               <reference key="NSTextColor" ref="446718123"/>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTextFieldCell" key="NSDataCell" id="228999791">
+                                                                                                                                               <int key="NSCellFlags">337772096</int>
+                                                                                                                                               <int key="NSCellFlags2">133120</int>
+                                                                                                                                               <string key="NSContents">Text Cell</string>
+                                                                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                                                                               <reference key="NSControlView" ref="234348651"/>
+                                                                                                                                               <reference key="NSBackgroundColor" ref="189347581"/>
+                                                                                                                                               <reference key="NSTextColor" ref="513483274"/>
+                                                                                                                                       </object>
+                                                                                                                                       <int key="NSResizingMask">3</int>
+                                                                                                                                       <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                       <bool key="NSIsEditable">YES</bool>
+                                                                                                                                       <reference key="NSTableView" ref="234348651"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <double key="NSIntercellSpacingWidth">3.000000e+00</double>
+                                                                                                                       <double key="NSIntercellSpacingHeight">2.000000e+00</double>
+                                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="875926337">
+                                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                                               <bytes key="NSWhite">MQA</bytes>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSColor" key="NSGridColor">
+                                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                                               <string key="NSColorName">gridColor</string>
+                                                                                                                               <object class="NSColor" key="NSColor">
+                                                                                                                                       <int key="NSColorSpace">3</int>
+                                                                                                                                       <bytes key="NSWhite">MC41AA</bytes>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <double key="NSRowHeight">1.700000e+01</double>
+                                                                                                                       <int key="NSTvFlags">-692060160</int>
+                                                                                                                       <int key="NSColumnAutoresizingStyle">4</int>
+                                                                                                                       <int key="NSDraggingSourceMaskForLocal">15</int>
+                                                                                                                       <int key="NSDraggingSourceMaskForNonLocal">0</int>
+                                                                                                                       <bool key="NSAllowsTypeSelect">YES</bool>
+                                                                                                               </object>
+                                                                                                       </object>
+                                                                                                       <string key="NSFrame">{{1, 17}, {453, 190}}</string>
+                                                                                                       <reference key="NSSuperview" ref="585065386"/>
+                                                                                                       <reference key="NSNextKeyView" ref="234348651"/>
+                                                                                                       <reference key="NSDocView" ref="234348651"/>
+                                                                                                       <reference key="NSBGColor" ref="189347581"/>
+                                                                                                       <int key="NScvFlags">4</int>
+                                                                                               </object>
+                                                                                               <object class="NSScroller" id="592355064">
+                                                                                                       <reference key="NSNextResponder" ref="585065386"/>
+                                                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                                                       <string key="NSFrame">{{-22, 17}, {11, 189}}</string>
+                                                                                                       <reference key="NSSuperview" ref="585065386"/>
+                                                                                                       <int key="NSsFlags">256</int>
+                                                                                                       <reference key="NSTarget" ref="585065386"/>
+                                                                                                       <string key="NSAction">_doScroller:</string>
+                                                                                                       <double key="NSPercent">9.947369e-01</double>
+                                                                                               </object>
+                                                                                               <object class="NSScroller" id="814656055">
+                                                                                                       <reference key="NSNextResponder" ref="585065386"/>
+                                                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                                                       <string key="NSFrame">{{1, -22}, {442, 11}}</string>
+                                                                                                       <reference key="NSSuperview" ref="585065386"/>
+                                                                                                       <int key="NSsFlags">257</int>
+                                                                                                       <reference key="NSTarget" ref="585065386"/>
+                                                                                                       <string key="NSAction">_doScroller:</string>
+                                                                                                       <double key="NSPercent">9.757174e-01</double>
+                                                                                               </object>
+                                                                                               <object class="NSClipView" id="336840699">
+                                                                                                       <reference key="NSNextResponder" ref="585065386"/>
+                                                                                                       <int key="NSvFlags">2304</int>
+                                                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <reference ref="367895900"/>
+                                                                                                       </object>
+                                                                                                       <string key="NSFrame">{{1, 0}, {453, 17}}</string>
+                                                                                                       <reference key="NSSuperview" ref="585065386"/>
+                                                                                                       <reference key="NSNextKeyView" ref="367895900"/>
+                                                                                                       <reference key="NSDocView" ref="367895900"/>
+                                                                                                       <reference key="NSBGColor" ref="189347581"/>
+                                                                                                       <int key="NScvFlags">4</int>
+                                                                                               </object>
+                                                                                               <reference ref="211425262"/>
+                                                                                       </object>
+                                                                                       <string key="NSFrame">{{16, 30}, {455, 208}}</string>
+                                                                                       <reference key="NSSuperview" ref="612441040"/>
+                                                                                       <reference key="NSNextKeyView" ref="786132725"/>
+                                                                                       <int key="NSsFlags">562</int>
+                                                                                       <reference key="NSVScroller" ref="592355064"/>
+                                                                                       <reference key="NSHScroller" ref="814656055"/>
+                                                                                       <reference key="NSContentView" ref="786132725"/>
+                                                                                       <reference key="NSHeaderClipView" ref="336840699"/>
+                                                                                       <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
+                                                                               </object>
+                                                                       </object>
+                                                                       <string key="NSFrame">{{2, 2}, {487, 249}}</string>
+                                                                       <reference key="NSSuperview" ref="338197250"/>
+                                                               </object>
+                                                       </object>
+                                                       <string key="NSFrame">{{17, 41}, {491, 266}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <string key="NSOffsets">{0, 0}</string>
+                                                       <object class="NSTextFieldCell" key="NSTitleCell">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">0</int>
+                                                               <string key="NSContents">Authentication server ip</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="383485033">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textBackgroundColor</string>
+                                                                       <reference key="NSColor" ref="875926337"/>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor">
+                                                                       <int key="NSColorSpace">3</int>
+                                                                       <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+                                                               </object>
+                                                       </object>
+                                                       <reference key="NSContentView" ref="612441040"/>
+                                                       <int key="NSBorderType">3</int>
+                                                       <int key="NSBoxType">0</int>
+                                                       <int key="NSTitlePosition">2</int>
+                                                       <bool key="NSTransparent">NO</bool>
+                                               </object>
+                                               <object class="NSButton" id="216429474">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{331, 52}, {75, 16}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="305136955">
+                                                               <int key="NSCellFlags">604110336</int>
+                                                               <int key="NSCellFlags2">134479872</int>
+                                                               <string key="NSContents">Delete</string>
+                                                               <object class="NSFont" key="NSSupport" id="22">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">9.000000e+00</double>
+                                                                       <int key="NSfFlags">3614</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="216429474"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <object class="NSFont" key="NSAlternateImage" id="160758642">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">9.000000e+00</double>
+                                                                       <int key="NSfFlags">16</int>
+                                                               </object>
+                                                               <string key="NSAlternateContents"/>
+                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                       <characters key="NS.bytes"/>
+                                                               </object>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="655780437">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{412, 52}, {75, 16}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="675738899">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134479872</int>
+                                                               <string key="NSContents">Add</string>
+                                                               <reference key="NSSupport" ref="22"/>
+                                                               <reference key="NSControlView" ref="655780437"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <reference key="NSAlternateImage" ref="160758642"/>
+                                                               <string key="NSAlternateContents"/>
+                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                       <characters key="NS.bytes"/>
+                                                               </object>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="953679499">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{44, 314}, {61, 16}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="847361982">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">272760832</int>
+                                                               <string type="base64-UTF8" key="NSContents">Q29tbWVudDoKA</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="953679499"/>
+                                                               <reference key="NSBackgroundColor" ref="319048697"/>
+                                                               <reference key="NSTextColor" ref="513483274"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="379757882">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{110, 344}, {389, 19}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="620196816">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <string key="NSPlaceholderString">cell name</string>
+                                                               <reference key="NSControlView" ref="379757882"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <reference key="NSBackgroundColor" ref="383485033"/>
+                                                               <object class="NSColor" key="NSTextColor" id="563830179">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textColor</string>
+                                                                       <reference key="NSColor" ref="350675897"/>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="523190513">
+                                                       <reference key="NSNextResponder" ref="274468230"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{110, 315}, {389, 19}}</string>
+                                                       <reference key="NSSuperview" ref="274468230"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="115478350">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <string key="NSPlaceholderString">Comment</string>
+                                                               <reference key="NSControlView" ref="523190513"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <reference key="NSBackgroundColor" ref="383485033"/>
+                                                               <reference key="NSTextColor" ref="563830179"/>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <string key="NSFrameSize">{525, 370}</string>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+                               <string key="NSMinSize">{525, 367}</string>
+                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                       </object>
+                       <object class="NSCustomObject" id="446101933">
+                               <string key="NSClassName">IpConfiguratorCommander</string>
+                       </object>
+                       <object class="NSCustomObject" id="934847714">
+                               <string key="NSClassName">AFSCommanderPref</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">ipConfigurationSheet</string>
+                                               <reference key="source" ref="657952263"/>
+                                               <reference key="destination" ref="249730404"/>
+                                       </object>
+                                       <int key="connectionID">15</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">cancel:</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="956015576"/>
+                                       </object>
+                                       <int key="connectionID">17</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">save:</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="800283714"/>
+                                       </object>
+                                       <int key="connectionID">18</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">confPanel</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="249730404"/>
+                                       </object>
+                                       <int key="connectionID">19</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsCommanderPref</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="657952263"/>
+                                       </object>
+                                       <int key="connectionID">20</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">ipConfControllerCommander</string>
+                                               <reference key="source" ref="657952263"/>
+                                               <reference key="destination" ref="446101933"/>
+                                       </object>
+                                       <int key="connectionID">22</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">tableViewCellIP</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="234348651"/>
+                                       </object>
+                                       <int key="connectionID">40</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">deleteButton</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="216429474"/>
+                                       </object>
+                                       <int key="connectionID">41</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">createButton</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="655780437"/>
+                                       </object>
+                                       <int key="connectionID">43</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">cancelIP:</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="216429474"/>
+                                       </object>
+                                       <int key="connectionID">48</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">createNewIP:</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="655780437"/>
+                                       </object>
+                                       <int key="connectionID">50</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">delegate</string>
+                                               <reference key="source" ref="249730404"/>
+                                               <reference key="destination" ref="446101933"/>
+                                       </object>
+                                       <int key="connectionID">52</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textFieldCellName</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="379757882"/>
+                                       </object>
+                                       <int key="connectionID">57</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textFieldComment</string>
+                                               <reference key="source" ref="446101933"/>
+                                               <reference key="destination" ref="523190513"/>
+                                       </object>
+                                       <int key="connectionID">58</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <object class="NSArray" key="object" id="0">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="children" ref="429600039"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="657952263"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="930067686"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="784296185"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">5</int>
+                                               <reference key="object" ref="249730404"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="274468230"/>
+                                               </object>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">IpConfigurator</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">6</int>
+                                               <reference key="object" ref="274468230"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="800283714"/>
+                                                       <reference ref="956015576"/>
+                                                       <reference ref="680338282"/>
+                                                       <reference ref="338197250"/>
+                                                       <reference ref="216429474"/>
+                                                       <reference ref="655780437"/>
+                                                       <reference ref="953679499"/>
+                                                       <reference ref="379757882"/>
+                                                       <reference ref="523190513"/>
+                                               </object>
+                                               <reference key="parent" ref="249730404"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">7</int>
+                                               <reference key="object" ref="800283714"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1042040079"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">8</int>
+                                               <reference key="object" ref="956015576"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="441391248"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">14</int>
+                                               <reference key="object" ref="680338282"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="496687085"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">25</int>
+                                               <reference key="object" ref="338197250"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="585065386"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">38</int>
+                                               <reference key="object" ref="216429474"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="305136955"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">39</int>
+                                               <reference key="object" ref="655780437"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="675738899"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">53</int>
+                                               <reference key="object" ref="953679499"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="847361982"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">55</int>
+                                               <reference key="object" ref="379757882"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="620196816"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">56</int>
+                                               <reference key="object" ref="523190513"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="115478350"/>
+                                               </object>
+                                               <reference key="parent" ref="274468230"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">16</int>
+                                               <reference key="object" ref="446101933"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">IpConfiguratorCommander1</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">21</int>
+                                               <reference key="object" ref="934847714"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">AFSCommanderPref</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">62</int>
+                                               <reference key="object" ref="1042040079"/>
+                                               <reference key="parent" ref="800283714"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">63</int>
+                                               <reference key="object" ref="441391248"/>
+                                               <reference key="parent" ref="956015576"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">64</int>
+                                               <reference key="object" ref="496687085"/>
+                                               <reference key="parent" ref="680338282"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">65</int>
+                                               <reference key="object" ref="305136955"/>
+                                               <reference key="parent" ref="216429474"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">66</int>
+                                               <reference key="object" ref="675738899"/>
+                                               <reference key="parent" ref="655780437"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">67</int>
+                                               <reference key="object" ref="847361982"/>
+                                               <reference key="parent" ref="953679499"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">68</int>
+                                               <reference key="object" ref="620196816"/>
+                                               <reference key="parent" ref="379757882"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">69</int>
+                                               <reference key="object" ref="115478350"/>
+                                               <reference key="parent" ref="523190513"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">27</int>
+                                               <reference key="object" ref="585065386"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="367895900"/>
+                                                       <reference ref="814656055"/>
+                                                       <reference ref="592355064"/>
+                                                       <reference ref="234348651"/>
+                                               </object>
+                                               <reference key="parent" ref="338197250"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">74</int>
+                                               <reference key="object" ref="367895900"/>
+                                               <reference key="parent" ref="585065386"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">73</int>
+                                               <reference key="object" ref="814656055"/>
+                                               <reference key="parent" ref="585065386"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">72</int>
+                                               <reference key="object" ref="592355064"/>
+                                               <reference key="parent" ref="585065386"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">28</int>
+                                               <reference key="object" ref="234348651"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1066913939"/>
+                                                       <reference ref="304822933"/>
+                                               </object>
+                                               <reference key="parent" ref="585065386"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">30</int>
+                                               <reference key="object" ref="1066913939"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="228999791"/>
+                                               </object>
+                                               <reference key="parent" ref="234348651"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">29</int>
+                                               <reference key="object" ref="304822933"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="204595378"/>
+                                               </object>
+                                               <reference key="parent" ref="234348651"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">70</int>
+                                               <reference key="object" ref="204595378"/>
+                                               <reference key="parent" ref="304822933"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">71</int>
+                                               <reference key="object" ref="228999791"/>
+                                               <reference key="parent" ref="1066913939"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.IBPluginDependency</string>
+                                       <string>-2.IBPluginDependency</string>
+                                       <string>-3.IBPluginDependency</string>
+                                       <string>-3.ImportedFromIB2</string>
+                                       <string>14.IBPluginDependency</string>
+                                       <string>14.ImportedFromIB2</string>
+                                       <string>16.IBPluginDependency</string>
+                                       <string>16.ImportedFromIB2</string>
+                                       <string>21.IBPluginDependency</string>
+                                       <string>21.ImportedFromIB2</string>
+                                       <string>25.IBPluginDependency</string>
+                                       <string>25.ImportedFromIB2</string>
+                                       <string>27.IBPluginDependency</string>
+                                       <string>27.ImportedFromIB2</string>
+                                       <string>28.IBPluginDependency</string>
+                                       <string>28.ImportedFromIB2</string>
+                                       <string>29.IBPluginDependency</string>
+                                       <string>29.ImportedFromIB2</string>
+                                       <string>30.IBPluginDependency</string>
+                                       <string>30.ImportedFromIB2</string>
+                                       <string>38.IBPluginDependency</string>
+                                       <string>38.ImportedFromIB2</string>
+                                       <string>39.IBPluginDependency</string>
+                                       <string>39.ImportedFromIB2</string>
+                                       <string>5.IBPluginDependency</string>
+                                       <string>5.ImportedFromIB2</string>
+                                       <string>5.windowTemplate.hasMinSize</string>
+                                       <string>5.windowTemplate.minSize</string>
+                                       <string>53.IBPluginDependency</string>
+                                       <string>53.ImportedFromIB2</string>
+                                       <string>55.IBPluginDependency</string>
+                                       <string>55.ImportedFromIB2</string>
+                                       <string>56.IBPluginDependency</string>
+                                       <string>56.ImportedFromIB2</string>
+                                       <string>6.IBPluginDependency</string>
+                                       <string>6.ImportedFromIB2</string>
+                                       <string>7.IBPluginDependency</string>
+                                       <string>7.ImportedFromIB2</string>
+                                       <string>70.IBShouldRemoveOnLegacySave</string>
+                                       <string>71.IBShouldRemoveOnLegacySave</string>
+                                       <string>72.IBShouldRemoveOnLegacySave</string>
+                                       <string>73.IBShouldRemoveOnLegacySave</string>
+                                       <string>74.IBShouldRemoveOnLegacySave</string>
+                                       <string>8.IBPluginDependency</string>
+                                       <string>8.ImportedFromIB2</string>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <integer value="1" id="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <string>{525, 345}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <reference ref="5"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="5"/>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">74</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addRemoveCell:</string>
+                                                       <string>afsMenuActivationEvent:</string>
+                                                       <string>aklogSwitchEvent:</string>
+                                                       <string>getNewToken:</string>
+                                                       <string>info:</string>
+                                                       <string>refreshConfiguration:</string>
+                                                       <string>saveCacheManagerParam:</string>
+                                                       <string>saveConfiguration:</string>
+                                                       <string>searchCellTextEvent:</string>
+                                                       <string>showCellIP:</string>
+                                                       <string>startStopAfs:</string>
+                                                       <string>tableDoubleAction:</string>
+                                                       <string>unlog:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addCellButton</string>
+                                                       <string>afsCommanderView</string>
+                                                       <string>afsDB</string>
+                                                       <string>afsDefaultCellLabel</string>
+                                                       <string>afsMenucheckBox</string>
+                                                       <string>afsRootMountPoint</string>
+                                                       <string>afsVersionLabel</string>
+                                                       <string>cacheDimension</string>
+                                                       <string>cellIpButton</string>
+                                                       <string>cellList</string>
+                                                       <string>credentialCommander</string>
+                                                       <string>credentialSheet</string>
+                                                       <string>dCacheDim</string>
+                                                       <string>daemonNumber</string>
+                                                       <string>dynRoot</string>
+                                                       <string>groupsBox</string>
+                                                       <string>infoController</string>
+                                                       <string>infoSheet</string>
+                                                       <string>installationPathTextField</string>
+                                                       <string>ipConfControllerCommander</string>
+                                                       <string>ipConfigurationSheet</string>
+                                                       <string>labelSaveResult</string>
+                                                       <string>nVolEntry</string>
+                                                       <string>refreshConfigurationButton</string>
+                                                       <string>removeCellButton</string>
+                                                       <string>saveConfigurationButton</string>
+                                                       <string>startStopButton</string>
+                                                       <string>statCacheEntry</string>
+                                                       <string>textSearchField</string>
+                                                       <string>tokensButton</string>
+                                                       <string>tokensTable</string>
+                                                       <string>unlogButton</string>
+                                                       <string>useAklogCheck</string>
+                                                       <string>verbose</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>NSView</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSBox</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSSearchField</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">AFSCommanderPref.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <string key="NS.key.0">addMoifyCell:</string>
+                                               <string key="NS.object.0">id</string>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <string key="NS.key.0">cellNameTextEdit</string>
+                                               <string key="NS.object.0">id</string>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">FirstResponder</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">IpConfiguratorCommander</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>cancel:</string>
+                                                       <string>cancelIP:</string>
+                                                       <string>createNewIP:</string>
+                                                       <string>save:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>afsCommanderPref</string>
+                                                       <string>confPanel</string>
+                                                       <string>createButton</string>
+                                                       <string>deleteButton</string>
+                                                       <string>modifyButton</string>
+                                                       <string>tableViewCellIP</string>
+                                                       <string>textFieldCellName</string>
+                                                       <string>textFieldComment</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">IpConfiguratorCommander.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">IpConfiguratorCommander</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSPreferencePane</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>_firstKeyView</string>
+                                                       <string>_initialKeyView</string>
+                                                       <string>_lastKeyView</string>
+                                                       <string>_window</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSView</string>
+                                                       <string>NSWindow</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                       </object>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.LastKnownRelativeProjectPath">../../AFSCommander.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+       </data>
+</archive>
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/Localizable.strings b/src/platform/DARWIN/AFSPreference/English.lproj/Localizable.strings
new file mode 100644 (file)
index 0000000..76f8b4e
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>AfsButtonShutdown</key>
+       <string>Shutdown</string>
+       <key>AfsButtonStartup</key>
+       <string>Startup</string>
+       <key>AfsOff</key>
+       <string>Afs is off</string>
+       <key>AfsOn</key>
+       <string>Afs is on</string>
+       <key>ConfFileNotExits</key>
+       <string>Configuration files not found</string>
+       <key>ConfigurationSaved</key>
+       <string>Configuration file has been saved</string>
+       <key>DevelopInfo</key>
+       <string>Developed by Claudio Bisegni</string>
+       <key>NewCellComment</key>
+       <string>Cell comment</string>
+       <key>NewCellName</key>
+       <string>Cell name</string>
+       <key>PathDontContainAfsInstallation</key>
+       <string>Installation path doesn't contain an afs installation</string>
+       <key>PathNotEmpty</key>
+       <string>Path can't be empty</string>
+       <key>ThisCellFOError</key>
+       <string>ThisCell file open error</string>
+       <key>UserNotAuth</key>
+       <string>User not autenticated</string>
+       <key>MenuLogin</key>
+       <string>Get token</string>
+       <key>MenuUnlog</key>
+       <string>Release token</string>
+       <key>SavedCacheConfiguration</key>
+       <string>Cache Configuration File Saved</string>
+       <key>BadAfsRootMountPoint</key>
+       <string>Error in afs volume mount point</string>
+       <key>KerberosAuthError</key>
+       <string>Error in Kerberos Authetincation</string>
+       <key>BadAfsPath</key>
+       <string>Bad AFS mount point</string>
+       <key>DoYouWantCreateTheDirectory</key>
+       <string>Do you want create the directory </string>
+       <key>DirectoryCreated</key>
+       <string>Directory and launchd configuration file created</string>
+       <key>ErrorCreatingDirectory</key>
+       <string>Error creating directory</string>       
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib b/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib
new file mode 100644 (file)
index 0000000..4518e47
--- /dev/null
@@ -0,0 +1,4335 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">9D34</string>
+               <string key="IBDocument.InterfaceBuilderVersion">670</string>
+               <string key="IBDocument.AppKitVersion">949.33</string>
+               <string key="IBDocument.HIToolboxVersion">352.00</string>
+               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <integer value="6"/>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" id="84888716">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSCustomObject" id="773588579">
+                               <string key="NSClassName">AFSCommanderPref</string>
+                       </object>
+                       <object class="NSCustomObject" id="270520968">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="173116405">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="61231707">
+                               <int key="NSWindowStyleMask">15</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{423, 652}, {595, 486}}</string>
+                               <int key="NSWTFlags">1081606144</int>
+                               <string type="base64-UTF8" key="NSWindowTitle">PDwgZG8gbm90IGxvY2FsaXplID4+A</string>
+                               <string key="NSWindowClass">NSWindow</string>
+                               <object class="NSMutableString" key="NSViewClass">
+                                       <characters key="NS.bytes">View</characters>
+                               </object>
+                               <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                               <object class="NSView" key="NSWindowView" id="645279396">
+                                       <reference key="NSNextResponder"/>
+                                       <int key="NSvFlags">274</int>
+                                       <object class="NSMutableArray" key="NSSubviews">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSTextField" id="415603882">
+                                                       <reference key="NSNextResponder" ref="645279396"/>
+                                                       <int key="NSvFlags">256</int>
+                                                       <string key="NSFrame">{{17, 0}, {488, 17}}</string>
+                                                       <reference key="NSSuperview" ref="645279396"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="947523856">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">272629760</int>
+                                                               <string key="NSContents"/>
+                                                               <object class="NSFont" key="NSSupport" id="22">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">9.000000e+00</double>
+                                                                       <int key="NSfFlags">3614</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="415603882"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="568311573">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="277525007">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="276594776">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlTextColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="39932154">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MAA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSBox" id="748501112">
+                                                       <reference key="NSNextResponder" ref="645279396"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                               <object class="NSView" id="520583273">
+                                                                       <reference key="NSNextResponder" ref="748501112"/>
+                                                                       <int key="NSvFlags">256</int>
+                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                               <object class="NSButton" id="709840556">
+                                                                                       <reference key="NSNextResponder" ref="520583273"/>
+                                                                                       <int key="NSvFlags">268</int>
+                                                                                       <string key="NSFrame">{{13, 9}, {109, 28}}</string>
+                                                                                       <reference key="NSSuperview" ref="520583273"/>
+                                                                                       <bool key="NSEnabled">YES</bool>
+                                                                                       <object class="NSButtonCell" key="NSCell" id="675447498">
+                                                                                               <int key="NSCellFlags">67239424</int>
+                                                                                               <int key="NSCellFlags2">134348800</int>
+                                                                                               <string key="NSContents">On</string>
+                                                                                               <object class="NSFont" key="NSSupport" id="26">
+                                                                                                       <string key="NSName">LucidaGrande</string>
+                                                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                                                       <int key="NSfFlags">3100</int>
+                                                                                               </object>
+                                                                                               <reference key="NSControlView" ref="709840556"/>
+                                                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                                                               <int key="NSButtonFlags2">1</int>
+                                                                                               <reference key="NSAlternateImage" ref="26"/>
+                                                                                               <string key="NSAlternateContents"/>
+                                                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                                                       <characters key="NS.bytes"/>
+                                                                                               </object>
+                                                                                               <int key="NSPeriodicDelay">200</int>
+                                                                                               <int key="NSPeriodicInterval">25</int>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <object class="NSButton" id="871603218">
+                                                                                       <reference key="NSNextResponder" ref="520583273"/>
+                                                                                       <int key="NSvFlags">265</int>
+                                                                                       <string key="NSFrame">{{526, 12}, {21, 23}}</string>
+                                                                                       <reference key="NSSuperview" ref="520583273"/>
+                                                                                       <bool key="NSEnabled">YES</bool>
+                                                                                       <object class="NSButtonCell" key="NSCell" id="1009755861">
+                                                                                               <int key="NSCellFlags">-2080244224</int>
+                                                                                               <int key="NSCellFlags2">134217728</int>
+                                                                                               <string key="NSContents"/>
+                                                                                               <object class="NSFont" key="NSSupport" id="275217208">
+                                                                                                       <string key="NSName">LucidaGrande</string>
+                                                                                                       <double key="NSSize">1.300000e+01</double>
+                                                                                                       <int key="NSfFlags">1044</int>
+                                                                                               </object>
+                                                                                               <reference key="NSControlView" ref="871603218"/>
+                                                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                                                               <int key="NSButtonFlags2">33</int>
+                                                                                               <reference key="NSAlternateImage" ref="275217208"/>
+                                                                                               <string key="NSAlternateContents"/>
+                                                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                                                       <characters key="NS.bytes"/>
+                                                                                               </object>
+                                                                                               <int key="NSPeriodicDelay">200</int>
+                                                                                               <int key="NSPeriodicInterval">25</int>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <object class="NSButton" id="239701474">
+                                                                                       <reference key="NSNextResponder" ref="520583273"/>
+                                                                                       <int key="NSvFlags">268</int>
+                                                                                       <string key="NSFrame">{{273, 15}, {170, 18}}</string>
+                                                                                       <reference key="NSSuperview" ref="520583273"/>
+                                                                                       <bool key="NSEnabled">YES</bool>
+                                                                                       <object class="NSButtonCell" key="NSCell" id="855912809">
+                                                                                               <int key="NSCellFlags">67239424</int>
+                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                               <string key="NSContents">Get Krb5 credential at login</string>
+                                                                                               <object class="NSFont" key="NSSupport" id="894635401">
+                                                                                                       <string key="NSName">LucidaGrande</string>
+                                                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                                                       <int key="NSfFlags">16</int>
+                                                                                               </object>
+                                                                                               <reference key="NSControlView" ref="239701474"/>
+                                                                                               <int key="NSButtonFlags">1211912703</int>
+                                                                                               <int key="NSButtonFlags2">130</int>
+                                                                                               <object class="NSCustomResource" key="NSNormalImage" id="1069694397">
+                                                                                                       <string key="NSClassName">NSImage</string>
+                                                                                                       <string key="NSResourceName">NSSwitch</string>
+                                                                                               </object>
+                                                                                               <object class="NSButtonImageSource" key="NSAlternateImage" id="894136682">
+                                                                                                       <string key="NSImageName">NSSwitch</string>
+                                                                                               </object>
+                                                                                               <string key="NSAlternateContents"/>
+                                                                                               <string key="NSKeyEquivalent"/>
+                                                                                               <int key="NSPeriodicDelay">200</int>
+                                                                                               <int key="NSPeriodicInterval">25</int>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <object class="NSButton" id="713307252">
+                                                                                       <reference key="NSNextResponder" ref="520583273"/>
+                                                                                       <int key="NSvFlags">268</int>
+                                                                                       <string key="NSFrame">{{138, 15}, {117, 18}}</string>
+                                                                                       <reference key="NSSuperview" ref="520583273"/>
+                                                                                       <bool key="NSEnabled">YES</bool>
+                                                                                       <object class="NSButtonCell" key="NSCell" id="98390178">
+                                                                                               <int key="NSCellFlags">67239424</int>
+                                                                                               <int key="NSCellFlags2">131072</int>
+                                                                                               <string key="NSContents">Start AFS at boot</string>
+                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                               <reference key="NSControlView" ref="713307252"/>
+                                                                                               <int key="NSButtonFlags">1211912703</int>
+                                                                                               <int key="NSButtonFlags2">130</int>
+                                                                                               <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                               <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                               <string key="NSAlternateContents"/>
+                                                                                               <string key="NSKeyEquivalent"/>
+                                                                                               <int key="NSPeriodicDelay">200</int>
+                                                                                               <int key="NSPeriodicInterval">25</int>
+                                                                                       </object>
+                                                                               </object>
+                                                                       </object>
+                                                                       <string key="NSFrame">{{1, 1}, {562, 49}}</string>
+                                                                       <reference key="NSSuperview" ref="748501112"/>
+                                                               </object>
+                                                       </object>
+                                                       <string key="NSFrame">{{17, 417}, {564, 51}}</string>
+                                                       <reference key="NSSuperview" ref="645279396"/>
+                                                       <string key="NSOffsets">{0, 0}</string>
+                                                       <object class="NSTextFieldCell" key="NSTitleCell">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">0</int>
+                                                               <string key="NSContents">Box</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="878835253">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textBackgroundColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="400556243">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor">
+                                                                       <int key="NSColorSpace">3</int>
+                                                                       <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+                                                               </object>
+                                                       </object>
+                                                       <reference key="NSContentView" ref="520583273"/>
+                                                       <int key="NSBorderType">1</int>
+                                                       <int key="NSBoxType">0</int>
+                                                       <int key="NSTitlePosition">0</int>
+                                                       <bool key="NSTransparent">NO</bool>
+                                                       <object class="NSColor" key="NSBorderColor2">
+                                                               <int key="NSColorSpace">1</int>
+                                                               <bytes key="NSRGB">MCAwIDAgMC40MQA</bytes>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTabView" id="739317740">
+                                                       <reference key="NSNextResponder" ref="645279396"/>
+                                                       <int key="NSvFlags">274</int>
+                                                       <string key="NSFrame">{{13, 15}, {572, 401}}</string>
+                                                       <reference key="NSSuperview" ref="645279396"/>
+                                                       <object class="NSMutableArray" key="NSTabViewItems">
+                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                               <object class="NSTabViewItem" id="269508902">
+                                                                       <object class="NSMutableString" key="NSIdentifier">
+                                                                               <characters key="NS.bytes">1</characters>
+                                                                       </object>
+                                                                       <object class="NSView" key="NSView" id="1020318718">
+                                                                               <reference key="NSNextResponder" ref="739317740"/>
+                                                                               <int key="NSvFlags">256</int>
+                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                       <object class="NSScrollView" id="440720679">
+                                                                                               <reference key="NSNextResponder" ref="1020318718"/>
+                                                                                               <int key="NSvFlags">266</int>
+                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSClipView" id="457121079">
+                                                                                                               <reference key="NSNextResponder" ref="440720679"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSTableView" id="313963250">
+                                                                                                                               <reference key="NSNextResponder" ref="457121079"/>
+                                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                                               <string key="NSFrameSize">{516, 140}</string>
+                                                                                                                               <reference key="NSSuperview" ref="457121079"/>
+                                                                                                                               <int key="NSTag">1</int>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTableHeaderView" key="NSHeaderView" id="1048519426">
+                                                                                                                                       <reference key="NSNextResponder" ref="214413149"/>
+                                                                                                                                       <int key="NSvFlags">256</int>
+                                                                                                                                       <string key="NSFrameSize">{516, 17}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="214413149"/>
+                                                                                                                                       <reference key="NSTableView" ref="313963250"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="_NSCornerView" key="NSCornerView" id="360324124">
+                                                                                                                                       <reference key="NSNextResponder" ref="440720679"/>
+                                                                                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                                                                                       <string key="NSFrame">{{-22, 0}, {12, 17}}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="440720679"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="NSMutableArray" key="NSTableColumns">
+                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                       <object class="NSTableColumn" id="10567446">
+                                                                                                                                               <double key="NSWidth">5.130000e+02</double>
+                                                                                                                                               <double key="NSMinWidth">4.109668e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Token</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <object class="NSColor" key="NSBackgroundColor">
+                                                                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                                                                               <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSColor" key="NSTextColor" id="716292118">
+                                                                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                                                                               <string key="NSColorName">headerTextColor</string>
+                                                                                                                                                               <reference key="NSColor" ref="39932154"/>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSTextFieldCell" key="NSDataCell" id="361287568">
+                                                                                                                                                       <int key="NSCellFlags">337772096</int>
+                                                                                                                                                       <int key="NSCellFlags2">264192</int>
+                                                                                                                                                       <string key="NSContents">Text Cell</string>
+                                                                                                                                                       <reference key="NSSupport" ref="22"/>
+                                                                                                                                                       <reference key="NSControlView" ref="313963250"/>
+                                                                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="252569531">
+                                                                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                                                                               <string key="NSColorName">controlBackgroundColor</string>
+                                                                                                                                                               <reference key="NSColor" ref="277525007"/>
+                                                                                                                                                       </object>
+                                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="313963250"/>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                               <double key="NSIntercellSpacingWidth">3.000000e+00</double>
+                                                                                                                               <double key="NSIntercellSpacingHeight">2.000000e+00</double>
+                                                                                                                               <reference key="NSBackgroundColor" ref="400556243"/>
+                                                                                                                               <object class="NSColor" key="NSGridColor" id="850792713">
+                                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                                       <string key="NSColorName">gridColor</string>
+                                                                                                                                       <object class="NSColor" key="NSColor">
+                                                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                                                               <bytes key="NSWhite">MC41AA</bytes>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                               <double key="NSRowHeight">1.200000e+01</double>
+                                                                                                                               <int key="NSTvFlags">-692060160</int>
+                                                                                                                               <int key="NSGridStyleMask">2</int>
+                                                                                                                               <int key="NSColumnAutoresizingStyle">5</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForLocal">15</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForNonLocal">0</int>
+                                                                                                                               <bool key="NSAllowsTypeSelect">YES</bool>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 17}, {516, 140}}</string>
+                                                                                                               <reference key="NSSuperview" ref="440720679"/>
+                                                                                                               <reference key="NSNextKeyView" ref="313963250"/>
+                                                                                                               <reference key="NSDocView" ref="313963250"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="884311606">
+                                                                                                               <reference key="NSNextResponder" ref="440720679"/>
+                                                                                                               <int key="NSvFlags">-2147483392</int>
+                                                                                                               <string key="NSFrame">{{494, 17}, {11, 80}}</string>
+                                                                                                               <reference key="NSSuperview" ref="440720679"/>
+                                                                                                               <int key="NSsFlags">256</int>
+                                                                                                               <reference key="NSTarget" ref="440720679"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSPercent">8.791209e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="258996751">
+                                                                                                               <reference key="NSNextResponder" ref="440720679"/>
+                                                                                                               <int key="NSvFlags">-2147483392</int>
+                                                                                                               <string key="NSFrame">{{1, 97}, {505, 11}}</string>
+                                                                                                               <reference key="NSSuperview" ref="440720679"/>
+                                                                                                               <int key="NSsFlags">257</int>
+                                                                                                               <reference key="NSTarget" ref="440720679"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSPercent">9.980198e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSClipView" id="214413149">
+                                                                                                               <reference key="NSNextResponder" ref="440720679"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <reference ref="1048519426"/>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 0}, {516, 17}}</string>
+                                                                                                               <reference key="NSSuperview" ref="440720679"/>
+                                                                                                               <reference key="NSNextKeyView" ref="1048519426"/>
+                                                                                                               <reference key="NSDocView" ref="1048519426"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <reference ref="360324124"/>
+                                                                                               </object>
+                                                                                               <string key="NSFrame">{{17, 199}, {518, 158}}</string>
+                                                                                               <reference key="NSSuperview" ref="1020318718"/>
+                                                                                               <reference key="NSNextKeyView" ref="457121079"/>
+                                                                                               <int key="NSsFlags">562</int>
+                                                                                               <reference key="NSVScroller" ref="884311606"/>
+                                                                                               <reference key="NSHScroller" ref="258996751"/>
+                                                                                               <reference key="NSContentView" ref="457121079"/>
+                                                                                               <reference key="NSHeaderClipView" ref="214413149"/>
+                                                                                               <reference key="NSCornerView" ref="360324124"/>
+                                                                                               <bytes key="NSScrollAmts">QSAAAEEgAABBYAAAQWAAAA</bytes>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="210387551">
+                                                                                               <reference key="NSNextResponder" ref="1020318718"/>
+                                                                                               <int key="NSvFlags">265</int>
+                                                                                               <string key="NSFrame">{{322, 167}, {80, 28}}</string>
+                                                                                               <reference key="NSSuperview" ref="1020318718"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="327131725">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Unlog</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="210387551"/>
+                                                                                                       <int key="NSButtonFlags">-2038284033</int>
+                                                                                                       <int key="NSButtonFlags2">1</int>
+                                                                                                       <reference key="NSAlternateImage" ref="26"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                                                               <characters key="NS.bytes"/>
+                                                                                                       </object>
+                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="977607312">
+                                                                                               <reference key="NSNextResponder" ref="1020318718"/>
+                                                                                               <int key="NSvFlags">265</int>
+                                                                                               <string key="NSFrame">{{407, 167}, {133, 28}}</string>
+                                                                                               <reference key="NSSuperview" ref="1020318718"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="73578210">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Get new Token</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="977607312"/>
+                                                                                                       <int key="NSButtonFlags">-2038284033</int>
+                                                                                                       <int key="NSButtonFlags2">1</int>
+                                                                                                       <reference key="NSAlternateImage" ref="26"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                                                               <characters key="NS.bytes"/>
+                                                                                                       </object>
+                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="893552286">
+                                                                                               <reference key="NSNextResponder" ref="1020318718"/>
+                                                                                               <int key="NSvFlags">268</int>
+                                                                                               <string key="NSFrame">{{14, 163}, {86, 18}}</string>
+                                                                                               <reference key="NSSuperview" ref="1020318718"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="428850916">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                       <string key="NSContents">AFS Menu</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="893552286"/>
+                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                       <int key="NSButtonFlags2">2</int>
+                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSBox" id="184192603">
+                                                                                               <reference key="NSNextResponder" ref="1020318718"/>
+                                                                                               <int key="NSvFlags">12</int>
+                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSView" id="1000204505">
+                                                                                                               <reference key="NSNextResponder" ref="184192603"/>
+                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSButton" id="478533800">
+                                                                                                                               <reference key="NSNextResponder" ref="1000204505"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{5, 31}, {75, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1000204505"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="989004902">
+                                                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">Use aklog</string>
+                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                       <reference key="NSControlView" ref="478533800"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="541208829">
+                                                                                                                               <reference key="NSNextResponder" ref="1000204505"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{5, 11}, {167, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1000204505"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="95048095">
+                                                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">get credential at login time</string>
+                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                       <reference key="NSControlView" ref="541208829"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 1}, {195, 57}}</string>
+                                                                                                               <reference key="NSSuperview" ref="184192603"/>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <string key="NSFrame">{{103, 130}, {197, 73}}</string>
+                                                                                               <reference key="NSSuperview" ref="1020318718"/>
+                                                                                               <string key="NSOffsets">{0, 0}</string>
+                                                                                               <object class="NSTextFieldCell" key="NSTitleCell">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                       <string key="NSContents"/>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                       <object class="NSColor" key="NSTextColor">
+                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                               <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <reference key="NSContentView" ref="1000204505"/>
+                                                                                               <int key="NSBorderType">1</int>
+                                                                                               <int key="NSBoxType">0</int>
+                                                                                               <int key="NSTitlePosition">2</int>
+                                                                                               <bool key="NSTransparent">NO</bool>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <string key="NSFrame">{{10, 25}, {552, 363}}</string>
+                                                                               <reference key="NSSuperview" ref="739317740"/>
+                                                                       </object>
+                                                                       <string key="NSLabel">Tokens</string>
+                                                                       <reference key="NSColor" ref="568311573"/>
+                                                                       <reference key="NSTabView" ref="739317740"/>
+                                                               </object>
+                                                               <object class="NSTabViewItem" id="443722606">
+                                                                       <string key="NSIdentifier">2</string>
+                                                                       <object class="NSView" key="NSView" id="1069727156">
+                                                                               <nil key="NSNextResponder"/>
+                                                                               <int key="NSvFlags">256</int>
+                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                       <object class="NSSearchField" id="530233415">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">265</int>
+                                                                                               <string key="NSFrame">{{337, 335}, {198, 19}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSSearchFieldCell" key="NSCell" id="497389328">
+                                                                                                       <int key="NSCellFlags">343014976</int>
+                                                                                                       <int key="NSCellFlags2">134349824</int>
+                                                                                                       <string key="NSContents"/>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <string key="NSPlaceholderString">CellServDB Search</string>
+                                                                                                       <reference key="NSControlView" ref="530233415"/>
+                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                       <int key="NSTextBezelStyle">1</int>
+                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                       <object class="NSButtonCell" key="NSSearchButtonCell">
+                                                                                                               <int key="NSCellFlags">130560</int>
+                                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                                               <string key="NSContents">search</string>
+                                                                                                               <string key="NSAction">_searchFieldSearch:</string>
+                                                                                                               <reference key="NSTarget" ref="497389328"/>
+                                                                                                               <reference key="NSControlView" ref="530233415"/>
+                                                                                                               <int key="NSButtonFlags">138690815</int>
+                                                                                                               <int key="NSButtonFlags2">0</int>
+                                                                                                               <string key="NSKeyEquivalent"/>
+                                                                                                               <int key="NSPeriodicDelay">400</int>
+                                                                                                               <int key="NSPeriodicInterval">75</int>
+                                                                                                       </object>
+                                                                                                       <object class="NSButtonCell" key="NSCancelButtonCell">
+                                                                                                               <int key="NSCellFlags">130560</int>
+                                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                                               <string key="NSContents">clear</string>
+                                                                                                               <object class="NSMutableArray" key="NSAccessibilityOverriddenAttributes">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSMutableDictionary">
+                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                       <string>AXDescription</string>
+                                                                                                                                       <string>NSAccessibilityEncodedAttributesValueType</string>
+                                                                                                                               </object>
+                                                                                                                               <object class="NSMutableArray" key="dict.values">
+                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                       <string>cancel</string>
+                                                                                                                                       <integer value="1" id="9"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSAction">_searchFieldCancel:</string>
+                                                                                                               <reference key="NSTarget" ref="497389328"/>
+                                                                                                               <int key="NSButtonFlags">138428671</int>
+                                                                                                               <int key="NSButtonFlags2">0</int>
+                                                                                                               <string key="NSKeyEquivalent"/>
+                                                                                                               <int key="NSPeriodicDelay">400</int>
+                                                                                                               <int key="NSPeriodicInterval">75</int>
+                                                                                                       </object>
+                                                                                                       <string key="NSRecentsAutosaveName">cell_searc</string>
+                                                                                                       <int key="NSMaximumRecents">255</int>
+                                                                                                       <bytes key="NSSearchFieldFlags">CAAAAA</bytes>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSTextField" id="1038382119">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">268</int>
+                                                                                               <string key="NSFrame">{{17, 335}, {76, 17}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSTextFieldCell" key="NSCell" id="269454663">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">272629760</int>
+                                                                                                       <string key="NSContents">Default Cell:</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="1038382119"/>
+                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="788506691">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">292</int>
+                                                                                               <string key="NSFrame">{{17, 7}, {30, 25}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <int key="NSTag">1</int>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="934170338">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">+</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <int key="NSTag">1</int>
+                                                                                                       <reference key="NSControlView" ref="788506691"/>
+                                                                                                       <int key="NSButtonFlags">-2038021889</int>
+                                                                                                       <int key="NSButtonFlags2">35</int>
+                                                                                                       <reference key="NSAlternateImage" ref="894635401"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="537320483">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">292</int>
+                                                                                               <string key="NSFrame">{{50, 7}, {30, 25}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <int key="NSTag">2</int>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="1045702831">
+                                                                                                       <int key="NSCellFlags">604110336</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">-</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <int key="NSTag">2</int>
+                                                                                                       <reference key="NSControlView" ref="537320483"/>
+                                                                                                       <int key="NSButtonFlags">-2038021889</int>
+                                                                                                       <int key="NSButtonFlags2">35</int>
+                                                                                                       <reference key="NSAlternateImage" ref="894635401"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="593598121">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">292</int>
+                                                                                               <string key="NSFrame">{{82, 7}, {72, 25}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="567447351">
+                                                                                                       <int key="NSCellFlags">604110336</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Modify</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="593598121"/>
+                                                                                                       <int key="NSButtonFlags">-2038021889</int>
+                                                                                                       <int key="NSButtonFlags2">35</int>
+                                                                                                       <reference key="NSAlternateImage" ref="894635401"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="335179878">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">289</int>
+                                                                                               <string key="NSFrame">{{387, 4}, {151, 28}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="372630674">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Save Cell Configuration</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="335179878"/>
+                                                                                                       <int key="NSButtonFlags">-2038284033</int>
+                                                                                                       <int key="NSButtonFlags2">1</int>
+                                                                                                       <reference key="NSAlternateImage" ref="894635401"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                                                               <characters key="NS.bytes"/>
+                                                                                                       </object>
+                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSScrollView" id="96110784">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">274</int>
+                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSClipView" id="259172039">
+                                                                                                               <reference key="NSNextResponder" ref="96110784"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSTableView" id="536830463">
+                                                                                                                               <reference key="NSNextResponder" ref="259172039"/>
+                                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                                               <string key="NSFrameSize">{516, 271}</string>
+                                                                                                                               <reference key="NSSuperview" ref="259172039"/>
+                                                                                                                               <int key="NSTag">2</int>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTableHeaderView" key="NSHeaderView" id="993816125">
+                                                                                                                                       <reference key="NSNextResponder" ref="281754774"/>
+                                                                                                                                       <int key="NSvFlags">256</int>
+                                                                                                                                       <string key="NSFrameSize">{516, 17}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="281754774"/>
+                                                                                                                                       <reference key="NSTableView" ref="536830463"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="_NSCornerView" key="NSCornerView" id="772760699">
+                                                                                                                                       <reference key="NSNextResponder" ref="96110784"/>
+                                                                                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                                                                                       <string key="NSFrame">{{-22, 0}, {12, 17}}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="96110784"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="NSMutableArray" key="NSTableColumns">
+                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                       <object class="NSTableColumn" id="136480779">
+                                                                                                                                               <string key="NSIdentifier">0</string>
+                                                                                                                                               <double key="NSWidth">4.700000e+01</double>
+                                                                                                                                               <double key="NSMinWidth">1.000000e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">3.402823e+38</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Default</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="496166923">
+                                                                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                                                                               <string key="NSColorName">headerColor</string>
+                                                                                                                                                               <reference key="NSColor" ref="400556243"/>
+                                                                                                                                                       </object>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSButtonCell" key="NSDataCell" id="787517969">
+                                                                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                                                                       <string key="NSContents"/>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSControlView" ref="536830463"/>
+                                                                                                                                                       <int key="NSButtonFlags">1215582719</int>
+                                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <bool key="NSIsEditable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="536830463"/>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTableColumn" id="720585546">
+                                                                                                                                               <string key="NSIdentifier">1</string>
+                                                                                                                                               <double key="NSWidth">4.700000e+01</double>
+                                                                                                                                               <double key="NSMinWidth">1.000000e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">3.402823e+38</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Tokens</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="496166923"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSButtonCell" key="NSDataCell" id="110685339">
+                                                                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                                                                       <string key="NSContents">Check</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSControlView" ref="536830463"/>
+                                                                                                                                                       <int key="NSButtonFlags">1212436991</int>
+                                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">2</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <bool key="NSIsEditable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="536830463"/>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTableColumn" id="909348673">
+                                                                                                                                               <string key="NSIdentifier">2</string>
+                                                                                                                                               <double key="NSWidth">1.670000e+02</double>
+                                                                                                                                               <double key="NSMinWidth">4.000000e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Name</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <object class="NSColor" key="NSBackgroundColor">
+                                                                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                                                                               <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                                                                       </object>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSTextFieldCell" key="NSDataCell" id="990091450">
+                                                                                                                                                       <int key="NSCellFlags">337772096</int>
+                                                                                                                                                       <int key="NSCellFlags2">133120</int>
+                                                                                                                                                       <string key="NSContents">Text Cell</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSControlView" ref="536830463"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="252569531"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="536830463"/>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTableColumn" id="145486834">
+                                                                                                                                               <string key="NSIdentifier">3</string>
+                                                                                                                                               <double key="NSWidth">2.430000e+02</double>
+                                                                                                                                               <double key="NSMinWidth">6.509082e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Description</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="496166923"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSTextFieldCell" key="NSDataCell" id="345168793">
+                                                                                                                                                       <int key="NSCellFlags">337772096</int>
+                                                                                                                                                       <int key="NSCellFlags2">133120</int>
+                                                                                                                                                       <string key="NSContents">Text Cell</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSControlView" ref="536830463"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="252569531"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="536830463"/>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                               <double key="NSIntercellSpacingWidth">3.000000e+00</double>
+                                                                                                                               <double key="NSIntercellSpacingHeight">2.000000e+00</double>
+                                                                                                                               <reference key="NSBackgroundColor" ref="400556243"/>
+                                                                                                                               <reference key="NSGridColor" ref="850792713"/>
+                                                                                                                               <double key="NSRowHeight">1.500000e+01</double>
+                                                                                                                               <int key="NSTvFlags">1522532352</int>
+                                                                                                                               <int key="NSGridStyleMask">1</int>
+                                                                                                                               <int key="NSColumnAutoresizingStyle">4</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForLocal">15</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForNonLocal">0</int>
+                                                                                                                               <bool key="NSAllowsTypeSelect">YES</bool>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 17}, {516, 271}}</string>
+                                                                                                               <reference key="NSSuperview" ref="96110784"/>
+                                                                                                               <reference key="NSNextKeyView" ref="536830463"/>
+                                                                                                               <reference key="NSDocView" ref="536830463"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="177605134">
+                                                                                                               <reference key="NSNextResponder" ref="96110784"/>
+                                                                                                               <int key="NSvFlags">-2147483392</int>
+                                                                                                               <string key="NSFrame">{{506, 17}, {11, 198}}</string>
+                                                                                                               <reference key="NSSuperview" ref="96110784"/>
+                                                                                                               <int key="NSsFlags">256</int>
+                                                                                                               <reference key="NSTarget" ref="96110784"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSPercent">9.473684e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="172641834">
+                                                                                                               <reference key="NSNextResponder" ref="96110784"/>
+                                                                                                               <int key="NSvFlags">-2147483392</int>
+                                                                                                               <string key="NSFrame">{{1, 215}, {516, 11}}</string>
+                                                                                                               <reference key="NSSuperview" ref="96110784"/>
+                                                                                                               <int key="NSsFlags">257</int>
+                                                                                                               <reference key="NSTarget" ref="96110784"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSCurValue">1.000000e+00</double>
+                                                                                                               <double key="NSPercent">9.942197e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSClipView" id="281754774">
+                                                                                                               <reference key="NSNextResponder" ref="96110784"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <reference ref="993816125"/>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 0}, {516, 17}}</string>
+                                                                                                               <reference key="NSSuperview" ref="96110784"/>
+                                                                                                               <reference key="NSNextKeyView" ref="993816125"/>
+                                                                                                               <reference key="NSDocView" ref="993816125"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <reference ref="772760699"/>
+                                                                                               </object>
+                                                                                               <string key="NSFrame">{{15, 41}, {518, 289}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <reference key="NSNextKeyView" ref="259172039"/>
+                                                                                               <int key="NSsFlags">562</int>
+                                                                                               <reference key="NSVScroller" ref="177605134"/>
+                                                                                               <reference key="NSHScroller" ref="172641834"/>
+                                                                                               <reference key="NSContentView" ref="259172039"/>
+                                                                                               <reference key="NSHeaderClipView" ref="281754774"/>
+                                                                                               <reference key="NSCornerView" ref="772760699"/>
+                                                                                               <bytes key="NSScrollAmts">QSAAAEEgAABBiAAAQYgAAA</bytes>
+                                                                                       </object>
+                                                                                       <object class="NSTextField" id="747536303">
+                                                                                               <reference key="NSNextResponder" ref="1069727156"/>
+                                                                                               <int key="NSvFlags">268</int>
+                                                                                               <string key="NSFrame">{{95, 338}, {237, 14}}</string>
+                                                                                               <reference key="NSSuperview" ref="1069727156"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSTextFieldCell" key="NSCell" id="579088625">
+                                                                                                       <int key="NSCellFlags">68288064</int>
+                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                       <string key="NSContents">Default Cell</string>
+                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                       <reference key="NSControlView" ref="747536303"/>
+                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                       <object class="NSColor" key="NSTextColor">
+                                                                                                               <int key="NSColorSpace">1</int>
+                                                                                                               <bytes key="NSRGB">MCAwLjEwOTg1MTg0IDEAA</bytes>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <string key="NSFrame">{{10, 25}, {552, 363}}</string>
+                                                                       </object>
+                                                                       <string key="NSLabel">CellServDB Editor</string>
+                                                                       <reference key="NSColor" ref="568311573"/>
+                                                                       <reference key="NSTabView" ref="739317740"/>
+                                                               </object>
+                                                               <object class="NSTabViewItem" id="584361947">
+                                                                       <string key="NSIdentifier">3</string>
+                                                                       <object class="NSView" key="NSView" id="537928258">
+                                                                               <nil key="NSNextResponder"/>
+                                                                               <int key="NSvFlags">256</int>
+                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                       <object class="NSBox" id="1056952440">
+                                                                                               <reference key="NSNextResponder" ref="537928258"/>
+                                                                                               <int key="NSvFlags">266</int>
+                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSView" id="1006532054">
+                                                                                                               <reference key="NSNextResponder" ref="1056952440"/>
+                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSTextField" id="748314809">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{18, 112}, {114, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="1008754563">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string type="base64-UTF8" key="NSContents">TsKwIHN0YXQgY2hhY2hlIGVudHJ5A</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="748314809"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="411322031">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{140, 107}, {55, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="1051935415">
+                                                                                                                                       <int key="NSCellFlags">-1804468671</int>
+                                                                                                                                       <int key="NSCellFlags2">272761856</int>
+                                                                                                                                       <real value="0.000000e+00" key="NSContents" id="396840617"/>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <object class="NSNumberFormatter" key="NSFormatter" id="455485314">
+                                                                                                                                               <object class="NSMutableDictionary" key="NS.attributes">
+                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <string>allowsFloats</string>
+                                                                                                                                                               <string>formatterBehavior</string>
+                                                                                                                                                               <string>minimum</string>
+                                                                                                                                                               <string>minimumIntegerDigits</string>
+                                                                                                                                                               <string>numberStyle</string>
+                                                                                                                                                               <string>positiveFormat</string>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <integer value="1040" id="436216989"/>
+                                                                                                                                                               <real value="1.000000e+03" id="960815929"/>
+                                                                                                                                                               <integer value="4"/>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <string>#</string>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.positiveformat">#</string>
+                                                                                                                                               <string key="NS.negativeformat">#0000</string>
+                                                                                                                                               <nil key="NS.positiveattrs"/>
+                                                                                                                                               <nil key="NS.negativeattrs"/>
+                                                                                                                                               <object class="NSAttributedString" key="NS.zero">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nil">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nan">
+                                                                                                                                                       <string key="NSString">NaN</string>
+                                                                                                                                                       <object class="NSDictionary" key="NSAttributes" id="231714890">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <object class="NSArray" key="dict.sortedKeys">
+                                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               </object>
+                                                                                                                                                               <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               </object>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NS.min" ref="960815929"/>
+                                                                                                                                               <object class="NSDecimalNumberPlaceholder" key="NS.max" id="139642944">
+                                                                                                                                                       <int key="NS.exponent">0</int>
+                                                                                                                                                       <int key="NS.length">0</int>
+                                                                                                                                                       <bool key="NS.negative">YES</bool>
+                                                                                                                                                       <bool key="NS.compact">NO</bool>
+                                                                                                                                                       <int key="NS.mantissa.bo">1</int>
+                                                                                                                                                       <bytes key="NS.mantissa">AAAAAAAAAAAAAAAAAAAAAA</bytes>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSDecimalNumberHandler" key="NS.rounding">
+                                                                                                                                                       <int key="NS.roundingmode">3</int>
+                                                                                                                                                       <bool key="NS.raise.overflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.underflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.dividebyzero">YES</bool>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.decimal">,</string>
+                                                                                                                                               <string key="NS.thousand">.</string>
+                                                                                                                                               <bool key="NS.hasthousands">NO</bool>
+                                                                                                                                               <bool key="NS.localized">YES</bool>
+                                                                                                                                               <bool key="NS.allowsfloats">YES</bool>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="411322031"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <object class="NSColor" key="NSTextColor" id="568125270">
+                                                                                                                                               <int key="NSColorSpace">6</int>
+                                                                                                                                               <string key="NSCatalogName">System</string>
+                                                                                                                                               <string key="NSColorName">textColor</string>
+                                                                                                                                               <reference key="NSColor" ref="39932154"/>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="761947305">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{140, 81}, {55, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="19899457">
+                                                                                                                                       <int key="NSCellFlags">-1804468671</int>
+                                                                                                                                       <int key="NSCellFlags2">-1874721792</int>
+                                                                                                                                       <string key="NSContents">0</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <object class="NSNumberFormatter" key="NSFormatter" id="248712560">
+                                                                                                                                               <object class="NSMutableDictionary" key="NS.attributes">
+                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <string>allowsFloats</string>
+                                                                                                                                                               <string>formatterBehavior</string>
+                                                                                                                                                               <string>minimum</string>
+                                                                                                                                                               <string>minimumIntegerDigits</string>
+                                                                                                                                                               <string>positiveFormat</string>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <reference ref="436216989"/>
+                                                                                                                                                               <real value="1.000000e+02" id="62693020"/>
+                                                                                                                                                               <integer value="3" id="11"/>
+                                                                                                                                                               <string>#</string>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.positiveformat">#</string>
+                                                                                                                                               <string key="NS.negativeformat">#000</string>
+                                                                                                                                               <nil key="NS.positiveattrs"/>
+                                                                                                                                               <nil key="NS.negativeattrs"/>
+                                                                                                                                               <object class="NSAttributedString" key="NS.zero">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nil">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nan">
+                                                                                                                                                       <string key="NSString">NaN</string>
+                                                                                                                                                       <reference key="NSAttributes" ref="231714890"/>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NS.min" ref="62693020"/>
+                                                                                                                                               <reference key="NS.max" ref="139642944"/>
+                                                                                                                                               <object class="NSDecimalNumberHandler" key="NS.rounding">
+                                                                                                                                                       <int key="NS.roundingmode">3</int>
+                                                                                                                                                       <bool key="NS.raise.overflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.underflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.dividebyzero">YES</bool>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.decimal">,</string>
+                                                                                                                                               <string key="NS.thousand">.</string>
+                                                                                                                                               <bool key="NS.hasthousands">NO</bool>
+                                                                                                                                               <bool key="NS.localized">YES</bool>
+                                                                                                                                               <bool key="NS.allowsfloats">YES</bool>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="761947305"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <reference key="NSTextColor" ref="568125270"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="560081349">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{83, 83}, {49, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="628600719">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string key="NSContents">DCache</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="560081349"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="23658009">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{140, 52}, {25, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="463621063">
+                                                                                                                                       <int key="NSCellFlags">-1804468671</int>
+                                                                                                                                       <int key="NSCellFlags2">272761856</int>
+                                                                                                                                       <reference key="NSContents" ref="396840617"/>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <object class="NSNumberFormatter" key="NSFormatter" id="833073507">
+                                                                                                                                               <object class="NSMutableDictionary" key="NS.attributes">
+                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <string>allowsFloats</string>
+                                                                                                                                                               <string>formatterBehavior</string>
+                                                                                                                                                               <string>maximumIntegerDigits</string>
+                                                                                                                                                               <string>minimum</string>
+                                                                                                                                                               <string>minimumIntegerDigits</string>
+                                                                                                                                                               <string>positiveFormat</string>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <reference ref="436216989"/>
+                                                                                                                                                               <integer value="2" id="10"/>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <string>#</string>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.positiveformat">#</string>
+                                                                                                                                               <string key="NS.negativeformat">#0</string>
+                                                                                                                                               <nil key="NS.positiveattrs"/>
+                                                                                                                                               <nil key="NS.negativeattrs"/>
+                                                                                                                                               <object class="NSAttributedString" key="NS.zero">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nil">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nan">
+                                                                                                                                                       <string key="NSString">NaN</string>
+                                                                                                                                                       <reference key="NSAttributes" ref="231714890"/>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NS.min" ref="9"/>
+                                                                                                                                               <reference key="NS.max" ref="139642944"/>
+                                                                                                                                               <object class="NSDecimalNumberHandler" key="NS.rounding">
+                                                                                                                                                       <int key="NS.roundingmode">3</int>
+                                                                                                                                                       <bool key="NS.raise.overflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.underflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.dividebyzero">YES</bool>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.decimal">,</string>
+                                                                                                                                               <string key="NS.thousand">.</string>
+                                                                                                                                               <bool key="NS.hasthousands">NO</bool>
+                                                                                                                                               <bool key="NS.localized">YES</bool>
+                                                                                                                                               <bool key="NS.allowsfloats">YES</bool>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="23658009"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <reference key="NSTextColor" ref="568125270"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="217732195">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{47, 54}, {85, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="1057450635">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string type="base64-UTF8" key="NSContents">TsKwIG9mIGRhZW1vbnM</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="217732195"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="1070305297">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{413, 109}, {93, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="474187509">
+                                                                                                                                       <int key="NSCellFlags">604110336</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">Encryption</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="1070305297"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">2</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="358834889">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">301</int>
+                                                                                                                               <string key="NSFrame">{{209, 112}, {103, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="120617252">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string type="base64-UTF8" key="NSContents">TsKwIFZvbHVtZSBlbnRyaWVzA</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="358834889"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="255735511">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">301</int>
+                                                                                                                               <string key="NSFrame">{{313, 109}, {37, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="310838537">
+                                                                                                                                       <int key="NSCellFlags">343014977</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <reference key="NSContents" ref="396840617"/>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <object class="NSNumberFormatter" key="NSFormatter" id="547764719">
+                                                                                                                                               <object class="NSMutableDictionary" key="NS.attributes">
+                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <string>allowsFloats</string>
+                                                                                                                                                               <string>formatWidth</string>
+                                                                                                                                                               <string>formatterBehavior</string>
+                                                                                                                                                               <string>generatesDecimalNumbers</string>
+                                                                                                                                                               <string>groupingSize</string>
+                                                                                                                                                               <string>maximumFractionDigits</string>
+                                                                                                                                                               <string>maximumIntegerDigits</string>
+                                                                                                                                                               <string>minimum</string>
+                                                                                                                                                               <string>minimumIntegerDigits</string>
+                                                                                                                                                               <string>numberStyle</string>
+                                                                                                                                                               <string>positiveFormat</string>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <reference ref="436216989"/>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <reference ref="396840617"/>
+                                                                                                                                                               <reference ref="11"/>
+                                                                                                                                                               <real value="1.000000e+01" id="313841979"/>
+                                                                                                                                                               <reference ref="10"/>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <string>#</string>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.positiveformat">#</string>
+                                                                                                                                               <string key="NS.negativeformat">#00</string>
+                                                                                                                                               <nil key="NS.positiveattrs"/>
+                                                                                                                                               <nil key="NS.negativeattrs"/>
+                                                                                                                                               <object class="NSAttributedString" key="NS.zero">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nil">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nan">
+                                                                                                                                                       <string key="NSString">NaN</string>
+                                                                                                                                                       <reference key="NSAttributes" ref="231714890"/>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NS.min" ref="313841979"/>
+                                                                                                                                               <reference key="NS.max" ref="139642944"/>
+                                                                                                                                               <object class="NSDecimalNumberHandler" key="NS.rounding">
+                                                                                                                                                       <int key="NS.roundingmode">3</int>
+                                                                                                                                                       <bool key="NS.raise.overflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.underflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.dividebyzero">YES</bool>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.decimal">,</string>
+                                                                                                                                               <string key="NS.thousand">.</string>
+                                                                                                                                               <bool key="NS.hasthousands">NO</bool>
+                                                                                                                                               <bool key="NS.localized">YES</bool>
+                                                                                                                                               <bool key="NS.allowsfloats">NO</bool>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="255735511"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <reference key="NSTextColor" ref="568125270"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="640588663">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{46, 23}, {86, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="35880329">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string key="NSContents">Afs Root Mount</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="640588663"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="850669444">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">268</int>
+                                                                                                                               <string key="NSFrame">{{140, 21}, {55, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="456324371">
+                                                                                                                                       <int key="NSCellFlags">-1804468671</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string key="NSContents">/</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="850669444"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <reference key="NSTextColor" ref="568125270"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="972024631">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">301</int>
+                                                                                                                               <string key="NSFrame">{{215, 81}, {97, 14}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="383369569">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string key="NSContents">Cache Dimension</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="972024631"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="627718334">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">301</int>
+                                                                                                                               <string key="NSFrame">{{313, 79}, {52, 19}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="756462877">
+                                                                                                                                       <int key="NSCellFlags">-1804468671</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <reference key="NSContents" ref="396840617"/>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <object class="NSNumberFormatter" key="NSFormatter" id="592804150">
+                                                                                                                                               <object class="NSMutableDictionary" key="NS.attributes">
+                                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <string>allowsFloats</string>
+                                                                                                                                                               <string>formatterBehavior</string>
+                                                                                                                                                               <string>minimum</string>
+                                                                                                                                                               <string>minimumIntegerDigits</string>
+                                                                                                                                                               <string>numberStyle</string>
+                                                                                                                                                               <string>positiveFormat</string>
+                                                                                                                                                       </object>
+                                                                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <reference ref="436216989"/>
+                                                                                                                                                               <real value="1.000000e+04" id="63011763"/>
+                                                                                                                                                               <integer value="5"/>
+                                                                                                                                                               <reference ref="9"/>
+                                                                                                                                                               <string>#</string>
+                                                                                                                                                       </object>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.positiveformat">#</string>
+                                                                                                                                               <string key="NS.negativeformat">#00000</string>
+                                                                                                                                               <nil key="NS.positiveattrs"/>
+                                                                                                                                               <nil key="NS.negativeattrs"/>
+                                                                                                                                               <object class="NSAttributedString" key="NS.zero">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nil">
+                                                                                                                                                       <nil key="NSString"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSAttributedString" key="NS.nan">
+                                                                                                                                                       <string key="NSString">NaN</string>
+                                                                                                                                                       <reference key="NSAttributes" ref="231714890"/>
+                                                                                                                                               </object>
+                                                                                                                                               <reference key="NS.min" ref="63011763"/>
+                                                                                                                                               <reference key="NS.max" ref="139642944"/>
+                                                                                                                                               <object class="NSDecimalNumberHandler" key="NS.rounding">
+                                                                                                                                                       <int key="NS.roundingmode">3</int>
+                                                                                                                                                       <bool key="NS.raise.overflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.underflow">YES</bool>
+                                                                                                                                                       <bool key="NS.raise.dividebyzero">YES</bool>
+                                                                                                                                               </object>
+                                                                                                                                               <string key="NS.decimal">,</string>
+                                                                                                                                               <string key="NS.thousand">.</string>
+                                                                                                                                               <bool key="NS.hasthousands">NO</bool>
+                                                                                                                                               <bool key="NS.localized">YES</bool>
+                                                                                                                                               <bool key="NS.allowsfloats">YES</bool>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="627718334"/>
+                                                                                                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                                                       <reference key="NSTextColor" ref="568125270"/>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="892096934">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{400, 15}, {104, 17}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="728535364">
+                                                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                                                       <string key="NSContents">Save Param</string>
+                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                       <reference key="NSControlView" ref="892096934"/>
+                                                                                                                                       <int key="NSButtonFlags">-2038152961</int>
+                                                                                                                                       <int key="NSButtonFlags2">164</int>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSTextField" id="835771463">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{388, 4}, {126, 13}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTextFieldCell" key="NSCell" id="672812502">
+                                                                                                                                       <int key="NSCellFlags">67239488</int>
+                                                                                                                                       <int key="NSCellFlags2">272630784</int>
+                                                                                                                                       <string key="NSContents">afs needs to be restarted</string>
+                                                                                                                                       <object class="NSFont" key="NSSupport">
+                                                                                                                                               <string key="NSName">LucidaGrande</string>
+                                                                                                                                               <double key="NSSize">1.000000e+01</double>
+                                                                                                                                               <int key="NSfFlags">16</int>
+                                                                                                                                       </object>
+                                                                                                                                       <reference key="NSControlView" ref="835771463"/>
+                                                                                                                                       <reference key="NSBackgroundColor" ref="568311573"/>
+                                                                                                                                       <object class="NSColor" key="NSTextColor">
+                                                                                                                                               <int key="NSColorSpace">1</int>
+                                                                                                                                               <bytes key="NSRGB">MSAwLjAyNDA1ODExNSAwLjAxMjI2ODU0MwA</bytes>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="805322468">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{413, 89}, {76, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="703486492">
+                                                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">DynRoot</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="805322468"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">2</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="1064737768">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{413, 49}, {66, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="533239018">
+                                                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">Verbose</string>
+                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                       <reference key="NSControlView" ref="1064737768"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                                       <object class="NSButton" id="509563943">
+                                                                                                                               <reference key="NSNextResponder" ref="1006532054"/>
+                                                                                                                               <int key="NSvFlags">297</int>
+                                                                                                                               <string key="NSFrame">{{413, 69}, {63, 18}}</string>
+                                                                                                                               <reference key="NSSuperview" ref="1006532054"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSButtonCell" key="NSCell" id="442311508">
+                                                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                                                       <string key="NSContents">AfsDB</string>
+                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                       <reference key="NSControlView" ref="509563943"/>
+                                                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                                                               </object>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 1}, {522, 139}}</string>
+                                                                                                               <reference key="NSSuperview" ref="1056952440"/>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <string key="NSFrame">{{14, 202}, {524, 155}}</string>
+                                                                                               <reference key="NSSuperview" ref="537928258"/>
+                                                                                               <string key="NSOffsets">{0, 0}</string>
+                                                                                               <object class="NSTextFieldCell" key="NSTitleCell">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                       <string key="NSContents">Cache Manager</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSBackgroundColor" ref="878835253"/>
+                                                                                                       <object class="NSColor" key="NSTextColor">
+                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                               <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <reference key="NSContentView" ref="1006532054"/>
+                                                                                               <int key="NSBorderType">1</int>
+                                                                                               <int key="NSBoxType">0</int>
+                                                                                               <int key="NSTitlePosition">2</int>
+                                                                                               <bool key="NSTransparent">NO</bool>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <string key="NSFrame">{{10, 25}, {552, 363}}</string>
+                                                                       </object>
+                                                                       <string key="NSLabel">Parameter</string>
+                                                                       <reference key="NSColor" ref="568311573"/>
+                                                                       <reference key="NSTabView" ref="739317740"/>
+                                                               </object>
+                                                               <object class="NSTabViewItem" id="126070858">
+                                                                       <string key="NSIdentifier">4</string>
+                                                                       <object class="NSView" key="NSView" id="786994103">
+                                                                               <nil key="NSNextResponder"/>
+                                                                               <int key="NSvFlags">256</int>
+                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                       <object class="NSScrollView" id="284115188">
+                                                                                               <reference key="NSNextResponder" ref="786994103"/>
+                                                                                               <int key="NSvFlags">274</int>
+                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSClipView" id="229139620">
+                                                                                                               <reference key="NSNextResponder" ref="284115188"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <object class="NSTableView" id="1029505942">
+                                                                                                                               <reference key="NSNextResponder" ref="229139620"/>
+                                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                                               <string key="NSFrameSize">{501, 283}</string>
+                                                                                                                               <reference key="NSSuperview" ref="229139620"/>
+                                                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                                                               <object class="NSTableHeaderView" key="NSHeaderView" id="209519573">
+                                                                                                                                       <reference key="NSNextResponder" ref="785725164"/>
+                                                                                                                                       <int key="NSvFlags">256</int>
+                                                                                                                                       <string key="NSFrameSize">{501, 17}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="785725164"/>
+                                                                                                                                       <reference key="NSTableView" ref="1029505942"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="_NSCornerView" key="NSCornerView" id="151502956">
+                                                                                                                                       <reference key="NSNextResponder" ref="284115188"/>
+                                                                                                                                       <int key="NSvFlags">256</int>
+                                                                                                                                       <string key="NSFrame">{{502, 0}, {16, 17}}</string>
+                                                                                                                                       <reference key="NSSuperview" ref="284115188"/>
+                                                                                                                               </object>
+                                                                                                                               <object class="NSMutableArray" key="NSTableColumns">
+                                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                                       <object class="NSTableColumn" id="604570943">
+                                                                                                                                               <double key="NSWidth">8.400000e+01</double>
+                                                                                                                                               <double key="NSMinWidth">4.000000e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Mount Name</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <object class="NSColor" key="NSBackgroundColor" id="869401119">
+                                                                                                                                                               <int key="NSColorSpace">3</int>
+                                                                                                                                                               <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
+                                                                                                                                                       </object>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSTextFieldCell" key="NSDataCell" id="404459918">
+                                                                                                                                                       <int key="NSCellFlags">337772096</int>
+                                                                                                                                                       <int key="NSCellFlags2">2048</int>
+                                                                                                                                                       <string key="NSContents">Text Cell</string>
+                                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                                       <reference key="NSControlView" ref="1029505942"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="252569531"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <bool key="NSIsEditable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="1029505942"/>
+                                                                                                                                       </object>
+                                                                                                                                       <object class="NSTableColumn" id="915858279">
+                                                                                                                                               <double key="NSWidth">4.110000e+02</double>
+                                                                                                                                               <double key="NSMinWidth">4.000000e+01</double>
+                                                                                                                                               <double key="NSMaxWidth">1.000000e+03</double>
+                                                                                                                                               <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                                                                       <int key="NSCellFlags">75628032</int>
+                                                                                                                                                       <int key="NSCellFlags2">0</int>
+                                                                                                                                                       <string key="NSContents">Mount Path</string>
+                                                                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="869401119"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="716292118"/>
+                                                                                                                                               </object>
+                                                                                                                                               <object class="NSTextFieldCell" key="NSDataCell" id="367407167">
+                                                                                                                                                       <int key="NSCellFlags">337772096</int>
+                                                                                                                                                       <int key="NSCellFlags2">2048</int>
+                                                                                                                                                       <string key="NSContents">Text Cell</string>
+                                                                                                                                                       <reference key="NSSupport" ref="894635401"/>
+                                                                                                                                                       <reference key="NSControlView" ref="1029505942"/>
+                                                                                                                                                       <reference key="NSBackgroundColor" ref="252569531"/>
+                                                                                                                                                       <reference key="NSTextColor" ref="276594776"/>
+                                                                                                                                               </object>
+                                                                                                                                               <int key="NSResizingMask">3</int>
+                                                                                                                                               <bool key="NSIsResizeable">YES</bool>
+                                                                                                                                               <bool key="NSIsEditable">YES</bool>
+                                                                                                                                               <reference key="NSTableView" ref="1029505942"/>
+                                                                                                                                       </object>
+                                                                                                                               </object>
+                                                                                                                               <double key="NSIntercellSpacingWidth">3.000000e+00</double>
+                                                                                                                               <double key="NSIntercellSpacingHeight">2.000000e+00</double>
+                                                                                                                               <reference key="NSBackgroundColor" ref="400556243"/>
+                                                                                                                               <reference key="NSGridColor" ref="850792713"/>
+                                                                                                                               <double key="NSRowHeight">1.700000e+01</double>
+                                                                                                                               <int key="NSTvFlags">-557842432</int>
+                                                                                                                               <int key="NSGridStyleMask">2</int>
+                                                                                                                               <int key="NSColumnAutoresizingStyle">4</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForLocal">15</int>
+                                                                                                                               <int key="NSDraggingSourceMaskForNonLocal">0</int>
+                                                                                                                               <bool key="NSAllowsTypeSelect">YES</bool>
+                                                                                                                       </object>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 17}, {501, 283}}</string>
+                                                                                                               <reference key="NSSuperview" ref="284115188"/>
+                                                                                                               <reference key="NSNextKeyView" ref="1029505942"/>
+                                                                                                               <reference key="NSDocView" ref="1029505942"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="497462431">
+                                                                                                               <reference key="NSNextResponder" ref="284115188"/>
+                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                               <string key="NSFrame">{{502, 17}, {15, 283}}</string>
+                                                                                                               <reference key="NSSuperview" ref="284115188"/>
+                                                                                                               <reference key="NSTarget" ref="284115188"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSCurValue">3.700000e+01</double>
+                                                                                                               <double key="NSPercent">1.947368e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSScroller" id="145484441">
+                                                                                                               <reference key="NSNextResponder" ref="284115188"/>
+                                                                                                               <int key="NSvFlags">256</int>
+                                                                                                               <string key="NSFrame">{{1, 300}, {501, 15}}</string>
+                                                                                                               <reference key="NSSuperview" ref="284115188"/>
+                                                                                                               <int key="NSsFlags">1</int>
+                                                                                                               <reference key="NSTarget" ref="284115188"/>
+                                                                                                               <string key="NSAction">_doScroller:</string>
+                                                                                                               <double key="NSPercent">5.714286e-01</double>
+                                                                                                       </object>
+                                                                                                       <object class="NSClipView" id="785725164">
+                                                                                                               <reference key="NSNextResponder" ref="284115188"/>
+                                                                                                               <int key="NSvFlags">2304</int>
+                                                                                                               <object class="NSMutableArray" key="NSSubviews">
+                                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                                       <reference ref="209519573"/>
+                                                                                                               </object>
+                                                                                                               <string key="NSFrame">{{1, 0}, {501, 17}}</string>
+                                                                                                               <reference key="NSSuperview" ref="284115188"/>
+                                                                                                               <reference key="NSNextKeyView" ref="209519573"/>
+                                                                                                               <reference key="NSDocView" ref="209519573"/>
+                                                                                                               <reference key="NSBGColor" ref="252569531"/>
+                                                                                                               <int key="NScvFlags">4</int>
+                                                                                                       </object>
+                                                                                                       <reference ref="151502956"/>
+                                                                                               </object>
+                                                                                               <string key="NSFrame">{{17, 41}, {518, 316}}</string>
+                                                                                               <reference key="NSSuperview" ref="786994103"/>
+                                                                                               <reference key="NSNextKeyView" ref="229139620"/>
+                                                                                               <int key="NSsFlags">50</int>
+                                                                                               <reference key="NSVScroller" ref="497462431"/>
+                                                                                               <reference key="NSHScroller" ref="145484441"/>
+                                                                                               <reference key="NSContentView" ref="229139620"/>
+                                                                                               <reference key="NSHeaderClipView" ref="785725164"/>
+                                                                                               <reference key="NSCornerView" ref="151502956"/>
+                                                                                               <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="642014996">
+                                                                                               <reference key="NSNextResponder" ref="786994103"/>
+                                                                                               <int key="NSvFlags">292</int>
+                                                                                               <string key="NSFrame">{{17, 16}, {81, 18}}</string>
+                                                                                               <reference key="NSSuperview" ref="786994103"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="865151679">
+                                                                                                       <int key="NSCellFlags">-2080244224</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Add New Path</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="642014996"/>
+                                                                                                       <int key="NSButtonFlags">-2033434369</int>
+                                                                                                       <int key="NSButtonFlags2">160</int>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="635503948">
+                                                                                               <reference key="NSNextResponder" ref="786994103"/>
+                                                                                               <int key="NSvFlags">292</int>
+                                                                                               <string key="NSFrame">{{106, 16}, {78, 18}}</string>
+                                                                                               <reference key="NSSuperview" ref="786994103"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="713243405">
+                                                                                                       <int key="NSCellFlags">-1543373312</int>
+                                                                                                       <int key="NSCellFlags2">134348800</int>
+                                                                                                       <string key="NSContents">Remove Path</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="635503948"/>
+                                                                                                       <int key="NSButtonFlags">-2033434369</int>
+                                                                                                       <int key="NSButtonFlags2">160</int>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">400</int>
+                                                                                                       <int key="NSPeriodicInterval">75</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                                       <object class="NSButton" id="224507096">
+                                                                                               <reference key="NSNextResponder" ref="786994103"/>
+                                                                                               <int key="NSvFlags">289</int>
+                                                                                               <string key="NSFrame">{{400, 17}, {137, 18}}</string>
+                                                                                               <reference key="NSSuperview" ref="786994103"/>
+                                                                                               <bool key="NSEnabled">YES</bool>
+                                                                                               <object class="NSButtonCell" key="NSCell" id="378183006">
+                                                                                                       <int key="NSCellFlags">67239424</int>
+                                                                                                       <int key="NSCellFlags2">131072</int>
+                                                                                                       <string key="NSContents">Enable Symbolic Link</string>
+                                                                                                       <reference key="NSSupport" ref="26"/>
+                                                                                                       <reference key="NSControlView" ref="224507096"/>
+                                                                                                       <int key="NSButtonFlags">1211912703</int>
+                                                                                                       <int key="NSButtonFlags2">130</int>
+                                                                                                       <reference key="NSNormalImage" ref="1069694397"/>
+                                                                                                       <reference key="NSAlternateImage" ref="894136682"/>
+                                                                                                       <string key="NSAlternateContents"/>
+                                                                                                       <string key="NSKeyEquivalent"/>
+                                                                                                       <int key="NSPeriodicDelay">200</int>
+                                                                                                       <int key="NSPeriodicInterval">25</int>
+                                                                                               </object>
+                                                                                       </object>
+                                                                               </object>
+                                                                               <string key="NSFrame">{{10, 25}, {552, 363}}</string>
+                                                                       </object>
+                                                                       <string key="NSLabel">Mounts</string>
+                                                                       <reference key="NSColor" ref="568311573"/>
+                                                                       <reference key="NSTabView" ref="739317740"/>
+                                                               </object>
+                                                       </object>
+                                                       <reference key="NSSelectedTabViewItem" ref="269508902"/>
+                                                       <reference key="NSFont" ref="26"/>
+                                                       <int key="NSTvFlags">134217728</int>
+                                                       <bool key="NSAllowTruncatedLabels">YES</bool>
+                                                       <bool key="NSDrawsBackground">YES</bool>
+                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                               <reference ref="1020318718"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="1047946385">
+                                                       <reference key="NSNextResponder" ref="645279396"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{229, 6}, {349, 11}}</string>
+                                                       <reference key="NSSuperview" ref="645279396"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="999146642">
+                                                               <int key="NSCellFlags">68288064</int>
+                                                               <int key="NSCellFlags2">71435264</int>
+                                                               <string key="NSContents">afs version</string>
+                                                               <object class="NSFont" key="NSSupport">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">9.000000e+00</double>
+                                                                       <int key="NSfFlags">16</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="1047946385"/>
+                                                               <reference key="NSBackgroundColor" ref="568311573"/>
+                                                               <reference key="NSTextColor" ref="276594776"/>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <string key="NSFrameSize">{595, 486}</string>
+                                       <reference key="NSSuperview"/>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+                               <string key="NSMinSize">{0, 22}</string>
+                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="52789773">
+                               <int key="NSWindowStyleMask">9</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{1006, 707}, {715, 485}}</string>
+                               <int key="NSWTFlags">1886912512</int>
+                               <string key="NSWindowTitle">Panel</string>
+                               <object class="NSMutableString" key="NSWindowClass">
+                                       <characters key="NS.bytes">NSPanel</characters>
+                               </object>
+                               <object class="NSMutableString" key="NSViewClass">
+                                       <characters key="NS.bytes">View</characters>
+                               </object>
+                               <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                               <object class="NSView" key="NSWindowView" id="1017822711">
+                                       <nil key="NSNextResponder"/>
+                                       <int key="NSvFlags">256</int>
+                                       <object class="NSMutableArray" key="NSSubviews">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSScrollView" id="935020490">
+                                                       <reference key="NSNextResponder" ref="1017822711"/>
+                                                       <int key="NSvFlags">274</int>
+                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                               <object class="NSClipView" id="853671207">
+                                                                       <reference key="NSNextResponder" ref="935020490"/>
+                                                                       <int key="NSvFlags">2304</int>
+                                                                       <object class="NSMutableArray" key="NSSubviews">
+                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                               <object class="NSTextView" id="297493656">
+                                                                                       <reference key="NSNextResponder" ref="853671207"/>
+                                                                                       <int key="NSvFlags">2322</int>
+                                                                                       <string key="NSFrameSize">{662, 14}</string>
+                                                                                       <reference key="NSSuperview" ref="853671207"/>
+                                                                                       <object class="NSTextContainer" key="NSTextContainer" id="512204159">
+                                                                                               <object class="NSLayoutManager" key="NSLayoutManager">
+                                                                                                       <object class="NSTextStorage" key="NSTextStorage">
+                                                                                                               <object class="NSMutableString" key="NSString">
+                                                                                                                       <characters key="NS.bytes"/>
+                                                                                                               </object>
+                                                                                                               <nil key="NSDelegate"/>
+                                                                                                       </object>
+                                                                                                       <object class="NSMutableArray" key="NSTextContainers">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <reference ref="512204159"/>
+                                                                                                       </object>
+                                                                                                       <int key="NSLMFlags">6</int>
+                                                                                                       <nil key="NSDelegate"/>
+                                                                                               </object>
+                                                                                               <reference key="NSTextView" ref="297493656"/>
+                                                                                               <double key="NSWidth">6.620000e+02</double>
+                                                                                               <int key="NSTCFlags">1</int>
+                                                                                       </object>
+                                                                                       <object class="NSTextViewSharedData" key="NSSharedData">
+                                                                                               <int key="NSFlags">2913</int>
+                                                                                               <reference key="NSBackgroundColor" ref="400556243"/>
+                                                                                               <reference key="NSInsertionColor" ref="39932154"/>
+                                                                                               <object class="NSDictionary" key="NSSelectedAttributes">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <string>NSBackgroundColor</string>
+                                                                                                               <string>NSColor</string>
+                                                                                                       </object>
+                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <object class="NSColor">
+                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                       <string key="NSColorName">selectedTextBackgroundColor</string>
+                                                                                                                       <reference key="NSColor" ref="277525007"/>
+                                                                                                               </object>
+                                                                                                               <object class="NSColor">
+                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                       <string key="NSColorName">selectedTextColor</string>
+                                                                                                                       <reference key="NSColor" ref="39932154"/>
+                                                                                                               </object>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <nil key="NSMarkedAttributes"/>
+                                                                                               <object class="NSDictionary" key="NSLinkAttributes">
+                                                                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                       <object class="NSMutableArray" key="dict.sortedKeys">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <string>NSColor</string>
+                                                                                                               <string>NSUnderline</string>
+                                                                                                       </object>
+                                                                                                       <object class="NSMutableArray" key="dict.values">
+                                                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                                                                                               <object class="NSColor">
+                                                                                                                       <int key="NSColorSpace">1</int>
+                                                                                                                       <bytes key="NSRGB">MCAwIDEAA</bytes>
+                                                                                                               </object>
+                                                                                                               <reference ref="9"/>
+                                                                                                       </object>
+                                                                                               </object>
+                                                                                               <nil key="NSDefaultParagraphStyle"/>
+                                                                                       </object>
+                                                                                       <int key="NSTVFlags">6</int>
+                                                                                       <string key="NSMaxSize">{1337, 1e+07}</string>
+                                                                                       <string key="NSMinize">{114, 0}</string>
+                                                                                       <nil key="NSDelegate"/>
+                                                                               </object>
+                                                                       </object>
+                                                                       <string key="NSFrame">{{1, 1}, {662, 423}}</string>
+                                                                       <reference key="NSSuperview" ref="935020490"/>
+                                                                       <reference key="NSNextKeyView" ref="297493656"/>
+                                                                       <reference key="NSDocView" ref="297493656"/>
+                                                                       <reference key="NSBGColor" ref="400556243"/>
+                                                                       <object class="NSCursor" key="NSCursor">
+                                                                               <string key="NSHotSpot">{4, -5}</string>
+                                                                               <int key="NSCursorType">1</int>
+                                                                       </object>
+                                                                       <int key="NScvFlags">4</int>
+                                                               </object>
+                                                               <object class="NSScroller" id="11642274">
+                                                                       <reference key="NSNextResponder" ref="935020490"/>
+                                                                       <int key="NSvFlags">256</int>
+                                                                       <string key="NSFrame">{{663, 1}, {11, 423}}</string>
+                                                                       <reference key="NSSuperview" ref="935020490"/>
+                                                                       <int key="NSsFlags">256</int>
+                                                                       <reference key="NSTarget" ref="935020490"/>
+                                                                       <string key="NSAction">_doScroller:</string>
+                                                                       <double key="NSCurValue">1.000000e+00</double>
+                                                               </object>
+                                                               <object class="NSScroller" id="574894181">
+                                                                       <reference key="NSNextResponder" ref="935020490"/>
+                                                                       <int key="NSvFlags">256</int>
+                                                                       <string key="NSFrame">{{-100, -100}, {87, 18}}</string>
+                                                                       <reference key="NSSuperview" ref="935020490"/>
+                                                                       <int key="NSsFlags">257</int>
+                                                                       <reference key="NSTarget" ref="935020490"/>
+                                                                       <string key="NSAction">_doScroller:</string>
+                                                                       <double key="NSCurValue">1.000000e+00</double>
+                                                                       <double key="NSPercent">9.456522e-01</double>
+                                                               </object>
+                                                       </object>
+                                                       <string key="NSFrame">{{20, 40}, {675, 425}}</string>
+                                                       <reference key="NSSuperview" ref="1017822711"/>
+                                                       <reference key="NSNextKeyView" ref="853671207"/>
+                                                       <int key="NSsFlags">18</int>
+                                                       <reference key="NSVScroller" ref="11642274"/>
+                                                       <reference key="NSHScroller" ref="574894181"/>
+                                                       <reference key="NSContentView" ref="853671207"/>
+                                               </object>
+                                               <object class="NSButton" id="729692979">
+                                                       <reference key="NSNextResponder" ref="1017822711"/>
+                                                       <int key="NSvFlags">293</int>
+                                                       <string key="NSFrame">{{318, 8}, {80, 28}}</string>
+                                                       <reference key="NSSuperview" ref="1017822711"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="278933381">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Close</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="729692979"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">1</int>
+                                                               <reference key="NSAlternateImage" ref="26"/>
+                                                               <string key="NSAlternateContents"/>
+                                                               <object class="NSMutableString" key="NSKeyEquivalent">
+                                                                       <characters key="NS.bytes"/>
+                                                               </object>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <string key="NSFrameSize">{715, 485}</string>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+                               <string key="NSMinSize">{0, 22}</string>
+                               <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
+                       </object>
+                       <object class="NSCustomObject" id="176554930">
+                               <string key="NSClassName">InfoController</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">_window</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="61231707"/>
+                                       </object>
+                                       <int key="connectionID">100</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">cellList</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="536830463"/>
+                                       </object>
+                                       <int key="connectionID">187</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">cellIpButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="593598121"/>
+                                       </object>
+                                       <int key="connectionID">188</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">removeCellButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="537320483"/>
+                                       </object>
+                                       <int key="connectionID">189</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">addCellButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="788506691"/>
+                                       </object>
+                                       <int key="connectionID">190</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">addRemoveCell:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="788506691"/>
+                                       </object>
+                                       <int key="connectionID">191</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">addRemoveCell:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="537320483"/>
+                                       </object>
+                                       <int key="connectionID">192</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">showCellIP:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="593598121"/>
+                                       </object>
+                                       <int key="connectionID">193</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">saveConfiguration:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="335179878"/>
+                                       </object>
+                                       <int key="connectionID">202</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">infoSheet</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="52789773"/>
+                                       </object>
+                                       <int key="connectionID">217</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">infoController</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="176554930"/>
+                                       </object>
+                                       <int key="connectionID">225</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">infoPanel</string>
+                                               <reference key="source" ref="176554930"/>
+                                               <reference key="destination" ref="52789773"/>
+                                       </object>
+                                       <int key="connectionID">226</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">texEditInfo</string>
+                                               <reference key="source" ref="176554930"/>
+                                               <reference key="destination" ref="297493656"/>
+                                       </object>
+                                       <int key="connectionID">227</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">closePanel:</string>
+                                               <reference key="source" ref="176554930"/>
+                                               <reference key="destination" ref="729692979"/>
+                                       </object>
+                                       <int key="connectionID">228</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsCommanderView</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="645279396"/>
+                                       </object>
+                                       <int key="connectionID">303</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">statCacheEntry</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="411322031"/>
+                                       </object>
+                                       <int key="connectionID">418</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">dCacheDim</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="761947305"/>
+                                       </object>
+                                       <int key="connectionID">419</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">daemonNumber</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="23658009"/>
+                                       </object>
+                                       <int key="connectionID">420</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsRootMountPoint</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="850669444"/>
+                                       </object>
+                                       <int key="connectionID">421</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">nVolEntry</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="255735511"/>
+                                       </object>
+                                       <int key="connectionID">422</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">cacheDimension</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="627718334"/>
+                                       </object>
+                                       <int key="connectionID">423</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">dynRoot</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="805322468"/>
+                                       </object>
+                                       <int key="connectionID">424</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">saveCacheManagerParam:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="892096934"/>
+                                       </object>
+                                       <int key="connectionID">474</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">delegate</string>
+                                               <reference key="source" ref="739317740"/>
+                                               <reference key="destination" ref="773588579"/>
+                                       </object>
+                                       <int key="connectionID">669</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textSearchField</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="530233415"/>
+                                       </object>
+                                       <int key="connectionID">812</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">searchCellTextEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="530233415"/>
+                                       </object>
+                                       <int key="connectionID">817</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">delegate</string>
+                                               <reference key="source" ref="530233415"/>
+                                               <reference key="destination" ref="773588579"/>
+                                       </object>
+                                       <int key="connectionID">886</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">startStopAfs:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="709840556"/>
+                                       </object>
+                                       <int key="connectionID">1105</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">startStopButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="709840556"/>
+                                       </object>
+                                       <int key="connectionID">1106</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">afsMenuActivationEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="893552286"/>
+                                       </object>
+                                       <int key="connectionID">1109</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsMenucheckBox</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="893552286"/>
+                                       </object>
+                                       <int key="connectionID">1110</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">info:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="871603218"/>
+                                       </object>
+                                       <int key="connectionID">1113</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">tokensTable</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="313963250"/>
+                                       </object>
+                                       <int key="connectionID">1206</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">unlog:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="210387551"/>
+                                       </object>
+                                       <int key="connectionID">1211</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">getNewToken:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="977607312"/>
+                                       </object>
+                                       <int key="connectionID">1212</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">useAklogCheck</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="478533800"/>
+                                       </object>
+                                       <int key="connectionID">1282</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">aklogSwitchEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="478533800"/>
+                                       </object>
+                                       <int key="connectionID">1353</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">unlogButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="210387551"/>
+                                       </object>
+                                       <int key="connectionID">1644</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">tokensButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="977607312"/>
+                                       </object>
+                                       <int key="connectionID">1645</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsVersionLabel</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="1047946385"/>
+                                       </object>
+                                       <int key="connectionID">1717</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsDefaultCellLabel</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="747536303"/>
+                                       </object>
+                                       <int key="connectionID">1847</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">afsDB</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="509563943"/>
+                                       </object>
+                                       <int key="connectionID">1904</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">verbose</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="1064737768"/>
+                                       </object>
+                                       <int key="connectionID">1962</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">aklogCredentialAtLoginTime</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="541208829"/>
+                                       </object>
+                                       <int key="connectionID">2014</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">credentialAtLoginTimeEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="541208829"/>
+                                       </object>
+                                       <int key="connectionID">2015</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">installKRB5AuthAtLoginButton</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="239701474"/>
+                                       </object>
+                                       <int key="connectionID">2020</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">krb5KredentialAtLoginTimeEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="855912809"/>
+                                       </object>
+                                       <int key="connectionID">2021</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">checkEnableLink</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="224507096"/>
+                                       </object>
+                                       <int key="connectionID">2042</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">buttonRemoveLink</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="642014996"/>
+                                       </object>
+                                       <int key="connectionID">2044</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">buttonAddLink</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="642014996"/>
+                                       </object>
+                                       <int key="connectionID">2045</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">addLink:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="642014996"/>
+                                       </object>
+                                       <int key="connectionID">2046</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">removeLink:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="635503948"/>
+                                       </object>
+                                       <int key="connectionID">2047</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">enableLink:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="224507096"/>
+                                       </object>
+                                       <int key="connectionID">2048</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">checkButtonAfsAtBootTime</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="713307252"/>
+                                       </object>
+                                       <int key="connectionID">2051</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">afsStartupSwitchEvent:</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="713307252"/>
+                                       </object>
+                                       <int key="connectionID">2052</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textFieldDevInfoLabel</string>
+                                               <reference key="source" ref="773588579"/>
+                                               <reference key="destination" ref="415603882"/>
+                                       </object>
+                                       <int key="connectionID">2053</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <object class="NSArray" key="object" id="0">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="children" ref="84888716"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="773588579"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="270520968"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="173116405"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">12</int>
+                                               <reference key="object" ref="61231707"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="645279396"/>
+                                               </object>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">PrefPane</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">6</int>
+                                               <reference key="object" ref="645279396"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="415603882"/>
+                                                       <reference ref="1047946385"/>
+                                                       <reference ref="748501112"/>
+                                                       <reference ref="739317740"/>
+                                               </object>
+                                               <reference key="parent" ref="61231707"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">101</int>
+                                               <reference key="object" ref="739317740"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="269508902"/>
+                                                       <reference ref="443722606"/>
+                                                       <reference ref="584361947"/>
+                                                       <reference ref="126070858"/>
+                                               </object>
+                                               <reference key="parent" ref="645279396"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">104</int>
+                                               <reference key="object" ref="269508902"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1020318718"/>
+                                               </object>
+                                               <reference key="parent" ref="739317740"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">105</int>
+                                               <reference key="object" ref="1020318718"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="440720679"/>
+                                                       <reference ref="210387551"/>
+                                                       <reference ref="977607312"/>
+                                                       <reference ref="184192603"/>
+                                                       <reference ref="893552286"/>
+                                               </object>
+                                               <reference key="parent" ref="269508902"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1107</int>
+                                               <reference key="object" ref="893552286"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="428850916"/>
+                                               </object>
+                                               <reference key="parent" ref="1020318718"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1199</int>
+                                               <reference key="object" ref="440720679"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="313963250"/>
+                                                       <reference ref="884311606"/>
+                                                       <reference ref="258996751"/>
+                                                       <reference ref="1048519426"/>
+                                               </object>
+                                               <reference key="parent" ref="1020318718"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1203</int>
+                                               <reference key="object" ref="313963250"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="10567446"/>
+                                               </object>
+                                               <reference key="parent" ref="440720679"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1204</int>
+                                               <reference key="object" ref="10567446"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="361287568"/>
+                                               </object>
+                                               <reference key="parent" ref="313963250"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1207</int>
+                                               <reference key="object" ref="210387551"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="327131725"/>
+                                               </object>
+                                               <reference key="parent" ref="1020318718"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1209</int>
+                                               <reference key="object" ref="977607312"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="73578210"/>
+                                               </object>
+                                               <reference key="parent" ref="1020318718"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">177</int>
+                                               <reference key="object" ref="443722606"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1069727156"/>
+                                               </object>
+                                               <reference key="parent" ref="739317740"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">178</int>
+                                               <reference key="object" ref="1069727156"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="96110784"/>
+                                                       <reference ref="788506691"/>
+                                                       <reference ref="537320483"/>
+                                                       <reference ref="593598121"/>
+                                                       <reference ref="530233415"/>
+                                                       <reference ref="335179878"/>
+                                                       <reference ref="1038382119"/>
+                                                       <reference ref="747536303"/>
+                                               </object>
+                                               <reference key="parent" ref="443722606"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">179</int>
+                                               <reference key="object" ref="96110784"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="536830463"/>
+                                                       <reference ref="177605134"/>
+                                                       <reference ref="172641834"/>
+                                                       <reference ref="993816125"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">180</int>
+                                               <reference key="object" ref="536830463"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="145486834"/>
+                                                       <reference ref="909348673"/>
+                                                       <reference ref="720585546"/>
+                                                       <reference ref="136480779"/>
+                                               </object>
+                                               <reference key="parent" ref="96110784"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">181</int>
+                                               <reference key="object" ref="145486834"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="345168793"/>
+                                               </object>
+                                               <reference key="parent" ref="536830463"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">182</int>
+                                               <reference key="object" ref="909348673"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="990091450"/>
+                                               </object>
+                                               <reference key="parent" ref="536830463"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1422</int>
+                                               <reference key="object" ref="720585546"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="110685339"/>
+                                               </object>
+                                               <reference key="parent" ref="536830463"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1426</int>
+                                               <reference key="object" ref="110685339"/>
+                                               <reference key="parent" ref="720585546"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1787</int>
+                                               <reference key="object" ref="136480779"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="787517969"/>
+                                               </object>
+                                               <reference key="parent" ref="536830463"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1789</int>
+                                               <reference key="object" ref="787517969"/>
+                                               <reference key="parent" ref="136480779"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">183</int>
+                                               <reference key="object" ref="788506691"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="934170338"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">184</int>
+                                               <reference key="object" ref="537320483"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1045702831"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">185</int>
+                                               <reference key="object" ref="593598121"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="567447351"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">186</int>
+                                               <reference key="object" ref="530233415"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="497389328"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">200</int>
+                                               <reference key="object" ref="335179878"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="372630674"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">265</int>
+                                               <reference key="object" ref="1038382119"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="269454663"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1845</int>
+                                               <reference key="object" ref="747536303"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="579088625"/>
+                                               </object>
+                                               <reference key="parent" ref="1069727156"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">337</int>
+                                               <reference key="object" ref="584361947"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="537928258"/>
+                                               </object>
+                                               <reference key="parent" ref="739317740"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">338</int>
+                                               <reference key="object" ref="537928258"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1056952440"/>
+                                               </object>
+                                               <reference key="parent" ref="584361947"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">339</int>
+                                               <reference key="object" ref="1056952440"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="748314809"/>
+                                                       <reference ref="411322031"/>
+                                                       <reference ref="761947305"/>
+                                                       <reference ref="560081349"/>
+                                                       <reference ref="23658009"/>
+                                                       <reference ref="217732195"/>
+                                                       <reference ref="1070305297"/>
+                                                       <reference ref="358834889"/>
+                                                       <reference ref="255735511"/>
+                                                       <reference ref="640588663"/>
+                                                       <reference ref="850669444"/>
+                                                       <reference ref="972024631"/>
+                                                       <reference ref="627718334"/>
+                                                       <reference ref="892096934"/>
+                                                       <reference ref="835771463"/>
+                                                       <reference ref="805322468"/>
+                                                       <reference ref="1064737768"/>
+                                                       <reference ref="509563943"/>
+                                               </object>
+                                               <reference key="parent" ref="537928258"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">207</int>
+                                               <reference key="object" ref="415603882"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="947523856"/>
+                                               </object>
+                                               <reference key="parent" ref="645279396"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1122</int>
+                                               <reference key="object" ref="748501112"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="709840556"/>
+                                                       <reference ref="713307252"/>
+                                                       <reference ref="871603218"/>
+                                                       <reference ref="239701474"/>
+                                               </object>
+                                               <reference key="parent" ref="645279396"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1715</int>
+                                               <reference key="object" ref="1047946385"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="999146642"/>
+                                               </object>
+                                               <reference key="parent" ref="645279396"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">208</int>
+                                               <reference key="object" ref="52789773"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1017822711"/>
+                                               </object>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Info</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">209</int>
+                                               <reference key="object" ref="1017822711"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="935020490"/>
+                                                       <reference ref="729692979"/>
+                                               </object>
+                                               <reference key="parent" ref="52789773"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">214</int>
+                                               <reference key="object" ref="935020490"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="297493656"/>
+                                                       <reference ref="11642274"/>
+                                                       <reference ref="574894181"/>
+                                               </object>
+                                               <reference key="parent" ref="1017822711"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">215</int>
+                                               <reference key="object" ref="297493656"/>
+                                               <reference key="parent" ref="935020490"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">216</int>
+                                               <reference key="object" ref="729692979"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="278933381"/>
+                                               </object>
+                                               <reference key="parent" ref="1017822711"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">224</int>
+                                               <reference key="object" ref="176554930"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">InfoController</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1964</int>
+                                               <reference key="object" ref="428850916"/>
+                                               <reference key="parent" ref="893552286"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1965</int>
+                                               <reference key="object" ref="327131725"/>
+                                               <reference key="parent" ref="210387551"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1966</int>
+                                               <reference key="object" ref="73578210"/>
+                                               <reference key="parent" ref="977607312"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1968</int>
+                                               <reference key="object" ref="934170338"/>
+                                               <reference key="parent" ref="788506691"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1969</int>
+                                               <reference key="object" ref="1045702831"/>
+                                               <reference key="parent" ref="537320483"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1970</int>
+                                               <reference key="object" ref="567447351"/>
+                                               <reference key="parent" ref="593598121"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1971</int>
+                                               <reference key="object" ref="497389328"/>
+                                               <reference key="parent" ref="530233415"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1972</int>
+                                               <reference key="object" ref="372630674"/>
+                                               <reference key="parent" ref="335179878"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1973</int>
+                                               <reference key="object" ref="269454663"/>
+                                               <reference key="parent" ref="1038382119"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1974</int>
+                                               <reference key="object" ref="579088625"/>
+                                               <reference key="parent" ref="747536303"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1993</int>
+                                               <reference key="object" ref="947523856"/>
+                                               <reference key="parent" ref="415603882"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1998</int>
+                                               <reference key="object" ref="999146642"/>
+                                               <reference key="parent" ref="1047946385"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1999</int>
+                                               <reference key="object" ref="278933381"/>
+                                               <reference key="parent" ref="729692979"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2000</int>
+                                               <reference key="object" ref="361287568"/>
+                                               <reference key="parent" ref="10567446"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2001</int>
+                                               <reference key="object" ref="345168793"/>
+                                               <reference key="parent" ref="145486834"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2002</int>
+                                               <reference key="object" ref="990091450"/>
+                                               <reference key="parent" ref="909348673"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2003</int>
+                                               <reference key="object" ref="884311606"/>
+                                               <reference key="parent" ref="440720679"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2004</int>
+                                               <reference key="object" ref="258996751"/>
+                                               <reference key="parent" ref="440720679"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2005</int>
+                                               <reference key="object" ref="1048519426"/>
+                                               <reference key="parent" ref="440720679"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2006</int>
+                                               <reference key="object" ref="177605134"/>
+                                               <reference key="parent" ref="96110784"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2007</int>
+                                               <reference key="object" ref="172641834"/>
+                                               <reference key="parent" ref="96110784"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2008</int>
+                                               <reference key="object" ref="993816125"/>
+                                               <reference key="parent" ref="96110784"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2009</int>
+                                               <reference key="object" ref="11642274"/>
+                                               <reference key="parent" ref="935020490"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2010</int>
+                                               <reference key="object" ref="574894181"/>
+                                               <reference key="parent" ref="935020490"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">340</int>
+                                               <reference key="object" ref="748314809"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1008754563"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1975</int>
+                                               <reference key="object" ref="1008754563"/>
+                                               <reference key="parent" ref="748314809"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">342</int>
+                                               <reference key="object" ref="411322031"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1051935415"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1976</int>
+                                               <reference key="object" ref="1051935415"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="455485314"/>
+                                               </object>
+                                               <reference key="parent" ref="411322031"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">741</int>
+                                               <reference key="object" ref="455485314"/>
+                                               <reference key="parent" ref="1051935415"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">344</int>
+                                               <reference key="object" ref="761947305"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="19899457"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1977</int>
+                                               <reference key="object" ref="19899457"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="248712560"/>
+                                               </object>
+                                               <reference key="parent" ref="761947305"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">742</int>
+                                               <reference key="object" ref="248712560"/>
+                                               <reference key="parent" ref="19899457"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">345</int>
+                                               <reference key="object" ref="560081349"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="628600719"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1978</int>
+                                               <reference key="object" ref="628600719"/>
+                                               <reference key="parent" ref="560081349"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">348</int>
+                                               <reference key="object" ref="23658009"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="463621063"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1979</int>
+                                               <reference key="object" ref="463621063"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="833073507"/>
+                                               </object>
+                                               <reference key="parent" ref="23658009"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">417</int>
+                                               <reference key="object" ref="833073507"/>
+                                               <reference key="parent" ref="463621063"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">349</int>
+                                               <reference key="object" ref="217732195"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1057450635"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1980</int>
+                                               <reference key="object" ref="1057450635"/>
+                                               <reference key="parent" ref="217732195"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">352</int>
+                                               <reference key="object" ref="1070305297"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="474187509"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1981</int>
+                                               <reference key="object" ref="474187509"/>
+                                               <reference key="parent" ref="1070305297"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">402</int>
+                                               <reference key="object" ref="358834889"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="120617252"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1983</int>
+                                               <reference key="object" ref="120617252"/>
+                                               <reference key="parent" ref="358834889"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">404</int>
+                                               <reference key="object" ref="255735511"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="310838537"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1984</int>
+                                               <reference key="object" ref="310838537"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="547764719"/>
+                                               </object>
+                                               <reference key="parent" ref="255735511"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">411</int>
+                                               <reference key="object" ref="547764719"/>
+                                               <reference key="parent" ref="310838537"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">406</int>
+                                               <reference key="object" ref="640588663"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="35880329"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1985</int>
+                                               <reference key="object" ref="35880329"/>
+                                               <reference key="parent" ref="640588663"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">408</int>
+                                               <reference key="object" ref="850669444"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="456324371"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1986</int>
+                                               <reference key="object" ref="456324371"/>
+                                               <reference key="parent" ref="850669444"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">413</int>
+                                               <reference key="object" ref="972024631"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="383369569"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1987</int>
+                                               <reference key="object" ref="383369569"/>
+                                               <reference key="parent" ref="972024631"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">415</int>
+                                               <reference key="object" ref="627718334"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="756462877"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1988</int>
+                                               <reference key="object" ref="756462877"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="592804150"/>
+                                               </object>
+                                               <reference key="parent" ref="627718334"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">740</int>
+                                               <reference key="object" ref="592804150"/>
+                                               <reference key="parent" ref="756462877"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">425</int>
+                                               <reference key="object" ref="892096934"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="728535364"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1989</int>
+                                               <reference key="object" ref="728535364"/>
+                                               <reference key="parent" ref="892096934"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">475</int>
+                                               <reference key="object" ref="835771463"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="672812502"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1990</int>
+                                               <reference key="object" ref="672812502"/>
+                                               <reference key="parent" ref="835771463"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">400</int>
+                                               <reference key="object" ref="805322468"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="703486492"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1982</int>
+                                               <reference key="object" ref="703486492"/>
+                                               <reference key="parent" ref="805322468"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1902</int>
+                                               <reference key="object" ref="509563943"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="442311508"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1991</int>
+                                               <reference key="object" ref="442311508"/>
+                                               <reference key="parent" ref="509563943"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1960</int>
+                                               <reference key="object" ref="1064737768"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="533239018"/>
+                                               </object>
+                                               <reference key="parent" ref="1056952440"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1992</int>
+                                               <reference key="object" ref="533239018"/>
+                                               <reference key="parent" ref="1064737768"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1103</int>
+                                               <reference key="object" ref="709840556"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="675447498"/>
+                                               </object>
+                                               <reference key="parent" ref="748501112"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1994</int>
+                                               <reference key="object" ref="675447498"/>
+                                               <reference key="parent" ref="709840556"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1111</int>
+                                               <reference key="object" ref="871603218"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1009755861"/>
+                                               </object>
+                                               <reference key="parent" ref="748501112"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1995</int>
+                                               <reference key="object" ref="1009755861"/>
+                                               <reference key="parent" ref="871603218"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2013</int>
+                                               <reference key="object" ref="184192603"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="478533800"/>
+                                                       <reference ref="541208829"/>
+                                               </object>
+                                               <reference key="parent" ref="1020318718"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1280</int>
+                                               <reference key="object" ref="478533800"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="989004902"/>
+                                               </object>
+                                               <reference key="parent" ref="184192603"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1967</int>
+                                               <reference key="object" ref="989004902"/>
+                                               <reference key="parent" ref="478533800"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2011</int>
+                                               <reference key="object" ref="541208829"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="95048095"/>
+                                               </object>
+                                               <reference key="parent" ref="184192603"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2012</int>
+                                               <reference key="object" ref="95048095"/>
+                                               <reference key="parent" ref="541208829"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2018</int>
+                                               <reference key="object" ref="239701474"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="855912809"/>
+                                               </object>
+                                               <reference key="parent" ref="748501112"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2019</int>
+                                               <reference key="object" ref="855912809"/>
+                                               <reference key="parent" ref="239701474"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2022</int>
+                                               <reference key="object" ref="126070858"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="786994103"/>
+                                               </object>
+                                               <reference key="parent" ref="739317740"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2023</int>
+                                               <reference key="object" ref="786994103"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="284115188"/>
+                                                       <reference ref="224507096"/>
+                                                       <reference ref="642014996"/>
+                                                       <reference ref="635503948"/>
+                                               </object>
+                                               <reference key="parent" ref="126070858"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2024</int>
+                                               <reference key="object" ref="284115188"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="497462431"/>
+                                                       <reference ref="145484441"/>
+                                                       <reference ref="1029505942"/>
+                                                       <reference ref="209519573"/>
+                                               </object>
+                                               <reference key="parent" ref="786994103"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2025</int>
+                                               <reference key="object" ref="497462431"/>
+                                               <reference key="parent" ref="284115188"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2026</int>
+                                               <reference key="object" ref="145484441"/>
+                                               <reference key="parent" ref="284115188"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2027</int>
+                                               <reference key="object" ref="1029505942"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="604570943"/>
+                                                       <reference ref="915858279"/>
+                                               </object>
+                                               <reference key="parent" ref="284115188"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2028</int>
+                                               <reference key="object" ref="209519573"/>
+                                               <reference key="parent" ref="284115188"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2029</int>
+                                               <reference key="object" ref="604570943"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="404459918"/>
+                                               </object>
+                                               <reference key="parent" ref="1029505942"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2030</int>
+                                               <reference key="object" ref="915858279"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="367407167"/>
+                                               </object>
+                                               <reference key="parent" ref="1029505942"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2031</int>
+                                               <reference key="object" ref="367407167"/>
+                                               <reference key="parent" ref="915858279"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2032</int>
+                                               <reference key="object" ref="404459918"/>
+                                               <reference key="parent" ref="604570943"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2033</int>
+                                               <reference key="object" ref="642014996"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="865151679"/>
+                                               </object>
+                                               <reference key="parent" ref="786994103"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2034</int>
+                                               <reference key="object" ref="865151679"/>
+                                               <reference key="parent" ref="642014996"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2035</int>
+                                               <reference key="object" ref="635503948"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="713243405"/>
+                                               </object>
+                                               <reference key="parent" ref="786994103"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2036</int>
+                                               <reference key="object" ref="713243405"/>
+                                               <reference key="parent" ref="635503948"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2037</int>
+                                               <reference key="object" ref="224507096"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="378183006"/>
+                                               </object>
+                                               <reference key="parent" ref="786994103"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2038</int>
+                                               <reference key="object" ref="378183006"/>
+                                               <reference key="parent" ref="224507096"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2049</int>
+                                               <reference key="object" ref="713307252"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="98390178"/>
+                                               </object>
+                                               <reference key="parent" ref="748501112"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">2050</int>
+                                               <reference key="object" ref="98390178"/>
+                                               <reference key="parent" ref="713307252"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.IBPluginDependency</string>
+                                       <string>-2.IBPluginDependency</string>
+                                       <string>-3.IBPluginDependency</string>
+                                       <string>-3.ImportedFromIB2</string>
+                                       <string>101.IBPluginDependency</string>
+                                       <string>101.ImportedFromIB2</string>
+                                       <string>104.IBPluginDependency</string>
+                                       <string>104.ImportedFromIB2</string>
+                                       <string>105.IBPluginDependency</string>
+                                       <string>105.ImportedFromIB2</string>
+                                       <string>1103.IBPluginDependency</string>
+                                       <string>1103.ImportedFromIB2</string>
+                                       <string>1107.IBPluginDependency</string>
+                                       <string>1107.ImportedFromIB2</string>
+                                       <string>1111.IBPluginDependency</string>
+                                       <string>1111.ImportedFromIB2</string>
+                                       <string>1122.IBPluginDependency</string>
+                                       <string>1122.ImportedFromIB2</string>
+                                       <string>1199.IBPluginDependency</string>
+                                       <string>1199.ImportedFromIB2</string>
+                                       <string>12.IBEditorWindowLastContentRect</string>
+                                       <string>12.IBPluginDependency</string>
+                                       <string>12.IBWindowTemplateEditedContentRect</string>
+                                       <string>12.ImportedFromIB2</string>
+                                       <string>12.windowTemplate.hasMinSize</string>
+                                       <string>12.windowTemplate.maxSize</string>
+                                       <string>12.windowTemplate.minSize</string>
+                                       <string>1203.IBPluginDependency</string>
+                                       <string>1203.ImportedFromIB2</string>
+                                       <string>1204.IBPluginDependency</string>
+                                       <string>1204.ImportedFromIB2</string>
+                                       <string>1207.IBPluginDependency</string>
+                                       <string>1207.ImportedFromIB2</string>
+                                       <string>1209.IBPluginDependency</string>
+                                       <string>1209.ImportedFromIB2</string>
+                                       <string>1280.IBPluginDependency</string>
+                                       <string>1280.ImportedFromIB2</string>
+                                       <string>1422.IBPluginDependency</string>
+                                       <string>1422.ImportedFromIB2</string>
+                                       <string>1426.IBPluginDependency</string>
+                                       <string>1426.ImportedFromIB2</string>
+                                       <string>1715.IBPluginDependency</string>
+                                       <string>1715.ImportedFromIB2</string>
+                                       <string>177.IBPluginDependency</string>
+                                       <string>177.ImportedFromIB2</string>
+                                       <string>178.IBPluginDependency</string>
+                                       <string>178.ImportedFromIB2</string>
+                                       <string>1787.IBPluginDependency</string>
+                                       <string>1787.ImportedFromIB2</string>
+                                       <string>1789.IBPluginDependency</string>
+                                       <string>1789.ImportedFromIB2</string>
+                                       <string>179.IBPluginDependency</string>
+                                       <string>179.ImportedFromIB2</string>
+                                       <string>180.IBPluginDependency</string>
+                                       <string>180.ImportedFromIB2</string>
+                                       <string>181.IBPluginDependency</string>
+                                       <string>181.ImportedFromIB2</string>
+                                       <string>182.IBPluginDependency</string>
+                                       <string>182.ImportedFromIB2</string>
+                                       <string>183.IBPluginDependency</string>
+                                       <string>183.ImportedFromIB2</string>
+                                       <string>184.IBPluginDependency</string>
+                                       <string>184.ImportedFromIB2</string>
+                                       <string>1845.IBPluginDependency</string>
+                                       <string>1845.ImportedFromIB2</string>
+                                       <string>185.IBPluginDependency</string>
+                                       <string>185.ImportedFromIB2</string>
+                                       <string>186.IBPluginDependency</string>
+                                       <string>186.ImportedFromIB2</string>
+                                       <string>1902.IBPluginDependency</string>
+                                       <string>1902.ImportedFromIB2</string>
+                                       <string>1960.IBAttributePlaceholdersKey</string>
+                                       <string>1960.IBPluginDependency</string>
+                                       <string>1960.ImportedFromIB2</string>
+                                       <string>1992.IBAttributePlaceholdersKey</string>
+                                       <string>200.IBPluginDependency</string>
+                                       <string>200.ImportedFromIB2</string>
+                                       <string>2000.IBShouldRemoveOnLegacySave</string>
+                                       <string>2001.IBShouldRemoveOnLegacySave</string>
+                                       <string>2002.IBShouldRemoveOnLegacySave</string>
+                                       <string>2003.IBShouldRemoveOnLegacySave</string>
+                                       <string>2004.IBShouldRemoveOnLegacySave</string>
+                                       <string>2005.IBShouldRemoveOnLegacySave</string>
+                                       <string>2006.IBShouldRemoveOnLegacySave</string>
+                                       <string>2007.IBShouldRemoveOnLegacySave</string>
+                                       <string>2008.IBShouldRemoveOnLegacySave</string>
+                                       <string>2009.IBShouldRemoveOnLegacySave</string>
+                                       <string>2010.IBShouldRemoveOnLegacySave</string>
+                                       <string>2011.IBPluginDependency</string>
+                                       <string>2012.IBPluginDependency</string>
+                                       <string>2013.IBPluginDependency</string>
+                                       <string>2018.IBPluginDependency</string>
+                                       <string>2019.IBPluginDependency</string>
+                                       <string>2024.IBPluginDependency</string>
+                                       <string>2025.IBPluginDependency</string>
+                                       <string>2026.IBPluginDependency</string>
+                                       <string>2027.IBPluginDependency</string>
+                                       <string>2028.IBPluginDependency</string>
+                                       <string>2029.IBPluginDependency</string>
+                                       <string>2030.IBPluginDependency</string>
+                                       <string>2031.IBPluginDependency</string>
+                                       <string>2032.IBPluginDependency</string>
+                                       <string>2033.IBPluginDependency</string>
+                                       <string>2034.IBPluginDependency</string>
+                                       <string>2035.IBPluginDependency</string>
+                                       <string>2036.IBPluginDependency</string>
+                                       <string>2037.IBPluginDependency</string>
+                                       <string>2038.IBPluginDependency</string>
+                                       <string>2049.IBPluginDependency</string>
+                                       <string>2050.IBPluginDependency</string>
+                                       <string>207.IBPluginDependency</string>
+                                       <string>207.ImportedFromIB2</string>
+                                       <string>208.IBEditorWindowLastContentRect</string>
+                                       <string>208.IBPluginDependency</string>
+                                       <string>208.IBWindowTemplateEditedContentRect</string>
+                                       <string>208.ImportedFromIB2</string>
+                                       <string>208.windowTemplate.hasMinSize</string>
+                                       <string>208.windowTemplate.maxSize</string>
+                                       <string>208.windowTemplate.minSize</string>
+                                       <string>209.IBPluginDependency</string>
+                                       <string>209.ImportedFromIB2</string>
+                                       <string>214.IBPluginDependency</string>
+                                       <string>214.ImportedFromIB2</string>
+                                       <string>215.IBPluginDependency</string>
+                                       <string>215.ImportedFromIB2</string>
+                                       <string>216.IBPluginDependency</string>
+                                       <string>216.ImportedFromIB2</string>
+                                       <string>224.IBPluginDependency</string>
+                                       <string>224.ImportedFromIB2</string>
+                                       <string>265.IBPluginDependency</string>
+                                       <string>265.ImportedFromIB2</string>
+                                       <string>337.IBPluginDependency</string>
+                                       <string>337.ImportedFromIB2</string>
+                                       <string>338.IBPluginDependency</string>
+                                       <string>338.ImportedFromIB2</string>
+                                       <string>339.IBPluginDependency</string>
+                                       <string>339.ImportedFromIB2</string>
+                                       <string>340.IBPluginDependency</string>
+                                       <string>340.ImportedFromIB2</string>
+                                       <string>342.IBPluginDependency</string>
+                                       <string>342.ImportedFromIB2</string>
+                                       <string>344.IBAttributePlaceholdersKey</string>
+                                       <string>344.IBPluginDependency</string>
+                                       <string>344.ImportedFromIB2</string>
+                                       <string>345.IBPluginDependency</string>
+                                       <string>345.ImportedFromIB2</string>
+                                       <string>348.IBAttributePlaceholdersKey</string>
+                                       <string>348.IBPluginDependency</string>
+                                       <string>348.ImportedFromIB2</string>
+                                       <string>349.IBPluginDependency</string>
+                                       <string>349.ImportedFromIB2</string>
+                                       <string>352.IBPluginDependency</string>
+                                       <string>352.ImportedFromIB2</string>
+                                       <string>400.IBPluginDependency</string>
+                                       <string>400.ImportedFromIB2</string>
+                                       <string>402.IBPluginDependency</string>
+                                       <string>402.ImportedFromIB2</string>
+                                       <string>404.IBAttributePlaceholdersKey</string>
+                                       <string>404.IBPluginDependency</string>
+                                       <string>404.ImportedFromIB2</string>
+                                       <string>406.IBPluginDependency</string>
+                                       <string>406.ImportedFromIB2</string>
+                                       <string>408.IBAttributePlaceholdersKey</string>
+                                       <string>408.IBPluginDependency</string>
+                                       <string>408.ImportedFromIB2</string>
+                                       <string>411.IBPluginDependency</string>
+                                       <string>411.ImportedFromIB2</string>
+                                       <string>413.IBPluginDependency</string>
+                                       <string>413.ImportedFromIB2</string>
+                                       <string>415.IBAttributePlaceholdersKey</string>
+                                       <string>415.IBPluginDependency</string>
+                                       <string>415.ImportedFromIB2</string>
+                                       <string>417.IBPluginDependency</string>
+                                       <string>417.ImportedFromIB2</string>
+                                       <string>425.IBPluginDependency</string>
+                                       <string>425.ImportedFromIB2</string>
+                                       <string>475.IBPluginDependency</string>
+                                       <string>475.ImportedFromIB2</string>
+                                       <string>6.IBPluginDependency</string>
+                                       <string>6.ImportedFromIB2</string>
+                                       <string>740.IBPluginDependency</string>
+                                       <string>740.ImportedFromIB2</string>
+                                       <string>741.IBPluginDependency</string>
+                                       <string>741.ImportedFromIB2</string>
+                                       <string>742.IBPluginDependency</string>
+                                       <string>742.ImportedFromIB2</string>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>{{192, 153}, {595, 486}}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{192, 153}, {595, 486}}</string>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <string>{3.40282e+38, 3.40282e+38}</string>
+                                       <string>{0, 0}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="1064737768"/>
+                                                       <string key="toolTip">Enable the verbose mode or afsd</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="533239018"/>
+                                                       <string type="base64-UTF8" key="toolTip">RW5hYmxlIGxvdCBvZiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZnJvbSBhZnNkLiAgT25seSB1c2VmdWwg
+Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>{{0, 510}, {715, 485}}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{0, 510}, {715, 485}}</string>
+                                       <reference ref="9"/>
+                                       <reference ref="9"/>
+                                       <string>{3.40282e+38, 3.40282e+38}</string>
+                                       <string>{0, 0}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="761947305"/>
+                                                       <string key="toolTip">DCache entry used for store information about cache chunk</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="23658009"/>
+                                                       <string key="toolTip">Number of daemons to use</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="255735511"/>
+                                                       <string key="toolTip">Specifies the number of memory structures to allocate for storing volume location information</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="850669444"/>
+                                                       <string key="toolTip">The directory on which the AFS is to be mounted.</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="627718334"/>
+                                                       <string key="toolTip">Specifies the number of memory structures to allocate for storing volume location information</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <reference ref="9"/>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">2053</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addLink:</string>
+                                                       <string>addRemoveCell:</string>
+                                                       <string>afsMenuActivationEvent:</string>
+                                                       <string>afsStartupSwitchEvent:</string>
+                                                       <string>aklogSwitchEvent:</string>
+                                                       <string>credentialAtLoginTimeEvent:</string>
+                                                       <string>enableLink:</string>
+                                                       <string>getNewToken:</string>
+                                                       <string>info:</string>
+                                                       <string>krb5KredentialAtLoginTimeEvent:</string>
+                                                       <string>refreshConfiguration:</string>
+                                                       <string>removeLink:</string>
+                                                       <string>saveCacheManagerParam:</string>
+                                                       <string>saveConfiguration:</string>
+                                                       <string>searchCellTextEvent:</string>
+                                                       <string>showCellIP:</string>
+                                                       <string>startStopAfs:</string>
+                                                       <string>tableDoubleAction:</string>
+                                                       <string>unlog:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addCellButton</string>
+                                                       <string>afsCommanderView</string>
+                                                       <string>afsDB</string>
+                                                       <string>afsDefaultCellLabel</string>
+                                                       <string>afsMenucheckBox</string>
+                                                       <string>afsRootMountPoint</string>
+                                                       <string>afsVersionLabel</string>
+                                                       <string>aklogCredentialAtLoginTime</string>
+                                                       <string>buttonAddLink</string>
+                                                       <string>buttonRemoveLink</string>
+                                                       <string>cacheDimension</string>
+                                                       <string>cellIpButton</string>
+                                                       <string>cellList</string>
+                                                       <string>checkButtonAfsAtBootTime</string>
+                                                       <string>checkEnableLink</string>
+                                                       <string>credentialCommander</string>
+                                                       <string>credentialSheet</string>
+                                                       <string>dCacheDim</string>
+                                                       <string>daemonNumber</string>
+                                                       <string>dynRoot</string>
+                                                       <string>groupsBox</string>
+                                                       <string>infoController</string>
+                                                       <string>infoSheet</string>
+                                                       <string>installKRB5AuthAtLoginButton</string>
+                                                       <string>ipConfControllerCommander</string>
+                                                       <string>ipConfigurationSheet</string>
+                                                       <string>labelSaveResult</string>
+                                                       <string>lyncCreationSheet</string>
+                                                       <string>lynkCreationController</string>
+                                                       <string>nVolEntry</string>
+                                                       <string>removeCellButton</string>
+                                                       <string>saveConfigurationButton</string>
+                                                       <string>startStopButton</string>
+                                                       <string>statCacheEntry</string>
+                                                       <string>textFieldDevInfoLabel</string>
+                                                       <string>textSearchField</string>
+                                                       <string>tokensButton</string>
+                                                       <string>tokensTable</string>
+                                                       <string>unlogButton</string>
+                                                       <string>useAklogCheck</string>
+                                                       <string>verbose</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>NSView</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSBox</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>LynkCreationController</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSSearchField</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">AFSCommanderPref.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>cellPopupButton</string>
+                                                       <string>getTokenButton</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSPopUpButton</string>
+                                                       <string>NSPopUpButton</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">FirstResponder</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">InfoController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <string key="NS.key.0">closePanel:</string>
+                                               <string key="NS.object.0">id</string>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>infoPanel</string>
+                                                       <string>texEditInfo</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">InfoController.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">InfoController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">LynkCreationController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>cancell:</string>
+                                                       <string>save:</string>
+                                                       <string>selectLinkDest:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>lynkCreationSheet</string>
+                                                       <string>textFieldLinkDestPath</string>
+                                                       <string>textfieldLinkName</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSPanel</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">LynkCreationController.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSPreferencePane</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>_firstKeyView</string>
+                                                       <string>_initialKeyView</string>
+                                                       <string>_lastKeyView</string>
+                                                       <string>_window</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBUserSource</string>
+                                               <string key="minorKey"/>
+                                       </object>
+                               </object>
+                       </object>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.LastKnownRelativeProjectPath">../OpenAFS.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+       </data>
+</archive>
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/SymLinkEdit.xib b/src/platform/DARWIN/AFSPreference/English.lproj/SymLinkEdit.xib
new file mode 100644 (file)
index 0000000..50eca33
--- /dev/null
@@ -0,0 +1,728 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">9D34</string>
+               <string key="IBDocument.InterfaceBuilderVersion">667</string>
+               <string key="IBDocument.AppKitVersion">949.33</string>
+               <string key="IBDocument.HIToolboxVersion">352.00</string>
+               <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <integer value="7"/>
+               </object>
+               <object class="NSArray" key="IBDocument.PluginDependencies">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <string>com.apple.InterfaceBuilderKit</string>
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </object>
+               <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+                       <bool key="EncodedWithXMLCoder">YES</bool>
+                       <object class="NSCustomObject" id="1001">
+                               <string key="NSClassName">AFSCommanderPref</string>
+                       </object>
+                       <object class="NSCustomObject" id="1003">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="1004">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSCustomObject" id="975034471">
+                               <string key="NSClassName">LynkCreationController</string>
+                       </object>
+                       <object class="NSWindowTemplate" id="601928344">
+                               <int key="NSWindowStyleMask">11</int>
+                               <int key="NSWindowBacking">2</int>
+                               <string key="NSWindowRect">{{196, 372}, {502, 138}}</string>
+                               <int key="NSWTFlags">1946157056</int>
+                               <string key="NSWindowTitle">Window</string>
+                               <string key="NSWindowClass">NSPanel</string>
+                               <nil key="NSViewClass"/>
+                               <string key="NSWindowContentMaxSize">{800, 138}</string>
+                               <string key="NSWindowContentMinSize">{502, 138}</string>
+                               <object class="NSView" key="NSWindowView" id="460331704">
+                                       <reference key="NSNextResponder"/>
+                                       <int key="NSvFlags">266</int>
+                                       <object class="NSMutableArray" key="NSSubviews">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSTextField" id="490694985">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{46, 116}, {67, 14}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="223588969">
+                                                               <int key="NSCellFlags">68288064</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents">Lynk Name:</string>
+                                                               <object class="NSFont" key="NSSupport" id="26">
+                                                                       <string key="NSName">LucidaGrande</string>
+                                                                       <double key="NSSize">1.100000e+01</double>
+                                                                       <int key="NSfFlags">3100</int>
+                                                               </object>
+                                                               <reference key="NSControlView" ref="490694985"/>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="459467427">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlColor</string>
+                                                                       <object class="NSColor" key="NSColor">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="580207658">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">controlTextColor</string>
+                                                                       <object class="NSColor" key="NSColor" id="213974819">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MAA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="216298488">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{118, 114}, {364, 19}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="595483084">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="216298488"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <object class="NSColor" key="NSBackgroundColor" id="842446002">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textBackgroundColor</string>
+                                                                       <object class="NSColor" key="NSColor">
+                                                                               <int key="NSColorSpace">3</int>
+                                                                               <bytes key="NSWhite">MQA</bytes>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSColor" key="NSTextColor" id="456929419">
+                                                                       <int key="NSColorSpace">6</int>
+                                                                       <string key="NSCatalogName">System</string>
+                                                                       <string key="NSColorName">textColor</string>
+                                                                       <reference key="NSColor" ref="213974819"/>
+                                                               </object>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="396325470">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{17, 89}, {96, 14}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="606265604">
+                                                               <int key="NSCellFlags">68288064</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents">Destination Path:</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="396325470"/>
+                                                               <reference key="NSBackgroundColor" ref="459467427"/>
+                                                               <reference key="NSTextColor" ref="580207658"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSTextField" id="987609939">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">266</int>
+                                                       <string key="NSFrame">{{118, 87}, {364, 19}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSTextFieldCell" key="NSCell" id="1031947755">
+                                                               <int key="NSCellFlags">-1804468671</int>
+                                                               <int key="NSCellFlags2">272761856</int>
+                                                               <string key="NSContents"/>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="987609939"/>
+                                                               <bool key="NSDrawsBackground">YES</bool>
+                                                               <reference key="NSBackgroundColor" ref="842446002"/>
+                                                               <reference key="NSTextColor" ref="456929419"/>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="852592336">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">265</int>
+                                                       <string key="NSFrame">{{391, 55}, {96, 28}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="293618620">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Select Path</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="852592336"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">268435585</int>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string key="NSKeyEquivalent">p</string>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="398365385">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{391, 28}, {96, 28}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="1037460050">
+                                                               <int key="NSCellFlags">-2080244224</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Save</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="398365385"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">129</int>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                               <object class="NSButton" id="624416640">
+                                                       <reference key="NSNextResponder" ref="460331704"/>
+                                                       <int key="NSvFlags">289</int>
+                                                       <string key="NSFrame">{{297, 28}, {96, 28}}</string>
+                                                       <reference key="NSSuperview" ref="460331704"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="204377612">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134348800</int>
+                                                               <string key="NSContents">Cancel</string>
+                                                               <reference key="NSSupport" ref="26"/>
+                                                               <reference key="NSControlView" ref="624416640"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">129</int>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
+                                       </object>
+                                       <string key="NSFrameSize">{502, 138}</string>
+                                       <reference key="NSSuperview"/>
+                               </object>
+                               <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
+                               <string key="NSMinSize">{502, 160}</string>
+                               <string key="NSMaxSize">{800, 160}</string>
+                       </object>
+               </object>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <object class="NSMutableArray" key="connectionRecords">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">save:</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="398365385"/>
+                                       </object>
+                                       <int key="connectionID">23</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">cancell:</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="624416640"/>
+                                       </object>
+                                       <int key="connectionID">24</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">lynkCreationSheet</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="601928344"/>
+                                       </object>
+                                       <int key="connectionID">25</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">lyncCreationSheet</string>
+                                               <reference key="source" ref="1001"/>
+                                               <reference key="destination" ref="601928344"/>
+                                       </object>
+                                       <int key="connectionID">26</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">selectLinkDest:</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="852592336"/>
+                                       </object>
+                                       <int key="connectionID">27</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textFieldLinkDestPath</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="987609939"/>
+                                       </object>
+                                       <int key="connectionID">28</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">textfieldLinkName</string>
+                                               <reference key="source" ref="975034471"/>
+                                               <reference key="destination" ref="216298488"/>
+                                       </object>
+                                       <int key="connectionID">29</int>
+                               </object>
+                       </object>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <object class="NSArray" key="orderedObjects">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <object class="NSArray" key="object" id="1002">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                               </object>
+                                               <reference key="children" ref="1000"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="1001"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="1003"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="1004"/>
+                                               <reference key="parent" ref="1002"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">6</int>
+                                               <reference key="object" ref="601928344"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="460331704"/>
+                                               </object>
+                                               <reference key="parent" ref="1002"/>
+                                               <string key="objectName">LynkCreation</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">7</int>
+                                               <reference key="object" ref="460331704"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="490694985"/>
+                                                       <reference ref="216298488"/>
+                                                       <reference ref="987609939"/>
+                                                       <reference ref="852592336"/>
+                                                       <reference ref="398365385"/>
+                                                       <reference ref="624416640"/>
+                                                       <reference ref="396325470"/>
+                                               </object>
+                                               <reference key="parent" ref="601928344"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">8</int>
+                                               <reference key="object" ref="490694985"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="223588969"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">9</int>
+                                               <reference key="object" ref="223588969"/>
+                                               <reference key="parent" ref="490694985"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">10</int>
+                                               <reference key="object" ref="216298488"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="595483084"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">11</int>
+                                               <reference key="object" ref="595483084"/>
+                                               <reference key="parent" ref="216298488"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">12</int>
+                                               <reference key="object" ref="396325470"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="606265604"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">13</int>
+                                               <reference key="object" ref="987609939"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1031947755"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">14</int>
+                                               <reference key="object" ref="1031947755"/>
+                                               <reference key="parent" ref="987609939"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">15</int>
+                                               <reference key="object" ref="606265604"/>
+                                               <reference key="parent" ref="396325470"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">16</int>
+                                               <reference key="object" ref="852592336"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="293618620"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">17</int>
+                                               <reference key="object" ref="293618620"/>
+                                               <reference key="parent" ref="852592336"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">18</int>
+                                               <reference key="object" ref="398365385"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="1037460050"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">19</int>
+                                               <reference key="object" ref="1037460050"/>
+                                               <reference key="parent" ref="398365385"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">20</int>
+                                               <reference key="object" ref="624416640"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="204377612"/>
+                                               </object>
+                                               <reference key="parent" ref="460331704"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">21</int>
+                                               <reference key="object" ref="204377612"/>
+                                               <reference key="parent" ref="624416640"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">22</int>
+                                               <reference key="object" ref="975034471"/>
+                                               <reference key="parent" ref="1002"/>
+                                       </object>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="flattenedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>-1.IBPluginDependency</string>
+                                       <string>-2.IBPluginDependency</string>
+                                       <string>-3.IBPluginDependency</string>
+                                       <string>10.IBAttributePlaceholdersKey</string>
+                                       <string>10.IBPluginDependency</string>
+                                       <string>11.IBPluginDependency</string>
+                                       <string>12.IBPluginDependency</string>
+                                       <string>13.IBAttributePlaceholdersKey</string>
+                                       <string>13.IBPluginDependency</string>
+                                       <string>14.IBPluginDependency</string>
+                                       <string>15.IBPluginDependency</string>
+                                       <string>16.IBPluginDependency</string>
+                                       <string>17.IBPluginDependency</string>
+                                       <string>18.IBPluginDependency</string>
+                                       <string>19.IBPluginDependency</string>
+                                       <string>20.IBPluginDependency</string>
+                                       <string>21.IBPluginDependency</string>
+                                       <string>22.IBPluginDependency</string>
+                                       <string>6.IBEditorWindowLastContentRect</string>
+                                       <string>6.IBPluginDependency</string>
+                                       <string>6.IBWindowTemplateEditedContentRect</string>
+                                       <string>6.NSWindowTemplate.visibleAtLaunch</string>
+                                       <string>6.windowTemplate.hasMaxSize</string>
+                                       <string>6.windowTemplate.hasMinSize</string>
+                                       <string>6.windowTemplate.maxSize</string>
+                                       <string>6.windowTemplate.minSize</string>
+                                       <string>7.IBPluginDependency</string>
+                                       <string>8.IBPluginDependency</string>
+                                       <string>9.IBPluginDependency</string>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilderKit</string>
+                                       <string>com.apple.InterfaceBuilderKit</string>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="216298488"/>
+                                                       <string key="toolTip">Alias that describe the link. It will be used as mount name.</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <object class="NSMutableDictionary">
+                                               <string key="NS.key.0">ToolTip</string>
+                                               <object class="IBToolTipAttribute" key="NS.object.0">
+                                                       <string key="name">ToolTip</string>
+                                                       <reference key="object" ref="987609939"/>
+                                                       <string key="toolTip">AFS path for the link destination</string>
+                                               </object>
+                                       </object>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{86, 409}, {502, 138}}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>{{86, 409}, {502, 138}}</string>
+                                       <integer value="0"/>
+                                       <integer value="1" id="9"/>
+                                       <reference ref="9"/>
+                                       <string>{800, 138}</string>
+                                       <string>{502, 138}</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               </object>
+                       </object>
+                       <object class="NSMutableDictionary" key="unlocalizedProperties">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="activeLocalization"/>
+                       <object class="NSMutableDictionary" key="localizations">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="NSArray" key="dict.sortedKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                               <object class="NSMutableArray" key="dict.values">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                               </object>
+                       </object>
+                       <nil key="sourceID"/>
+                       <int key="maxID">29</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <bool key="EncodedWithXMLCoder">YES</bool>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">AFSCommanderPref</string>
+                                       <string key="superclassName">NSPreferencePane</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addLink:</string>
+                                                       <string>addRemoveCell:</string>
+                                                       <string>afsMenuActivationEvent:</string>
+                                                       <string>aklogSwitchEvent:</string>
+                                                       <string>credentialAtLoginTimeEvent:</string>
+                                                       <string>enableLink:</string>
+                                                       <string>getNewToken:</string>
+                                                       <string>info:</string>
+                                                       <string>krb5KredentialAtLoginTimeEvent:</string>
+                                                       <string>refreshConfiguration:</string>
+                                                       <string>removeLink:</string>
+                                                       <string>saveCacheManagerParam:</string>
+                                                       <string>saveConfiguration:</string>
+                                                       <string>searchCellTextEvent:</string>
+                                                       <string>showCellIP:</string>
+                                                       <string>startStopAfs:</string>
+                                                       <string>tableDoubleAction:</string>
+                                                       <string>unlog:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>addCellButton</string>
+                                                       <string>afsCommanderView</string>
+                                                       <string>afsDB</string>
+                                                       <string>afsDefaultCellLabel</string>
+                                                       <string>afsMenucheckBox</string>
+                                                       <string>afsRootMountPoint</string>
+                                                       <string>afsVersionLabel</string>
+                                                       <string>aklogCredentialAtLoginTime</string>
+                                                       <string>buttonAddLink</string>
+                                                       <string>buttonRemoveLink</string>
+                                                       <string>cacheDimension</string>
+                                                       <string>cellIpButton</string>
+                                                       <string>cellList</string>
+                                                       <string>checkEnableLink</string>
+                                                       <string>credentialCommander</string>
+                                                       <string>credentialSheet</string>
+                                                       <string>dCacheDim</string>
+                                                       <string>daemonNumber</string>
+                                                       <string>dynRoot</string>
+                                                       <string>groupsBox</string>
+                                                       <string>infoController</string>
+                                                       <string>infoSheet</string>
+                                                       <string>installKRB5AuthAtLoginButton</string>
+                                                       <string>installationPathTextField</string>
+                                                       <string>ipConfControllerCommander</string>
+                                                       <string>ipConfigurationSheet</string>
+                                                       <string>labelSaveResult</string>
+                                                       <string>lyncCreationSheet</string>
+                                                       <string>lynkCreationController</string>
+                                                       <string>nVolEntry</string>
+                                                       <string>refreshConfigurationButton</string>
+                                                       <string>removeCellButton</string>
+                                                       <string>saveConfigurationButton</string>
+                                                       <string>startStopButton</string>
+                                                       <string>statCacheEntry</string>
+                                                       <string>textSearchField</string>
+                                                       <string>tokensButton</string>
+                                                       <string>tokensTable</string>
+                                                       <string>unlogButton</string>
+                                                       <string>useAklogCheck</string>
+                                                       <string>verbose</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>NSView</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSBox</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>LynkCreationController</string>
+                                                       <string>NSTextField</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSSearchField</string>
+                                                       <string>NSButton</string>
+                                                       <string>id</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                                       <string>NSButton</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">AFSCommanderPref.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">LynkCreationController</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="NSMutableDictionary" key="actions">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>cancell:</string>
+                                                       <string>save:</string>
+                                                       <string>selectLinkDest:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSMutableArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>lynkCreationSheet</string>
+                                                       <string>textFieldLinkDestPath</string>
+                                                       <string>textfieldLinkName</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>NSPanel</string>
+                                                       <string>NSTextField</string>
+                                                       <string>NSTextField</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">LynkCreationController.h</string>
+                                       </object>
+                               </object>
+                       </object>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.LastKnownRelativeProjectPath">../OpenAFS.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+       </data>
+</archive>
diff --git a/src/platform/DARWIN/AFSPreference/FileUtil.h b/src/platform/DARWIN/AFSPreference/FileUtil.h
new file mode 100644 (file)
index 0000000..42257ca
--- /dev/null
@@ -0,0 +1,24 @@
+//
+//  FileUtil.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#include "AuthUtil.h"
+
+@interface FileUtil : NSObject {
+       AuthUtil *autorization;
+}
+
+-(id) init;
+-(void) dealloc;
+-(OSStatus) startAutorization;
+-(OSStatus) autorizedMoveFile:(NSString*)srcPath toPath:(NSString*)dstPath;
+-(OSStatus) autorizedChown:(NSString*)filePath owner:(NSString*)owner group:(NSString*)group;
+-(OSStatus) autorizedCopy:(NSString*)srcPath toPath:(NSString*)dstPath;
+-(OSStatus) autorizedDelete:(NSString*)destFilePath;
+-(void) endAutorization;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/FileUtil.m b/src/platform/DARWIN/AFSPreference/FileUtil.m
new file mode 100644 (file)
index 0000000..6b2b5fc
--- /dev/null
@@ -0,0 +1,91 @@
+//
+//  FileUtil.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 21/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "FileUtil.h"
+
+@implementation FileUtil
+
+-(id) init;
+{
+       [super init];
+       return self;
+}
+
+-(void) dealloc
+{
+       [super dealloc];
+}
+
+// -------------------------------------------------------------------------------
+//  startAutorization:
+// -------------------------------------------------------------------------------
+-(OSStatus) startAutorization
+{
+       OSStatus err = noErr;
+       err = [[AuthUtil shared] autorize];
+       return err;
+}
+
+// -------------------------------------------------------------------------------
+//  autorizedMoveFile:
+// -------------------------------------------------------------------------------
+-(OSStatus) autorizedMoveFile:(NSString*)srcPath toPath:(NSString*)dstPath
+{
+       OSStatus status = noErr;
+       const char *arguments[] = {[srcPath UTF8String], [dstPath UTF8String], 0L};
+       status = [[AuthUtil shared] execUnixCommand:"/bin/mv" args:arguments output:nil];
+       return status;
+}
+
+// -------------------------------------------------------------------------------
+//  autorizedMoveFile:
+// -------------------------------------------------------------------------------
+-(OSStatus) autorizedCopy:(NSString*)srcPath toPath:(NSString*)dstPath
+{
+       OSStatus status = noErr;
+       const char *arguments[] = {[srcPath UTF8String], [dstPath UTF8String], 0L};
+       status = [[AuthUtil shared] execUnixCommand:"/bin/cp" args:arguments output:nil];
+       return status;
+}
+
+// -------------------------------------------------------------------------------
+//  autorizedChown:
+// -------------------------------------------------------------------------------
+-(OSStatus) autorizedChown:(NSString*)filePath owner:(NSString*)owner group:(NSString*)group;
+{
+       OSStatus status = noErr;
+       NSMutableString *chownParam = [[NSMutableString alloc] init];
+       [chownParam appendString:owner];
+       [chownParam appendString:@":"];
+       [chownParam appendString:group];
+       
+       const char *arguments[] = {[chownParam UTF8String], [filePath UTF8String],  0L};
+       status = [[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" args:arguments output:nil];
+       [chownParam release];
+       return status;
+}
+
+// -------------------------------------------------------------------------------
+//  autorizedDelete:
+// -------------------------------------------------------------------------------
+-(OSStatus) autorizedDelete:(NSString*)destFilePath{
+       OSStatus status = noErr;
+       const char *arguments[] = {[destFilePath UTF8String], 0L};
+       status = [[AuthUtil shared] execUnixCommand:"/bin/rm" args:arguments output:nil];
+       return status;
+}
+
+// -------------------------------------------------------------------------------
+//  endAutorization:
+// -------------------------------------------------------------------------------
+-(void) endAutorization
+{
+       [[AuthUtil shared] deautorize];
+}
+
+@end
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/Info.plist b/src/platform/DARWIN/AFSPreference/Info.plist
new file mode 100644 (file)
index 0000000..80459b9
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>${EXECUTABLE_NAME}</string>
+       <key>CFBundleIconFile</key>
+       <string>OpenAFS</string>
+       <key>CFBundleIdentifier</key>
+       <string>it.infn.lnf.network.openafs</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.0b</string>
+       <key>CFBundleSignature</key>
+       <string>INFN</string>
+       <key>CFBundleVersion</key>
+       <string>1.0b</string>
+       <key>NSMainNibFile</key>
+       <string>OpenAFSPreference</string>
+       <key>NSPrefPaneIconFile</key>
+       <string>AFSCommanderIcon</string>
+       <key>NSPrefPaneIconLabel</key>
+       <string>OpenAFS</string>
+       <key>NSPrincipalClass</key>
+       <string>AFSCommanderPref</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/InfoController.h b/src/platform/DARWIN/AFSPreference/InfoController.h
new file mode 100644 (file)
index 0000000..23d1d1e
--- /dev/null
@@ -0,0 +1,21 @@
+//
+//  InfoCommander.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 06/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface InfoController : NSObject {
+       id infoPanel;
+       id texEditInfo;
+       
+       NSAttributedString *htmlLicence;
+}
+- (IBAction) closePanel:(id) sender;
+- (void)showHtmlResource :(NSString*)resourcePath;
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/InfoController.m b/src/platform/DARWIN/AFSPreference/InfoController.m
new file mode 100644 (file)
index 0000000..f10f03e
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  InfoCommander.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 06/07/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "InfoController.h"
+
+
+@implementation InfoController
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (void)awakeFromNib
+{
+       NSLog(@"awakeFromNib");
+       htmlLicence = nil;
+}
+
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (void)showHtmlResource :(NSString*)resourcePath
+{
+       NSData *rtfData = [NSData dataWithContentsOfFile:resourcePath];
+       htmlLicence = [[NSAttributedString alloc] initWithRTF:rtfData 
+                                                                               documentAttributes:nil];
+       [[((NSTextView*) texEditInfo ) textStorage] setAttributedString:htmlLicence];
+}
+
+
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (IBAction) closePanel:(id) sender
+{
+       if(htmlLicence) [htmlLicence release];
+       [NSApp endSheet:infoPanel];
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.h b/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.h
new file mode 100644 (file)
index 0000000..b0e7dfa
--- /dev/null
@@ -0,0 +1,42 @@
+//
+//  IpConfiguratorCommander.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 18/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#import "DBCellElement.h"
+#import "AFSCommanderPref.h"
+@interface IpConfiguratorCommander : NSObject {
+       id confPanel;
+       id afsCommanderPref;
+       id textFieldCellName;
+       id textFieldComment;
+       id tableViewCellIP;
+       
+       id modifyButton;
+       id createButton;
+       id deleteButton;
+       
+       BOOL hasSaved;
+       DBCellElement *cellElement;
+       NSMutableArray *bkIPArray;
+       NSMutableArray *workIPArray;
+       CellIp *currentSelectedIP;
+}
+
+- (void) setWorkCell:(DBCellElement*)cell;
+- (IBAction) save:(id) sender;
+- (IBAction) cancel:(id) sender;
+- (IBAction) createNewIP:(id) sender;
+- (IBAction) cancelIP:(id) sender;
+- (BOOL) saved;
+
+- (id) getPanel;
+- (void) commitModify;
+- (void) rollbackModify;
+- (void) loadValueFromCellIPClass;
+- (void) manageTableSelection:(int)row;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m b/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m
new file mode 100644 (file)
index 0000000..668f7eb
--- /dev/null
@@ -0,0 +1,238 @@
+//
+//  IpConfiguratorCommander.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 18/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "IpConfiguratorCommander.h"
+#import "AFSCommanderPref.h"
+
+@implementation IpConfiguratorCommander
+
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (void)awakeFromNib
+{
+       NSLog(@"awakeFromNib");
+       [((NSTableView*)tableViewCellIP) setDelegate:self];
+       [((NSTableView*)tableViewCellIP) setDataSource:self];
+}
+
+// -------------------------------------------------------------------------------
+//  initWhitCell:
+// -------------------------------------------------------------------------------
+- (void) setWorkCell:(DBCellElement*)cell {
+       cellElement = cell;
+       currentSelectedIP = nil;
+}
+
+// -------------------------------------------------------------------------------
+//  save:
+// -------------------------------------------------------------------------------
+- (IBAction) save:(id) sender
+{
+       hasSaved = YES;
+       [self commitModify];
+       [NSApp endSheet:confPanel];
+}
+
+// -------------------------------------------------------------------------------
+//  commitModify:
+// -------------------------------------------------------------------------------
+- (void) commitModify
+{
+       //store the cell name
+       [cellElement setCellName:[((NSControl*) textFieldCellName) stringValue]];
+       [cellElement setCellComment:[((NSControl*) textFieldComment) stringValue]];
+       
+       NSLog(@"Deleting:\n%s",[[bkIPArray description] cString]);
+       [bkIPArray removeAllObjects];
+       NSLog(@"deleted:\n");
+       NSLog(@"Coping:\n%s",[[workIPArray description] cString]);
+       [bkIPArray setArray:workIPArray];
+       NSLog(@"Copied:\n%s",[[workIPArray description] cString]);
+       NSLog(@"Releasing:\n%s",[[workIPArray description] cString]);
+       [workIPArray release];
+       NSLog(@"Released:\n%s",[[workIPArray description] cString]);
+}
+
+// -------------------------------------------------------------------------------
+//  cancel:
+// -------------------------------------------------------------------------------
+- (IBAction) cancel:(id) sender
+{
+       hasSaved = NO;
+       [self rollbackModify];
+       [NSApp endSheet:confPanel];
+}
+
+
+// -------------------------------------------------------------------------------
+//  rollbackModify:
+// -------------------------------------------------------------------------------
+- (void) rollbackModify
+{
+       // take bkarray
+       [workIPArray release];
+       workIPArray = nil;
+}
+
+// -------------------------------------------------------------------------------
+//  createNewIP:
+// -------------------------------------------------------------------------------
+- (IBAction) createNewIP:(id) sender
+{
+       CellIp *ip = [[CellIp alloc] init];
+       [workIPArray addObject:ip];
+       [ip release];
+       currentSelectedIP = ip;
+       [((NSTableView*)tableViewCellIP) reloadData];
+       [((NSTableView *) tableViewCellIP)  scrollRowToVisible:[[cellElement getIp] count]-1];
+}
+
+// -------------------------------------------------------------------------------
+//  cancelIP:
+// -------------------------------------------------------------------------------
+- (IBAction) cancelIP:(id) sender
+{
+       [workIPArray removeObjectAtIndex:[((NSTableView*)tableViewCellIP) selectedRow]];
+       [((NSTableView*)tableViewCellIP) deselectAll:nil];
+       [self manageTableSelection:-1];
+       [((NSTableView*)tableViewCellIP) reloadData];
+
+}
+
+// -------------------------------------------------------------------------------
+//  hasSaved:
+// -------------------------------------------------------------------------------
+- (BOOL)saved
+{
+       return hasSaved;
+}
+
+// -------------------------------------------------------------------------------
+//  loadValueFromCellIPClass:
+// -------------------------------------------------------------------------------
+- (void) loadValueFromCellIPClass
+{
+       [((NSTextField*)textFieldCellName) setStringValue:[cellElement getCellName]]; 
+       [((NSTextField*)textFieldComment) setStringValue:[cellElement getCellComment]]; 
+       [((NSTableView*)tableViewCellIP) reloadData];
+}
+
+// -------------------------------------------------------------------------------
+//  manageTableSelection:
+// -------------------------------------------------------------------------------
+- (void) manageTableSelection:(int)row
+{
+       //[((NSControl*) modifyButton) setEnabled:row>=0];
+       [((NSControl*) deleteButton) setEnabled:row>=0];
+}
+
+- (id) getPanel
+{
+       return confPanel;
+}
+@end
+
+//Windows Delegator
+@implementation IpConfiguratorCommander(PanelDelegator)
+// -------------------------------------------------------------------------------
+//  windowDidBecomeKey:
+// -------------------------------------------------------------------------------
+- (void)windowDidBecomeKey:(NSNotification *)aNotification
+{
+       if(!cellElement){
+               [NSApp endSheet:confPanel];
+               return;
+       }
+       
+       bkIPArray = [cellElement getIp];
+       workIPArray = [[NSMutableArray alloc] initWithArray:bkIPArray];
+       [self loadValueFromCellIPClass];
+}
+
+// -------------------------------------------------------------------------------
+//  windowWillClose:
+// -------------------------------------------------------------------------------
+- (void)windowWillClose:(NSNotification *)aNotification 
+{
+}
+@end
+
+//Table datasource
+@implementation IpConfiguratorCommander (NSTableDataSource)
+// -------------------------------------------------------------------------------
+//  tableView:
+// -------------------------------------------------------------------------------
+- (id) tableView:(NSTableView *) aTableView
+       objectValueForTableColumn:(NSTableColumn *) aTableColumn
+                                                 row:(int) rowIndex
+{  
+       
+       NSString *result = nil;
+       //NSMutableArray *cellArray = [cellElement getIp];
+       CellIp *ipElement =  (CellIp*)[workIPArray objectAtIndex:rowIndex];
+       NSString *identifier = (NSString*)[aTableColumn identifier];
+       switch([identifier intValue]){
+               case 1:
+                       result = [ipElement getCellIp];
+                       break;
+                       
+               case 2:
+                       result = [ipElement getCellComment];
+                       break;
+                       
+       }
+       return result;  
+}
+
+// -------------------------------------------------------------------------------
+//  numberOfRowsInTableView:
+// -------------------------------------------------------------------------------
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView
+{
+       return [workIPArray count];  
+}
+
+- (void)tableView:(NSTableView *)aTable setObjectValue:(id)aData 
+   forTableColumn:(NSTableColumn *)aCol row:(int)aRow
+{
+       NSLog([aData description]);
+       CellIp *ipElement =  (CellIp*)[workIPArray objectAtIndex:aRow];
+       switch([((NSNumber*)[aCol identifier]) intValue])
+       {
+               case 1:
+                       [ipElement setCellIp:[aData description]];
+                       break;
+                       
+               case 2:
+                       [ipElement setCellComment:[aData description]];
+                       break;
+       }
+}
+@end
+
+// Table delegator
+@implementation IpConfiguratorCommander (TableDelegate)
+// -------------------------------------------------------------------------------
+//  selectionShouldChangeInTableView:
+// -------------------------------------------------------------------------------
+- (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTable
+{
+       [self manageTableSelection:[aTable selectedRow]];
+       return YES;
+}
+
+// -------------------------------------------------------------------------------
+//  tableView:
+// -------------------------------------------------------------------------------
+- (BOOL)tableView:(NSTableView *)aTable shouldSelectRow:(int)aRow
+{
+       [self manageTableSelection:aRow];
+       return YES;
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/LynkCreationController.h b/src/platform/DARWIN/AFSPreference/LynkCreationController.h
new file mode 100644 (file)
index 0000000..8a38ef4
--- /dev/null
@@ -0,0 +1,23 @@
+//
+//  LynkCreationController.h
+//  OpenAFS
+//
+//  Created by MacDeveloper on 03/06/08.
+//  Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface LynkCreationController : NSObject {
+       IBOutlet NSPanel                *lynkCreationSheet;
+       IBOutlet NSTextField    *textFieldLinkDestPath;
+       IBOutlet NSTextField    *textfieldLinkName;
+       int                                             choiceResult;
+}
+
+-(NSPanel*)getView;
+- (IBAction) save:(id) sender;
+- (IBAction) cancell:(id) sender;
+- (IBAction) selectLinkDest:(id) sender;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/LynkCreationController.m b/src/platform/DARWIN/AFSPreference/LynkCreationController.m
new file mode 100644 (file)
index 0000000..308f61c
--- /dev/null
@@ -0,0 +1,44 @@
+//
+//  LynkCreationController.m
+//  OpenAFS
+//
+//  Created by MacDeveloper on 03/06/08.
+//  Copyright 2008 __MyCompanyName__. All rights reserved.
+//
+
+#import "LynkCreationController.h"
+
+
+@implementation LynkCreationController
+
+-(NSPanel*)getView {
+       return lynkCreationSheet;
+}
+
+- (IBAction) save:(id) sender {
+       [NSApp endSheet:lynkCreationSheet];
+}
+
+- (IBAction) cancell:(id) sender{
+       [NSApp endSheet:lynkCreationSheet];
+}
+
+- (IBAction) selectLinkDest:(id) sender {
+       NSOpenPanel *openPanel = [NSOpenPanel openPanel];
+       [openPanel setCanChooseFiles:NO];
+       [openPanel setCanChooseDirectories:YES];
+       [openPanel setAllowsMultipleSelection:NO];
+       choiceResult = [openPanel runModalForTypes:nil];
+       switch(choiceResult){
+               case NSOKButton:
+                       if([[openPanel filenames] count] == 1)  {
+                               [textFieldLinkDestPath setStringValue:[[openPanel filenames] objectAtIndex:0]];
+                       }
+                       break;
+                       
+               case NSCancelButton:
+                       [textFieldLinkDestPath setStringValue:@""];
+                       break;
+       }
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Info.plist b/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Info.plist
new file mode 100644 (file)
index 0000000..efe0c9e
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleExecutable</key>
+       <string>MenuCracker</string>
+       <key>CFBundleGetInfoString</key>
+       <string>MenuCracker 1.4 Â©2001-2006, james_007_bond@users.sourceforge.net</string>
+       <key>CFBundleIdentifier</key>
+       <string>net.sourceforge.menucracker2</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>6.0</string>
+       <key>CFBundleName</key>
+       <string>MenuCracker</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.4</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>6</string>
+       <key>NSMenuExtraWidth</key>
+       <integer>0</integer>
+       <key>NSPrincipalClass</key>
+       <string>CPUExtra</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/MacOS/MenuCracker b/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/MacOS/MenuCracker
new file mode 100755 (executable)
index 0000000..c85b89c
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/MacOS/MenuCracker differ
diff --git a/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Resources/ReadMe.rtf b/src/platform/DARWIN/AFSPreference/MenuCracker.menu/Contents/Resources/ReadMe.rtf
new file mode 100644 (file)
index 0000000..d635393
--- /dev/null
@@ -0,0 +1,51 @@
+{\rtf1\mac\ansicpg10000\cocoartf102
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;\f2\fnil\fcharset77 Monaco;
+}
+{\colortbl;\red255\green255\blue255;\red118\green15\blue80;\red0\green0\blue255;\red35\green110\blue37;
+}
+\margl1440\margr1440\vieww17140\viewh9140\viewkind0
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
+
+\f0\fs24 \cf0 Welcome to 
+\f1\b MenuCracker
+\f0\b0 .\
+\
+Menu cracker is a little tool to reenable the menu extra that Apple closed in Mac OS X 10.2 (code named Jaguar). Using MenuCracker you can use all your 10.1 Menu Extras unmodified.\
+\
+If you are an end user and you just want to make sure everything works as it was before 10.2:\
+\
+- first copy MenuCracker.menu anywhere in your home directory (Applications and Library/Bundles are relatively good choices)\
+\
+- Then double click on the installed version or drag it to the menubar.\
+\
+That's it.\
+\
+From then on all your third party menu extra will work.\
+\
+If you are a developer and your menu extra is controlled by an application there is some work for you to do. First add the MenuCracker binary to the resource folder of your application or preference pane. Then before calling 
+\f2\fs20 \CocoaLigature0 CoreMenuExtraAddMenuExtra() 
+\f0\fs24 \CocoaLigature1 for your menu extra execute the following code:\
+\
+\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\li1440\fi-1440\ql\qnatural
+
+\f2\fs20 \cf0 \CocoaLigature0     NSString *menuExtraPath = [[[\cf2 self\cf0  bundle] resourcePath] stringByAppendingPathComponent:@"MenuCracker.menu"];\
+    CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)menuExtraPath, kCFURLPOSIXPathStyle, \cf2 NO\cf0 );\
+\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\li960\fi-960\ql\qnatural
+\cf0     \cf2 unsigned\cf0  \cf2 int\cf0  outExtra;\
+\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\li1440\fi-1440\ql\qnatural
+\cf0 \
+    CoreMenuExtraAddMenuExtra(url, 0, \cf3 0\cf0 , \cf2 nil\cf0 , \cf3 0\cf0 , &outExtra);\
+\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\li1920\fi-1920\ql\qnatural
+\cf0         
+\f0\fs24 \cf4 // Do not check the return value as it is always going to return an error
+\f2\fs20 \cf0 \
+\pard\tx480\tx960\tx1440\tx1920\tx2400\tx2880\tx3360\tx3840\tx4320\tx4800\tx5280\tx5760\tx6240\tx6720\tx7200\tx7680\tx8160\tx8640\tx9120\tx9600\tx10080\tx10560\tx11040\tx11520\tx12000\tx12480\tx12960\tx13440\tx13920\tx14400\tx14880\tx15360\tx15840\tx16320\tx16800\tx17280\tx17760\tx18240\tx18720\tx19200\tx19680\tx20160\tx20640\tx21120\tx21600\tx22080\tx22560\tx23040\tx23520\tx24000\tx24480\tx24960\tx25440\tx25920\tx26400\tx26880\tx27360\tx27840\tx28320\tx28800\tx29280\tx29760\tx30240\tx30720\tx31200\tx31680\tx32160\tx32640\tx33120\tx33600\tx34080\tx34560\tx35040\tx35520\tx36000\tx36480\tx36960\tx37440\tx37920\tx38400\tx38880\tx39360\tx39840\tx40320\tx40800\tx41280\tx41760\tx42240\tx42720\tx43200\tx43680\tx44160\tx44640\tx45120\tx45600\tx46080\tx46560\tx47040\tx47520\tx48000\li1440\fi-1440\ql\qnatural
+\cf0     CFRelease(url);\
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
+
+\f0\fs24 \cf0 \CocoaLigature1 \
+That's it.\
+\
+You can find the latest version of MenuCracker at http://sourceforge.net/projects/menucracker.\
+\
+-- james_007_bond @ users.sourceforge.net}
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/NSString+search.h b/src/platform/DARWIN/AFSPreference/NSString+search.h
new file mode 100644 (file)
index 0000000..4065eed
--- /dev/null
@@ -0,0 +1,28 @@
+//
+//  NSString+search.h
+//  AFSCommander
+//
+//  Created by MacDeveloper on 18/03/08.
+//   Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+
+/*!
+    @category   NSString (search)
+    @abstract    Implements some function for searching something into string
+    @discussion  <#(comprehensive description)#>
+*/
+@interface NSString (search) 
+/*!
+ @function      estractTokenByDelimiter
+ @abstract   Extract a string enclosed by two token
+ @discussion <#(description)#>
+ @param      startToken - start token where the string to get begin
+ @param      endTk - end token where the string to get begin
+ @result     the found string
+ */
+-(NSString*) estractTokenByDelimiter:(NSString*)startToken endToken:(NSString*)endTk;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/NSString+search.m b/src/platform/DARWIN/AFSPreference/NSString+search.m
new file mode 100644 (file)
index 0000000..631a4bf
--- /dev/null
@@ -0,0 +1,26 @@
+//
+//  NSString+search.m
+//  AFSCommander
+//
+//  Created by MacDeveloper on 18/03/08.
+//   Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "NSString+search.h"
+
+
+@implementation NSString(search)
+
+-(NSString*) estractTokenByDelimiter:(NSString*)startToken endToken:(NSString*)endTk {
+       NSString *result = nil;
+       NSScanner *strScan = [NSScanner scannerWithString:self];
+       if(!endTk) return nil;
+       //make the CharacterSet for scanner
+       
+       if(startToken) [strScan scanUpToString:startToken intoString:&result];
+       [strScan scanUpToString:endTk intoString:&result];
+       if(startToken) result = [result substringFromIndex:[startToken length]];
+       return result;
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/bisegni.mode1 b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/bisegni.mode1
new file mode 100644 (file)
index 0000000..1ab5b1a
--- /dev/null
@@ -0,0 +1,1439 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>ActivePerspectiveName</key>
+       <string>Project</string>
+       <key>AllowedModules</key>
+       <array>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXSmartGroupTreeModule</string>
+                       <key>Name</key>
+                       <string>Groups and Files Outline View</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXNavigatorGroup</string>
+                       <key>Name</key>
+                       <string>Editor</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCTaskListModule</string>
+                       <key>Name</key>
+                       <string>Task List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDetailModule</string>
+                       <key>Name</key>
+                       <string>File and Smart Group Detail Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXBuildResultsModule</string>
+                       <key>Name</key>
+                       <string>Detailed Build Results Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXProjectFindModule</string>
+                       <key>Name</key>
+                       <string>Project Batch Find Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXRunSessionModule</string>
+                       <key>Name</key>
+                       <string>Run Log</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXBookmarksModule</string>
+                       <key>Name</key>
+                       <string>Bookmarks Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXClassBrowserModule</string>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXCVSModule</string>
+                       <key>Name</key>
+                       <string>Source Code Control Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXDebugBreakpointsModule</string>
+                       <key>Name</key>
+                       <string>Debug Breakpoints Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDockableInspector</string>
+                       <key>Name</key>
+                       <string>Inspector</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXOpenQuicklyModule</string>
+                       <key>Name</key>
+                       <string>Open Quickly Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugSessionModule</string>
+                       <key>Name</key>
+                       <string>Debugger</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugCLIModule</string>
+                       <key>Name</key>
+                       <string>Debug Console</string>
+               </dict>
+       </array>
+       <key>Description</key>
+       <string>DefaultDescriptionKey</string>
+       <key>DockingSystemVisible</key>
+       <false/>
+       <key>Extension</key>
+       <string>mode1</string>
+       <key>FavBarConfig</key>
+       <dict>
+               <key>PBXProjectModuleGUID</key>
+               <string>3213E8430BF3E63C0010360B</string>
+               <key>XCBarModuleItemNames</key>
+               <dict/>
+               <key>XCBarModuleItems</key>
+               <array/>
+       </dict>
+       <key>FirstTimeWindowDisplayed</key>
+       <false/>
+       <key>Identifier</key>
+       <string>com.apple.perspectives.project.mode1</string>
+       <key>MajorVersion</key>
+       <integer>31</integer>
+       <key>MinorVersion</key>
+       <integer>1</integer>
+       <key>Name</key>
+       <string>Default</string>
+       <key>Notifications</key>
+       <array/>
+       <key>OpenEditors</key>
+       <array/>
+       <key>PerspectiveWidths</key>
+       <array>
+               <integer>-1</integer>
+               <integer>-1</integer>
+       </array>
+       <key>Perspectives</key>
+       <array>
+               <dict>
+                       <key>ChosenToolbarItems</key>
+                       <array>
+                               <string>active-target-popup</string>
+                               <string>active-buildstyle-popup</string>
+                               <string>action</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>buildOrClean</string>
+                               <string>build-and-runOrDebug</string>
+                               <string>com.apple.ide.PBXToolbarStopButton</string>
+                               <string>get-info</string>
+                               <string>toggle-editor</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>com.apple.pbx.toolbar.searchfield</string>
+                       </array>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProjectWithEditor</string>
+                       <key>Identifier</key>
+                       <string>perspective.project</string>
+                       <key>IsVertical</key>
+                       <false/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>BecomeActive</key>
+                                       <true/>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>22</real>
+                                                               <real>22</real>
+                                                               <real>309</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>SCMStatusColumn</string>
+                                                               <string>TargetStatusColumn</string>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>089C166AFE841209C02AAC07</string>
+                                                               <string>08FB77AFFE84173DC02AAC07</string>
+                                                               <string>3212AA7F0C27AC2800A0689C</string>
+                                                               <string>3219259A0C339C1F00B55E86</string>
+                                                               <string>494BD47A0C43EDD400DB0A3A</string>
+                                                               <string>4941F62F0C49377000B29A73</string>
+                                                               <string>325313A10C4515A700FAF2F3</string>
+                                                               <string>32DBCFA10370C40200C91783</string>
+                                                               <string>089C167CFE841241C02AAC07</string>
+                                                               <string>32B0AFB40C016E6900272348</string>
+                                                               <string>19C28FB8FE9D52D311CA2CBB</string>
+                                                               <string>1C37FBAC04509CD000000102</string>
+                                                               <string>1C37FAAC04509CD000000102</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>48</integer>
+                                                                       <integer>47</integer>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 41}, {353, 1064}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <true/>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {370, 1082}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>SCMStatusColumn</string>
+                                                       <real>22</real>
+                                                       <string>TargetStatusColumn</string>
+                                                       <real>22</real>
+                                                       <string>MainColumn</string>
+                                                       <real>309</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>53 55 1264 1123 0 0 1920 1178 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>370pt</string>
+                               </dict>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20306471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Localizable.strings</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CE0B20406471E060097A5F4</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>Localizable.strings</string>
+                                                                               <key>_historyCapacity</key>
+                                                                               <integer>0</integer>
+                                                                               <key>bookmark</key>
+                                                                               <string>322F65490C9AF64400B937CC</string>
+                                                                               <key>history</key>
+                                                                               <array>
+                                                                                       <string>323DFED60C0B2C9C000350E8</string>
+                                                                                       <string>32C4A9190C268A03009280A0</string>
+                                                                                       <string>32C4AB110C26D6D6009280A0</string>
+                                                                                       <string>3259409D0C26F85400040E5A</string>
+                                                                                       <string>3212AB240C27C12800A0689C</string>
+                                                                                       <string>322381E80C3273AE00380547</string>
+                                                                                       <string>3223832D0C32A51B00380547</string>
+                                                                                       <string>322383FA0C32AF4200380547</string>
+                                                                                       <string>321926E20C33EC0700B55E86</string>
+                                                                                       <string>322884390C3E477C00E778CC</string>
+                                                                                       <string>3228845D0C3E48AA00E778CC</string>
+                                                                                       <string>322884E40C3E6F4400E778CC</string>
+                                                                                       <string>325311BA0C44F3B500FAF2F3</string>
+                                                                                       <string>325311BB0C44F3B500FAF2F3</string>
+                                                                                       <string>325311BC0C44F3B500FAF2F3</string>
+                                                                                       <string>325311BD0C44F3B500FAF2F3</string>
+                                                                                       <string>325311BE0C44F3B500FAF2F3</string>
+                                                                                       <string>325312CE0C45140300FAF2F3</string>
+                                                                                       <string>325312CF0C45140300FAF2F3</string>
+                                                                                       <string>325313890C45154E00FAF2F3</string>
+                                                                                       <string>3279B9450C4519AA008FE3FA</string>
+                                                                                       <string>3279B9BE0C4524D3008FE3FA</string>
+                                                                                       <string>3279BA480C452A61008FE3FA</string>
+                                                                                       <string>3279BA9C0C452DFB008FE3FA</string>
+                                                                                       <string>3279BAA00C4530C5008FE3FA</string>
+                                                                                       <string>32D45E420C4F4FE500A1012D</string>
+                                                                                       <string>32D45E450C4F4FE500A1012D</string>
+                                                                                       <string>32922CD00C4F882800A95641</string>
+                                                                                       <string>32922CD10C4F882800A95641</string>
+                                                                                       <string>32922CD20C4F882800A95641</string>
+                                                                                       <string>32922D4D0C4F8EA400A95641</string>
+                                                                                       <string>32922D6D0C4FA65A00A95641</string>
+                                                                                       <string>32922D840C4FA75900A95641</string>
+                                                                                       <string>32922D970C4FB32500A95641</string>
+                                                                                       <string>32F2DD100C54870900655773</string>
+                                                                                       <string>32F2DD110C54870900655773</string>
+                                                                                       <string>3241DEDF0C97E0E1000AEF82</string>
+                                                                                       <string>322F653F0C9AF5BC00B937CC</string>
+                                                                                       <string>322F65400C9AF5BC00B937CC</string>
+                                                                                       <string>322384170C32C2CC00380547</string>
+                                                                               </array>
+                                                                               <key>prevStack</key>
+                                                                               <array>
+                                                                                       <string>3213E83B0BF3E63C0010360B</string>
+                                                                                       <string>3213E83C0BF3E63C0010360B</string>
+                                                                                       <string>3213E83D0BF3E63C0010360B</string>
+                                                                                       <string>323DFEA80C0B1CB3000350E8</string>
+                                                                                       <string>32C4A8770C268649009280A0</string>
+                                                                                       <string>32C4A88B0C268717009280A0</string>
+                                                                                       <string>32C4A88C0C268717009280A0</string>
+                                                                                       <string>32C4A8FE0C2689B2009280A0</string>
+                                                                                       <string>32C4A8FF0C2689B2009280A0</string>
+                                                                                       <string>32C4A9010C2689B2009280A0</string>
+                                                                                       <string>32C4A9750C268F07009280A0</string>
+                                                                                       <string>32C4A9780C268F07009280A0</string>
+                                                                                       <string>325940A70C26F85400040E5A</string>
+                                                                                       <string>3212AA740C27AB8700A0689C</string>
+                                                                                       <string>3212AB2B0C27C12800A0689C</string>
+                                                                                       <string>322381EC0C3273AE00380547</string>
+                                                                                       <string>322381ED0C3273AE00380547</string>
+                                                                                       <string>322381EE0C3273AE00380547</string>
+                                                                                       <string>322382250C3296C600380547</string>
+                                                                                       <string>322383320C32A51B00380547</string>
+                                                                                       <string>322383FD0C32AF4200380547</string>
+                                                                                       <string>3223841E0C32C2CC00380547</string>
+                                                                                       <string>321925C90C33A85700B55E86</string>
+                                                                                       <string>321925CB0C33A85700B55E86</string>
+                                                                                       <string>3228840D0C3E45E700E778CC</string>
+                                                                                       <string>3228842F0C3E469000E778CC</string>
+                                                                                       <string>325311CC0C44F3B500FAF2F3</string>
+                                                                                       <string>325311DD0C44F56A00FAF2F3</string>
+                                                                                       <string>325312050C44F76800FAF2F3</string>
+                                                                                       <string>325312D50C45140300FAF2F3</string>
+                                                                                       <string>325312D60C45140300FAF2F3</string>
+                                                                                       <string>325312D70C45140300FAF2F3</string>
+                                                                                       <string>3279B9260C45194F008FE3FA</string>
+                                                                                       <string>3279B9490C4519AA008FE3FA</string>
+                                                                                       <string>3279BA9E0C452DFB008FE3FA</string>
+                                                                                       <string>32D45E4C0C4F4FE500A1012D</string>
+                                                                                       <string>32D45E4D0C4F4FE500A1012D</string>
+                                                                                       <string>32D45E4E0C4F4FE500A1012D</string>
+                                                                                       <string>32D45E530C4F4FE500A1012D</string>
+                                                                                       <string>32F2DD140C54870900655773</string>
+                                                                                       <string>322F65410C9AF5BC00B937CC</string>
+                                                                                       <string>322F65420C9AF5BC00B937CC</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {889, 872}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>53 55 1264 1123 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>872pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20506471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 877}, {889, 205}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>53 55 1264 1123 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>205pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>889pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCModuleDock</string>
+                               <string>PBXNavigatorGroup</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>322F65380C9AF59500B937CC</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>322F65390C9AF59500B937CC</string>
+                               <string>1CE0B20306471E060097A5F4</string>
+                               <string>1CE0B20506471E060097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.default</string>
+               </dict>
+               <dict>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProject</string>
+                       <key>Identifier</key>
+                       <string>perspective.morph</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>BecomeActive</key>
+                                       <integer>1</integer>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>11E0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>186</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>29B97314FDCFA39411CA2CEA</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {186, 337}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <integer>1</integer>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {203, 355}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>186</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>373 269 690 397 0 0 1440 878 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Morph</string>
+                       <key>PreferredWidth</key>
+                       <integer>300</integer>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>11E0B1FE06471DED0097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.default.short</string>
+               </dict>
+       </array>
+       <key>PerspectivesBarVisible</key>
+       <false/>
+       <key>ShelfIsVisible</key>
+       <false/>
+       <key>SourceDescription</key>
+       <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+       <key>StatusbarIsVisible</key>
+       <true/>
+       <key>TimeStamp</key>
+       <real>0.0</real>
+       <key>ToolbarDisplayMode</key>
+       <integer>1</integer>
+       <key>ToolbarIsVisible</key>
+       <true/>
+       <key>ToolbarSizeMode</key>
+       <integer>1</integer>
+       <key>Type</key>
+       <string>Perspectives</string>
+       <key>UpdateMessage</key>
+       <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+       <key>WindowJustification</key>
+       <integer>5</integer>
+       <key>WindowOrderList</key>
+       <array>
+               <string>323DFE5E0C0B173F000350E8</string>
+               <string>/Users/bisegni/svnrepo/AFSCommander/AFSCommander.xcodeproj</string>
+       </array>
+       <key>WindowString</key>
+       <string>53 55 1264 1123 0 0 1920 1178 </string>
+       <key>WindowTools</key>
+       <array>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.build</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528F0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string></string>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {1307, 396}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>342 266 1307 912 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>396pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXBuildLogShowsTranscriptDefaultKey</key>
+                                                               <string>{{0, 5}, {1307, 465}}</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>XCMainBuildResultsModuleGUID</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Build</string>
+                                                               <key>XCBuildResultsTrigger_Collapse</key>
+                                                               <integer>1021</integer>
+                                                               <key>XCBuildResultsTrigger_Open</key>
+                                                               <integer>1011</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 401}, {1307, 470}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>342 266 1307 912 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBuildResultsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>470pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>871pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Build Results</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBuildResultsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>323DFE5E0C0B173F000350E8</string>
+                               <string>322F65440C9AF5BC00B937CC</string>
+                               <string>1CD0528F0623707200166675</string>
+                               <string>XCMainBuildResultsModuleGUID</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.build</string>
+                       <key>WindowString</key>
+                       <string>342 266 1307 912 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>323DFE5E0C0B173F000350E8</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.debugger</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>Debugger</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {150, 432}}</string>
+                                                                                       <string>{{150, 0}, {921, 432}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {1071, 432}}</string>
+                                                                                       <string>{{0, 432}, {1071, 459}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>8</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C162984064C10D400B95A72</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debug - GLUTExamples (Underwater)</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>DebugConsoleDrawerSize</key>
+                                                               <string>{100, 120}</string>
+                                                               <key>DebugConsoleVisible</key>
+                                                               <string>None</string>
+                                                               <key>DebugConsoleWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>DebugSTDIOWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {1071, 891}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>519 246 1071 932 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>891pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>891pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CD10A99069EF8BA00B06720</string>
+                               <string>322884AF0C3E4B1600E778CC</string>
+                               <string>1C162984064C10D400B95A72</string>
+                               <string>322884B00C3E4B1600E778CC</string>
+                               <string>322884B10C3E4B1600E778CC</string>
+                               <string>322884B20C3E4B1600E778CC</string>
+                               <string>322884B30C3E4B1600E778CC</string>
+                               <string>322884B40C3E4B1600E778CC</string>
+                               <string>322884B50C3E4B1600E778CC</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debug</string>
+                       <key>WindowString</key>
+                       <string>519 246 1071 932 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CD10A99069EF8BA00B06720</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.find</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Dock</key>
+                                                       <array>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CDD528C0622207200134675</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string></string>
+                                                                               <key>StatusBarVisibility</key>
+                                                                               <true/>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{0, 0}, {781, 212}}</string>
+                                                                               <key>RubberWindowFrame</key>
+                                                                               <string>62 685 781 470 0 0 1920 1178 </string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXNavigatorGroup</string>
+                                                                       <key>Proportion</key>
+                                                                       <string>781pt</string>
+                                                               </dict>
+                                                       </array>
+                                                       <key>Proportion</key>
+                                                       <string>212pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528E0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Project Find</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 217}, {781, 212}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>62 685 781 470 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXProjectFindModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>212pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>429pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Find</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXProjectFindModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C530D57069F1CE1000CFCEE</string>
+                               <string>321926770C33DF7E00B55E86</string>
+                               <string>321926780C33DF7E00B55E86</string>
+                               <string>1CDD528C0622207200134675</string>
+                               <string>1CD0528E0623707200166675</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>62 685 781 470 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C530D57069F1CE1000CFCEE</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>MENUSEPARATOR</string>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.debuggerConsole</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAAC065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debugger Console</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {578, 500}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>1342 637 578 541 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugCLIModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>500pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>500pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger Console</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugCLIModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>325A0B160C291AFC007B198B</string>
+                               <string>321926950C33E0EE00B55E86</string>
+                               <string>1C78EAAC065D492600B07095</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>1342 637 578 541 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>325A0B160C291AFC007B198B</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.run</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>3</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528B0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Run</string>
+                                                               <key>Runner</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {493, 167}}</string>
+                                                                                       <string>{{0, 176}, {493, 267}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {405, 443}}</string>
+                                                                                       <string>{{414, 0}, {514, 443}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {530, 159}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>1389 978 530 200 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXRunSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>159pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>159pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Run Log</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXRunSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C0AD2B3069F1EA900FABCE6</string>
+                               <string>32B3AF7C0C2A4C9100CB8686</string>
+                               <string>1CD0528B0623707200166675</string>
+                               <string>32B3AF7D0C2A4C9100CB8686</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.run</string>
+                       <key>WindowString</key>
+                       <string>1389 978 530 200 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C0AD2B3069F1EA900FABCE6</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.scm</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAB2065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string></string>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {998, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>87 268 998 887 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD052920623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>SCM Results</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 5}, {998, 841}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>87 268 998 887 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXCVSModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>841pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>846pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>SCM</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXCVSModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>3259408D0C26F72A00040E5A</string>
+                               <string>327E2EEC0C280DA1007E8712</string>
+                               <string>1C78EAB2065D492600B07095</string>
+                               <string>1CD052920623707200166675</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.scm</string>
+                       <key>WindowString</key>
+                       <string>87 268 998 887 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>3259408D0C26F72A00040E5A</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.breakpoints</string>
+                       <key>IsVertical</key>
+                       <false/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXBottomSmartGroupGIDs</key>
+                                                               <array>
+                                                                       <string>1C77FABC04509CD000000102</string>
+                                                               </array>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Files</string>
+                                                               <key>PBXProjectStructureProvided</key>
+                                                               <string>no</string>
+                                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                                       <array>
+                                                                               <real>168</real>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                                       <array>
+                                                                               <string>MainColumn</string>
+                                                                       </array>
+                                                               </dict>
+                                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                                       <array>
+                                                                               <string>1C77FABC04509CD000000102</string>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                                       <array>
+                                                                               <array>
+                                                                                       <integer>0</integer>
+                                                                               </array>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                                       <string>{{0, 0}, {168, 350}}</string>
+                                                               </dict>
+                                                               <key>PBXTopSmartGroupGIDs</key>
+                                                               <array/>
+                                                               <key>XCIncludePerspectivesSwitch</key>
+                                                               <false/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {185, 368}}</string>
+                                                               <key>GroupTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>MainColumn</string>
+                                                                       <real>168</real>
+                                                               </array>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>226 582 744 409 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXSmartGroupTreeModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>185pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA1AED706398EBD00589147</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{190, 0}, {554, 368}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>226 582 744 409 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>554pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>368pt</string>
+                               </dict>
+                       </array>
+                       <key>MajorVersion</key>
+                       <integer>2</integer>
+                       <key>MinorVersion</key>
+                       <integer>0</integer>
+                       <key>Name</key>
+                       <string>Breakpoints</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>32E9C9760C2BF29A0028F051</string>
+                               <string>32E9C9770C2BF29A0028F051</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CA1AED706398EBD00589147</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.breakpoints</string>
+                       <key>WindowString</key>
+                       <string>226 582 744 409 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>32E9C9760C2BF29A0028F051</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugAnimator</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debug Visualizer</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXNavigatorGroup</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugAnimator</string>
+                       <key>WindowString</key>
+                       <string>100 100 700 500 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.bookmarks</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBookmarksModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Bookmarks</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBookmarksModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowString</key>
+                       <string>538 42 401 187 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.classBrowser</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>OptionsSetName</key>
+                                                               <string>Hierarchy, project classes</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA6456E063B45B4001379D8</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Class Browser - NSObject</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ClassesFrame</key>
+                                                               <string>{{0, 0}, {378, 96}}</string>
+                                                               <key>ClassesTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXClassNameColumnIdentifier</string>
+                                                                       <real>208</real>
+                                                                       <string>PBXClassBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {630, 332}}</string>
+                                                               <key>MembersFrame</key>
+                                                               <string>{{0, 101}, {378, 231}}</string>
+                                                               <key>MembersTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXMemberTypeIconColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                                       <string>PBXMemberNameColumnIdentifier</string>
+                                                                       <real>216</real>
+                                                                       <string>PBXMemberTypeColumnIdentifier</string>
+                                                                       <real>101</real>
+                                                                       <string>PBXMemberBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>547 674 630 352 0 0 1920 1178 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXClassBrowserModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>332pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>332pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXClassBrowserModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <false/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C0AD2AF069F1E9B00FABCE6</string>
+                               <string>325940910C26F7D700040E5A</string>
+                               <string>1CA6456E063B45B4001379D8</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.classbrowser</string>
+                       <key>WindowString</key>
+                       <string>547 674 630 352 0 0 1920 1178 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C0AD2AF069F1E9B00FABCE6</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+       </array>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj
new file mode 100644 (file)
index 0000000..dc0e301
--- /dev/null
@@ -0,0 +1,1254 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 42;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               3213E9410C2ABFD200D3D2F6 /* AuthUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 3213E93F0C2ABFD200D3D2F6 /* AuthUtil.h */; };
+               3213E9420C2ABFD200D3D2F6 /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
+               3219259D0C339DAE00B55E86 /* TokenCredentialController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3219259C0C339DAE00B55E86 /* TokenCredentialController.m */; };
+               3223836C0C32A96F00380547 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3223836A0C32A96F00380547 /* Localizable.strings */; };
+               322884030C3E45C800E778CC /* InfoController.h in Headers */ = {isa = PBXBuildFile; fileRef = 322884010C3E45C800E778CC /* InfoController.h */; };
+               322884040C3E45C800E778CC /* InfoController.m in Sources */ = {isa = PBXBuildFile; fileRef = 322884020C3E45C800E778CC /* InfoController.m */; };
+               322884050C3E45C800E778CC /* InfoController.m in Sources */ = {isa = PBXBuildFile; fileRef = 322884020C3E45C800E778CC /* InfoController.m */; };
+               322B90450C2F0A2D0068F99A /* start_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90430C2F0A2D0068F99A /* start_afs.sh */; };
+               322B90460C2F0A2D0068F99A /* stop_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90440C2F0A2D0068F99A /* stop_afs.sh */; };
+               322CEF600C211D220060D66D /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
+               322CEF6E0C211DCC0060D66D /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
+               324D67FD0DA13194007E1561 /* OpenAFSPreference.xib in Resources */ = {isa = PBXBuildFile; fileRef = 324D67FB0DA13194007E1561 /* OpenAFSPreference.xib */; };
+               324D683D0DA133A3007E1561 /* IpPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 324D683B0DA133A3007E1561 /* IpPanel.xib */; };
+               324D684A0DA133CF007E1561 /* CredentialPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 324D68480DA133CF007E1561 /* CredentialPanel.xib */; };
+               325311AB0C44F38200FAF2F3 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
+               325311AF0C44F38D00FAF2F3 /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
+               325311B00C44F38D00FAF2F3 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
+               325311B10C44F39200FAF2F3 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+               325311B20C44F39300FAF2F3 /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
+               325311B30C44F39400FAF2F3 /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
+               325311D00C44F4B100FAF2F3 /* licenza.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 325311CF0C44F4B100FAF2F3 /* licenza.rtf */; };
+               325312190C44F7BD00FAF2F3 /* AFSMenuExtraView.m in Sources */ = {isa = PBXBuildFile; fileRef = 325312180C44F7BD00FAF2F3 /* AFSMenuExtraView.m */; };
+               325313520C45153400FAF2F3 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
+               325313550C45153500FAF2F3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
+               3253138D0C45157A00FAF2F3 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+               325313B10C4516A900FAF2F3 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 325313B00C4516A900FAF2F3 /* Info.plist */; };
+               3273088D0C2A9B05008C322B /* FileUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 3273088B0C2A9B05008C322B /* FileUtil.h */; };
+               3273088E0C2A9B05008C322B /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
+               327308C30C2AA2E1008C322B /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
+               327308D70C2AA364008C322B /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
+               327308D80C2AA369008C322B /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
+               327309970C2AB433008C322B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
+               327309980C2AB434008C322B /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
+               327756270C3053A100C15D11 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+               327756280C3053A100C15D11 /* TaskUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 327756250C3053A100C15D11 /* TaskUtil.h */; };
+               327756290C3053A100C15D11 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+               32B0AFDF0C01729400272348 /* AFSPropertyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B0AFDD0C01729400272348 /* AFSPropertyManager.h */; };
+               32B0AFE00C01729400272348 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
+               32B565740D8FAF62005255F2 /* NSString+search.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B565720D8FAF62005255F2 /* NSString+search.h */; };
+               32B565750D8FAF62005255F2 /* NSString+search.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B565730D8FAF62005255F2 /* NSString+search.m */; };
+               32B565760D8FAF62005255F2 /* NSString+search.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B565730D8FAF62005255F2 /* NSString+search.m */; };
+               32C4A9580C268D9B009280A0 /* IpConfiguratorCommander.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C4A9570C268D9B009280A0 /* IpConfiguratorCommander.m */; };
+               32C4A9B80C26A0FA009280A0 /* IpConfiguratorCommander.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C4A9570C268D9B009280A0 /* IpConfiguratorCommander.m */; };
+               32C4A9B90C26A0FB009280A0 /* IpConfiguratorCommander.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C4A9560C268D9B009280A0 /* IpConfiguratorCommander.h */; };
+               32CF013F0C203C5600A8DC58 /* TestLib.m in Sources */ = {isa = PBXBuildFile; fileRef = 32CFFEFD0C20316B00A8DC58 /* TestLib.m */; };
+               32CF01460C203CA800A8DC58 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
+               32CF014C0C203CBD00A8DC58 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+               32D45E070C4B4D9C00A1012D /* afshlp in Resources */ = {isa = PBXBuildFile; fileRef = 49683EE40C3446380093C7C8 /* afshlp */; };
+               32DE818C0DF573200069A05C /* LynkCreationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 32DE818A0DF573200069A05C /* LynkCreationController.h */; };
+               32DE818D0DF573200069A05C /* LynkCreationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 32DE818B0DF573200069A05C /* LynkCreationController.m */; };
+               32DE81BD0DF57BDA0069A05C /* SymLinkEdit.xib in Resources */ = {isa = PBXBuildFile; fileRef = 32DE81BC0DF57BDA0069A05C /* SymLinkEdit.xib */; };
+               492AFA860C51301D00AEDC93 /* TokenCredentialController.h in Headers */ = {isa = PBXBuildFile; fileRef = 3219259B0C339DAE00B55E86 /* TokenCredentialController.h */; };
+               492AFA870C51301E00AEDC93 /* TokenCredentialController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3219259C0C339DAE00B55E86 /* TokenCredentialController.m */; };
+               492AFB280C51483600AEDC93 /* CredentialWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = 492AFB270C51483600AEDC93 /* CredentialWindow.nib */; };
+               4934D4170DC38958000511D2 /* PListManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 498DCB420DC2240B00D143C8 /* PListManager.m */; };
+               493564E80CE711F300699A24 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 493564E70CE711F300699A24 /* Carbon.framework */; };
+               4940075B0CE62EB500F40D0A /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4940075A0CE62EB500F40D0A /* CoreServices.framework */; };
+               4941F4C00C491D2D00B29A73 /* TokenCredentialController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3219259C0C339DAE00B55E86 /* TokenCredentialController.m */; };
+               4941F5100C4929C000B29A73 /* AFSMenuCredentialContoller.m in Sources */ = {isa = PBXBuildFile; fileRef = 4941F50F0C4929C000B29A73 /* AFSMenuCredentialContoller.m */; };
+               4941F6320C49379000B29A73 /* CredentialWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4941F6310C49379000B29A73 /* CredentialWindowController.m */; };
+               494435170DC35D4C00C7A333 /* LoginTimeDaemon in Resources */ = {isa = PBXBuildFile; fileRef = 4998A6860DC33BEC00146652 /* LoginTimeDaemon */; };
+               494BD4880C43EEA400DB0A3A /* SystemUIPlugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 494BD4870C43EEA400DB0A3A /* SystemUIPlugin.framework */; };
+               494BD48C0C43EEC300DB0A3A /* AFSMenuExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 494BD48B0C43EEC300DB0A3A /* AFSMenuExtra.m */; };
+               494C75110C4605C000D3A2D2 /* AFSMenuExtra.menu in Resources */ = {isa = PBXBuildFile; fileRef = 494C74DE0C46052800D3A2D2 /* AFSMenuExtra.menu */; };
+               49575BB50C53CBDB00B3BC32 /* hasToken.png in Resources */ = {isa = PBXBuildFile; fileRef = 49575BB30C53CBDB00B3BC32 /* hasToken.png */; };
+               49575BB60C53CBDB00B3BC32 /* noToken.png in Resources */ = {isa = PBXBuildFile; fileRef = 49575BB40C53CBDB00B3BC32 /* noToken.png */; };
+               495B04400D219A2900F1E328 /* ViewUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 495B043E0D219A2900F1E328 /* ViewUtility.h */; };
+               495B04410D219A2900F1E328 /* ViewUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 495B043F0D219A2900F1E328 /* ViewUtility.m */; };
+               495B04420D219A2900F1E328 /* ViewUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 495B043F0D219A2900F1E328 /* ViewUtility.m */; };
+               495C39470D81EA3C003426FC /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
+               495C39480D81EA3C003426FC /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
+               495C39490D81EA3C003426FC /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
+               495C39CC0D81F742003426FC /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
+               49683EEC0C3446600093C7C8 /* afshlp.m in Sources */ = {isa = PBXBuildFile; fileRef = 49683EEB0C3446600093C7C8 /* afshlp.m */; };
+               49683F3D0C344CD40093C7C8 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
+               49683F3E0C344CD50093C7C8 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
+               49683F3F0C344CD70093C7C8 /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
+               49683F400C344CD80093C7C8 /* IpConfiguratorCommander.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C4A9570C268D9B009280A0 /* IpConfiguratorCommander.m */; };
+               49683F410C344CD90093C7C8 /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
+               49683F420C344CDA0093C7C8 /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
+               49683F430C344CDB0093C7C8 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+               49683F440C344CE20093C7C8 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
+               49683F470C344CE40093C7C8 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
+               49683F990C3452870093C7C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+               4968CBEB0C51EA01001F5CC7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 089C1672FE841209C02AAC07 /* Foundation.framework */; };
+               498DCB430DC2240B00D143C8 /* PListManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 498DCB410DC2240B00D143C8 /* PListManager.h */; };
+               498DCB440DC2240B00D143C8 /* PListManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 498DCB420DC2240B00D143C8 /* PListManager.m */; };
+               499716930C23E36E001339E3 /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
+               499716940C23E36F001339E3 /* CellIp.h in Headers */ = {isa = PBXBuildFile; fileRef = 322CEF6C0C211DCC0060D66D /* CellIp.h */; };
+               499716950C23E370001339E3 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
+               499716960C23E370001339E3 /* DBCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 322CEF5E0C211D220060D66D /* DBCellElement.h */; };
+               4998A6A40DC33C9300146652 /* afsltd.m in Sources */ = {isa = PBXBuildFile; fileRef = 4998A6A30DC33C9300146652 /* afsltd.m */; };
+               4998A6A50DC33CD800146652 /* AFSPropertyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B0AFDE0C01729400272348 /* AFSPropertyManager.m */; };
+               4998A6A60DC33CDB00146652 /* DBCellElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF5F0C211D220060D66D /* DBCellElement.m */; };
+               4998A6A70DC33CDB00146652 /* CellIp.m in Sources */ = {isa = PBXBuildFile; fileRef = 322CEF6D0C211DCC0060D66D /* CellIp.m */; };
+               4998A6A80DC33CE600146652 /* FileUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3273088C0C2A9B05008C322B /* FileUtil.m */; };
+               4998A6A90DC33CE700146652 /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
+               4998A6AA0DC33CE800146652 /* TaskUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 327756260C3053A100C15D11 /* TaskUtil.m */; };
+               4998A6AB0DC33CE900146652 /* ViewUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 495B043F0D219A2900F1E328 /* ViewUtility.m */; };
+               4998A6AC0DC33CEA00146652 /* NSString+search.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B565730D8FAF62005255F2 /* NSString+search.m */; };
+               4998A6AD0DC33CEB00146652 /* PListManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 498DCB420DC2240B00D143C8 /* PListManager.m */; };
+               4998A6F00DC3415600146652 /* SecurityFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327308D20C2AA364008C322B /* SecurityFoundation.framework */; };
+               4998A6F10DC3415700146652 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 327309620C2AB433008C322B /* Security.framework */; };
+               4998A6F20DC3415800146652 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 495C39460D81EA3C003426FC /* Kerberos.framework */; };
+               4998A6F30DC3415900146652 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 493564E70CE711F300699A24 /* Carbon.framework */; };
+               4998A6F40DC3415900146652 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4940075A0CE62EB500F40D0A /* CoreServices.framework */; };
+               4998A6F50DC3415A00146652 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+               49AF1F480C25B52A006A046E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 49AF1F470C25B52A006A046E /* InfoPlist.strings */; };
+               49B766450DCA47A50014A80F /* DialogUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 49B766430DCA47A50014A80F /* DialogUtility.h */; };
+               49B766460DCA47A50014A80F /* DialogUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B766440DCA47A50014A80F /* DialogUtility.m */; };
+               49E05CAD0C2674DA002AAEF2 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D202CF70486D31800D8A456 /* Info.plist */; };
+               49E43BA60C47D53F00084436 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3223836A0C32A96F00380547 /* Localizable.strings */; };
+               49E43BE70C47D9EE00084436 /* global.h in Headers */ = {isa = PBXBuildFile; fileRef = 49E43BE60C47D9EE00084436 /* global.h */; };
+               49E43C730C47E0EA00084436 /* start_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90430C2F0A2D0068F99A /* start_afs.sh */; };
+               49E43C740C47E0EC00084436 /* stop_afs.sh in Resources */ = {isa = PBXBuildFile; fileRef = 322B90440C2F0A2D0068F99A /* stop_afs.sh */; };
+               49E43D2E0C480B8200084436 /* afshlp in Resources */ = {isa = PBXBuildFile; fileRef = 49683EE40C3446380093C7C8 /* afshlp */; };
+               49FFE7D20C2AED7200DF83CF /* AuthUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */; };
+               8D202CEA0486D31800D8A456 /* AFSCommander_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = 32DBCFA20370C41700C91783 /* AFSCommander_Prefix.pch */; };
+               8D202CEB0486D31800D8A456 /* AFSCommanderPref.h in Headers */ = {isa = PBXBuildFile; fileRef = F506C03C013D9D7901CA16C8 /* AFSCommanderPref.h */; };
+               8D202CF10486D31800D8A456 /* AFSCommanderPref.m in Sources */ = {isa = PBXBuildFile; fileRef = F506C03D013D9D7901CA16C8 /* AFSCommanderPref.m */; };
+               8D202CF30486D31800D8A456 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+               8D202CF40486D31800D8A456 /* PreferencePanes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F506C035013D953901CA16C8 /* PreferencePanes.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+               3279B9800C451A63008FE3FA /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 494BD4680C43ED0C00DB0A3A;
+                       remoteInfo = AFSMenuExtra;
+               };
+               494435680DC35D6F00C7A333 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 4998A6850DC33BEC00146652;
+                       remoteInfo = LoginTimeDaemon;
+               };
+               49575C270C53CD9A00B3BC32 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 089C1669FE841209C02AAC07 /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = 49683EE30C3446380093C7C8;
+                       remoteInfo = afshlp;
+               };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+               494D72C90C350BC400B1FD21 /* CopyFiles */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = MenuCracker.menu;
+                       dstSubfolderSpec = 7;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+               089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+               089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               089C167FFE841241C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+               1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+               3213E93F0C2ABFD200D3D2F6 /* AuthUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthUtil.h; sourceTree = "<group>"; };
+               3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AuthUtil.m; sourceTree = "<group>"; };
+               3219259B0C339DAE00B55E86 /* TokenCredentialController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TokenCredentialController.h; sourceTree = "<group>"; };
+               3219259C0C339DAE00B55E86 /* TokenCredentialController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TokenCredentialController.m; sourceTree = "<group>"; };
+               3223836B0C32A96F00380547 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; name = English; path = English.lproj/Localizable.strings; sourceTree = "<group>"; };
+               322884010C3E45C800E778CC /* InfoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InfoController.h; sourceTree = "<group>"; };
+               322884020C3E45C800E778CC /* InfoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InfoController.m; sourceTree = "<group>"; };
+               322B90430C2F0A2D0068F99A /* start_afs.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = start_afs.sh; sourceTree = "<group>"; };
+               322B90440C2F0A2D0068F99A /* stop_afs.sh */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.sh; path = stop_afs.sh; sourceTree = "<group>"; };
+               322CEF5E0C211D220060D66D /* DBCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBCellElement.h; sourceTree = "<group>"; };
+               322CEF5F0C211D220060D66D /* DBCellElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DBCellElement.m; sourceTree = "<group>"; };
+               322CEF6C0C211DCC0060D66D /* CellIp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CellIp.h; sourceTree = "<group>"; };
+               322CEF6D0C211DCC0060D66D /* CellIp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CellIp.m; sourceTree = "<group>"; };
+               324D67FC0DA13194007E1561 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/OpenAFSPreference.xib; sourceTree = "<group>"; };
+               324D683C0DA133A3007E1561 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/IpPanel.xib; sourceTree = "<group>"; };
+               324D68490DA133CF007E1561 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/CredentialPanel.xib; sourceTree = "<group>"; };
+               325311CF0C44F4B100FAF2F3 /* licenza.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = licenza.rtf; sourceTree = "<group>"; };
+               325312170C44F7BD00FAF2F3 /* AFSMenuExtraView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSMenuExtraView.h; sourceTree = "<group>"; };
+               325312180C44F7BD00FAF2F3 /* AFSMenuExtraView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSMenuExtraView.m; sourceTree = "<group>"; };
+               325313B00C4516A900FAF2F3 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; name = Info.plist; path = AfsMenuExtraResource/Info.plist; sourceTree = "<group>"; };
+               3273088B0C2A9B05008C322B /* FileUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileUtil.h; sourceTree = "<group>"; };
+               3273088C0C2A9B05008C322B /* FileUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FileUtil.m; sourceTree = "<group>"; };
+               327308D20C2AA364008C322B /* SecurityFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SecurityFoundation.framework; path = /System/Library/Frameworks/SecurityFoundation.framework; sourceTree = "<absolute>"; };
+               327309620C2AB433008C322B /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
+               327756250C3053A100C15D11 /* TaskUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaskUtil.h; sourceTree = "<group>"; };
+               327756260C3053A100C15D11 /* TaskUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TaskUtil.m; sourceTree = "<group>"; };
+               32B0AFDD0C01729400272348 /* AFSPropertyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSPropertyManager.h; sourceTree = "<group>"; };
+               32B0AFDE0C01729400272348 /* AFSPropertyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSPropertyManager.m; sourceTree = "<group>"; };
+               32B565720D8FAF62005255F2 /* NSString+search.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+search.h"; sourceTree = "<group>"; };
+               32B565730D8FAF62005255F2 /* NSString+search.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+search.m"; sourceTree = "<group>"; };
+               32C4A9560C268D9B009280A0 /* IpConfiguratorCommander.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IpConfiguratorCommander.h; sourceTree = "<group>"; };
+               32C4A9570C268D9B009280A0 /* IpConfiguratorCommander.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IpConfiguratorCommander.m; sourceTree = "<group>"; };
+               32CF01390C203C1800A8DC58 /* Test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Test; sourceTree = BUILT_PRODUCTS_DIR; };
+               32CFFEFD0C20316B00A8DC58 /* TestLib.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestLib.m; sourceTree = "<group>"; };
+               32DBCFA20370C41700C91783 /* AFSCommander_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSCommander_Prefix.pch; sourceTree = "<group>"; };
+               32DE817D0DF571630069A05C /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/SymLinkEdit.xib; sourceTree = "<group>"; };
+               32DE818A0DF573200069A05C /* LynkCreationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LynkCreationController.h; sourceTree = "<group>"; };
+               32DE818B0DF573200069A05C /* LynkCreationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LynkCreationController.m; sourceTree = "<group>"; };
+               492AFB270C51483600AEDC93 /* CredentialWindow.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = CredentialWindow.nib; path = AfsMenuExtraResource/CredentialWindow.nib; sourceTree = "<group>"; };
+               493564E70CE711F300699A24 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+               4940075A0CE62EB500F40D0A /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+               4941F50E0C4929C000B29A73 /* AFSMenuCredentialContoller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSMenuCredentialContoller.h; sourceTree = "<group>"; };
+               4941F50F0C4929C000B29A73 /* AFSMenuCredentialContoller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSMenuCredentialContoller.m; sourceTree = "<group>"; };
+               4941F6300C49379000B29A73 /* CredentialWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CredentialWindowController.h; sourceTree = "<group>"; };
+               4941F6310C49379000B29A73 /* CredentialWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CredentialWindowController.m; sourceTree = "<group>"; };
+               494BD47B0C43EDF900DB0A3A /* SystemUIPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SystemUIPlugin.h; sourceTree = "<group>"; };
+               494BD4870C43EEA400DB0A3A /* SystemUIPlugin.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemUIPlugin.framework; path = /System/Library/PrivateFrameworks/SystemUIPlugin.framework; sourceTree = "<absolute>"; };
+               494BD48A0C43EEC300DB0A3A /* AFSMenuExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSMenuExtra.h; sourceTree = "<group>"; };
+               494BD48B0C43EEC300DB0A3A /* AFSMenuExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSMenuExtra.m; sourceTree = "<group>"; };
+               494C74DE0C46052800D3A2D2 /* AFSMenuExtra.menu */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AFSMenuExtra.menu; sourceTree = BUILT_PRODUCTS_DIR; };
+               49575BB30C53CBDB00B3BC32 /* hasToken.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hasToken.png; sourceTree = "<group>"; };
+               49575BB40C53CBDB00B3BC32 /* noToken.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = noToken.png; sourceTree = "<group>"; };
+               495B043E0D219A2900F1E328 /* ViewUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewUtility.h; sourceTree = "<group>"; };
+               495B043F0D219A2900F1E328 /* ViewUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewUtility.m; sourceTree = "<group>"; };
+               495C39460D81EA3C003426FC /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = /System/Library/Frameworks/Kerberos.framework; sourceTree = "<absolute>"; };
+               49683EE40C3446380093C7C8 /* afshlp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = afshlp; sourceTree = BUILT_PRODUCTS_DIR; };
+               49683EEB0C3446600093C7C8 /* afshlp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = afshlp.m; sourceTree = "<group>"; };
+               498DCB410DC2240B00D143C8 /* PListManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PListManager.h; sourceTree = "<group>"; };
+               498DCB420DC2240B00D143C8 /* PListManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PListManager.m; sourceTree = "<group>"; };
+               4998A6860DC33BEC00146652 /* LoginTimeDaemon */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = LoginTimeDaemon; sourceTree = BUILT_PRODUCTS_DIR; };
+               4998A6A30DC33C9300146652 /* afsltd.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = afsltd.m; sourceTree = "<group>"; };
+               49B766430DCA47A50014A80F /* DialogUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialogUtility.h; sourceTree = "<group>"; };
+               49B766440DCA47A50014A80F /* DialogUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DialogUtility.m; sourceTree = "<group>"; };
+               49E43BE60C47D9EE00084436 /* global.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = global.h; sourceTree = "<group>"; };
+               8D202CF70486D31800D8A456 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+               8D202CF80486D31800D8A456 /* OpenAFS.prefPane */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenAFS.prefPane; sourceTree = BUILT_PRODUCTS_DIR; };
+               F506C035013D953901CA16C8 /* PreferencePanes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PreferencePanes.framework; path = /System/Library/Frameworks/PreferencePanes.framework; sourceTree = "<absolute>"; };
+               F506C03C013D9D7901CA16C8 /* AFSCommanderPref.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFSCommanderPref.h; sourceTree = "<group>"; };
+               F506C03D013D9D7901CA16C8 /* AFSCommanderPref.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFSCommanderPref.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               32CF01370C203C1800A8DC58 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               32CF014C0C203CBD00A8DC58 /* Cocoa.framework in Frameworks */,
+                               327308D80C2AA369008C322B /* SecurityFoundation.framework in Frameworks */,
+                               327309980C2AB434008C322B /* Security.framework in Frameworks */,
+                               495C39490D81EA3C003426FC /* Kerberos.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               494BD4670C43ED0C00DB0A3A /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               494BD4880C43EEA400DB0A3A /* SystemUIPlugin.framework in Frameworks */,
+                               325313520C45153400FAF2F3 /* SecurityFoundation.framework in Frameworks */,
+                               325313550C45153500FAF2F3 /* Security.framework in Frameworks */,
+                               3253138D0C45157A00FAF2F3 /* Cocoa.framework in Frameworks */,
+                               495C39480D81EA3C003426FC /* Kerberos.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               49683EE20C3446380093C7C8 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               49683F440C344CE20093C7C8 /* SecurityFoundation.framework in Frameworks */,
+                               49683F470C344CE40093C7C8 /* Security.framework in Frameworks */,
+                               49683F990C3452870093C7C8 /* Cocoa.framework in Frameworks */,
+                               4968CBEB0C51EA01001F5CC7 /* Foundation.framework in Frameworks */,
+                               495C39CC0D81F742003426FC /* Kerberos.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               4998A6840DC33BEC00146652 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               4998A6F00DC3415600146652 /* SecurityFoundation.framework in Frameworks */,
+                               4998A6F10DC3415700146652 /* Security.framework in Frameworks */,
+                               4998A6F20DC3415800146652 /* Kerberos.framework in Frameworks */,
+                               4998A6F30DC3415900146652 /* Carbon.framework in Frameworks */,
+                               4998A6F40DC3415900146652 /* CoreServices.framework in Frameworks */,
+                               4998A6F50DC3415A00146652 /* Cocoa.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               8D202CF20486D31800D8A456 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8D202CF30486D31800D8A456 /* Cocoa.framework in Frameworks */,
+                               8D202CF40486D31800D8A456 /* PreferencePanes.framework in Frameworks */,
+                               327308D70C2AA364008C322B /* SecurityFoundation.framework in Frameworks */,
+                               327309970C2AB433008C322B /* Security.framework in Frameworks */,
+                               4940075B0CE62EB500F40D0A /* CoreServices.framework in Frameworks */,
+                               493564E80CE711F300699A24 /* Carbon.framework in Frameworks */,
+                               495C39470D81EA3C003426FC /* Kerberos.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               089C166AFE841209C02AAC07 /* AFSCommander */ = {
+                       isa = PBXGroup;
+                       children = (
+                               32CFFEF90C20314100A8DC58 /* Stand Alone Program */,
+                               08FB77AFFE84173DC02AAC07 /* Classes */,
+                               494BD47A0C43EDD400DB0A3A /* AFSMenuExtra */,
+                               32DBCFA10370C40200C91783 /* Other Sources */,
+                               089C167CFE841241C02AAC07 /* Resources */,
+                               089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
+                               19C28FB8FE9D52D311CA2CBB /* Products */,
+                       );
+                       comments = "Progetto per la gestione delle configurazioni afs";
+                       name = AFSCommander;
+                       sourceTree = "<group>";
+               };
+               089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
+                       isa = PBXGroup;
+                       children = (
+                               1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
+                               1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
+                       );
+                       name = "Frameworks and Libraries";
+                       sourceTree = "<group>";
+               };
+               089C167CFE841241C02AAC07 /* Resources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               325311CF0C44F4B100FAF2F3 /* licenza.rtf */,
+                               322B90430C2F0A2D0068F99A /* start_afs.sh */,
+                               322B90440C2F0A2D0068F99A /* stop_afs.sh */,
+                               324D67FB0DA13194007E1561 /* OpenAFSPreference.xib */,
+                               32DE81BC0DF57BDA0069A05C /* SymLinkEdit.xib */,
+                               324D68480DA133CF007E1561 /* CredentialPanel.xib */,
+                               324D683B0DA133A3007E1561 /* IpPanel.xib */,
+                               32B0AFB40C016E6900272348 /* English.lproj */,
+                               8D202CF70486D31800D8A456 /* Info.plist */,
+                       );
+                       name = Resources;
+                       sourceTree = "<group>";
+               };
+               08FB77AFFE84173DC02AAC07 /* Classes */ = {
+                       isa = PBXGroup;
+                       children = (
+                               49E43BE60C47D9EE00084436 /* global.h */,
+                               F506C03C013D9D7901CA16C8 /* AFSCommanderPref.h */,
+                               F506C03D013D9D7901CA16C8 /* AFSCommanderPref.m */,
+                               3212AA7F0C27AC2800A0689C /* AFS Logic */,
+                               32C4A9550C268D84009280A0 /* IpConfigurator */,
+                               3219259A0C339C1F00B55E86 /* TokenCredential */,
+                               32DE81890DF573030069A05C /* Lynk Creation */,
+                               322884000C3E45B100E778CC /* Info */,
+                               327308880C2A99A1008C322B /* Utility */,
+                       );
+                       name = Classes;
+                       sourceTree = "<group>";
+               };
+               1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               495C39460D81EA3C003426FC /* Kerberos.framework */,
+                               493564E70CE711F300699A24 /* Carbon.framework */,
+                               4940075A0CE62EB500F40D0A /* CoreServices.framework */,
+                               1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
+                               F506C035013D953901CA16C8 /* PreferencePanes.framework */,
+                       );
+                       name = "Linked Frameworks";
+                       sourceTree = "<group>";
+               };
+               1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               494BD4870C43EEA400DB0A3A /* SystemUIPlugin.framework */,
+                               327309620C2AB433008C322B /* Security.framework */,
+                               327308D20C2AA364008C322B /* SecurityFoundation.framework */,
+                               089C1672FE841209C02AAC07 /* Foundation.framework */,
+                               089C167FFE841241C02AAC07 /* AppKit.framework */,
+                       );
+                       name = "Other Frameworks";
+                       sourceTree = "<group>";
+               };
+               19C28FB8FE9D52D311CA2CBB /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               8D202CF80486D31800D8A456 /* OpenAFS.prefPane */,
+                               32CF01390C203C1800A8DC58 /* Test */,
+                               49683EE40C3446380093C7C8 /* afshlp */,
+                               494C74DE0C46052800D3A2D2 /* AFSMenuExtra.menu */,
+                               4998A6860DC33BEC00146652 /* LoginTimeDaemon */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               3212AA7F0C27AC2800A0689C /* AFS Logic */ = {
+                       isa = PBXGroup;
+                       children = (
+                               32B0AFDD0C01729400272348 /* AFSPropertyManager.h */,
+                               32B0AFDE0C01729400272348 /* AFSPropertyManager.m */,
+                               322CEF6B0C211DAC0060D66D /* Afs Element */,
+                       );
+                       name = "AFS Logic";
+                       sourceTree = "<group>";
+               };
+               3219259A0C339C1F00B55E86 /* TokenCredential */ = {
+                       isa = PBXGroup;
+                       children = (
+                               3219259B0C339DAE00B55E86 /* TokenCredentialController.h */,
+                               3219259C0C339DAE00B55E86 /* TokenCredentialController.m */,
+                       );
+                       name = TokenCredential;
+                       sourceTree = "<group>";
+               };
+               322884000C3E45B100E778CC /* Info */ = {
+                       isa = PBXGroup;
+                       children = (
+                               322884010C3E45C800E778CC /* InfoController.h */,
+                               322884020C3E45C800E778CC /* InfoController.m */,
+                       );
+                       name = Info;
+                       sourceTree = "<group>";
+               };
+               322CEF6B0C211DAC0060D66D /* Afs Element */ = {
+                       isa = PBXGroup;
+                       children = (
+                               322CEF5E0C211D220060D66D /* DBCellElement.h */,
+                               322CEF5F0C211D220060D66D /* DBCellElement.m */,
+                               322CEF6C0C211DCC0060D66D /* CellIp.h */,
+                               322CEF6D0C211DCC0060D66D /* CellIp.m */,
+                       );
+                       name = "Afs Element";
+                       sourceTree = "<group>";
+               };
+               325313A10C4515A700FAF2F3 /* Resource */ = {
+                       isa = PBXGroup;
+                       children = (
+                               49575BB30C53CBDB00B3BC32 /* hasToken.png */,
+                               49575BB40C53CBDB00B3BC32 /* noToken.png */,
+                               325313B00C4516A900FAF2F3 /* Info.plist */,
+                               492AFB270C51483600AEDC93 /* CredentialWindow.nib */,
+                       );
+                       name = Resource;
+                       sourceTree = "<group>";
+               };
+               327308880C2A99A1008C322B /* Utility */ = {
+                       isa = PBXGroup;
+                       children = (
+                               3273088B0C2A9B05008C322B /* FileUtil.h */,
+                               3273088C0C2A9B05008C322B /* FileUtil.m */,
+                               3213E93F0C2ABFD200D3D2F6 /* AuthUtil.h */,
+                               3213E9400C2ABFD200D3D2F6 /* AuthUtil.m */,
+                               327756250C3053A100C15D11 /* TaskUtil.h */,
+                               327756260C3053A100C15D11 /* TaskUtil.m */,
+                               495B043E0D219A2900F1E328 /* ViewUtility.h */,
+                               495B043F0D219A2900F1E328 /* ViewUtility.m */,
+                               32B565720D8FAF62005255F2 /* NSString+search.h */,
+                               32B565730D8FAF62005255F2 /* NSString+search.m */,
+                               498DCB410DC2240B00D143C8 /* PListManager.h */,
+                               498DCB420DC2240B00D143C8 /* PListManager.m */,
+                               49B766430DCA47A50014A80F /* DialogUtility.h */,
+                               49B766440DCA47A50014A80F /* DialogUtility.m */,
+                       );
+                       name = Utility;
+                       sourceTree = "<group>";
+               };
+               32B0AFB40C016E6900272348 /* English.lproj */ = {
+                       isa = PBXGroup;
+                       children = (
+                               3223836A0C32A96F00380547 /* Localizable.strings */,
+                               49AF1F470C25B52A006A046E /* InfoPlist.strings */,
+                       );
+                       name = English.lproj;
+                       sourceTree = "<group>";
+               };
+               32C4A9550C268D84009280A0 /* IpConfigurator */ = {
+                       isa = PBXGroup;
+                       children = (
+                               32C4A9560C268D9B009280A0 /* IpConfiguratorCommander.h */,
+                               32C4A9570C268D9B009280A0 /* IpConfiguratorCommander.m */,
+                       );
+                       name = IpConfigurator;
+                       sourceTree = "<group>";
+               };
+               32CFFEF90C20314100A8DC58 /* Stand Alone Program */ = {
+                       isa = PBXGroup;
+                       children = (
+                               32CFFEFD0C20316B00A8DC58 /* TestLib.m */,
+                               49683EEB0C3446600093C7C8 /* afshlp.m */,
+                               4998A6A30DC33C9300146652 /* afsltd.m */,
+                       );
+                       name = "Stand Alone Program";
+                       sourceTree = "<group>";
+               };
+               32DBCFA10370C40200C91783 /* Other Sources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               494BD47B0C43EDF900DB0A3A /* SystemUIPlugin.h */,
+                               32DBCFA20370C41700C91783 /* AFSCommander_Prefix.pch */,
+                       );
+                       name = "Other Sources";
+                       sourceTree = "<group>";
+               };
+               32DE81890DF573030069A05C /* Lynk Creation */ = {
+                       isa = PBXGroup;
+                       children = (
+                               32DE818A0DF573200069A05C /* LynkCreationController.h */,
+                               32DE818B0DF573200069A05C /* LynkCreationController.m */,
+                       );
+                       name = "Lynk Creation";
+                       sourceTree = "<group>";
+               };
+               4941F62F0C49377000B29A73 /* CredentialWindow */ = {
+                       isa = PBXGroup;
+                       children = (
+                               4941F6300C49379000B29A73 /* CredentialWindowController.h */,
+                               4941F6310C49379000B29A73 /* CredentialWindowController.m */,
+                       );
+                       name = CredentialWindow;
+                       sourceTree = "<group>";
+               };
+               494BD47A0C43EDD400DB0A3A /* AFSMenuExtra */ = {
+                       isa = PBXGroup;
+                       children = (
+                               494BD48A0C43EEC300DB0A3A /* AFSMenuExtra.h */,
+                               494BD48B0C43EEC300DB0A3A /* AFSMenuExtra.m */,
+                               325312170C44F7BD00FAF2F3 /* AFSMenuExtraView.h */,
+                               325312180C44F7BD00FAF2F3 /* AFSMenuExtraView.m */,
+                               4941F50E0C4929C000B29A73 /* AFSMenuCredentialContoller.h */,
+                               4941F50F0C4929C000B29A73 /* AFSMenuCredentialContoller.m */,
+                               4941F62F0C49377000B29A73 /* CredentialWindow */,
+                               325313A10C4515A700FAF2F3 /* Resource */,
+                       );
+                       name = AFSMenuExtra;
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+               8D202CE90486D31800D8A456 /* Headers */ = {
+                       isa = PBXHeadersBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8D202CEA0486D31800D8A456 /* AFSCommander_Prefix.pch in Headers */,
+                               8D202CEB0486D31800D8A456 /* AFSCommanderPref.h in Headers */,
+                               32B0AFDF0C01729400272348 /* AFSPropertyManager.h in Headers */,
+                               499716940C23E36F001339E3 /* CellIp.h in Headers */,
+                               499716960C23E370001339E3 /* DBCellElement.h in Headers */,
+                               32C4A9B90C26A0FB009280A0 /* IpConfiguratorCommander.h in Headers */,
+                               3273088D0C2A9B05008C322B /* FileUtil.h in Headers */,
+                               3213E9410C2ABFD200D3D2F6 /* AuthUtil.h in Headers */,
+                               327756280C3053A100C15D11 /* TaskUtil.h in Headers */,
+                               322884030C3E45C800E778CC /* InfoController.h in Headers */,
+                               49E43BE70C47D9EE00084436 /* global.h in Headers */,
+                               492AFA860C51301D00AEDC93 /* TokenCredentialController.h in Headers */,
+                               495B04400D219A2900F1E328 /* ViewUtility.h in Headers */,
+                               32B565740D8FAF62005255F2 /* NSString+search.h in Headers */,
+                               498DCB430DC2240B00D143C8 /* PListManager.h in Headers */,
+                               49B766450DCA47A50014A80F /* DialogUtility.h in Headers */,
+                               32DE818C0DF573200069A05C /* LynkCreationController.h in Headers */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+               32CF01380C203C1800A8DC58 /* Test */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 32CF013C0C203C4900A8DC58 /* Build configuration list for PBXNativeTarget "Test" */;
+                       buildPhases = (
+                               32CF01360C203C1800A8DC58 /* Sources */,
+                               32CF01370C203C1800A8DC58 /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = Test;
+                       productName = Test;
+                       productReference = 32CF01390C203C1800A8DC58 /* Test */;
+                       productType = "com.apple.product-type.tool";
+               };
+               494BD4680C43ED0C00DB0A3A /* AFSMenuExtra */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 494BD46C0C43ED0D00DB0A3A /* Build configuration list for PBXNativeTarget "AFSMenuExtra" */;
+                       buildPhases = (
+                               494BD4650C43ED0C00DB0A3A /* Resources */,
+                               494BD4660C43ED0C00DB0A3A /* Sources */,
+                               494BD4670C43ED0C00DB0A3A /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               49575C280C53CD9A00B3BC32 /* PBXTargetDependency */,
+                       );
+                       name = AFSMenuExtra;
+                       productName = AFSMenuExtra;
+                       productReference = 494C74DE0C46052800D3A2D2 /* AFSMenuExtra.menu */;
+                       productType = "com.apple.product-type.bundle";
+               };
+               49683EE30C3446380093C7C8 /* afshlp */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 49683EE70C34465D0093C7C8 /* Build configuration list for PBXNativeTarget "afshlp" */;
+                       buildPhases = (
+                               49683EE10C3446380093C7C8 /* Sources */,
+                               49683EE20C3446380093C7C8 /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = afshlp;
+                       productName = afshlp;
+                       productReference = 49683EE40C3446380093C7C8 /* afshlp */;
+                       productType = "com.apple.product-type.tool";
+               };
+               4998A6850DC33BEC00146652 /* LoginTimeDaemon */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 4998A6A10DC33C2000146652 /* Build configuration list for PBXNativeTarget "LoginTimeDaemon" */;
+                       buildPhases = (
+                               4998A6830DC33BEC00146652 /* Sources */,
+                               4998A6840DC33BEC00146652 /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = LoginTimeDaemon;
+                       productName = LoginTimeDaemon;
+                       productReference = 4998A6860DC33BEC00146652 /* LoginTimeDaemon */;
+                       productType = "com.apple.product-type.tool";
+               };
+               8D202CE80486D31800D8A456 /* OpenAFS */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 1DBD214808BA80EA00186707 /* Build configuration list for PBXNativeTarget "OpenAFS" */;
+                       buildPhases = (
+                               8D202CE90486D31800D8A456 /* Headers */,
+                               8D202CEC0486D31800D8A456 /* Resources */,
+                               8D202CF00486D31800D8A456 /* Sources */,
+                               8D202CF20486D31800D8A456 /* Frameworks */,
+                               8D202CF50486D31800D8A456 /* Rez */,
+                               494D72C90C350BC400B1FD21 /* CopyFiles */,
+                               3281A5B00CD7432A00907CF6 /* ShellScript */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               3279B9810C451A63008FE3FA /* PBXTargetDependency */,
+                               494435690DC35D6F00C7A333 /* PBXTargetDependency */,
+                       );
+                       name = OpenAFS;
+                       productInstallPath = "$(HOME)/Library/PreferencePanes";
+                       productName = AFSCommander;
+                       productReference = 8D202CF80486D31800D8A456 /* OpenAFS.prefPane */;
+                       productType = "com.apple.product-type.bundle";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               089C1669FE841209C02AAC07 /* Project object */ = {
+                       isa = PBXProject;
+                       buildConfigurationList = 1DBD214C08BA80EA00186707 /* Build configuration list for PBXProject "OpenAFS" */;
+                       compatibilityVersion = "Xcode 2.4";
+                       hasScannedForEncodings = 1;
+                       knownRegions = (
+                               English,
+                               Japanese,
+                               French,
+                               German,
+                               Italian,
+                       );
+                       mainGroup = 089C166AFE841209C02AAC07 /* AFSCommander */;
+                       projectDirPath = "";
+                       projectRoot = "";
+                       targets = (
+                               8D202CE80486D31800D8A456 /* OpenAFS */,
+                               32CF01380C203C1800A8DC58 /* Test */,
+                               49683EE30C3446380093C7C8 /* afshlp */,
+                               494BD4680C43ED0C00DB0A3A /* AFSMenuExtra */,
+                               4998A6850DC33BEC00146652 /* LoginTimeDaemon */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+               494BD4650C43ED0C00DB0A3A /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               325313B10C4516A900FAF2F3 /* Info.plist in Resources */,
+                               49E43BA60C47D53F00084436 /* Localizable.strings in Resources */,
+                               49E43C730C47E0EA00084436 /* start_afs.sh in Resources */,
+                               49E43C740C47E0EC00084436 /* stop_afs.sh in Resources */,
+                               32D45E070C4B4D9C00A1012D /* afshlp in Resources */,
+                               492AFB280C51483600AEDC93 /* CredentialWindow.nib in Resources */,
+                               49575BB50C53CBDB00B3BC32 /* hasToken.png in Resources */,
+                               49575BB60C53CBDB00B3BC32 /* noToken.png in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               8D202CEC0486D31800D8A456 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               49AF1F480C25B52A006A046E /* InfoPlist.strings in Resources */,
+                               49E05CAD0C2674DA002AAEF2 /* Info.plist in Resources */,
+                               322B90450C2F0A2D0068F99A /* start_afs.sh in Resources */,
+                               322B90460C2F0A2D0068F99A /* stop_afs.sh in Resources */,
+                               3223836C0C32A96F00380547 /* Localizable.strings in Resources */,
+                               325311D00C44F4B100FAF2F3 /* licenza.rtf in Resources */,
+                               494C75110C4605C000D3A2D2 /* AFSMenuExtra.menu in Resources */,
+                               49E43D2E0C480B8200084436 /* afshlp in Resources */,
+                               324D67FD0DA13194007E1561 /* OpenAFSPreference.xib in Resources */,
+                               324D683D0DA133A3007E1561 /* IpPanel.xib in Resources */,
+                               324D684A0DA133CF007E1561 /* CredentialPanel.xib in Resources */,
+                               494435170DC35D4C00C7A333 /* LoginTimeDaemon in Resources */,
+                               32DE81BD0DF57BDA0069A05C /* SymLinkEdit.xib in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+               8D202CF50486D31800D8A456 /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+               3281A5B00CD7432A00907CF6 /* ShellScript */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       comments = "Copy the menucraker.menu into resources";
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "\nif [ \"$ACTION\" = \"build\" ]\nthen\n\techo \"Start coping MenuCraker.menu\"\n\techo $SRCROOT/MenuCracker.menu\n\techo $TARGET_BUILD_DIR/$PRODUCT_NAME.prefPane/Resources/\t\n\tcp -R $SRCROOT/MenuCracker.menu $TARGET_BUILD_DIR/$PRODUCT_NAME.prefPane/Contents/Resources/MenuCracker.menu\nfi\n\n";
+               };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+               32CF01360C203C1800A8DC58 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               32CF013F0C203C5600A8DC58 /* TestLib.m in Sources */,
+                               32CF01460C203CA800A8DC58 /* AFSPropertyManager.m in Sources */,
+                               322CEF600C211D220060D66D /* DBCellElement.m in Sources */,
+                               322CEF6E0C211DCC0060D66D /* CellIp.m in Sources */,
+                               32C4A9580C268D9B009280A0 /* IpConfiguratorCommander.m in Sources */,
+                               327308C30C2AA2E1008C322B /* FileUtil.m in Sources */,
+                               49FFE7D20C2AED7200DF83CF /* AuthUtil.m in Sources */,
+                               327756270C3053A100C15D11 /* TaskUtil.m in Sources */,
+                               3219259D0C339DAE00B55E86 /* TokenCredentialController.m in Sources */,
+                               322884050C3E45C800E778CC /* InfoController.m in Sources */,
+                               495B04420D219A2900F1E328 /* ViewUtility.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               494BD4660C43ED0C00DB0A3A /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               494BD48C0C43EEC300DB0A3A /* AFSMenuExtra.m in Sources */,
+                               325311AB0C44F38200FAF2F3 /* AFSPropertyManager.m in Sources */,
+                               325311AF0C44F38D00FAF2F3 /* CellIp.m in Sources */,
+                               325311B00C44F38D00FAF2F3 /* DBCellElement.m in Sources */,
+                               325311B10C44F39200FAF2F3 /* TaskUtil.m in Sources */,
+                               325311B20C44F39300FAF2F3 /* AuthUtil.m in Sources */,
+                               325311B30C44F39400FAF2F3 /* FileUtil.m in Sources */,
+                               325312190C44F7BD00FAF2F3 /* AFSMenuExtraView.m in Sources */,
+                               4941F4C00C491D2D00B29A73 /* TokenCredentialController.m in Sources */,
+                               4941F5100C4929C000B29A73 /* AFSMenuCredentialContoller.m in Sources */,
+                               4941F6320C49379000B29A73 /* CredentialWindowController.m in Sources */,
+                               32B565760D8FAF62005255F2 /* NSString+search.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               49683EE10C3446380093C7C8 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               49683EEC0C3446600093C7C8 /* afshlp.m in Sources */,
+                               49683F3D0C344CD40093C7C8 /* AFSPropertyManager.m in Sources */,
+                               49683F3E0C344CD50093C7C8 /* DBCellElement.m in Sources */,
+                               49683F3F0C344CD70093C7C8 /* CellIp.m in Sources */,
+                               49683F400C344CD80093C7C8 /* IpConfiguratorCommander.m in Sources */,
+                               49683F410C344CD90093C7C8 /* FileUtil.m in Sources */,
+                               49683F420C344CDA0093C7C8 /* AuthUtil.m in Sources */,
+                               49683F430C344CDB0093C7C8 /* TaskUtil.m in Sources */,
+                               4934D4170DC38958000511D2 /* PListManager.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               4998A6830DC33BEC00146652 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               4998A6A40DC33C9300146652 /* afsltd.m in Sources */,
+                               4998A6A50DC33CD800146652 /* AFSPropertyManager.m in Sources */,
+                               4998A6A60DC33CDB00146652 /* DBCellElement.m in Sources */,
+                               4998A6A70DC33CDB00146652 /* CellIp.m in Sources */,
+                               4998A6A80DC33CE600146652 /* FileUtil.m in Sources */,
+                               4998A6A90DC33CE700146652 /* AuthUtil.m in Sources */,
+                               4998A6AA0DC33CE800146652 /* TaskUtil.m in Sources */,
+                               4998A6AB0DC33CE900146652 /* ViewUtility.m in Sources */,
+                               4998A6AC0DC33CEA00146652 /* NSString+search.m in Sources */,
+                               4998A6AD0DC33CEB00146652 /* PListManager.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+               8D202CF00486D31800D8A456 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8D202CF10486D31800D8A456 /* AFSCommanderPref.m in Sources */,
+                               32B0AFE00C01729400272348 /* AFSPropertyManager.m in Sources */,
+                               499716930C23E36E001339E3 /* CellIp.m in Sources */,
+                               499716950C23E370001339E3 /* DBCellElement.m in Sources */,
+                               32C4A9B80C26A0FA009280A0 /* IpConfiguratorCommander.m in Sources */,
+                               3273088E0C2A9B05008C322B /* FileUtil.m in Sources */,
+                               3213E9420C2ABFD200D3D2F6 /* AuthUtil.m in Sources */,
+                               327756290C3053A100C15D11 /* TaskUtil.m in Sources */,
+                               322884040C3E45C800E778CC /* InfoController.m in Sources */,
+                               492AFA870C51301E00AEDC93 /* TokenCredentialController.m in Sources */,
+                               495B04410D219A2900F1E328 /* ViewUtility.m in Sources */,
+                               32B565750D8FAF62005255F2 /* NSString+search.m in Sources */,
+                               498DCB440DC2240B00D143C8 /* PListManager.m in Sources */,
+                               49B766460DCA47A50014A80F /* DialogUtility.m in Sources */,
+                               32DE818D0DF573200069A05C /* LynkCreationController.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+               3279B9810C451A63008FE3FA /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 494BD4680C43ED0C00DB0A3A /* AFSMenuExtra */;
+                       targetProxy = 3279B9800C451A63008FE3FA /* PBXContainerItemProxy */;
+               };
+               494435690DC35D6F00C7A333 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 4998A6850DC33BEC00146652 /* LoginTimeDaemon */;
+                       targetProxy = 494435680DC35D6F00C7A333 /* PBXContainerItemProxy */;
+               };
+               49575C280C53CD9A00B3BC32 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = 49683EE30C3446380093C7C8 /* afshlp */;
+                       targetProxy = 49575C270C53CD9A00B3BC32 /* PBXContainerItemProxy */;
+               };
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+               3223836A0C32A96F00380547 /* Localizable.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               3223836B0C32A96F00380547 /* English */,
+                       );
+                       name = Localizable.strings;
+                       sourceTree = "<group>";
+               };
+               324D67FB0DA13194007E1561 /* OpenAFSPreference.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               324D67FC0DA13194007E1561 /* English */,
+                       );
+                       name = OpenAFSPreference.xib;
+                       sourceTree = "<group>";
+               };
+               324D683B0DA133A3007E1561 /* IpPanel.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               324D683C0DA133A3007E1561 /* English */,
+                       );
+                       name = IpPanel.xib;
+                       sourceTree = "<group>";
+               };
+               324D68480DA133CF007E1561 /* CredentialPanel.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               324D68490DA133CF007E1561 /* English */,
+                       );
+                       name = CredentialPanel.xib;
+                       sourceTree = "<group>";
+               };
+               32DE81BC0DF57BDA0069A05C /* SymLinkEdit.xib */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               32DE817D0DF571630069A05C /* English */,
+                       );
+                       name = SymLinkEdit.xib;
+                       sourceTree = "<group>";
+               };
+               49AF1F470C25B52A006A046E /* InfoPlist.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               089C167EFE841241C02AAC07 /* English */,
+                       );
+                       name = InfoPlist.strings;
+                       sourceTree = "<group>";
+               };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+               1DBD214908BA80EA00186707 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = AFSCommander_Prefix.pch;
+                               INFOPLIST_FILE = Info.plist;
+                               INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
+                               PRODUCT_NAME = OpenAFS;
+                               WRAPPER_EXTENSION = prefPane;
+                               ZERO_LINK = YES;
+                       };
+                       name = Debug;
+               };
+               1DBD214A08BA80EA00186707 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = (
+                                       ppc,
+                                       i386,
+                               );
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = AFSCommander_Prefix.pch;
+                               INFOPLIST_FILE = Info.plist;
+                               INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
+                               PRODUCT_NAME = OpenAFS;
+                               WRAPPER_EXTENSION = prefPane;
+                       };
+                       name = Release;
+               };
+               1DBD214D08BA80EA00186707 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = (
+                                       ppc,
+                                       i386,
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               PREBINDING = NO;
+                               SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+                       };
+                       name = Debug;
+               };
+               1DBD214E08BA80EA00186707 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = (
+                                       ppc,
+                                       i386,
+                               );
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               PREBINDING = NO;
+                               SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+                       };
+                       name = Release;
+               };
+               32CF013D0C203C4900A8DC58 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = Test;
+                               ZERO_LINK = YES;
+                       };
+                       name = Debug;
+               };
+               32CF013E0C203C4900A8DC58 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = Test;
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
+               494BD46D0C43ED0D00DB0A3A /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+                               );
+                               FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INFOPLIST_FILE = "AFSMenuExtra-Info.plist";
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = AFSMenuExtra;
+                               WRAPPER_EXTENSION = menu;
+                               ZERO_LINK = YES;
+                       };
+                       name = Debug;
+               };
+               494BD46E0C43ED0D00DB0A3A /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               FRAMEWORK_SEARCH_PATHS = (
+                                       "$(inherited)",
+                                       "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+                               );
+                               FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"";
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INFOPLIST_FILE = "AFSMenuExtra-Info.plist";
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = AFSMenuExtra;
+                               WRAPPER_EXTENSION = menu;
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
+               49683EE80C34465D0093C7C8 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = afshlp;
+                               ZERO_LINK = YES;
+                       };
+                       name = Debug;
+               };
+               49683EE90C34465D0093C7C8 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = YES;
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = "$(HOME)/bin";
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = afshlp;
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
+               4998A6880DC33BED00146652 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
+                               ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+                               COPY_PHASE_STRIP = NO;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               INSTALL_PATH = /usr/local/bin;
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = LoginTimeDaemon;
+                       };
+                       name = Debug;
+               };
+               4998A6890DC33BED00146652 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               ARCHS = "$(ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1)";
+                               ARCHS_STANDARD_32_BIT_PRE_XCODE_3_1 = "ppc i386";
+                               COPY_PHASE_STRIP = YES;
+                               DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+                               GCC_ENABLE_FIX_AND_CONTINUE = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
+                               GCC_WARN_UNUSED_PARAMETER = NO;
+                               INSTALL_PATH = /usr/local/bin;
+                               OTHER_LDFLAGS = (
+                                       "-framework",
+                                       Foundation,
+                                       "-framework",
+                                       AppKit,
+                               );
+                               PREBINDING = NO;
+                               PRODUCT_NAME = LoginTimeDaemon;
+                               ZERO_LINK = NO;
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               1DBD214808BA80EA00186707 /* Build configuration list for PBXNativeTarget "OpenAFS" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               1DBD214908BA80EA00186707 /* Debug */,
+                               1DBD214A08BA80EA00186707 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               1DBD214C08BA80EA00186707 /* Build configuration list for PBXProject "OpenAFS" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               1DBD214D08BA80EA00186707 /* Debug */,
+                               1DBD214E08BA80EA00186707 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               32CF013C0C203C4900A8DC58 /* Build configuration list for PBXNativeTarget "Test" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               32CF013D0C203C4900A8DC58 /* Debug */,
+                               32CF013E0C203C4900A8DC58 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               494BD46C0C43ED0D00DB0A3A /* Build configuration list for PBXNativeTarget "AFSMenuExtra" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               494BD46D0C43ED0D00DB0A3A /* Debug */,
+                               494BD46E0C43ED0D00DB0A3A /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               49683EE70C34465D0093C7C8 /* Build configuration list for PBXNativeTarget "afshlp" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               49683EE80C34465D0093C7C8 /* Debug */,
+                               49683EE90C34465D0093C7C8 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               4998A6A10DC33C2000146652 /* Build configuration list for PBXNativeTarget "LoginTimeDaemon" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               4998A6880DC33BED00146652 /* Debug */,
+                               4998A6890DC33BED00146652 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/src/platform/DARWIN/AFSPreference/PListManager.h b/src/platform/DARWIN/AFSPreference/PListManager.h
new file mode 100644 (file)
index 0000000..dafc026
--- /dev/null
@@ -0,0 +1,71 @@
+//
+//  PListManager.h
+//  OpenAFS
+//
+//  Created by Claudio Bisegni LNF - INFN on 25/04/08.
+//  Copyright 2008 Infn. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+#define DELETE_IN_10_4 @"authinternal"
+#define DELETE_IN_10_5 @"builtin:authenticate,privileged"
+#define ADD_IN_PLIST   @"builtin:krb5authnoverify,privileged"
+
+#define AUTH_FILE_DIR  @"/etc"
+#define AUTH_FILE              @"/etc/authorization"
+#define AUTH_FILE_BK   @"/etc/authorization_bk"
+#define TMP_FILE               @"/tmp/authorization"
+
+#define HOME_LAUNCHD_AGENT_FOLDER              @"~/Library/LaunchAgents"
+#define AKLOG_LAUNCHD_CONTROL_FILE             @"~/Library/LaunchAgents/it.infn.lnf.afslogintimedaemon.plist"
+#define AKLOG_LAUNCHD_TMP_CONTROL_FILE @"/tmp/it.infn.lnf.afslogintimedaemon.plist"
+#define LOGIN_TIME_DAEMON_NAME                 @"LoginTimeDaemon"
+
+#define LAUNCHD_DAEMON_FOLDER                  @"/Library/LaunchDaemons"
+#define AFS_STARTUP_TMP_CONTROL_FILE   @"/tmp/it.infn.lnf.afsstartup.plist"
+#define AFS_STARTUP_CONTROL_FILE               @"/Library/LaunchDaemons/it.infn.lnf.afsstartup.plist"
+
+/*!
+    @class              PListManager
+    @abstract    Utility class for modify the plist used by sistem for make login
+    @discussion  <#(comprehensive description)#>
+*/
+
+@interface PListManager : NSObject {
+
+}
+/*!
+ @method     krb5TiketAtLoginTime
+ @abstract   Enable or disable the system to get kerberos ticket at login time
+ @discussion <#(comprehensive description)#>
+ */
++(void) krb5TiketAtLoginTime:(BOOL)enable;
+
+/*!
+ @method     checkKrb5AtLoginTimeLaunchdEnable
+ @abstract   check if the system is configured to ket krb5 ticket at login
+ @discussion <#(comprehensive description)#>
+ */
++(BOOL) checkKrb5AtLoginTimeLaunchdEnable;
+
+/*!
+ @method     installLaunchdFile
+ @abstract   Install the afs agent launchd config file
+ @discussion <#(comprehensive description)#>
+ */
++(void) installLaunchdFile:(BOOL)install resourcePath:(NSString*) rsrcPath;
+/*!
+ @method     checkAklogAtLoginTimeLaunchdEnable
+ @abstract   check if the user has installed  or enabled the afs agent
+ @discussion <#(comprehensive description)#>
+ */
++(BOOL) checkAklogAtLoginTimeLaunchdEnable;
+
+/*!
+ @method     installAfsStartupLaunchdFile
+ @abstract   Install the afs daemon launchd config file for startup afs at boot
+ @discussion <#(comprehensive description)#>
+ */
++(void) manageAfsStartupLaunchdFile:(BOOL)enable afsStartupScript:(NSString*)afsStartupScript afsBasePath:(NSString*)afsBasePath  afsdPath:(NSString*)afsdPath;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/PListManager.m b/src/platform/DARWIN/AFSPreference/PListManager.m
new file mode 100644 (file)
index 0000000..066ec10
--- /dev/null
@@ -0,0 +1,266 @@
+//
+//  PListManager.m
+//  OpenAFS
+//
+//  Created by Claudio Bisegni on 25/04/08.
+//  Copyright 2008 Infn. All rights reserved.
+//
+
+#import "PListManager.h"
+#import "FileUtil.h"
+#import "TaskUtil.h"
+
+@implementation PListManager
+// -------------------------------------------------------------------------------
+//  krb5TiketAtLoginTime:
+// -------------------------------------------------------------------------------
++(void) krb5TiketAtLoginTime:(BOOL)enable{
+       NSData                                  *plistData = nil;
+       NSString                                *error = nil;
+       NSString                                *toRemove = nil;
+       NSString                                *toAdd = nil;
+       NSPropertyListFormat    format;
+       NSMutableDictionary             *plist = nil;
+       SInt32                                  osxMJVers = 0;
+       SInt32                                  osxMnVers = 0;
+       FileUtil                                *futil = nil;
+       
+       //check system 
+       if (Gestalt(gestaltSystemVersionMajor, &osxMJVers) != noErr || Gestalt(gestaltSystemVersionMinor, &osxMnVers) != noErr) @throw [NSException exceptionWithName:@"PListManager:krb5TiketAtLoginTime" 
+                                                                                                                                                                                                                                                                                                                  reason:@"Error getting system version"
+                                                                                                                                                                                                                                                                                                                userInfo:nil];
+       //get auth plist file
+       plistData = [NSData dataWithContentsOfFile:AUTH_FILE];
+       
+       //Get plist for updating with NSPropertyListMutableContainersAndLeaves
+       plist = [NSPropertyListSerialization propertyListFromData:plistData
+                                                                                        mutabilityOption:NSPropertyListMutableContainersAndLeaves
+                                                                                                          format:&format
+                                                                                        errorDescription:&error];
+       if(!plist) {
+               @throw [NSException exceptionWithName:@"PListManager:krb5TiketAtLoginTime" 
+                                                                          reason:error
+                                                                        userInfo:nil];
+               
+       }
+       
+       //Get "rights" dic
+       NSMutableDictionary *rightsDic = [plist objectForKey:@"rights"];
+       
+       //Get "system.login.console" dic
+       NSMutableDictionary *loginConsoleDic = [rightsDic objectForKey:@"system.login.console"];
+       
+       //Get "mechanisms" dic
+       NSMutableArray *mechanismsArray = [loginConsoleDic objectForKey:@"mechanisms"];
+       switch(osxMnVers){
+               case 4:
+                       if(enable){
+                               //remove
+                               toRemove = DELETE_IN_10_4;
+                               toAdd = ADD_IN_PLIST;
+                       } else {
+                               toRemove = ADD_IN_PLIST;
+                               toAdd = DELETE_IN_10_4;
+                       }
+                       break;
+                       
+               case 5:
+                       if(enable){
+                               //remove
+                               toRemove = DELETE_IN_10_5;
+                               toAdd = ADD_IN_PLIST;
+                       } else {
+                               toRemove = ADD_IN_PLIST;
+                               toAdd = DELETE_IN_10_5;
+                       }
+                       
+                       break;
+       }
+       
+       //Make change
+       [mechanismsArray removeObject:toRemove];
+       [mechanismsArray addObject:toAdd];
+       //write plist
+       plistData  = [NSPropertyListSerialization dataFromPropertyList:plist
+                                                                                                                       format:NSPropertyListXMLFormat_v1_0
+                                                                                                 errorDescription:&error];
+       if(!plistData) {
+               @throw [NSException exceptionWithName:@"PListManager:krb5TiketAtLoginTime" 
+                                                                          reason:error
+                                                                        userInfo:nil];
+               
+       }
+       if(![plistData writeToFile:TMP_FILE atomically:NO]) {
+               @throw [NSException exceptionWithName:@"PListManager:krb5TiketAtLoginTime" 
+                                                                          reason:@"Temp file write error"
+                                                                        userInfo:nil];
+               
+       }
+       
+       //now we can move the file
+       futil = [[FileUtil alloc] init];
+       if([futil startAutorization] == noErr) {
+               if(![[NSFileManager defaultManager] fileExistsAtPath:AUTH_FILE_BK]) {
+                       //bk file doesn't exist so make it
+                       [futil autorizedCopy:AUTH_FILE toPath:AUTH_FILE_BK];
+               }
+               // chmod on tmp file
+               [futil autorizedChown:TMP_FILE owner:@"root" group:@"wheel"];
+               //mov ethe file 
+               [futil autorizedMoveFile:TMP_FILE toPath:AUTH_FILE_DIR];
+       }
+       [futil release];
+}
+
+// -------------------------------------------------------------------------------
+//  checkAklogAtLoginTimeLaunchdEnable:
+// -------------------------------------------------------------------------------
++(BOOL) checkKrb5AtLoginTimeLaunchdEnable {
+       BOOL result = false;
+       NSString *authFileContent = nil;
+       authFileContent = [NSString stringWithContentsOfFile:AUTH_FILE];
+       if(authFileContent) {
+               result = [authFileContent rangeOfString:ADD_IN_PLIST].location != NSNotFound;   
+       }
+       return result;
+}
+
+       
+// -------------------------------------------------------------------------------
+//  installLaunchdFile:
+// -------------------------------------------------------------------------------
++(void) installLaunchdFile:(BOOL)install resourcePath:(NSString*) rsrcPath {
+       NSData                          *plistData = nil;
+       NSMutableDictionary *launchdDic = nil;
+       NSString                        *error = nil;
+       NSString                        *daemonPath = [[rsrcPath stringByAppendingString:@"/"] stringByAppendingString:LOGIN_TIME_DAEMON_NAME];
+       
+       
+       if(![[NSFileManager defaultManager] fileExistsAtPath:[HOME_LAUNCHD_AGENT_FOLDER stringByExpandingTildeInPath]]) {
+               @throw [NSException exceptionWithName:@"PListManager:installLaunchdFile" 
+                                                                          reason:@"The folder ~/Library/LaunchAgent doesn't exist!"
+                                                                        userInfo:[NSNumber numberWithInt:1]];
+       }
+       
+       if(install) {
+               if(![[NSFileManager defaultManager] fileExistsAtPath:[AKLOG_LAUNCHD_CONTROL_FILE stringByExpandingTildeInPath]]) {
+                       launchdDic = [[NSMutableDictionary alloc] init];
+                       
+                       [launchdDic setObject:@"it.infn.lnf.afslogintimedaemon" 
+                                                  forKey:@"Label"];
+                       
+                       [launchdDic setObject:@"Aqua"
+                                                  forKey:@"LimitLoadToSessionType"];
+                       
+                       [launchdDic setObject:[NSArray arrayWithObject:daemonPath]
+                                                  forKey:@"ProgramArguments"];
+                       
+                       [launchdDic setObject:[NSNumber numberWithBool:YES] 
+                                                  forKey:@"RunAtLoad"];
+                       
+                       plistData  = [NSPropertyListSerialization dataFromPropertyList:launchdDic
+                                                                                                                                       format:NSPropertyListXMLFormat_v1_0
+                                                                                                                 errorDescription:&error];
+                       
+                       if(!plistData) {
+                               @throw [NSException exceptionWithName:@"PListManager:installLaunchdFile" 
+                                                                                          reason:error
+                                                                                        userInfo:nil];
+                               
+                       }
+                       
+                       if(![plistData writeToFile:AKLOG_LAUNCHD_TMP_CONTROL_FILE atomically:NO]) {
+                               @throw [NSException exceptionWithName:@"PListManager:installLaunchdFile" 
+                                                                                          reason:@"Temp file write error"
+                                                                                        userInfo:nil];
+                               
+                       }
+                       
+                       //now we can move the file
+                       [TaskUtil executeTaskSearchingPath:@"mv" args:[NSArray arrayWithObjects:AKLOG_LAUNCHD_TMP_CONTROL_FILE, [HOME_LAUNCHD_AGENT_FOLDER stringByExpandingTildeInPath], nil]];
+               }
+       } else {
+               // delete launchd configuration file
+               [TaskUtil executeTaskSearchingPath:@"rm" args:[NSArray arrayWithObjects:[AKLOG_LAUNCHD_CONTROL_FILE stringByExpandingTildeInPath], nil]];
+       }
+       
+}
+
+// -------------------------------------------------------------------------------
+//  checkAklogAtLoginTimeLaunchdEnable:
+// -------------------------------------------------------------------------------
++(BOOL) checkAklogAtLoginTimeLaunchdEnable {
+       BOOL result = [[NSFileManager defaultManager] fileExistsAtPath:[AKLOG_LAUNCHD_CONTROL_FILE stringByExpandingTildeInPath]];
+       return result;
+}
+
+// -------------------------------------------------------------------------------
+//  installAfsStartupLaunchdFile:
+// -------------------------------------------------------------------------------
++(void) manageAfsStartupLaunchdFile:(BOOL)enable 
+                                  afsStartupScript:(NSString*)afsStartupScript 
+                                               afsBasePath:(NSString*)afsBasePath 
+                                                  afsdPath:(NSString*)afsdPath {
+       NSData                          *plistData = nil;
+       NSMutableDictionary *launchdDic = nil;
+       NSMutableArray          *argDic = nil;
+       NSString                        *error = nil;
+       OSErr                           status = noErr;
+       
+       
+       if(![[NSFileManager defaultManager] fileExistsAtPath:[LAUNCHD_DAEMON_FOLDER stringByExpandingTildeInPath]]) {
+               @throw [NSException exceptionWithName:@"PListManager:installAfsStartupLaunchdFile" 
+                                                                          reason:@"The folder /Library/LaunchDaemon doesn't exist!"
+                                                                        userInfo:nil];
+       }
+       
+       status = [[AuthUtil shared] autorize];
+       if(status != noErr)@throw [NSException exceptionWithName:@"PListManager:installAfsStartupLaunchdFile" 
+                                                                                                         reason:@"Autorization Error"
+                                                                                                       userInfo:nil];
+       
+       if(enable) {
+               //Check first if the launchd configuration file for startup is present
+               if(![[NSFileManager defaultManager] fileExistsAtPath:[AFS_STARTUP_CONTROL_FILE stringByExpandingTildeInPath]]) {
+                       launchdDic = [[NSMutableDictionary alloc] init];
+                       //argDic = [[NSMutableArray alloc] init];
+                       
+                       [launchdDic setObject:@"it.infn.lnf.afsstartup" 
+                                                  forKey:@"Label"];
+                       
+                       //[argDic addObject:afsStartupScript];
+                       //[argDic addObject:afsBasePath/*"/var/db/openafs"*/];
+                       //[argDic addObject:afsdPath/*"/usr/sbin/afsd"*/];
+                       
+                       [launchdDic setObject:[NSArray arrayWithObjects:afsStartupScript, afsBasePath, afsdPath, nil]
+                                                  forKey:@"ProgramArguments"];
+                       
+                       [launchdDic setObject:[NSNumber numberWithBool:YES] 
+                                                  forKey:@"RunAtLoad"];
+                       
+                       plistData  = [NSPropertyListSerialization dataFromPropertyList:launchdDic
+                                                                                                                                       format:NSPropertyListXMLFormat_v1_0
+                                                                                                                 errorDescription:&error];
+                       
+                       if(!plistData) {
+                               @throw [NSException exceptionWithName:@"PListManager:installLaunchdFile" 
+                                                                                          reason:error
+                                                                                        userInfo:nil];
+                               
+                       }
+                       
+                       if(![plistData writeToFile:AFS_STARTUP_TMP_CONTROL_FILE atomically:NO]) {
+                               @throw [NSException exceptionWithName:@"PListManager:installLaunchdFile" 
+                                                                                          reason:@"Temp file write error"
+                                                                                        userInfo:nil];
+                               
+                       }
+                       
+                       //now we can move the file
+                       [TaskUtil executeTaskSearchingPath:@"mv" args:[NSArray arrayWithObjects:AFS_STARTUP_TMP_CONTROL_FILE, [LAUNCHD_DAEMON_FOLDER stringByExpandingTildeInPath], nil]];
+               }
+       }
+       
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/SystemUIPlugin.h b/src/platform/DARWIN/AFSPreference/SystemUIPlugin.h
new file mode 100644 (file)
index 0000000..9440564
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+ *     Generated by class-dump 3.1.1.
+ *
+ *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2006 by Steve Nygard.
+ */
+#import <AppKit/AppKit.h>
+
+@interface NSMenuExtra : NSStatusItem
+{
+    NSBundle *_bundle;
+    NSMenu *_menu;
+    NSView *_view;
+    float _length;
+    struct {
+        unsigned int customView:1;
+        unsigned int menuDown:1;
+        unsigned int reserved:30;
+    } _flags;
+    id _controller;
+}
+
+- (id)initWithBundle:(id)fp8;
+- (id)initWithBundle:(id)fp8 data:(id)fp12;
+- (void)willUnload;
+- (void)dealloc;
+- (id)bundle;
+- (float)length;
+- (void)setLength:(float)fp8;
+- (id)image;
+- (void)setImage:(id)fp8;
+- (id)alternateImage;
+- (void)setAlternateImage:(id)fp8;
+- (id)menu;
+- (void)setMenu:(id)fp8;
+- (id)toolTip;
+- (void)setToolTip:(id)fp8;
+- (id)view;
+- (void)setView:(id)fp8;
+- (BOOL)isMenuDown;
+- (void)drawMenuBackground:(BOOL)fp8;
+- (void)popUpMenu:(id)fp8;
+- (void)unload;
+- (id)statusBar;
+- (SEL)action;
+- (void)setAction:(SEL)fp8;
+- (id)target;
+- (void)setTarget:(id)fp8;
+- (id)title;
+- (void)setTitle:(id)fp8;
+- (id)attributedTitle;
+- (void)setAttributedTitle:(id)fp8;
+- (BOOL)isEnabled;
+- (void)setEnabled:(BOOL)fp8;
+- (void)setHighlightMode:(BOOL)fp8;
+- (BOOL)highlightMode;
+- (void)sendActionOn:(int)fp8;
+- (id)_initInStatusBar:(id)fp8 withLength:(float)fp12 withPriority:(int)fp16;
+- (id)_window;
+- (id)_button;
+- (void)_adjustLength;
+
+@end
+
+@interface NSMenuExtra (NSMenuExtraPrivate)
++ (unsigned int)defaultLength;
+- (void)setController:(id)fp8;
+- (id)controller;
+- (void)setMenuDown:(BOOL)fp8;
+- (float)defaultLength;
+- (id)accessibilityAttributeNames;
+- (id)accessibilityAttributeValue:(id)fp8;
+- (BOOL)accessibilityIsAttributeSettable:(id)fp8;
+- (void)accessibilitySetValue:(id)fp8 forAttribute:(id)fp12;
+- (id)accessibilityActionNames;
+- (id)accessibilityActionDescription:(id)fp8;
+- (void)accessibilityPerformAction:(id)fp8;
+- (BOOL)accessibilityIsIgnored;
+- (id)accessibilityHitTest:(struct _NSPoint)fp8;
+- (id)accessibilityFocusedUIElement;
+- (id)AXRole;
+- (id)AXRoleDescription;
+- (id)AXSubrole;
+- (id)AXDescription;
+- (id)AXChildren;
+- (id)AXParent;
+- (id)AXTitle;
+- (id)AXValue;
+- (id)AXEnabled;
+- (id)AXSelected;
+- (BOOL)isAXSelectedSettable;
+- (void)setAXSelected:(id)fp8;
+- (id)AXPosition;
+- (id)AXSize;
+- (void)performAXPress;
+- (void)performAXCancel;
+@end
+
+@interface NSDockExtra : NSObject
+{
+    NSBundle *_bundle;
+    unsigned int _id;
+    void *_nativeWindow;
+    id _controller;
+    struct {
+        unsigned int nativeWindow:1;
+        unsigned int reserved:31;
+    } _flags;
+    long _fReserved1;
+    long _fReserved2;
+    long _fReserved3;
+    long _fReserved4;
+}
+
+- (id)initWithBundle:(id)fp8;
+- (id)initWithBundle:(id)fp8 data:(id)fp12;
+- (void)dealloc;
+- (void)willUnload;
+- (id)bundle;
+- (id)menu;
+- (void)toggle;
+- (void)handleMenuCommand:(unsigned int)fp8 tag:(unsigned int)fp12;
+- (void)setDockLabel:(id)fp8;
+- (id)cocoaWindow;
+- (void *)carbonCGrafPtr;
+
+@end
+
+@interface NSDockExtra (NSDockExtraReallyPrivate)
+- (void)_releaseWindow;
+@end
+
+@interface NSDockExtra (NSDockExtraPrivate)
+- (id)initWithBundle:(id)fp8 identifier:(unsigned int)fp12 controller:(id)fp16;
+- (id)initWithBundle:(id)fp8 identifier:(unsigned int)fp12 data:(id)fp16 controller:(id)fp20;
+- (void *)cgWindow;
+@end
+
+@interface NSMutableArray (NSDockExtraMenu)
+- (void)insertItem:(id)fp8 atIndex:(int)fp12;
+- (void)addItem:(id)fp8;
+- (id)insertItemWithTitle:(id)fp8 action:(SEL)fp12 atIndex:(int)fp16;
+- (id)addItemWithTitle:(id)fp8 action:(SEL)fp12;
+- (void)removeItemAtIndex:(int)fp8;
+- (void)setSubmenu:(id)fp8 forItem:(id)fp12;
+- (int)indexOfItemWithTitle:(id)fp8;
+- (int)indexOfItemWithAction:(SEL)fp8;
+- (id)itemWithTitle:(id)fp8;
+- (id)itemWithAction:(SEL)fp8;
+@end
+
+@interface NSMutableDictionary (NSDockExtraMenuItem)
++ (id)separatorItem;
++ (id)itemWithTitle:(id)fp8 action:(SEL)fp12;
+- (BOOL)hasSubmenu;
+- (void)setSubmenu:(id)fp8;
+- (id)submenu;
+- (void)setSubmenuSelectable:(BOOL)fp8;
+- (BOOL)isSubmenuSelectable;
+- (void)setTitle:(id)fp8;
+- (id)title;
+- (BOOL)isSeparatorItem;
+- (void)setEnabled:(BOOL)fp8;
+- (BOOL)isEnabled;
+- (void)setAction:(SEL)fp8;
+- (SEL)action;
+- (void)setTag:(int)fp8;
+- (int)tag;
+- (void)setMark:(int)fp8;
+- (int)mark;
+- (void)setMarkChar:(id)fp8;
+- (id)markChar;
+- (void)setHeader:(BOOL)fp8;
+- (BOOL)isHeader;
+- (void)setStyle:(int)fp8;
+- (int)style;
+- (void)setIndent:(unsigned short)fp8;
+- (unsigned short)indent;
+- (void)setDynamicMask:(int)fp8;
+- (int)dynamicMask;
+- (void)removeDynamicMask;
+- (void)setDynamicBreak:(BOOL)fp8;
+- (BOOL)dynamicBreak;
+- (void)setSystemIcon:(unsigned int)fp8;
+- (unsigned int)systemIcon;
+- (void)setResourceIcon:(id)fp8;
+- (id)resourceIcon;
+- (void)setIconEnabled:(BOOL)fp8;
+- (BOOL)isIconEnabled;
+@end
+
+@interface NSApplicationDockExtra : NSDockExtra
+{
+}
+
+- (void)applicationLaunched;
+- (void)applicationDied;
+- (void)setDockLabel:(id)fp8;
+
+@end
+
+@interface NSMenuExtraView : NSView
+{
+    NSMenu *_menu;
+    NSMenuExtra *_menuExtra;
+    NSImage *_image;
+    NSImage *_alternateImage;
+}
+
+- (id)initWithFrame:(NSRect)fp8 menuExtra:(id)fp24;
+- (void)dealloc;
+- (void)setMenu:(id)fp8;
+- (id)image;
+- (void)setImage:(id)fp8;
+- (id)alternateImage;
+- (void)setAlternateImage:(id)fp8;
+- (void)drawRect:(NSRect)fp8;
+- (void)mouseDown:(id)fp8;
+
+@end
+
diff --git a/src/platform/DARWIN/AFSPreference/TaskUtil.h b/src/platform/DARWIN/AFSPreference/TaskUtil.h
new file mode 100644 (file)
index 0000000..b7fc7ec
--- /dev/null
@@ -0,0 +1,19 @@
+//
+//  TaskUtil.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 25/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+#include <Security/Authorization.h>
+#include <Security/AuthorizationTags.h>
+
+@interface TaskUtil : NSObject {
+}
++(NSString*) searchExecutablePath:(NSString*)unixCommand;
++(NSString*) executeTaskSearchingPath:(NSString*)unixCommand args:(NSArray*)args;
++(NSString*) executeTask:(NSString*) taskName arguments:(NSArray *)args;
++(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args authExtForm:(NSData*)auth;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/TaskUtil.m b/src/platform/DARWIN/AFSPreference/TaskUtil.m
new file mode 100644 (file)
index 0000000..abc79c9
--- /dev/null
@@ -0,0 +1,126 @@
+//
+//  TaskUtil.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 25/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "TaskUtil.h"
+
+
+@implementation TaskUtil
+
+// -------------------------------------------------------------------------------
+//  executeTaskSearchingPath:
+// -------------------------------------------------------------------------------
++(NSString*) executeTaskSearchingPath:(NSString*)unixCommand args:(NSArray*)args
+{
+       NSString *commResult = nil;
+       NSString *commPath = [self searchExecutablePath:unixCommand];
+       if(commPath != nil){
+               commResult = [self executeTask:commPath
+                                                  arguments:args];
+       }
+       return commResult;      
+}
+
+// -------------------------------------------------------------------------------
+//  executeTask:
+// -------------------------------------------------------------------------------
++(NSString*) searchExecutablePath:(NSString*)unixCommand
+{
+       NSString *commPath = [self executeTask:@"/usr/bin/which" arguments:[NSArray arrayWithObjects:unixCommand, nil]];
+       return commPath;        
+}
+
+// -------------------------------------------------------------------------------
+//  executeTask:
+// -------------------------------------------------------------------------------
++(NSString*) executeTask:(NSString*) taskName arguments:(NSArray *)args{
+       NSLog(taskName);
+       NSString *result = nil;
+       int status = 0;
+       NSFileHandle *file = nil;
+       NSDictionary *environment =  [NSDictionary dictionaryWithObjectsAndKeys: @"$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin",@"PATH",nil];
+               
+       NSPipe *pipe = [NSPipe pipe];
+       NSTask *taskToRun  = [[NSTask alloc] init];
+       
+       [taskToRun setLaunchPath: taskName];
+       [taskToRun setArguments: args];
+       [taskToRun setEnvironment:environment];
+       [taskToRun setStandardOutput: pipe];
+       file = [pipe fileHandleForReading];
+       [taskToRun launch];
+       [taskToRun waitUntilExit];
+       status = [taskToRun terminationStatus];
+       if (status == 0){
+               NSLog(@"Task succeeded.");
+               NSData *data = [file readDataToEndOfFile];
+               // remove the \n character from unix command
+               if([data length] > 0){
+                       NSData *realData = [NSData dataWithBytes:[data bytes] 
+                                                                                         length:[data length]-1];
+               
+                       [taskToRun release];
+                       result = [[NSString alloc] initWithData: realData 
+                                                                                  encoding: NSUTF8StringEncoding];
+                       NSLog(result);
+               }
+       } else {
+               NSLog(@"Task failed.");
+       }
+       return [result autorelease];
+}
+
+
+// -------------------------------------------------------------------------------
+//  executeTask:
+// -------------------------------------------------------------------------------
++(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args authExtForm:(NSData*)auth {
+       NSLog(taskName);
+       NSString *result = nil;
+       int status = 0;
+       NSFileHandle *file = nil;
+       NSDictionary *environment =  [NSDictionary dictionaryWithObjectsAndKeys: @"$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin",@"PATH",nil];
+       
+       NSPipe *pipe = [NSPipe pipe];
+       NSPipe *pipeIn = [NSPipe pipe];
+       NSTask *taskToRun  = [[NSTask alloc] init];
+       
+       [taskToRun setLaunchPath: taskName];
+       [taskToRun setArguments: args];
+       [taskToRun setEnvironment:environment];
+       [taskToRun setStandardOutput: pipe];
+       [taskToRun setStandardInput: pipeIn];
+       file = [pipe fileHandleForReading];
+       //Write to standard in
+       [taskToRun launch];
+       
+       NSFileHandle* taskInput = [[ taskToRun standardInput ] fileHandleForWriting ];
+       [taskInput writeData:auth];
+       [taskToRun waitUntilExit];
+       status = [taskToRun terminationStatus];
+       if (status == 0){
+               NSLog(@"Task succeeded.");
+               NSData *data = [file readDataToEndOfFile];
+               // remove the \n character from unix command
+               if([data length] > 0){
+                       NSData *realData = [NSData dataWithBytes:[data bytes] 
+                                                                                         length:[data length]-1];
+                       
+                       [taskToRun release];
+                       result = [[NSString alloc] initWithData: realData 
+                                                                                  encoding: NSUTF8StringEncoding];
+                       NSLog(result);
+                       [result release];
+               }
+       } else {
+               NSLog(@"Task failed.");
+       }
+       
+       return status;
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/TestLib.m b/src/platform/DARWIN/AFSPreference/TestLib.m
new file mode 100644 (file)
index 0000000..ea22c77
--- /dev/null
@@ -0,0 +1,35 @@
+
+#import "AFSPropertyManager.h"
+#import "FileUtil.h"
+#import "TaskUtil.h"
+#import "global.h"
+
+int CoreMenuExtraGetMenuExtra(CFStringRef identifier, void *menuExtra);
+int CoreMenuExtraAddMenuExtra(CFURLRef path, int position, int whoCares, int whoCares2, int whoCares3, int whoCares4);
+int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
+void printNSArray(NSArray *array);
+
+int main(int argc, char *argv[])
+{
+       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+       /*AFSPropertyManager *propMan=[[AFSPropertyManager alloc] initWithAfsPath:@"/var/db/openafs"];
+       [propMan loadConfiguration];
+       [propMan saveCacheConfigurationFiles:true];
+       [propMan release];*/
+       
+       //[AFSPropertyManager aklog];
+       
+       NSAlert *alert = [[NSAlert alloc] init];
+       [alert setMessageText:@"test"];
+       [alert addButtonWithTitle:@"Yes"];
+       [alert addButtonWithTitle:@"No"];
+       int result = [alert runModal];
+       
+       [pool release];
+}
+
+void printNSArray(NSArray *array) {
+       for(int idx = 0; idx < [array count]; idx++) {
+               NSLog([[array objectAtIndex:idx] description]);
+       }
+}
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/TokenCredentialController.h b/src/platform/DARWIN/AFSPreference/TokenCredentialController.h
new file mode 100644 (file)
index 0000000..a2e12b0
--- /dev/null
@@ -0,0 +1,32 @@
+//
+//  TokenCredentialController.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 28/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface TokenCredentialController : NSObject {
+       @public
+       id credentialPanel;
+       
+       @protected
+       id afsCommanderPref;
+       id textEditUserName;
+       id textEditPassword;
+       
+       BOOL taken;
+       NSString *uName;
+       NSString *uPwd;
+       
+}
+
+- (IBAction) getToken:(id) sender;
+- (IBAction) closePanel:(id) sender;
+- (BOOL) takenToken;
+- (NSString*) uName;
+- (NSString*) uPwd;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/TokenCredentialController.m b/src/platform/DARWIN/AFSPreference/TokenCredentialController.m
new file mode 100644 (file)
index 0000000..55adfea
--- /dev/null
@@ -0,0 +1,69 @@
+//
+//  TokenCredentialController.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 28/06/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "TokenCredentialController.h"
+#import "TaskUtil.h"
+
+@implementation TokenCredentialController
+// -------------------------------------------------------------------------------
+//  awakeFromNib:
+// -------------------------------------------------------------------------------
+- (void)awakeFromNib
+{
+       NSLog(@"awakeFromNib");
+}
+
+
+// -------------------------------------------------------------------------------
+//  getToken:
+// -------------------------------------------------------------------------------
+- (IBAction) getToken:(id) sender
+{
+       uName   = [((NSTextField*) textEditUserName) stringValue];
+       uPwd    = [((NSTextField*) textEditPassword) stringValue];
+       if(uName == @"" ||  uPwd == @"") return;
+       taken = YES;
+       [NSApp endSheet:credentialPanel];
+}
+
+       
+// -------------------------------------------------------------------------------
+//  closePanel:
+// -------------------------------------------------------------------------------
+- (IBAction) closePanel:(id) sender
+{
+       taken = NO;
+       [NSApp endSheet:credentialPanel];
+}
+
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (BOOL) takenToken
+{
+       return taken;
+}
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (NSString*) uName
+{
+       return uName;
+}
+
+// -------------------------------------------------------------------------------
+//  takenToken:
+// -------------------------------------------------------------------------------
+- (NSString*) uPwd
+{
+       return uPwd;
+}
+
+@end
diff --git a/src/platform/DARWIN/AFSPreference/ViewUtility.h b/src/platform/DARWIN/AFSPreference/ViewUtility.h
new file mode 100644 (file)
index 0000000..ccc9c5e
--- /dev/null
@@ -0,0 +1,16 @@
+//
+//  ViewUtility.h
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 25/12/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface ViewUtility : NSObject {
+
+}
++(void) enbleDisableControlView: (NSView*)parentView controlState:(BOOL)controlState;
+@end
diff --git a/src/platform/DARWIN/AFSPreference/ViewUtility.m b/src/platform/DARWIN/AFSPreference/ViewUtility.m
new file mode 100644 (file)
index 0000000..00291a1
--- /dev/null
@@ -0,0 +1,30 @@
+//
+//  ViewUtility.m
+//  AFSCommander
+//
+//  Created by Claudio Bisegni on 25/12/07.
+//  Copyright 2007 INFN - National Institute of Nuclear Physics. All rights reserved.
+//
+
+#import "ViewUtility.h"
+
+
+@implementation ViewUtility
++(void) enbleDisableControlView:(NSView*)parentView 
+                                  controlState:(BOOL)controlState
+{
+       if(!parentView) return;
+       NSArray *views = [parentView subviews];
+       
+       for(int idx = 0; idx < [views count]; idx++)
+       {
+               NSObject *obj = [views objectAtIndex:idx];
+               if([obj respondsToSelector:@selector(setEnabled:)])
+               {
+                       //[obj setEnabled:controlState];
+                       [obj performSelector:@selector(setEnabled:) withObject:controlState];
+               }
+       }
+       
+}
+@end
diff --git a/src/platform/DARWIN/AFSPreference/afscommlogo.png b/src/platform/DARWIN/AFSPreference/afscommlogo.png
new file mode 100644 (file)
index 0000000..3bf86eb
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/afscommlogo.png differ
diff --git a/src/platform/DARWIN/AFSPreference/afshlp.m b/src/platform/DARWIN/AFSPreference/afshlp.m
new file mode 100644 (file)
index 0000000..809274b
--- /dev/null
@@ -0,0 +1,199 @@
+//
+//  afshlp.m
+//  AFSCommander
+//
+//  Created by Claudio on 28/06/07.
+//
+
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <Security/Authorization.h>
+#include <Security/AuthorizationTags.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/fcntl.h>
+#include <sys/errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <asl.h>
+#include <sys/event.h>
+#import "TaskUtil.h"
+#import "AuthUtil.h"
+#import "PListManager.h"
+ void stopAfs(int argc, char *argv[]);
+ void getPath(char **selfPathPtr);
+ void selfRepair(char *selfPath);
+ void runWithSelfRepair(char *selfPath,int argc, char *argv[]);
+ void runCommand(int argc, char *argv[]);
+
+int main(int argc, char *argv[])
+{
+       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+    char *selfPath;
+       
+       NSLog(@"num of arguments %d", argc);
+       int status = [[AuthUtil shared] autorize];
+       if(status != noErr) exit(-1);
+       
+    // Get the path to the tool's executable
+    getPath(&selfPath);
+
+    //selfRepair(selfPath);
+    // All done with the executable path
+    if(selfPath) free(selfPath);
+       
+       // Now do the real work of running the command.
+    runCommand(argc, argv);
+    [[AuthUtil shared] deautorize];
+    [pool release];
+       
+       return 0;
+}
+
+// 
+void runCommand(int argc, char *argv[])
+{
+       NSString *cmdString = [NSString stringWithCString:(const char *)argv[1] encoding:NSUTF8StringEncoding];
+
+       if(argc == 4 && [cmdString rangeOfString:@"stop_afs"].location!=NSNotFound ){
+               NSLog(@"Stop afs from helper");
+               stopAfs(argc, argv);
+       } else  if(argc == 4 && [cmdString rangeOfString:@"start_afs"].location!=NSNotFound){
+               NSLog(@"Start afs from helper");
+               setuid(0);
+               const char *startArgs[] = {argv[2], argv[3], 0L};
+               [[AuthUtil shared] execUnixCommand:argv[1] 
+                                                                         args:startArgs
+                                                                       output:nil];
+       } else if(argc == 4 && [cmdString rangeOfString:@"enable_krb5_startup"].location!=NSNotFound) {
+               NSLog(@"Manage KRB5 at login time with option %s from helper", argv[2]);
+               setuid(0);
+               int arg2 = atoi(argv[2]);
+               [PListManager krb5TiketAtLoginTime:[[NSNumber numberWithInt:arg2] boolValue]];
+               
+       } else if(argc == 5 && [cmdString rangeOfString:@"start_afs_at_startup"].location!=NSNotFound){
+               setuid(0);
+               NSLog(@"Manage start_afs_at_startup with option %s from helper", argv[2]);
+               [PListManager manageAfsStartupLaunchdFile:YES 
+                                                                afsStartupScript:[NSString stringWithCString:argv[2]]
+                                                                         afsBasePath:[NSString stringWithCString:argv[4]]
+                                                                                afsdPath:[NSString stringWithCString:argv[3]]];
+       }
+}
+
+void stopAfs(int argc, char *argv[])
+{
+       
+       
+       setuid(0);
+       const char *umountArgs[] = {"-f", "/afs", 0L};
+       [[AuthUtil shared] execUnixCommand:"/sbin/umount" 
+                                                                 args:umountArgs
+                                                               output:nil];
+       
+       const char *afsdArgs[] = {"-shutdown", 0L};
+       [[AuthUtil shared] execUnixCommand:argv[3]
+                                                                 args:afsdArgs
+                                                               output:nil];
+       
+       const char *kernelExtArgs[] = {argv[2], 0L};
+       [[AuthUtil shared] execUnixCommand:"/sbin/kextunload"
+                                                                 args:kernelExtArgs
+                                                               output:nil];
+       
+       [[AuthUtil shared] deautorize];
+}
+
+
+// Code to get the path to the executable using _NSGetExecutablePath.
+void getPath(char **selfPathPtr)
+{
+    uint32_t selfPathSize = MAXPATHLEN;
+    if(!(*selfPathPtr = malloc(selfPathSize)))
+    {
+        exit(-1);
+    }
+    if(_NSGetExecutablePath(*selfPathPtr, &selfPathSize) == -1)
+    {
+        // Try reallocating selfPath with the size returned by the function.
+        if(!(*selfPathPtr = realloc(*selfPathPtr, selfPathSize + 1)))
+        {
+            NSLog(@"Could not allocate memory to hold executable path.");
+            exit(-1);
+        }
+        if(_NSGetExecutablePath(*selfPathPtr, &selfPathSize) != 0)
+        {
+            NSLog(@"Could not get executable path.");
+            exit(-1);
+        }
+    }
+}
+
+// Self-repair code. Found somehwere in internet
+void selfRepair(char *selfPath)
+{
+    struct stat st;
+    int fdTool;
+       printf("selfRepair"); 
+       
+//    [[AuthUtil shared] autorize];
+    
+    // Open tool exclusively, noone can touch it when we work on it, this idea i kepped somewhere in internet
+    fdTool = open(selfPath, O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
+    
+    if(fdTool == -1)
+    {
+        NSLog(@"Open Filed: %d.", errno);
+        exit(-1);
+    }
+    
+    if(fstat(fdTool, &st))
+    {
+        NSLog(@"fstat failed.");
+        exit(-1);
+    }
+    
+    if(st.st_uid != 0)
+    {
+        fchown(fdTool, 0, st.st_gid);
+    } else  NSLog(@"st_uid = 0");
+    
+    // Disable group and world writability and make setuid root.
+    fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH))) | S_ISUID);
+    
+    close(fdTool);
+    
+    NSLog(@"Self-repair done.");
+}
+
+
+// Code to execute the tool in self-repair mode.
+void runWithSelfRepair(char *selfPath, int argc, char *argv[])
+{
+    int status;
+    int pid;
+       
+      
+       // Make the qargs array for passing to child the same args of father
+    const char *arguments = {argv[1], argv[2], argv[3], "--self-repair", 0L};
+       
+       // Get the privileged AuthorizationRef
+    [[AuthUtil shared] autorize];
+       [[AuthUtil shared] execUnixCommand:selfPath 
+                                                                 args:arguments 
+                                                               output:nil];
+
+    pid = wait(&status);
+    if(pid == -1 || !WIFEXITED(status))
+    {
+        NSLog(@"Error returned from wait().");
+        exit(-1);
+    }
+    
+    // Exit with the same exit code as the self-repair child
+    exit(WEXITSTATUS(status));
+}
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/afslogo.psd b/src/platform/DARWIN/AFSPreference/afslogo.psd
new file mode 100644 (file)
index 0000000..145299e
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/afslogo.psd differ
diff --git a/src/platform/DARWIN/AFSPreference/afsltd.m b/src/platform/DARWIN/AFSPreference/afsltd.m
new file mode 100644 (file)
index 0000000..207dc11
--- /dev/null
@@ -0,0 +1,85 @@
+//
+//  afsltd.m
+//  OpenAFS
+//
+//  Created by Claudio Bisegni LNF-INFN on 26/04/08.
+//  Copyright 2008 Infn. All rights reserved.
+//
+#import "global.h"
+#import "AFSPropertyManager.h"
+#include <unistd.h>
+
+BOOL useAklog = NO;
+NSString *afsSysPath = nil;
+AFSPropertyManager *propManager = nil;
+
+void readPreferenceFile();
+void makeAFSPropertyManager();
+void callAKlog();
+
+int main(int argc, char *argv[])
+{
+       
+       NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+       
+       NSLog(@"Start AFS Preference Daemon");
+       // read the preference file
+       readPreferenceFile();
+       
+       //check if base afs path is set
+       if(!afsSysPath) return 1;
+       
+       //Sleep ten seconds
+       sleep(10);
+       
+       //make the afs property manager and load all afs configuration
+       makeAFSPropertyManager();
+       
+       //call aklog
+       callAKlog();
+       if(propManager) [propManager release];
+       
+       [pool release];
+       return 0;
+}
+
+// -------------------------------------------------------------------------------
+//  readPreferenceFile:
+// -------------------------------------------------------------------------------
+void readPreferenceFile()
+{
+       // read the preference for afs path
+       afsSysPath = (NSString*)CFPreferencesCopyAppValue((CFStringRef)PREFERENCE_AFS_SYS_PAT, (CFStringRef)afsCommanderID);
+       
+       
+       // read the preference for aklog use
+       NSNumber *useAklogPrefValue = (NSNumber*)CFPreferencesCopyAppValue((CFStringRef)PREFERENCE_USE_AKLOG, (CFStringRef)afsCommanderID);
+       useAklog = [useAklogPrefValue boolValue];
+       
+}
+
+// -------------------------------------------------------------------------------
+//  makeAFSPropertyManager:
+// -------------------------------------------------------------------------------
+void makeAFSPropertyManager() {
+       if(propManager) {
+               [propManager release];
+       }
+       propManager = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
+       [propManager loadConfiguration];
+}
+
+// -------------------------------------------------------------------------------
+//  makeAFSPropertyManager:
+// -------------------------------------------------------------------------------
+void callAKlog() {
+       //call aklog for all selected cell, but first check if afs is up
+       if([propManager checkAfsStatus] && useAklog) {
+               [propManager getTokens:false 
+                                                  usr:nil 
+                                                  pwd:nil];
+               
+               // send notification to 
+               [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
+       }
+}
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/global.h b/src/platform/DARWIN/AFSPreference/global.h
new file mode 100644 (file)
index 0000000..803a5d8
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ *  global.h
+ *  AFSCommander
+ *
+ *  Created by Claudio on 13/07/07.
+ *  Copyright 2007 INFN. All rights reserved.
+ *
+ */
+
+#define kMenuBarHeight                         22
+#define TOKENS_REFRESH_TIME_IN_SEC     60
+
+// Localized string
+#define kDevelopInfo                                   NSLocalizedStringFromTableInBundle(@"DevelopInfo",nil,[NSBundle bundleForClass:[self class]],@"DevelopInfo")
+#define kConfigurationSaved                            NSLocalizedStringFromTableInBundle(@"ConfigurationSaved",nil,[NSBundle bundleForClass:[self class]],@"ConfigurationSaved")
+#define kSavedCacheConfiguration               NSLocalizedStringFromTableInBundle(@"SavedCacheConfiguration",nil,[NSBundle bundleForClass:[self class]],@"SavedCacheConfiguration")
+#define kAfsOn                                                 NSLocalizedStringFromTableInBundle(@"AfsOn",nil,[NSBundle bundleForClass:[self class]],@"AfsOn")
+#define kAfsOff                                                        NSLocalizedStringFromTableInBundle(@"AfsOff",nil,[NSBundle bundleForClass:[self class]],@"AfsOff")
+#define kAfsButtonShutdown                             NSLocalizedStringFromTableInBundle(@"AfsButtonShutdown",nil,[NSBundle bundleForClass:[self class]],@"AfsButtonShutdown")
+#define kAfsButtonStartup                              NSLocalizedStringFromTableInBundle(@"AfsButtonStartup",nil,[NSBundle bundleForClass:[self class]],@"AfsButtonStartup")
+#define kNewCellName                                   NSLocalizedStringFromTableInBundle(@"NewCellName",nil,[NSBundle bundleForClass:[self class]],@"NewCellName")
+#define kNewCellComment                                        NSLocalizedStringFromTableInBundle(@"NewCellComment",nil,[NSBundle bundleForClass:[self class]],@"NewCellComment")
+#define kMenuLogin                                             NSLocalizedStringFromTableInBundle(@"MenuLogin",nil,[NSBundle bundleForClass:[self class]],@"MenuLogin")
+#define kMenuUnlog                                             NSLocalizedStringFromTableInBundle(@"MenuUnlog",nil,[NSBundle bundleForClass:[self class]],@"MenuUnlog")
+#define kBadAfsRootMountPoint                  NSLocalizedStringFromTableInBundle(@"BadAfsRootMountPoint",nil,[NSBundle bundleForClass:[self class]],@"BadAfsRootMountPoint")
+#define kDoYouWantCreateTheDirectory   NSLocalizedStringFromTableInBundle(@"DoYouWantCreateTheDirectory",nil,[NSBundle bundleForClass:[self class]],@"DoYouWantCreateTheDirectory")
+#define kDirectoryCreated                              NSLocalizedStringFromTableInBundle(@"DirectoryCreated",nil,[NSBundle bundleForClass:[self class]],@"DirectoryCreated")
+#define kErrorCreatingDirectory                        NSLocalizedStringFromTableInBundle(@"ErrorCreatingDirectory",nil,[NSBundle bundleForClass:[self class]],@"ErrorCreatingDirectory")
+#define kErrorGettongSystemVersion             NSLocalizedString(@"ErrorGettongSystemVersion",@"ErrorGettongSystemVersion");
+
+
+// PREFERENCE KEY
+#define PREFERENCE_AFS_SYS_PAT                 @"PREFERENCE_AFS_SYS_PAT"
+#define PREFERENCE_AFS_SYS_PAT_STATIC  @"/var/db/openafs"
+#define PREFERENCE_USE_AKLOG                   @"PREFERENCE_USE_AKLOG"
+#define PREFERENCE_START_AFS_AT_STARTUP        @"PREFERENCE_START_AFS_AT_STARTUP"
+
+// AFSMENUEXTRA INFO
+#define kAFSMenuExtra                  [NSURL fileURLWithPath:[[self bundle] pathForResource:@"AFSMenuExtra" ofType:@"menu" inDirectory:@""]]
+#define kMenuCrakerMenuExtra   [NSURL fileURLWithPath:[[self bundle] pathForResource:@"MenuCracker" ofType:@"menu" inDirectory:@""]]
+#define kAFSMenuExtraID                        @"it.infn.lnf.network.AFSMenuExtra"
+#define kMenuCrakerMenuExtraID @"net.sourceforge.menucracker2"
+
+
+//Application id
+#define afsCommanderID @"it.infn.lnf.network.openafs"
+// Changed preference notification key
+#define kPrefChangeNotification @"preference_changed"
+//KLog menuextra window close
+#define kLogWindowClosed @"klog_window_closed"
+//Fired when some work as appened in AFSMenuExtra
+#define kMenuExtraEventOccured @"menu_extra_event_occured"
+// Changed preference notification key
+#define kMExtraClosedNotification @"preference_changed"
+// Update MenuExtra AfsState notification key
+#define kMExtraAFSStateChange @"menu_extra_afs_state_change"
+
diff --git a/src/platform/DARWIN/AFSPreference/hasToken.png b/src/platform/DARWIN/AFSPreference/hasToken.png
new file mode 100644 (file)
index 0000000..d2dcda0
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/hasToken.png differ
diff --git a/src/platform/DARWIN/AFSPreference/licenza.rtf b/src/platform/DARWIN/AFSPreference/licenza.rtf
new file mode 100644 (file)
index 0000000..7d8b431
--- /dev/null
@@ -0,0 +1,11 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf270
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\vieww17520\viewh9920\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\sl360\slmult1\pardirnatural
+
+\f0\fs24 \cf0 AFSCommander \CocoaLigature0 0.9b\CocoaLigature1 \
+developed by Claudio Bisegni\
+Frascati National Laboratory\
+National Institute of Nuclear Physics, Italy\
+For MenuExtra is used MenuCracker you can get it at http://sourceforge.net/projects/menucracker}
\ No newline at end of file
diff --git a/src/platform/DARWIN/AFSPreference/noToken.png b/src/platform/DARWIN/AFSPreference/noToken.png
new file mode 100644 (file)
index 0000000..158625d
Binary files /dev/null and b/src/platform/DARWIN/AFSPreference/noToken.png differ
diff --git a/src/platform/DARWIN/AFSPreference/start_afs.sh b/src/platform/DARWIN/AFSPreference/start_afs.sh
new file mode 100755 (executable)
index 0000000..1cdd9c7
--- /dev/null
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+# start_afs.sh
+# 
+#
+# Created by Claudio Bisegni on 24/06/07.
+# Copyright 2007 INFN. All rights reserved.
+#
+# Portions Copyright (c) 2003 Apple Computer, Inc.
+#
+# Updated to match standard service scripts
+# Phil Holland <hollandp@umich.edu>
+
+. /etc/rc.common
+
+CheckForNetwork
+
+VICEETC=$1/etc
+AFSD=$2
+
+CONFIG=$VICEETC/config
+AFSDOPT=$CONFIG/afsd.options
+PACKAGE=$CONFIG/package.options
+VERBOSE=
+if [ -x /usr/sbin/kextstat ]; then KMODSTAT=/usr/sbin/kextstat; fi
+if [ -x /usr/sbin/kmodstat ]; then KMODSTAT=/usr/sbin/kmodstat; fi
+
+
+if [ -f $CONFIG/afs.conf ]; then
+    . $CONFIG/afs.conf
+fi
+
+# Check this file second so that if users have altered the file, it will
+# override the default options
+if [ -f $AFSDOPT ]; then
+    OPTIONS=`cat $AFSDOPT`
+fi
+       
+       echo "Starting OpenAFS"
+
+    if [ -z "$OPTIONS" ] || [ "$OPTIONS" = "AUTOMATIC" ] ; then
+               AFSD_OPTIONS="$VERBOSE"
+    else
+               AFSD_OPTIONS="$OPTIONS $VERBOSE"
+    fi
+
+    if [ "${NETWORKUP}" = "-NO-" ]; then
+        echo $AFSD_OPTIONS | grep -e '-dynroot' || exit
+    fi
+
+# Need the commands ps, awk, kill, sleep
+    PATH=${PATH}${PATH:+:}/sbin:/bin:/usr/bin
+
+    if [ -d $VICEETC/afs.kext ]; then
+       echo "Loading AFS kernel extensions"
+       kextload $VICEETC/afs.kext
+    else
+       echo "$VICEETC/afs.kext does not exist. Skipping AFS startup."
+       exit 1
+    fi
+
+    if $KMODSTAT | perl -e 'exit not grep /openafs/, <>' ; then
+       :
+    else
+       echo  "AFS kernel extensions failed to initialize. Skipping AFS startup."
+       exit 1
+    fi
+
+#
+# Check that all of the client configuration files exist
+#
+
+    for file in $AFSD $VICEETC/cacheinfo \
+       $VICEETC/ThisCell $VICEETC/CellServDB
+      do
+      if [ ! -f ${file} ]; then
+         echo "${file} does not exist. Not starting AFS client."
+         exit 1
+      fi
+    done
+
+#
+# Check that the root directory for AFS (/afs) 
+# and the cache directory (/usr/vice/cache) both exist
+#
+
+    for dir in `awk -F: '{print $1, $2}' $VICEETC/cacheinfo`
+      do
+      if [ ! -d ${dir} ]; then
+         echo "${dir} does not exist. Not starting AFS client."
+         exit 2
+      fi
+    done
+
+    echo "Starting afsd"
+    $AFSD $AFSD_OPTIONS
+
+#
+# From /var/db/openafs/etc/config/afs.conf, call a post-init function or
+# command if it's been defined
+#
+    $AFS_POST_INIT
+
+#
+# Call afssettings (if it exists) to set customizable parameters
+#
+    if [ -x $CONFIG/afssettings ]; then
+       sleep 2
+       $CONFIG/afssettings
+    fi
+
diff --git a/src/platform/DARWIN/AFSPreference/stop_afs.sh b/src/platform/DARWIN/AFSPreference/stop_afs.sh
new file mode 100755 (executable)
index 0000000..301b8b0
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# stop_afs.sh
+# 
+#
+# Created by Claudio Bisegni on 24/06/07.
+# Copyright 2007 INFN. All rights reserved.
+
+VICEETC=$1/etc
+AFSD=$2
+echo "Stopping AFS"
+
+echo "Unmounting /afs"
+umount -f /afs 2>&1 > /dev/console
+
+echo "Shutting down afsd processes"
+$AFSD -shutdown 2>&1 > /dev/console
+
+echo "Unloading AFS kernel extensions"
+kextunload $VICEETC/afs.kext 2>&1 > /dev/console
+