// @(#)root/base:$Id: 8944840ba34631ec28efc779647618db43c0eee5 $
// Author: Fons Rademakers   15/09/95

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TSystem                                                              //
//                                                                      //
// Abstract base class defining a generic interface to the underlying   //
// Operating System.                                                    //
// This is not an ABC in the strict sense of the (C++) word. For        //
// every member function there is an implementation (often not more     //
// than a call to AbstractMethod() which prints a warning saying        //
// that the method should be overridden in a derived class), which      //
// allows a simple partial implementation for new OS'es.                //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifdef WIN32
#include <io.h>
#endif
#include <stdlib.h>
#include <errno.h>
#include <algorithm>
#include <sys/stat.h>

#include "Riostream.h"
#include "TSystem.h"
#include "TApplication.h"
#include "TException.h"
#include "TROOT.h"
#include "TClass.h"
#include "TClassTable.h"
#include "TEnv.h"
#include "TBrowser.h"
#include "TString.h"
#include "TOrdCollection.h"
#include "TInterpreter.h"
#include "TRegexp.h"
#include "TTimer.h"
#include "TObjString.h"
#include "TError.h"
#include "TPluginManager.h"
#include "TUrl.h"
#include "TVirtualMutex.h"
#include "compiledata.h"
#include "RConfigure.h"

const char *gRootDir;
const char *gProgName;
const char *gProgPath;

TSystem      *gSystem   = 0;
TFileHandler *gXDisplay = 0;  // Display server event handler, set in TGClient

static Int_t *gLibraryVersion    = 0;   // Set in TVersionCheck, used in Load()
static Int_t  gLibraryVersionIdx = 0;   // Set in TVersionCheck, used in Load()
static Int_t  gLibraryVersionMax = 256;

ClassImp(TProcessEventTimer)

//______________________________________________________________________________
TProcessEventTimer::TProcessEventTimer(Long_t delay) : TTimer(delay, kFALSE)
{
   // Create async event processor timer. Delay is in milliseconds.

   gROOT->SetInterrupt(kFALSE);
   TurnOn();
}

//______________________________________________________________________________
Bool_t TProcessEventTimer::ProcessEvents()
{
   // Process events if timer did time out. Returns kTRUE if interrupt
   // flag is set (by hitting a key in the canvas or selecting the
   // Interrupt menu item in canvas or some other action).

   if (fTimeout) {
      if (gSystem->ProcessEvents()) {
         Remove();
         return kTRUE;
      } else {
         Reset();
         return kFALSE;
      }
   }
   return kFALSE;
}



ClassImp(TSystem)

TVirtualMutex* gSystemMutex = 0;

//______________________________________________________________________________
TSystem::TSystem(const char *name, const char *title) : TNamed(name, title), fAclicProperties(0)
{
   // Create a new OS interface.

   if (gSystem && name[0] != '-' && strcmp(name, "Generic"))
      Error("TSystem", "only one instance of TSystem allowed");

   fOnExitList          = 0;
   fSignalHandler       = 0;
   fFileHandler         = 0;
   fStdExceptionHandler = 0;
   fTimers              = 0;
   fCompiled            = 0;
   fHelpers             = 0;
   fInsideNotify        = kFALSE;
   fBeepDuration        = 0;
   fBeepFreq            = 0;
   fReadmask            = 0;
   fWritemask           = 0;
   fReadready           = 0;
   fWriteready          = 0;
   fSignals             = 0;
   fDone                = kFALSE;
   fAclicMode           = kDefault;
   fInControl           = kFALSE;
   fLevel               = 0;
   fMaxrfd              = -1;
   fMaxwfd              = -1;
   fNfd                 = 0;
   fSigcnt              = 0;

   if (!gLibraryVersion) {
      gLibraryVersion = new Int_t [gLibraryVersionMax];
      memset(gLibraryVersion, 0, gLibraryVersionMax*sizeof(Int_t));
   }
}

//______________________________________________________________________________
TSystem::~TSystem()
{
   // Delete the OS interface.

   if (fOnExitList) {
      fOnExitList->Delete();
      SafeDelete(fOnExitList);
   }

   if (fSignalHandler) {
      fSignalHandler->Delete();
      SafeDelete(fSignalHandler);
   }

   if (fFileHandler) {
      fFileHandler->Delete();
      SafeDelete(fFileHandler);
   }

   if (fStdExceptionHandler) {
      fStdExceptionHandler->Delete();
      SafeDelete(fStdExceptionHandler);
   }

   if (fTimers) {
      fTimers->Delete();
      SafeDelete(fTimers);
   }

   if (fCompiled) {
      fCompiled->Delete();
      SafeDelete(fCompiled);
   }

   if (fHelpers) {
      fHelpers->Delete();
      SafeDelete(fHelpers);
   }

   if (gSystem == this)
      gSystem = 0;
}

//______________________________________________________________________________
Bool_t TSystem::Init()
{
   // Initialize the OS interface.

   fNfd    = 0;
   fMaxrfd = -1;
   fMaxwfd = -1;

   fSigcnt = 0;
   fLevel  = 0;

   fSignalHandler       = new TOrdCollection;
   fFileHandler         = new TOrdCollection;
   fStdExceptionHandler = new TOrdCollection;
   fTimers              = new TOrdCollection;

   fBuildArch     = BUILD_ARCH;
   fBuildCompiler = COMPILER;
   fBuildCompilerVersion = COMPILERVERS;
   fBuildNode     = BUILD_NODE;
   fFlagsDebug    = CXXDEBUG;
   fFlagsOpt      = CXXOPT;
   fIncludePath   = INCLUDEPATH;
   fLinkedLibs    = LINKEDLIBS;
   fSoExt         = SOEXT;
   fObjExt        = OBJEXT;
   fAclicMode     = kDefault;
   fMakeSharedLib = MAKESHAREDLIB;
   fMakeExe       = MAKEEXE;
   fCompiled      = new TOrdCollection;

   if (gEnv && fBeepDuration == 0 && fBeepFreq == 0) {
      fBeepDuration = gEnv->GetValue("Root.System.BeepDuration", 100);
      fBeepFreq     = gEnv->GetValue("Root.System.BeepFreq", 440);
   }
   if (!fName.CompareTo("Generic")) return kTRUE;
   return kFALSE;
}

//______________________________________________________________________________
void TSystem::SetProgname(const char *name)
{
   // Set the application name (from command line, argv[0]) and copy it in
   // gProgName.

   gProgName = StrDup(name);
}

//______________________________________________________________________________
void TSystem::SetDisplay()
{
   // Set DISPLAY environment variable based on utmp entry. Only for UNIX.
}

//______________________________________________________________________________
void TSystem::SetErrorStr(const char *errstr)
{
   // Set the system error string. This string will be used by GetError().
   // To be used in case one does not want or can use the system error
   // string (e.g. because error is generated by a third party POSIX like
   // library that does not use standard errno).

   ResetErrno();   // so GetError() uses the fLastErrorString
   fLastErrorString = errstr;
}

//______________________________________________________________________________
const char *TSystem::GetError()
{
   // Return system error string.

   if (GetErrno() == 0 && fLastErrorString != "")
      return fLastErrorString;
   return Form("errno: %d", GetErrno());
}

//______________________________________________________________________________
Int_t TSystem::GetErrno()
{
   // Static function returning system error number.

#ifdef _REENTRANT
   return errno; // errno can be a macro if _REENTRANT is set
#else
#ifdef R__SOLARIS_CC50
   return ::errno;
#else
   return errno;
#endif
#endif
}

//______________________________________________________________________________
void TSystem::ResetErrno()
{
   // Static function resetting system error number.

#ifdef _REENTRANT
   errno = 0; // errno can be a macro if _REENTRANT is set
#else
#ifdef R__SOLARIS_CC50
   ::errno = 0;
#else
   errno = 0;
#endif
#endif
}

//______________________________________________________________________________
void TSystem::RemoveOnExit(TObject *obj)
{
   // Objects that should be deleted on exit of the OS interface.

   if (fOnExitList == 0)
      fOnExitList = new TOrdCollection;
   if (fOnExitList->FindObject(obj) == 0)
      fOnExitList->Add(obj);
}

//______________________________________________________________________________
const char *TSystem::HostName()
{
   // Return the system's host name.

   return "Local host";
}

//______________________________________________________________________________
void TSystem::NotifyApplicationCreated()
{
   // Hook to tell TSystem that the TApplication object has been created.

   // Currently needed only for WinNT interface.
}

//______________________________________________________________________________
void TSystem::Beep(Int_t freq /*=-1*/, Int_t duration /*=-1*/,
                   Bool_t setDefault /*=kFALSE*/)
{
   // Beep for duration milliseconds with a tone of freqency freq.
   // Defaults to printing the '\a' character to stdout.
   // If freq or duration is <0 respectively, use default value.
   // If setDefault is set, only set the frequency and duration as
   // new defaults, but don't beep.
   // If default freq or duration is <0, never beep (silence)

   if (setDefault) {
      fBeepFreq     = freq;
      fBeepDuration = duration;
      return;
   }
   if (fBeepDuration < 0 || fBeepFreq < 0) return; // silence
   if (freq < 0) freq = fBeepFreq;
   if (duration < 0) duration = fBeepDuration;
   DoBeep(freq, duration);
}

//---- EventLoop ---------------------------------------------------------------

//______________________________________________________________________________
void TSystem::Run()
{
   // System event loop.

   fInControl = kTRUE;
   fDone      = kFALSE;

loop_entry:
   try {
      RETRY {
         while (!fDone) {
            gApplication->StartIdleing();
            InnerLoop();
            gApplication->StopIdleing();
         }
      } ENDTRY;
   }
   catch (std::exception& exc) {
      TIter next(fStdExceptionHandler);
      TStdExceptionHandler* eh = 0;
      while ((eh = (TStdExceptionHandler*) next())) {
         switch (eh->Handle(exc))
         {
            case TStdExceptionHandler::kSEProceed:
               break;
            case TStdExceptionHandler::kSEHandled:
               goto loop_entry;
               break;
            case TStdExceptionHandler::kSEAbort:
               Warning("Run", "instructed to abort");
               goto loop_end;
               break;
         }
      }
      throw;
   }
   catch (const char *str) {
      printf("%s\n", str);
   }
   // handle every exception
   catch (...) {
      Warning("Run", "handle uncaugth exception, terminating");
   }

loop_end:
   fInControl = kFALSE;
}

//______________________________________________________________________________
void TSystem::ExitLoop()
{
   // Exit from event loop.

   fDone = kTRUE;
}

//______________________________________________________________________________
void TSystem::InnerLoop()
{
   // Inner event loop.

   fLevel++;
   DispatchOneEvent();
   fLevel--;
}

//______________________________________________________________________________
Bool_t TSystem::ProcessEvents()
{
   // Process pending events (GUI, timers, sockets). Returns the result of
   // TROOT::IsInterrupted(). The interrupt flag (TROOT::SetInterrupt())
   // can be set during the handling of the events. This mechanism allows
   // macros running in tight calculating loops to be interrupted by some
   // GUI event (depending on the interval with which this method is
   // called). For example hitting ctrl-c in a canvas will set the
   // interrupt flag.

   gROOT->SetInterrupt(kFALSE);

   if (!gROOT->TestBit(TObject::kInvalidObject))
      DispatchOneEvent(kTRUE);

   return gROOT->IsInterrupted();
}

//______________________________________________________________________________
void TSystem::DispatchOneEvent(Bool_t)
{
   // Dispatch a single event.

   AbstractMethod("DispatchOneEvent");
}

//______________________________________________________________________________
void TSystem::Sleep(UInt_t)
{
   // Sleep milliSec milli seconds.

   AbstractMethod("Sleep");
}

//______________________________________________________________________________
Int_t TSystem::Select(TList *, Long_t)
{
   // Select on active file descriptors (called by TMonitor).

   AbstractMethod("Select");
   return -1;
}
//______________________________________________________________________________
Int_t TSystem::Select(TFileHandler *, Long_t)
{
   // Select on active file descriptors (called by TMonitor).

   AbstractMethod("Select");
   return -1;
}

//---- handling of system events -----------------------------------------------
//______________________________________________________________________________
TTime TSystem::Now()
{
   // Get current time in milliseconds since 0:00 Jan 1 1995.

   return TTime(0);
}

//______________________________________________________________________________
void TSystem::AddTimer(TTimer *ti)
{
   // Add timer to list of system timers.

   if (ti && fTimers && (fTimers->FindObject(ti) == 0))
      fTimers->Add(ti);
}

//______________________________________________________________________________
TTimer *TSystem::RemoveTimer(TTimer *ti)
{
   // Remove timer from list of system timers. Returns removed timer or 0
   // if timer was not active.

   if (fTimers) {
      TTimer *tr = (TTimer*) fTimers->Remove(ti);
      return tr;
   }
   return 0;
}

//______________________________________________________________________________
Long_t TSystem::NextTimeOut(Bool_t mode)
{
   // Time when next timer of mode (synchronous=kTRUE or
   // asynchronous=kFALSE) will time-out (in ms).

   if (!fTimers) return -1;

   TOrdCollectionIter it((TOrdCollection*)fTimers);
   TTimer *t, *to = 0;
   Long64_t tt, tnow = Now();
   Long_t   timeout = -1;

   while ((t = (TTimer *) it.Next())) {
      if (t->IsSync() == mode) {
         tt = (Long64_t)t->GetAbsTime() - tnow;
         if (tt < 0) tt = 0;
         if (timeout == -1) {
            timeout = (Long_t)tt;
            to = t;
         }
         if (tt < timeout) {
            timeout = (Long_t)tt;
            to = t;
         }
      }
   }

   if (to && to->IsAsync() && timeout > 0) {
      if (to->IsInterruptingSyscalls())
         SigAlarmInterruptsSyscalls(kTRUE);
      else
         SigAlarmInterruptsSyscalls(kFALSE);
   }

   return timeout;
}

//______________________________________________________________________________
void TSystem::AddSignalHandler(TSignalHandler *h)
{
   // Add a signal handler to list of system signal handlers. Only adds
   // the handler if it is not already in the list of signal handlers.

   if (h && fSignalHandler && (fSignalHandler->FindObject(h) == 0))
      fSignalHandler->Add(h);
}

//______________________________________________________________________________
TSignalHandler *TSystem::RemoveSignalHandler(TSignalHandler *h)
{
   // Remove a signal handler from list of signal handlers. Returns
   // the handler or 0 if the handler was not in the list of signal handlers.

   if (fSignalHandler)
      return (TSignalHandler *)fSignalHandler->Remove(h);

   return 0;
}

//______________________________________________________________________________
void TSystem::AddFileHandler(TFileHandler *h)
{
   // Add a file handler to the list of system file handlers. Only adds
   // the handler if it is not already in the list of file handlers.

   if (h && fFileHandler && (fFileHandler->FindObject(h) == 0))
      fFileHandler->Add(h);
}

//______________________________________________________________________________
TFileHandler *TSystem::RemoveFileHandler(TFileHandler *h)
{
   // Remove a file handler from the list of file handlers. Returns
   // the handler or 0 if the handler was not in the list of file handlers.

   if (fFileHandler)
      return (TFileHandler *)fFileHandler->Remove(h);

   return 0;
}

//______________________________________________________________________________
void TSystem::ResetSignal(ESignals /*sig*/, Bool_t /*reset*/)
{
   // If reset is true reset the signal handler for the specified signal
   // to the default handler, else restore previous behaviour.

   AbstractMethod("ResetSignal");
}

//______________________________________________________________________________
void TSystem::ResetSignals()
{
   // Reset signals handlers to previous behaviour.

   AbstractMethod("ResetSignals");
}

//______________________________________________________________________________
void TSystem::IgnoreSignal(ESignals /*sig*/, Bool_t /*ignore*/)
{
   // If ignore is true ignore the specified signal, else restore previous
   // behaviour.

   AbstractMethod("IgnoreSignal");
}

//______________________________________________________________________________
void TSystem::IgnoreInterrupt(Bool_t ignore)
{
   // If ignore is true ignore the interrupt signal, else restore previous
   // behaviour. Typically call ignore interrupt before writing to disk.

   IgnoreSignal(kSigInterrupt, ignore);
}

//______________________________________________________________________________
void TSystem::AddStdExceptionHandler(TStdExceptionHandler *eh)
{
   // Add an exception handler to list of system exception handlers. Only adds
   // the handler if it is not already in the list of exception handlers.

   if (eh && fStdExceptionHandler && (fStdExceptionHandler->FindObject(eh) == 0))
      fStdExceptionHandler->Add(eh);
}

//______________________________________________________________________________
TStdExceptionHandler *TSystem::RemoveStdExceptionHandler(TStdExceptionHandler *eh)
{
   // Remove an exception handler from list of exception handlers. Returns
   // the handler or 0 if the handler was not in the list of exception handlers.

   if (fStdExceptionHandler)
      return (TStdExceptionHandler *)fStdExceptionHandler->Remove(eh);

   return 0;
}

//______________________________________________________________________________
Int_t TSystem::GetFPEMask()
{
   // Return the bitmap of conditions that trigger a floating point exception.

   AbstractMethod("GetFPEMask");
   return 0;
}

//______________________________________________________________________________
Int_t TSystem::SetFPEMask(Int_t)
{
   // Set which conditions trigger a floating point exception.
   // Return the previous set of conditions.

   AbstractMethod("SetFPEMask");
   return 0;
}

//---- Processes ---------------------------------------------------------------

//______________________________________________________________________________
int TSystem::Exec(const char*)
{
   // Execute a command.

   AbstractMethod("Exec");
   return -1;
}

//______________________________________________________________________________
FILE *TSystem::OpenPipe(const char*, const char*)
{
   // Open a pipe.

   AbstractMethod("OpenPipe");
   return 0;
}

//______________________________________________________________________________
int TSystem::ClosePipe(FILE*)
{
   // Close the pipe.

   AbstractMethod("ClosePipe");
   return -1;
}

//______________________________________________________________________________
TString TSystem::GetFromPipe(const char *command)
{
   // Execute command and return output in TString.

   TString out;

   FILE *pipe = OpenPipe(command, "r");
   if (!pipe) {
      SysError("GetFromPipe", "cannot run command \"%s\"", command);
      return out;
   }

   TString line;
   while (line.Gets(pipe)) {
      if (out != "")
         out += "\n";
      out += line;
   }

   Int_t r = ClosePipe(pipe);
   if (r) {
      Error("GetFromPipe", "command \"%s\" returned %d", command, r);
   }
   return out;
}

//______________________________________________________________________________
int TSystem::GetPid()
{
   // Get process id.
   AbstractMethod("GetPid");
   return -1;
}

//______________________________________________________________________________
void TSystem::Exit(int, Bool_t)
{
   // Exit the application.

   AbstractMethod("Exit");
}

//______________________________________________________________________________
void TSystem::Abort(int)
{
   // Abort the application.

   AbstractMethod("Abort");
}

//______________________________________________________________________________
void TSystem::StackTrace()
{
   // Print a stack trace.

   AbstractMethod("StackTrace");
}


//---- Directories -------------------------------------------------------------

//______________________________________________________________________________
TSystem *TSystem::FindHelper(const char *path, void *dirptr)
{
   // Create helper TSystem to handle file and directory operations that
   // might be special for remote file access, like via rfiod or rootd.

   if (!fHelpers)
      fHelpers = new TOrdCollection;

   TPluginHandler *h;
   TSystem *helper = 0;
   if (path) {
      if (!GetDirPtr()) {
         TUrl url(path, kTRUE);
         if (!strcmp(url.GetProtocol(), "file"))
            return 0;
      }
   }

   // look for existing helpers
   TIter next(fHelpers);
   while ((helper = (TSystem*) next()))
      if (helper->ConsistentWith(path, dirptr))
         return helper;

   if (!path)
      return 0;

   // create new helper
   TRegexp re("^root.*:");  // also roots, rootk, etc
   TString pname = path;
   if (pname.BeginsWith("xroot:") || pname.Index(re) != kNPOS) {
      // (x)rootd daemon ...
      if ((h = gROOT->GetPluginManager()->FindHandler("TSystem", path))) {
         if (h->LoadPlugin() == -1)
            return 0;
         helper = (TSystem*) h->ExecPlugin(2, path, kFALSE);
      }
   } else if ((h = gROOT->GetPluginManager()->FindHandler("TSystem", path))) {
      if (h->LoadPlugin() == -1)
         return 0;
      helper = (TSystem*) h->ExecPlugin(0);
   }

   if (helper)
      fHelpers->Add(helper);

   return helper;
}

//______________________________________________________________________________
Bool_t TSystem::ConsistentWith(const char *path, void *dirptr)
{
   // Check consistency of this helper with the one required
   // by 'path' or 'dirptr'

   Bool_t checkproto = kFALSE;
   if (path) {
      if (!GetDirPtr()) {
         TUrl url(path, kTRUE);
         if (!strncmp(url.GetProtocol(), GetName(), strlen(GetName())))
            checkproto = kTRUE;
      }
   }

   Bool_t checkdir = kFALSE;
   if (GetDirPtr() && GetDirPtr() == dirptr)
      checkdir = kTRUE;

   return (checkproto || checkdir);
}

//______________________________________________________________________________
int TSystem::MakeDirectory(const char*)
{
   // Make a directory. Returns 0 in case of success and
   // -1 if the directory could not be created (either already exists or
   // illegal path name).

   AbstractMethod("MakeDirectory");
   return 0;
}

//______________________________________________________________________________
void *TSystem::OpenDirectory(const char*)
{
   // Open a directory. Returns 0 if directory does not exist.

   AbstractMethod("OpenDirectory");
   return 0;
}

//______________________________________________________________________________
void TSystem::FreeDirectory(void*)
{
   // Free a directory.

   AbstractMethod("FreeDirectory");
}

//______________________________________________________________________________
const char *TSystem::GetDirEntry(void*)
{
   // Get a directory entry. Returns 0 if no more entries.

   AbstractMethod("GetDirEntry");
   return 0;
}

//______________________________________________________________________________
Bool_t TSystem::ChangeDirectory(const char*)
{
   // Change directory.

   AbstractMethod("ChangeDirectory");
   return kFALSE;
}

//______________________________________________________________________________
const char *TSystem::WorkingDirectory()
{
   // Return working directory.

   return 0;
}

//______________________________________________________________________________
const char *TSystem::HomeDirectory(const char*)
{
   // Return the user's home directory.

   return 0;
}

//______________________________________________________________________________
int TSystem::mkdir(const char *name, Bool_t recursive)
{
   // Make a file system directory. Returns 0 in case of success and
   // -1 if the directory could not be created (either already exists or
   // illegal path name).
   // If 'recursive' is true, makes parent directories as needed.

   if (recursive) {
      TString safeName = name; // local copy in case 'name' is output from
                               // TSystem::DirName as it uses static buffers
      TString dirname = DirName(safeName);
      if (!dirname.Length()) {
         // well we should not have to make the root of the file system!
         // (and this avoid infinite recursions!)
         return -1;
      }
      if (AccessPathName(dirname, kFileExists)) {
         int res = mkdir(dirname, kTRUE);
         if (res) return res;
      }
      if (!AccessPathName(safeName, kFileExists)) {
         return -1;
      }
   }

   return MakeDirectory(name);
}

//---- Paths & Files -----------------------------------------------------------

//______________________________________________________________________________
const char *TSystem::BaseName(const char *name)
{
   // Base name of a file name. Base name of /user/root is root.

   if (name) {
      if (name[0] == '/' && name[1] == '\0')
         return name;
      char *cp;
      if ((cp = (char*)strrchr(name, '/')))
         return ++cp;
      return name;
   }
   Error("BaseName", "name = 0");
   return 0;
}

//______________________________________________________________________________
Bool_t TSystem::IsAbsoluteFileName(const char *dir)
{
   // Return true if dir is an absolute pathname.

   if (dir)
      return dir[0] == '/';
   return kFALSE;
}

//______________________________________________________________________________
Bool_t TSystem::IsFileInIncludePath(const char *name, char **fullpath)
{
   // Return true if 'name' is a file that can be found in the ROOT include
   // path or the current directory.
   // If 'name' contains any ACLiC style information (e.g. trailing +[+][g|O]),
   // it will be striped off 'name'.
   // If fullpath is != 0, the full path to the file is returned in *fullpath,
   // which must be deleted by the caller.

   if (!name || !name[0]) return kFALSE;

   TString aclicMode;
   TString arguments;
   TString io;
   TString realname = SplitAclicMode(name, aclicMode, arguments, io);

   TString fileLocation = DirName(realname);

   TString incPath = gSystem->GetIncludePath(); // of the form -Idir1  -Idir2 -Idir3
   incPath.Append(":").Prepend(" ");
   incPath.ReplaceAll(" -I",":");       // of form :dir1 :dir2:dir3
   while ( incPath.Index(" :") != -1 ) {
      incPath.ReplaceAll(" :",":");
   }
   incPath.Prepend(fileLocation+":.:");

   char *actual = Which(incPath,realname);

   if (!actual) {
      return kFALSE;
   } else {
      if (fullpath)
         *fullpath = actual;
      else
         delete [] actual;
      return kTRUE;
   }
}

//______________________________________________________________________________
const char *TSystem::DirName(const char *pathname)
{
   // Return the directory name in pathname. DirName of /user/root is /user.
   // In case no dirname is specified "." is returned.

   if (pathname && strchr(pathname, '/')) {
      R__LOCKGUARD2(gSystemMutex);

      static int len = 0;
      static char *buf = 0;
      int pathlen = strlen(pathname);
      if (pathlen > len) {
         delete [] buf;
         len = pathlen;
         buf = new char [len+1];
      }
      strcpy(buf, pathname);

      char *r = buf+pathlen-1;
      // First skip the trailing '/'
      while ( r>buf && *(r)=='/') { --r; }
      // Then find the next non slash
      while ( r>buf && *(r)!='/') { --r; }
      // Then skip duplicate slashes
      // Note the 'r>buf' is a strict comparison to allows '/topdir' to return '/'
      while ( r>buf && *(r)=='/') { --r; }
      // If all was cut away, we encountered a rel. path like 'subdir/'
      // and ended up at '.'.
      if (r==buf && *(r)!='/') {
         return ".";
      }
      // And finally terminate the string to drop off the filename
      *(r+1) = '\0';

      return buf;
   }
   return ".";
}

//______________________________________________________________________________
const char *TSystem::UnixPathName(const char *name)
{
   // Convert from a Unix pathname to a local pathname. E.g. from /user/root to \user\root.

   return name;
}

//______________________________________________________________________________
char *TSystem::ConcatFileName(const char *dir, const char *name)
{
   // Concatenate a directory and a file name. User must delete returned string.

   TString nameString(name);
   PrependPathName(dir, nameString);
   return StrDup(nameString.Data());
}

//______________________________________________________________________________
const char *TSystem::PrependPathName(const char *, TString&)
{
   // Concatenate a directory and a file name.

   AbstractMethod("PrependPathName");
   return 0;
}


//---- Paths & Files -----------------------------------------------------------

//______________________________________________________________________________
const char *TSystem::ExpandFileName(const char *fname)
{
   // Expand a pathname getting rid of special shell characters like ~.$, etc.
   // For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
   // environment variables in a pathname. If compatibility is not an issue
   // you can use on Unix directly $XXX. This is a protected function called
   // from the OS specific system classes, like TUnixSystem and TWinNTSystem.
   // Returns the expanded filename or 0 in case of error.

   const int   kBufSize = kMAXPATHLEN;
   int         n, ier, iter, lx, ncopy;
   char       *inp, *out, *x, *t, buff[kBufSize*4];
   const char *b, *c, *e;
   const char *p;
   static char xname[kBufSize];

   R__LOCKGUARD2(gSystemMutex);

   iter = 0; xname[0] = 0; inp = buff + kBufSize; out = inp + kBufSize;
   inp[-1] = ' '; inp[0] = 0; out[-1] = ' ';
   c = fname + strspn(fname, " \t\f\r");
   //VP  if (isalnum(c[0])) { strcpy(inp, WorkingDirectory()); strcat(inp, "/"); } // add $cwd

   strlcat(inp, c, kBufSize);

again:
   iter++; c = inp; ier = 0;
   x = out; x[0] = 0;

   p = 0; e = 0;
   if (c[0] == '~' && c[1] == '/') { // ~/ case
      p = HomeDirectory();
      e = c + 1;
      if (p) {                         // we have smth to copy
         strlcpy(x, p, kBufSize);
         x += strlen(p);
         c = e;
      } else {
         ++ier;
         ++c;
      }
   } else if (c[0] == '~' && c[1] != '/') { // ~user case
      n = strcspn(c+1, "/ ");
      buff[0] = 0;
      strncat(buff, c+1, n);
      p = HomeDirectory(buff);
      e = c+1+n;
      if (p) {                          // we have smth to copy
         strlcpy(x, p, kBufSize);
         x += strlen(p);
         c = e;
      } else {
         ++ier;
         ++c;
      }
   }

   for ( ; c[0]; c++) {

      p = 0; e = 0;

      if (c[0] == '.' && c[1] == '/' && c[-1] == ' ') { // $cwd
         strlcpy(buff, WorkingDirectory(), kBufSize);
         p = buff;
         e = c + 1;
      }
      if (p) {                          // we have smth to copy */
         strlcpy(x, p, kBufSize); x += strlen(p); c = e-1; continue;
      }

      if (c[0] != '$') {                // not $, simple copy
         x++[0] = c[0];
      } else {                          // we have a $
         b = c+1;
         if (c[1] == '(') b++;
         if (c[1] == '{') b++;
         if (b[0] == '$')
            e = b+1;
         else
            for (e = b; isalnum(e[0]) || e[0] == '_'; e++) ;
         buff[0] = 0; strncat(buff, b, e-b);
         p = Getenv(buff);
         if (!p) {                      // too bad, try UPPER case
            for (t = buff; (t[0] = toupper(t[0])); t++) ;
            p = Getenv(buff);
         }
         if (!p) {                      // too bad, try Lower case
            for (t = buff; (t[0] = tolower(t[0])); t++) ;
            p = Getenv(buff);
         }
         if (!p && !strcmp(buff, "cwd")) { // it is $cwd
            strlcpy(buff, WorkingDirectory(), kBufSize);
            p = buff;
         }
         if (!p && !strcmp(buff, "$")) { // it is $$ (replace by GetPid())
            snprintf(buff,kBufSize*4, "%d", GetPid());
            p = buff;
         }
         if (!p) {                      // too bad, nothing can help
#ifdef WIN32
            // if we're on windows, we can have \\SomeMachine\C$ - don't
            // complain about that, if '$' is followed by nothing or a
            // path delimiter.
            if (c[1] && c[1]!='\\' && c[1]!=';' && c[1]!='/')
               ier++;
#else
            ier++;
#endif
            x++[0] = c[0];
         } else {                       // It is OK, copy result
            int lp = strlen(p);
            if (lp >= kBufSize) {
               // make sure lx will be >= kBufSize (see below)
               strlcpy(x, p, kBufSize);
               x += kBufSize;
               break;
            } else
               strcpy(x,p); x += lp; c = (b==c+1) ? e-1 : e;
         }
      }
   }

   x[0] = 0; lx = x - out;
   if (ier && iter < 3) { strlcpy(inp, out, kBufSize); goto again; }
   ncopy = (lx >= kBufSize) ? kBufSize-1 : lx;
   xname[0] = 0; strncat(xname, out, ncopy);

   if (ier || ncopy != lx) {
      ::Error("TSystem::ExpandFileName", "input: %s, output: %s", fname, xname);
      return 0;
   }

   return xname;
}

//______________________________________________________________________________
Bool_t TSystem::ExpandPathName(TString&)
{
   // Expand a pathname getting rid of special shell characaters like ~.$, etc.
   // For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
   // environment variables in a pathname. If compatibility is not an issue
   // you can use on Unix directly $XXX.

   return kFALSE;
}

//______________________________________________________________________________
char *TSystem::ExpandPathName(const char *)
{
   // Expand a pathname getting rid of special shell characaters like ~.$, etc.
   // For Unix/Win32 compatibility use $(XXX) instead of $XXX when using
   // environment variables in a pathname. If compatibility is not an issue
   // you can use on Unix directly $XXX. The user must delete returned string.

   return 0;
}

//______________________________________________________________________________
Bool_t TSystem::AccessPathName(const char *, EAccessMode)
{
   // Returns FALSE if one can access a file using the specified access mode.
   // The file name must not contain any special shell characters line ~ or $,
   // in those cases first call ExpandPathName().
   // Attention, bizarre convention of return value!!

   return kFALSE;
}

//______________________________________________________________________________
Bool_t TSystem::IsPathLocal(const char *path)
{
   // Returns TRUE if the url in 'path' points to the local file system.
   // This is used to avoid going through the NIC card for local operations.

   Bool_t localPath = kTRUE;

   TUrl url(path);
   if (strlen(url.GetHost()) > 0) {
      // Check locality
      localPath = kFALSE;
      TInetAddress a(gSystem->GetHostByName(url.GetHost()));
      TInetAddress b(gSystem->GetHostByName(gSystem->HostName()));
      if (!strcmp(a.GetHostName(), b.GetHostName()) ||
          !strcmp(a.GetHostAddress(), b.GetHostAddress())) {
         // Host OK
         localPath = kTRUE;
         // Check the user if specified
         if (strlen(url.GetUser()) > 0) {
            UserGroup_t *u = gSystem->GetUserInfo();
            if (u) {
               if (strcmp(u->fUser, url.GetUser()))
                  // Requested a different user
                  localPath = kFALSE;
               delete u;
            }
         }
      }
   }
   // Done
   return localPath;
}

//______________________________________________________________________________
int TSystem::CopyFile(const char *, const char *, Bool_t)
{
   // Copy a file. If overwrite is true and file already exists the
   // file will be overwritten. Returns 0 when successful, -1 in case
   // of file open failure, -2 in case the file already exists and overwrite
   // was false and -3 in case of error during copy.

   AbstractMethod("CopyFile");
   return -1;
}

//______________________________________________________________________________
int TSystem::Rename(const char *, const char *)
{
   // Rename a file.

   AbstractMethod("Rename");
   return -1;
}

//______________________________________________________________________________
int TSystem::Link(const char *, const char *)
{
   // Create a link from file1 to file2.

   AbstractMethod("Link");
   return -1;
}

//______________________________________________________________________________
int TSystem::Symlink(const char *, const char *)
{
   // Create a symbolic link from file1 to file2.

   AbstractMethod("Symlink");
   return -1;
}

//______________________________________________________________________________
int TSystem::Unlink(const char *)
{
   // Unlink, i.e. remove, a file.

   AbstractMethod("Unlink");
   return -1;
}

//______________________________________________________________________________
int TSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size,
                         Long_t *flags, Long_t *modtime)
{
   // Get info about a file: id, size, flags, modification time.
   // Id      is (statbuf.st_dev << 24) + statbuf.st_ino
   // Size    is the file size
   // Flags   is file type: 0 is regular file, bit 0 set executable,
   //                       bit 1 set directory, bit 2 set special file
   //                       (socket, fifo, pipe, etc.)
   // Modtime is modification time.
   // The function returns 0 in case of success and 1 if the file could
   // not be stat'ed.

   Long64_t lsize;

   int res = GetPathInfo(path, id, &lsize, flags, modtime);

   if (res == 0 && size) {
      if (sizeof(Long_t) == 4 && lsize > kMaxInt) {
         Error("GetPathInfo", "file %s > 2 GB, use GetPathInfo() with Long64_t size", path);
         *size = kMaxInt;
      } else {
         *size = (Long_t)lsize;
      }
   }

   return res;
}

//______________________________________________________________________________
int TSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size,
                         Long_t *flags, Long_t *modtime)
{
   // Get info about a file: id, size, flags, modification time.
   // Id      is (statbuf.st_dev << 24) + statbuf.st_ino
   // Size    is the file size
   // Flags   is file type: 0 is regular file, bit 0 set executable,
   //                       bit 1 set directory, bit 2 set special file
   //                       (socket, fifo, pipe, etc.)
   // Modtime is modification time.
   // The function returns 0 in case of success and 1 if the file could
   // not be stat'ed.

   FileStat_t buf;

   int res = GetPathInfo(path, buf);

   if (res == 0) {
      if (id)
         *id = (buf.fDev << 24) + buf.fIno;
      if (size)
         *size = buf.fSize;
      if (modtime)
         *modtime = buf.fMtime;
      if (flags) {
         *flags = 0;
         if (buf.fMode & (kS_IXUSR|kS_IXGRP|kS_IXOTH))
            *flags |= 1;
         if (R_ISDIR(buf.fMode))
            *flags |= 2;
         if (!R_ISREG(buf.fMode) && !R_ISDIR(buf.fMode))
            *flags |= 4;
      }
   }

   return res;
}

//______________________________________________________________________________
int TSystem::GetPathInfo(const char *, FileStat_t &)
{
   // Get info about a file. Info is returned in the form of a FileStat_t
   // structure (see TSystem.h).
   // The function returns 0 in case of success and 1 if the file could
   // not be stat'ed.

   AbstractMethod("GetPathInfo(const char*, FileStat_t&)");
   return 1;
}

//______________________________________________________________________________
int TSystem::GetFsInfo(const char *, Long_t *, Long_t *, Long_t *, Long_t *)
{
   // Get info about a file system: fs type, block size, number of blocks,
   // number of free blocks.

   AbstractMethod("GetFsInfo");
   return 1;
}

//______________________________________________________________________________
const char *TSystem::TempDirectory() const
{
   // Return a user configured or systemwide directory to create
   // temporary files in.

   AbstractMethod("TempDirectory");
   return 0;
}

//______________________________________________________________________________
FILE *TSystem::TempFileName(TString &, const char *)
{
   // Create a secure temporary file by appending a unique
   // 6 letter string to base. The file will be created in
   // a standard (system) directory or in the directory
   // provided in dir. The full filename is returned in base
   // and a filepointer is returned for safely writing to the file
   // (this avoids certain security problems). Returns 0 in case
   // of error.

   AbstractMethod("TempFileName");
   return 0;
}

//______________________________________________________________________________
int TSystem::Chmod(const char *, UInt_t)
{
   // Set the file permission bits. Returns -1 in case or error, 0 otherwise.

   AbstractMethod("Chmod");
   return -1;
}

//______________________________________________________________________________
int TSystem::Umask(Int_t)
{
   // Set the process file creation mode mask.

   AbstractMethod("Umask");
   return -1;
}

//______________________________________________________________________________
int TSystem::Utime(const char *, Long_t, Long_t)
{
   // Set the a files modification and access times. If actime = 0 it will be
   // set to the modtime. Returns 0 on success and -1 in case of error.

   AbstractMethod("Utime");
   return -1;
}

//______________________________________________________________________________
const char *TSystem::FindFile(const char *, TString&, EAccessMode)
{
   // Find location of file in a search path. Return value points to TString for
   // compatibility with Which(const char *, const char *, EAccessMode).
   // Returns 0 in case file is not found.

   AbstractMethod("FindFile");
   return 0;
}

//______________________________________________________________________________
char *TSystem::Which(const char *search, const char *wfil, EAccessMode mode)
{
   // Find location of file in a search path. User must delete returned string.
   // Returns 0 in case file is not found.

   TString wfilString(wfil);
   FindFile(search, wfilString, mode);
   if (wfilString.IsNull()) return 0;
   return StrDup(wfilString.Data());
}

//---- Users & Groups ----------------------------------------------------------

//______________________________________________________________________________
Int_t TSystem::GetUid(const char * /*user*/)
{
   // Returns the user's id. If user = 0, returns current user's id.

   AbstractMethod("GetUid");
   return 0;
}

//______________________________________________________________________________
Int_t TSystem::GetEffectiveUid()
{
   // Returns the effective user id. The effective id corresponds to the
   // set id bit on the file being executed.

   AbstractMethod("GetEffectiveUid");
   return 0;
}

//______________________________________________________________________________
Int_t TSystem::GetGid(const char * /*group*/)
{
   // Returns the group's id. If group = 0, returns current user's group.

   AbstractMethod("GetGid");
   return 0;
}

//______________________________________________________________________________
Int_t TSystem::GetEffectiveGid()
{
   // Returns the effective group id. The effective group id corresponds
   // to the set id bit on the file being executed.

   AbstractMethod("GetEffectiveGid");
   return 0;
}

//______________________________________________________________________________
UserGroup_t *TSystem::GetUserInfo(Int_t /*uid*/)
{
   // Returns all user info in the UserGroup_t structure. The returned
   // structure must be deleted by the user. In case of error 0 is returned.

   AbstractMethod("GetUserInfo");
   return 0;
}

//______________________________________________________________________________
UserGroup_t *TSystem::GetUserInfo(const char * /*user*/)
{
   // Returns all user info in the UserGroup_t structure. If user = 0, returns
   // current user's id info. The returned structure must be deleted by the
   // user. In case of error 0 is returned.

   AbstractMethod("GetUserInfo");
   return 0;
}

//______________________________________________________________________________
UserGroup_t *TSystem::GetGroupInfo(Int_t /*gid*/)
{
   // Returns all group info in the UserGroup_t structure. The only active
   // fields in the UserGroup_t structure for this call are:
   //    fGid and fGroup
   // The returned structure must be deleted by the user. In case of
   // error 0 is returned.

   AbstractMethod("GetGroupInfo");
   return 0;
}

//______________________________________________________________________________
UserGroup_t *TSystem::GetGroupInfo(const char * /*group*/)
{
   // Returns all group info in the UserGroup_t structure. The only active
   // fields in the UserGroup_t structure for this call are:
   //    fGid and fGroup
   // If group = 0, returns current user's group. The returned structure
   // must be deleted by the user. In case of error 0 is returned.

   AbstractMethod("GetGroupInfo");
   return 0;
}

//---- environment manipulation ------------------------------------------------

//______________________________________________________________________________
void TSystem::Setenv(const char*, const char*)
{
   // Set environment variable.

   AbstractMethod("Setenv");
}

//______________________________________________________________________________
void TSystem::Unsetenv(const char *name)
{
   // Unset environment variable.

   Setenv(name, "");
}

//______________________________________________________________________________
const char *TSystem::Getenv(const char*)
{
   // Get environment variable.

   AbstractMethod("Getenv");
   return 0;
}

//---- System Logging ----------------------------------------------------------

//______________________________________________________________________________
void TSystem::Openlog(const char *, Int_t, ELogFacility)
{
   // Open connection to system log daemon. For the use of the options and
   // facility see the Unix openlog man page.

   AbstractMethod("Openlog");
}

//______________________________________________________________________________
void TSystem::Syslog(ELogLevel, const char *)
{
   // Send mess to syslog daemon. Level is the logging level and mess the
   // message that will be written on the log.

   AbstractMethod("Syslog");
}

//______________________________________________________________________________
void TSystem::Closelog()
{
   // Close connection to system log daemon.

   AbstractMethod("Closelog");
}

//---- Standard output redirection ---------------------------------------------

//______________________________________________________________________________
Int_t TSystem::RedirectOutput(const char *, const char *, RedirectHandle_t *)
{
   // Redirect standard output (stdout, stderr) to the specified file.
   // If the file argument is 0 the output is set again to stderr, stdout.
   // The second argument specifies whether the output should be added to the
   // file ("a", default) or the file be truncated before ("w").
   // The implementations of this function save internally the current state into
   // a static structure.
   // The call can be made reentrant by specifying the opaque structure pointed
   // by 'h', which is filled with the relevant information. The handle 'h'
   // obtained on the first call must then be used in any subsequent call,
   // included ShowOutput, to display the redirected output.
   // Returns 0 on success, -1 in case of error.

   AbstractMethod("RedirectOutput");
   return -1;
}

//______________________________________________________________________________
void TSystem::ShowOutput(RedirectHandle_t *h)
{
   // Display the content associated with the redirection described by the
   // opaque handle 'h'.

   // Check input ...
   if (!h) {
      Error("ShowOutput", "handle not specified");
      return;
   }

   // ... and file access
   if (gSystem->AccessPathName(h->fFile, kReadPermission)) {
      Error("ShowOutput", "file '%s' cannot be read", h->fFile.Data());
      return;
   }

   // Open the file
   FILE *f = 0;
   if (!(f = fopen(h->fFile.Data(), "r"))) {
      Error("ShowOutput", "file '%s' cannot be open", h->fFile.Data());
      return;
   }

   // Determine the number of bytes to be read from the file.
   off_t ltot = lseek(fileno(f), (off_t) 0, SEEK_END);
   Int_t begin = (h->fReadOffSet > 0 && h->fReadOffSet < ltot) ? h->fReadOffSet : 0;
   lseek(fileno(f), (off_t) begin, SEEK_SET);
   Int_t left = ltot - begin;

   // Now readout from file
   const Int_t kMAXBUF = 16384;
   char buf[kMAXBUF];
   Int_t wanted = (left > kMAXBUF-1) ? kMAXBUF-1 : left;
   Int_t len;
   do {
      while ((len = read(fileno(f), buf, wanted)) < 0 &&
               TSystem::GetErrno() == EINTR)
         TSystem::ResetErrno();

      if (len < 0) {
         SysError("ShowOutput", "error reading log file");
         break;
      }

      // Null-terminate
      buf[len] = 0;
      fprintf(stderr,"%s", buf);

      // Update counters
      left -= len;
      wanted = (left > kMAXBUF) ? kMAXBUF : left;

   } while (len > 0 && left > 0);

   // Do not display twice the same thing
   h->fReadOffSet = ltot;
   fclose(f);
}

//---- Dynamic Loading ---------------------------------------------------------

//______________________________________________________________________________
void TSystem::AddDynamicPath(const char *)
{
   // Add a new directory to the dynamic path.

   AbstractMethod("AddDynamicPath");
}

//______________________________________________________________________________
const char* TSystem::GetDynamicPath()
{
   // Return the dynamic path (used to find shared libraries).

   AbstractMethod("GetDynamicPath");
   return 0;
}

//______________________________________________________________________________
void TSystem::SetDynamicPath(const char *)
{
   // Set the dynamic path to a new value.
   // If the value of 'path' is zero, the dynamic path is reset to its
   // default value.

   AbstractMethod("SetDynamicPath");
}


//______________________________________________________________________________
static bool R__MatchFilename(const char *left, const char *right)
{
   // Figure out if left and right points to the same
   // object in the file system.

   if (left == right) return kTRUE;

   if (left==0 || right==0) return kFALSE;

   if ( (strcmp(right,left)==0) ) {
      return kTRUE;
   }

#ifdef G__WIN32

   char leftname[_MAX_PATH];
   char rightname[_MAX_PATH];
   _fullpath( leftname, left, _MAX_PATH );
   _fullpath( rightname, right, _MAX_PATH );
   return ((stricmp(leftname, rightname)==0));
#else
   struct stat rightBuf;
   struct stat leftBuf;
   return (   ( 0 == stat( left, & leftBuf ) )
       && ( 0 == stat( right, & rightBuf ) )
       && ( leftBuf.st_dev == rightBuf.st_dev )     // Files on same device
       && ( leftBuf.st_ino == rightBuf.st_ino )     // Files on same inode (but this is not unique on AFS so we need the next 2 test
       && ( leftBuf.st_size == rightBuf.st_size )   // Files of same size
       && ( leftBuf.st_mtime == rightBuf.st_mtime ) // Files modified at the same time
           );
#endif
}

//______________________________________________________________________________
int TSystem::Load(const char *module, const char *entry, Bool_t system)
{
   // Load a shared library. Returns 0 on successful loading, 1 in
   // case lib was already loaded, -1 in case lib does not exist
   // or in case of error and -2 in case of version mismatch.
   // When entry is specified the loaded lib is
   // searched for this entry point (return -1 when entry does not exist,
   // 0 otherwise). When the system flag is kTRUE, the library is consisdered
   // a permanent systen library that should not be unloaded during the
   // course of the session.

   // don't load libraries that have already been loaded
   TString libs( GetLibraries() );
   TString moduleBasename( BaseName(module) );
   TString l(moduleBasename);

   Ssiz_t idx = l.Last('.');
   if (idx != kNPOS) {
      l.Remove(idx+1);
   }
   idx = libs.Index(l);
   if (idx != kNPOS) {
      // The libs contains the sub-string 'l', let's make sure it is
      // not just part of a larger name.
      if (idx == 0 || libs[idx-1] == '/' || libs[idx-1] == '\\') {
         Ssiz_t len = libs.Length();
         idx += l.Length();
         if (!l.EndsWith(".") && libs[idx]=='.')
            idx++;
         // Skip the soversion.
         while (idx < len && isdigit(libs[idx])) {
            ++idx;
            // No need to test for len here, at worse idx==len and lib[idx]=='\0'
            if (libs[idx] == '.') {
               ++idx;
            }
         }
         while (idx < len && libs[idx] != '.') {
            if (libs[idx] == ' ' || idx+1 == len) {
               return 1;
            }
            ++idx;
         }
      }
   }
   if (l[l.Length()-1] == '.') {
      l.Remove(l.Length()-1);
   }
   if (l.BeginsWith("lib")) {
      l.Replace(0, 3, "-l");
      idx = libs.Index(l);
      if (idx != kNPOS &&
          (idx == 0 || libs[idx-1] == ' ') &&
          (libs[idx+l.Length()] == ' ' || libs[idx+l.Length()] == 0)) {
         return 1;
      }
   }

   char *path = DynamicPathName(module);

   int ret = -1;
   if (path) {
      // load any dependent libraries
      TString deplibs = gInterpreter->GetSharedLibDeps(moduleBasename);
      if (deplibs.IsNull()) {
         TString libmapfilename;
         libmapfilename = path;
         idx = libmapfilename.Last('.');
         if (idx != kNPOS) {
            libmapfilename.Remove(idx);
         }
         libmapfilename += ".rootmap";
         if (gSystem->GetPathInfo(libmapfilename, 0, (Long_t*)0, 0, 0) == 0) {
            if (gDebug > 0) Info("Load", "loading %s", libmapfilename.Data());
            gInterpreter->LoadLibraryMap(libmapfilename);
            deplibs = gInterpreter->GetSharedLibDeps(moduleBasename);
         }
      } else {
         TString delim(" ");
         TObjArray *tokens = deplibs.Tokenize(delim);
         for (Int_t i = tokens->GetEntriesFast()-1; i > 0; i--) {
            const char *deplib = ((TObjString*)tokens->At(i))->GetName();
            if (strcmp(module,deplib)==0) {
               continue;
            }
            if (gDebug > 0)
               Info("Load", "loading dependent library %s for library %s",
                    deplib, ((TObjString*)tokens->At(0))->GetName());
            if ((ret = Load(deplib, "", system)) < 0) {
               delete tokens;
               return ret;
            }
         }
         delete tokens;
      }
      if (!system) {
         // Mark the library in $ROOTSYS/lib as system.
         const char *dirname = DirName(path);
#ifdef ROOTLIBDIR
         TString rootlibdir = ROOTLIBDIR;
#else
         TString rootlibdir = "lib";
         PrependPathName(gRootDir, rootlibdir);
#endif
         system = R__MatchFilename(rootlibdir,dirname);

         if (!system) {
#ifdef ROOTBINDIR
            TString rootbindir = ROOTBINDIR;
#else
            TString rootbindir = "bin";
            PrependPathName(gRootDir, rootbindir);
#endif
            system = R__MatchFilename(rootbindir,dirname);
         }
      }

      gLibraryVersionIdx++;
      if (gLibraryVersionIdx == gLibraryVersionMax) {
         gLibraryVersionMax *= 2;
         gLibraryVersion = TStorage::ReAllocInt(gLibraryVersion, gLibraryVersionMax, gLibraryVersionIdx);
      }
      ret = gInterpreter->Load(path, system);
      if (ret < 0) ret = -1;
      if (gDebug > 0)
         Info("Load", "loaded library %s, status %d", path, ret);
      if (ret == 0 && gLibraryVersion[gLibraryVersionIdx]) {
         int v = TROOT::ConvertVersionCode2Int(gLibraryVersion[gLibraryVersionIdx]);
         Error("Load", "version mismatch, %s = %d, ROOT = %d",
               path, v, gROOT->GetVersionInt());
         ret = -2;
         gLibraryVersion[gLibraryVersionIdx] = 0;
      }
      gLibraryVersionIdx--;
      delete [] path;
   }

   if (!entry || !entry[0] || ret < 0) return ret;

   Func_t f = DynFindSymbol(module, entry);
   if (f) return 0;
   return -1;
}

//______________________________________________________________________________
char *TSystem::DynamicPathName(const char *lib, Bool_t quiet /*=kFALSE*/)
{
   // Find a dynamic library called lib using the system search paths.
   // Appends known extensions if needed. Returned string must be deleted
   // by the user!

   TString sLib(lib);
   if (FindDynamicLibrary(sLib, quiet))
      return StrDup(sLib);
   return 0;
}

//______________________________________________________________________________
const char *TSystem::FindDynamicLibrary(TString&, Bool_t)
{
   // Find a dynamic library using the system search paths. lib will be updated
   // to contain the absolute filename if found. Returns lib if found, or NULL
   // if a library called lib was not found.
   // This function does not open the library.

   AbstractMethod("FindDynamicLibrary");
   return 0;
}

//______________________________________________________________________________
Func_t TSystem::DynFindSymbol(const char * /*lib*/, const char *entry)
{
   // Find specific entry point in specified library. Specify "*" for lib
   // to search in all libraries.

   return (Func_t) gInterpreter->FindSym(entry);
}

//______________________________________________________________________________
void TSystem::Unload(const char *module)
{
   // Unload a shared library.

   char *path;
   if ((path = DynamicPathName(module))) {
      gInterpreter->UnloadFile(path);
      delete [] path;
   }
}

//______________________________________________________________________________
void TSystem::ListSymbols(const char *, const char *)
{
   // List symbols in a shared library.

   AbstractMethod("ListSymbols");
}

//______________________________________________________________________________
void TSystem::ListLibraries(const char *regexp)
{
   // List all loaded shared libraries. Regexp is a wildcard expression,
   // see TRegexp::MakeWildcard.

   TString libs = GetLibraries(regexp);
   TRegexp separator("[^ \\t\\s]+");
   TString s;
   Ssiz_t start = 0, index = 0, end = 0;
   int i = 0;

   Printf(" ");
   Printf("Loaded shared libraries");
   Printf("=======================");

   while ((start < libs.Length()) && (index != kNPOS)) {
      index = libs.Index(separator, &end, start);
      if (index >= 0) {
         s = libs(index, end);
         if (s.BeginsWith("-")) {
            if (s.BeginsWith("-l")) {
               Printf("%s", s.Data());
               i++;
            }
         } else {
            Printf("%s", s.Data());
            i++;
         }
      }
      start += end+1;
   }

   Printf("-----------------------");
   Printf("%d libraries loaded", i);
   Printf("=======================");
}

//______________________________________________________________________________
const char *TSystem::GetLinkedLibraries()
{
   // Get list of shared libraries loaded at the start of the executable.
   // Returns 0 in case list cannot be obtained or in case of error.

   return 0;
}

//______________________________________________________________________________
const char *TSystem::GetLibraries(const char *regexp, const char *options,
                                  Bool_t isRegexp)
{
   // Return a space separated list of loaded shared libraries.
   // Regexp is a wildcard expression, see TRegexp::MakeWildcard.
   // This list is of a format suitable for a linker, i.e it may contain
   // -Lpathname and/or -lNameOfLib.
   // Option can be any of:
   //   S: shared libraries loaded at the start of the executable, because
   //      they were specified on the link line.
   //   D: shared libraries dynamically loaded after the start of the program.
   // For MacOS only:
   //   L: list the .dylib rather than the .so (this is intended for linking)
   //      This options is not the default

   fListLibs.Clear();

   TString libs;
   TString opt(options);
   Bool_t so2dylib = (opt.First('L') != kNPOS);
   if (so2dylib)
      opt.ReplaceAll("L", "");

   if (opt.IsNull() || opt.First('D') != kNPOS)
      libs += gInterpreter->GetSharedLibs();

   // Cint currently register all libraries that
   // are loaded and have a dictionary in them, this
   // includes all the libraries that are included
   // in the list of (hard) linked libraries.

   TString slinked;
   const char *linked;
   if ((linked = GetLinkedLibraries())) {
      if (fLinkedLibs != LINKEDLIBS) {
         // This is not the default value, we need to keep the custom part.
         TString custom = fLinkedLibs;
         custom.ReplaceAll(LINKEDLIBS,linked);
         if (custom == fLinkedLibs) {
            // no replacement done, let's append linked
            slinked.Append(linked);
            slinked.Append(" ");
         }
         slinked.Append(custom);
      } else {
         slinked.Append(linked);
      }
   } else {
      slinked.Append(fLinkedLibs);
   }

   if (opt.IsNull() || opt.First('S') != kNPOS) {
      // We are done, the statically linked libraries are already included.
      if (libs.Length() == 0) {
         libs = slinked;
      } else {
         // We need to add the missing linked library

         static TString lastLinked;
         static TString lastAddMissing;
         if ( lastLinked != slinked ) {
            // Recalculate only if there was a change.
            static TRegexp separator("[^ \\t\\s]+");
            lastLinked = slinked;
            lastAddMissing.Clear();

            Ssiz_t start, index, end;
            start = index = end = 0;

            while ((start < slinked.Length()) && (index != kNPOS)) {
               index = slinked.Index(separator,&end,start);
               if (index >= 0) {
                  TString sub = slinked(index,end);
                  if (sub[0]=='-' && sub[1]=='L') {
                     lastAddMissing.Prepend(" ");
                     lastAddMissing.Prepend(sub);
                  } else {
                     if (libs.Index(sub) == kNPOS) {
                        lastAddMissing.Prepend(" ");
                        lastAddMissing.Prepend(sub);
                     }
                  }
               }
               start += end+1;
            }
         }
         libs.Prepend(lastAddMissing);
      }
   } else if (libs.Length() != 0) {
      // Let remove the statically linked library
      // from the list.
      static TRegexp separator("[^ \\t\\s]+");
      Ssiz_t start, index, end;
      start = index = end = 0;

      while ((start < slinked.Length()) && (index != kNPOS)) {
         index = slinked.Index(separator,&end,start);
         if (index >= 0) {
            TString sub = slinked(index,end);
            if (sub[0]!='-' && sub[1]!='L') {
               libs.ReplaceAll(sub,"");
            }
         }
         start += end+1;
      }
      libs = libs.Strip(TString::kBoth);
   }

   // Select according to regexp
   if (regexp && *regexp) {
      static TRegexp separator("[^ \\t\\s]+");
      TRegexp user_re(regexp, kTRUE);
      TString s;
      Ssiz_t start, index, end;
      start = index = end = 0;

      while ((start < libs.Length()) && (index != kNPOS)) {
         index = libs.Index(separator,&end,start);
         if (index >= 0) {
            s = libs(index,end);
            if ((isRegexp && s.Index(user_re) != kNPOS) ||
                (!isRegexp && s.Index(regexp) != kNPOS)) {
               if (!fListLibs.IsNull())
                  fListLibs.Append(" ");
               fListLibs.Append(s);
            }
         }
         start += end+1;
      }
   } else
      fListLibs = libs;

#if defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)
   if (so2dylib) {
      TString libs2 = fListLibs;
      TString maclibs;

      static TRegexp separator("[^ \\t\\s]+");
      static TRegexp user_so("\\.so$");

      Ssiz_t start, index, end;
      start = index = end = 0;

      while ((start < libs2.Length()) && (index != kNPOS)) {
         index = libs2.Index(separator, &end, start);
         if (index >= 0) {
            // Change .so into .dylib and remove the
            // path info if it is not accessible
            TString s = libs2(index, end);
            if (s.Index(user_so) != kNPOS) {
               s.ReplaceAll(".so",".dylib");
               if ( GetPathInfo( s, 0, (Long_t*)0, 0, 0 ) != 0 ) {
                  s.Replace( 0, s.Last('/')+1, 0, 0);
                  s.Replace( 0, s.Last('\\')+1, 0, 0);
               }
            }
            if (!maclibs.IsNull()) maclibs.Append(" ");
            maclibs.Append(s);
         }
         start += end+1;
      }
      fListLibs = maclibs;
   }
#endif

   return fListLibs;
}

//---- RPC ---------------------------------------------------------------------

//______________________________________________________________________________
TInetAddress TSystem::GetHostByName(const char *)
{
   // Get Internet Protocol (IP) address of host.

   AbstractMethod("GetHostByName");
   return TInetAddress();
}

//______________________________________________________________________________
TInetAddress TSystem::GetPeerName(int)
{
   // Get Internet Protocol (IP) address of remote host and port #.

   AbstractMethod("GetPeerName");
   return TInetAddress();
}

//______________________________________________________________________________
TInetAddress TSystem::GetSockName(int)
{
   // Get Internet Protocol (IP) address of host and port #.

   AbstractMethod("GetSockName");
   return TInetAddress();
}

//______________________________________________________________________________
int TSystem::GetServiceByName(const char *)
{
   // Get port # of internet service.

   AbstractMethod("GetServiceByName");
   return -1;
}

//______________________________________________________________________________
char *TSystem::GetServiceByPort(int)
{
   // Get name of internet service.
   AbstractMethod("GetServiceByPort");
   return 0;
}

//______________________________________________________________________________
int TSystem::OpenConnection(const char*, int, int, const char*)
{
   // Open a connection to another host.

   AbstractMethod("OpenConnection");
   return -1;
}

//______________________________________________________________________________
int TSystem::AnnounceTcpService(int, Bool_t, int, int)
{
   // Announce TCP/IP service.

   AbstractMethod("AnnounceTcpService");
   return -1;
}

//______________________________________________________________________________
int TSystem::AnnounceUdpService(int, int)
{
   // Announce UDP service.

   AbstractMethod("AnnounceUdpService");
   return -1;
}

//______________________________________________________________________________
int TSystem::AnnounceUnixService(int, int)
{
   // Announce unix domain service.

   AbstractMethod("AnnounceUnixService");
   return -1;
}

//______________________________________________________________________________
int TSystem::AnnounceUnixService(const char *, int)
{
   // Announce unix domain service.

   AbstractMethod("AnnounceUnixService");
   return -1;
}

//______________________________________________________________________________
int TSystem::AcceptConnection(int)
{
   // Accept a connection.

   AbstractMethod("AcceptConnection");
   return -1;
}

//______________________________________________________________________________
void TSystem::CloseConnection(int, Bool_t)
{
   // Close socket connection.

   AbstractMethod("CloseConnection");
}

//______________________________________________________________________________
int TSystem::RecvRaw(int, void *, int, int)
{
   // Receive exactly length bytes into buffer. Use opt to receive out-of-band
   // data or to have a peek at what is in the buffer (see TSocket).

   AbstractMethod("RecvRaw");
   return -1;
}

//______________________________________________________________________________
int TSystem::SendRaw(int, const void *, int, int)
{
   // Send exactly length bytes from buffer. Use opt to send out-of-band
   // data (see TSocket).

   AbstractMethod("SendRaw");
   return -1;
}

//______________________________________________________________________________
int TSystem::RecvBuf(int, void *, int)
{
   // Receive a buffer headed by a length indicator.

   AbstractMethod("RecvBuf");
   return -1;
}

//______________________________________________________________________________
int TSystem::SendBuf(int, const void *, int)
{
   // Send a buffer headed by a length indicator.

   AbstractMethod("SendBuf");
   return -1;
}

//______________________________________________________________________________
int TSystem::SetSockOpt(int, int, int)
{
   // Set socket option.

   AbstractMethod("SetSockOpt");
   return -1;
}

//______________________________________________________________________________
int TSystem::GetSockOpt(int, int, int*)
{
   // Get socket option.

   AbstractMethod("GetSockOpt");
   return -1;
}

//---- System, CPU and Memory info ---------------------------------------------

//______________________________________________________________________________
int TSystem::GetSysInfo(SysInfo_t *) const
{
   // Returns static system info, like OS type, CPU type, number of CPUs
   // RAM size, etc into the SysInfo_t structure. Returns -1 in case of error,
   // 0 otherwise.

   AbstractMethod("GetSysInfo");
   return -1;
}

//______________________________________________________________________________
int TSystem::GetCpuInfo(CpuInfo_t *, Int_t) const
{
   // Returns cpu load average and load info into the CpuInfo_t structure.
   // Returns -1 in case of error, 0 otherwise. Use sampleTime to set the
   // interval over which the CPU load will be measured, in ms (default 1000).

   AbstractMethod("GetCpuInfo");
   return -1;
}

//______________________________________________________________________________
int TSystem::GetMemInfo(MemInfo_t *) const
{
   // Returns ram and swap memory usage info into the MemInfo_t structure.
   // Returns -1 in case of error, 0 otherwise.

   AbstractMethod("GetMemInfo");
   return -1;
}

//______________________________________________________________________________
int TSystem::GetProcInfo(ProcInfo_t *) const
{
   // Returns cpu and memory used by this process into the ProcInfo_t structure.
   // Returns -1 in case of error, 0 otherwise.

   AbstractMethod("GetProcInfo");
   return -1;
}

//---- Script Compiler ---------------------------------------------------------

void AssignAndDelete(TString& target, char *tobedeleted)
{
   // Assign the char* value to the TString and then delete it.

   target = tobedeleted;
   delete [] tobedeleted;
}

#ifdef WIN32

static TString R__Exec(const char *cmd)
{
   // Execute a command and return the stdout in a string.

   FILE * f = gSystem->OpenPipe(cmd,"r");
   if (!f) {
      return "";
   }
   TString result;

   char x;
   while ((x = fgetc(f))!=EOF ) {
      if (x=='\n' || x=='\r') break;
      result += x;
   }

   fclose(f);
   return result;
}

static void R__FixLink(TString &cmd)
{
   // Replace the call to 'link' by a full path name call based on where cl.exe is.
   // This prevents us from using inadvertently the link.exe provided by cygwin.

   // check if link is the microsoft one...
   TString res = R__Exec("link 2>&1");
   if (res.Length()) {
      if (res.Contains("Microsoft (R) Incremental Linker"))
         return;
   }
   // else check availability of cygpath...
   res = R__Exec("cygpath . 2>&1");
   if (res.Length()) {
      if (res != ".")
         return;
   }

   res = R__Exec("which cl.exe 2>&1|grep cl|sed 's,cl\\.exe$,link\\.exe,' 2>&1");
   if (res.Length()) {
      res = R__Exec(Form("cygpath -w '%s' 2>&1",res.Data()));
      if (res.Length()) {
         cmd.ReplaceAll(" link ",Form(" \"%s\" ",res.Data()));
      }
   }
}
#endif

#ifndef WIN32
static void R__AddPath(TString &target, const TString &path) {
   target += path;
}
#else
static void R__AddPath(TString &target, const TString &path) {
   if (path.Length() > 2 && path[1]==':') {
      target += TString::Format("/cygdrive/%c",path[0]) + path(2,path.Length()-2);
   } else {
      target += path;
   }
}
#endif

#ifndef WIN32
static void R__WriteDependencyFile(const TString & build_loc, const TString &depfilename, const TString &filename, const TString &library, const TString &libname,
                                   const TString &extension, const char *version_var_prefix, const TString &includes, const TString &defines, const TString &incPath)
#else
static void R__WriteDependencyFile(const TString &build_loc, const TString &depfilename, const TString &filename, const TString &library, const TString &libname,
                                   const TString &extension, const char *version_var_prefix, const TString &includes, const TString &defines, const TString &incPath)
#endif
{
   // Generate the dependency via standard output, not searching the
   // standard include directories,

#ifndef WIN32
   const char * stderrfile = "/dev/null";
#else
   TString stderrfile;
   AssignAndDelete( stderrfile, gSystem->ConcatFileName(build_loc,"stderr.tmp") );
#endif
   TString bakdepfilename = depfilename + ".bak";

#ifdef WIN32
   TString touch = "echo # > "; touch += "\"" + depfilename + "\"";
#else
   TString touch = "echo > "; touch += "\"" + depfilename + "\"";
#endif
   TString builddep = "rmkdepend \"-f";
   builddep += depfilename;
   builddep += "\" -o_" + extension + "." + gSystem->GetSoExt() + " ";
   if (build_loc.BeginsWith(gSystem->WorkingDirectory())) {
      Int_t len = strlen(gSystem->WorkingDirectory());
      if ( build_loc.Length() > (len+1) ) {
         builddep += " \"-p";
         if (build_loc[len] == '/' || build_loc[len+1] != '\\' ) {
            // Since the path is now ran through TSystem::ExpandPathName the single \ is also possible.
            R__AddPath(builddep, build_loc.Data() + len + 1 );
         } else {
            // Case of dir\\name
            R__AddPath(builddep, build_loc.Data() + len + 2 );
         }
         builddep += "/\" ";
      }
   } else {
      builddep += " \"-p";
      R__AddPath(builddep, build_loc);
      builddep += "/\" ";
   }
   builddep += " -Y -- ";
#ifndef ROOTINCDIR
   TString rootsys = gSystem->Getenv("ROOTSYS");
#else
   TString rootsys = ROOTINCDIR;
#endif
   builddep += " \"-I"+rootsys+"/include\" "; // cflags
   builddep += includes;
   builddep += defines;
   builddep += " -- \"";
   builddep += filename;
   builddep += "\" ";
   TString targetname;
   if (library.BeginsWith(gSystem->WorkingDirectory())) {
      Int_t len = strlen(gSystem->WorkingDirectory());
      if ( library.Length() > (len+1) ) {
         if (library[len] == '/' || library[len+1] != '\\' ) {
            targetname = library.Data() + len + 1;
         } else {
            targetname = library.Data() + len + 2;
         }
      } else {
         targetname = library;
      }
   } else {
      targetname = library;
   }
   builddep += " \"";
   builddep += "-t";
   R__AddPath(builddep, targetname);
   builddep += "\" > ";
   builddep += stderrfile;
   builddep += " 2>&1 ";

   TString adddictdep = "echo ";
   R__AddPath(adddictdep,targetname);
   adddictdep += ": ";
#if defined(R__HAS_CLING_DICTVERSION)
   {
      char *clingdictversion = gSystem->Which(incPath,"clingdictversion.h");
      if (clingdictversion) {
         R__AddPath(adddictdep,clingdictversion);
         adddictdep += " ";
         delete [] clingdictversion;
      } else {
         R__AddPath(adddictdep,rootsys+"/include/clingdictversion.h ");
      }
   }
#endif
   {
     const char *dictHeaders[] = { "RVersion.h", "RConfig.h", "TClass.h",
       "TDictAttributeMap.h","TInterpreter.h","TROOT.h","TBuffer.h",
       "TMemberInspector.h","TError.h","RtypesImp.h","TIsAProxy.h",
       "TFileMergeInfo.h","TCollectionProxyInfo.h"};

      TString rootsysInclude(rootsys);
      rootsysInclude += "/include/";
      for (unsigned int h=0; h < sizeof(dictHeaders)/sizeof(dictHeaders[0]); ++h)
      {
         char *rootVersion = gSystem->Which(incPath,dictHeaders[h]);
         if (rootVersion) {
            R__AddPath(adddictdep,rootVersion);
            adddictdep += " ";
            delete [] rootVersion;
         } else {
            R__AddPath(adddictdep,rootsysInclude + dictHeaders[h]);
         }
      }
   }
   adddictdep += " >> \""+depfilename+"\"";

   TString addversiondep( "echo ");
   addversiondep += libname + version_var_prefix + " \"" + ROOT_RELEASE + "\" >> \""+depfilename+"\"";

   if (gDebug > 4)  {
      ::Info("ACLiC", "%s", touch.Data());
      ::Info("ACLiC", "%s", builddep.Data());
      ::Info("ACLiC", "%s", adddictdep.Data());
   }

   Int_t depbuilt = !gSystem->Exec(touch);
   if (depbuilt) depbuilt = !gSystem->Exec(builddep);
   if (depbuilt) depbuilt = !gSystem->Exec(adddictdep);
   if (depbuilt) depbuilt = !gSystem->Exec(addversiondep);

   if (!depbuilt) {
      ::Warning("ACLiC","Failed to generate the dependency file for %s",
                library.Data());
   } else {
#ifdef WIN32
      gSystem->Unlink(stderrfile);
#endif
      gSystem->Unlink(bakdepfilename);
   }
}

//______________________________________________________________________________
int TSystem::CompileMacro(const char *filename, Option_t *opt,
                          const char *library_specified,
                          const char *build_dir,
                          UInt_t dirmode)
{
   // This method compiles and loads a shared library containing
   // the code from the file "filename".
   //
   // The return value is true (1) in case of success and false (0)
   // in case of error.
   //
   // The possible options are:
   //     k : keep the shared library after the session end.
   //     f : force recompilation.
   //     g : compile with debug symbol
   //     O : optimized the code (ignore if 'g' is specified)
   //     c : compile only, do not attempt to load the library.
   //     - : if buildir is set, use a flat structure (see buildir below)
   //
   // If library_specified is specified, CompileMacro generates the file
   // "library_specified".soext where soext is the shared library extension for
   // the current platform.
   //
   // If build_dir is specified, it is used as an alternative 'root' for the
   // generation of the shared library.  The library is stored in a sub-directories
   // of 'build_dir' including the full pathname of the script unless a flat
   // directory structure is requested ('-' option).  With the '-' option the libraries
   // are created directly in the directory 'build_dir'; in particular this means that
   // 2 scripts with the same name in different source directory will over-write each
   // other's library.
   // See also TSystem::SetBuildDir.
   //
   // If dirmode is not zero and we need to create the target directory, the
   // file mode bit will be change to 'dirmode' using chmod.
   //
   // If library_specified is not specified, CompileMacro generate a default name
   // for library by taking the name of the file "filename" but replacing the
   // dot before the extension by an underscore and by adding the shared
   // library extension for the current platform.
   // For example on most platform, hsimple.cxx will generate hsimple_cxx.so
   //
   // It uses the directive fMakeSharedLibs to create a shared library.
   // If loading the shared library fails, it tries to output a list of missing
   // symbols by creating an executable (on some platforms like OSF, this does
   // not HAVE to be an executable) containing the script. It uses the
   // directive fMakeExe to do so.
   // For both directives, before passing them to TSystem::Exec, it expands the
   // variables $SourceFiles, $SharedLib, $LibName, $IncludePath, $LinkedLibs,
   // $DepLibs, $ExeName and $ObjectFiles. See SetMakeSharedLib() for more
   // information on those variables.
   //
   // This method is used to implement the following feature:
   //
   // Synopsis:
   //
   // The purpose of this addition is to allow the user to use an external
   // compiler to create a shared library from its C++ macro (scripts).
   // Currently in order to execute a script, a user has to type at the root
   // prompt
   //
   //  .X myfunc.C(arg1,arg2)
   //
   // We allow them to type:
   //
   //  .X myfunc.C++(arg1,arg2)
   // or
   //  .X myfunc.C+(arg1,arg2)
   //
   // In which case an external compiler will be called to create a shared
   // library.  This shared library will then be loaded and the function
   // myfunc will be called with the two arguments.  With '++' the shared library
   // is always recompiled.  With '+' the shared library is recompiled only
   // if it does not exist yet or the macro file is newer than the shared
   // library.
   //
   // Of course the + and ++ notation is supported in similar way for .x and .L.
   //
   // Through the function TSystem::SetMakeSharedLib(), the user will be able to
   // indicate, with shell commands, how to build a shared library (a good
   // default will be provided). The most common change, namely where to find
   // header files, will be available through the function
   // TSystem::SetIncludePath().
   // A good default will be provided so that a typical user session should be at
   // most:
   //
   // root[1] gSystem->SetIncludePath("-I$ROOTSYS/include
   // -I$HOME/mypackage/include");
   // root[2] .x myfunc.C++(10,20);
   //
   // The user may sometimes try to compile a script before it has loaded all the
   // needed shared libraries.  In this case we want to be helpfull and output a
   // list of the unresolved symbols. So if the loading of the created shared
   // library fails, we will try to build a executable that contains the
   // script. The linker should then output a list of missing symbols.
   //
   // To support this we provide a TSystem::SetMakeExe() function, that sets the
   // directive telling how to create an executable. The loader will need
   // to be informed of all the libraries available. The information about
   // the libraries that has been loaded by .L and TSystem::Load() is accesible
   // to the script compiler. However, the information about
   // the libraries that have been selected at link time by the application
   // builder (like the root libraries for root.exe) are not available and need
   // to be explictly listed in fLinkedLibs (either by default or by a call to
   // TSystem::SetLinkedLibs()).
   //
   // To simplify customization we could also add to the .rootrc support for the
   // variables
   //
   // Unix.*.Root.IncludePath:     -I$ROOTSYS/include
   // WinNT.*.Root.IncludePath:    -I%ROOTSYS%/include
   //
   // Unix.*.Root.LinkedLibs:      -L$ROOTSYS/lib -lBase ....
   // WinNT.*.Root.LinkedLibs:     %ROOTSYS%/lib/*.lib msvcrt.lib ....
   //
   // And also support for MakeSharedLibs() and MakeExe().
   //
   // (the ... have to be replaced by the actual values and are here only to
   // shorten this comment).
   //

   static const char *version_var_prefix = "__ROOTBUILDVERSION=";

   // ======= Analyze the options
   Bool_t keep = kFALSE;
   Bool_t recompile = kFALSE;
   EAclicMode mode = fAclicMode;
   Bool_t loadLib = kTRUE;
   if (opt) {
      keep = (strchr(opt,'k')!=0);
      recompile = (strchr(opt,'f')!=0);
      if (strchr(opt,'O')!=0) {
         mode = kOpt;
      }
      if (strchr(opt,'g')!=0) {
         mode = kDebug;
      }
      if (strchr(opt,'c')!=0) {
         loadLib = kFALSE;
      }
   }
   if (mode==kDefault) {
      TString rootbuild = ROOTBUILD;
      if (rootbuild.Index("debug",0,TString::kIgnoreCase)==kNPOS) {
         mode=kOpt;
      } else {
         mode=kDebug;
      }
   }
   Bool_t flatBuildDir = (fAclicProperties & kFlatBuildDir) || (strchr(opt,'-')!=0);

   // if non-zero, build_loc indicates where to build the shared library.
   TString build_loc = ExpandFileName(GetBuildDir());
   if (build_dir && strlen(build_dir)) build_loc = build_dir;
   if (build_loc == ".") {
      build_loc = WorkingDirectory();
   } else if (build_loc.Length() && (!IsAbsoluteFileName(build_loc)) ) {
      AssignAndDelete( build_loc , ConcatFileName( WorkingDirectory(), build_loc ) );
   }

   // Get the include directory list in the dir1:dir2:dir3 format
   // [Used for generating the .d file and to look for header files for
   // the linkdef file]
   TString incPath = GetIncludePath(); // of the form -Idir1  -Idir2 -Idir3
   incPath.Append(":").Prepend(" ");
   if (gEnv) {
      TString fromConfig = gEnv->GetValue("ACLiC.IncludePaths","");
      incPath.Append(fromConfig);
   }
   incPath.ReplaceAll(" -I",":");       // of form :dir1 :dir2:dir3
   while ( incPath.Index(" :") != -1 ) {
      incPath.ReplaceAll(" :",":");
   }
   incPath.Prepend(":.:");
   incPath.Prepend(WorkingDirectory());

   // ======= Get the right file names for the dictionnary and the shared library
   TString expFileName(filename);
   ExpandPathName( expFileName );
   TString library = expFileName;
   if (! IsAbsoluteFileName(library) )
   {
      const char *whichlibrary = Which(incPath,library);
      if (whichlibrary) {
         library = whichlibrary;
         delete [] whichlibrary;
      } else {
         ::Error("ACLiC","The file %s can not be found in the include path: %s",filename,incPath.Data());
         return kFALSE;
      }
   } else {
      if (gSystem->AccessPathName(library)) {
         ::Error("ACLiC","The file %s can not be found.",filename);
         return kFALSE;
      }
   }
   { // Remove multiple '/' characters, rootcint treats them as comments.
      Ssiz_t pos = 0;
      while ((pos = library.Index("//", 2, pos, TString::kExact)) != kNPOS) {
         library.Remove(pos, 1);
      }
   }
   TString filename_fullpath = library;

   TString file_dirname = DirName( filename_fullpath );
   // For some probably good reason, DirName on Windows returns the 'name' of
   // the directory, omitting the drive letter (even if there was one). In
   // consequence the result is not useable as a 'root directory', we need to
   // add the drive letter if there was one..
   if (library.Length()>1 && isalpha(library[0]) && library[1]==':') {
      file_dirname.Prepend(library(0,2));
   }
   TString file_location( file_dirname  ); // Location of the script.
   incPath.Prepend( file_location + ":" );

   Ssiz_t dot_pos = library.Last('.');
   TString extension = library;
   extension.Replace( 0, dot_pos+1, 0 , 0);
   TString libname_noext = library;
   if (dot_pos>=0) libname_noext.Remove( dot_pos );

   // Extension of shared library is platform dependent!!
   library.Replace( dot_pos, library.Length()-dot_pos,
                    TString("_") + extension + "." + fSoExt );

   TString libname ( BaseName( libname_noext ) );
   libname.Append("_").Append(extension);

   if (library_specified && strlen(library_specified) ) {
      // Use the specified name instead of the default
      libname = BaseName( library_specified );
      library = library_specified;
      ExpandPathName( library );
      if (! IsAbsoluteFileName(library) ) {
         AssignAndDelete( library , ConcatFileName( WorkingDirectory(), library ) );
      }
      library = TString(library) + "." + fSoExt;
   }

   TString libname_ext ( libname );
   libname_ext +=  "." + fSoExt;

   TString lib_dirname = DirName( library );
   // For some probably good reason, DirName on Windows returns the 'name' of
   // the directory, omitting the drive letter (even if there was one). In
   // consequence the result is not useable as a 'root directory', we need to
   // add the drive letter if there was one..
   if (library.Length()>1 && isalpha(library[0]) && library[1]==':') {
      lib_dirname.Prepend(library(0,2));
   }
   // Strip potential, somewhat redundant '/.' from the pathname ...
   if ( strncmp( &(lib_dirname[lib_dirname.Length()-2]), "/.", 2) == 0 ) {
      lib_dirname.Remove(lib_dirname.Length()-2);
   }
   if ( strncmp( &(lib_dirname[lib_dirname.Length()-2]), "\\.", 2) == 0 ) {
      lib_dirname.Remove(lib_dirname.Length()-2);
   }
   TString lib_location( lib_dirname );
   Bool_t mkdirFailed = kFALSE;

   if (build_loc.Length()==0) {
      build_loc = lib_location;
   } else {
      // Removes an existing disk specification from the names
      TRegexp disk_finder ("[A-z]:");
      Int_t pos = library.Index( disk_finder );
      if (pos==0) library.Remove(pos,3);
      pos = lib_location.Index( disk_finder );
      if (pos==0) lib_location.Remove(pos,3);

      if (flatBuildDir) {
         AssignAndDelete( library, ConcatFileName( build_loc, libname_ext) );
      } else {
         AssignAndDelete( library, ConcatFileName( build_loc, library) );
      }

      Bool_t canWriteBuild_loc = !gSystem->AccessPathName(build_loc,kWritePermission);
      TString build_loc_store( build_loc );
      if (!flatBuildDir) {
         AssignAndDelete( build_loc, ConcatFileName( build_loc, lib_location) );
      }

      if (gSystem->AccessPathName(build_loc,kFileExists)) {
         mkdirFailed = (0 != mkdir(build_loc, true));
         if (mkdirFailed && !canWriteBuild_loc) {
            // The mkdir failed __and__ we can not write to the target directory,
            // let make sure the error message will be about the target directory
            build_loc = build_loc_store;
            mkdirFailed = kFALSE;
         } else if (!mkdirFailed && dirmode!=0) {
            Chmod(build_loc,dirmode);
         }
      }
   }

   // ======= Check if the library need to loaded or compiled
   if ( gInterpreter->IsLoaded(expFileName) &&
       !gInterpreter->IsLoaded(library) ) {
      // the script has already been loaded in interpreted mode
      // Let's warn the user and unload it.

      ::Info("ACLiC","script has already been loaded in interpreted mode");
      ::Info("ACLiC","unloading %s and compiling it", filename);

      if ( gInterpreter->UnloadFile( expFileName ) != 0 ) {
         // We can not unload it.
         return kFALSE;
      }
   }

   // Calculate the -I lines
   TString includes = GetIncludePath();
   includes.Prepend(' ');

   {
      // I need to replace the -Isomerelativepath by -I../ (or -I..\ on NT)
      TRegexp rel_inc(" -I[^\"/\\$%-][^:-]+");
      Int_t len,pos;
      pos = rel_inc.Index(includes,&len);
      while( len != 0 ) {
         TString sub = includes(pos,len);
         sub.Remove(0,3); // Remove ' -I'
         AssignAndDelete( sub, ConcatFileName( WorkingDirectory(), sub ) );
         sub.Prepend(" -I\"");
         sub.Append("\"");
         includes.Replace(pos,len,sub);
         pos = rel_inc.Index(includes,&len);
      }
   }
   {
       // I need to replace the -I"somerelativepath" by -I"$cwd/ (or -I"$cwd\ on NT)
      TRegexp rel_inc(" -I\"[^/\\$%-][^:-]+");
      Int_t len,pos;
      pos = rel_inc.Index(includes,&len);
      while( len != 0 ) {
         TString sub = includes(pos,len);
         sub.Remove(0,4); // Remove ' -I"'
         AssignAndDelete( sub, ConcatFileName( WorkingDirectory(), sub ) );
         sub.Prepend(" -I\"");
         includes.Replace(pos,len,sub);
         pos = rel_inc.Index(includes,&len);
      }
   }
   includes += " -I\"" + build_loc;
   includes += "\" -I\"";
   includes += WorkingDirectory();
   if (includes[includes.Length()-1] == '\\') {
      // The current directory is (most likely) the root of a windows drive and
      // has a trailing \ which would espace the quote if left by itself.
      includes += '\\';
   }
   includes += "\"";
   if (gEnv) {
      TString fromConfig = gEnv->GetValue("ACLiC.IncludePaths","");
      includes.Append(" ").Append(fromConfig).Append(" ");
   }

   // Extract the -D for the dependency generation.
   TString defines = " ";
   {
      TString cmd = GetMakeSharedLib();
      TRegexp rel_def("-D[^\\s\\t\\n\\r]*");
      Int_t len,pos;
      pos = rel_def.Index(cmd,&len);
      while( len != 0 ) {
         defines += cmd(pos,len);
         defines += " ";
         pos = rel_def.Index(cmd,&len,pos+1);
      }

   }

   TString emergency_loc;
   {
      UserGroup_t *ug = gSystem->GetUserInfo(gSystem->GetUid());
      if (ug) {
         AssignAndDelete( emergency_loc, ConcatFileName( TempDirectory(), ug->fUser ) );
         delete ug;
      } else {
         emergency_loc = TempDirectory();
      }
   }

   Bool_t canWrite = !gSystem->AccessPathName(build_loc,kWritePermission);

   Bool_t modified = kFALSE;

   // Generate the dependency filename
   TString depdir = build_loc;
   TString depfilename;
   AssignAndDelete( depfilename, ConcatFileName(depdir, BaseName(libname_noext)) );
   depfilename += "_" + extension + ".d";

   if ( !recompile ) {

      Long_t lib_time, file_time;

      if ((gSystem->GetPathInfo( library, 0, (Long_t*)0, 0, &lib_time ) != 0) ||
          (gSystem->GetPathInfo( expFileName, 0, (Long_t*)0, 0, &file_time ) == 0 &&
          (lib_time < file_time))) {

         // the library does not exist or is older than the script.
         recompile = kTRUE;
         modified  = kTRUE;

      } else {

         if ( gSystem->GetPathInfo( depfilename, 0,(Long_t*) 0, 0, &file_time ) != 0 ) {
            if (!canWrite) {
               depdir = emergency_loc;
               AssignAndDelete( depfilename, ConcatFileName(depdir, BaseName(libname_noext)) );
               depfilename += "_" + extension + ".d";
            }
            R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);
         }
      }

      if (!modified) {

         // We need to check the dependencies
         FILE * depfile = fopen(depfilename.Data(),"r");
         if (depfile==0) {
            // there is no acessible dependency file, let's assume the library has been
            // modified
            modified = kTRUE;
            recompile = kTRUE;

         } else {

            TString version_var = libname + version_var_prefix;

            Int_t sz = 256;
            char *line = new char[sz];
            line[0] = 0;

            int c;
            Int_t current = 0;
            Int_t nested = 0;
            Bool_t hasversion = false;

            while ((c = fgetc(depfile)) != EOF) {
               if (c=='#') {
                  // skip comment
                  while ((c = fgetc(depfile)) != EOF) {
                     if (c=='\n') {
                        break;
                     }
                  }
                  continue;
               }
               if (current && line[current-1]=='=' && strncmp(version_var.Data(),line,current)==0) {

                  // The next word will be the version number.
                  hasversion = kTRUE;
                  line[0] = 0;
                  current = 0;
               } else if (isspace(c) && !nested) {
                  if (current) {
                     if (line[current-1]!=':') {
                        // ignore target
                        line[current] = 0;

                        Long_t filetime;
                        if (hasversion) {
                           modified |= strcmp(ROOT_RELEASE,line)!=0;
                           hasversion = kFALSE;
                        } else if ( gSystem->GetPathInfo( line, 0, (Long_t*)0, 0, &filetime ) == 0 ) {
                           modified |= ( lib_time <= filetime );
                        }
                     }
                  }
                  current = 0;
                  line[0] = 0;
               } else {
                  if (current==sz-1) {
                     sz = 2*sz;
                     char *newline = new char[sz];
                     strcpy(newline,line);
                     delete [] line;
                     line = newline;
                  }
                  if (c=='"') nested = !nested;
                  else {
                     line[current] = c;
                     current++;
                  }
               }
            }
            delete [] line;
            fclose(depfile);
            recompile = modified;

         }

      }
   }

   if ( gInterpreter->IsLoaded(library)
        || strlen(GetLibraries(library,"D",kFALSE)) != 0 ) {
      // The library has already been built and loaded.

      Bool_t reload = kFALSE;
      TNamed *libinfo = (TNamed*)fCompiled->FindObject(library);
      if (libinfo) {
         Long_t load_time = libinfo->GetUniqueID();
         Long_t lib_time;
         if ( gSystem->GetPathInfo( library, 0, (Long_t*)0, 0, &lib_time ) == 0
              && (lib_time>load_time)) {
            reload = kTRUE;
         }
      }

      if ( !recompile && reload ) {

         ::Info("ACLiC","%s has been modified and will be reloaded",
                libname.Data());
         if ( gInterpreter->UnloadFile( library.Data() ) != 0 ) {
            // The library is being used. We can not unload it.
            return kFALSE;
         }
         if (libinfo) {
            fCompiled->Remove(libinfo);
            delete libinfo;
            libinfo = 0;
         }
         TNamed *k = new TNamed(library,library);
         Long_t lib_time;
         gSystem->GetPathInfo( library, 0, (Long_t*)0, 0, &lib_time );
         k->SetUniqueID(lib_time);
         if (!keep) k->SetBit(kMustCleanup);
         fCompiled->Add(k);

         return !gSystem->Load(library);
      }

      ::Info("ACLiC","%s script has already been compiled and loaded",
                modified ? "modified" : "unmodified");

      if ( !recompile ) {
         return kTRUE;
      } else {
         ::Info("ACLiC","it will be regenerated and reloaded!");
         if ( gInterpreter->UnloadFile( library.Data() ) != 0 ) {
            // The library is being used. We can not unload it.
            return kFALSE;
         }
         if (libinfo) {
            fCompiled->Remove(libinfo);
            delete libinfo;
            libinfo = 0;
         }
         Unlink(library);
      }

   }

   TString libmapfilename;
   AssignAndDelete( libmapfilename, ConcatFileName( build_loc, libname ) );
   libmapfilename += ".rootmap";
#if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)) || defined(R__WIN32)
   Bool_t produceRootmap = kTRUE;
#else
   Bool_t produceRootmap = kFALSE;
#endif
   Bool_t linkDepLibraries = !produceRootmap;
   if (gEnv) {
#if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5))
      Int_t linkLibs = gEnv->GetValue("ACLiC.LinkLibs",2);
#elif defined(R__WIN32)
      Int_t linkLibs = gEnv->GetValue("ACLiC.LinkLibs",3);
#else
      Int_t linkLibs = gEnv->GetValue("ACLiC.LinkLibs",1);
#endif
      produceRootmap = linkLibs & 0x2;
      linkDepLibraries = linkLibs & 0x1;
   }

   if (!recompile) {
      // The library already exist, let's just load it.
      if (loadLib) {
         TNamed *k = new TNamed(library,library);
         Long_t lib_time;
         gSystem->GetPathInfo( library, 0, (Long_t*)0, 0, &lib_time );
         k->SetUniqueID(lib_time);
         if (!keep) k->SetBit(kMustCleanup);
         fCompiled->Add(k);

         if (gInterpreter->GetSharedLibDeps(libname) == 0) {
            gInterpreter->LoadLibraryMap(libmapfilename);
         }

         return !gSystem->Load(library);
      }
      else return kTRUE;
   }

   if (!canWrite && recompile) {

      if (mkdirFailed) {
         ::Warning("ACLiC","Could not create the directory: %s",
                build_loc.Data());
      } else {
         ::Warning("ACLiC","%s is not writable!",
                   build_loc.Data());
      }
      if (emergency_loc == build_dir ) {
         ::Error("ACLiC","%s is the last resort location (i.e. temp location)",build_loc.Data());
         return kFALSE;
      }
      ::Warning("ACLiC","Output will be written to %s",
                emergency_loc.Data());
      return CompileMacro(expFileName, opt, library_specified, emergency_loc, dirmode);
   }

   Info("ACLiC","creating shared library %s",library.Data());

   R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);

   // ======= Select the dictionary name
   TString dict = libname + "_ACLiC_dict";

   // the file name end up in the file produced
   // by rootcint as a variable name so all character need to be valid!
   static const int maxforbidden = 27;
   static const char *forbidden_chars[maxforbidden] =
      { "+","-","*","/","&","%","|","^",">","<",
        "=","~",".","(",")","[","]","!",",","$",
        " ",":","'","#","@","\\","\"" };
   for( int ic = 0; ic < maxforbidden; ic++ ) {
      dict.ReplaceAll( forbidden_chars[ic],"_" );
   }
   if ( dict.Last('.')!=dict.Length()-1 ) dict.Append(".");
   AssignAndDelete( dict, ConcatFileName( build_loc, dict ) );
   TString dicth = dict;
   TString dictObj = dict;
   dict += "cxx"; //no need to keep the extention of the original file, any extension will do
   dicth += "h";
   dictObj += fObjExt;

   // ======= Generate a linkdef file

   TString linkdef;
   AssignAndDelete( linkdef, ConcatFileName( build_loc, libname ) );
   linkdef += "_ACLiC_linkdef.h";
   std::ofstream linkdefFile( linkdef, std::ios::out );
   linkdefFile << "// File Automatically generated by the ROOT Script Compiler "
               << std::endl;
   linkdefFile << std::endl;
   linkdefFile << "#ifdef __CINT__" << std::endl;
   linkdefFile << std::endl;
   linkdefFile << "#pragma link C++ nestedclasses;" << std::endl;
   linkdefFile << "#pragma link C++ nestedtypedefs;" << std::endl;
   linkdefFile << std::endl;

   // We want to look for a header file that has the same name as the macro

   const char * extensions[] = { ".h", ".hh", ".hpp", ".hxx",  ".hPP", ".hXX" };

   int i;
   for (i = 0; i < 6; i++ ) {
      char * name;
      TString extra_linkdef = BaseName( libname_noext );
      extra_linkdef.Append(GetLinkdefSuffix());
      extra_linkdef.Append(extensions[i]);
      name = Which(incPath,extra_linkdef);
      if (name) {
         if (gDebug>4) Info("ACLiC","including extra linkdef file: %s",name);
         linkdefFile << "#include \"" << name << "\"" << std::endl;
         delete [] name;
      }
   }

   if (gDebug>5) Info("ACLiC","looking for header in: %s",incPath.Data());
   for (i = 0; i < 6; i++ ) {
      char * name;
      TString lookup = BaseName( libname_noext );
      lookup.Append(extensions[i]);
      name = Which(incPath,lookup);
      if (name) {
         linkdefFile << "#pragma link C++ defined_in "<<name<<";"<< std::endl;
         delete [] name;
      }
   }
   linkdefFile << "#pragma link C++ defined_in \""<<filename_fullpath << "\";" << std::endl;
   linkdefFile << std::endl;
   linkdefFile << "#endif" << std::endl;
   linkdefFile.close();

   // ======= Generate the list of rootmap files to be looked at

   TString mapfile;
   AssignAndDelete( mapfile, ConcatFileName( build_loc, libname ) );
   mapfile += "_ACLiC_map";
   TString mapfilein = mapfile + ".in";
   TString mapfileout = mapfile + ".out";

   Bool_t needLoadMap = kFALSE;
   if (gInterpreter->GetSharedLibDeps(libname) !=0 ) {
       gInterpreter->UnloadLibraryMap(libname);
      needLoadMap = kTRUE;
   }

   std::ofstream mapfileStream( mapfilein, std::ios::out );
   {
      TString name = ".rootmap";
      TString sname = "system.rootmap";
      TString file;
#ifdef ROOTETCDIR
      AssignAndDelete(file, ConcatFileName(ROOTETCDIR, sname) );
#else
      TString etc = gRootDir;
#ifdef WIN32
      etc += "\\etc";
#else
      etc += "/etc";
#endif
      AssignAndDelete(file, ConcatFileName(etc, sname));
      if (gSystem->AccessPathName(file)) {
         // for backward compatibility check also $ROOTSYS/system<name> if
         // $ROOTSYS/etc/system<name> does not exist
         AssignAndDelete(file, ConcatFileName(gRootDir, sname));
         if (gSystem->AccessPathName(file)) {
            // for backward compatibility check also $ROOTSYS/<name> if
            // $ROOTSYS/system<name> does not exist
            AssignAndDelete(file, ConcatFileName(gRootDir, name));
         }
      }
#endif
      mapfileStream << file << std::endl;
      AssignAndDelete(file, ConcatFileName(gSystem->HomeDirectory(), name) );
      mapfileStream << file << std::endl;
      mapfileStream << name << std::endl;
      if (gInterpreter->GetRootMapFiles()) {
         for (i = 0; i < gInterpreter->GetRootMapFiles()->GetEntriesFast(); i++) {
            mapfileStream << ((TNamed*)gInterpreter->GetRootMapFiles()->At(i))->GetTitle() << std::endl;
         }
      }
   }
   mapfileStream.close();

   // ======= Generate the rootcling command line
   TString rcling;
#ifndef ROOTBINDIR
   rcling = gSystem->Getenv("ROOTSYS");
#ifndef R__WIN32
   rcling += "/bin/";
#else
   rcling += "\\bin\\";
#endif
#else
   rcling = ROOTBINDIR;
#ifndef R__WIN32
   rcling += "/";
#else
   rcling += "\\";
#endif
#endif
   rcling += "rootcling -v0 \"--lib-list-prefix=";
   rcling += mapfile;
   rcling += "\" -f \"";
   rcling.Append(dict).Append("\" -c -p ");
   if (produceRootmap) {
      rcling += " -rml " + libname + " -rmf \"" + libmapfilename + "\" ";
   }
   rcling.Append(GetIncludePath()).Append(" -D__ACLIC__ ");
   if (produceRootmap) {
      rcling.Append("-DR__ACLIC_ROOTMAP ");
   }
   if (gEnv) {
      TString fromConfig = gEnv->GetValue("ACLiC.IncludePaths","");
      rcling.Append(fromConfig).Append(" \"");
   }
   rcling.Append(filename_fullpath).Append("\" \"").Append(linkdef).Append("\"");;

   // ======= Run rootcint
   if (gDebug>3) {
      ::Info("ACLiC","creating the dictionary files");
      if (gDebug>4)  ::Info("ACLiC", "%s", rcling.Data());
   }

   Int_t dictResult = gSystem->Exec(rcling);
   if (dictResult) {
      if (dictResult==139) ::Error("ACLiC","Dictionary generation failed with a core dump!");
      else ::Error("ACLiC","Dictionary generation failed!");
   }

   Bool_t result = !dictResult;
   TString depLibraries;

   // ======= Load the library the script might depend on
   if (result) {
      TString linkedlibs = GetLibraries("", "S");
      TString libtoload;
      TString all_libtoload;
      std::ifstream liblist(mapfileout);

      while ( liblist >> libtoload ) {
         // Load the needed library except for the library we are currently building!
         if (libtoload == "#") {
            // The comment terminates the list of libraries.
            std::string toskipcomment;
            std::getline(liblist,toskipcomment);
            break;
         }
         if (libtoload != library && libtoload != libname && libtoload != libname_ext) {
            if (produceRootmap) {
               if (loadLib || linkDepLibraries /* For GetLibraries to Work */) {
                  result = gROOT->LoadClass("", libtoload) >= 0;
                  if (!result) {
                     // We failed to load one of the dependency.
                     break;
                  }
               }
               if (!linkedlibs.Contains(libtoload)) {
                  all_libtoload.Append(" ").Append(libtoload);
                  depLibraries.Append(" ");
                  depLibraries.Append(GetLibraries(libtoload,"DSL",kFALSE));
                  depLibraries = depLibraries.Strip(); // Remove any trailing spaces.
               }
            } else {
               gROOT->LoadClass("", libtoload);
            }
         }
         unsigned char c = liblist.peek();
         if (c=='\n' || c=='\r') {
            // Consume the character
            liblist.get();
            break;
         }
      }

//      depLibraries = all_libtoload;
//      depLibraries.ReplaceAll(" lib"," -l");
//      depLibraries.ReplaceAll(TString::Format(".%s",fSoExt.Data()),"");
   }

   // ======= Calculate the libraries for linking:
   TString linkLibraries;
   /*
     this is intentionally disabled until it can become usefull
     if (gEnv) {
        linkLibraries =  gEnv->GetValue("ACLiC.Libraries","");
        linkLibraries.Prepend(" ");
     }
   */
   linkLibraries.Prepend(GetLibraries("","SDL"));

   // ======= Generate the build command lines
   TString cmd = fMakeSharedLib;
   // we do not add filename because it is already included via the dictionary(in dicth) !
   // dict.Append(" ").Append(filename);
   cmd.ReplaceAll("$SourceFiles","-D__ACLIC__ \"$SourceFiles\"");
   cmd.ReplaceAll("$SourceFiles",dict);
   cmd.ReplaceAll("$ObjectFiles","\"$ObjectFiles\"");
   cmd.ReplaceAll("$ObjectFiles",dictObj);
   cmd.ReplaceAll("$IncludePath",includes);
   cmd.ReplaceAll("$SharedLib","\"$SharedLib\"");
   cmd.ReplaceAll("$SharedLib",library);
   if (linkDepLibraries) {
      if (produceRootmap) {
         cmd.ReplaceAll("$DepLibs",depLibraries);
      } else {
         cmd.ReplaceAll("$DepLibs",linkLibraries);
      }
   }
   cmd.ReplaceAll("$LinkedLibs",linkLibraries);
   cmd.ReplaceAll("$LibName",libname);
   cmd.ReplaceAll("\"$BuildDir","$BuildDir");
   cmd.ReplaceAll("$BuildDir","\"$BuildDir\"");
   cmd.ReplaceAll("$BuildDir",build_loc);
   if (mode==kDebug) {
      cmd.ReplaceAll("$Opt",fFlagsDebug);
   } else {
      cmd.ReplaceAll("$Opt",fFlagsOpt);
   }
#ifdef WIN32
   R__FixLink(cmd);
#endif

   TString testcmd = fMakeExe;
   TString fakeMain;
   AssignAndDelete( fakeMain, ConcatFileName( build_loc, libname ) );
   fakeMain += "_ACLiC_main";
   fakeMain += extension;
   std::ofstream fakeMainFile( fakeMain, std::ios::out );
   fakeMainFile << "// File Automatically generated by the ROOT Script Compiler "
                << std::endl;
   fakeMainFile << "int main(char*argc,char**argvv) {};" << std::endl;
   fakeMainFile.close();
   // We could append this fake main routine to the compilation line.
   // But in this case compiler may output the name of the dictionary file
   // and of the fakeMain file while it compiles it. (this would be useless
   // confusing output).
   // We could also the fake main routine to the end of the dictionnary file
   // however compilation would fail if a main is already there
   // (like stress.cxx)
   // dict.Append(" ").Append(fakeMain);
   TString exec;
   AssignAndDelete( exec, ConcatFileName( build_loc, libname ) );
   exec += "_ACLiC_exec";
   testcmd.ReplaceAll("$SourceFiles","-D__ACLIC__ \"$SourceFiles\"");
   testcmd.ReplaceAll("$SourceFiles",dict);
   testcmd.ReplaceAll("$ObjectFiles","\"$ObjectFiles\"");
   testcmd.ReplaceAll("$ObjectFiles",dictObj);
   testcmd.ReplaceAll("$IncludePath",includes);
   testcmd.ReplaceAll("$ExeName",exec);
   testcmd.ReplaceAll("$LinkedLibs",linkLibraries);
   testcmd.ReplaceAll("$BuildDir",build_loc);
   if (mode==kDebug)
      testcmd.ReplaceAll("$Opt",fFlagsDebug);
   else
      testcmd.ReplaceAll("$Opt",fFlagsOpt);

#ifdef WIN32
   R__FixLink(testcmd);
#endif

   // ======= Build the library
   if (result) {
      if (gDebug>3) {
         ::Info("ACLiC","compiling the dictionary and script files");
         if (gDebug>4)  ::Info("ACLiC", "%s", cmd.Data());
      }
      Int_t compilationResult = gSystem->Exec( cmd );
      if (compilationResult) {
         if (compilationResult==139) ::Error("ACLiC","Compilation failed with a core dump!");
         else ::Error("ACLiC","Compilation failed!");
         if (produceRootmap) {
            gSystem->Unlink(libmapfilename);
         }
      }
      result = !compilationResult;
   } else {
      // rootcint failed
      // compile macro, to check its validity and to inform the user
      // of (possibly) invalid code
      ::Info("ACLiC","Invoking compiler to check macro's validity");

      // Need to extract the compiler call from MakeSharedLib.
      // Assume that the compiler call has $SourceFiles and
      // $IncludePath, as arguments, and that it's before the last
      // $ObjectFiles occurrence

      TString line(fMakeSharedLib);
      TString comp;
      Ssiz_t posEOL=kNPOS;
      // split cmd into command lines
      while ((kNPOS!=(posEOL=line.Index(";")) // ";" is end of line
              || kNPOS!=(posEOL=line.Index("&&"))) // and so is "&&"
             // stop if we passed through all $ObjectFiles occurrences
             && kNPOS!=line.Index("$ObjectFiles")) {
         Ssiz_t posSource=line.Index("$SourceFiles");
         Ssiz_t posInclude=line.Index("$IncludePath");
         if (posSource!=kNPOS && posSource<posEOL
             && posInclude!=kNPOS && posInclude<posEOL)
            comp=line(0, posEOL);

         line.Remove(0, posEOL+(line(posEOL)==';'?1:2));
      }

      if (!comp.Length())
         ::Info("ACLiC","Cannot extract compiler call from MakeSharedLibs().");
      else {
         // if filename is a header compiler won't compile it
         // instead, create temp source file which is a copy of the header
         Bool_t compileHeader=kFALSE;
         size_t lenFilename=expFileName.Length();
         const char* endOfFilename=expFileName.Data()+lenFilename;
         // check all known header extensions
         for (Int_t iExt=0; !compileHeader && iExt<6; iExt++) {
            size_t lenExt=strlen(extensions[iExt]);
            compileHeader |=lenFilename>lenExt
               && !strcmp(extensions[iExt], endOfFilename-lenExt);
         }

         TString filenameForCompiler(expFileName);
         if (compileHeader) {
            // create temp source file
            filenameForCompiler= libname + "_ACLiC";
            filenameForCompiler+=".check.cxx";
            gSystem->Link(expFileName, filenameForCompiler);
         }

         comp.ReplaceAll("$SourceFiles",filenameForCompiler);
         comp.ReplaceAll("$ObjectFiles",dictObj);
         comp.ReplaceAll("$IncludePath",includes);
         comp.ReplaceAll("$SharedLib",library);
         comp.ReplaceAll("$LinkedLibs",linkLibraries);
         comp.ReplaceAll("$LibName",libname);
         comp.ReplaceAll("$BuildDir",build_loc);
         if (mode==kDebug) comp.ReplaceAll("$Opt",fFlagsDebug);
         else comp.ReplaceAll("$Opt",fFlagsOpt);

         if (gDebug>4)  ::Info("ACLiC", "%s", comp.Data());

         Int_t compilationResult = gSystem->Exec( comp );

         if (filenameForCompiler.CompareTo(expFileName))
            // remove temporary file
            gSystem->Unlink(filenameForCompiler);

         if (!compilationResult) {
            ::Info("ACLiC","The compiler has not found any problem with your macro.\n"
            "\tProbably your macro uses something rootcling can't parse.\n");
            TString objfile=expFileName;
            Ssiz_t len=objfile.Length();
            objfile.Replace(len-extension.Length(), len, GetObjExt());
            gSystem->Unlink(objfile);
         }
      }
   }

   if ( result ) {

      TNamed *k = new TNamed(library,library);
      Long_t lib_time;
      gSystem->GetPathInfo( library, 0, (Long_t*)0, 0, &lib_time );
      k->SetUniqueID(lib_time);
      if (!keep) k->SetBit(kMustCleanup);
      fCompiled->Add(k);

      if (needLoadMap) {
          gInterpreter->LoadLibraryMap(libmapfilename);
      }
      if (gDebug>3)  ::Info("ACLiC","loading the shared library");
      if (loadLib) result = !gSystem->Load(library);
      else result = kTRUE;

      if ( !result ) {
         if (gDebug>3) {
            ::Info("ACLiC","testing for missing symbols:");
            if (gDebug>4)  ::Info("ACLiC", "%s", testcmd.Data());
         }
         gSystem->Exec(testcmd);
         gSystem->Unlink( exec );
      }

   };

   if (gDebug<=5) {
      gSystem->Unlink( dict );
      gSystem->Unlink( dicth );
      gSystem->Unlink( dictObj );
      gSystem->Unlink( linkdef );
      gSystem->Unlink( mapfilein );
      gSystem->Unlink( mapfileout );
      gSystem->Unlink( fakeMain );
      gSystem->Unlink( exec );
   }
   if (gDebug>6) {
      rcling.Prepend("echo ");
      cmd.Prepend("echo \" ").Append(" \" ");
      testcmd.Prepend("echo \" ").Append(" \" ");
      gSystem->Exec(rcling);
      gSystem->Exec( cmd );
      gSystem->Exec(testcmd);
   }

   return result;
}

//______________________________________________________________________________
Int_t TSystem::GetAclicProperties() const
{
   // Return the ACLiC properties field.   See EAclicProperties for details
   // on the semantic of each bit.

   return fAclicProperties;
}

//______________________________________________________________________________
const char *TSystem::GetBuildArch() const
{
   // Return the build architecture.
   return fBuildArch;
}

//______________________________________________________________________________
const char *TSystem::GetBuildCompiler() const
{
   // Return the build compiler
   return fBuildCompiler;
}

//______________________________________________________________________________
const char *TSystem::GetBuildCompilerVersion() const
{
   // Return the build compiler version
   return fBuildCompilerVersion;
}

//______________________________________________________________________________
const char *TSystem::GetBuildNode() const
{
   // Return the build node name.
   return fBuildNode;
}

//______________________________________________________________________________
const char *TSystem::GetBuildDir() const
{
   // Return the path of the build directory.
   if (fBuildDir.Length()==0) {
      if (!gEnv) return "";
      const_cast<TSystem*>(this)->fBuildDir = gEnv->GetValue("ACLiC.BuildDir","");
   }
   return fBuildDir;
}

//______________________________________________________________________________
const char *TSystem::GetFlagsDebug() const
{
   // Return the debug flags.
   return fFlagsDebug;
}

//______________________________________________________________________________
const char *TSystem::GetFlagsOpt() const
{
   // Return the optimization flags.
   return fFlagsOpt;
}

//______________________________________________________________________________
TSystem::EAclicMode TSystem::GetAclicMode() const
{
   // AclicMode indicates whether the library should be built in
   // debug mode or optimized.  The values are:
   // TSystem::kDefault : compile the same as the current ROOT
   // TSystem::kDebug : compiled in debug mode
   // TSystem::kOpt : optimized the library

   return fAclicMode;
}

//______________________________________________________________________________
const char *TSystem::GetMakeSharedLib() const
{
   // Return the command line use to make a shared library.
   // See TSystem::CompileMacro for more details.
   return fMakeSharedLib;
}

//______________________________________________________________________________
const char *TSystem::GetMakeExe() const
{
   // Return the command line use to make an executable.
   // See TSystem::CompileMacro for more details.
   return fMakeExe;
}

//______________________________________________________________________________
const char *TSystem::GetIncludePath()
{
   // Get the list of include path.
   fListPaths = fIncludePath;
   fListPaths.Append(" ").Append(gInterpreter->GetIncludePath());
   return fListPaths;
}

//______________________________________________________________________________
const char *TSystem::GetLinkedLibs() const
{
   // Return the list of library linked to this executable.
   // See TSystem::CompileMacro for more details.
   return fLinkedLibs;
}

//______________________________________________________________________________
const char *TSystem::GetLinkdefSuffix() const
{
   // Return the linkdef suffix chosen by the user for ACLiC.
   // See TSystem::CompileMacro for more details.
   if (fLinkdefSuffix.Length()==0) {
      if (!gEnv) return "_linkdef";
      const_cast<TSystem*>(this)->fLinkdefSuffix = gEnv->GetValue("ACLiC.Linkdef","_linkdef");
   }
   return fLinkdefSuffix;
}

//______________________________________________________________________________
const char *TSystem::GetSoExt() const
{
   // Get the shared library extension.
   return fSoExt;
}

//______________________________________________________________________________
const char *TSystem::GetObjExt() const
{
   // Get the object file extension.
   return fObjExt;
}

//______________________________________________________________________________
void TSystem::SetBuildDir(const char* build_dir, Bool_t isflat)
{
   // Set the location where ACLiC will create libraries and use as
   // a scratch area.
   // If isflast is flase, then the libraries are actually stored in
   // sub-directories of 'build_dir' including the full pathname of the
   // script.  If the script is location at /full/path/name/macro.C
   // the library will be located at 'build_dir+/full/path/name/macro_C.so'
   // If 'isflat' is true, then no subdirectory is created and the library
   // is created directly in the directory 'build_dir'.  Note that in this
   // mode there is a risk than 2 script of the same in different source
   // directory will over-write each other.

   fBuildDir = build_dir;
   if (isflat) fAclicProperties |= (kFlatBuildDir & kBitMask);
   else fAclicProperties &= ~(kFlatBuildDir & kBitMask);
}

//______________________________________________________________________________
void TSystem::SetFlagsDebug(const char *flags)
{
   // FlagsDebug should contain the options to pass to the C++ compiler
   // in order to compile the library in debug mode.

   fFlagsDebug = flags;
}

//______________________________________________________________________________
void TSystem::SetFlagsOpt(const char *flags)
{
   // FlagsOpt should contain the options to pass to the C++ compiler
   // in order to compile the library in optimized mode.

   fFlagsOpt = flags;
}

//______________________________________________________________________________
void TSystem::SetAclicMode(EAclicMode mode)
{
   // AclicMode indicates whether the library should be built in
   // debug mode or optimized.  The values are:
   // TSystem::kDefault : compile the same as the current ROOT
   // TSystem::kDebug : compiled in debug mode
   // TSystem::kOpt : optimized the library

   fAclicMode = mode;
}

//______________________________________________________________________________
void TSystem::SetMakeExe(const char *directives)
{
   // Directives has the same syntax as the argument of SetMakeSharedLib but is
   // used to create an executable. This creation is used as a means to output
   // a list of unresolved symbols, when loading a shared library has failed.
   // The required variable is $ExeName rather than $SharedLib, e.g.:
   // gSystem->SetMakeExe(
   // "g++ -Wall -fPIC $IncludePath $SourceFiles
   //  -o $ExeName $LinkedLibs -L/usr/X11R6/lib -lX11 -lm -ldl -rdynamic");

   fMakeExe = directives;
   // NOTE: add verification that the directives has the required variables
}

//______________________________________________________________________________
void TSystem::SetMakeSharedLib(const char *directives)
{
   // Directives should contain the description on how to compile and link a
   // shared lib. This description can be any valid shell command, including
   // the use of ';' to separate several instructions. However, shell specific
   // construct should be avoided. In particular this description can contain
   // environment variables, like $ROOTSYS (or %ROOTSYS% on windows).
   //
   // Five special variables will be expanded before execution:
   //   Variable name       Expands to
   //   -------------       ----------
   //   $SourceFiles        Name of source files to be compiled
   //   $SharedLib          Name of the shared library being created
   //   $LibName            Name of shared library without extension
   //   $BuildDir           Directory where the files will be created
   //   $IncludePath        value of fIncludePath
   //   $LinkedLibs         value of fLinkedLibs
   //   $DepLibs            libraries on which this library depends on
   //   $ObjectFiles        Name of source files to be compiler with
   //                       their extension changed to .o or .obj
   //   $Opt                location of the optimization/debug options
   //                       set fFlagsDebug and fFlagsOpt
   //
   // e.g.:
   // gSystem->SetMakeSharedLib(
   // "KCC -n32 --strict $IncludePath -K0 \$Opt $SourceFile
   //  --no_exceptions --signed_chars --display_error_number
   //  --diag_suppress 68 -o $SharedLib");
   //
   // gSystem->setMakeSharedLib(
   // "Cxx $IncludePath -c $SourceFile;
   //  ld  -L/usr/lib/cmplrs/cxx -rpath /usr/lib/cmplrs/cxx -expect_unresolved
   //  \$Opt -shared /usr/lib/cmplrs/cc/crt0.o /usr/lib/cmplrs/cxx/_main.o
   //  -o $SharedLib $ObjectFile -lcxxstd -lcxx -lexc -lots -lc"
   //
   // gSystem->SetMakeSharedLib(
   // "$HOME/mygcc/bin/g++ \$Opt -Wall -fPIC $IncludePath $SourceFile
   //  -shared -o $SharedLib");
   //
   // gSystem->SetMakeSharedLib(
   // "cl -DWIN32  -D_WIN32 -D_MT -D_DLL -MD /O2 /G5 /MD -DWIN32
   //  -D_WINDOWS $IncludePath $SourceFile
   //  /link -PDB:NONE /NODEFAULTLIB /INCREMENTAL:NO /RELEASE /NOLOGO
   //  $LinkedLibs -entry:_DllMainCRTStartup@12 -dll /out:$SharedLib")

   fMakeSharedLib = directives;
   // NOTE: add verification that the directives has the required variables
}

//______________________________________________________________________________
void TSystem::AddIncludePath(const char *includePath)
{
   // Add includePath to the already set include path.

   if (includePath) {
      fIncludePath += " ";
      fIncludePath += includePath;
   }
}

//______________________________________________________________________________
void TSystem::AddLinkedLibs(const char *linkedLib)
{
   // Add linkedLib to already set linked libs.

   if (linkedLib) {
      fLinkedLibs += " ";
      fLinkedLibs += linkedLib;
   }
}

//______________________________________________________________________________
void TSystem::SetIncludePath(const char *includePath)
{
   // IncludePath should contain the list of compiler flags to indicate where
   // to find user defined header files. It is used to expand $IncludePath in
   // the directives given to SetMakeSharedLib() and SetMakeExe(), e.g.:
   //    gSystem->SetInclude("-I$ROOTSYS/include -Imydirectory/include");
   // the default value of IncludePath on Unix is:
   //    "-I$ROOTSYS/include "
   // and on Windows:
   //    "/I%ROOTSYS%/include "

   fIncludePath = includePath;
}

//______________________________________________________________________________
void  TSystem::SetLinkedLibs(const char *linkedLibs)
{
   // LinkedLibs should contain the library directory and list of libraries
   // needed to recreate the current executable. It is used to expand $LinkedLibs
   // in the directives given to SetMakeSharedLib() and SetMakeExe()
   // The default value on Unix is: root-config --glibs

   fLinkedLibs = linkedLibs;
}

//______________________________________________________________________________
void  TSystem::SetLinkdefSuffix(const char *suffix)
{
   // The 'suffix' will be appended to the name of a script loaded by ACLiC
   // and used to locate any eventual additional linkdef information that
   // ACLiC should used to produce the dictionary.
   // So by default, when doing .L MyScript.cxx, ACLiC will look
   // for a file name MyScript_linkdef and having one of the .h (.hpp,
   // etc.) extensions.  If such a file exist, it will be added to
   // the end of the linkdef file used to created the ACLiC dictionary.
   // This effectively enable the full customization of the creation
   // of the dictionary.  It should be noted that the file is intended
   // as a linkdef 'fragment', so usually you would not list the
   // typical '#pragma link off ....".

   fLinkdefSuffix = suffix;
}


//______________________________________________________________________________
void TSystem::SetSoExt(const char *SoExt)
{
   // Set shared library extension, should be either .so, .sl, .a, .dll, etc.

   fSoExt = SoExt;
}

//______________________________________________________________________________
void TSystem::SetObjExt(const char *ObjExt)
{
   // Set object files extension, should be either .o, .obj, etc.

   fObjExt = ObjExt;
}

//______________________________________________________________________________
TString TSystem::SplitAclicMode(const char* filename, TString &aclicMode,
                                TString &arguments, TString &io) const
{
   // This method split a filename of the form:
   //   [path/]macro.C[+|++[g|O]][(args)].
   // It stores the ACliC mode [+|++[g|O]] in 'mode',
   // the arguments (including paranthesis) in arg
   // and the I/O indirection in io

   char *fname = Strip(filename);

   char *arg = strchr(fname, '(');
   // special case for $(HOME)/aap.C(10)
   while (arg && *arg && (arg > fname && *(arg-1) == '$') && *(arg+1))
      arg = strchr(arg+1, '(');
   if (arg && arg > fname) {
      *arg = 0;
      char *t = arg-1;
      while (*t == ' ') {
         *t = 0; t--;
      }
      arg++;
   }

   // strip off I/O redirect tokens from filename
   {
      char *s2   = 0;
      char *s3;
      s2 = strstr(fname, ">>");
      if (!s2) s2 = strstr(fname, "2>");
      if (!s2) s2 = strchr(fname, '>');
      s3 = strchr(fname, '<');
      if (s2 && s3) s2 = s2<s3 ? s2 : s3;
      if (s3 && !s2) s2 = s3;
      if (s2==fname) {
         io = fname;
         aclicMode = "";
         arguments = "";
         delete []fname;
         return "";
      } else if (s2) {
         s2--;
         while (s2 && *s2 == ' ') s2--;
         s2++;
         io = s2; // ssave = *s2;
         *s2 = 0;
      } else
         io = "";
   }

   // remove the possible ACLiC + or ++ and g or O
   aclicMode.Clear();
   int len = strlen(fname);
   const char *mode = 0;
   if (len > 1) {
      if (strcmp(fname+len-1, "g") == 0)
         mode = "g";
      else if (strcmp(fname+len-1, "O") == 0)
         mode = "O";
      if (mode)
         len--;
   }
   Bool_t compile = len && fname[len - 1] == '+';
   Bool_t remove  = compile && len > 1 && fname[len - 2] == '+';
   if (compile) {
      if (mode) {
         fname[len] = 0;
      }
      if (remove) {
         fname[strlen(fname)-2] = 0;
         aclicMode = "++";
      } else {
         fname[strlen(fname)-1] = 0;
         aclicMode = "+";
      }
      if (mode)
         aclicMode += mode;
   }

   TString resFilename = fname;
   arguments = "(";
   if (arg) arguments += arg;
   else arguments = "";

   delete []fname;
   return resFilename;
}

//______________________________________________________________________________
void TSystem::CleanCompiledMacros()
{
   // Remove the shared libs produced by the CompileMacro() function.

   TIter next(fCompiled);
   TNamed *lib;
   while ((lib = (TNamed*)next())) {
      if (lib->TestBit(kMustCleanup)) Unlink(lib->GetTitle());
   }
}

//______________________________________________________________________________
TVersionCheck::TVersionCheck(int versionCode)
{
   // Register version of plugin library.

   if (versionCode != TROOT::RootVersionCode() && gLibraryVersion)
      gLibraryVersion[gLibraryVersionIdx] = versionCode;
}
 TSystem.cxx:1
 TSystem.cxx:2
 TSystem.cxx:3
 TSystem.cxx:4
 TSystem.cxx:5
 TSystem.cxx:6
 TSystem.cxx:7
 TSystem.cxx:8
 TSystem.cxx:9
 TSystem.cxx:10
 TSystem.cxx:11
 TSystem.cxx:12
 TSystem.cxx:13
 TSystem.cxx:14
 TSystem.cxx:15
 TSystem.cxx:16
 TSystem.cxx:17
 TSystem.cxx:18
 TSystem.cxx:19
 TSystem.cxx:20
 TSystem.cxx:21
 TSystem.cxx:22
 TSystem.cxx:23
 TSystem.cxx:24
 TSystem.cxx:25
 TSystem.cxx:26
 TSystem.cxx:27
 TSystem.cxx:28
 TSystem.cxx:29
 TSystem.cxx:30
 TSystem.cxx:31
 TSystem.cxx:32
 TSystem.cxx:33
 TSystem.cxx:34
 TSystem.cxx:35
 TSystem.cxx:36
 TSystem.cxx:37
 TSystem.cxx:38
 TSystem.cxx:39
 TSystem.cxx:40
 TSystem.cxx:41
 TSystem.cxx:42
 TSystem.cxx:43
 TSystem.cxx:44
 TSystem.cxx:45
 TSystem.cxx:46
 TSystem.cxx:47
 TSystem.cxx:48
 TSystem.cxx:49
 TSystem.cxx:50
 TSystem.cxx:51
 TSystem.cxx:52
 TSystem.cxx:53
 TSystem.cxx:54
 TSystem.cxx:55
 TSystem.cxx:56
 TSystem.cxx:57
 TSystem.cxx:58
 TSystem.cxx:59
 TSystem.cxx:60
 TSystem.cxx:61
 TSystem.cxx:62
 TSystem.cxx:63
 TSystem.cxx:64
 TSystem.cxx:65
 TSystem.cxx:66
 TSystem.cxx:67
 TSystem.cxx:68
 TSystem.cxx:69
 TSystem.cxx:70
 TSystem.cxx:71
 TSystem.cxx:72
 TSystem.cxx:73
 TSystem.cxx:74
 TSystem.cxx:75
 TSystem.cxx:76
 TSystem.cxx:77
 TSystem.cxx:78
 TSystem.cxx:79
 TSystem.cxx:80
 TSystem.cxx:81
 TSystem.cxx:82
 TSystem.cxx:83
 TSystem.cxx:84
 TSystem.cxx:85
 TSystem.cxx:86
 TSystem.cxx:87
 TSystem.cxx:88
 TSystem.cxx:89
 TSystem.cxx:90
 TSystem.cxx:91
 TSystem.cxx:92
 TSystem.cxx:93
 TSystem.cxx:94
 TSystem.cxx:95
 TSystem.cxx:96
 TSystem.cxx:97
 TSystem.cxx:98
 TSystem.cxx:99
 TSystem.cxx:100
 TSystem.cxx:101
 TSystem.cxx:102
 TSystem.cxx:103
 TSystem.cxx:104
 TSystem.cxx:105
 TSystem.cxx:106
 TSystem.cxx:107
 TSystem.cxx:108
 TSystem.cxx:109
 TSystem.cxx:110
 TSystem.cxx:111
 TSystem.cxx:112
 TSystem.cxx:113
 TSystem.cxx:114
 TSystem.cxx:115
 TSystem.cxx:116
 TSystem.cxx:117
 TSystem.cxx:118
 TSystem.cxx:119
 TSystem.cxx:120
 TSystem.cxx:121
 TSystem.cxx:122
 TSystem.cxx:123
 TSystem.cxx:124
 TSystem.cxx:125
 TSystem.cxx:126
 TSystem.cxx:127
 TSystem.cxx:128
 TSystem.cxx:129
 TSystem.cxx:130
 TSystem.cxx:131
 TSystem.cxx:132
 TSystem.cxx:133
 TSystem.cxx:134
 TSystem.cxx:135
 TSystem.cxx:136
 TSystem.cxx:137
 TSystem.cxx:138
 TSystem.cxx:139
 TSystem.cxx:140
 TSystem.cxx:141
 TSystem.cxx:142
 TSystem.cxx:143
 TSystem.cxx:144
 TSystem.cxx:145
 TSystem.cxx:146
 TSystem.cxx:147
 TSystem.cxx:148
 TSystem.cxx:149
 TSystem.cxx:150
 TSystem.cxx:151
 TSystem.cxx:152
 TSystem.cxx:153
 TSystem.cxx:154
 TSystem.cxx:155
 TSystem.cxx:156
 TSystem.cxx:157
 TSystem.cxx:158
 TSystem.cxx:159
 TSystem.cxx:160
 TSystem.cxx:161
 TSystem.cxx:162
 TSystem.cxx:163
 TSystem.cxx:164
 TSystem.cxx:165
 TSystem.cxx:166
 TSystem.cxx:167
 TSystem.cxx:168
 TSystem.cxx:169
 TSystem.cxx:170
 TSystem.cxx:171
 TSystem.cxx:172
 TSystem.cxx:173
 TSystem.cxx:174
 TSystem.cxx:175
 TSystem.cxx:176
 TSystem.cxx:177
 TSystem.cxx:178
 TSystem.cxx:179
 TSystem.cxx:180
 TSystem.cxx:181
 TSystem.cxx:182
 TSystem.cxx:183
 TSystem.cxx:184
 TSystem.cxx:185
 TSystem.cxx:186
 TSystem.cxx:187
 TSystem.cxx:188
 TSystem.cxx:189
 TSystem.cxx:190
 TSystem.cxx:191
 TSystem.cxx:192
 TSystem.cxx:193
 TSystem.cxx:194
 TSystem.cxx:195
 TSystem.cxx:196
 TSystem.cxx:197
 TSystem.cxx:198
 TSystem.cxx:199
 TSystem.cxx:200
 TSystem.cxx:201
 TSystem.cxx:202
 TSystem.cxx:203
 TSystem.cxx:204
 TSystem.cxx:205
 TSystem.cxx:206
 TSystem.cxx:207
 TSystem.cxx:208
 TSystem.cxx:209
 TSystem.cxx:210
 TSystem.cxx:211
 TSystem.cxx:212
 TSystem.cxx:213
 TSystem.cxx:214
 TSystem.cxx:215
 TSystem.cxx:216
 TSystem.cxx:217
 TSystem.cxx:218
 TSystem.cxx:219
 TSystem.cxx:220
 TSystem.cxx:221
 TSystem.cxx:222
 TSystem.cxx:223
 TSystem.cxx:224
 TSystem.cxx:225
 TSystem.cxx:226
 TSystem.cxx:227
 TSystem.cxx:228
 TSystem.cxx:229
 TSystem.cxx:230
 TSystem.cxx:231
 TSystem.cxx:232
 TSystem.cxx:233
 TSystem.cxx:234
 TSystem.cxx:235
 TSystem.cxx:236
 TSystem.cxx:237
 TSystem.cxx:238
 TSystem.cxx:239
 TSystem.cxx:240
 TSystem.cxx:241
 TSystem.cxx:242
 TSystem.cxx:243
 TSystem.cxx:244
 TSystem.cxx:245
 TSystem.cxx:246
 TSystem.cxx:247
 TSystem.cxx:248
 TSystem.cxx:249
 TSystem.cxx:250
 TSystem.cxx:251
 TSystem.cxx:252
 TSystem.cxx:253
 TSystem.cxx:254
 TSystem.cxx:255
 TSystem.cxx:256
 TSystem.cxx:257
 TSystem.cxx:258
 TSystem.cxx:259
 TSystem.cxx:260
 TSystem.cxx:261
 TSystem.cxx:262
 TSystem.cxx:263
 TSystem.cxx:264
 TSystem.cxx:265
 TSystem.cxx:266
 TSystem.cxx:267
 TSystem.cxx:268
 TSystem.cxx:269
 TSystem.cxx:270
 TSystem.cxx:271
 TSystem.cxx:272
 TSystem.cxx:273
 TSystem.cxx:274
 TSystem.cxx:275
 TSystem.cxx:276
 TSystem.cxx:277
 TSystem.cxx:278
 TSystem.cxx:279
 TSystem.cxx:280
 TSystem.cxx:281
 TSystem.cxx:282
 TSystem.cxx:283
 TSystem.cxx:284
 TSystem.cxx:285
 TSystem.cxx:286
 TSystem.cxx:287
 TSystem.cxx:288
 TSystem.cxx:289
 TSystem.cxx:290
 TSystem.cxx:291
 TSystem.cxx:292
 TSystem.cxx:293
 TSystem.cxx:294
 TSystem.cxx:295
 TSystem.cxx:296
 TSystem.cxx:297
 TSystem.cxx:298
 TSystem.cxx:299
 TSystem.cxx:300
 TSystem.cxx:301
 TSystem.cxx:302
 TSystem.cxx:303
 TSystem.cxx:304
 TSystem.cxx:305
 TSystem.cxx:306
 TSystem.cxx:307
 TSystem.cxx:308
 TSystem.cxx:309
 TSystem.cxx:310
 TSystem.cxx:311
 TSystem.cxx:312
 TSystem.cxx:313
 TSystem.cxx:314
 TSystem.cxx:315
 TSystem.cxx:316
 TSystem.cxx:317
 TSystem.cxx:318
 TSystem.cxx:319
 TSystem.cxx:320
 TSystem.cxx:321
 TSystem.cxx:322
 TSystem.cxx:323
 TSystem.cxx:324
 TSystem.cxx:325
 TSystem.cxx:326
 TSystem.cxx:327
 TSystem.cxx:328
 TSystem.cxx:329
 TSystem.cxx:330
 TSystem.cxx:331
 TSystem.cxx:332
 TSystem.cxx:333
 TSystem.cxx:334
 TSystem.cxx:335
 TSystem.cxx:336
 TSystem.cxx:337
 TSystem.cxx:338
 TSystem.cxx:339
 TSystem.cxx:340
 TSystem.cxx:341
 TSystem.cxx:342
 TSystem.cxx:343
 TSystem.cxx:344
 TSystem.cxx:345
 TSystem.cxx:346
 TSystem.cxx:347
 TSystem.cxx:348
 TSystem.cxx:349
 TSystem.cxx:350
 TSystem.cxx:351
 TSystem.cxx:352
 TSystem.cxx:353
 TSystem.cxx:354
 TSystem.cxx:355
 TSystem.cxx:356
 TSystem.cxx:357
 TSystem.cxx:358
 TSystem.cxx:359
 TSystem.cxx:360
 TSystem.cxx:361
 TSystem.cxx:362
 TSystem.cxx:363
 TSystem.cxx:364
 TSystem.cxx:365
 TSystem.cxx:366
 TSystem.cxx:367
 TSystem.cxx:368
 TSystem.cxx:369
 TSystem.cxx:370
 TSystem.cxx:371
 TSystem.cxx:372
 TSystem.cxx:373
 TSystem.cxx:374
 TSystem.cxx:375
 TSystem.cxx:376
 TSystem.cxx:377
 TSystem.cxx:378
 TSystem.cxx:379
 TSystem.cxx:380
 TSystem.cxx:381
 TSystem.cxx:382
 TSystem.cxx:383
 TSystem.cxx:384
 TSystem.cxx:385
 TSystem.cxx:386
 TSystem.cxx:387
 TSystem.cxx:388
 TSystem.cxx:389
 TSystem.cxx:390
 TSystem.cxx:391
 TSystem.cxx:392
 TSystem.cxx:393
 TSystem.cxx:394
 TSystem.cxx:395
 TSystem.cxx:396
 TSystem.cxx:397
 TSystem.cxx:398
 TSystem.cxx:399
 TSystem.cxx:400
 TSystem.cxx:401
 TSystem.cxx:402
 TSystem.cxx:403
 TSystem.cxx:404
 TSystem.cxx:405
 TSystem.cxx:406
 TSystem.cxx:407
 TSystem.cxx:408
 TSystem.cxx:409
 TSystem.cxx:410
 TSystem.cxx:411
 TSystem.cxx:412
 TSystem.cxx:413
 TSystem.cxx:414
 TSystem.cxx:415
 TSystem.cxx:416
 TSystem.cxx:417
 TSystem.cxx:418
 TSystem.cxx:419
 TSystem.cxx:420
 TSystem.cxx:421
 TSystem.cxx:422
 TSystem.cxx:423
 TSystem.cxx:424
 TSystem.cxx:425
 TSystem.cxx:426
 TSystem.cxx:427
 TSystem.cxx:428
 TSystem.cxx:429
 TSystem.cxx:430
 TSystem.cxx:431
 TSystem.cxx:432
 TSystem.cxx:433
 TSystem.cxx:434
 TSystem.cxx:435
 TSystem.cxx:436
 TSystem.cxx:437
 TSystem.cxx:438
 TSystem.cxx:439
 TSystem.cxx:440
 TSystem.cxx:441
 TSystem.cxx:442
 TSystem.cxx:443
 TSystem.cxx:444
 TSystem.cxx:445
 TSystem.cxx:446
 TSystem.cxx:447
 TSystem.cxx:448
 TSystem.cxx:449
 TSystem.cxx:450
 TSystem.cxx:451
 TSystem.cxx:452
 TSystem.cxx:453
 TSystem.cxx:454
 TSystem.cxx:455
 TSystem.cxx:456
 TSystem.cxx:457
 TSystem.cxx:458
 TSystem.cxx:459
 TSystem.cxx:460
 TSystem.cxx:461
 TSystem.cxx:462
 TSystem.cxx:463
 TSystem.cxx:464
 TSystem.cxx:465
 TSystem.cxx:466
 TSystem.cxx:467
 TSystem.cxx:468
 TSystem.cxx:469
 TSystem.cxx:470
 TSystem.cxx:471
 TSystem.cxx:472
 TSystem.cxx:473
 TSystem.cxx:474
 TSystem.cxx:475
 TSystem.cxx:476
 TSystem.cxx:477
 TSystem.cxx:478
 TSystem.cxx:479
 TSystem.cxx:480
 TSystem.cxx:481
 TSystem.cxx:482
 TSystem.cxx:483
 TSystem.cxx:484
 TSystem.cxx:485
 TSystem.cxx:486
 TSystem.cxx:487
 TSystem.cxx:488
 TSystem.cxx:489
 TSystem.cxx:490
 TSystem.cxx:491
 TSystem.cxx:492
 TSystem.cxx:493
 TSystem.cxx:494
 TSystem.cxx:495
 TSystem.cxx:496
 TSystem.cxx:497
 TSystem.cxx:498
 TSystem.cxx:499
 TSystem.cxx:500
 TSystem.cxx:501
 TSystem.cxx:502
 TSystem.cxx:503
 TSystem.cxx:504
 TSystem.cxx:505
 TSystem.cxx:506
 TSystem.cxx:507
 TSystem.cxx:508
 TSystem.cxx:509
 TSystem.cxx:510
 TSystem.cxx:511
 TSystem.cxx:512
 TSystem.cxx:513
 TSystem.cxx:514
 TSystem.cxx:515
 TSystem.cxx:516
 TSystem.cxx:517
 TSystem.cxx:518
 TSystem.cxx:519
 TSystem.cxx:520
 TSystem.cxx:521
 TSystem.cxx:522
 TSystem.cxx:523
 TSystem.cxx:524
 TSystem.cxx:525
 TSystem.cxx:526
 TSystem.cxx:527
 TSystem.cxx:528
 TSystem.cxx:529
 TSystem.cxx:530
 TSystem.cxx:531
 TSystem.cxx:532
 TSystem.cxx:533
 TSystem.cxx:534
 TSystem.cxx:535
 TSystem.cxx:536
 TSystem.cxx:537
 TSystem.cxx:538
 TSystem.cxx:539
 TSystem.cxx:540
 TSystem.cxx:541
 TSystem.cxx:542
 TSystem.cxx:543
 TSystem.cxx:544
 TSystem.cxx:545
 TSystem.cxx:546
 TSystem.cxx:547
 TSystem.cxx:548
 TSystem.cxx:549
 TSystem.cxx:550
 TSystem.cxx:551
 TSystem.cxx:552
 TSystem.cxx:553
 TSystem.cxx:554
 TSystem.cxx:555
 TSystem.cxx:556
 TSystem.cxx:557
 TSystem.cxx:558
 TSystem.cxx:559
 TSystem.cxx:560
 TSystem.cxx:561
 TSystem.cxx:562
 TSystem.cxx:563
 TSystem.cxx:564
 TSystem.cxx:565
 TSystem.cxx:566
 TSystem.cxx:567
 TSystem.cxx:568
 TSystem.cxx:569
 TSystem.cxx:570
 TSystem.cxx:571
 TSystem.cxx:572
 TSystem.cxx:573
 TSystem.cxx:574
 TSystem.cxx:575
 TSystem.cxx:576
 TSystem.cxx:577
 TSystem.cxx:578
 TSystem.cxx:579
 TSystem.cxx:580
 TSystem.cxx:581
 TSystem.cxx:582
 TSystem.cxx:583
 TSystem.cxx:584
 TSystem.cxx:585
 TSystem.cxx:586
 TSystem.cxx:587
 TSystem.cxx:588
 TSystem.cxx:589
 TSystem.cxx:590
 TSystem.cxx:591
 TSystem.cxx:592
 TSystem.cxx:593
 TSystem.cxx:594
 TSystem.cxx:595
 TSystem.cxx:596
 TSystem.cxx:597
 TSystem.cxx:598
 TSystem.cxx:599
 TSystem.cxx:600
 TSystem.cxx:601
 TSystem.cxx:602
 TSystem.cxx:603
 TSystem.cxx:604
 TSystem.cxx:605
 TSystem.cxx:606
 TSystem.cxx:607
 TSystem.cxx:608
 TSystem.cxx:609
 TSystem.cxx:610
 TSystem.cxx:611
 TSystem.cxx:612
 TSystem.cxx:613
 TSystem.cxx:614
 TSystem.cxx:615
 TSystem.cxx:616
 TSystem.cxx:617
 TSystem.cxx:618
 TSystem.cxx:619
 TSystem.cxx:620
 TSystem.cxx:621
 TSystem.cxx:622
 TSystem.cxx:623
 TSystem.cxx:624
 TSystem.cxx:625
 TSystem.cxx:626
 TSystem.cxx:627
 TSystem.cxx:628
 TSystem.cxx:629
 TSystem.cxx:630
 TSystem.cxx:631
 TSystem.cxx:632
 TSystem.cxx:633
 TSystem.cxx:634
 TSystem.cxx:635
 TSystem.cxx:636
 TSystem.cxx:637
 TSystem.cxx:638
 TSystem.cxx:639
 TSystem.cxx:640
 TSystem.cxx:641
 TSystem.cxx:642
 TSystem.cxx:643
 TSystem.cxx:644
 TSystem.cxx:645
 TSystem.cxx:646
 TSystem.cxx:647
 TSystem.cxx:648
 TSystem.cxx:649
 TSystem.cxx:650
 TSystem.cxx:651
 TSystem.cxx:652
 TSystem.cxx:653
 TSystem.cxx:654
 TSystem.cxx:655
 TSystem.cxx:656
 TSystem.cxx:657
 TSystem.cxx:658
 TSystem.cxx:659
 TSystem.cxx:660
 TSystem.cxx:661
 TSystem.cxx:662
 TSystem.cxx:663
 TSystem.cxx:664
 TSystem.cxx:665
 TSystem.cxx:666
 TSystem.cxx:667
 TSystem.cxx:668
 TSystem.cxx:669
 TSystem.cxx:670
 TSystem.cxx:671
 TSystem.cxx:672
 TSystem.cxx:673
 TSystem.cxx:674
 TSystem.cxx:675
 TSystem.cxx:676
 TSystem.cxx:677
 TSystem.cxx:678
 TSystem.cxx:679
 TSystem.cxx:680
 TSystem.cxx:681
 TSystem.cxx:682
 TSystem.cxx:683
 TSystem.cxx:684
 TSystem.cxx:685
 TSystem.cxx:686
 TSystem.cxx:687
 TSystem.cxx:688
 TSystem.cxx:689
 TSystem.cxx:690
 TSystem.cxx:691
 TSystem.cxx:692
 TSystem.cxx:693
 TSystem.cxx:694
 TSystem.cxx:695
 TSystem.cxx:696
 TSystem.cxx:697
 TSystem.cxx:698
 TSystem.cxx:699
 TSystem.cxx:700
 TSystem.cxx:701
 TSystem.cxx:702
 TSystem.cxx:703
 TSystem.cxx:704
 TSystem.cxx:705
 TSystem.cxx:706
 TSystem.cxx:707
 TSystem.cxx:708
 TSystem.cxx:709
 TSystem.cxx:710
 TSystem.cxx:711
 TSystem.cxx:712
 TSystem.cxx:713
 TSystem.cxx:714
 TSystem.cxx:715
 TSystem.cxx:716
 TSystem.cxx:717
 TSystem.cxx:718
 TSystem.cxx:719
 TSystem.cxx:720
 TSystem.cxx:721
 TSystem.cxx:722
 TSystem.cxx:723
 TSystem.cxx:724
 TSystem.cxx:725
 TSystem.cxx:726
 TSystem.cxx:727
 TSystem.cxx:728
 TSystem.cxx:729
 TSystem.cxx:730
 TSystem.cxx:731
 TSystem.cxx:732
 TSystem.cxx:733
 TSystem.cxx:734
 TSystem.cxx:735
 TSystem.cxx:736
 TSystem.cxx:737
 TSystem.cxx:738
 TSystem.cxx:739
 TSystem.cxx:740
 TSystem.cxx:741
 TSystem.cxx:742
 TSystem.cxx:743
 TSystem.cxx:744
 TSystem.cxx:745
 TSystem.cxx:746
 TSystem.cxx:747
 TSystem.cxx:748
 TSystem.cxx:749
 TSystem.cxx:750
 TSystem.cxx:751
 TSystem.cxx:752
 TSystem.cxx:753
 TSystem.cxx:754
 TSystem.cxx:755
 TSystem.cxx:756
 TSystem.cxx:757
 TSystem.cxx:758
 TSystem.cxx:759
 TSystem.cxx:760
 TSystem.cxx:761
 TSystem.cxx:762
 TSystem.cxx:763
 TSystem.cxx:764
 TSystem.cxx:765
 TSystem.cxx:766
 TSystem.cxx:767
 TSystem.cxx:768
 TSystem.cxx:769
 TSystem.cxx:770
 TSystem.cxx:771
 TSystem.cxx:772
 TSystem.cxx:773
 TSystem.cxx:774
 TSystem.cxx:775
 TSystem.cxx:776
 TSystem.cxx:777
 TSystem.cxx:778
 TSystem.cxx:779
 TSystem.cxx:780
 TSystem.cxx:781
 TSystem.cxx:782
 TSystem.cxx:783
 TSystem.cxx:784
 TSystem.cxx:785
 TSystem.cxx:786
 TSystem.cxx:787
 TSystem.cxx:788
 TSystem.cxx:789
 TSystem.cxx:790
 TSystem.cxx:791
 TSystem.cxx:792
 TSystem.cxx:793
 TSystem.cxx:794
 TSystem.cxx:795
 TSystem.cxx:796
 TSystem.cxx:797
 TSystem.cxx:798
 TSystem.cxx:799
 TSystem.cxx:800
 TSystem.cxx:801
 TSystem.cxx:802
 TSystem.cxx:803
 TSystem.cxx:804
 TSystem.cxx:805
 TSystem.cxx:806
 TSystem.cxx:807
 TSystem.cxx:808
 TSystem.cxx:809
 TSystem.cxx:810
 TSystem.cxx:811
 TSystem.cxx:812
 TSystem.cxx:813
 TSystem.cxx:814
 TSystem.cxx:815
 TSystem.cxx:816
 TSystem.cxx:817
 TSystem.cxx:818
 TSystem.cxx:819
 TSystem.cxx:820
 TSystem.cxx:821
 TSystem.cxx:822
 TSystem.cxx:823
 TSystem.cxx:824
 TSystem.cxx:825
 TSystem.cxx:826
 TSystem.cxx:827
 TSystem.cxx:828
 TSystem.cxx:829
 TSystem.cxx:830
 TSystem.cxx:831
 TSystem.cxx:832
 TSystem.cxx:833
 TSystem.cxx:834
 TSystem.cxx:835
 TSystem.cxx:836
 TSystem.cxx:837
 TSystem.cxx:838
 TSystem.cxx:839
 TSystem.cxx:840
 TSystem.cxx:841
 TSystem.cxx:842
 TSystem.cxx:843
 TSystem.cxx:844
 TSystem.cxx:845
 TSystem.cxx:846
 TSystem.cxx:847
 TSystem.cxx:848
 TSystem.cxx:849
 TSystem.cxx:850
 TSystem.cxx:851
 TSystem.cxx:852
 TSystem.cxx:853
 TSystem.cxx:854
 TSystem.cxx:855
 TSystem.cxx:856
 TSystem.cxx:857
 TSystem.cxx:858
 TSystem.cxx:859
 TSystem.cxx:860
 TSystem.cxx:861
 TSystem.cxx:862
 TSystem.cxx:863
 TSystem.cxx:864
 TSystem.cxx:865
 TSystem.cxx:866
 TSystem.cxx:867
 TSystem.cxx:868
 TSystem.cxx:869
 TSystem.cxx:870
 TSystem.cxx:871
 TSystem.cxx:872
 TSystem.cxx:873
 TSystem.cxx:874
 TSystem.cxx:875
 TSystem.cxx:876
 TSystem.cxx:877
 TSystem.cxx:878
 TSystem.cxx:879
 TSystem.cxx:880
 TSystem.cxx:881
 TSystem.cxx:882
 TSystem.cxx:883
 TSystem.cxx:884
 TSystem.cxx:885
 TSystem.cxx:886
 TSystem.cxx:887
 TSystem.cxx:888
 TSystem.cxx:889
 TSystem.cxx:890
 TSystem.cxx:891
 TSystem.cxx:892
 TSystem.cxx:893
 TSystem.cxx:894
 TSystem.cxx:895
 TSystem.cxx:896
 TSystem.cxx:897
 TSystem.cxx:898
 TSystem.cxx:899
 TSystem.cxx:900
 TSystem.cxx:901
 TSystem.cxx:902
 TSystem.cxx:903
 TSystem.cxx:904
 TSystem.cxx:905
 TSystem.cxx:906
 TSystem.cxx:907
 TSystem.cxx:908
 TSystem.cxx:909
 TSystem.cxx:910
 TSystem.cxx:911
 TSystem.cxx:912
 TSystem.cxx:913
 TSystem.cxx:914
 TSystem.cxx:915
 TSystem.cxx:916
 TSystem.cxx:917
 TSystem.cxx:918
 TSystem.cxx:919
 TSystem.cxx:920
 TSystem.cxx:921
 TSystem.cxx:922
 TSystem.cxx:923
 TSystem.cxx:924
 TSystem.cxx:925
 TSystem.cxx:926
 TSystem.cxx:927
 TSystem.cxx:928
 TSystem.cxx:929
 TSystem.cxx:930
 TSystem.cxx:931
 TSystem.cxx:932
 TSystem.cxx:933
 TSystem.cxx:934
 TSystem.cxx:935
 TSystem.cxx:936
 TSystem.cxx:937
 TSystem.cxx:938
 TSystem.cxx:939
 TSystem.cxx:940
 TSystem.cxx:941
 TSystem.cxx:942
 TSystem.cxx:943
 TSystem.cxx:944
 TSystem.cxx:945
 TSystem.cxx:946
 TSystem.cxx:947
 TSystem.cxx:948
 TSystem.cxx:949
 TSystem.cxx:950
 TSystem.cxx:951
 TSystem.cxx:952
 TSystem.cxx:953
 TSystem.cxx:954
 TSystem.cxx:955
 TSystem.cxx:956
 TSystem.cxx:957
 TSystem.cxx:958
 TSystem.cxx:959
 TSystem.cxx:960
 TSystem.cxx:961
 TSystem.cxx:962
 TSystem.cxx:963
 TSystem.cxx:964
 TSystem.cxx:965
 TSystem.cxx:966
 TSystem.cxx:967
 TSystem.cxx:968
 TSystem.cxx:969
 TSystem.cxx:970
 TSystem.cxx:971
 TSystem.cxx:972
 TSystem.cxx:973
 TSystem.cxx:974
 TSystem.cxx:975
 TSystem.cxx:976
 TSystem.cxx:977
 TSystem.cxx:978
 TSystem.cxx:979
 TSystem.cxx:980
 TSystem.cxx:981
 TSystem.cxx:982
 TSystem.cxx:983
 TSystem.cxx:984
 TSystem.cxx:985
 TSystem.cxx:986
 TSystem.cxx:987
 TSystem.cxx:988
 TSystem.cxx:989
 TSystem.cxx:990
 TSystem.cxx:991
 TSystem.cxx:992
 TSystem.cxx:993
 TSystem.cxx:994
 TSystem.cxx:995
 TSystem.cxx:996
 TSystem.cxx:997
 TSystem.cxx:998
 TSystem.cxx:999
 TSystem.cxx:1000
 TSystem.cxx:1001
 TSystem.cxx:1002
 TSystem.cxx:1003
 TSystem.cxx:1004
 TSystem.cxx:1005
 TSystem.cxx:1006
 TSystem.cxx:1007
 TSystem.cxx:1008
 TSystem.cxx:1009
 TSystem.cxx:1010
 TSystem.cxx:1011
 TSystem.cxx:1012
 TSystem.cxx:1013
 TSystem.cxx:1014
 TSystem.cxx:1015
 TSystem.cxx:1016
 TSystem.cxx:1017
 TSystem.cxx:1018
 TSystem.cxx:1019
 TSystem.cxx:1020
 TSystem.cxx:1021
 TSystem.cxx:1022
 TSystem.cxx:1023
 TSystem.cxx:1024
 TSystem.cxx:1025
 TSystem.cxx:1026
 TSystem.cxx:1027
 TSystem.cxx:1028
 TSystem.cxx:1029
 TSystem.cxx:1030
 TSystem.cxx:1031
 TSystem.cxx:1032
 TSystem.cxx:1033
 TSystem.cxx:1034
 TSystem.cxx:1035
 TSystem.cxx:1036
 TSystem.cxx:1037
 TSystem.cxx:1038
 TSystem.cxx:1039
 TSystem.cxx:1040
 TSystem.cxx:1041
 TSystem.cxx:1042
 TSystem.cxx:1043
 TSystem.cxx:1044
 TSystem.cxx:1045
 TSystem.cxx:1046
 TSystem.cxx:1047
 TSystem.cxx:1048
 TSystem.cxx:1049
 TSystem.cxx:1050
 TSystem.cxx:1051
 TSystem.cxx:1052
 TSystem.cxx:1053
 TSystem.cxx:1054
 TSystem.cxx:1055
 TSystem.cxx:1056
 TSystem.cxx:1057
 TSystem.cxx:1058
 TSystem.cxx:1059
 TSystem.cxx:1060
 TSystem.cxx:1061
 TSystem.cxx:1062
 TSystem.cxx:1063
 TSystem.cxx:1064
 TSystem.cxx:1065
 TSystem.cxx:1066
 TSystem.cxx:1067
 TSystem.cxx:1068
 TSystem.cxx:1069
 TSystem.cxx:1070
 TSystem.cxx:1071
 TSystem.cxx:1072
 TSystem.cxx:1073
 TSystem.cxx:1074
 TSystem.cxx:1075
 TSystem.cxx:1076
 TSystem.cxx:1077
 TSystem.cxx:1078
 TSystem.cxx:1079
 TSystem.cxx:1080
 TSystem.cxx:1081
 TSystem.cxx:1082
 TSystem.cxx:1083
 TSystem.cxx:1084
 TSystem.cxx:1085
 TSystem.cxx:1086
 TSystem.cxx:1087
 TSystem.cxx:1088
 TSystem.cxx:1089
 TSystem.cxx:1090
 TSystem.cxx:1091
 TSystem.cxx:1092
 TSystem.cxx:1093
 TSystem.cxx:1094
 TSystem.cxx:1095
 TSystem.cxx:1096
 TSystem.cxx:1097
 TSystem.cxx:1098
 TSystem.cxx:1099
 TSystem.cxx:1100
 TSystem.cxx:1101
 TSystem.cxx:1102
 TSystem.cxx:1103
 TSystem.cxx:1104
 TSystem.cxx:1105
 TSystem.cxx:1106
 TSystem.cxx:1107
 TSystem.cxx:1108
 TSystem.cxx:1109
 TSystem.cxx:1110
 TSystem.cxx:1111
 TSystem.cxx:1112
 TSystem.cxx:1113
 TSystem.cxx:1114
 TSystem.cxx:1115
 TSystem.cxx:1116
 TSystem.cxx:1117
 TSystem.cxx:1118
 TSystem.cxx:1119
 TSystem.cxx:1120
 TSystem.cxx:1121
 TSystem.cxx:1122
 TSystem.cxx:1123
 TSystem.cxx:1124
 TSystem.cxx:1125
 TSystem.cxx:1126
 TSystem.cxx:1127
 TSystem.cxx:1128
 TSystem.cxx:1129
 TSystem.cxx:1130
 TSystem.cxx:1131
 TSystem.cxx:1132
 TSystem.cxx:1133
 TSystem.cxx:1134
 TSystem.cxx:1135
 TSystem.cxx:1136
 TSystem.cxx:1137
 TSystem.cxx:1138
 TSystem.cxx:1139
 TSystem.cxx:1140
 TSystem.cxx:1141
 TSystem.cxx:1142
 TSystem.cxx:1143
 TSystem.cxx:1144
 TSystem.cxx:1145
 TSystem.cxx:1146
 TSystem.cxx:1147
 TSystem.cxx:1148
 TSystem.cxx:1149
 TSystem.cxx:1150
 TSystem.cxx:1151
 TSystem.cxx:1152
 TSystem.cxx:1153
 TSystem.cxx:1154
 TSystem.cxx:1155
 TSystem.cxx:1156
 TSystem.cxx:1157
 TSystem.cxx:1158
 TSystem.cxx:1159
 TSystem.cxx:1160
 TSystem.cxx:1161
 TSystem.cxx:1162
 TSystem.cxx:1163
 TSystem.cxx:1164
 TSystem.cxx:1165
 TSystem.cxx:1166
 TSystem.cxx:1167
 TSystem.cxx:1168
 TSystem.cxx:1169
 TSystem.cxx:1170
 TSystem.cxx:1171
 TSystem.cxx:1172
 TSystem.cxx:1173
 TSystem.cxx:1174
 TSystem.cxx:1175
 TSystem.cxx:1176
 TSystem.cxx:1177
 TSystem.cxx:1178
 TSystem.cxx:1179
 TSystem.cxx:1180
 TSystem.cxx:1181
 TSystem.cxx:1182
 TSystem.cxx:1183
 TSystem.cxx:1184
 TSystem.cxx:1185
 TSystem.cxx:1186
 TSystem.cxx:1187
 TSystem.cxx:1188
 TSystem.cxx:1189
 TSystem.cxx:1190
 TSystem.cxx:1191
 TSystem.cxx:1192
 TSystem.cxx:1193
 TSystem.cxx:1194
 TSystem.cxx:1195
 TSystem.cxx:1196
 TSystem.cxx:1197
 TSystem.cxx:1198
 TSystem.cxx:1199
 TSystem.cxx:1200
 TSystem.cxx:1201
 TSystem.cxx:1202
 TSystem.cxx:1203
 TSystem.cxx:1204
 TSystem.cxx:1205
 TSystem.cxx:1206
 TSystem.cxx:1207
 TSystem.cxx:1208
 TSystem.cxx:1209
 TSystem.cxx:1210
 TSystem.cxx:1211
 TSystem.cxx:1212
 TSystem.cxx:1213
 TSystem.cxx:1214
 TSystem.cxx:1215
 TSystem.cxx:1216
 TSystem.cxx:1217
 TSystem.cxx:1218
 TSystem.cxx:1219
 TSystem.cxx:1220
 TSystem.cxx:1221
 TSystem.cxx:1222
 TSystem.cxx:1223
 TSystem.cxx:1224
 TSystem.cxx:1225
 TSystem.cxx:1226
 TSystem.cxx:1227
 TSystem.cxx:1228
 TSystem.cxx:1229
 TSystem.cxx:1230
 TSystem.cxx:1231
 TSystem.cxx:1232
 TSystem.cxx:1233
 TSystem.cxx:1234
 TSystem.cxx:1235
 TSystem.cxx:1236
 TSystem.cxx:1237
 TSystem.cxx:1238
 TSystem.cxx:1239
 TSystem.cxx:1240
 TSystem.cxx:1241
 TSystem.cxx:1242
 TSystem.cxx:1243
 TSystem.cxx:1244
 TSystem.cxx:1245
 TSystem.cxx:1246
 TSystem.cxx:1247
 TSystem.cxx:1248
 TSystem.cxx:1249
 TSystem.cxx:1250
 TSystem.cxx:1251
 TSystem.cxx:1252
 TSystem.cxx:1253
 TSystem.cxx:1254
 TSystem.cxx:1255
 TSystem.cxx:1256
 TSystem.cxx:1257
 TSystem.cxx:1258
 TSystem.cxx:1259
 TSystem.cxx:1260
 TSystem.cxx:1261
 TSystem.cxx:1262
 TSystem.cxx:1263
 TSystem.cxx:1264
 TSystem.cxx:1265
 TSystem.cxx:1266
 TSystem.cxx:1267
 TSystem.cxx:1268
 TSystem.cxx:1269
 TSystem.cxx:1270
 TSystem.cxx:1271
 TSystem.cxx:1272
 TSystem.cxx:1273
 TSystem.cxx:1274
 TSystem.cxx:1275
 TSystem.cxx:1276
 TSystem.cxx:1277
 TSystem.cxx:1278
 TSystem.cxx:1279
 TSystem.cxx:1280
 TSystem.cxx:1281
 TSystem.cxx:1282
 TSystem.cxx:1283
 TSystem.cxx:1284
 TSystem.cxx:1285
 TSystem.cxx:1286
 TSystem.cxx:1287
 TSystem.cxx:1288
 TSystem.cxx:1289
 TSystem.cxx:1290
 TSystem.cxx:1291
 TSystem.cxx:1292
 TSystem.cxx:1293
 TSystem.cxx:1294
 TSystem.cxx:1295
 TSystem.cxx:1296
 TSystem.cxx:1297
 TSystem.cxx:1298
 TSystem.cxx:1299
 TSystem.cxx:1300
 TSystem.cxx:1301
 TSystem.cxx:1302
 TSystem.cxx:1303
 TSystem.cxx:1304
 TSystem.cxx:1305
 TSystem.cxx:1306
 TSystem.cxx:1307
 TSystem.cxx:1308
 TSystem.cxx:1309
 TSystem.cxx:1310
 TSystem.cxx:1311
 TSystem.cxx:1312
 TSystem.cxx:1313
 TSystem.cxx:1314
 TSystem.cxx:1315
 TSystem.cxx:1316
 TSystem.cxx:1317
 TSystem.cxx:1318
 TSystem.cxx:1319
 TSystem.cxx:1320
 TSystem.cxx:1321
 TSystem.cxx:1322
 TSystem.cxx:1323
 TSystem.cxx:1324
 TSystem.cxx:1325
 TSystem.cxx:1326
 TSystem.cxx:1327
 TSystem.cxx:1328
 TSystem.cxx:1329
 TSystem.cxx:1330
 TSystem.cxx:1331
 TSystem.cxx:1332
 TSystem.cxx:1333
 TSystem.cxx:1334
 TSystem.cxx:1335
 TSystem.cxx:1336
 TSystem.cxx:1337
 TSystem.cxx:1338
 TSystem.cxx:1339
 TSystem.cxx:1340
 TSystem.cxx:1341
 TSystem.cxx:1342
 TSystem.cxx:1343
 TSystem.cxx:1344
 TSystem.cxx:1345
 TSystem.cxx:1346
 TSystem.cxx:1347
 TSystem.cxx:1348
 TSystem.cxx:1349
 TSystem.cxx:1350
 TSystem.cxx:1351
 TSystem.cxx:1352
 TSystem.cxx:1353
 TSystem.cxx:1354
 TSystem.cxx:1355
 TSystem.cxx:1356
 TSystem.cxx:1357
 TSystem.cxx:1358
 TSystem.cxx:1359
 TSystem.cxx:1360
 TSystem.cxx:1361
 TSystem.cxx:1362
 TSystem.cxx:1363
 TSystem.cxx:1364
 TSystem.cxx:1365
 TSystem.cxx:1366
 TSystem.cxx:1367
 TSystem.cxx:1368
 TSystem.cxx:1369
 TSystem.cxx:1370
 TSystem.cxx:1371
 TSystem.cxx:1372
 TSystem.cxx:1373
 TSystem.cxx:1374
 TSystem.cxx:1375
 TSystem.cxx:1376
 TSystem.cxx:1377
 TSystem.cxx:1378
 TSystem.cxx:1379
 TSystem.cxx:1380
 TSystem.cxx:1381
 TSystem.cxx:1382
 TSystem.cxx:1383
 TSystem.cxx:1384
 TSystem.cxx:1385
 TSystem.cxx:1386
 TSystem.cxx:1387
 TSystem.cxx:1388
 TSystem.cxx:1389
 TSystem.cxx:1390
 TSystem.cxx:1391
 TSystem.cxx:1392
 TSystem.cxx:1393
 TSystem.cxx:1394
 TSystem.cxx:1395
 TSystem.cxx:1396
 TSystem.cxx:1397
 TSystem.cxx:1398
 TSystem.cxx:1399
 TSystem.cxx:1400
 TSystem.cxx:1401
 TSystem.cxx:1402
 TSystem.cxx:1403
 TSystem.cxx:1404
 TSystem.cxx:1405
 TSystem.cxx:1406
 TSystem.cxx:1407
 TSystem.cxx:1408
 TSystem.cxx:1409
 TSystem.cxx:1410
 TSystem.cxx:1411
 TSystem.cxx:1412
 TSystem.cxx:1413
 TSystem.cxx:1414
 TSystem.cxx:1415
 TSystem.cxx:1416
 TSystem.cxx:1417
 TSystem.cxx:1418
 TSystem.cxx:1419
 TSystem.cxx:1420
 TSystem.cxx:1421
 TSystem.cxx:1422
 TSystem.cxx:1423
 TSystem.cxx:1424
 TSystem.cxx:1425
 TSystem.cxx:1426
 TSystem.cxx:1427
 TSystem.cxx:1428
 TSystem.cxx:1429
 TSystem.cxx:1430
 TSystem.cxx:1431
 TSystem.cxx:1432
 TSystem.cxx:1433
 TSystem.cxx:1434
 TSystem.cxx:1435
 TSystem.cxx:1436
 TSystem.cxx:1437
 TSystem.cxx:1438
 TSystem.cxx:1439
 TSystem.cxx:1440
 TSystem.cxx:1441
 TSystem.cxx:1442
 TSystem.cxx:1443
 TSystem.cxx:1444
 TSystem.cxx:1445
 TSystem.cxx:1446
 TSystem.cxx:1447
 TSystem.cxx:1448
 TSystem.cxx:1449
 TSystem.cxx:1450
 TSystem.cxx:1451
 TSystem.cxx:1452
 TSystem.cxx:1453
 TSystem.cxx:1454
 TSystem.cxx:1455
 TSystem.cxx:1456
 TSystem.cxx:1457
 TSystem.cxx:1458
 TSystem.cxx:1459
 TSystem.cxx:1460
 TSystem.cxx:1461
 TSystem.cxx:1462
 TSystem.cxx:1463
 TSystem.cxx:1464
 TSystem.cxx:1465
 TSystem.cxx:1466
 TSystem.cxx:1467
 TSystem.cxx:1468
 TSystem.cxx:1469
 TSystem.cxx:1470
 TSystem.cxx:1471
 TSystem.cxx:1472
 TSystem.cxx:1473
 TSystem.cxx:1474
 TSystem.cxx:1475
 TSystem.cxx:1476
 TSystem.cxx:1477
 TSystem.cxx:1478
 TSystem.cxx:1479
 TSystem.cxx:1480
 TSystem.cxx:1481
 TSystem.cxx:1482
 TSystem.cxx:1483
 TSystem.cxx:1484
 TSystem.cxx:1485
 TSystem.cxx:1486
 TSystem.cxx:1487
 TSystem.cxx:1488
 TSystem.cxx:1489
 TSystem.cxx:1490
 TSystem.cxx:1491
 TSystem.cxx:1492
 TSystem.cxx:1493
 TSystem.cxx:1494
 TSystem.cxx:1495
 TSystem.cxx:1496
 TSystem.cxx:1497
 TSystem.cxx:1498
 TSystem.cxx:1499
 TSystem.cxx:1500
 TSystem.cxx:1501
 TSystem.cxx:1502
 TSystem.cxx:1503
 TSystem.cxx:1504
 TSystem.cxx:1505
 TSystem.cxx:1506
 TSystem.cxx:1507
 TSystem.cxx:1508
 TSystem.cxx:1509
 TSystem.cxx:1510
 TSystem.cxx:1511
 TSystem.cxx:1512
 TSystem.cxx:1513
 TSystem.cxx:1514
 TSystem.cxx:1515
 TSystem.cxx:1516
 TSystem.cxx:1517
 TSystem.cxx:1518
 TSystem.cxx:1519
 TSystem.cxx:1520
 TSystem.cxx:1521
 TSystem.cxx:1522
 TSystem.cxx:1523
 TSystem.cxx:1524
 TSystem.cxx:1525
 TSystem.cxx:1526
 TSystem.cxx:1527
 TSystem.cxx:1528
 TSystem.cxx:1529
 TSystem.cxx:1530
 TSystem.cxx:1531
 TSystem.cxx:1532
 TSystem.cxx:1533
 TSystem.cxx:1534
 TSystem.cxx:1535
 TSystem.cxx:1536
 TSystem.cxx:1537
 TSystem.cxx:1538
 TSystem.cxx:1539
 TSystem.cxx:1540
 TSystem.cxx:1541
 TSystem.cxx:1542
 TSystem.cxx:1543
 TSystem.cxx:1544
 TSystem.cxx:1545
 TSystem.cxx:1546
 TSystem.cxx:1547
 TSystem.cxx:1548
 TSystem.cxx:1549
 TSystem.cxx:1550
 TSystem.cxx:1551
 TSystem.cxx:1552
 TSystem.cxx:1553
 TSystem.cxx:1554
 TSystem.cxx:1555
 TSystem.cxx:1556
 TSystem.cxx:1557
 TSystem.cxx:1558
 TSystem.cxx:1559
 TSystem.cxx:1560
 TSystem.cxx:1561
 TSystem.cxx:1562
 TSystem.cxx:1563
 TSystem.cxx:1564
 TSystem.cxx:1565
 TSystem.cxx:1566
 TSystem.cxx:1567
 TSystem.cxx:1568
 TSystem.cxx:1569
 TSystem.cxx:1570
 TSystem.cxx:1571
 TSystem.cxx:1572
 TSystem.cxx:1573
 TSystem.cxx:1574
 TSystem.cxx:1575
 TSystem.cxx:1576
 TSystem.cxx:1577
 TSystem.cxx:1578
 TSystem.cxx:1579
 TSystem.cxx:1580
 TSystem.cxx:1581
 TSystem.cxx:1582
 TSystem.cxx:1583
 TSystem.cxx:1584
 TSystem.cxx:1585
 TSystem.cxx:1586
 TSystem.cxx:1587
 TSystem.cxx:1588
 TSystem.cxx:1589
 TSystem.cxx:1590
 TSystem.cxx:1591
 TSystem.cxx:1592
 TSystem.cxx:1593
 TSystem.cxx:1594
 TSystem.cxx:1595
 TSystem.cxx:1596
 TSystem.cxx:1597
 TSystem.cxx:1598
 TSystem.cxx:1599
 TSystem.cxx:1600
 TSystem.cxx:1601
 TSystem.cxx:1602
 TSystem.cxx:1603
 TSystem.cxx:1604
 TSystem.cxx:1605
 TSystem.cxx:1606
 TSystem.cxx:1607
 TSystem.cxx:1608
 TSystem.cxx:1609
 TSystem.cxx:1610
 TSystem.cxx:1611
 TSystem.cxx:1612
 TSystem.cxx:1613
 TSystem.cxx:1614
 TSystem.cxx:1615
 TSystem.cxx:1616
 TSystem.cxx:1617
 TSystem.cxx:1618
 TSystem.cxx:1619
 TSystem.cxx:1620
 TSystem.cxx:1621
 TSystem.cxx:1622
 TSystem.cxx:1623
 TSystem.cxx:1624
 TSystem.cxx:1625
 TSystem.cxx:1626
 TSystem.cxx:1627
 TSystem.cxx:1628
 TSystem.cxx:1629
 TSystem.cxx:1630
 TSystem.cxx:1631
 TSystem.cxx:1632
 TSystem.cxx:1633
 TSystem.cxx:1634
 TSystem.cxx:1635
 TSystem.cxx:1636
 TSystem.cxx:1637
 TSystem.cxx:1638
 TSystem.cxx:1639
 TSystem.cxx:1640
 TSystem.cxx:1641
 TSystem.cxx:1642
 TSystem.cxx:1643
 TSystem.cxx:1644
 TSystem.cxx:1645
 TSystem.cxx:1646
 TSystem.cxx:1647
 TSystem.cxx:1648
 TSystem.cxx:1649
 TSystem.cxx:1650
 TSystem.cxx:1651
 TSystem.cxx:1652
 TSystem.cxx:1653
 TSystem.cxx:1654
 TSystem.cxx:1655
 TSystem.cxx:1656
 TSystem.cxx:1657
 TSystem.cxx:1658
 TSystem.cxx:1659
 TSystem.cxx:1660
 TSystem.cxx:1661
 TSystem.cxx:1662
 TSystem.cxx:1663
 TSystem.cxx:1664
 TSystem.cxx:1665
 TSystem.cxx:1666
 TSystem.cxx:1667
 TSystem.cxx:1668
 TSystem.cxx:1669
 TSystem.cxx:1670
 TSystem.cxx:1671
 TSystem.cxx:1672
 TSystem.cxx:1673
 TSystem.cxx:1674
 TSystem.cxx:1675
 TSystem.cxx:1676
 TSystem.cxx:1677
 TSystem.cxx:1678
 TSystem.cxx:1679
 TSystem.cxx:1680
 TSystem.cxx:1681
 TSystem.cxx:1682
 TSystem.cxx:1683
 TSystem.cxx:1684
 TSystem.cxx:1685
 TSystem.cxx:1686
 TSystem.cxx:1687
 TSystem.cxx:1688
 TSystem.cxx:1689
 TSystem.cxx:1690
 TSystem.cxx:1691
 TSystem.cxx:1692
 TSystem.cxx:1693
 TSystem.cxx:1694
 TSystem.cxx:1695
 TSystem.cxx:1696
 TSystem.cxx:1697
 TSystem.cxx:1698
 TSystem.cxx:1699
 TSystem.cxx:1700
 TSystem.cxx:1701
 TSystem.cxx:1702
 TSystem.cxx:1703
 TSystem.cxx:1704
 TSystem.cxx:1705
 TSystem.cxx:1706
 TSystem.cxx:1707
 TSystem.cxx:1708
 TSystem.cxx:1709
 TSystem.cxx:1710
 TSystem.cxx:1711
 TSystem.cxx:1712
 TSystem.cxx:1713
 TSystem.cxx:1714
 TSystem.cxx:1715
 TSystem.cxx:1716
 TSystem.cxx:1717
 TSystem.cxx:1718
 TSystem.cxx:1719
 TSystem.cxx:1720
 TSystem.cxx:1721
 TSystem.cxx:1722
 TSystem.cxx:1723
 TSystem.cxx:1724
 TSystem.cxx:1725
 TSystem.cxx:1726
 TSystem.cxx:1727
 TSystem.cxx:1728
 TSystem.cxx:1729
 TSystem.cxx:1730
 TSystem.cxx:1731
 TSystem.cxx:1732
 TSystem.cxx:1733
 TSystem.cxx:1734
 TSystem.cxx:1735
 TSystem.cxx:1736
 TSystem.cxx:1737
 TSystem.cxx:1738
 TSystem.cxx:1739
 TSystem.cxx:1740
 TSystem.cxx:1741
 TSystem.cxx:1742
 TSystem.cxx:1743
 TSystem.cxx:1744
 TSystem.cxx:1745
 TSystem.cxx:1746
 TSystem.cxx:1747
 TSystem.cxx:1748
 TSystem.cxx:1749
 TSystem.cxx:1750
 TSystem.cxx:1751
 TSystem.cxx:1752
 TSystem.cxx:1753
 TSystem.cxx:1754
 TSystem.cxx:1755
 TSystem.cxx:1756
 TSystem.cxx:1757
 TSystem.cxx:1758
 TSystem.cxx:1759
 TSystem.cxx:1760
 TSystem.cxx:1761
 TSystem.cxx:1762
 TSystem.cxx:1763
 TSystem.cxx:1764
 TSystem.cxx:1765
 TSystem.cxx:1766
 TSystem.cxx:1767
 TSystem.cxx:1768
 TSystem.cxx:1769
 TSystem.cxx:1770
 TSystem.cxx:1771
 TSystem.cxx:1772
 TSystem.cxx:1773
 TSystem.cxx:1774
 TSystem.cxx:1775
 TSystem.cxx:1776
 TSystem.cxx:1777
 TSystem.cxx:1778
 TSystem.cxx:1779
 TSystem.cxx:1780
 TSystem.cxx:1781
 TSystem.cxx:1782
 TSystem.cxx:1783
 TSystem.cxx:1784
 TSystem.cxx:1785
 TSystem.cxx:1786
 TSystem.cxx:1787
 TSystem.cxx:1788
 TSystem.cxx:1789
 TSystem.cxx:1790
 TSystem.cxx:1791
 TSystem.cxx:1792
 TSystem.cxx:1793
 TSystem.cxx:1794
 TSystem.cxx:1795
 TSystem.cxx:1796
 TSystem.cxx:1797
 TSystem.cxx:1798
 TSystem.cxx:1799
 TSystem.cxx:1800
 TSystem.cxx:1801
 TSystem.cxx:1802
 TSystem.cxx:1803
 TSystem.cxx:1804
 TSystem.cxx:1805
 TSystem.cxx:1806
 TSystem.cxx:1807
 TSystem.cxx:1808
 TSystem.cxx:1809
 TSystem.cxx:1810
 TSystem.cxx:1811
 TSystem.cxx:1812
 TSystem.cxx:1813
 TSystem.cxx:1814
 TSystem.cxx:1815
 TSystem.cxx:1816
 TSystem.cxx:1817
 TSystem.cxx:1818
 TSystem.cxx:1819
 TSystem.cxx:1820
 TSystem.cxx:1821
 TSystem.cxx:1822
 TSystem.cxx:1823
 TSystem.cxx:1824
 TSystem.cxx:1825
 TSystem.cxx:1826
 TSystem.cxx:1827
 TSystem.cxx:1828
 TSystem.cxx:1829
 TSystem.cxx:1830
 TSystem.cxx:1831
 TSystem.cxx:1832
 TSystem.cxx:1833
 TSystem.cxx:1834
 TSystem.cxx:1835
 TSystem.cxx:1836
 TSystem.cxx:1837
 TSystem.cxx:1838
 TSystem.cxx:1839
 TSystem.cxx:1840
 TSystem.cxx:1841
 TSystem.cxx:1842
 TSystem.cxx:1843
 TSystem.cxx:1844
 TSystem.cxx:1845
 TSystem.cxx:1846
 TSystem.cxx:1847
 TSystem.cxx:1848
 TSystem.cxx:1849
 TSystem.cxx:1850
 TSystem.cxx:1851
 TSystem.cxx:1852
 TSystem.cxx:1853
 TSystem.cxx:1854
 TSystem.cxx:1855
 TSystem.cxx:1856
 TSystem.cxx:1857
 TSystem.cxx:1858
 TSystem.cxx:1859
 TSystem.cxx:1860
 TSystem.cxx:1861
 TSystem.cxx:1862
 TSystem.cxx:1863
 TSystem.cxx:1864
 TSystem.cxx:1865
 TSystem.cxx:1866
 TSystem.cxx:1867
 TSystem.cxx:1868
 TSystem.cxx:1869
 TSystem.cxx:1870
 TSystem.cxx:1871
 TSystem.cxx:1872
 TSystem.cxx:1873
 TSystem.cxx:1874
 TSystem.cxx:1875
 TSystem.cxx:1876
 TSystem.cxx:1877
 TSystem.cxx:1878
 TSystem.cxx:1879
 TSystem.cxx:1880
 TSystem.cxx:1881
 TSystem.cxx:1882
 TSystem.cxx:1883
 TSystem.cxx:1884
 TSystem.cxx:1885
 TSystem.cxx:1886
 TSystem.cxx:1887
 TSystem.cxx:1888
 TSystem.cxx:1889
 TSystem.cxx:1890
 TSystem.cxx:1891
 TSystem.cxx:1892
 TSystem.cxx:1893
 TSystem.cxx:1894
 TSystem.cxx:1895
 TSystem.cxx:1896
 TSystem.cxx:1897
 TSystem.cxx:1898
 TSystem.cxx:1899
 TSystem.cxx:1900
 TSystem.cxx:1901
 TSystem.cxx:1902
 TSystem.cxx:1903
 TSystem.cxx:1904
 TSystem.cxx:1905
 TSystem.cxx:1906
 TSystem.cxx:1907
 TSystem.cxx:1908
 TSystem.cxx:1909
 TSystem.cxx:1910
 TSystem.cxx:1911
 TSystem.cxx:1912
 TSystem.cxx:1913
 TSystem.cxx:1914
 TSystem.cxx:1915
 TSystem.cxx:1916
 TSystem.cxx:1917
 TSystem.cxx:1918
 TSystem.cxx:1919
 TSystem.cxx:1920
 TSystem.cxx:1921
 TSystem.cxx:1922
 TSystem.cxx:1923
 TSystem.cxx:1924
 TSystem.cxx:1925
 TSystem.cxx:1926
 TSystem.cxx:1927
 TSystem.cxx:1928
 TSystem.cxx:1929
 TSystem.cxx:1930
 TSystem.cxx:1931
 TSystem.cxx:1932
 TSystem.cxx:1933
 TSystem.cxx:1934
 TSystem.cxx:1935
 TSystem.cxx:1936
 TSystem.cxx:1937
 TSystem.cxx:1938
 TSystem.cxx:1939
 TSystem.cxx:1940
 TSystem.cxx:1941
 TSystem.cxx:1942
 TSystem.cxx:1943
 TSystem.cxx:1944
 TSystem.cxx:1945
 TSystem.cxx:1946
 TSystem.cxx:1947
 TSystem.cxx:1948
 TSystem.cxx:1949
 TSystem.cxx:1950
 TSystem.cxx:1951
 TSystem.cxx:1952
 TSystem.cxx:1953
 TSystem.cxx:1954
 TSystem.cxx:1955
 TSystem.cxx:1956
 TSystem.cxx:1957
 TSystem.cxx:1958
 TSystem.cxx:1959
 TSystem.cxx:1960
 TSystem.cxx:1961
 TSystem.cxx:1962
 TSystem.cxx:1963
 TSystem.cxx:1964
 TSystem.cxx:1965
 TSystem.cxx:1966
 TSystem.cxx:1967
 TSystem.cxx:1968
 TSystem.cxx:1969
 TSystem.cxx:1970
 TSystem.cxx:1971
 TSystem.cxx:1972
 TSystem.cxx:1973
 TSystem.cxx:1974
 TSystem.cxx:1975
 TSystem.cxx:1976
 TSystem.cxx:1977
 TSystem.cxx:1978
 TSystem.cxx:1979
 TSystem.cxx:1980
 TSystem.cxx:1981
 TSystem.cxx:1982
 TSystem.cxx:1983
 TSystem.cxx:1984
 TSystem.cxx:1985
 TSystem.cxx:1986
 TSystem.cxx:1987
 TSystem.cxx:1988
 TSystem.cxx:1989
 TSystem.cxx:1990
 TSystem.cxx:1991
 TSystem.cxx:1992
 TSystem.cxx:1993
 TSystem.cxx:1994
 TSystem.cxx:1995
 TSystem.cxx:1996
 TSystem.cxx:1997
 TSystem.cxx:1998
 TSystem.cxx:1999
 TSystem.cxx:2000
 TSystem.cxx:2001
 TSystem.cxx:2002
 TSystem.cxx:2003
 TSystem.cxx:2004
 TSystem.cxx:2005
 TSystem.cxx:2006
 TSystem.cxx:2007
 TSystem.cxx:2008
 TSystem.cxx:2009
 TSystem.cxx:2010
 TSystem.cxx:2011
 TSystem.cxx:2012
 TSystem.cxx:2013
 TSystem.cxx:2014
 TSystem.cxx:2015
 TSystem.cxx:2016
 TSystem.cxx:2017
 TSystem.cxx:2018
 TSystem.cxx:2019
 TSystem.cxx:2020
 TSystem.cxx:2021
 TSystem.cxx:2022
 TSystem.cxx:2023
 TSystem.cxx:2024
 TSystem.cxx:2025
 TSystem.cxx:2026
 TSystem.cxx:2027
 TSystem.cxx:2028
 TSystem.cxx:2029
 TSystem.cxx:2030
 TSystem.cxx:2031
 TSystem.cxx:2032
 TSystem.cxx:2033
 TSystem.cxx:2034
 TSystem.cxx:2035
 TSystem.cxx:2036
 TSystem.cxx:2037
 TSystem.cxx:2038
 TSystem.cxx:2039
 TSystem.cxx:2040
 TSystem.cxx:2041
 TSystem.cxx:2042
 TSystem.cxx:2043
 TSystem.cxx:2044
 TSystem.cxx:2045
 TSystem.cxx:2046
 TSystem.cxx:2047
 TSystem.cxx:2048
 TSystem.cxx:2049
 TSystem.cxx:2050
 TSystem.cxx:2051
 TSystem.cxx:2052
 TSystem.cxx:2053
 TSystem.cxx:2054
 TSystem.cxx:2055
 TSystem.cxx:2056
 TSystem.cxx:2057
 TSystem.cxx:2058
 TSystem.cxx:2059
 TSystem.cxx:2060
 TSystem.cxx:2061
 TSystem.cxx:2062
 TSystem.cxx:2063
 TSystem.cxx:2064
 TSystem.cxx:2065
 TSystem.cxx:2066
 TSystem.cxx:2067
 TSystem.cxx:2068
 TSystem.cxx:2069
 TSystem.cxx:2070
 TSystem.cxx:2071
 TSystem.cxx:2072
 TSystem.cxx:2073
 TSystem.cxx:2074
 TSystem.cxx:2075
 TSystem.cxx:2076
 TSystem.cxx:2077
 TSystem.cxx:2078
 TSystem.cxx:2079
 TSystem.cxx:2080
 TSystem.cxx:2081
 TSystem.cxx:2082
 TSystem.cxx:2083
 TSystem.cxx:2084
 TSystem.cxx:2085
 TSystem.cxx:2086
 TSystem.cxx:2087
 TSystem.cxx:2088
 TSystem.cxx:2089
 TSystem.cxx:2090
 TSystem.cxx:2091
 TSystem.cxx:2092
 TSystem.cxx:2093
 TSystem.cxx:2094
 TSystem.cxx:2095
 TSystem.cxx:2096
 TSystem.cxx:2097
 TSystem.cxx:2098
 TSystem.cxx:2099
 TSystem.cxx:2100
 TSystem.cxx:2101
 TSystem.cxx:2102
 TSystem.cxx:2103
 TSystem.cxx:2104
 TSystem.cxx:2105
 TSystem.cxx:2106
 TSystem.cxx:2107
 TSystem.cxx:2108
 TSystem.cxx:2109
 TSystem.cxx:2110
 TSystem.cxx:2111
 TSystem.cxx:2112
 TSystem.cxx:2113
 TSystem.cxx:2114
 TSystem.cxx:2115
 TSystem.cxx:2116
 TSystem.cxx:2117
 TSystem.cxx:2118
 TSystem.cxx:2119
 TSystem.cxx:2120
 TSystem.cxx:2121
 TSystem.cxx:2122
 TSystem.cxx:2123
 TSystem.cxx:2124
 TSystem.cxx:2125
 TSystem.cxx:2126
 TSystem.cxx:2127
 TSystem.cxx:2128
 TSystem.cxx:2129
 TSystem.cxx:2130
 TSystem.cxx:2131
 TSystem.cxx:2132
 TSystem.cxx:2133
 TSystem.cxx:2134
 TSystem.cxx:2135
 TSystem.cxx:2136
 TSystem.cxx:2137
 TSystem.cxx:2138
 TSystem.cxx:2139
 TSystem.cxx:2140
 TSystem.cxx:2141
 TSystem.cxx:2142
 TSystem.cxx:2143
 TSystem.cxx:2144
 TSystem.cxx:2145
 TSystem.cxx:2146
 TSystem.cxx:2147
 TSystem.cxx:2148
 TSystem.cxx:2149
 TSystem.cxx:2150
 TSystem.cxx:2151
 TSystem.cxx:2152
 TSystem.cxx:2153
 TSystem.cxx:2154
 TSystem.cxx:2155
 TSystem.cxx:2156
 TSystem.cxx:2157
 TSystem.cxx:2158
 TSystem.cxx:2159
 TSystem.cxx:2160
 TSystem.cxx:2161
 TSystem.cxx:2162
 TSystem.cxx:2163
 TSystem.cxx:2164
 TSystem.cxx:2165
 TSystem.cxx:2166
 TSystem.cxx:2167
 TSystem.cxx:2168
 TSystem.cxx:2169
 TSystem.cxx:2170
 TSystem.cxx:2171
 TSystem.cxx:2172
 TSystem.cxx:2173
 TSystem.cxx:2174
 TSystem.cxx:2175
 TSystem.cxx:2176
 TSystem.cxx:2177
 TSystem.cxx:2178
 TSystem.cxx:2179
 TSystem.cxx:2180
 TSystem.cxx:2181
 TSystem.cxx:2182
 TSystem.cxx:2183
 TSystem.cxx:2184
 TSystem.cxx:2185
 TSystem.cxx:2186
 TSystem.cxx:2187
 TSystem.cxx:2188
 TSystem.cxx:2189
 TSystem.cxx:2190
 TSystem.cxx:2191
 TSystem.cxx:2192
 TSystem.cxx:2193
 TSystem.cxx:2194
 TSystem.cxx:2195
 TSystem.cxx:2196
 TSystem.cxx:2197
 TSystem.cxx:2198
 TSystem.cxx:2199
 TSystem.cxx:2200
 TSystem.cxx:2201
 TSystem.cxx:2202
 TSystem.cxx:2203
 TSystem.cxx:2204
 TSystem.cxx:2205
 TSystem.cxx:2206
 TSystem.cxx:2207
 TSystem.cxx:2208
 TSystem.cxx:2209
 TSystem.cxx:2210
 TSystem.cxx:2211
 TSystem.cxx:2212
 TSystem.cxx:2213
 TSystem.cxx:2214
 TSystem.cxx:2215
 TSystem.cxx:2216
 TSystem.cxx:2217
 TSystem.cxx:2218
 TSystem.cxx:2219
 TSystem.cxx:2220
 TSystem.cxx:2221
 TSystem.cxx:2222
 TSystem.cxx:2223
 TSystem.cxx:2224
 TSystem.cxx:2225
 TSystem.cxx:2226
 TSystem.cxx:2227
 TSystem.cxx:2228
 TSystem.cxx:2229
 TSystem.cxx:2230
 TSystem.cxx:2231
 TSystem.cxx:2232
 TSystem.cxx:2233
 TSystem.cxx:2234
 TSystem.cxx:2235
 TSystem.cxx:2236
 TSystem.cxx:2237
 TSystem.cxx:2238
 TSystem.cxx:2239
 TSystem.cxx:2240
 TSystem.cxx:2241
 TSystem.cxx:2242
 TSystem.cxx:2243
 TSystem.cxx:2244
 TSystem.cxx:2245
 TSystem.cxx:2246
 TSystem.cxx:2247
 TSystem.cxx:2248
 TSystem.cxx:2249
 TSystem.cxx:2250
 TSystem.cxx:2251
 TSystem.cxx:2252
 TSystem.cxx:2253
 TSystem.cxx:2254
 TSystem.cxx:2255
 TSystem.cxx:2256
 TSystem.cxx:2257
 TSystem.cxx:2258
 TSystem.cxx:2259
 TSystem.cxx:2260
 TSystem.cxx:2261
 TSystem.cxx:2262
 TSystem.cxx:2263
 TSystem.cxx:2264
 TSystem.cxx:2265
 TSystem.cxx:2266
 TSystem.cxx:2267
 TSystem.cxx:2268
 TSystem.cxx:2269
 TSystem.cxx:2270
 TSystem.cxx:2271
 TSystem.cxx:2272
 TSystem.cxx:2273
 TSystem.cxx:2274
 TSystem.cxx:2275
 TSystem.cxx:2276
 TSystem.cxx:2277
 TSystem.cxx:2278
 TSystem.cxx:2279
 TSystem.cxx:2280
 TSystem.cxx:2281
 TSystem.cxx:2282
 TSystem.cxx:2283
 TSystem.cxx:2284
 TSystem.cxx:2285
 TSystem.cxx:2286
 TSystem.cxx:2287
 TSystem.cxx:2288
 TSystem.cxx:2289
 TSystem.cxx:2290
 TSystem.cxx:2291
 TSystem.cxx:2292
 TSystem.cxx:2293
 TSystem.cxx:2294
 TSystem.cxx:2295
 TSystem.cxx:2296
 TSystem.cxx:2297
 TSystem.cxx:2298
 TSystem.cxx:2299
 TSystem.cxx:2300
 TSystem.cxx:2301
 TSystem.cxx:2302
 TSystem.cxx:2303
 TSystem.cxx:2304
 TSystem.cxx:2305
 TSystem.cxx:2306
 TSystem.cxx:2307
 TSystem.cxx:2308
 TSystem.cxx:2309
 TSystem.cxx:2310
 TSystem.cxx:2311
 TSystem.cxx:2312
 TSystem.cxx:2313
 TSystem.cxx:2314
 TSystem.cxx:2315
 TSystem.cxx:2316
 TSystem.cxx:2317
 TSystem.cxx:2318
 TSystem.cxx:2319
 TSystem.cxx:2320
 TSystem.cxx:2321
 TSystem.cxx:2322
 TSystem.cxx:2323
 TSystem.cxx:2324
 TSystem.cxx:2325
 TSystem.cxx:2326
 TSystem.cxx:2327
 TSystem.cxx:2328
 TSystem.cxx:2329
 TSystem.cxx:2330
 TSystem.cxx:2331
 TSystem.cxx:2332
 TSystem.cxx:2333
 TSystem.cxx:2334
 TSystem.cxx:2335
 TSystem.cxx:2336
 TSystem.cxx:2337
 TSystem.cxx:2338
 TSystem.cxx:2339
 TSystem.cxx:2340
 TSystem.cxx:2341
 TSystem.cxx:2342
 TSystem.cxx:2343
 TSystem.cxx:2344
 TSystem.cxx:2345
 TSystem.cxx:2346
 TSystem.cxx:2347
 TSystem.cxx:2348
 TSystem.cxx:2349
 TSystem.cxx:2350
 TSystem.cxx:2351
 TSystem.cxx:2352
 TSystem.cxx:2353
 TSystem.cxx:2354
 TSystem.cxx:2355
 TSystem.cxx:2356
 TSystem.cxx:2357
 TSystem.cxx:2358
 TSystem.cxx:2359
 TSystem.cxx:2360
 TSystem.cxx:2361
 TSystem.cxx:2362
 TSystem.cxx:2363
 TSystem.cxx:2364
 TSystem.cxx:2365
 TSystem.cxx:2366
 TSystem.cxx:2367
 TSystem.cxx:2368
 TSystem.cxx:2369
 TSystem.cxx:2370
 TSystem.cxx:2371
 TSystem.cxx:2372
 TSystem.cxx:2373
 TSystem.cxx:2374
 TSystem.cxx:2375
 TSystem.cxx:2376
 TSystem.cxx:2377
 TSystem.cxx:2378
 TSystem.cxx:2379
 TSystem.cxx:2380
 TSystem.cxx:2381
 TSystem.cxx:2382
 TSystem.cxx:2383
 TSystem.cxx:2384
 TSystem.cxx:2385
 TSystem.cxx:2386
 TSystem.cxx:2387
 TSystem.cxx:2388
 TSystem.cxx:2389
 TSystem.cxx:2390
 TSystem.cxx:2391
 TSystem.cxx:2392
 TSystem.cxx:2393
 TSystem.cxx:2394
 TSystem.cxx:2395
 TSystem.cxx:2396
 TSystem.cxx:2397
 TSystem.cxx:2398
 TSystem.cxx:2399
 TSystem.cxx:2400
 TSystem.cxx:2401
 TSystem.cxx:2402
 TSystem.cxx:2403
 TSystem.cxx:2404
 TSystem.cxx:2405
 TSystem.cxx:2406
 TSystem.cxx:2407
 TSystem.cxx:2408
 TSystem.cxx:2409
 TSystem.cxx:2410
 TSystem.cxx:2411
 TSystem.cxx:2412
 TSystem.cxx:2413
 TSystem.cxx:2414
 TSystem.cxx:2415
 TSystem.cxx:2416
 TSystem.cxx:2417
 TSystem.cxx:2418
 TSystem.cxx:2419
 TSystem.cxx:2420
 TSystem.cxx:2421
 TSystem.cxx:2422
 TSystem.cxx:2423
 TSystem.cxx:2424
 TSystem.cxx:2425
 TSystem.cxx:2426
 TSystem.cxx:2427
 TSystem.cxx:2428
 TSystem.cxx:2429
 TSystem.cxx:2430
 TSystem.cxx:2431
 TSystem.cxx:2432
 TSystem.cxx:2433
 TSystem.cxx:2434
 TSystem.cxx:2435
 TSystem.cxx:2436
 TSystem.cxx:2437
 TSystem.cxx:2438
 TSystem.cxx:2439
 TSystem.cxx:2440
 TSystem.cxx:2441
 TSystem.cxx:2442
 TSystem.cxx:2443
 TSystem.cxx:2444
 TSystem.cxx:2445
 TSystem.cxx:2446
 TSystem.cxx:2447
 TSystem.cxx:2448
 TSystem.cxx:2449
 TSystem.cxx:2450
 TSystem.cxx:2451
 TSystem.cxx:2452
 TSystem.cxx:2453
 TSystem.cxx:2454
 TSystem.cxx:2455
 TSystem.cxx:2456
 TSystem.cxx:2457
 TSystem.cxx:2458
 TSystem.cxx:2459
 TSystem.cxx:2460
 TSystem.cxx:2461
 TSystem.cxx:2462
 TSystem.cxx:2463
 TSystem.cxx:2464
 TSystem.cxx:2465
 TSystem.cxx:2466
 TSystem.cxx:2467
 TSystem.cxx:2468
 TSystem.cxx:2469
 TSystem.cxx:2470
 TSystem.cxx:2471
 TSystem.cxx:2472
 TSystem.cxx:2473
 TSystem.cxx:2474
 TSystem.cxx:2475
 TSystem.cxx:2476
 TSystem.cxx:2477
 TSystem.cxx:2478
 TSystem.cxx:2479
 TSystem.cxx:2480
 TSystem.cxx:2481
 TSystem.cxx:2482
 TSystem.cxx:2483
 TSystem.cxx:2484
 TSystem.cxx:2485
 TSystem.cxx:2486
 TSystem.cxx:2487
 TSystem.cxx:2488
 TSystem.cxx:2489
 TSystem.cxx:2490
 TSystem.cxx:2491
 TSystem.cxx:2492
 TSystem.cxx:2493
 TSystem.cxx:2494
 TSystem.cxx:2495
 TSystem.cxx:2496
 TSystem.cxx:2497
 TSystem.cxx:2498
 TSystem.cxx:2499
 TSystem.cxx:2500
 TSystem.cxx:2501
 TSystem.cxx:2502
 TSystem.cxx:2503
 TSystem.cxx:2504
 TSystem.cxx:2505
 TSystem.cxx:2506
 TSystem.cxx:2507
 TSystem.cxx:2508
 TSystem.cxx:2509
 TSystem.cxx:2510
 TSystem.cxx:2511
 TSystem.cxx:2512
 TSystem.cxx:2513
 TSystem.cxx:2514
 TSystem.cxx:2515
 TSystem.cxx:2516
 TSystem.cxx:2517
 TSystem.cxx:2518
 TSystem.cxx:2519
 TSystem.cxx:2520
 TSystem.cxx:2521
 TSystem.cxx:2522
 TSystem.cxx:2523
 TSystem.cxx:2524
 TSystem.cxx:2525
 TSystem.cxx:2526
 TSystem.cxx:2527
 TSystem.cxx:2528
 TSystem.cxx:2529
 TSystem.cxx:2530
 TSystem.cxx:2531
 TSystem.cxx:2532
 TSystem.cxx:2533
 TSystem.cxx:2534
 TSystem.cxx:2535
 TSystem.cxx:2536
 TSystem.cxx:2537
 TSystem.cxx:2538
 TSystem.cxx:2539
 TSystem.cxx:2540
 TSystem.cxx:2541
 TSystem.cxx:2542
 TSystem.cxx:2543
 TSystem.cxx:2544
 TSystem.cxx:2545
 TSystem.cxx:2546
 TSystem.cxx:2547
 TSystem.cxx:2548
 TSystem.cxx:2549
 TSystem.cxx:2550
 TSystem.cxx:2551
 TSystem.cxx:2552
 TSystem.cxx:2553
 TSystem.cxx:2554
 TSystem.cxx:2555
 TSystem.cxx:2556
 TSystem.cxx:2557
 TSystem.cxx:2558
 TSystem.cxx:2559
 TSystem.cxx:2560
 TSystem.cxx:2561
 TSystem.cxx:2562
 TSystem.cxx:2563
 TSystem.cxx:2564
 TSystem.cxx:2565
 TSystem.cxx:2566
 TSystem.cxx:2567
 TSystem.cxx:2568
 TSystem.cxx:2569
 TSystem.cxx:2570
 TSystem.cxx:2571
 TSystem.cxx:2572
 TSystem.cxx:2573
 TSystem.cxx:2574
 TSystem.cxx:2575
 TSystem.cxx:2576
 TSystem.cxx:2577
 TSystem.cxx:2578
 TSystem.cxx:2579
 TSystem.cxx:2580
 TSystem.cxx:2581
 TSystem.cxx:2582
 TSystem.cxx:2583
 TSystem.cxx:2584
 TSystem.cxx:2585
 TSystem.cxx:2586
 TSystem.cxx:2587
 TSystem.cxx:2588
 TSystem.cxx:2589
 TSystem.cxx:2590
 TSystem.cxx:2591
 TSystem.cxx:2592
 TSystem.cxx:2593
 TSystem.cxx:2594
 TSystem.cxx:2595
 TSystem.cxx:2596
 TSystem.cxx:2597
 TSystem.cxx:2598
 TSystem.cxx:2599
 TSystem.cxx:2600
 TSystem.cxx:2601
 TSystem.cxx:2602
 TSystem.cxx:2603
 TSystem.cxx:2604
 TSystem.cxx:2605
 TSystem.cxx:2606
 TSystem.cxx:2607
 TSystem.cxx:2608
 TSystem.cxx:2609
 TSystem.cxx:2610
 TSystem.cxx:2611
 TSystem.cxx:2612
 TSystem.cxx:2613
 TSystem.cxx:2614
 TSystem.cxx:2615
 TSystem.cxx:2616
 TSystem.cxx:2617
 TSystem.cxx:2618
 TSystem.cxx:2619
 TSystem.cxx:2620
 TSystem.cxx:2621
 TSystem.cxx:2622
 TSystem.cxx:2623
 TSystem.cxx:2624
 TSystem.cxx:2625
 TSystem.cxx:2626
 TSystem.cxx:2627
 TSystem.cxx:2628
 TSystem.cxx:2629
 TSystem.cxx:2630
 TSystem.cxx:2631
 TSystem.cxx:2632
 TSystem.cxx:2633
 TSystem.cxx:2634
 TSystem.cxx:2635
 TSystem.cxx:2636
 TSystem.cxx:2637
 TSystem.cxx:2638
 TSystem.cxx:2639
 TSystem.cxx:2640
 TSystem.cxx:2641
 TSystem.cxx:2642
 TSystem.cxx:2643
 TSystem.cxx:2644
 TSystem.cxx:2645
 TSystem.cxx:2646
 TSystem.cxx:2647
 TSystem.cxx:2648
 TSystem.cxx:2649
 TSystem.cxx:2650
 TSystem.cxx:2651
 TSystem.cxx:2652
 TSystem.cxx:2653
 TSystem.cxx:2654
 TSystem.cxx:2655
 TSystem.cxx:2656
 TSystem.cxx:2657
 TSystem.cxx:2658
 TSystem.cxx:2659
 TSystem.cxx:2660
 TSystem.cxx:2661
 TSystem.cxx:2662
 TSystem.cxx:2663
 TSystem.cxx:2664
 TSystem.cxx:2665
 TSystem.cxx:2666
 TSystem.cxx:2667
 TSystem.cxx:2668
 TSystem.cxx:2669
 TSystem.cxx:2670
 TSystem.cxx:2671
 TSystem.cxx:2672
 TSystem.cxx:2673
 TSystem.cxx:2674
 TSystem.cxx:2675
 TSystem.cxx:2676
 TSystem.cxx:2677
 TSystem.cxx:2678
 TSystem.cxx:2679
 TSystem.cxx:2680
 TSystem.cxx:2681
 TSystem.cxx:2682
 TSystem.cxx:2683
 TSystem.cxx:2684
 TSystem.cxx:2685
 TSystem.cxx:2686
 TSystem.cxx:2687
 TSystem.cxx:2688
 TSystem.cxx:2689
 TSystem.cxx:2690
 TSystem.cxx:2691
 TSystem.cxx:2692
 TSystem.cxx:2693
 TSystem.cxx:2694
 TSystem.cxx:2695
 TSystem.cxx:2696
 TSystem.cxx:2697
 TSystem.cxx:2698
 TSystem.cxx:2699
 TSystem.cxx:2700
 TSystem.cxx:2701
 TSystem.cxx:2702
 TSystem.cxx:2703
 TSystem.cxx:2704
 TSystem.cxx:2705
 TSystem.cxx:2706
 TSystem.cxx:2707
 TSystem.cxx:2708
 TSystem.cxx:2709
 TSystem.cxx:2710
 TSystem.cxx:2711
 TSystem.cxx:2712
 TSystem.cxx:2713
 TSystem.cxx:2714
 TSystem.cxx:2715
 TSystem.cxx:2716
 TSystem.cxx:2717
 TSystem.cxx:2718
 TSystem.cxx:2719
 TSystem.cxx:2720
 TSystem.cxx:2721
 TSystem.cxx:2722
 TSystem.cxx:2723
 TSystem.cxx:2724
 TSystem.cxx:2725
 TSystem.cxx:2726
 TSystem.cxx:2727
 TSystem.cxx:2728
 TSystem.cxx:2729
 TSystem.cxx:2730
 TSystem.cxx:2731
 TSystem.cxx:2732
 TSystem.cxx:2733
 TSystem.cxx:2734
 TSystem.cxx:2735
 TSystem.cxx:2736
 TSystem.cxx:2737
 TSystem.cxx:2738
 TSystem.cxx:2739
 TSystem.cxx:2740
 TSystem.cxx:2741
 TSystem.cxx:2742
 TSystem.cxx:2743
 TSystem.cxx:2744
 TSystem.cxx:2745
 TSystem.cxx:2746
 TSystem.cxx:2747
 TSystem.cxx:2748
 TSystem.cxx:2749
 TSystem.cxx:2750
 TSystem.cxx:2751
 TSystem.cxx:2752
 TSystem.cxx:2753
 TSystem.cxx:2754
 TSystem.cxx:2755
 TSystem.cxx:2756
 TSystem.cxx:2757
 TSystem.cxx:2758
 TSystem.cxx:2759
 TSystem.cxx:2760
 TSystem.cxx:2761
 TSystem.cxx:2762
 TSystem.cxx:2763
 TSystem.cxx:2764
 TSystem.cxx:2765
 TSystem.cxx:2766
 TSystem.cxx:2767
 TSystem.cxx:2768
 TSystem.cxx:2769
 TSystem.cxx:2770
 TSystem.cxx:2771
 TSystem.cxx:2772
 TSystem.cxx:2773
 TSystem.cxx:2774
 TSystem.cxx:2775
 TSystem.cxx:2776
 TSystem.cxx:2777
 TSystem.cxx:2778
 TSystem.cxx:2779
 TSystem.cxx:2780
 TSystem.cxx:2781
 TSystem.cxx:2782
 TSystem.cxx:2783
 TSystem.cxx:2784
 TSystem.cxx:2785
 TSystem.cxx:2786
 TSystem.cxx:2787
 TSystem.cxx:2788
 TSystem.cxx:2789
 TSystem.cxx:2790
 TSystem.cxx:2791
 TSystem.cxx:2792
 TSystem.cxx:2793
 TSystem.cxx:2794
 TSystem.cxx:2795
 TSystem.cxx:2796
 TSystem.cxx:2797
 TSystem.cxx:2798
 TSystem.cxx:2799
 TSystem.cxx:2800
 TSystem.cxx:2801
 TSystem.cxx:2802
 TSystem.cxx:2803
 TSystem.cxx:2804
 TSystem.cxx:2805
 TSystem.cxx:2806
 TSystem.cxx:2807
 TSystem.cxx:2808
 TSystem.cxx:2809
 TSystem.cxx:2810
 TSystem.cxx:2811
 TSystem.cxx:2812
 TSystem.cxx:2813
 TSystem.cxx:2814
 TSystem.cxx:2815
 TSystem.cxx:2816
 TSystem.cxx:2817
 TSystem.cxx:2818
 TSystem.cxx:2819
 TSystem.cxx:2820
 TSystem.cxx:2821
 TSystem.cxx:2822
 TSystem.cxx:2823
 TSystem.cxx:2824
 TSystem.cxx:2825
 TSystem.cxx:2826
 TSystem.cxx:2827
 TSystem.cxx:2828
 TSystem.cxx:2829
 TSystem.cxx:2830
 TSystem.cxx:2831
 TSystem.cxx:2832
 TSystem.cxx:2833
 TSystem.cxx:2834
 TSystem.cxx:2835
 TSystem.cxx:2836
 TSystem.cxx:2837
 TSystem.cxx:2838
 TSystem.cxx:2839
 TSystem.cxx:2840
 TSystem.cxx:2841
 TSystem.cxx:2842
 TSystem.cxx:2843
 TSystem.cxx:2844
 TSystem.cxx:2845
 TSystem.cxx:2846
 TSystem.cxx:2847
 TSystem.cxx:2848
 TSystem.cxx:2849
 TSystem.cxx:2850
 TSystem.cxx:2851
 TSystem.cxx:2852
 TSystem.cxx:2853
 TSystem.cxx:2854
 TSystem.cxx:2855
 TSystem.cxx:2856
 TSystem.cxx:2857
 TSystem.cxx:2858
 TSystem.cxx:2859
 TSystem.cxx:2860
 TSystem.cxx:2861
 TSystem.cxx:2862
 TSystem.cxx:2863
 TSystem.cxx:2864
 TSystem.cxx:2865
 TSystem.cxx:2866
 TSystem.cxx:2867
 TSystem.cxx:2868
 TSystem.cxx:2869
 TSystem.cxx:2870
 TSystem.cxx:2871
 TSystem.cxx:2872
 TSystem.cxx:2873
 TSystem.cxx:2874
 TSystem.cxx:2875
 TSystem.cxx:2876
 TSystem.cxx:2877
 TSystem.cxx:2878
 TSystem.cxx:2879
 TSystem.cxx:2880
 TSystem.cxx:2881
 TSystem.cxx:2882
 TSystem.cxx:2883
 TSystem.cxx:2884
 TSystem.cxx:2885
 TSystem.cxx:2886
 TSystem.cxx:2887
 TSystem.cxx:2888
 TSystem.cxx:2889
 TSystem.cxx:2890
 TSystem.cxx:2891
 TSystem.cxx:2892
 TSystem.cxx:2893
 TSystem.cxx:2894
 TSystem.cxx:2895
 TSystem.cxx:2896
 TSystem.cxx:2897
 TSystem.cxx:2898
 TSystem.cxx:2899
 TSystem.cxx:2900
 TSystem.cxx:2901
 TSystem.cxx:2902
 TSystem.cxx:2903
 TSystem.cxx:2904
 TSystem.cxx:2905
 TSystem.cxx:2906
 TSystem.cxx:2907
 TSystem.cxx:2908
 TSystem.cxx:2909
 TSystem.cxx:2910
 TSystem.cxx:2911
 TSystem.cxx:2912
 TSystem.cxx:2913
 TSystem.cxx:2914
 TSystem.cxx:2915
 TSystem.cxx:2916
 TSystem.cxx:2917
 TSystem.cxx:2918
 TSystem.cxx:2919
 TSystem.cxx:2920
 TSystem.cxx:2921
 TSystem.cxx:2922
 TSystem.cxx:2923
 TSystem.cxx:2924
 TSystem.cxx:2925
 TSystem.cxx:2926
 TSystem.cxx:2927
 TSystem.cxx:2928
 TSystem.cxx:2929
 TSystem.cxx:2930
 TSystem.cxx:2931
 TSystem.cxx:2932
 TSystem.cxx:2933
 TSystem.cxx:2934
 TSystem.cxx:2935
 TSystem.cxx:2936
 TSystem.cxx:2937
 TSystem.cxx:2938
 TSystem.cxx:2939
 TSystem.cxx:2940
 TSystem.cxx:2941
 TSystem.cxx:2942
 TSystem.cxx:2943
 TSystem.cxx:2944
 TSystem.cxx:2945
 TSystem.cxx:2946
 TSystem.cxx:2947
 TSystem.cxx:2948
 TSystem.cxx:2949
 TSystem.cxx:2950
 TSystem.cxx:2951
 TSystem.cxx:2952
 TSystem.cxx:2953
 TSystem.cxx:2954
 TSystem.cxx:2955
 TSystem.cxx:2956
 TSystem.cxx:2957
 TSystem.cxx:2958
 TSystem.cxx:2959
 TSystem.cxx:2960
 TSystem.cxx:2961
 TSystem.cxx:2962
 TSystem.cxx:2963
 TSystem.cxx:2964
 TSystem.cxx:2965
 TSystem.cxx:2966
 TSystem.cxx:2967
 TSystem.cxx:2968
 TSystem.cxx:2969
 TSystem.cxx:2970
 TSystem.cxx:2971
 TSystem.cxx:2972
 TSystem.cxx:2973
 TSystem.cxx:2974
 TSystem.cxx:2975
 TSystem.cxx:2976
 TSystem.cxx:2977
 TSystem.cxx:2978
 TSystem.cxx:2979
 TSystem.cxx:2980
 TSystem.cxx:2981
 TSystem.cxx:2982
 TSystem.cxx:2983
 TSystem.cxx:2984
 TSystem.cxx:2985
 TSystem.cxx:2986
 TSystem.cxx:2987
 TSystem.cxx:2988
 TSystem.cxx:2989
 TSystem.cxx:2990
 TSystem.cxx:2991
 TSystem.cxx:2992
 TSystem.cxx:2993
 TSystem.cxx:2994
 TSystem.cxx:2995
 TSystem.cxx:2996
 TSystem.cxx:2997
 TSystem.cxx:2998
 TSystem.cxx:2999
 TSystem.cxx:3000
 TSystem.cxx:3001
 TSystem.cxx:3002
 TSystem.cxx:3003
 TSystem.cxx:3004
 TSystem.cxx:3005
 TSystem.cxx:3006
 TSystem.cxx:3007
 TSystem.cxx:3008
 TSystem.cxx:3009
 TSystem.cxx:3010
 TSystem.cxx:3011
 TSystem.cxx:3012
 TSystem.cxx:3013
 TSystem.cxx:3014
 TSystem.cxx:3015
 TSystem.cxx:3016
 TSystem.cxx:3017
 TSystem.cxx:3018
 TSystem.cxx:3019
 TSystem.cxx:3020
 TSystem.cxx:3021
 TSystem.cxx:3022
 TSystem.cxx:3023
 TSystem.cxx:3024
 TSystem.cxx:3025
 TSystem.cxx:3026
 TSystem.cxx:3027
 TSystem.cxx:3028
 TSystem.cxx:3029
 TSystem.cxx:3030
 TSystem.cxx:3031
 TSystem.cxx:3032
 TSystem.cxx:3033
 TSystem.cxx:3034
 TSystem.cxx:3035
 TSystem.cxx:3036
 TSystem.cxx:3037
 TSystem.cxx:3038
 TSystem.cxx:3039
 TSystem.cxx:3040
 TSystem.cxx:3041
 TSystem.cxx:3042
 TSystem.cxx:3043
 TSystem.cxx:3044
 TSystem.cxx:3045
 TSystem.cxx:3046
 TSystem.cxx:3047
 TSystem.cxx:3048
 TSystem.cxx:3049
 TSystem.cxx:3050
 TSystem.cxx:3051
 TSystem.cxx:3052
 TSystem.cxx:3053
 TSystem.cxx:3054
 TSystem.cxx:3055
 TSystem.cxx:3056
 TSystem.cxx:3057
 TSystem.cxx:3058
 TSystem.cxx:3059
 TSystem.cxx:3060
 TSystem.cxx:3061
 TSystem.cxx:3062
 TSystem.cxx:3063
 TSystem.cxx:3064
 TSystem.cxx:3065
 TSystem.cxx:3066
 TSystem.cxx:3067
 TSystem.cxx:3068
 TSystem.cxx:3069
 TSystem.cxx:3070
 TSystem.cxx:3071
 TSystem.cxx:3072
 TSystem.cxx:3073
 TSystem.cxx:3074
 TSystem.cxx:3075
 TSystem.cxx:3076
 TSystem.cxx:3077
 TSystem.cxx:3078
 TSystem.cxx:3079
 TSystem.cxx:3080
 TSystem.cxx:3081
 TSystem.cxx:3082
 TSystem.cxx:3083
 TSystem.cxx:3084
 TSystem.cxx:3085
 TSystem.cxx:3086
 TSystem.cxx:3087
 TSystem.cxx:3088
 TSystem.cxx:3089
 TSystem.cxx:3090
 TSystem.cxx:3091
 TSystem.cxx:3092
 TSystem.cxx:3093
 TSystem.cxx:3094
 TSystem.cxx:3095
 TSystem.cxx:3096
 TSystem.cxx:3097
 TSystem.cxx:3098
 TSystem.cxx:3099
 TSystem.cxx:3100
 TSystem.cxx:3101
 TSystem.cxx:3102
 TSystem.cxx:3103
 TSystem.cxx:3104
 TSystem.cxx:3105
 TSystem.cxx:3106
 TSystem.cxx:3107
 TSystem.cxx:3108
 TSystem.cxx:3109
 TSystem.cxx:3110
 TSystem.cxx:3111
 TSystem.cxx:3112
 TSystem.cxx:3113
 TSystem.cxx:3114
 TSystem.cxx:3115
 TSystem.cxx:3116
 TSystem.cxx:3117
 TSystem.cxx:3118
 TSystem.cxx:3119
 TSystem.cxx:3120
 TSystem.cxx:3121
 TSystem.cxx:3122
 TSystem.cxx:3123
 TSystem.cxx:3124
 TSystem.cxx:3125
 TSystem.cxx:3126
 TSystem.cxx:3127
 TSystem.cxx:3128
 TSystem.cxx:3129
 TSystem.cxx:3130
 TSystem.cxx:3131
 TSystem.cxx:3132
 TSystem.cxx:3133
 TSystem.cxx:3134
 TSystem.cxx:3135
 TSystem.cxx:3136
 TSystem.cxx:3137
 TSystem.cxx:3138
 TSystem.cxx:3139
 TSystem.cxx:3140
 TSystem.cxx:3141
 TSystem.cxx:3142
 TSystem.cxx:3143
 TSystem.cxx:3144
 TSystem.cxx:3145
 TSystem.cxx:3146
 TSystem.cxx:3147
 TSystem.cxx:3148
 TSystem.cxx:3149
 TSystem.cxx:3150
 TSystem.cxx:3151
 TSystem.cxx:3152
 TSystem.cxx:3153
 TSystem.cxx:3154
 TSystem.cxx:3155
 TSystem.cxx:3156
 TSystem.cxx:3157
 TSystem.cxx:3158
 TSystem.cxx:3159
 TSystem.cxx:3160
 TSystem.cxx:3161
 TSystem.cxx:3162
 TSystem.cxx:3163
 TSystem.cxx:3164
 TSystem.cxx:3165
 TSystem.cxx:3166
 TSystem.cxx:3167
 TSystem.cxx:3168
 TSystem.cxx:3169
 TSystem.cxx:3170
 TSystem.cxx:3171
 TSystem.cxx:3172
 TSystem.cxx:3173
 TSystem.cxx:3174
 TSystem.cxx:3175
 TSystem.cxx:3176
 TSystem.cxx:3177
 TSystem.cxx:3178
 TSystem.cxx:3179
 TSystem.cxx:3180
 TSystem.cxx:3181
 TSystem.cxx:3182
 TSystem.cxx:3183
 TSystem.cxx:3184
 TSystem.cxx:3185
 TSystem.cxx:3186
 TSystem.cxx:3187
 TSystem.cxx:3188
 TSystem.cxx:3189
 TSystem.cxx:3190
 TSystem.cxx:3191
 TSystem.cxx:3192
 TSystem.cxx:3193
 TSystem.cxx:3194
 TSystem.cxx:3195
 TSystem.cxx:3196
 TSystem.cxx:3197
 TSystem.cxx:3198
 TSystem.cxx:3199
 TSystem.cxx:3200
 TSystem.cxx:3201
 TSystem.cxx:3202
 TSystem.cxx:3203
 TSystem.cxx:3204
 TSystem.cxx:3205
 TSystem.cxx:3206
 TSystem.cxx:3207
 TSystem.cxx:3208
 TSystem.cxx:3209
 TSystem.cxx:3210
 TSystem.cxx:3211
 TSystem.cxx:3212
 TSystem.cxx:3213
 TSystem.cxx:3214
 TSystem.cxx:3215
 TSystem.cxx:3216
 TSystem.cxx:3217
 TSystem.cxx:3218
 TSystem.cxx:3219
 TSystem.cxx:3220
 TSystem.cxx:3221
 TSystem.cxx:3222
 TSystem.cxx:3223
 TSystem.cxx:3224
 TSystem.cxx:3225
 TSystem.cxx:3226
 TSystem.cxx:3227
 TSystem.cxx:3228
 TSystem.cxx:3229
 TSystem.cxx:3230
 TSystem.cxx:3231
 TSystem.cxx:3232
 TSystem.cxx:3233
 TSystem.cxx:3234
 TSystem.cxx:3235
 TSystem.cxx:3236
 TSystem.cxx:3237
 TSystem.cxx:3238
 TSystem.cxx:3239
 TSystem.cxx:3240
 TSystem.cxx:3241
 TSystem.cxx:3242
 TSystem.cxx:3243
 TSystem.cxx:3244
 TSystem.cxx:3245
 TSystem.cxx:3246
 TSystem.cxx:3247
 TSystem.cxx:3248
 TSystem.cxx:3249
 TSystem.cxx:3250
 TSystem.cxx:3251
 TSystem.cxx:3252
 TSystem.cxx:3253
 TSystem.cxx:3254
 TSystem.cxx:3255
 TSystem.cxx:3256
 TSystem.cxx:3257
 TSystem.cxx:3258
 TSystem.cxx:3259
 TSystem.cxx:3260
 TSystem.cxx:3261
 TSystem.cxx:3262
 TSystem.cxx:3263
 TSystem.cxx:3264
 TSystem.cxx:3265
 TSystem.cxx:3266
 TSystem.cxx:3267
 TSystem.cxx:3268
 TSystem.cxx:3269
 TSystem.cxx:3270
 TSystem.cxx:3271
 TSystem.cxx:3272
 TSystem.cxx:3273
 TSystem.cxx:3274
 TSystem.cxx:3275
 TSystem.cxx:3276
 TSystem.cxx:3277
 TSystem.cxx:3278
 TSystem.cxx:3279
 TSystem.cxx:3280
 TSystem.cxx:3281
 TSystem.cxx:3282
 TSystem.cxx:3283
 TSystem.cxx:3284
 TSystem.cxx:3285
 TSystem.cxx:3286
 TSystem.cxx:3287
 TSystem.cxx:3288
 TSystem.cxx:3289
 TSystem.cxx:3290
 TSystem.cxx:3291
 TSystem.cxx:3292
 TSystem.cxx:3293
 TSystem.cxx:3294
 TSystem.cxx:3295
 TSystem.cxx:3296
 TSystem.cxx:3297
 TSystem.cxx:3298
 TSystem.cxx:3299
 TSystem.cxx:3300
 TSystem.cxx:3301
 TSystem.cxx:3302
 TSystem.cxx:3303
 TSystem.cxx:3304
 TSystem.cxx:3305
 TSystem.cxx:3306
 TSystem.cxx:3307
 TSystem.cxx:3308
 TSystem.cxx:3309
 TSystem.cxx:3310
 TSystem.cxx:3311
 TSystem.cxx:3312
 TSystem.cxx:3313
 TSystem.cxx:3314
 TSystem.cxx:3315
 TSystem.cxx:3316
 TSystem.cxx:3317
 TSystem.cxx:3318
 TSystem.cxx:3319
 TSystem.cxx:3320
 TSystem.cxx:3321
 TSystem.cxx:3322
 TSystem.cxx:3323
 TSystem.cxx:3324
 TSystem.cxx:3325
 TSystem.cxx:3326
 TSystem.cxx:3327
 TSystem.cxx:3328
 TSystem.cxx:3329
 TSystem.cxx:3330
 TSystem.cxx:3331
 TSystem.cxx:3332
 TSystem.cxx:3333
 TSystem.cxx:3334
 TSystem.cxx:3335
 TSystem.cxx:3336
 TSystem.cxx:3337
 TSystem.cxx:3338
 TSystem.cxx:3339
 TSystem.cxx:3340
 TSystem.cxx:3341
 TSystem.cxx:3342
 TSystem.cxx:3343
 TSystem.cxx:3344
 TSystem.cxx:3345
 TSystem.cxx:3346
 TSystem.cxx:3347
 TSystem.cxx:3348
 TSystem.cxx:3349
 TSystem.cxx:3350
 TSystem.cxx:3351
 TSystem.cxx:3352
 TSystem.cxx:3353
 TSystem.cxx:3354
 TSystem.cxx:3355
 TSystem.cxx:3356
 TSystem.cxx:3357
 TSystem.cxx:3358
 TSystem.cxx:3359
 TSystem.cxx:3360
 TSystem.cxx:3361
 TSystem.cxx:3362
 TSystem.cxx:3363
 TSystem.cxx:3364
 TSystem.cxx:3365
 TSystem.cxx:3366
 TSystem.cxx:3367
 TSystem.cxx:3368
 TSystem.cxx:3369
 TSystem.cxx:3370
 TSystem.cxx:3371
 TSystem.cxx:3372
 TSystem.cxx:3373
 TSystem.cxx:3374
 TSystem.cxx:3375
 TSystem.cxx:3376
 TSystem.cxx:3377
 TSystem.cxx:3378
 TSystem.cxx:3379
 TSystem.cxx:3380
 TSystem.cxx:3381
 TSystem.cxx:3382
 TSystem.cxx:3383
 TSystem.cxx:3384
 TSystem.cxx:3385
 TSystem.cxx:3386
 TSystem.cxx:3387
 TSystem.cxx:3388
 TSystem.cxx:3389
 TSystem.cxx:3390
 TSystem.cxx:3391
 TSystem.cxx:3392
 TSystem.cxx:3393
 TSystem.cxx:3394
 TSystem.cxx:3395
 TSystem.cxx:3396
 TSystem.cxx:3397
 TSystem.cxx:3398
 TSystem.cxx:3399
 TSystem.cxx:3400
 TSystem.cxx:3401
 TSystem.cxx:3402
 TSystem.cxx:3403
 TSystem.cxx:3404
 TSystem.cxx:3405
 TSystem.cxx:3406
 TSystem.cxx:3407
 TSystem.cxx:3408
 TSystem.cxx:3409
 TSystem.cxx:3410
 TSystem.cxx:3411
 TSystem.cxx:3412
 TSystem.cxx:3413
 TSystem.cxx:3414
 TSystem.cxx:3415
 TSystem.cxx:3416
 TSystem.cxx:3417
 TSystem.cxx:3418
 TSystem.cxx:3419
 TSystem.cxx:3420
 TSystem.cxx:3421
 TSystem.cxx:3422
 TSystem.cxx:3423
 TSystem.cxx:3424
 TSystem.cxx:3425
 TSystem.cxx:3426
 TSystem.cxx:3427
 TSystem.cxx:3428
 TSystem.cxx:3429
 TSystem.cxx:3430
 TSystem.cxx:3431
 TSystem.cxx:3432
 TSystem.cxx:3433
 TSystem.cxx:3434
 TSystem.cxx:3435
 TSystem.cxx:3436
 TSystem.cxx:3437
 TSystem.cxx:3438
 TSystem.cxx:3439
 TSystem.cxx:3440
 TSystem.cxx:3441
 TSystem.cxx:3442
 TSystem.cxx:3443
 TSystem.cxx:3444
 TSystem.cxx:3445
 TSystem.cxx:3446
 TSystem.cxx:3447
 TSystem.cxx:3448
 TSystem.cxx:3449
 TSystem.cxx:3450
 TSystem.cxx:3451
 TSystem.cxx:3452
 TSystem.cxx:3453
 TSystem.cxx:3454
 TSystem.cxx:3455
 TSystem.cxx:3456
 TSystem.cxx:3457
 TSystem.cxx:3458
 TSystem.cxx:3459
 TSystem.cxx:3460
 TSystem.cxx:3461
 TSystem.cxx:3462
 TSystem.cxx:3463
 TSystem.cxx:3464
 TSystem.cxx:3465
 TSystem.cxx:3466
 TSystem.cxx:3467
 TSystem.cxx:3468
 TSystem.cxx:3469
 TSystem.cxx:3470
 TSystem.cxx:3471
 TSystem.cxx:3472
 TSystem.cxx:3473
 TSystem.cxx:3474
 TSystem.cxx:3475
 TSystem.cxx:3476
 TSystem.cxx:3477
 TSystem.cxx:3478
 TSystem.cxx:3479
 TSystem.cxx:3480
 TSystem.cxx:3481
 TSystem.cxx:3482
 TSystem.cxx:3483
 TSystem.cxx:3484
 TSystem.cxx:3485
 TSystem.cxx:3486
 TSystem.cxx:3487
 TSystem.cxx:3488
 TSystem.cxx:3489
 TSystem.cxx:3490
 TSystem.cxx:3491
 TSystem.cxx:3492
 TSystem.cxx:3493
 TSystem.cxx:3494
 TSystem.cxx:3495
 TSystem.cxx:3496
 TSystem.cxx:3497
 TSystem.cxx:3498
 TSystem.cxx:3499
 TSystem.cxx:3500
 TSystem.cxx:3501
 TSystem.cxx:3502
 TSystem.cxx:3503
 TSystem.cxx:3504
 TSystem.cxx:3505
 TSystem.cxx:3506
 TSystem.cxx:3507
 TSystem.cxx:3508
 TSystem.cxx:3509
 TSystem.cxx:3510
 TSystem.cxx:3511
 TSystem.cxx:3512
 TSystem.cxx:3513
 TSystem.cxx:3514
 TSystem.cxx:3515
 TSystem.cxx:3516
 TSystem.cxx:3517
 TSystem.cxx:3518
 TSystem.cxx:3519
 TSystem.cxx:3520
 TSystem.cxx:3521
 TSystem.cxx:3522
 TSystem.cxx:3523
 TSystem.cxx:3524
 TSystem.cxx:3525
 TSystem.cxx:3526
 TSystem.cxx:3527
 TSystem.cxx:3528
 TSystem.cxx:3529
 TSystem.cxx:3530
 TSystem.cxx:3531
 TSystem.cxx:3532
 TSystem.cxx:3533
 TSystem.cxx:3534
 TSystem.cxx:3535
 TSystem.cxx:3536
 TSystem.cxx:3537
 TSystem.cxx:3538
 TSystem.cxx:3539
 TSystem.cxx:3540
 TSystem.cxx:3541
 TSystem.cxx:3542
 TSystem.cxx:3543
 TSystem.cxx:3544
 TSystem.cxx:3545
 TSystem.cxx:3546
 TSystem.cxx:3547
 TSystem.cxx:3548
 TSystem.cxx:3549
 TSystem.cxx:3550
 TSystem.cxx:3551
 TSystem.cxx:3552
 TSystem.cxx:3553
 TSystem.cxx:3554
 TSystem.cxx:3555
 TSystem.cxx:3556
 TSystem.cxx:3557
 TSystem.cxx:3558
 TSystem.cxx:3559
 TSystem.cxx:3560
 TSystem.cxx:3561
 TSystem.cxx:3562
 TSystem.cxx:3563
 TSystem.cxx:3564
 TSystem.cxx:3565
 TSystem.cxx:3566
 TSystem.cxx:3567
 TSystem.cxx:3568
 TSystem.cxx:3569
 TSystem.cxx:3570
 TSystem.cxx:3571
 TSystem.cxx:3572
 TSystem.cxx:3573
 TSystem.cxx:3574
 TSystem.cxx:3575
 TSystem.cxx:3576
 TSystem.cxx:3577
 TSystem.cxx:3578
 TSystem.cxx:3579
 TSystem.cxx:3580
 TSystem.cxx:3581
 TSystem.cxx:3582
 TSystem.cxx:3583
 TSystem.cxx:3584
 TSystem.cxx:3585
 TSystem.cxx:3586
 TSystem.cxx:3587
 TSystem.cxx:3588
 TSystem.cxx:3589
 TSystem.cxx:3590
 TSystem.cxx:3591
 TSystem.cxx:3592
 TSystem.cxx:3593
 TSystem.cxx:3594
 TSystem.cxx:3595
 TSystem.cxx:3596
 TSystem.cxx:3597
 TSystem.cxx:3598
 TSystem.cxx:3599
 TSystem.cxx:3600
 TSystem.cxx:3601
 TSystem.cxx:3602
 TSystem.cxx:3603
 TSystem.cxx:3604
 TSystem.cxx:3605
 TSystem.cxx:3606
 TSystem.cxx:3607
 TSystem.cxx:3608
 TSystem.cxx:3609
 TSystem.cxx:3610
 TSystem.cxx:3611
 TSystem.cxx:3612
 TSystem.cxx:3613
 TSystem.cxx:3614
 TSystem.cxx:3615
 TSystem.cxx:3616
 TSystem.cxx:3617
 TSystem.cxx:3618
 TSystem.cxx:3619
 TSystem.cxx:3620
 TSystem.cxx:3621
 TSystem.cxx:3622
 TSystem.cxx:3623
 TSystem.cxx:3624
 TSystem.cxx:3625
 TSystem.cxx:3626
 TSystem.cxx:3627
 TSystem.cxx:3628
 TSystem.cxx:3629
 TSystem.cxx:3630
 TSystem.cxx:3631
 TSystem.cxx:3632
 TSystem.cxx:3633
 TSystem.cxx:3634
 TSystem.cxx:3635
 TSystem.cxx:3636
 TSystem.cxx:3637
 TSystem.cxx:3638
 TSystem.cxx:3639
 TSystem.cxx:3640
 TSystem.cxx:3641
 TSystem.cxx:3642
 TSystem.cxx:3643
 TSystem.cxx:3644
 TSystem.cxx:3645
 TSystem.cxx:3646
 TSystem.cxx:3647
 TSystem.cxx:3648
 TSystem.cxx:3649
 TSystem.cxx:3650
 TSystem.cxx:3651
 TSystem.cxx:3652
 TSystem.cxx:3653
 TSystem.cxx:3654
 TSystem.cxx:3655
 TSystem.cxx:3656
 TSystem.cxx:3657
 TSystem.cxx:3658
 TSystem.cxx:3659
 TSystem.cxx:3660
 TSystem.cxx:3661
 TSystem.cxx:3662
 TSystem.cxx:3663
 TSystem.cxx:3664
 TSystem.cxx:3665
 TSystem.cxx:3666
 TSystem.cxx:3667
 TSystem.cxx:3668
 TSystem.cxx:3669
 TSystem.cxx:3670
 TSystem.cxx:3671
 TSystem.cxx:3672
 TSystem.cxx:3673
 TSystem.cxx:3674
 TSystem.cxx:3675
 TSystem.cxx:3676
 TSystem.cxx:3677
 TSystem.cxx:3678
 TSystem.cxx:3679
 TSystem.cxx:3680
 TSystem.cxx:3681
 TSystem.cxx:3682
 TSystem.cxx:3683
 TSystem.cxx:3684
 TSystem.cxx:3685
 TSystem.cxx:3686
 TSystem.cxx:3687
 TSystem.cxx:3688
 TSystem.cxx:3689
 TSystem.cxx:3690
 TSystem.cxx:3691
 TSystem.cxx:3692
 TSystem.cxx:3693
 TSystem.cxx:3694
 TSystem.cxx:3695
 TSystem.cxx:3696
 TSystem.cxx:3697
 TSystem.cxx:3698
 TSystem.cxx:3699
 TSystem.cxx:3700
 TSystem.cxx:3701
 TSystem.cxx:3702
 TSystem.cxx:3703
 TSystem.cxx:3704
 TSystem.cxx:3705
 TSystem.cxx:3706
 TSystem.cxx:3707
 TSystem.cxx:3708
 TSystem.cxx:3709
 TSystem.cxx:3710
 TSystem.cxx:3711
 TSystem.cxx:3712
 TSystem.cxx:3713
 TSystem.cxx:3714
 TSystem.cxx:3715
 TSystem.cxx:3716
 TSystem.cxx:3717
 TSystem.cxx:3718
 TSystem.cxx:3719
 TSystem.cxx:3720
 TSystem.cxx:3721
 TSystem.cxx:3722
 TSystem.cxx:3723
 TSystem.cxx:3724
 TSystem.cxx:3725
 TSystem.cxx:3726
 TSystem.cxx:3727
 TSystem.cxx:3728
 TSystem.cxx:3729
 TSystem.cxx:3730
 TSystem.cxx:3731
 TSystem.cxx:3732
 TSystem.cxx:3733
 TSystem.cxx:3734
 TSystem.cxx:3735
 TSystem.cxx:3736
 TSystem.cxx:3737
 TSystem.cxx:3738
 TSystem.cxx:3739
 TSystem.cxx:3740
 TSystem.cxx:3741
 TSystem.cxx:3742
 TSystem.cxx:3743
 TSystem.cxx:3744
 TSystem.cxx:3745
 TSystem.cxx:3746
 TSystem.cxx:3747
 TSystem.cxx:3748
 TSystem.cxx:3749
 TSystem.cxx:3750
 TSystem.cxx:3751
 TSystem.cxx:3752
 TSystem.cxx:3753
 TSystem.cxx:3754
 TSystem.cxx:3755
 TSystem.cxx:3756
 TSystem.cxx:3757
 TSystem.cxx:3758
 TSystem.cxx:3759
 TSystem.cxx:3760
 TSystem.cxx:3761
 TSystem.cxx:3762
 TSystem.cxx:3763
 TSystem.cxx:3764
 TSystem.cxx:3765
 TSystem.cxx:3766
 TSystem.cxx:3767
 TSystem.cxx:3768
 TSystem.cxx:3769
 TSystem.cxx:3770
 TSystem.cxx:3771
 TSystem.cxx:3772
 TSystem.cxx:3773
 TSystem.cxx:3774
 TSystem.cxx:3775
 TSystem.cxx:3776
 TSystem.cxx:3777
 TSystem.cxx:3778
 TSystem.cxx:3779
 TSystem.cxx:3780
 TSystem.cxx:3781
 TSystem.cxx:3782
 TSystem.cxx:3783
 TSystem.cxx:3784
 TSystem.cxx:3785
 TSystem.cxx:3786
 TSystem.cxx:3787
 TSystem.cxx:3788
 TSystem.cxx:3789
 TSystem.cxx:3790
 TSystem.cxx:3791
 TSystem.cxx:3792
 TSystem.cxx:3793
 TSystem.cxx:3794
 TSystem.cxx:3795
 TSystem.cxx:3796
 TSystem.cxx:3797
 TSystem.cxx:3798
 TSystem.cxx:3799
 TSystem.cxx:3800
 TSystem.cxx:3801
 TSystem.cxx:3802
 TSystem.cxx:3803
 TSystem.cxx:3804
 TSystem.cxx:3805
 TSystem.cxx:3806
 TSystem.cxx:3807
 TSystem.cxx:3808
 TSystem.cxx:3809
 TSystem.cxx:3810
 TSystem.cxx:3811
 TSystem.cxx:3812
 TSystem.cxx:3813
 TSystem.cxx:3814
 TSystem.cxx:3815
 TSystem.cxx:3816
 TSystem.cxx:3817
 TSystem.cxx:3818
 TSystem.cxx:3819
 TSystem.cxx:3820
 TSystem.cxx:3821
 TSystem.cxx:3822
 TSystem.cxx:3823
 TSystem.cxx:3824
 TSystem.cxx:3825
 TSystem.cxx:3826
 TSystem.cxx:3827
 TSystem.cxx:3828
 TSystem.cxx:3829
 TSystem.cxx:3830
 TSystem.cxx:3831
 TSystem.cxx:3832
 TSystem.cxx:3833
 TSystem.cxx:3834
 TSystem.cxx:3835
 TSystem.cxx:3836
 TSystem.cxx:3837
 TSystem.cxx:3838
 TSystem.cxx:3839
 TSystem.cxx:3840
 TSystem.cxx:3841
 TSystem.cxx:3842
 TSystem.cxx:3843
 TSystem.cxx:3844
 TSystem.cxx:3845
 TSystem.cxx:3846
 TSystem.cxx:3847
 TSystem.cxx:3848
 TSystem.cxx:3849
 TSystem.cxx:3850
 TSystem.cxx:3851
 TSystem.cxx:3852
 TSystem.cxx:3853
 TSystem.cxx:3854
 TSystem.cxx:3855
 TSystem.cxx:3856
 TSystem.cxx:3857
 TSystem.cxx:3858
 TSystem.cxx:3859
 TSystem.cxx:3860
 TSystem.cxx:3861
 TSystem.cxx:3862
 TSystem.cxx:3863
 TSystem.cxx:3864
 TSystem.cxx:3865
 TSystem.cxx:3866
 TSystem.cxx:3867
 TSystem.cxx:3868
 TSystem.cxx:3869
 TSystem.cxx:3870
 TSystem.cxx:3871
 TSystem.cxx:3872
 TSystem.cxx:3873
 TSystem.cxx:3874
 TSystem.cxx:3875
 TSystem.cxx:3876
 TSystem.cxx:3877
 TSystem.cxx:3878
 TSystem.cxx:3879
 TSystem.cxx:3880
 TSystem.cxx:3881
 TSystem.cxx:3882
 TSystem.cxx:3883
 TSystem.cxx:3884
 TSystem.cxx:3885
 TSystem.cxx:3886
 TSystem.cxx:3887
 TSystem.cxx:3888
 TSystem.cxx:3889
 TSystem.cxx:3890
 TSystem.cxx:3891
 TSystem.cxx:3892
 TSystem.cxx:3893
 TSystem.cxx:3894
 TSystem.cxx:3895
 TSystem.cxx:3896
 TSystem.cxx:3897
 TSystem.cxx:3898
 TSystem.cxx:3899
 TSystem.cxx:3900
 TSystem.cxx:3901
 TSystem.cxx:3902
 TSystem.cxx:3903
 TSystem.cxx:3904
 TSystem.cxx:3905
 TSystem.cxx:3906
 TSystem.cxx:3907
 TSystem.cxx:3908
 TSystem.cxx:3909
 TSystem.cxx:3910
 TSystem.cxx:3911
 TSystem.cxx:3912
 TSystem.cxx:3913
 TSystem.cxx:3914
 TSystem.cxx:3915
 TSystem.cxx:3916
 TSystem.cxx:3917
 TSystem.cxx:3918
 TSystem.cxx:3919
 TSystem.cxx:3920
 TSystem.cxx:3921
 TSystem.cxx:3922
 TSystem.cxx:3923
 TSystem.cxx:3924
 TSystem.cxx:3925
 TSystem.cxx:3926
 TSystem.cxx:3927
 TSystem.cxx:3928
 TSystem.cxx:3929
 TSystem.cxx:3930
 TSystem.cxx:3931
 TSystem.cxx:3932
 TSystem.cxx:3933
 TSystem.cxx:3934
 TSystem.cxx:3935
 TSystem.cxx:3936
 TSystem.cxx:3937
 TSystem.cxx:3938
 TSystem.cxx:3939
 TSystem.cxx:3940
 TSystem.cxx:3941
 TSystem.cxx:3942
 TSystem.cxx:3943
 TSystem.cxx:3944
 TSystem.cxx:3945
 TSystem.cxx:3946
 TSystem.cxx:3947
 TSystem.cxx:3948
 TSystem.cxx:3949
 TSystem.cxx:3950
 TSystem.cxx:3951
 TSystem.cxx:3952
 TSystem.cxx:3953
 TSystem.cxx:3954
 TSystem.cxx:3955
 TSystem.cxx:3956
 TSystem.cxx:3957
 TSystem.cxx:3958
 TSystem.cxx:3959
 TSystem.cxx:3960
 TSystem.cxx:3961
 TSystem.cxx:3962
 TSystem.cxx:3963
 TSystem.cxx:3964
 TSystem.cxx:3965
 TSystem.cxx:3966
 TSystem.cxx:3967
 TSystem.cxx:3968
 TSystem.cxx:3969
 TSystem.cxx:3970
 TSystem.cxx:3971
 TSystem.cxx:3972
 TSystem.cxx:3973
 TSystem.cxx:3974
 TSystem.cxx:3975
 TSystem.cxx:3976
 TSystem.cxx:3977
 TSystem.cxx:3978
 TSystem.cxx:3979
 TSystem.cxx:3980
 TSystem.cxx:3981
 TSystem.cxx:3982
 TSystem.cxx:3983
 TSystem.cxx:3984
 TSystem.cxx:3985
 TSystem.cxx:3986
 TSystem.cxx:3987
 TSystem.cxx:3988
 TSystem.cxx:3989
 TSystem.cxx:3990
 TSystem.cxx:3991
 TSystem.cxx:3992
 TSystem.cxx:3993
 TSystem.cxx:3994
 TSystem.cxx:3995
 TSystem.cxx:3996
 TSystem.cxx:3997
 TSystem.cxx:3998
 TSystem.cxx:3999
 TSystem.cxx:4000
 TSystem.cxx:4001
 TSystem.cxx:4002
 TSystem.cxx:4003
 TSystem.cxx:4004
 TSystem.cxx:4005
 TSystem.cxx:4006
 TSystem.cxx:4007
 TSystem.cxx:4008
 TSystem.cxx:4009
 TSystem.cxx:4010
 TSystem.cxx:4011
 TSystem.cxx:4012
 TSystem.cxx:4013
 TSystem.cxx:4014
 TSystem.cxx:4015
 TSystem.cxx:4016
 TSystem.cxx:4017
 TSystem.cxx:4018
 TSystem.cxx:4019
 TSystem.cxx:4020
 TSystem.cxx:4021
 TSystem.cxx:4022
 TSystem.cxx:4023
 TSystem.cxx:4024
 TSystem.cxx:4025
 TSystem.cxx:4026
 TSystem.cxx:4027
 TSystem.cxx:4028
 TSystem.cxx:4029
 TSystem.cxx:4030
 TSystem.cxx:4031
 TSystem.cxx:4032
 TSystem.cxx:4033
 TSystem.cxx:4034
 TSystem.cxx:4035
 TSystem.cxx:4036
 TSystem.cxx:4037
 TSystem.cxx:4038
 TSystem.cxx:4039
 TSystem.cxx:4040
 TSystem.cxx:4041
 TSystem.cxx:4042
 TSystem.cxx:4043
 TSystem.cxx:4044
 TSystem.cxx:4045
 TSystem.cxx:4046
 TSystem.cxx:4047
 TSystem.cxx:4048
 TSystem.cxx:4049
 TSystem.cxx:4050
 TSystem.cxx:4051
 TSystem.cxx:4052
 TSystem.cxx:4053
 TSystem.cxx:4054
 TSystem.cxx:4055
 TSystem.cxx:4056
 TSystem.cxx:4057
 TSystem.cxx:4058
 TSystem.cxx:4059
 TSystem.cxx:4060
 TSystem.cxx:4061
 TSystem.cxx:4062
 TSystem.cxx:4063
 TSystem.cxx:4064
 TSystem.cxx:4065
 TSystem.cxx:4066
 TSystem.cxx:4067
 TSystem.cxx:4068
 TSystem.cxx:4069
 TSystem.cxx:4070
 TSystem.cxx:4071
 TSystem.cxx:4072
 TSystem.cxx:4073
 TSystem.cxx:4074
 TSystem.cxx:4075
 TSystem.cxx:4076
 TSystem.cxx:4077
 TSystem.cxx:4078
 TSystem.cxx:4079
 TSystem.cxx:4080
 TSystem.cxx:4081
 TSystem.cxx:4082
 TSystem.cxx:4083
 TSystem.cxx:4084
 TSystem.cxx:4085
 TSystem.cxx:4086
 TSystem.cxx:4087
 TSystem.cxx:4088
 TSystem.cxx:4089