ROOT logo
// @(#)root/gui:$Id: TGNumberEntry.cxx 31681 2009-12-08 15:58:57Z bellenot $
// Author: Daniel Sigg   03/09/2001

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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGNumberEntry, TGNumberEntryField and TGNumberFormat                 //
//                                                                      //
// TGNumberEntry is a number entry input widget with up/down buttons.   //
// TGNumberEntryField is a number entry input widget.                   //
// TGNumberFormat contains enum types to specify the numeric format.    //
//                                                                      //
// The number entry widget is based on TGTextEntry but allows only      //
// numerical input. The widget support numerous formats including       //
// integers, hex numbers, real numbers, fixed fraction reals and        //
// time/date formats. The widget also allows to restrict input values   //
// to non-negative or positive numbers and to specify explicit limits.  //
//                                                                      //
// The following styles are supported:                                  //
// kNESInteger:        integer number                                   //
// kNESRealOne:        real number with one digit (no exponent)         //
// kNESRealTwo:        real number with two digits (no exponent)        //
// kNESRealThree:      real number with three digits (no exponent)      //
// kNESRealFour:       real number with four digits (no exponent)       //
// kNESReal:           arbitrary real number                            //
// kNESDegree:         angle in degree:minutes:seconds format           //
// kNESMinSec:         time in minutes:seconds format                   //
// kNESHourMin:        time in hour:minutes format                      //
// kNESHourMinSec:     time in hour:minutes:seconds format              //
// kNESDayMYear:       date in day/month/year format                    //
// kNESMDayYear:       date in month/day/year format                    //
// kNESHex:            hex number                                       //
//                                                                      //
// The following attributes can be specified:                           //
// kNEAAnyNumber:      any number is allowed                            //
// kNEANonNegative:    only non-negative numbers are allowed            //
// kNEAPositive:       only positive numbers are allowed                //
//                                                                      //
// Explicit limits can be specified individually:                       //
// kNELNoLimits:       no limits                                        //
// kNELLimitMin:       lower limit only                                 //
// kNELLimitMax        upper limit only                                 //
// kNELLimitMinMax     both lower and upper limits                      //
//                                                                      //
// TGNumberEntryField is a plain vanilla entry field, whereas           //
// TGNumberEntry adds two small buttons to increase and decrease the    //
// numerical value in the field. The number entry widgets also support  //
// using the up and down cursor keys to change the numerical values.    //
// The step size can be selected with control and shift keys:           //
// --                  small step (1 unit/factor of 3)                  //
// shift               medium step (10 units/factor of 10)              //
// control             large step (100 units/factor of 30)              //
// shift-control       huge step (1000 units/factor of 100)             //
//                                                                      //
// The steps are either linear or logarithmic. The default behaviour    //
// is set when the entry field is created, but it can be changed by     //
// pressing the alt key at the same time.                               //
//                                                                      //
// Changing the number in the widget will generate the event:           //
// kC_TEXTENTRY, kTE_TEXTCHANGED, widget id, 0.                         //
// Hitting the enter key will generate:                                 //
// kC_TEXTENTRY, kTE_ENTER, widget id, 0.                               //
// Hitting the tab key will generate:                                   //
// kC_TEXTENTRY, kTE_TAB, widget id, 0.                                 //
//                                                                      //
//Begin_Html
/*
<img src="numberentry.jpg">
*/
//End_Html
//

#include "TGNumberEntry.h"
#include "KeySymbols.h"
#include "TTimer.h"
#include "TSystem.h"
#include "TGToolTip.h"
#include "TMath.h"
#include "Riostream.h"
#include <ctype.h>


ClassImp(TGNumberFormat);
ClassImp(TGNumberEntryField);
ClassImp(TGNumberEntryLayout);
ClassImp(TGNumberEntry);



//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Miscellanous routines for handling numeric values <-> strings        //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

//______________________________________________________________________________
enum ERealStyle {         // Style of real
   kRSInt = 0,            // Integer
   kRSFrac = 1,           // Fraction only
   kRSExpo = 2,           // Exponent only
   kRSFracExpo = 3        // Fraction and Exponent
};

//______________________________________________________________________________
struct RealInfo_t {
   ERealStyle fStyle;     // Style of real
   Int_t fFracDigits;     // Number of fractional digits
   Int_t fFracBase;       // Base of fractional digits
   Int_t fIntNum;         // Integer number
   Int_t fFracNum;        // Fraction
   Int_t fExpoNum;        // Exponent
   Int_t fSign;           // Sign
};

//______________________________________________________________________________
const Double_t kEpsilon = 1E-12;

//______________________________________________________________________________
const Int_t kDays[13] =
    { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

//______________________________________________________________________________
static Long_t Round(Double_t x)
{
   if (x > 0) {
      return (Long_t) (x + 0.5);
   } else if (x < 0) {
      return (Long_t) (x - 0.5);
   } else {
      return 0;
   }
}

//______________________________________________________________________________
static Long_t Truncate(Double_t x)
{
   if (x > 0) {
      return (Long_t) (x + kEpsilon);
   } else if (x < 0) {
      return (Long_t) (x - kEpsilon);
   } else {
      return 0;
   }
}

//______________________________________________________________________________
static Bool_t IsLeapYear(Int_t year)
{
   return ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)));
}

//______________________________________________________________________________
static Bool_t IsGoodChar(char c, TGNumberFormat::EStyle style,
                         TGNumberFormat::EAttribute attr)
{
   if (isdigit(c)) {
      return kTRUE;
   }
   if (isxdigit(c) && (style == TGNumberFormat::kNESHex)) {
      return kTRUE;
   }
   if ((c == '-') && (style == TGNumberFormat::kNESInteger) &&
       (attr == TGNumberFormat::kNEAAnyNumber)) {
      return kTRUE;
   }
   if ((c == '-') &&
       ((style == TGNumberFormat::kNESRealOne) ||
        (style == TGNumberFormat::kNESRealTwo) ||
        (style == TGNumberFormat::kNESRealThree) ||
        (style == TGNumberFormat::kNESRealFour) ||
        (style == TGNumberFormat::kNESReal) ||
        (style == TGNumberFormat::kNESDegree) ||
        (style == TGNumberFormat::kNESMinSec)) &&
       (attr == TGNumberFormat::kNEAAnyNumber)) {
      return kTRUE;
   }
   if ((c == '-') && (style == TGNumberFormat::kNESReal)) {
      return kTRUE;
   }
   if (((c == '.') || (c == ',')) &&
       ((style == TGNumberFormat::kNESRealOne) ||
        (style == TGNumberFormat::kNESRealTwo) ||
        (style == TGNumberFormat::kNESRealThree) ||
        (style == TGNumberFormat::kNESRealFour) ||
        (style == TGNumberFormat::kNESReal) ||
        (style == TGNumberFormat::kNESDegree) ||
        (style == TGNumberFormat::kNESMinSec) ||
        (style == TGNumberFormat::kNESHourMin) ||
        (style == TGNumberFormat::kNESHourMinSec) ||
        (style == TGNumberFormat::kNESDayMYear) ||
        (style == TGNumberFormat::kNESMDayYear))) {
      return kTRUE;
   }
   if ((c == ':') &&
       ((style == TGNumberFormat::kNESDegree) ||
        (style == TGNumberFormat::kNESMinSec) ||
        (style == TGNumberFormat::kNESHourMin) ||
        (style == TGNumberFormat::kNESHourMinSec) ||
        (style == TGNumberFormat::kNESDayMYear) ||
        (style == TGNumberFormat::kNESMDayYear))) {
      return kTRUE;
   }
   if ((c == '/') &&
       ((style == TGNumberFormat::kNESDayMYear) ||
        (style == TGNumberFormat::kNESMDayYear))) {
      return kTRUE;
   }
   if (((c == 'e') || (c == 'E')) && (style == TGNumberFormat::kNESReal)) {
      return kTRUE;
   }
   return kFALSE;
}

//______________________________________________________________________________
static char *EliminateGarbage(char *text,
                              TGNumberFormat::EStyle style,
                              TGNumberFormat::EAttribute attr)
{
   if (text == 0) {
      return 0;
   }
   for (Int_t i = strlen(text) - 1; i >= 0; i--) {
      if (!IsGoodChar(text[i], style, attr)) {
         memmove(text + i, text + i + 1, strlen(text) - i);
      }
   }
   return text;
}

//______________________________________________________________________________
static Long_t IntStr(const char *text)
{
   Long_t l = 0;
   Int_t sign = 1;
   for (UInt_t i = 0; i < strlen(text); i++) {
      if (text[i] == '-') {
         sign = -1;
      } else if ((isdigit(text[i])) && (l < 100000000)) {
         l = 10 * l + (text[i] - '0');
      }
   }
   return sign * l;
}

//______________________________________________________________________________
static char *StrInt(char *text, Long_t i, Int_t digits)
{
   sprintf(text, "%li", TMath::Abs(i));
   TString s = text;
   while (digits > s.Length()) {
      s = "0" + s;
   }
   if (i < 0) {
      s = "-" + s;
   }
   strcpy(text, (const char *) s);
   return text;
}

//______________________________________________________________________________
static TString StringInt(Long_t i, Int_t digits)
{
   char text[256];
   StrInt(text, i, digits);
   return TString(text);
}

//______________________________________________________________________________
static char *RealToStr(char *text, const RealInfo_t & ri)
{
   char *p = text;
   if (text == 0) {
      return 0;
   }
   strcpy(p, "");
   if (ri.fSign < 0) {
      strcpy(p, "-");
      p++;
   }
   StrInt(p, TMath::Abs(ri.fIntNum), 0);
   p += strlen(p);
   if ((ri.fStyle == kRSFrac) || (ri.fStyle == kRSFracExpo)) {
      strcpy(p, ".");
      p++;
      StrInt(p, TMath::Abs(ri.fFracNum), ri.fFracDigits);
      p += strlen(p);
   }
   if ((ri.fStyle == kRSExpo) || (ri.fStyle == kRSFracExpo)) {
      strcpy(p, "e");
      p++;
      StrInt(p, ri.fExpoNum, 0);
      p += strlen(p);
   }
   return text;
}

//______________________________________________________________________________
static Double_t StrToReal(const char *text, RealInfo_t & ri)
{
   char *s;
   char *frac;
   char *expo;
   char *minus;
   char buf[256];

   if ((text == 0) || (strlen(text) == 0)) {
      ri.fStyle = kRSInt;
      ri.fIntNum = 0;
      ri.fSign = 1;
      return 0.0;
   }
   strncpy(buf, text, sizeof(buf) - 1);
   s = buf;
   frac = strchr(s, '.');
   if (frac == 0) {
      frac = strchr(s, ',');
   }
   expo = strchr(s, 'e');
   minus = strchr(s, '-');
   if (expo == 0) {
      expo = strchr(s, 'E');
   }
   if ((frac != 0) && (expo != 0) && (frac > expo)) {
      frac = 0;
   }
   if ((minus != 0) && ((expo == 0) || (minus < expo))) {
      ri.fSign = -1;
   } else {
      ri.fSign = 1;
   }
   if ((frac == 0) && (expo == 0)) {
      ri.fStyle = kRSInt;
   } else if (frac == 0) {
      ri.fStyle = kRSExpo;
   } else if (expo == 0) {
      ri.fStyle = kRSFrac;
   } else {
      ri.fStyle = kRSFracExpo;
   }
   if (frac != 0) {
      *frac = 0;
      frac++;
   }
   if (expo != 0) {
      *expo = 0;
      expo++;
   }
   ri.fIntNum = TMath::Abs(IntStr(s));
   if (expo != 0) {
      ri.fExpoNum = IntStr(expo);
   } else {
      ri.fExpoNum = 0;
   }
   if (ri.fExpoNum > 999) {
      ri.fExpoNum = 999;
   }
   if (ri.fExpoNum < -999) {
      ri.fExpoNum = -999;
   }
   ri.fFracDigits = 0;
   ri.fFracBase = 1;
   ri.fFracNum = 0;
   if (frac != 0) {
      for (UInt_t i = 0; i < strlen(frac); i++) {
         if (isdigit(frac[i])) {
            if (ri.fFracNum < 100000000) {
               ri.fFracNum = 10 * ri.fFracNum + (frac[i] - '0');
               ri.fFracDigits++;
               ri.fFracBase *= 10;
            }
         }
      }
   }
   if ((ri.fFracDigits == 0) && (ri.fStyle == kRSFrac)) {
      ri.fStyle = kRSInt;
   }
   if ((ri.fFracDigits == 0) && (ri.fStyle == kRSFracExpo)) {
      ri.fStyle = kRSExpo;
   }
   switch (ri.fStyle) {
   case kRSInt:
      return ri.fSign * ri.fIntNum;
   case kRSFrac:
      return ri.fSign *
          (ri.fIntNum + (Double_t) ri.fFracNum / ri.fFracBase);
   case kRSExpo:
      return ri.fSign * (ri.fIntNum * TMath::Power(10, ri.fExpoNum));
   case kRSFracExpo:
      return ri.fSign * (ri.fIntNum +
                         (Double_t) ri.fFracNum / ri.fFracBase) *
          TMath::Power(10, ri.fExpoNum);
   }
   return 0;
}

//______________________________________________________________________________
static ULong_t HexStrToInt(const char *s)
{
   ULong_t w = 0;
   for (UInt_t i = 0; i < strlen(s); i++) {
      if ((s[i] >= '0') && (s[i] <= '9')) {
         w = 16 * w + (s[i] - '0');
      } else if ((toupper(s[i]) >= 'A') && (toupper(s[i]) <= 'F')) {
         w = 16 * w + (toupper(s[i]) - 'A' + 10);
      }
   }
   return w;
}

//______________________________________________________________________________
static char *IntToHexStr(char *text, ULong_t l)
{
   const char *const digits = "0123456789ABCDEF";
   char buf[64];
   char *p = buf + 62;
   strcpy(p, "");
   while (l > 0) {
      *(--p) = digits[l % 16];
      l /= 16;
   }
   if (strlen(p) == 0) {
      strcpy(text, "0");
   } else {
      strcpy(text, p);
   }
   return text;
}

//______________________________________________________________________________
static char *MIntToStr(char *text, Long_t l, Int_t digits)
{
   TString s;
   Int_t base;
   switch (digits) {
   case 0:
      base = 1;
      break;
   case 1:
      base = 10;
      break;
   case 2:
      base = 100;
      break;
   case 3:
      base = 1000;
      break;
   default:
   case 4:
      base = 10000;
      break;
   }
   s = StringInt(TMath::Abs(l) / base, 0) + "." +
       StringInt(TMath::Abs(l) % base, digits);
   if (l < 0) {
      s = "-" + s;
   }
   strcpy(text, (const char *) s);
   return text;
}

//______________________________________________________________________________
static char *DIntToStr(char *text, Long_t l, Bool_t Sec, char Del)
{
   TString s;
   if (Sec) {
      s = StringInt(TMath::Abs(l) / 3600, 0) + Del +
          StringInt((TMath::Abs(l) % 3600) / 60, 2) + Del +
          StringInt(TMath::Abs(l) % 60, 2);
   } else {
      s = StringInt(TMath::Abs(l) / 60, 0) + Del +
          StringInt(TMath::Abs(l) % 60, 2);
   }
   if (l < 0) {
      s = "-" + s;
   }
   strcpy(text, (const char *) s);
   return text;
}

//______________________________________________________________________________
static void GetNumbers(const char *s, Int_t & Sign,
                       Long_t & n1, Int_t maxd1,
                       Long_t & n2, Int_t maxd2,
                       Long_t & n3, Int_t maxd3, const char *Delimiters)
{
   Long_t n;
   Long_t d = 0;
   Sign = +1;
   n1 = 0;
   n2 = 0;
   n3 = 0;
   if (*s == '-') {
      Sign = -1;
      s++;
   }
   if (!isdigit(*s) && !strchr(Delimiters, *s)) {
      return;
   }
   while ((*s != 0) && ((strchr(Delimiters, *s) == 0) || (maxd2 == 0))) {
      if (isdigit(*s) && (d < maxd1)) {
         if (n1 < 100000000) {
            n1 = 10 * n1 + (*s - '0');
         }
         d++;
      }
      s++;
   }
   if (strcspn(s, Delimiters) == strlen(s)) {
      return;
   }
   Int_t dummy = 0;
   GetNumbers(s + 1, dummy, n2, maxd2, n3, maxd3, n, d, Delimiters);
}

//______________________________________________________________________________
static Long_t GetSignificant(Long_t l, Int_t Max)
{
   while (TMath::Abs(l) >= Max) {
      l /= 10;
   }
   return l;
}

//______________________________________________________________________________
static void AppendFracZero(char *text, Int_t digits)
{
   char *p;
   Int_t found = 0;
   p = strchr(text, '.');
   if (p == 0) {
      p = strchr(text, ',');
   }
   if (p == 0) {
      return;
   }
   p++;
   for (UInt_t i = 0; i < strlen(p); i++) {
      if (isdigit(*p)) {
         found++;
      }
   }
   while (found < digits) {
      strcpy(p + strlen(p), "0");
      found++;
   }
}

//______________________________________________________________________________
static Long_t MakeDateNumber(const char * /*text*/, Long_t Day,
                             Long_t Month, Long_t Year)
{
   // Create a number entry with year/month/day information.

   Day = TMath::Abs(Day);
   Month = TMath::Abs(Month);
   Year = TMath::Abs(Year);
   if (Year < 100) {
      Year += 2000;
   }
   Month = GetSignificant(Month, 100);
   if (Month > 12)
      Month = 12;
   if (Month == 0)
      Month = 1;
   Day = GetSignificant(Day, 100);
   if (Day == 0)
      Day = 1;
   if (Day > kDays[Month])
      Day = kDays[Month];
   if ((Month == 2) && (Day > 28) && !IsLeapYear(Year))
      Day = 28;
   return 10000 * Year + 100 * Month + Day;
}

//______________________________________________________________________________
static Long_t TranslateToNum(const char *text,
                             TGNumberFormat::EStyle style, RealInfo_t & ri)
{
   // Translate a string to a number value.

   Long_t n1;
   Long_t n2;
   Long_t n3;
   Int_t sign;
   switch (style) {
   case TGNumberFormat::kNESInteger:
      GetNumbers(text, sign, n1, 12, n2, 0, n3, 0, "");
      return sign * n1;
   case TGNumberFormat::kNESRealOne:
      GetNumbers(text, sign, n1, 12, n2, 1, n3, 0, ".,");
      return sign * (10 * n1 + GetSignificant(n2, 10));
   case TGNumberFormat::kNESRealTwo:
      {
         char buf[256];
         strncpy(buf, text, sizeof(buf) - 1);
         AppendFracZero(buf, 2);
         GetNumbers(buf, sign, n1, 12, n2, 2, n3, 0, ".,");
         return sign * (100 * n1 + GetSignificant(n2, 100));
      }
   case TGNumberFormat::kNESRealThree:
      {
         char buf[256];
         strncpy(buf, text, sizeof(buf) - 1);
         AppendFracZero(buf, 3);
         GetNumbers(buf, sign, n1, 12, n2, 3, n3, 0, ".,");
         return sign * (1000 * n1 + GetSignificant(n2, 1000));
      }
   case TGNumberFormat::kNESRealFour:
      {
         char buf[256];
         strncpy(buf, text, sizeof(buf) - 1);
         AppendFracZero(buf, 4);
         GetNumbers(buf, sign, n1, 12, n2, 4, n3, 0, ".,");
         return sign * (10000 * n1 + GetSignificant(n2, 10000));
      }
   case TGNumberFormat::kNESReal:
      return (Long_t) StrToReal(text, ri);
   case TGNumberFormat::kNESDegree:
      GetNumbers(text, sign, n1, 12, n2, 2, n3, 2, ".,:");
      return sign * (3600 * n1 + 60 * GetSignificant(n2, 60) +
                     GetSignificant(n3, 60));
   case TGNumberFormat::kNESHourMinSec:
      GetNumbers(text, sign, n1, 12, n2, 2, n3, 2, ".,:");
      return 3600 * n1 + 60 * GetSignificant(n2, 60) +
          GetSignificant(n3, 60);
   case TGNumberFormat::kNESMinSec:
      GetNumbers(text, sign, n1, 12, n2, 2, n3, 0, ".,:");
      return sign * (60 * n1 + GetSignificant(n2, 60));
   case TGNumberFormat::kNESHourMin:
      GetNumbers(text, sign, n1, 12, n2, 2, n3, 0, ".,:");
      return 60 * n1 + GetSignificant(n2, 60);
   case TGNumberFormat::kNESDayMYear:
      GetNumbers(text, sign, n1, 2, n2, 2, n3, 4, ".,/");
      return MakeDateNumber(text, n1, n2, n3);
   case TGNumberFormat::kNESMDayYear:
      GetNumbers(text, sign, n2, 2, n1, 2, n3, 4, ".,/");
      return MakeDateNumber(text, n1, n2, n3);
   case TGNumberFormat::kNESHex:
      return HexStrToInt(text);
   }
   return 0;
}

//______________________________________________________________________________
static char *TranslateToStr(char *text, Long_t l,
                            TGNumberFormat::EStyle style, const RealInfo_t & ri)
{
   // Translate a number value to a string.

   switch (style) {
   case TGNumberFormat::kNESInteger:
      return StrInt(text, l, 0);
   case TGNumberFormat::kNESRealOne:
      return MIntToStr(text, l, 1);
   case TGNumberFormat::kNESRealTwo:
      return MIntToStr(text, l, 2);
   case TGNumberFormat::kNESRealThree:
      return MIntToStr(text, l, 3);
   case TGNumberFormat::kNESRealFour:
      return MIntToStr(text, l, 4);
   case TGNumberFormat::kNESReal:
      return RealToStr(text, ri);
   case TGNumberFormat::kNESDegree:
      return DIntToStr(text, l, kTRUE, '.');
   case TGNumberFormat::kNESHourMinSec:
      return DIntToStr(text, l % (24 * 3600), kTRUE, ':');
   case TGNumberFormat::kNESMinSec:
      return DIntToStr(text, l, kFALSE, ':');
   case TGNumberFormat::kNESHourMin:
      return DIntToStr(text, l % (24 * 60), kFALSE, ':');
   case TGNumberFormat::kNESDayMYear:
      {
         TString date =
             StringInt(TMath::Abs(l) % 100, 0) + "/" +
             StringInt((TMath::Abs(l) / 100) % 100, 0) + "/" +
             StringInt(TMath::Abs(l) / 10000, 0);
         return strcpy(text, (const char *) date);
      }
   case TGNumberFormat::kNESMDayYear:
      {
         TString date =
             StringInt((TMath::Abs(l) / 100) % 100, 0) + "/" +
             StringInt(TMath::Abs(l) % 100, 0) + "/" +
             StringInt(TMath::Abs(l) / 10000, 0);
         return strcpy(text, (const char *) date);
      }
   case TGNumberFormat::kNESHex:
      return IntToHexStr(text, (ULong_t) l);
   }
   return 0;
}

//______________________________________________________________________________
static Double_t RealToDouble(const RealInfo_t ri)
{
   // Convert to double format.

   switch (ri.fStyle) {
      // Integer type real
   case kRSInt:
      return (Double_t) ri.fSign * ri.fIntNum;
      // Fraction type real
   case kRSFrac:
      return (Double_t) ri.fSign * ((Double_t) TMath::Abs(ri.fIntNum) +
                                    (Double_t) ri.fFracNum / ri.fFracBase);
      // Exponent only
   case kRSExpo:
      return (Double_t) ri.fSign * ri.fIntNum *
          TMath::Power(10, ri.fExpoNum);
      // Fraction and exponent
   case kRSFracExpo:
      return (Double_t) ri.fSign * ((Double_t) TMath::Abs(ri.fIntNum) +
                                    (Double_t) ri.fFracNum /
                                    ri.fFracBase) * TMath::Power(10,
                                                                 ri.fExpoNum);
   }
   return 0;
}

//______________________________________________________________________________
static void CheckMinMax(Long_t & l, TGNumberFormat::EStyle style,
                        TGNumberFormat::ELimit limits,
                        Double_t min, Double_t max)
{
   // Check min/max limits for the set value.

   if ((limits == TGNumberFormat::kNELNoLimits) ||
       (style == TGNumberFormat::kNESReal)) {
      return;
   }
   // check min
   if ((limits == TGNumberFormat::kNELLimitMin) ||
       (limits == TGNumberFormat::kNELLimitMinMax)) {
      Long_t lower;
      switch (style) {
      case TGNumberFormat::kNESRealOne:
         lower = Round(10.0 * min);
         break;
      case TGNumberFormat::kNESRealTwo:
         lower = Round(100.0 * min);
         break;
      case TGNumberFormat::kNESRealThree:
         lower = Round(1000.0 * min);
         break;
      case TGNumberFormat::kNESRealFour:
         lower = Round(10000.0 * min);
         break;
      case TGNumberFormat::kNESHex:
         lower = (ULong_t) Round(min);
         break;
      default:
         lower = Round(min);
         break;
      }
      if (style != TGNumberFormat::kNESHex) {
         if (l < lower)
            l = lower;
      } else {
         if (lower < 0)
            lower = 0;
         if ((ULong_t) l < (ULong_t) lower)
            l = lower;
      }
   }
   // check max
   if ((limits == TGNumberFormat::kNELLimitMax) ||
       (limits == TGNumberFormat::kNELLimitMinMax)) {
      Long_t upper;
      switch (style) {
      case TGNumberFormat::kNESRealOne:
         upper = Round(10.0 * max);
         break;
      case TGNumberFormat::kNESRealTwo:
         upper = Round(100.0 * max);
         break;
      case TGNumberFormat::kNESRealThree:
         upper = Round(1000.0 * max);
         break;
      case TGNumberFormat::kNESRealFour:
         upper = Round(10000.0 * max);
         break;
      case TGNumberFormat::kNESHex:
         upper = (ULong_t) Round(max);
         break;
      default:
         upper = Round(max);
         break;
      }
      if (style != TGNumberFormat::kNESHex) {
         if (l > upper)
            l = upper;
      } else {
         if (upper < 0)
            upper = 0;
         if ((ULong_t) l > (ULong_t) upper)
            l = upper;
      }
   }
}

//______________________________________________________________________________
static void IncreaseReal(RealInfo_t & ri, Double_t mag, Bool_t logstep,
                         TGNumberFormat::ELimit limits =
                         TGNumberFormat::kNELNoLimits, Double_t min = 0,
                         Double_t max = 1)
{
   // Convert to double format.

   Double_t x = RealToDouble(ri);

   // apply step
   if (logstep) {
      x *= mag;
   } else {
      switch (ri.fStyle) {
      case kRSInt:
         x = x + mag;
         break;
      case kRSFrac:
         x = x + mag / ri.fFracBase;
         break;
      case kRSExpo:
         x = x + mag * TMath::Power(10, ri.fExpoNum);
         break;
      case kRSFracExpo:
         x = x + (mag / ri.fFracBase) * TMath::Power(10, ri.fExpoNum);
         break;
      }
   }
   // check min
   if ((limits == TGNumberFormat::kNELLimitMin) ||
       (limits == TGNumberFormat::kNELLimitMinMax)) {
      if (x < min)
         x = min;
   }
   // check max
   if ((limits == TGNumberFormat::kNELLimitMax) ||
       (limits == TGNumberFormat::kNELLimitMinMax)) {
      if (x > max)
         x = max;
   }
   // check format after log step
   if ((x != 0) && logstep && (TMath::Abs(mag) > kEpsilon)) {
      for (int j = 0; j < 10; j++) {
         // Integer: special case
         if ((ri.fStyle == kRSInt) && (TMath::Abs(x) < 1) &&
             (TMath::Abs(x) > kEpsilon)) {
            ri.fStyle = kRSFrac;
            ri.fFracDigits = 1;
            ri.fFracBase = 10;
            continue;
         }
         if ((ri.fStyle == kRSInt) && (TMath::Abs(x) > 10000)) {
            ri.fStyle = kRSFracExpo;
            ri.fExpoNum = 4;
            ri.fFracDigits = 4;
            ri.fFracBase = 10000;
            Long_t rest = Round(TMath::Abs(x)) % 10000;
            for (int k = 0; k < 4; k++) {
               if (rest % 10 != 0) {
                  break;
               }
               ri.fFracDigits--;
               ri.fFracBase /= 10;
               rest /= 10;
            }
            if (ri.fFracDigits == 0) {
               ri.fStyle = kRSExpo;
            }
            continue;
         }
         if (ri.fStyle == kRSInt)
            break;

         // caluclate first digit
         Double_t y;
         if ((ri.fStyle == kRSExpo) || (ri.fStyle == kRSFracExpo)) {
            y = TMath::Abs(x) * TMath::Power(10, -ri.fExpoNum);
         } else {
            y = TMath::Abs(x);
         }
         // adjust exponent if num < 1
         if ((Truncate(y) == 0) && (y > 0.001)) {
            if ((ri.fStyle == kRSExpo) || (ri.fStyle == kRSFracExpo)) {
               ri.fExpoNum--;
            } else {
               ri.fStyle = kRSFracExpo;
               ri.fExpoNum = -1;
            }
            continue;
         }
         // adjust exponent if num > 10
         if (Truncate(y) >= 10) {
            if ((ri.fStyle == kRSExpo) || (ri.fStyle == kRSFracExpo)) {
               ri.fExpoNum++;
            } else {
               ri.fStyle = kRSFracExpo;
               ri.fExpoNum = 1;
            }
            continue;
         }
         break;
      }
   }
   // convert back to RealInfo_t
   switch (ri.fStyle) {
      // Integer type real
   case kRSInt:
      {
         ri.fSign = (x < 0) ? -1 : 1;
         ri.fIntNum = Round(TMath::Abs(x));
         break;
      }
      // Fraction type real
   case kRSFrac:
      {
         ri.fSign = (x < 0) ? -1 : 1;
         ri.fIntNum = Truncate(TMath::Abs(x));
         ri.fFracNum = Round((TMath::Abs(x) - TMath::Abs(ri.fIntNum)) * ri.fFracBase);
         break;
      }
      // Exponent only
   case kRSExpo:
      {
         ri.fSign = (x < 0) ? -1 : 1;
         ri.fIntNum = Round(TMath::Abs(x) * TMath::Power(10, -ri.fExpoNum));
         if (ri.fIntNum == 0) {
            ri.fStyle = kRSInt;
         }
         break;
      }
      // Fraction and exponent
   case kRSFracExpo:
      {
         ri.fSign = (x < 0) ? -1 : 1;
         Double_t y = TMath::Abs(x) * TMath::Power(10, -ri.fExpoNum);
         ri.fIntNum = Truncate(y);
         ri.fFracNum = Round((y - TMath::Abs(ri.fIntNum)) * ri.fFracBase);
         if ((ri.fIntNum == 0) && (ri.fFracNum == 0)) {
            ri.fStyle = kRSFrac;
         }
         break;
      }
   }

   // check if the back conversion violated limits
   if (limits != TGNumberFormat::kNELNoLimits) {
      x = RealToDouble(ri);
      // check min
      if ((limits == TGNumberFormat::kNELLimitMin) ||
          (limits == TGNumberFormat::kNELLimitMinMax)) {
         if (x < min) {
            char text[256];
            sprintf(text, "%g", min);
            StrToReal(text, ri);
         }
      }
      // check max
      if ((limits == TGNumberFormat::kNELLimitMax) ||
          (limits == TGNumberFormat::kNELLimitMinMax)) {
         if (x > max) {
            char text[256];
            sprintf(text, "%g", max);
            StrToReal(text, ri);
         }
      }
   }
}

//______________________________________________________________________________
static void IncreaseDate(Long_t & l, TGNumberFormat::EStepSize step, Int_t sign)
{
   // Change year/month/day format.

   Long_t year;
   Long_t month;
   Long_t day;

   // get year/month/day format
   year = l / 10000;
   month = (TMath::Abs(l) / 100) % 100;
   if (month > 12)
      month = 12;
   if (month == 0)
      month = 1;
   day = TMath::Abs(l) % 100;
   if (day > kDays[month])
      day = kDays[month];
   if ((month == 2) && (day > 28) && !IsLeapYear(year)) {
      day = 28;
   }
   if (day == 0)
      day = 0;

   // apply step
   if (step == TGNumberFormat::kNSSHuge) {
      year += sign * 10;
   } else if (step == TGNumberFormat::kNSSLarge) {
      year += sign;
   } else if (step == TGNumberFormat::kNSSMedium) {
      month += sign;
      if (month > 12) {
         month = 1;
         year++;
      }
      if (month < 1) {
         month = 12;
         year--;
      }
   } else if (step == TGNumberFormat::kNSSSmall) {
      day += sign;
      if ((sign > 0) &&
          ((day > kDays[month]) ||
           ((month == 2) && (day > 28) && !IsLeapYear(year)))) {
         day = 1;
         month++;
         if (month > 12) {
            month = 1;
            year++;
         }
      }
      if ((sign < 0) && (day == 0)) {
         month--;
         if (month < 1) {
            month = 12;
            year--;
         }
         day = kDays[month];
      }
   }
   // check again for valid date
   if (year < 0)
      year = 0;
   if (day > kDays[month])
      day = kDays[month];
   if ((month == 2) && (day > 28) && !IsLeapYear(year)) {
      day = 28;
   }
   l = 10000 * year + 100 * month + day;
}




//______________________________________________________________________________
TGNumberEntryField::TGNumberEntryField(const TGWindow * p, Int_t id,
                                       Double_t val, GContext_t norm,
                                       FontStruct_t font, UInt_t option,
                                       ULong_t back)
   : TGTextEntry(p, new TGTextBuffer(), id, norm, font, option, back),
     fNeedsVerification(kFALSE), fNumStyle(kNESReal), fNumAttr(kNEAAnyNumber),
     fNumLimits(kNELNoLimits)
{
   // Constructs a number entry field.

   fStepLog = kFALSE;
   SetAlignment(kTextRight);
   SetNumber(val);
   fEditDisabled = kEditDisable | kEditDisableGrab;
}

//______________________________________________________________________________
TGNumberEntryField::TGNumberEntryField(const TGWindow * parent,
                                       Int_t id, Double_t val,
                                       EStyle style, EAttribute attr,
                                       ELimit limits, Double_t min,
                                       Double_t max)
   : TGTextEntry(parent, "", id), fNeedsVerification(kFALSE), fNumStyle(style),
     fNumAttr(attr), fNumLimits(limits), fNumMin(min), fNumMax(max)
{
   // Constructs a number entry field.

   fStepLog = kFALSE;
   SetAlignment(kTextRight);
   SetNumber(val);
   fEditDisabled = kEditDisable | kEditDisableGrab;
}

//______________________________________________________________________________
void TGNumberEntryField::SetNumber(Double_t val)
{
   // Set the numeric value (floating point representation).

   switch (fNumStyle) {
   case kNESInteger:
      SetIntNumber(Round(val));
      break;
   case kNESRealOne:
      SetIntNumber(Round(10.0 * val));
      break;
   case kNESRealTwo:
      SetIntNumber(Round(100.0 * val));
      break;
   case kNESRealThree:
      SetIntNumber(Round(1000.0 * val));
      break;
   case kNESRealFour:
      SetIntNumber(Round(10000.0 * val));

      break;
   case kNESReal:
      {
         char text[256];
         sprintf(text, "%g", val);
         SetText(text);
         break;
      }
   case kNESDegree:
      SetIntNumber(Round(val));
      break;
   case kNESHourMinSec:
      SetIntNumber(Round(val));
      break;
   case kNESMinSec:
      SetIntNumber(Round(val));
      break;
   case kNESHourMin:
      SetIntNumber(Round(val));
      break;
   case kNESDayMYear:
      SetIntNumber(Round(val));
      break;
   case kNESMDayYear:
      SetIntNumber(Round(val));
      break;
   case kNESHex:
      SetIntNumber((UInt_t) (TMath::Abs(val) + 0.5));
      break;
   }
}

//______________________________________________________________________________
void TGNumberEntryField::SetIntNumber(Long_t val)
{
   // Set the numeric value (integer representation).

   char text[256];
   RealInfo_t ri;
   if (fNumStyle == kNESReal) {
      TranslateToStr(text, val, kNESInteger, ri);
   } else {
      TranslateToStr(text, val, fNumStyle, ri);
   }
   SetText(text);
}

//______________________________________________________________________________
void TGNumberEntryField::SetTime(Int_t hour, Int_t min, Int_t sec)
{
   // Set the numeric value (time format).

   switch (fNumStyle) {
   case kNESHourMinSec:
      SetIntNumber(3600 * TMath::Abs(hour) + 60 * TMath::Abs(min) +
                   TMath::Abs(sec));
      break;
   case kNESMinSec:
      {
         SetIntNumber(60 * min + sec);
         break;
      }
   case kNESHourMin:
      SetIntNumber(60 * TMath::Abs(hour) + TMath::Abs(min));
      break;
   default:
      break;
   }
}

//______________________________________________________________________________
void TGNumberEntryField::SetDate(Int_t year, Int_t month, Int_t day)
{
   // Set the numeric value (date format).

   switch (fNumStyle) {
   case kNESDayMYear:
   case kNESMDayYear:
      {
         SetIntNumber(10000 * TMath::Abs(year) + 100 * TMath::Abs(month) +
                      TMath::Abs(day));
      }
   default:
      {
         break;
      }
   }
}

//______________________________________________________________________________
void TGNumberEntryField::SetHexNumber(ULong_t val)
{
   // Set the numeric value (hex format).

   SetIntNumber((Long_t) val);
}

//______________________________________________________________________________
void TGNumberEntryField::SetText(const char *text, Bool_t emit)
{
   // Set the value (text format).

   char buf[256];
   strncpy(buf, text, sizeof(buf) - 1);
   EliminateGarbage(buf, fNumStyle, fNumAttr);
   TGTextEntry::SetText(buf, emit);
   fNeedsVerification = kFALSE;
}

//______________________________________________________________________________
Double_t TGNumberEntryField::GetNumber() const
{
   // Get the numeric value (floating point representation).

   switch (fNumStyle) {
   case kNESInteger:
      return (Double_t) GetIntNumber();
   case kNESRealOne:
      return (Double_t) GetIntNumber() / 10.0;
   case kNESRealTwo:
      return (Double_t) GetIntNumber() / 100.0;
   case kNESRealThree:
      return (Double_t) GetIntNumber() / 1000.0;
   case kNESRealFour:
      return (Double_t) GetIntNumber() / 10000.0;
   case kNESReal:
      {
         char text[256];
         RealInfo_t ri;
         strcpy(text, GetText());
         return StrToReal(text, ri);
      }
   case kNESDegree:
      return (Double_t) GetIntNumber();
   case kNESHourMinSec:
      return (Double_t) GetIntNumber();
   case kNESMinSec:
      return (Double_t) GetIntNumber();
   case kNESHourMin:
      return (Double_t) GetIntNumber();
   case kNESDayMYear:
      return (Double_t) GetIntNumber();
   case kNESMDayYear:
      return (Double_t) GetIntNumber();
   case kNESHex:
      return (Double_t) (ULong_t) GetIntNumber();
   }
   return 0;
}

//______________________________________________________________________________
Long_t TGNumberEntryField::GetIntNumber() const
{
   // Get the numeric value (integer representation).

   RealInfo_t ri;
   return TranslateToNum(GetText(), fNumStyle, ri);
}

//______________________________________________________________________________
void TGNumberEntryField::GetTime(Int_t & hour, Int_t & min, Int_t & sec) const
{
   // Get the numeric value (time format).

   switch (fNumStyle) {
   case kNESHourMinSec:
      {
         Long_t l = GetIntNumber();
         hour = TMath::Abs(l) / 3600;
         min = (TMath::Abs(l) % 3600) / 60;
         sec = TMath::Abs(l) % 60;
         break;
      }
   case kNESMinSec:
      {
         Long_t l = GetIntNumber();
         hour = 0;
         min = TMath::Abs(l) / 60;
         sec = TMath::Abs(l) % 60;
         if (l < 0) {
            min *= -1;
            sec *= -1;
         }
         break;
      }
   case kNESHourMin:
      {
         Long_t l = GetIntNumber();
         hour = TMath::Abs(l) / 60;
         min = TMath::Abs(l) % 60;
         sec = 0;
         break;
      }
   default:
      {
         hour = 0;
         min = 0;
         sec = 0;
         break;
      }
   }
}

//______________________________________________________________________________
void TGNumberEntryField::GetDate(Int_t & year, Int_t & month, Int_t & day) const
{
   // Get the numeric value (date format).

   switch (fNumStyle) {
   case kNESDayMYear:
   case kNESMDayYear:
      {
         Long_t l = GetIntNumber();
         year = l / 10000;
         month = (l % 10000) / 100;
         day = l % 100;
         break;
      }
   default:
      {
         year = 0;
         month = 0;
         day = 0;
         break;
      }
   }
}

//______________________________________________________________________________
ULong_t TGNumberEntryField::GetHexNumber() const
{
   // Get the numeric value (hex format).

   return (ULong_t) GetIntNumber();
}

//______________________________________________________________________________
Int_t TGNumberEntryField::GetCharWidth(const char *text) const
{
   // Get the text width in pixels.

   return gVirtualX->TextWidth(fFontStruct, text, strlen(text));
}

//______________________________________________________________________________
void TGNumberEntryField::IncreaseNumber(EStepSize step,
                                        Int_t stepsign, Bool_t logstep)
{
   // Increase the number value.

   Long_t l;
   RealInfo_t ri;
   Long_t mag = 0;
   Double_t rmag = 0.0;
   Int_t sign = stepsign;

   // svae old text field
   TString oldtext = GetText();
   // Get number
   if (fNumStyle != kNESReal) {
      l = GetIntNumber();
   } else {
      StrToReal(oldtext, ri);
   }

   // magnitude of step
   if ((fNumStyle == kNESDegree) || (fNumStyle == kNESHourMinSec) ||
       (fNumStyle == kNESMinSec) || (fNumStyle == kNESHourMin) ||
       (fNumStyle == kNESDayMYear) || (fNumStyle == kNESMDayYear) ||
       (fNumStyle == kNESHex)) {
      logstep = kFALSE;
      switch (step) {
      case kNSSSmall:
         mag = 1;
         break;
      case kNSSMedium:
         mag = 10;
         break;
      case kNSSLarge:
         mag = 100;
         break;
      case kNSSHuge:
         mag = 1000;
         break;
      }
   } else {
      Int_t msd = TMath::Abs((fNumStyle == kNESReal) ? ri.fIntNum : l);
      while (msd >= 10)
         msd /= 10;
      Bool_t odd = (msd < 3);
      if (sign < 0)
         odd = !odd;
      switch (step) {
      case kNSSSmall:
         rmag = (!logstep) ? 1. : (odd ? 3. : 10. / 3.);
         break;
      case kNSSMedium:
         rmag = (!logstep) ? 10. : 10.;
         break;
      case kNSSLarge:
         rmag = (!logstep) ? 100. : (odd ? 30. : 100. / 3.);
         break;
      case kNSSHuge:
         rmag = (!logstep) ? 1000. : 100.;
         break;
      }
      if (sign < 0)
         rmag = logstep ? 1. / rmag : -rmag;
   }

   // sign of step
   if (sign == 0) {
      logstep = kFALSE;
      rmag = 0;
      mag = 0;
   } else {
      sign = (sign > 0) ? 1 : -1;
   }
   // add/multiply step
   switch (fNumStyle) {
   case kNESInteger:
   case kNESRealOne:
   case kNESRealTwo:
   case kNESRealThree:
   case kNESRealFour:
      {
         l = logstep ? Round(l * rmag) : Round(l + rmag);
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         if ((l < 0) && (fNumAttr == kNEANonNegative))
            l = 0;
         if ((l <= 0) && (fNumAttr == kNEAPositive))
            l = 1;
         break;
      }
   case kNESReal:
      {
         IncreaseReal(ri, rmag, logstep, fNumLimits, fNumMin, fNumMax);
         if (((fNumAttr == kNEANonNegative) ||
              (fNumAttr == kNEAPositive)) && (ri.fSign < 0)) {
            ri.fIntNum = 0;
            ri.fFracNum = 0;
            ri.fExpoNum = 0;
            ri.fSign = 1;
         }
         break;
      }
   case kNESDegree:
      {
         if (mag > 60)
            l += sign * 36 * mag;
         else if (mag > 6)
            l += sign * 6 * mag;
         else
            l += sign * mag;
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         if ((l < 0) && (fNumAttr == kNEANonNegative))
            l = 0;
         if ((l <= 0) && (fNumAttr == kNEAPositive))
            l = 1;
         break;
      }
   case kNESHourMinSec:
      {
         if (mag > 60)
            l += sign * 36 * mag;
         else if (mag > 6)
            l += sign * 6 * mag;
         else
            l += sign * mag;
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         if (l < 0)
            l = (24 * 3600) - ((-l) % (24 * 3600));
         if (l > 0)
            l = l % (24 * 3600);
         break;
      }
   case kNESMinSec:
      {
         if (mag > 6)
            l += sign * 6 * mag;
         else
            l += sign * mag;
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         if ((l < 0) && (fNumAttr == kNEANonNegative))
            l = 0;
         if ((l <= 0) && (fNumAttr == kNEAPositive))
            l = 1;
         break;
      }
   case kNESHourMin:
      {
         if (mag > 6)
            l += sign * 6 * mag;
         else
            l += sign * mag;
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         if (l < 0)
            l = (24 * 60) - ((-l) % (24 * 60));
         if (l > 0)
            l = l % (24 * 60);
         break;
      }
   case kNESDayMYear:
   case kNESMDayYear:
      {
         IncreaseDate(l, step, sign);
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         break;
      }
   case kNESHex:
      {
         ULong_t ll = (ULong_t) l;
         if (mag > 500)
            ll += sign * 4096 * mag / 1000;
         else if (mag > 50)
            ll += sign * 256 * mag / 100;
         else if (mag > 5)
            ll += sign * 16 * mag / 10;
         else
            ll += sign * mag;
         l = (Long_t) ll;
         CheckMinMax(l, fNumStyle, fNumLimits, fNumMin, fNumMax);
         break;
      }
   }
   if (fNumStyle != kNESReal) {
      SetIntNumber(l);
   } else {
      char buf[256];
      RealToStr(buf, ri);
      SetText(buf);
   }
}

//______________________________________________________________________________
void TGNumberEntryField::SetFormat(EStyle style, EAttribute attr)
{
   // Set the numerical format.

   Double_t val = GetNumber();
   fNumStyle = style;
   fNumAttr = attr;
   if ((fNumAttr != kNEAAnyNumber) && (val < 0))
      val = 0;
   SetNumber(val);
   // make sure we have a valid number by increasaing it by 0
   IncreaseNumber(kNSSSmall, 0, kFALSE);
}

//______________________________________________________________________________
void TGNumberEntryField::SetLimits(ELimit limits,
                                   Double_t min, Double_t max)
{
   // Set the numerical limits.

   Double_t val = GetNumber();
   fNumLimits = limits;
   fNumMin = min;
   fNumMax = max;
   SetNumber(val);
   // make sure we have a valid number by increasaing it by 0
   IncreaseNumber(kNSSSmall, 0, kFALSE);
}

//______________________________________________________________________________
void TGNumberEntryField::SetState(Bool_t state)
{
   // Set the active state.

   if (!state && fNeedsVerification) {
      // make sure we have a valid number by increasaing it by 0
      IncreaseNumber(kNSSSmall, 0, kFALSE);
   }
   TGTextEntry::SetState(state);
}

//______________________________________________________________________________
Bool_t TGNumberEntryField::HandleKey(Event_t * event)
{
   // Handle keys.

   if (!IsEnabled()) {
      return TGTextEntry::HandleKey(event);
   }

   Int_t n;
   char tmp[10];
   UInt_t keysym;
   gVirtualX->LookupString(event, tmp, sizeof(tmp), keysym);
   n = strlen(tmp);

   // intercept up key
   if ((EKeySym) keysym == kKey_Up) {
      // Get log step / alt key
      Bool_t logstep = fStepLog;
      if (event->fState & kKeyMod1Mask)
         logstep = !logstep;
      // shift-cntrl-up
      if ((event->fState & kKeyShiftMask) &&
          (event->fState & kKeyControlMask)) {
         IncreaseNumber(kNSSHuge, 1, logstep);
      }
      // cntrl-up
      else if (event->fState & kKeyControlMask) {
         IncreaseNumber(kNSSLarge, 1, logstep);

      }
      // shift-up
      else if (event->fState & kKeyShiftMask) {
         IncreaseNumber(kNSSMedium, 1, logstep);
      }

      // up
      else {
         IncreaseNumber(kNSSSmall, 1, logstep);
      }
      return kTRUE;
   }
   // intercept down key
   else if ((EKeySym) keysym == kKey_Down) {
      // Get log step / alt key
      Bool_t logstep = fStepLog;
      if (event->fState & kKeyMod1Mask)
         logstep = !logstep;
      // shift-cntrl-down
      if ((event->fState & kKeyShiftMask) &&
          (event->fState & kKeyControlMask)) {
         IncreaseNumber(kNSSHuge, -1, logstep);
      }
      // cntrl-down
      else if (event->fState & kKeyControlMask) {
         IncreaseNumber(kNSSLarge, -1, logstep);
      }
      // shift-down
      else if (event->fState & kKeyShiftMask) {
         IncreaseNumber(kNSSMedium, -1, logstep);
      }
      // down
      else {
         IncreaseNumber(kNSSSmall, -1, logstep);
      }
      return kTRUE;
   }
   // intercept printable characters
   else if (n && (keysym < 127) && (keysym >= 32) &&
            ((EKeySym) keysym != kKey_Delete) &&
            ((EKeySym) keysym != kKey_Backspace) &&
            ((event->fState & kKeyControlMask) == 0)) {
      if (IsGoodChar(tmp[0], fNumStyle, fNumAttr)) {
         return TGTextEntry::HandleKey(event);
      } else {
         return kTRUE;
      }
   }
   // otherwise use default behaviour
   else {
      return TGTextEntry::HandleKey(event);
   }
}

//______________________________________________________________________________
Bool_t TGNumberEntryField::HandleFocusChange(Event_t * event)
{
   // Handle focus change.

   if (IsEnabled() && fNeedsVerification &&
       (event->fCode == kNotifyNormal) &&
       (event->fState != kNotifyPointer) && (event->fType == kFocusOut)) {
      // make sure we have a valid number by increasing it by 0
      IncreaseNumber(kNSSSmall, 0, kFALSE);
   }

   return TGTextEntry::HandleFocusChange(event);
}

//______________________________________________________________________________
void TGNumberEntryField::TextChanged(const char *text)
{
   // Text has changed message.

   TGTextEntry::TextChanged(text);
   fNeedsVerification = kTRUE;
}

//______________________________________________________________________________
void TGNumberEntryField::ReturnPressed()
{
   // Return was pressed.

   TString instr, outstr;
   instr = TGTextEntry::GetBuffer()->GetString();

   if (fNeedsVerification) {
      // make sure we have a valid number by increasing it by 0
      IncreaseNumber(kNSSSmall, 0, kFALSE);
   }
   outstr = TGTextEntry::GetBuffer()->GetString();
   if (instr != outstr) {
      InvalidInput(instr);
      gVirtualX->Bell(0);
   }
   TGTextEntry::ReturnPressed();
}

//______________________________________________________________________________
void TGNumberEntryField::Layout()
{
   // Layout.

   if (GetAlignment() == kTextRight) {
      End(kFALSE);
   } else {
      Home(kFALSE);
   }
}

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGNumberEntryLayout                                                  //
//                                                                      //
// Layout manager for number entry widget                               //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


//______________________________________________________________________________
void TGNumberEntryLayout::Layout()
{
   // Layout the internal GUI elements in use.

   if (fBox == 0) {
      return;
   }
   UInt_t w = fBox->GetWidth();
   UInt_t h = fBox->GetHeight();
   UInt_t upw = 2 * h / 3;
   UInt_t uph = h / 2;
   Int_t upx = (w > h) ? (Int_t) w - (Int_t) upw : -1000;
   Int_t upy = 0;
   Int_t downx = (w > h) ? (Int_t) w - (Int_t) upw : -1000;
   Int_t downy = h / 2;
   UInt_t downw = upw;
   UInt_t downh = h - downy;
   UInt_t numw = (w > h) ? w - upw : w;
   UInt_t numh = h;
   if (fBox->GetNumberEntry())
      fBox->GetNumberEntry()->MoveResize(0, 0, numw, numh);
   if (fBox->GetButtonUp())
      fBox->GetButtonUp()->MoveResize(upx, upy, upw, uph);
   if (fBox->GetButtonDown())
      fBox->GetButtonDown()->MoveResize(downx, downy, downw, downh);
}

//______________________________________________________________________________
TGDimension TGNumberEntryLayout::GetDefaultSize() const
{
   // Return the default size of the numeric control box.

   return fBox->GetSize();
}



//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TRepeatTimer                                                         //
//                                                                      //
// Timer for numeric control box buttons.                               //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

class TGRepeatFireButton;

//______________________________________________________________________________
class TRepeatTimer : public TTimer {
private:
   TGRepeatFireButton *fButton;  // Fire button

public:
   TRepeatTimer(TGRepeatFireButton * button, Long_t ms)
    : TTimer(ms, kTRUE), fButton(button) { }
   virtual Bool_t Notify();
};



//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TRepeatFireButton                                                    //
//                                                                      //
// Picture button which fires repeatly as long as the button is pressed //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

//______________________________________________________________________________
class TGRepeatFireButton : public TGPictureButton {
protected:
   TRepeatTimer             *fTimer;           // the timer
   Int_t                     fIgnoreNextFire;  // flag for skipping next
   TGNumberFormat::EStepSize fStep;            // increment/decrement step
   Bool_t                    fStepLog;         // logarithmic step flag
   Bool_t                    fDoLogStep;       // flag for using logarithmic step

   Bool_t IsEditableParent();

public:
   TGRepeatFireButton(const TGWindow *p, const TGPicture *pic,
                      Int_t id, Bool_t logstep)
    : TGPictureButton(p, pic, id), fTimer(0), fIgnoreNextFire(0),
       fStep(TGNumberFormat::kNSSSmall), fStepLog(logstep), fDoLogStep(logstep) 
       { fEditDisabled = kEditDisable | kEditDisableGrab; }
   virtual ~TGRepeatFireButton() { delete fTimer; }

   virtual  Bool_t HandleButton(Event_t *event);
            void   FireButton();
   virtual  void   SetLogStep(Bool_t on = kTRUE) { fStepLog = on; }
};

//______________________________________________________________________________
Bool_t TGRepeatFireButton::IsEditableParent()
{
   // Return kTRUE if one of the parents is in edit mode.

   TGWindow *parent = (TGWindow*)GetParent();

   while (parent && (parent != fClient->GetDefaultRoot())) {
      if (parent->IsEditable()) {
         return kTRUE;
      }
      parent = (TGWindow*)parent->GetParent();
   }
   return kFALSE;
}

//______________________________________________________________________________
Bool_t TGRepeatFireButton::HandleButton(Event_t * event)
{
   // Handle messages for number entry widget according to the user input.

   const Int_t t0 = 200;
   if (fTip)
      fTip->Hide();

   // disable button handling while guibuilding
   if (IsEditableParent()) {
      return kTRUE;
   }

   if (fState == kButtonDisabled)
      return kTRUE;

   if (event->fType == kButtonPress) {
      // Get log step / alt key
      fDoLogStep = fStepLog;
      if (event->fState & kKeyMod1Mask)
         fDoLogStep = !fDoLogStep;
      if ((event->fState & kKeyShiftMask) &&
          (event->fState & kKeyControlMask)) {
         fStep = TGNumberFormat::kNSSHuge;
      } else if (event->fState & kKeyControlMask) {
         fStep = TGNumberFormat::kNSSLarge;
      } else if (event->fState & kKeyShiftMask) {
         fStep = TGNumberFormat::kNSSMedium;
      } else {
         fStep = TGNumberFormat::kNSSSmall;
      }
      SetState(kButtonDown);
      fIgnoreNextFire = 0;
      FireButton();
      fIgnoreNextFire = 2;

      if (fTimer == 0) {
         fTimer = new TRepeatTimer(this, t0);
      }
      fTimer->Reset();
      gSystem->AddTimer(fTimer);
   } else {
      SetState(kButtonUp);
      if (fTimer != 0) {
         fTimer->Remove();
         fTimer->SetTime(t0);
      }
   }

   return kTRUE;
}

//______________________________________________________________________________
void TGRepeatFireButton::FireButton()
{
   // Process messages for fire button.

   if (fIgnoreNextFire <= 0) {
      SendMessage(fMsgWindow, MK_MSG(kC_COMMAND, kCM_BUTTON),
                  fWidgetId, (Long_t) fStep + (fDoLogStep ? 100 : 0));
   } else {
      fIgnoreNextFire--;
   }
}

//______________________________________________________________________________
Bool_t TRepeatTimer::Notify()
{
   // Notify when timer times out and reset the timer.

   fButton->FireButton();
   Reset();
   if ((long)fTime>20) fTime -= 10;
   return kFALSE;
}

//______________________________________________________________________________
TGNumberEntry::TGNumberEntry(const TGWindow *parent,
                             Double_t val, Int_t wdigits, Int_t id,
                             EStyle style,
                             EAttribute attr,
                             ELimit limits, Double_t min, Double_t max)
 : TGCompositeFrame(parent, 10 * wdigits, 25), fButtonToNum(kTRUE)
{
   // Constructs a numeric entry widget.

   fWidgetId  = id;
   fMsgWindow = parent;
   fPicUp = fClient->GetPicture("arrow_up.xpm");
   if (!fPicUp)
      Error("TGNumberEntry", "arrow_up.xpm not found");
   fPicDown = fClient->GetPicture("arrow_down.xpm");
   if (!fPicDown)
      Error("TGNumberEntry", "arrow_down.xpm not found");

   // create gui elements
   fNumericEntry = new TGNumberEntryField(this, id, val, style, attr,
                                          limits, min, max);
   fNumericEntry->Connect("ReturnPressed()", "TGNumberEntry", this, "ValueSet(Long_t)");
   fNumericEntry->Associate(fMsgWindow);
   AddFrame(fNumericEntry, 0);
   fButtonUp = new TGRepeatFireButton(this, fPicUp, 1,
                                      fNumericEntry->IsLogStep());
   fButtonUp->Associate(this);
   AddFrame(fButtonUp, 0);
   fButtonDown = new TGRepeatFireButton(this, fPicDown, 2,
                                        fNumericEntry->IsLogStep());
   fButtonDown->Associate(this);
   AddFrame(fButtonDown, 0);

   // resize
   Int_t h = fNumericEntry->GetDefaultHeight();
   Int_t charw = fNumericEntry->GetCharWidth("0123456789");
   Int_t w = charw * TMath::Abs(wdigits) / 10 + 8 + 2 * h / 3;
   SetLayoutManager(new TGNumberEntryLayout(this));
   MapSubwindows();
   Resize(w, h);
   fEditDisabled = kEditDisableLayout | kEditDisableHeight;
}

//______________________________________________________________________________
TGNumberEntry::~TGNumberEntry()
{
   // Destructs a numeric entry widget.

   gClient->FreePicture(fPicUp);
   gClient->FreePicture(fPicDown);

   Cleanup();
}

//______________________________________________________________________________
void TGNumberEntry::Associate(const TGWindow *w)
{
   // Make w the window that will receive the generated messages.

   TGWidget::Associate(w);
   fNumericEntry->Associate(w);
}

//______________________________________________________________________________
void TGNumberEntry::SetLogStep(Bool_t on)
{
   // Set log steps.

   fNumericEntry->SetLogStep(on);
   ((TGRepeatFireButton *) fButtonUp)->SetLogStep(fNumericEntry->IsLogStep());
   ((TGRepeatFireButton *) fButtonDown)->SetLogStep(fNumericEntry->IsLogStep());
}

//______________________________________________________________________________
void TGNumberEntry::SetState(Bool_t enable)
{
   // Set the active state.

   if (enable) {
      fButtonUp->SetState(kButtonUp);
      fButtonDown->SetState(kButtonUp);
      fNumericEntry->SetState(kTRUE);
   } else {
      fButtonUp->SetState(kButtonDisabled);
      fButtonDown->SetState(kButtonDisabled);
      fNumericEntry->SetState(kFALSE);
   }
}

//______________________________________________________________________________
void TGNumberEntry::SetButtonToNum(Bool_t state)
{
   // Send button messages to the number field (true) or parent widget (false).
   // When the message is sent to the parent widget, it is responsible to change
   // the numerical value accordingly. This can be useful to implement cursors
   // which move from data point to data point. For the message being sent
   // see ProcessMessage().

   fButtonToNum = state;
}

//______________________________________________________________________________
Bool_t TGNumberEntry::ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2)
{
   // Process the up/down button messages. If fButtonToNum is false the
   // following message is sent: kC_COMMAND, kCM_BUTTON, widget id, param
   // param % 100 is the step size
   // param % 10000 / 100 != 0 indicates log step
   // param / 10000 != 0 indicates button down

   switch (GET_MSG(msg)) {
   case kC_COMMAND:
      {
         if ((GET_SUBMSG(msg) == kCM_BUTTON) &&
             (parm1 >= 1) && (parm1 <= 2)) {
            if (fButtonToNum) {
               Int_t sign = (parm1 == 1) ? 1 : -1;
               EStepSize step = (EStepSize) (parm2 % 100);
               Bool_t logstep = (parm2 >= 100);
               fNumericEntry->IncreaseNumber(step, sign, logstep);
            } else {
               SendMessage(fMsgWindow, msg, fWidgetId,
                           10000 * (parm1 - 1) + parm2);
               ValueChanged(10000 * (parm1 - 1) + parm2);
            }
         // Emit a signal needed by pad editor
         ValueSet(10000 * (parm1 - 1) + parm2);
         }
         break;
      }
   }
   return kTRUE;
}


//______________________________________________________________________________
TGLayoutManager *TGNumberEntry::GetLayoutManager() const
{
   // Return layout manager.

   TGNumberEntry *entry = (TGNumberEntry*)this;

   if (entry->fLayoutManager->IsA() != TGNumberEntryLayout::Class()) {
      entry->SetLayoutManager(new TGNumberEntryLayout(entry));
   }

   return entry->fLayoutManager;
}

//______________________________________________________________________________
void TGNumberEntry::ValueChanged(Long_t val)
{
   // Emit ValueChanged(Long_t) signal. This signal is emitted when
   // fButtonToNum is false. The val has the following meaning:
   // val % 100 is the step size
   // val % 10000 / 100 != 0 indicates log step
   // val / 10000 != 0 indicates button down

   Emit("ValueChanged(Long_t)", val);
}

//______________________________________________________________________________
void TGNumberEntry::ValueSet(Long_t val)
{
   // Emit ValueSet(Long_t) signal. This signal is emitted when the
   // number entry value is changed. The val has the following meaning:
   // val % 100 is the step size
   // val % 10000 / 100 != 0 indicates log step
   // val / 10000 != 0 indicates button down

   Emit("ValueSet(Long_t)", val);
}

//______________________________________________________________________________
void TGNumberEntry::SavePrimitive(ostream &out, Option_t * /*= ""*/)
{
   // Save a number entry widget as a C++ statement(s) on output stream out.

   char quote = '"';

   // to calculate the digits parameter
   Int_t w = fNumericEntry->GetWidth();
   Int_t h = fNumericEntry->GetHeight();
   Int_t charw  = fNumericEntry->GetCharWidth("0123456789");
   Int_t digits = (30*w - 240 -20*h)/(3*charw) + 3;

   // for time format
   Int_t hour, min, sec;
   GetTime(hour, min, sec);

   // for date format
   Int_t yy, mm, dd;
   GetDate(yy, mm, dd);

   out << "   TGNumberEntry *";
   out << GetName() << " = new TGNumberEntry(" << fParent->GetName() << ", (Double_t) ";
   switch (GetNumStyle()){
      case kNESInteger:
         out << GetIntNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealOne:
         out << GetNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealTwo:
         out << GetNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealThree:
         out << GetNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealFour:
         out << GetNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESReal:
         out << GetNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESDegree:
         out << GetIntNumber() << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESMinSec:
         out << min*60 + sec << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHourMin:
         out << hour*60 + min << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHourMinSec:
         out << hour*3600 + min*60 + sec << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESDayMYear:
         out << yy << mm << dd << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESMDayYear:
         out << yy << mm << dd << "," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHex:
      {  char hex[150];
         ULong_t l = GetHexNumber();
         IntToHexStr(hex, l);
         out << "0x" << hex << "U," << digits << "," << WidgetId()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      }
   }
   if (GetNumMax() ==1) {
      if (GetNumMin() == 0) {
         if (GetNumLimits() == kNELNoLimits) {
            if (GetNumAttr() == kNEAAnyNumber) {
               out << ");" << endl;
            } else {
               out << ",(TGNumberFormat::EAttribute) " << GetNumAttr() << ");" << endl;
            }
         } else {
            out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
                << ",(TGNumberFormat::ELimit) " << GetNumLimits() << ");" << endl;
         }
      } else {
         out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
             << ",(TGNumberFormat::ELimit) " << GetNumLimits()
             << "," << GetNumMin() << ");" << endl;
      }
   } else {
         out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
             << ",(TGNumberFormat::ELimit) " << GetNumLimits()
             << "," << GetNumMin() << "," << GetNumMax() << ");" << endl;
   }
   if (fButtonDown->GetState() == kButtonDisabled)
      out << "   " << GetName() << "->SetState(kFALSE);" << endl;

   TGToolTip *tip = GetNumberEntry()->GetToolTip();
   if (tip) {
      TString tiptext = tip->GetText()->GetString();
      tiptext.ReplaceAll("\n", "\\n");
      out << "   ";
      out << GetName() << "->GetNumberEntry()->SetToolTipText(" << quote
          << tiptext << quote << ");"  << endl;
   }
}

//______________________________________________________________________________
void TGNumberEntryField::SavePrimitive(ostream &out, Option_t * /*= ""*/)
{
   // Save a number entry widget as a C++ statement(s) on output stream out.

   char quote = '"';

   // for time format
   Int_t hour, min, sec;
   GetTime(hour, min, sec);

   // for date format
   Int_t yy, mm, dd;
   GetDate(yy, mm, dd);

   out << "   TGNumberEntryField *";
   out << GetName() << " = new TGNumberEntryField(" << fParent->GetName()
       << ", " << WidgetId() << ", (Double_t) ";
   switch (GetNumStyle()){
      case kNESInteger:
         out << GetIntNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealOne:
         out << GetNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealTwo:
         out << GetNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealThree:
         out << GetNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESRealFour:
         out << GetNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESReal:
         out << GetNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESDegree:
         out << GetIntNumber()
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESMinSec:
         out << min*60 + sec
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHourMin:
         out << hour*60 + min
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHourMinSec:
         out << hour*3600 + min*60 + sec
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESDayMYear:
         out << yy << mm << dd
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESMDayYear:
         out << yy << mm << dd
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      case kNESHex:
      {  char hex[150];
         ULong_t l = GetHexNumber();
         IntToHexStr(hex, l);
         out << "0x" << hex << "U"
             << ",(TGNumberFormat::EStyle) " << GetNumStyle();
         break;
      }
   }
   if (GetNumMax() ==1) {
      if (GetNumMin() == 0) {
         if (GetNumLimits() == kNELNoLimits) {
            if (GetNumAttr() == kNEAAnyNumber) {
               out << ");" << endl;
            } else {
               out << ",(TGNumberFormat::EAttribute) " << GetNumAttr() << ");" << endl;
            }
         } else {
            out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
                << ",(TGNumberFormat::ELimit) " << GetNumLimits() << ");" << endl;
         }
      } else {
         out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
             << ",(TGNumberFormat::ELimit) " << GetNumLimits()
             << "," << GetNumMin() << ");" << endl;
      }
   } else {
         out << ",(TGNumberFormat::EAttribute) " << GetNumAttr()
             << ",(TGNumberFormat::ELimit) " << GetNumLimits()
             << "," << GetNumMin() << "," << GetNumMax() << ");" << endl;
   }
   if (!IsEnabled())
      out << "   " << GetName() << "->SetState(kFALSE);" << endl;

   out << "   " << GetName() << "->Resize("<< GetWidth() << "," << GetName()
       << "->GetDefaultHeight());" << endl;

   TGToolTip *tip = GetToolTip();
   if (tip) {
      TString tiptext = tip->GetText()->GetString();
      tiptext.ReplaceAll("\n", "\\n");
      out << "   ";
      out << GetName() << "->SetToolTipText(" << quote
          << tiptext << quote << ");"  << endl;
   }
}
 TGNumberEntry.cxx:1
 TGNumberEntry.cxx:2
 TGNumberEntry.cxx:3
 TGNumberEntry.cxx:4
 TGNumberEntry.cxx:5
 TGNumberEntry.cxx:6
 TGNumberEntry.cxx:7
 TGNumberEntry.cxx:8
 TGNumberEntry.cxx:9
 TGNumberEntry.cxx:10
 TGNumberEntry.cxx:11
 TGNumberEntry.cxx:12
 TGNumberEntry.cxx:13
 TGNumberEntry.cxx:14
 TGNumberEntry.cxx:15
 TGNumberEntry.cxx:16
 TGNumberEntry.cxx:17
 TGNumberEntry.cxx:18
 TGNumberEntry.cxx:19
 TGNumberEntry.cxx:20
 TGNumberEntry.cxx:21
 TGNumberEntry.cxx:22
 TGNumberEntry.cxx:23
 TGNumberEntry.cxx:24
 TGNumberEntry.cxx:25
 TGNumberEntry.cxx:26
 TGNumberEntry.cxx:27
 TGNumberEntry.cxx:28
 TGNumberEntry.cxx:29
 TGNumberEntry.cxx:30
 TGNumberEntry.cxx:31
 TGNumberEntry.cxx:32
 TGNumberEntry.cxx:33
 TGNumberEntry.cxx:34
 TGNumberEntry.cxx:35
 TGNumberEntry.cxx:36
 TGNumberEntry.cxx:37
 TGNumberEntry.cxx:38
 TGNumberEntry.cxx:39
 TGNumberEntry.cxx:40
 TGNumberEntry.cxx:41
 TGNumberEntry.cxx:42
 TGNumberEntry.cxx:43
 TGNumberEntry.cxx:44
 TGNumberEntry.cxx:45
 TGNumberEntry.cxx:46
 TGNumberEntry.cxx:47
 TGNumberEntry.cxx:48
 TGNumberEntry.cxx:49
 TGNumberEntry.cxx:50
 TGNumberEntry.cxx:51
 TGNumberEntry.cxx:52
 TGNumberEntry.cxx:53
 TGNumberEntry.cxx:54
 TGNumberEntry.cxx:55
 TGNumberEntry.cxx:56
 TGNumberEntry.cxx:57
 TGNumberEntry.cxx:58
 TGNumberEntry.cxx:59
 TGNumberEntry.cxx:60
 TGNumberEntry.cxx:61
 TGNumberEntry.cxx:62
 TGNumberEntry.cxx:63
 TGNumberEntry.cxx:64
 TGNumberEntry.cxx:65
 TGNumberEntry.cxx:66
 TGNumberEntry.cxx:67
 TGNumberEntry.cxx:68
 TGNumberEntry.cxx:69
 TGNumberEntry.cxx:70
 TGNumberEntry.cxx:71
 TGNumberEntry.cxx:72
 TGNumberEntry.cxx:73
 TGNumberEntry.cxx:74
 TGNumberEntry.cxx:75
 TGNumberEntry.cxx:76
 TGNumberEntry.cxx:77
 TGNumberEntry.cxx:78
 TGNumberEntry.cxx:79
 TGNumberEntry.cxx:80
 TGNumberEntry.cxx:81
 TGNumberEntry.cxx:82
 TGNumberEntry.cxx:83
 TGNumberEntry.cxx:84
 TGNumberEntry.cxx:85
 TGNumberEntry.cxx:86
 TGNumberEntry.cxx:87
 TGNumberEntry.cxx:88
 TGNumberEntry.cxx:89
 TGNumberEntry.cxx:90
 TGNumberEntry.cxx:91
 TGNumberEntry.cxx:92
 TGNumberEntry.cxx:93
 TGNumberEntry.cxx:94
 TGNumberEntry.cxx:95
 TGNumberEntry.cxx:96
 TGNumberEntry.cxx:97
 TGNumberEntry.cxx:98
 TGNumberEntry.cxx:99
 TGNumberEntry.cxx:100
 TGNumberEntry.cxx:101
 TGNumberEntry.cxx:102
 TGNumberEntry.cxx:103
 TGNumberEntry.cxx:104
 TGNumberEntry.cxx:105
 TGNumberEntry.cxx:106
 TGNumberEntry.cxx:107
 TGNumberEntry.cxx:108
 TGNumberEntry.cxx:109
 TGNumberEntry.cxx:110
 TGNumberEntry.cxx:111
 TGNumberEntry.cxx:112
 TGNumberEntry.cxx:113
 TGNumberEntry.cxx:114
 TGNumberEntry.cxx:115
 TGNumberEntry.cxx:116
 TGNumberEntry.cxx:117
 TGNumberEntry.cxx:118
 TGNumberEntry.cxx:119
 TGNumberEntry.cxx:120
 TGNumberEntry.cxx:121
 TGNumberEntry.cxx:122
 TGNumberEntry.cxx:123
 TGNumberEntry.cxx:124
 TGNumberEntry.cxx:125
 TGNumberEntry.cxx:126
 TGNumberEntry.cxx:127
 TGNumberEntry.cxx:128
 TGNumberEntry.cxx:129
 TGNumberEntry.cxx:130
 TGNumberEntry.cxx:131
 TGNumberEntry.cxx:132
 TGNumberEntry.cxx:133
 TGNumberEntry.cxx:134
 TGNumberEntry.cxx:135
 TGNumberEntry.cxx:136
 TGNumberEntry.cxx:137
 TGNumberEntry.cxx:138
 TGNumberEntry.cxx:139
 TGNumberEntry.cxx:140
 TGNumberEntry.cxx:141
 TGNumberEntry.cxx:142
 TGNumberEntry.cxx:143
 TGNumberEntry.cxx:144
 TGNumberEntry.cxx:145
 TGNumberEntry.cxx:146
 TGNumberEntry.cxx:147
 TGNumberEntry.cxx:148
 TGNumberEntry.cxx:149
 TGNumberEntry.cxx:150
 TGNumberEntry.cxx:151
 TGNumberEntry.cxx:152
 TGNumberEntry.cxx:153
 TGNumberEntry.cxx:154
 TGNumberEntry.cxx:155
 TGNumberEntry.cxx:156
 TGNumberEntry.cxx:157
 TGNumberEntry.cxx:158
 TGNumberEntry.cxx:159
 TGNumberEntry.cxx:160
 TGNumberEntry.cxx:161
 TGNumberEntry.cxx:162
 TGNumberEntry.cxx:163
 TGNumberEntry.cxx:164
 TGNumberEntry.cxx:165
 TGNumberEntry.cxx:166
 TGNumberEntry.cxx:167
 TGNumberEntry.cxx:168
 TGNumberEntry.cxx:169
 TGNumberEntry.cxx:170
 TGNumberEntry.cxx:171
 TGNumberEntry.cxx:172
 TGNumberEntry.cxx:173
 TGNumberEntry.cxx:174
 TGNumberEntry.cxx:175
 TGNumberEntry.cxx:176
 TGNumberEntry.cxx:177
 TGNumberEntry.cxx:178
 TGNumberEntry.cxx:179
 TGNumberEntry.cxx:180
 TGNumberEntry.cxx:181
 TGNumberEntry.cxx:182
 TGNumberEntry.cxx:183
 TGNumberEntry.cxx:184
 TGNumberEntry.cxx:185
 TGNumberEntry.cxx:186
 TGNumberEntry.cxx:187
 TGNumberEntry.cxx:188
 TGNumberEntry.cxx:189
 TGNumberEntry.cxx:190
 TGNumberEntry.cxx:191
 TGNumberEntry.cxx:192
 TGNumberEntry.cxx:193
 TGNumberEntry.cxx:194
 TGNumberEntry.cxx:195
 TGNumberEntry.cxx:196
 TGNumberEntry.cxx:197
 TGNumberEntry.cxx:198
 TGNumberEntry.cxx:199
 TGNumberEntry.cxx:200
 TGNumberEntry.cxx:201
 TGNumberEntry.cxx:202
 TGNumberEntry.cxx:203
 TGNumberEntry.cxx:204
 TGNumberEntry.cxx:205
 TGNumberEntry.cxx:206
 TGNumberEntry.cxx:207
 TGNumberEntry.cxx:208
 TGNumberEntry.cxx:209
 TGNumberEntry.cxx:210
 TGNumberEntry.cxx:211
 TGNumberEntry.cxx:212
 TGNumberEntry.cxx:213
 TGNumberEntry.cxx:214
 TGNumberEntry.cxx:215
 TGNumberEntry.cxx:216
 TGNumberEntry.cxx:217
 TGNumberEntry.cxx:218
 TGNumberEntry.cxx:219
 TGNumberEntry.cxx:220
 TGNumberEntry.cxx:221
 TGNumberEntry.cxx:222
 TGNumberEntry.cxx:223
 TGNumberEntry.cxx:224
 TGNumberEntry.cxx:225
 TGNumberEntry.cxx:226
 TGNumberEntry.cxx:227
 TGNumberEntry.cxx:228
 TGNumberEntry.cxx:229
 TGNumberEntry.cxx:230
 TGNumberEntry.cxx:231
 TGNumberEntry.cxx:232
 TGNumberEntry.cxx:233
 TGNumberEntry.cxx:234
 TGNumberEntry.cxx:235
 TGNumberEntry.cxx:236
 TGNumberEntry.cxx:237
 TGNumberEntry.cxx:238
 TGNumberEntry.cxx:239
 TGNumberEntry.cxx:240
 TGNumberEntry.cxx:241
 TGNumberEntry.cxx:242
 TGNumberEntry.cxx:243
 TGNumberEntry.cxx:244
 TGNumberEntry.cxx:245
 TGNumberEntry.cxx:246
 TGNumberEntry.cxx:247
 TGNumberEntry.cxx:248
 TGNumberEntry.cxx:249
 TGNumberEntry.cxx:250
 TGNumberEntry.cxx:251
 TGNumberEntry.cxx:252
 TGNumberEntry.cxx:253
 TGNumberEntry.cxx:254
 TGNumberEntry.cxx:255
 TGNumberEntry.cxx:256
 TGNumberEntry.cxx:257
 TGNumberEntry.cxx:258
 TGNumberEntry.cxx:259
 TGNumberEntry.cxx:260
 TGNumberEntry.cxx:261
 TGNumberEntry.cxx:262
 TGNumberEntry.cxx:263
 TGNumberEntry.cxx:264
 TGNumberEntry.cxx:265
 TGNumberEntry.cxx:266
 TGNumberEntry.cxx:267
 TGNumberEntry.cxx:268
 TGNumberEntry.cxx:269
 TGNumberEntry.cxx:270
 TGNumberEntry.cxx:271
 TGNumberEntry.cxx:272
 TGNumberEntry.cxx:273
 TGNumberEntry.cxx:274
 TGNumberEntry.cxx:275
 TGNumberEntry.cxx:276
 TGNumberEntry.cxx:277
 TGNumberEntry.cxx:278
 TGNumberEntry.cxx:279
 TGNumberEntry.cxx:280
 TGNumberEntry.cxx:281
 TGNumberEntry.cxx:282
 TGNumberEntry.cxx:283
 TGNumberEntry.cxx:284
 TGNumberEntry.cxx:285
 TGNumberEntry.cxx:286
 TGNumberEntry.cxx:287
 TGNumberEntry.cxx:288
 TGNumberEntry.cxx:289
 TGNumberEntry.cxx:290
 TGNumberEntry.cxx:291
 TGNumberEntry.cxx:292
 TGNumberEntry.cxx:293
 TGNumberEntry.cxx:294
 TGNumberEntry.cxx:295
 TGNumberEntry.cxx:296
 TGNumberEntry.cxx:297
 TGNumberEntry.cxx:298
 TGNumberEntry.cxx:299
 TGNumberEntry.cxx:300
 TGNumberEntry.cxx:301
 TGNumberEntry.cxx:302
 TGNumberEntry.cxx:303
 TGNumberEntry.cxx:304
 TGNumberEntry.cxx:305
 TGNumberEntry.cxx:306
 TGNumberEntry.cxx:307
 TGNumberEntry.cxx:308
 TGNumberEntry.cxx:309
 TGNumberEntry.cxx:310
 TGNumberEntry.cxx:311
 TGNumberEntry.cxx:312
 TGNumberEntry.cxx:313
 TGNumberEntry.cxx:314
 TGNumberEntry.cxx:315
 TGNumberEntry.cxx:316
 TGNumberEntry.cxx:317
 TGNumberEntry.cxx:318
 TGNumberEntry.cxx:319
 TGNumberEntry.cxx:320
 TGNumberEntry.cxx:321
 TGNumberEntry.cxx:322
 TGNumberEntry.cxx:323
 TGNumberEntry.cxx:324
 TGNumberEntry.cxx:325
 TGNumberEntry.cxx:326
 TGNumberEntry.cxx:327
 TGNumberEntry.cxx:328
 TGNumberEntry.cxx:329
 TGNumberEntry.cxx:330
 TGNumberEntry.cxx:331
 TGNumberEntry.cxx:332
 TGNumberEntry.cxx:333
 TGNumberEntry.cxx:334
 TGNumberEntry.cxx:335
 TGNumberEntry.cxx:336
 TGNumberEntry.cxx:337
 TGNumberEntry.cxx:338
 TGNumberEntry.cxx:339
 TGNumberEntry.cxx:340
 TGNumberEntry.cxx:341
 TGNumberEntry.cxx:342
 TGNumberEntry.cxx:343
 TGNumberEntry.cxx:344
 TGNumberEntry.cxx:345
 TGNumberEntry.cxx:346
 TGNumberEntry.cxx:347
 TGNumberEntry.cxx:348
 TGNumberEntry.cxx:349
 TGNumberEntry.cxx:350
 TGNumberEntry.cxx:351
 TGNumberEntry.cxx:352
 TGNumberEntry.cxx:353
 TGNumberEntry.cxx:354
 TGNumberEntry.cxx:355
 TGNumberEntry.cxx:356
 TGNumberEntry.cxx:357
 TGNumberEntry.cxx:358
 TGNumberEntry.cxx:359
 TGNumberEntry.cxx:360
 TGNumberEntry.cxx:361
 TGNumberEntry.cxx:362
 TGNumberEntry.cxx:363
 TGNumberEntry.cxx:364
 TGNumberEntry.cxx:365
 TGNumberEntry.cxx:366
 TGNumberEntry.cxx:367
 TGNumberEntry.cxx:368
 TGNumberEntry.cxx:369
 TGNumberEntry.cxx:370
 TGNumberEntry.cxx:371
 TGNumberEntry.cxx:372
 TGNumberEntry.cxx:373
 TGNumberEntry.cxx:374
 TGNumberEntry.cxx:375
 TGNumberEntry.cxx:376
 TGNumberEntry.cxx:377
 TGNumberEntry.cxx:378
 TGNumberEntry.cxx:379
 TGNumberEntry.cxx:380
 TGNumberEntry.cxx:381
 TGNumberEntry.cxx:382
 TGNumberEntry.cxx:383
 TGNumberEntry.cxx:384
 TGNumberEntry.cxx:385
 TGNumberEntry.cxx:386
 TGNumberEntry.cxx:387
 TGNumberEntry.cxx:388
 TGNumberEntry.cxx:389
 TGNumberEntry.cxx:390
 TGNumberEntry.cxx:391
 TGNumberEntry.cxx:392
 TGNumberEntry.cxx:393
 TGNumberEntry.cxx:394
 TGNumberEntry.cxx:395
 TGNumberEntry.cxx:396
 TGNumberEntry.cxx:397
 TGNumberEntry.cxx:398
 TGNumberEntry.cxx:399
 TGNumberEntry.cxx:400
 TGNumberEntry.cxx:401
 TGNumberEntry.cxx:402
 TGNumberEntry.cxx:403
 TGNumberEntry.cxx:404
 TGNumberEntry.cxx:405
 TGNumberEntry.cxx:406
 TGNumberEntry.cxx:407
 TGNumberEntry.cxx:408
 TGNumberEntry.cxx:409
 TGNumberEntry.cxx:410
 TGNumberEntry.cxx:411
 TGNumberEntry.cxx:412
 TGNumberEntry.cxx:413
 TGNumberEntry.cxx:414
 TGNumberEntry.cxx:415
 TGNumberEntry.cxx:416
 TGNumberEntry.cxx:417
 TGNumberEntry.cxx:418
 TGNumberEntry.cxx:419
 TGNumberEntry.cxx:420
 TGNumberEntry.cxx:421
 TGNumberEntry.cxx:422
 TGNumberEntry.cxx:423
 TGNumberEntry.cxx:424
 TGNumberEntry.cxx:425
 TGNumberEntry.cxx:426
 TGNumberEntry.cxx:427
 TGNumberEntry.cxx:428
 TGNumberEntry.cxx:429
 TGNumberEntry.cxx:430
 TGNumberEntry.cxx:431
 TGNumberEntry.cxx:432
 TGNumberEntry.cxx:433
 TGNumberEntry.cxx:434
 TGNumberEntry.cxx:435
 TGNumberEntry.cxx:436
 TGNumberEntry.cxx:437
 TGNumberEntry.cxx:438
 TGNumberEntry.cxx:439
 TGNumberEntry.cxx:440
 TGNumberEntry.cxx:441
 TGNumberEntry.cxx:442
 TGNumberEntry.cxx:443
 TGNumberEntry.cxx:444
 TGNumberEntry.cxx:445
 TGNumberEntry.cxx:446
 TGNumberEntry.cxx:447
 TGNumberEntry.cxx:448
 TGNumberEntry.cxx:449
 TGNumberEntry.cxx:450
 TGNumberEntry.cxx:451
 TGNumberEntry.cxx:452
 TGNumberEntry.cxx:453
 TGNumberEntry.cxx:454
 TGNumberEntry.cxx:455
 TGNumberEntry.cxx:456
 TGNumberEntry.cxx:457
 TGNumberEntry.cxx:458
 TGNumberEntry.cxx:459
 TGNumberEntry.cxx:460
 TGNumberEntry.cxx:461
 TGNumberEntry.cxx:462
 TGNumberEntry.cxx:463
 TGNumberEntry.cxx:464
 TGNumberEntry.cxx:465
 TGNumberEntry.cxx:466
 TGNumberEntry.cxx:467
 TGNumberEntry.cxx:468
 TGNumberEntry.cxx:469
 TGNumberEntry.cxx:470
 TGNumberEntry.cxx:471
 TGNumberEntry.cxx:472
 TGNumberEntry.cxx:473
 TGNumberEntry.cxx:474
 TGNumberEntry.cxx:475
 TGNumberEntry.cxx:476
 TGNumberEntry.cxx:477
 TGNumberEntry.cxx:478
 TGNumberEntry.cxx:479
 TGNumberEntry.cxx:480
 TGNumberEntry.cxx:481
 TGNumberEntry.cxx:482
 TGNumberEntry.cxx:483
 TGNumberEntry.cxx:484
 TGNumberEntry.cxx:485
 TGNumberEntry.cxx:486
 TGNumberEntry.cxx:487
 TGNumberEntry.cxx:488
 TGNumberEntry.cxx:489
 TGNumberEntry.cxx:490
 TGNumberEntry.cxx:491
 TGNumberEntry.cxx:492
 TGNumberEntry.cxx:493
 TGNumberEntry.cxx:494
 TGNumberEntry.cxx:495
 TGNumberEntry.cxx:496
 TGNumberEntry.cxx:497
 TGNumberEntry.cxx:498
 TGNumberEntry.cxx:499
 TGNumberEntry.cxx:500
 TGNumberEntry.cxx:501
 TGNumberEntry.cxx:502
 TGNumberEntry.cxx:503
 TGNumberEntry.cxx:504
 TGNumberEntry.cxx:505
 TGNumberEntry.cxx:506
 TGNumberEntry.cxx:507
 TGNumberEntry.cxx:508
 TGNumberEntry.cxx:509
 TGNumberEntry.cxx:510
 TGNumberEntry.cxx:511
 TGNumberEntry.cxx:512
 TGNumberEntry.cxx:513
 TGNumberEntry.cxx:514
 TGNumberEntry.cxx:515
 TGNumberEntry.cxx:516
 TGNumberEntry.cxx:517
 TGNumberEntry.cxx:518
 TGNumberEntry.cxx:519
 TGNumberEntry.cxx:520
 TGNumberEntry.cxx:521
 TGNumberEntry.cxx:522
 TGNumberEntry.cxx:523
 TGNumberEntry.cxx:524
 TGNumberEntry.cxx:525
 TGNumberEntry.cxx:526
 TGNumberEntry.cxx:527
 TGNumberEntry.cxx:528
 TGNumberEntry.cxx:529
 TGNumberEntry.cxx:530
 TGNumberEntry.cxx:531
 TGNumberEntry.cxx:532
 TGNumberEntry.cxx:533
 TGNumberEntry.cxx:534
 TGNumberEntry.cxx:535
 TGNumberEntry.cxx:536
 TGNumberEntry.cxx:537
 TGNumberEntry.cxx:538
 TGNumberEntry.cxx:539
 TGNumberEntry.cxx:540
 TGNumberEntry.cxx:541
 TGNumberEntry.cxx:542
 TGNumberEntry.cxx:543
 TGNumberEntry.cxx:544
 TGNumberEntry.cxx:545
 TGNumberEntry.cxx:546
 TGNumberEntry.cxx:547
 TGNumberEntry.cxx:548
 TGNumberEntry.cxx:549
 TGNumberEntry.cxx:550
 TGNumberEntry.cxx:551
 TGNumberEntry.cxx:552
 TGNumberEntry.cxx:553
 TGNumberEntry.cxx:554
 TGNumberEntry.cxx:555
 TGNumberEntry.cxx:556
 TGNumberEntry.cxx:557
 TGNumberEntry.cxx:558
 TGNumberEntry.cxx:559
 TGNumberEntry.cxx:560
 TGNumberEntry.cxx:561
 TGNumberEntry.cxx:562
 TGNumberEntry.cxx:563
 TGNumberEntry.cxx:564
 TGNumberEntry.cxx:565
 TGNumberEntry.cxx:566
 TGNumberEntry.cxx:567
 TGNumberEntry.cxx:568
 TGNumberEntry.cxx:569
 TGNumberEntry.cxx:570
 TGNumberEntry.cxx:571
 TGNumberEntry.cxx:572
 TGNumberEntry.cxx:573
 TGNumberEntry.cxx:574
 TGNumberEntry.cxx:575
 TGNumberEntry.cxx:576
 TGNumberEntry.cxx:577
 TGNumberEntry.cxx:578
 TGNumberEntry.cxx:579
 TGNumberEntry.cxx:580
 TGNumberEntry.cxx:581
 TGNumberEntry.cxx:582
 TGNumberEntry.cxx:583
 TGNumberEntry.cxx:584
 TGNumberEntry.cxx:585
 TGNumberEntry.cxx:586
 TGNumberEntry.cxx:587
 TGNumberEntry.cxx:588
 TGNumberEntry.cxx:589
 TGNumberEntry.cxx:590
 TGNumberEntry.cxx:591
 TGNumberEntry.cxx:592
 TGNumberEntry.cxx:593
 TGNumberEntry.cxx:594
 TGNumberEntry.cxx:595
 TGNumberEntry.cxx:596
 TGNumberEntry.cxx:597
 TGNumberEntry.cxx:598
 TGNumberEntry.cxx:599
 TGNumberEntry.cxx:600
 TGNumberEntry.cxx:601
 TGNumberEntry.cxx:602
 TGNumberEntry.cxx:603
 TGNumberEntry.cxx:604
 TGNumberEntry.cxx:605
 TGNumberEntry.cxx:606
 TGNumberEntry.cxx:607
 TGNumberEntry.cxx:608
 TGNumberEntry.cxx:609
 TGNumberEntry.cxx:610
 TGNumberEntry.cxx:611
 TGNumberEntry.cxx:612
 TGNumberEntry.cxx:613
 TGNumberEntry.cxx:614
 TGNumberEntry.cxx:615
 TGNumberEntry.cxx:616
 TGNumberEntry.cxx:617
 TGNumberEntry.cxx:618
 TGNumberEntry.cxx:619
 TGNumberEntry.cxx:620
 TGNumberEntry.cxx:621
 TGNumberEntry.cxx:622
 TGNumberEntry.cxx:623
 TGNumberEntry.cxx:624
 TGNumberEntry.cxx:625
 TGNumberEntry.cxx:626
 TGNumberEntry.cxx:627
 TGNumberEntry.cxx:628
 TGNumberEntry.cxx:629
 TGNumberEntry.cxx:630
 TGNumberEntry.cxx:631
 TGNumberEntry.cxx:632
 TGNumberEntry.cxx:633
 TGNumberEntry.cxx:634
 TGNumberEntry.cxx:635
 TGNumberEntry.cxx:636
 TGNumberEntry.cxx:637
 TGNumberEntry.cxx:638
 TGNumberEntry.cxx:639
 TGNumberEntry.cxx:640
 TGNumberEntry.cxx:641
 TGNumberEntry.cxx:642
 TGNumberEntry.cxx:643
 TGNumberEntry.cxx:644
 TGNumberEntry.cxx:645
 TGNumberEntry.cxx:646
 TGNumberEntry.cxx:647
 TGNumberEntry.cxx:648
 TGNumberEntry.cxx:649
 TGNumberEntry.cxx:650
 TGNumberEntry.cxx:651
 TGNumberEntry.cxx:652
 TGNumberEntry.cxx:653
 TGNumberEntry.cxx:654
 TGNumberEntry.cxx:655
 TGNumberEntry.cxx:656
 TGNumberEntry.cxx:657
 TGNumberEntry.cxx:658
 TGNumberEntry.cxx:659
 TGNumberEntry.cxx:660
 TGNumberEntry.cxx:661
 TGNumberEntry.cxx:662
 TGNumberEntry.cxx:663
 TGNumberEntry.cxx:664
 TGNumberEntry.cxx:665
 TGNumberEntry.cxx:666
 TGNumberEntry.cxx:667
 TGNumberEntry.cxx:668
 TGNumberEntry.cxx:669
 TGNumberEntry.cxx:670
 TGNumberEntry.cxx:671
 TGNumberEntry.cxx:672
 TGNumberEntry.cxx:673
 TGNumberEntry.cxx:674
 TGNumberEntry.cxx:675
 TGNumberEntry.cxx:676
 TGNumberEntry.cxx:677
 TGNumberEntry.cxx:678
 TGNumberEntry.cxx:679
 TGNumberEntry.cxx:680
 TGNumberEntry.cxx:681
 TGNumberEntry.cxx:682
 TGNumberEntry.cxx:683
 TGNumberEntry.cxx:684
 TGNumberEntry.cxx:685
 TGNumberEntry.cxx:686
 TGNumberEntry.cxx:687
 TGNumberEntry.cxx:688
 TGNumberEntry.cxx:689
 TGNumberEntry.cxx:690
 TGNumberEntry.cxx:691
 TGNumberEntry.cxx:692
 TGNumberEntry.cxx:693
 TGNumberEntry.cxx:694
 TGNumberEntry.cxx:695
 TGNumberEntry.cxx:696
 TGNumberEntry.cxx:697
 TGNumberEntry.cxx:698
 TGNumberEntry.cxx:699
 TGNumberEntry.cxx:700
 TGNumberEntry.cxx:701
 TGNumberEntry.cxx:702
 TGNumberEntry.cxx:703
 TGNumberEntry.cxx:704
 TGNumberEntry.cxx:705
 TGNumberEntry.cxx:706
 TGNumberEntry.cxx:707
 TGNumberEntry.cxx:708
 TGNumberEntry.cxx:709
 TGNumberEntry.cxx:710
 TGNumberEntry.cxx:711
 TGNumberEntry.cxx:712
 TGNumberEntry.cxx:713
 TGNumberEntry.cxx:714
 TGNumberEntry.cxx:715
 TGNumberEntry.cxx:716
 TGNumberEntry.cxx:717
 TGNumberEntry.cxx:718
 TGNumberEntry.cxx:719
 TGNumberEntry.cxx:720
 TGNumberEntry.cxx:721
 TGNumberEntry.cxx:722
 TGNumberEntry.cxx:723
 TGNumberEntry.cxx:724
 TGNumberEntry.cxx:725
 TGNumberEntry.cxx:726
 TGNumberEntry.cxx:727
 TGNumberEntry.cxx:728
 TGNumberEntry.cxx:729
 TGNumberEntry.cxx:730
 TGNumberEntry.cxx:731
 TGNumberEntry.cxx:732
 TGNumberEntry.cxx:733
 TGNumberEntry.cxx:734
 TGNumberEntry.cxx:735
 TGNumberEntry.cxx:736
 TGNumberEntry.cxx:737
 TGNumberEntry.cxx:738
 TGNumberEntry.cxx:739
 TGNumberEntry.cxx:740
 TGNumberEntry.cxx:741
 TGNumberEntry.cxx:742
 TGNumberEntry.cxx:743
 TGNumberEntry.cxx:744
 TGNumberEntry.cxx:745
 TGNumberEntry.cxx:746
 TGNumberEntry.cxx:747
 TGNumberEntry.cxx:748
 TGNumberEntry.cxx:749
 TGNumberEntry.cxx:750
 TGNumberEntry.cxx:751
 TGNumberEntry.cxx:752
 TGNumberEntry.cxx:753
 TGNumberEntry.cxx:754
 TGNumberEntry.cxx:755
 TGNumberEntry.cxx:756
 TGNumberEntry.cxx:757
 TGNumberEntry.cxx:758
 TGNumberEntry.cxx:759
 TGNumberEntry.cxx:760
 TGNumberEntry.cxx:761
 TGNumberEntry.cxx:762
 TGNumberEntry.cxx:763
 TGNumberEntry.cxx:764
 TGNumberEntry.cxx:765
 TGNumberEntry.cxx:766
 TGNumberEntry.cxx:767
 TGNumberEntry.cxx:768
 TGNumberEntry.cxx:769
 TGNumberEntry.cxx:770
 TGNumberEntry.cxx:771
 TGNumberEntry.cxx:772
 TGNumberEntry.cxx:773
 TGNumberEntry.cxx:774
 TGNumberEntry.cxx:775
 TGNumberEntry.cxx:776
 TGNumberEntry.cxx:777
 TGNumberEntry.cxx:778
 TGNumberEntry.cxx:779
 TGNumberEntry.cxx:780
 TGNumberEntry.cxx:781
 TGNumberEntry.cxx:782
 TGNumberEntry.cxx:783
 TGNumberEntry.cxx:784
 TGNumberEntry.cxx:785
 TGNumberEntry.cxx:786
 TGNumberEntry.cxx:787
 TGNumberEntry.cxx:788
 TGNumberEntry.cxx:789
 TGNumberEntry.cxx:790
 TGNumberEntry.cxx:791
 TGNumberEntry.cxx:792
 TGNumberEntry.cxx:793
 TGNumberEntry.cxx:794
 TGNumberEntry.cxx:795
 TGNumberEntry.cxx:796
 TGNumberEntry.cxx:797
 TGNumberEntry.cxx:798
 TGNumberEntry.cxx:799
 TGNumberEntry.cxx:800
 TGNumberEntry.cxx:801
 TGNumberEntry.cxx:802
 TGNumberEntry.cxx:803
 TGNumberEntry.cxx:804
 TGNumberEntry.cxx:805
 TGNumberEntry.cxx:806
 TGNumberEntry.cxx:807
 TGNumberEntry.cxx:808
 TGNumberEntry.cxx:809
 TGNumberEntry.cxx:810
 TGNumberEntry.cxx:811
 TGNumberEntry.cxx:812
 TGNumberEntry.cxx:813
 TGNumberEntry.cxx:814
 TGNumberEntry.cxx:815
 TGNumberEntry.cxx:816
 TGNumberEntry.cxx:817
 TGNumberEntry.cxx:818
 TGNumberEntry.cxx:819
 TGNumberEntry.cxx:820
 TGNumberEntry.cxx:821
 TGNumberEntry.cxx:822
 TGNumberEntry.cxx:823
 TGNumberEntry.cxx:824
 TGNumberEntry.cxx:825
 TGNumberEntry.cxx:826
 TGNumberEntry.cxx:827
 TGNumberEntry.cxx:828
 TGNumberEntry.cxx:829
 TGNumberEntry.cxx:830
 TGNumberEntry.cxx:831
 TGNumberEntry.cxx:832
 TGNumberEntry.cxx:833
 TGNumberEntry.cxx:834
 TGNumberEntry.cxx:835
 TGNumberEntry.cxx:836
 TGNumberEntry.cxx:837
 TGNumberEntry.cxx:838
 TGNumberEntry.cxx:839
 TGNumberEntry.cxx:840
 TGNumberEntry.cxx:841
 TGNumberEntry.cxx:842
 TGNumberEntry.cxx:843
 TGNumberEntry.cxx:844
 TGNumberEntry.cxx:845
 TGNumberEntry.cxx:846
 TGNumberEntry.cxx:847
 TGNumberEntry.cxx:848
 TGNumberEntry.cxx:849
 TGNumberEntry.cxx:850
 TGNumberEntry.cxx:851
 TGNumberEntry.cxx:852
 TGNumberEntry.cxx:853
 TGNumberEntry.cxx:854
 TGNumberEntry.cxx:855
 TGNumberEntry.cxx:856
 TGNumberEntry.cxx:857
 TGNumberEntry.cxx:858
 TGNumberEntry.cxx:859
 TGNumberEntry.cxx:860
 TGNumberEntry.cxx:861
 TGNumberEntry.cxx:862
 TGNumberEntry.cxx:863
 TGNumberEntry.cxx:864
 TGNumberEntry.cxx:865
 TGNumberEntry.cxx:866
 TGNumberEntry.cxx:867
 TGNumberEntry.cxx:868
 TGNumberEntry.cxx:869
 TGNumberEntry.cxx:870
 TGNumberEntry.cxx:871
 TGNumberEntry.cxx:872
 TGNumberEntry.cxx:873
 TGNumberEntry.cxx:874
 TGNumberEntry.cxx:875
 TGNumberEntry.cxx:876
 TGNumberEntry.cxx:877
 TGNumberEntry.cxx:878
 TGNumberEntry.cxx:879
 TGNumberEntry.cxx:880
 TGNumberEntry.cxx:881
 TGNumberEntry.cxx:882
 TGNumberEntry.cxx:883
 TGNumberEntry.cxx:884
 TGNumberEntry.cxx:885
 TGNumberEntry.cxx:886
 TGNumberEntry.cxx:887
 TGNumberEntry.cxx:888
 TGNumberEntry.cxx:889
 TGNumberEntry.cxx:890
 TGNumberEntry.cxx:891
 TGNumberEntry.cxx:892
 TGNumberEntry.cxx:893
 TGNumberEntry.cxx:894
 TGNumberEntry.cxx:895
 TGNumberEntry.cxx:896
 TGNumberEntry.cxx:897
 TGNumberEntry.cxx:898
 TGNumberEntry.cxx:899
 TGNumberEntry.cxx:900
 TGNumberEntry.cxx:901
 TGNumberEntry.cxx:902
 TGNumberEntry.cxx:903
 TGNumberEntry.cxx:904
 TGNumberEntry.cxx:905
 TGNumberEntry.cxx:906
 TGNumberEntry.cxx:907
 TGNumberEntry.cxx:908
 TGNumberEntry.cxx:909
 TGNumberEntry.cxx:910
 TGNumberEntry.cxx:911
 TGNumberEntry.cxx:912
 TGNumberEntry.cxx:913
 TGNumberEntry.cxx:914
 TGNumberEntry.cxx:915
 TGNumberEntry.cxx:916
 TGNumberEntry.cxx:917
 TGNumberEntry.cxx:918
 TGNumberEntry.cxx:919
 TGNumberEntry.cxx:920
 TGNumberEntry.cxx:921
 TGNumberEntry.cxx:922
 TGNumberEntry.cxx:923
 TGNumberEntry.cxx:924
 TGNumberEntry.cxx:925
 TGNumberEntry.cxx:926
 TGNumberEntry.cxx:927
 TGNumberEntry.cxx:928
 TGNumberEntry.cxx:929
 TGNumberEntry.cxx:930
 TGNumberEntry.cxx:931
 TGNumberEntry.cxx:932
 TGNumberEntry.cxx:933
 TGNumberEntry.cxx:934
 TGNumberEntry.cxx:935
 TGNumberEntry.cxx:936
 TGNumberEntry.cxx:937
 TGNumberEntry.cxx:938
 TGNumberEntry.cxx:939
 TGNumberEntry.cxx:940
 TGNumberEntry.cxx:941
 TGNumberEntry.cxx:942
 TGNumberEntry.cxx:943
 TGNumberEntry.cxx:944
 TGNumberEntry.cxx:945
 TGNumberEntry.cxx:946
 TGNumberEntry.cxx:947
 TGNumberEntry.cxx:948
 TGNumberEntry.cxx:949
 TGNumberEntry.cxx:950
 TGNumberEntry.cxx:951
 TGNumberEntry.cxx:952
 TGNumberEntry.cxx:953
 TGNumberEntry.cxx:954
 TGNumberEntry.cxx:955
 TGNumberEntry.cxx:956
 TGNumberEntry.cxx:957
 TGNumberEntry.cxx:958
 TGNumberEntry.cxx:959
 TGNumberEntry.cxx:960
 TGNumberEntry.cxx:961
 TGNumberEntry.cxx:962
 TGNumberEntry.cxx:963
 TGNumberEntry.cxx:964
 TGNumberEntry.cxx:965
 TGNumberEntry.cxx:966
 TGNumberEntry.cxx:967
 TGNumberEntry.cxx:968
 TGNumberEntry.cxx:969
 TGNumberEntry.cxx:970
 TGNumberEntry.cxx:971
 TGNumberEntry.cxx:972
 TGNumberEntry.cxx:973
 TGNumberEntry.cxx:974
 TGNumberEntry.cxx:975
 TGNumberEntry.cxx:976
 TGNumberEntry.cxx:977
 TGNumberEntry.cxx:978
 TGNumberEntry.cxx:979
 TGNumberEntry.cxx:980
 TGNumberEntry.cxx:981
 TGNumberEntry.cxx:982
 TGNumberEntry.cxx:983
 TGNumberEntry.cxx:984
 TGNumberEntry.cxx:985
 TGNumberEntry.cxx:986
 TGNumberEntry.cxx:987
 TGNumberEntry.cxx:988
 TGNumberEntry.cxx:989
 TGNumberEntry.cxx:990
 TGNumberEntry.cxx:991
 TGNumberEntry.cxx:992
 TGNumberEntry.cxx:993
 TGNumberEntry.cxx:994
 TGNumberEntry.cxx:995
 TGNumberEntry.cxx:996
 TGNumberEntry.cxx:997
 TGNumberEntry.cxx:998
 TGNumberEntry.cxx:999
 TGNumberEntry.cxx:1000
 TGNumberEntry.cxx:1001
 TGNumberEntry.cxx:1002
 TGNumberEntry.cxx:1003
 TGNumberEntry.cxx:1004
 TGNumberEntry.cxx:1005
 TGNumberEntry.cxx:1006
 TGNumberEntry.cxx:1007
 TGNumberEntry.cxx:1008
 TGNumberEntry.cxx:1009
 TGNumberEntry.cxx:1010
 TGNumberEntry.cxx:1011
 TGNumberEntry.cxx:1012
 TGNumberEntry.cxx:1013
 TGNumberEntry.cxx:1014
 TGNumberEntry.cxx:1015
 TGNumberEntry.cxx:1016
 TGNumberEntry.cxx:1017
 TGNumberEntry.cxx:1018
 TGNumberEntry.cxx:1019
 TGNumberEntry.cxx:1020
 TGNumberEntry.cxx:1021
 TGNumberEntry.cxx:1022
 TGNumberEntry.cxx:1023
 TGNumberEntry.cxx:1024
 TGNumberEntry.cxx:1025
 TGNumberEntry.cxx:1026
 TGNumberEntry.cxx:1027
 TGNumberEntry.cxx:1028
 TGNumberEntry.cxx:1029
 TGNumberEntry.cxx:1030
 TGNumberEntry.cxx:1031
 TGNumberEntry.cxx:1032
 TGNumberEntry.cxx:1033
 TGNumberEntry.cxx:1034
 TGNumberEntry.cxx:1035
 TGNumberEntry.cxx:1036
 TGNumberEntry.cxx:1037
 TGNumberEntry.cxx:1038
 TGNumberEntry.cxx:1039
 TGNumberEntry.cxx:1040
 TGNumberEntry.cxx:1041
 TGNumberEntry.cxx:1042
 TGNumberEntry.cxx:1043
 TGNumberEntry.cxx:1044
 TGNumberEntry.cxx:1045
 TGNumberEntry.cxx:1046
 TGNumberEntry.cxx:1047
 TGNumberEntry.cxx:1048
 TGNumberEntry.cxx:1049
 TGNumberEntry.cxx:1050
 TGNumberEntry.cxx:1051
 TGNumberEntry.cxx:1052
 TGNumberEntry.cxx:1053
 TGNumberEntry.cxx:1054
 TGNumberEntry.cxx:1055
 TGNumberEntry.cxx:1056
 TGNumberEntry.cxx:1057
 TGNumberEntry.cxx:1058
 TGNumberEntry.cxx:1059
 TGNumberEntry.cxx:1060
 TGNumberEntry.cxx:1061
 TGNumberEntry.cxx:1062
 TGNumberEntry.cxx:1063
 TGNumberEntry.cxx:1064
 TGNumberEntry.cxx:1065
 TGNumberEntry.cxx:1066
 TGNumberEntry.cxx:1067
 TGNumberEntry.cxx:1068
 TGNumberEntry.cxx:1069
 TGNumberEntry.cxx:1070
 TGNumberEntry.cxx:1071
 TGNumberEntry.cxx:1072
 TGNumberEntry.cxx:1073
 TGNumberEntry.cxx:1074
 TGNumberEntry.cxx:1075
 TGNumberEntry.cxx:1076
 TGNumberEntry.cxx:1077
 TGNumberEntry.cxx:1078
 TGNumberEntry.cxx:1079
 TGNumberEntry.cxx:1080
 TGNumberEntry.cxx:1081
 TGNumberEntry.cxx:1082
 TGNumberEntry.cxx:1083
 TGNumberEntry.cxx:1084
 TGNumberEntry.cxx:1085
 TGNumberEntry.cxx:1086
 TGNumberEntry.cxx:1087
 TGNumberEntry.cxx:1088
 TGNumberEntry.cxx:1089
 TGNumberEntry.cxx:1090
 TGNumberEntry.cxx:1091
 TGNumberEntry.cxx:1092
 TGNumberEntry.cxx:1093
 TGNumberEntry.cxx:1094
 TGNumberEntry.cxx:1095
 TGNumberEntry.cxx:1096
 TGNumberEntry.cxx:1097
 TGNumberEntry.cxx:1098
 TGNumberEntry.cxx:1099
 TGNumberEntry.cxx:1100
 TGNumberEntry.cxx:1101
 TGNumberEntry.cxx:1102
 TGNumberEntry.cxx:1103
 TGNumberEntry.cxx:1104
 TGNumberEntry.cxx:1105
 TGNumberEntry.cxx:1106
 TGNumberEntry.cxx:1107
 TGNumberEntry.cxx:1108
 TGNumberEntry.cxx:1109
 TGNumberEntry.cxx:1110
 TGNumberEntry.cxx:1111
 TGNumberEntry.cxx:1112
 TGNumberEntry.cxx:1113
 TGNumberEntry.cxx:1114
 TGNumberEntry.cxx:1115
 TGNumberEntry.cxx:1116
 TGNumberEntry.cxx:1117
 TGNumberEntry.cxx:1118
 TGNumberEntry.cxx:1119
 TGNumberEntry.cxx:1120
 TGNumberEntry.cxx:1121
 TGNumberEntry.cxx:1122
 TGNumberEntry.cxx:1123
 TGNumberEntry.cxx:1124
 TGNumberEntry.cxx:1125
 TGNumberEntry.cxx:1126
 TGNumberEntry.cxx:1127
 TGNumberEntry.cxx:1128
 TGNumberEntry.cxx:1129
 TGNumberEntry.cxx:1130
 TGNumberEntry.cxx:1131
 TGNumberEntry.cxx:1132
 TGNumberEntry.cxx:1133
 TGNumberEntry.cxx:1134
 TGNumberEntry.cxx:1135
 TGNumberEntry.cxx:1136
 TGNumberEntry.cxx:1137
 TGNumberEntry.cxx:1138
 TGNumberEntry.cxx:1139
 TGNumberEntry.cxx:1140
 TGNumberEntry.cxx:1141
 TGNumberEntry.cxx:1142
 TGNumberEntry.cxx:1143
 TGNumberEntry.cxx:1144
 TGNumberEntry.cxx:1145
 TGNumberEntry.cxx:1146
 TGNumberEntry.cxx:1147
 TGNumberEntry.cxx:1148
 TGNumberEntry.cxx:1149
 TGNumberEntry.cxx:1150
 TGNumberEntry.cxx:1151
 TGNumberEntry.cxx:1152
 TGNumberEntry.cxx:1153
 TGNumberEntry.cxx:1154
 TGNumberEntry.cxx:1155
 TGNumberEntry.cxx:1156
 TGNumberEntry.cxx:1157
 TGNumberEntry.cxx:1158
 TGNumberEntry.cxx:1159
 TGNumberEntry.cxx:1160
 TGNumberEntry.cxx:1161
 TGNumberEntry.cxx:1162
 TGNumberEntry.cxx:1163
 TGNumberEntry.cxx:1164
 TGNumberEntry.cxx:1165
 TGNumberEntry.cxx:1166
 TGNumberEntry.cxx:1167
 TGNumberEntry.cxx:1168
 TGNumberEntry.cxx:1169
 TGNumberEntry.cxx:1170
 TGNumberEntry.cxx:1171
 TGNumberEntry.cxx:1172
 TGNumberEntry.cxx:1173
 TGNumberEntry.cxx:1174
 TGNumberEntry.cxx:1175
 TGNumberEntry.cxx:1176
 TGNumberEntry.cxx:1177
 TGNumberEntry.cxx:1178
 TGNumberEntry.cxx:1179
 TGNumberEntry.cxx:1180
 TGNumberEntry.cxx:1181
 TGNumberEntry.cxx:1182
 TGNumberEntry.cxx:1183
 TGNumberEntry.cxx:1184
 TGNumberEntry.cxx:1185
 TGNumberEntry.cxx:1186
 TGNumberEntry.cxx:1187
 TGNumberEntry.cxx:1188
 TGNumberEntry.cxx:1189
 TGNumberEntry.cxx:1190
 TGNumberEntry.cxx:1191
 TGNumberEntry.cxx:1192
 TGNumberEntry.cxx:1193
 TGNumberEntry.cxx:1194
 TGNumberEntry.cxx:1195
 TGNumberEntry.cxx:1196
 TGNumberEntry.cxx:1197
 TGNumberEntry.cxx:1198
 TGNumberEntry.cxx:1199
 TGNumberEntry.cxx:1200
 TGNumberEntry.cxx:1201
 TGNumberEntry.cxx:1202
 TGNumberEntry.cxx:1203
 TGNumberEntry.cxx:1204
 TGNumberEntry.cxx:1205
 TGNumberEntry.cxx:1206
 TGNumberEntry.cxx:1207
 TGNumberEntry.cxx:1208
 TGNumberEntry.cxx:1209
 TGNumberEntry.cxx:1210
 TGNumberEntry.cxx:1211
 TGNumberEntry.cxx:1212
 TGNumberEntry.cxx:1213
 TGNumberEntry.cxx:1214
 TGNumberEntry.cxx:1215
 TGNumberEntry.cxx:1216
 TGNumberEntry.cxx:1217
 TGNumberEntry.cxx:1218
 TGNumberEntry.cxx:1219
 TGNumberEntry.cxx:1220
 TGNumberEntry.cxx:1221
 TGNumberEntry.cxx:1222
 TGNumberEntry.cxx:1223
 TGNumberEntry.cxx:1224
 TGNumberEntry.cxx:1225
 TGNumberEntry.cxx:1226
 TGNumberEntry.cxx:1227
 TGNumberEntry.cxx:1228
 TGNumberEntry.cxx:1229
 TGNumberEntry.cxx:1230
 TGNumberEntry.cxx:1231
 TGNumberEntry.cxx:1232
 TGNumberEntry.cxx:1233
 TGNumberEntry.cxx:1234
 TGNumberEntry.cxx:1235
 TGNumberEntry.cxx:1236
 TGNumberEntry.cxx:1237
 TGNumberEntry.cxx:1238
 TGNumberEntry.cxx:1239
 TGNumberEntry.cxx:1240
 TGNumberEntry.cxx:1241
 TGNumberEntry.cxx:1242
 TGNumberEntry.cxx:1243
 TGNumberEntry.cxx:1244
 TGNumberEntry.cxx:1245
 TGNumberEntry.cxx:1246
 TGNumberEntry.cxx:1247
 TGNumberEntry.cxx:1248
 TGNumberEntry.cxx:1249
 TGNumberEntry.cxx:1250
 TGNumberEntry.cxx:1251
 TGNumberEntry.cxx:1252
 TGNumberEntry.cxx:1253
 TGNumberEntry.cxx:1254
 TGNumberEntry.cxx:1255
 TGNumberEntry.cxx:1256
 TGNumberEntry.cxx:1257
 TGNumberEntry.cxx:1258
 TGNumberEntry.cxx:1259
 TGNumberEntry.cxx:1260
 TGNumberEntry.cxx:1261
 TGNumberEntry.cxx:1262
 TGNumberEntry.cxx:1263
 TGNumberEntry.cxx:1264
 TGNumberEntry.cxx:1265
 TGNumberEntry.cxx:1266
 TGNumberEntry.cxx:1267
 TGNumberEntry.cxx:1268
 TGNumberEntry.cxx:1269
 TGNumberEntry.cxx:1270
 TGNumberEntry.cxx:1271
 TGNumberEntry.cxx:1272
 TGNumberEntry.cxx:1273
 TGNumberEntry.cxx:1274
 TGNumberEntry.cxx:1275
 TGNumberEntry.cxx:1276
 TGNumberEntry.cxx:1277
 TGNumberEntry.cxx:1278
 TGNumberEntry.cxx:1279
 TGNumberEntry.cxx:1280
 TGNumberEntry.cxx:1281
 TGNumberEntry.cxx:1282
 TGNumberEntry.cxx:1283
 TGNumberEntry.cxx:1284
 TGNumberEntry.cxx:1285
 TGNumberEntry.cxx:1286
 TGNumberEntry.cxx:1287
 TGNumberEntry.cxx:1288
 TGNumberEntry.cxx:1289
 TGNumberEntry.cxx:1290
 TGNumberEntry.cxx:1291
 TGNumberEntry.cxx:1292
 TGNumberEntry.cxx:1293
 TGNumberEntry.cxx:1294
 TGNumberEntry.cxx:1295
 TGNumberEntry.cxx:1296
 TGNumberEntry.cxx:1297
 TGNumberEntry.cxx:1298
 TGNumberEntry.cxx:1299
 TGNumberEntry.cxx:1300
 TGNumberEntry.cxx:1301
 TGNumberEntry.cxx:1302
 TGNumberEntry.cxx:1303
 TGNumberEntry.cxx:1304
 TGNumberEntry.cxx:1305
 TGNumberEntry.cxx:1306
 TGNumberEntry.cxx:1307
 TGNumberEntry.cxx:1308
 TGNumberEntry.cxx:1309
 TGNumberEntry.cxx:1310
 TGNumberEntry.cxx:1311
 TGNumberEntry.cxx:1312
 TGNumberEntry.cxx:1313
 TGNumberEntry.cxx:1314
 TGNumberEntry.cxx:1315
 TGNumberEntry.cxx:1316
 TGNumberEntry.cxx:1317
 TGNumberEntry.cxx:1318
 TGNumberEntry.cxx:1319
 TGNumberEntry.cxx:1320
 TGNumberEntry.cxx:1321
 TGNumberEntry.cxx:1322
 TGNumberEntry.cxx:1323
 TGNumberEntry.cxx:1324
 TGNumberEntry.cxx:1325
 TGNumberEntry.cxx:1326
 TGNumberEntry.cxx:1327
 TGNumberEntry.cxx:1328
 TGNumberEntry.cxx:1329
 TGNumberEntry.cxx:1330
 TGNumberEntry.cxx:1331
 TGNumberEntry.cxx:1332
 TGNumberEntry.cxx:1333
 TGNumberEntry.cxx:1334
 TGNumberEntry.cxx:1335
 TGNumberEntry.cxx:1336
 TGNumberEntry.cxx:1337
 TGNumberEntry.cxx:1338
 TGNumberEntry.cxx:1339
 TGNumberEntry.cxx:1340
 TGNumberEntry.cxx:1341
 TGNumberEntry.cxx:1342
 TGNumberEntry.cxx:1343
 TGNumberEntry.cxx:1344
 TGNumberEntry.cxx:1345
 TGNumberEntry.cxx:1346
 TGNumberEntry.cxx:1347
 TGNumberEntry.cxx:1348
 TGNumberEntry.cxx:1349
 TGNumberEntry.cxx:1350
 TGNumberEntry.cxx:1351
 TGNumberEntry.cxx:1352
 TGNumberEntry.cxx:1353
 TGNumberEntry.cxx:1354
 TGNumberEntry.cxx:1355
 TGNumberEntry.cxx:1356
 TGNumberEntry.cxx:1357
 TGNumberEntry.cxx:1358
 TGNumberEntry.cxx:1359
 TGNumberEntry.cxx:1360
 TGNumberEntry.cxx:1361
 TGNumberEntry.cxx:1362
 TGNumberEntry.cxx:1363
 TGNumberEntry.cxx:1364
 TGNumberEntry.cxx:1365
 TGNumberEntry.cxx:1366
 TGNumberEntry.cxx:1367
 TGNumberEntry.cxx:1368
 TGNumberEntry.cxx:1369
 TGNumberEntry.cxx:1370
 TGNumberEntry.cxx:1371
 TGNumberEntry.cxx:1372
 TGNumberEntry.cxx:1373
 TGNumberEntry.cxx:1374
 TGNumberEntry.cxx:1375
 TGNumberEntry.cxx:1376
 TGNumberEntry.cxx:1377
 TGNumberEntry.cxx:1378
 TGNumberEntry.cxx:1379
 TGNumberEntry.cxx:1380
 TGNumberEntry.cxx:1381
 TGNumberEntry.cxx:1382
 TGNumberEntry.cxx:1383
 TGNumberEntry.cxx:1384
 TGNumberEntry.cxx:1385
 TGNumberEntry.cxx:1386
 TGNumberEntry.cxx:1387
 TGNumberEntry.cxx:1388
 TGNumberEntry.cxx:1389
 TGNumberEntry.cxx:1390
 TGNumberEntry.cxx:1391
 TGNumberEntry.cxx:1392
 TGNumberEntry.cxx:1393
 TGNumberEntry.cxx:1394
 TGNumberEntry.cxx:1395
 TGNumberEntry.cxx:1396
 TGNumberEntry.cxx:1397
 TGNumberEntry.cxx:1398
 TGNumberEntry.cxx:1399
 TGNumberEntry.cxx:1400
 TGNumberEntry.cxx:1401
 TGNumberEntry.cxx:1402
 TGNumberEntry.cxx:1403
 TGNumberEntry.cxx:1404
 TGNumberEntry.cxx:1405
 TGNumberEntry.cxx:1406
 TGNumberEntry.cxx:1407
 TGNumberEntry.cxx:1408
 TGNumberEntry.cxx:1409
 TGNumberEntry.cxx:1410
 TGNumberEntry.cxx:1411
 TGNumberEntry.cxx:1412
 TGNumberEntry.cxx:1413
 TGNumberEntry.cxx:1414
 TGNumberEntry.cxx:1415
 TGNumberEntry.cxx:1416
 TGNumberEntry.cxx:1417
 TGNumberEntry.cxx:1418
 TGNumberEntry.cxx:1419
 TGNumberEntry.cxx:1420
 TGNumberEntry.cxx:1421
 TGNumberEntry.cxx:1422
 TGNumberEntry.cxx:1423
 TGNumberEntry.cxx:1424
 TGNumberEntry.cxx:1425
 TGNumberEntry.cxx:1426
 TGNumberEntry.cxx:1427
 TGNumberEntry.cxx:1428
 TGNumberEntry.cxx:1429
 TGNumberEntry.cxx:1430
 TGNumberEntry.cxx:1431
 TGNumberEntry.cxx:1432
 TGNumberEntry.cxx:1433
 TGNumberEntry.cxx:1434
 TGNumberEntry.cxx:1435
 TGNumberEntry.cxx:1436
 TGNumberEntry.cxx:1437
 TGNumberEntry.cxx:1438
 TGNumberEntry.cxx:1439
 TGNumberEntry.cxx:1440
 TGNumberEntry.cxx:1441
 TGNumberEntry.cxx:1442
 TGNumberEntry.cxx:1443
 TGNumberEntry.cxx:1444
 TGNumberEntry.cxx:1445
 TGNumberEntry.cxx:1446
 TGNumberEntry.cxx:1447
 TGNumberEntry.cxx:1448
 TGNumberEntry.cxx:1449
 TGNumberEntry.cxx:1450
 TGNumberEntry.cxx:1451
 TGNumberEntry.cxx:1452
 TGNumberEntry.cxx:1453
 TGNumberEntry.cxx:1454
 TGNumberEntry.cxx:1455
 TGNumberEntry.cxx:1456
 TGNumberEntry.cxx:1457
 TGNumberEntry.cxx:1458
 TGNumberEntry.cxx:1459
 TGNumberEntry.cxx:1460
 TGNumberEntry.cxx:1461
 TGNumberEntry.cxx:1462
 TGNumberEntry.cxx:1463
 TGNumberEntry.cxx:1464
 TGNumberEntry.cxx:1465
 TGNumberEntry.cxx:1466
 TGNumberEntry.cxx:1467
 TGNumberEntry.cxx:1468
 TGNumberEntry.cxx:1469
 TGNumberEntry.cxx:1470
 TGNumberEntry.cxx:1471
 TGNumberEntry.cxx:1472
 TGNumberEntry.cxx:1473
 TGNumberEntry.cxx:1474
 TGNumberEntry.cxx:1475
 TGNumberEntry.cxx:1476
 TGNumberEntry.cxx:1477
 TGNumberEntry.cxx:1478
 TGNumberEntry.cxx:1479
 TGNumberEntry.cxx:1480
 TGNumberEntry.cxx:1481
 TGNumberEntry.cxx:1482
 TGNumberEntry.cxx:1483
 TGNumberEntry.cxx:1484
 TGNumberEntry.cxx:1485
 TGNumberEntry.cxx:1486
 TGNumberEntry.cxx:1487
 TGNumberEntry.cxx:1488
 TGNumberEntry.cxx:1489
 TGNumberEntry.cxx:1490
 TGNumberEntry.cxx:1491
 TGNumberEntry.cxx:1492
 TGNumberEntry.cxx:1493
 TGNumberEntry.cxx:1494
 TGNumberEntry.cxx:1495
 TGNumberEntry.cxx:1496
 TGNumberEntry.cxx:1497
 TGNumberEntry.cxx:1498
 TGNumberEntry.cxx:1499
 TGNumberEntry.cxx:1500
 TGNumberEntry.cxx:1501
 TGNumberEntry.cxx:1502
 TGNumberEntry.cxx:1503
 TGNumberEntry.cxx:1504
 TGNumberEntry.cxx:1505
 TGNumberEntry.cxx:1506
 TGNumberEntry.cxx:1507
 TGNumberEntry.cxx:1508
 TGNumberEntry.cxx:1509
 TGNumberEntry.cxx:1510
 TGNumberEntry.cxx:1511
 TGNumberEntry.cxx:1512
 TGNumberEntry.cxx:1513
 TGNumberEntry.cxx:1514
 TGNumberEntry.cxx:1515
 TGNumberEntry.cxx:1516
 TGNumberEntry.cxx:1517
 TGNumberEntry.cxx:1518
 TGNumberEntry.cxx:1519
 TGNumberEntry.cxx:1520
 TGNumberEntry.cxx:1521
 TGNumberEntry.cxx:1522
 TGNumberEntry.cxx:1523
 TGNumberEntry.cxx:1524
 TGNumberEntry.cxx:1525
 TGNumberEntry.cxx:1526
 TGNumberEntry.cxx:1527
 TGNumberEntry.cxx:1528
 TGNumberEntry.cxx:1529
 TGNumberEntry.cxx:1530
 TGNumberEntry.cxx:1531
 TGNumberEntry.cxx:1532
 TGNumberEntry.cxx:1533
 TGNumberEntry.cxx:1534
 TGNumberEntry.cxx:1535
 TGNumberEntry.cxx:1536
 TGNumberEntry.cxx:1537
 TGNumberEntry.cxx:1538
 TGNumberEntry.cxx:1539
 TGNumberEntry.cxx:1540
 TGNumberEntry.cxx:1541
 TGNumberEntry.cxx:1542
 TGNumberEntry.cxx:1543
 TGNumberEntry.cxx:1544
 TGNumberEntry.cxx:1545
 TGNumberEntry.cxx:1546
 TGNumberEntry.cxx:1547
 TGNumberEntry.cxx:1548
 TGNumberEntry.cxx:1549
 TGNumberEntry.cxx:1550
 TGNumberEntry.cxx:1551
 TGNumberEntry.cxx:1552
 TGNumberEntry.cxx:1553
 TGNumberEntry.cxx:1554
 TGNumberEntry.cxx:1555
 TGNumberEntry.cxx:1556
 TGNumberEntry.cxx:1557
 TGNumberEntry.cxx:1558
 TGNumberEntry.cxx:1559
 TGNumberEntry.cxx:1560
 TGNumberEntry.cxx:1561
 TGNumberEntry.cxx:1562
 TGNumberEntry.cxx:1563
 TGNumberEntry.cxx:1564
 TGNumberEntry.cxx:1565
 TGNumberEntry.cxx:1566
 TGNumberEntry.cxx:1567
 TGNumberEntry.cxx:1568
 TGNumberEntry.cxx:1569
 TGNumberEntry.cxx:1570
 TGNumberEntry.cxx:1571
 TGNumberEntry.cxx:1572
 TGNumberEntry.cxx:1573
 TGNumberEntry.cxx:1574
 TGNumberEntry.cxx:1575
 TGNumberEntry.cxx:1576
 TGNumberEntry.cxx:1577
 TGNumberEntry.cxx:1578
 TGNumberEntry.cxx:1579
 TGNumberEntry.cxx:1580
 TGNumberEntry.cxx:1581
 TGNumberEntry.cxx:1582
 TGNumberEntry.cxx:1583
 TGNumberEntry.cxx:1584
 TGNumberEntry.cxx:1585
 TGNumberEntry.cxx:1586
 TGNumberEntry.cxx:1587
 TGNumberEntry.cxx:1588
 TGNumberEntry.cxx:1589
 TGNumberEntry.cxx:1590
 TGNumberEntry.cxx:1591
 TGNumberEntry.cxx:1592
 TGNumberEntry.cxx:1593
 TGNumberEntry.cxx:1594
 TGNumberEntry.cxx:1595
 TGNumberEntry.cxx:1596
 TGNumberEntry.cxx:1597
 TGNumberEntry.cxx:1598
 TGNumberEntry.cxx:1599
 TGNumberEntry.cxx:1600
 TGNumberEntry.cxx:1601
 TGNumberEntry.cxx:1602
 TGNumberEntry.cxx:1603
 TGNumberEntry.cxx:1604
 TGNumberEntry.cxx:1605
 TGNumberEntry.cxx:1606
 TGNumberEntry.cxx:1607
 TGNumberEntry.cxx:1608
 TGNumberEntry.cxx:1609
 TGNumberEntry.cxx:1610
 TGNumberEntry.cxx:1611
 TGNumberEntry.cxx:1612
 TGNumberEntry.cxx:1613
 TGNumberEntry.cxx:1614
 TGNumberEntry.cxx:1615
 TGNumberEntry.cxx:1616
 TGNumberEntry.cxx:1617
 TGNumberEntry.cxx:1618
 TGNumberEntry.cxx:1619
 TGNumberEntry.cxx:1620
 TGNumberEntry.cxx:1621
 TGNumberEntry.cxx:1622
 TGNumberEntry.cxx:1623
 TGNumberEntry.cxx:1624
 TGNumberEntry.cxx:1625
 TGNumberEntry.cxx:1626
 TGNumberEntry.cxx:1627
 TGNumberEntry.cxx:1628
 TGNumberEntry.cxx:1629
 TGNumberEntry.cxx:1630
 TGNumberEntry.cxx:1631
 TGNumberEntry.cxx:1632
 TGNumberEntry.cxx:1633
 TGNumberEntry.cxx:1634
 TGNumberEntry.cxx:1635
 TGNumberEntry.cxx:1636
 TGNumberEntry.cxx:1637
 TGNumberEntry.cxx:1638
 TGNumberEntry.cxx:1639
 TGNumberEntry.cxx:1640
 TGNumberEntry.cxx:1641
 TGNumberEntry.cxx:1642
 TGNumberEntry.cxx:1643
 TGNumberEntry.cxx:1644
 TGNumberEntry.cxx:1645
 TGNumberEntry.cxx:1646
 TGNumberEntry.cxx:1647
 TGNumberEntry.cxx:1648
 TGNumberEntry.cxx:1649
 TGNumberEntry.cxx:1650
 TGNumberEntry.cxx:1651
 TGNumberEntry.cxx:1652
 TGNumberEntry.cxx:1653
 TGNumberEntry.cxx:1654
 TGNumberEntry.cxx:1655
 TGNumberEntry.cxx:1656
 TGNumberEntry.cxx:1657
 TGNumberEntry.cxx:1658
 TGNumberEntry.cxx:1659
 TGNumberEntry.cxx:1660
 TGNumberEntry.cxx:1661
 TGNumberEntry.cxx:1662
 TGNumberEntry.cxx:1663
 TGNumberEntry.cxx:1664
 TGNumberEntry.cxx:1665
 TGNumberEntry.cxx:1666
 TGNumberEntry.cxx:1667
 TGNumberEntry.cxx:1668
 TGNumberEntry.cxx:1669
 TGNumberEntry.cxx:1670
 TGNumberEntry.cxx:1671
 TGNumberEntry.cxx:1672
 TGNumberEntry.cxx:1673
 TGNumberEntry.cxx:1674
 TGNumberEntry.cxx:1675
 TGNumberEntry.cxx:1676
 TGNumberEntry.cxx:1677
 TGNumberEntry.cxx:1678
 TGNumberEntry.cxx:1679
 TGNumberEntry.cxx:1680
 TGNumberEntry.cxx:1681
 TGNumberEntry.cxx:1682
 TGNumberEntry.cxx:1683
 TGNumberEntry.cxx:1684
 TGNumberEntry.cxx:1685
 TGNumberEntry.cxx:1686
 TGNumberEntry.cxx:1687
 TGNumberEntry.cxx:1688
 TGNumberEntry.cxx:1689
 TGNumberEntry.cxx:1690
 TGNumberEntry.cxx:1691
 TGNumberEntry.cxx:1692
 TGNumberEntry.cxx:1693
 TGNumberEntry.cxx:1694
 TGNumberEntry.cxx:1695
 TGNumberEntry.cxx:1696
 TGNumberEntry.cxx:1697
 TGNumberEntry.cxx:1698
 TGNumberEntry.cxx:1699
 TGNumberEntry.cxx:1700
 TGNumberEntry.cxx:1701
 TGNumberEntry.cxx:1702
 TGNumberEntry.cxx:1703
 TGNumberEntry.cxx:1704
 TGNumberEntry.cxx:1705
 TGNumberEntry.cxx:1706
 TGNumberEntry.cxx:1707
 TGNumberEntry.cxx:1708
 TGNumberEntry.cxx:1709
 TGNumberEntry.cxx:1710
 TGNumberEntry.cxx:1711
 TGNumberEntry.cxx:1712
 TGNumberEntry.cxx:1713
 TGNumberEntry.cxx:1714
 TGNumberEntry.cxx:1715
 TGNumberEntry.cxx:1716
 TGNumberEntry.cxx:1717
 TGNumberEntry.cxx:1718
 TGNumberEntry.cxx:1719
 TGNumberEntry.cxx:1720
 TGNumberEntry.cxx:1721
 TGNumberEntry.cxx:1722
 TGNumberEntry.cxx:1723
 TGNumberEntry.cxx:1724
 TGNumberEntry.cxx:1725
 TGNumberEntry.cxx:1726
 TGNumberEntry.cxx:1727
 TGNumberEntry.cxx:1728
 TGNumberEntry.cxx:1729
 TGNumberEntry.cxx:1730
 TGNumberEntry.cxx:1731
 TGNumberEntry.cxx:1732
 TGNumberEntry.cxx:1733
 TGNumberEntry.cxx:1734
 TGNumberEntry.cxx:1735
 TGNumberEntry.cxx:1736
 TGNumberEntry.cxx:1737
 TGNumberEntry.cxx:1738
 TGNumberEntry.cxx:1739
 TGNumberEntry.cxx:1740
 TGNumberEntry.cxx:1741
 TGNumberEntry.cxx:1742
 TGNumberEntry.cxx:1743
 TGNumberEntry.cxx:1744
 TGNumberEntry.cxx:1745
 TGNumberEntry.cxx:1746
 TGNumberEntry.cxx:1747
 TGNumberEntry.cxx:1748
 TGNumberEntry.cxx:1749
 TGNumberEntry.cxx:1750
 TGNumberEntry.cxx:1751
 TGNumberEntry.cxx:1752
 TGNumberEntry.cxx:1753
 TGNumberEntry.cxx:1754
 TGNumberEntry.cxx:1755
 TGNumberEntry.cxx:1756
 TGNumberEntry.cxx:1757
 TGNumberEntry.cxx:1758
 TGNumberEntry.cxx:1759
 TGNumberEntry.cxx:1760
 TGNumberEntry.cxx:1761
 TGNumberEntry.cxx:1762
 TGNumberEntry.cxx:1763
 TGNumberEntry.cxx:1764
 TGNumberEntry.cxx:1765
 TGNumberEntry.cxx:1766
 TGNumberEntry.cxx:1767
 TGNumberEntry.cxx:1768
 TGNumberEntry.cxx:1769
 TGNumberEntry.cxx:1770
 TGNumberEntry.cxx:1771
 TGNumberEntry.cxx:1772
 TGNumberEntry.cxx:1773
 TGNumberEntry.cxx:1774
 TGNumberEntry.cxx:1775
 TGNumberEntry.cxx:1776
 TGNumberEntry.cxx:1777
 TGNumberEntry.cxx:1778
 TGNumberEntry.cxx:1779
 TGNumberEntry.cxx:1780
 TGNumberEntry.cxx:1781
 TGNumberEntry.cxx:1782
 TGNumberEntry.cxx:1783
 TGNumberEntry.cxx:1784
 TGNumberEntry.cxx:1785
 TGNumberEntry.cxx:1786
 TGNumberEntry.cxx:1787
 TGNumberEntry.cxx:1788
 TGNumberEntry.cxx:1789
 TGNumberEntry.cxx:1790
 TGNumberEntry.cxx:1791
 TGNumberEntry.cxx:1792
 TGNumberEntry.cxx:1793
 TGNumberEntry.cxx:1794
 TGNumberEntry.cxx:1795
 TGNumberEntry.cxx:1796
 TGNumberEntry.cxx:1797
 TGNumberEntry.cxx:1798
 TGNumberEntry.cxx:1799
 TGNumberEntry.cxx:1800
 TGNumberEntry.cxx:1801
 TGNumberEntry.cxx:1802
 TGNumberEntry.cxx:1803
 TGNumberEntry.cxx:1804
 TGNumberEntry.cxx:1805
 TGNumberEntry.cxx:1806
 TGNumberEntry.cxx:1807
 TGNumberEntry.cxx:1808
 TGNumberEntry.cxx:1809
 TGNumberEntry.cxx:1810
 TGNumberEntry.cxx:1811
 TGNumberEntry.cxx:1812
 TGNumberEntry.cxx:1813
 TGNumberEntry.cxx:1814
 TGNumberEntry.cxx:1815
 TGNumberEntry.cxx:1816
 TGNumberEntry.cxx:1817
 TGNumberEntry.cxx:1818
 TGNumberEntry.cxx:1819
 TGNumberEntry.cxx:1820
 TGNumberEntry.cxx:1821
 TGNumberEntry.cxx:1822
 TGNumberEntry.cxx:1823
 TGNumberEntry.cxx:1824
 TGNumberEntry.cxx:1825
 TGNumberEntry.cxx:1826
 TGNumberEntry.cxx:1827
 TGNumberEntry.cxx:1828
 TGNumberEntry.cxx:1829
 TGNumberEntry.cxx:1830
 TGNumberEntry.cxx:1831
 TGNumberEntry.cxx:1832
 TGNumberEntry.cxx:1833
 TGNumberEntry.cxx:1834
 TGNumberEntry.cxx:1835
 TGNumberEntry.cxx:1836
 TGNumberEntry.cxx:1837
 TGNumberEntry.cxx:1838
 TGNumberEntry.cxx:1839
 TGNumberEntry.cxx:1840
 TGNumberEntry.cxx:1841
 TGNumberEntry.cxx:1842
 TGNumberEntry.cxx:1843
 TGNumberEntry.cxx:1844
 TGNumberEntry.cxx:1845
 TGNumberEntry.cxx:1846
 TGNumberEntry.cxx:1847
 TGNumberEntry.cxx:1848
 TGNumberEntry.cxx:1849
 TGNumberEntry.cxx:1850
 TGNumberEntry.cxx:1851
 TGNumberEntry.cxx:1852
 TGNumberEntry.cxx:1853
 TGNumberEntry.cxx:1854
 TGNumberEntry.cxx:1855
 TGNumberEntry.cxx:1856
 TGNumberEntry.cxx:1857
 TGNumberEntry.cxx:1858
 TGNumberEntry.cxx:1859
 TGNumberEntry.cxx:1860
 TGNumberEntry.cxx:1861
 TGNumberEntry.cxx:1862
 TGNumberEntry.cxx:1863
 TGNumberEntry.cxx:1864
 TGNumberEntry.cxx:1865
 TGNumberEntry.cxx:1866
 TGNumberEntry.cxx:1867
 TGNumberEntry.cxx:1868
 TGNumberEntry.cxx:1869
 TGNumberEntry.cxx:1870
 TGNumberEntry.cxx:1871
 TGNumberEntry.cxx:1872
 TGNumberEntry.cxx:1873
 TGNumberEntry.cxx:1874
 TGNumberEntry.cxx:1875
 TGNumberEntry.cxx:1876
 TGNumberEntry.cxx:1877
 TGNumberEntry.cxx:1878
 TGNumberEntry.cxx:1879
 TGNumberEntry.cxx:1880
 TGNumberEntry.cxx:1881
 TGNumberEntry.cxx:1882
 TGNumberEntry.cxx:1883
 TGNumberEntry.cxx:1884
 TGNumberEntry.cxx:1885
 TGNumberEntry.cxx:1886
 TGNumberEntry.cxx:1887
 TGNumberEntry.cxx:1888
 TGNumberEntry.cxx:1889
 TGNumberEntry.cxx:1890
 TGNumberEntry.cxx:1891
 TGNumberEntry.cxx:1892
 TGNumberEntry.cxx:1893
 TGNumberEntry.cxx:1894
 TGNumberEntry.cxx:1895
 TGNumberEntry.cxx:1896
 TGNumberEntry.cxx:1897
 TGNumberEntry.cxx:1898
 TGNumberEntry.cxx:1899
 TGNumberEntry.cxx:1900
 TGNumberEntry.cxx:1901
 TGNumberEntry.cxx:1902
 TGNumberEntry.cxx:1903
 TGNumberEntry.cxx:1904
 TGNumberEntry.cxx:1905
 TGNumberEntry.cxx:1906
 TGNumberEntry.cxx:1907
 TGNumberEntry.cxx:1908
 TGNumberEntry.cxx:1909
 TGNumberEntry.cxx:1910
 TGNumberEntry.cxx:1911
 TGNumberEntry.cxx:1912
 TGNumberEntry.cxx:1913
 TGNumberEntry.cxx:1914
 TGNumberEntry.cxx:1915
 TGNumberEntry.cxx:1916
 TGNumberEntry.cxx:1917
 TGNumberEntry.cxx:1918
 TGNumberEntry.cxx:1919
 TGNumberEntry.cxx:1920
 TGNumberEntry.cxx:1921
 TGNumberEntry.cxx:1922
 TGNumberEntry.cxx:1923
 TGNumberEntry.cxx:1924
 TGNumberEntry.cxx:1925
 TGNumberEntry.cxx:1926
 TGNumberEntry.cxx:1927
 TGNumberEntry.cxx:1928
 TGNumberEntry.cxx:1929
 TGNumberEntry.cxx:1930
 TGNumberEntry.cxx:1931
 TGNumberEntry.cxx:1932
 TGNumberEntry.cxx:1933
 TGNumberEntry.cxx:1934
 TGNumberEntry.cxx:1935
 TGNumberEntry.cxx:1936
 TGNumberEntry.cxx:1937
 TGNumberEntry.cxx:1938
 TGNumberEntry.cxx:1939
 TGNumberEntry.cxx:1940
 TGNumberEntry.cxx:1941
 TGNumberEntry.cxx:1942
 TGNumberEntry.cxx:1943
 TGNumberEntry.cxx:1944
 TGNumberEntry.cxx:1945
 TGNumberEntry.cxx:1946
 TGNumberEntry.cxx:1947
 TGNumberEntry.cxx:1948
 TGNumberEntry.cxx:1949
 TGNumberEntry.cxx:1950
 TGNumberEntry.cxx:1951
 TGNumberEntry.cxx:1952
 TGNumberEntry.cxx:1953
 TGNumberEntry.cxx:1954
 TGNumberEntry.cxx:1955
 TGNumberEntry.cxx:1956
 TGNumberEntry.cxx:1957
 TGNumberEntry.cxx:1958
 TGNumberEntry.cxx:1959
 TGNumberEntry.cxx:1960
 TGNumberEntry.cxx:1961
 TGNumberEntry.cxx:1962
 TGNumberEntry.cxx:1963
 TGNumberEntry.cxx:1964
 TGNumberEntry.cxx:1965
 TGNumberEntry.cxx:1966
 TGNumberEntry.cxx:1967
 TGNumberEntry.cxx:1968
 TGNumberEntry.cxx:1969
 TGNumberEntry.cxx:1970
 TGNumberEntry.cxx:1971
 TGNumberEntry.cxx:1972
 TGNumberEntry.cxx:1973
 TGNumberEntry.cxx:1974
 TGNumberEntry.cxx:1975
 TGNumberEntry.cxx:1976
 TGNumberEntry.cxx:1977
 TGNumberEntry.cxx:1978
 TGNumberEntry.cxx:1979
 TGNumberEntry.cxx:1980
 TGNumberEntry.cxx:1981
 TGNumberEntry.cxx:1982
 TGNumberEntry.cxx:1983
 TGNumberEntry.cxx:1984
 TGNumberEntry.cxx:1985
 TGNumberEntry.cxx:1986
 TGNumberEntry.cxx:1987
 TGNumberEntry.cxx:1988
 TGNumberEntry.cxx:1989
 TGNumberEntry.cxx:1990
 TGNumberEntry.cxx:1991
 TGNumberEntry.cxx:1992
 TGNumberEntry.cxx:1993
 TGNumberEntry.cxx:1994
 TGNumberEntry.cxx:1995
 TGNumberEntry.cxx:1996
 TGNumberEntry.cxx:1997
 TGNumberEntry.cxx:1998
 TGNumberEntry.cxx:1999
 TGNumberEntry.cxx:2000
 TGNumberEntry.cxx:2001
 TGNumberEntry.cxx:2002
 TGNumberEntry.cxx:2003
 TGNumberEntry.cxx:2004
 TGNumberEntry.cxx:2005
 TGNumberEntry.cxx:2006
 TGNumberEntry.cxx:2007
 TGNumberEntry.cxx:2008
 TGNumberEntry.cxx:2009
 TGNumberEntry.cxx:2010
 TGNumberEntry.cxx:2011
 TGNumberEntry.cxx:2012
 TGNumberEntry.cxx:2013
 TGNumberEntry.cxx:2014
 TGNumberEntry.cxx:2015
 TGNumberEntry.cxx:2016
 TGNumberEntry.cxx:2017
 TGNumberEntry.cxx:2018
 TGNumberEntry.cxx:2019
 TGNumberEntry.cxx:2020
 TGNumberEntry.cxx:2021
 TGNumberEntry.cxx:2022
 TGNumberEntry.cxx:2023
 TGNumberEntry.cxx:2024
 TGNumberEntry.cxx:2025
 TGNumberEntry.cxx:2026
 TGNumberEntry.cxx:2027
 TGNumberEntry.cxx:2028
 TGNumberEntry.cxx:2029
 TGNumberEntry.cxx:2030
 TGNumberEntry.cxx:2031
 TGNumberEntry.cxx:2032
 TGNumberEntry.cxx:2033
 TGNumberEntry.cxx:2034
 TGNumberEntry.cxx:2035
 TGNumberEntry.cxx:2036
 TGNumberEntry.cxx:2037
 TGNumberEntry.cxx:2038
 TGNumberEntry.cxx:2039
 TGNumberEntry.cxx:2040
 TGNumberEntry.cxx:2041
 TGNumberEntry.cxx:2042
 TGNumberEntry.cxx:2043
 TGNumberEntry.cxx:2044
 TGNumberEntry.cxx:2045
 TGNumberEntry.cxx:2046
 TGNumberEntry.cxx:2047
 TGNumberEntry.cxx:2048
 TGNumberEntry.cxx:2049
 TGNumberEntry.cxx:2050
 TGNumberEntry.cxx:2051
 TGNumberEntry.cxx:2052
 TGNumberEntry.cxx:2053
 TGNumberEntry.cxx:2054
 TGNumberEntry.cxx:2055
 TGNumberEntry.cxx:2056
 TGNumberEntry.cxx:2057
 TGNumberEntry.cxx:2058
 TGNumberEntry.cxx:2059
 TGNumberEntry.cxx:2060
 TGNumberEntry.cxx:2061
 TGNumberEntry.cxx:2062
 TGNumberEntry.cxx:2063
 TGNumberEntry.cxx:2064
 TGNumberEntry.cxx:2065
 TGNumberEntry.cxx:2066
 TGNumberEntry.cxx:2067
 TGNumberEntry.cxx:2068
 TGNumberEntry.cxx:2069
 TGNumberEntry.cxx:2070
 TGNumberEntry.cxx:2071
 TGNumberEntry.cxx:2072
 TGNumberEntry.cxx:2073
 TGNumberEntry.cxx:2074
 TGNumberEntry.cxx:2075
 TGNumberEntry.cxx:2076
 TGNumberEntry.cxx:2077
 TGNumberEntry.cxx:2078
 TGNumberEntry.cxx:2079
 TGNumberEntry.cxx:2080
 TGNumberEntry.cxx:2081
 TGNumberEntry.cxx:2082
 TGNumberEntry.cxx:2083
 TGNumberEntry.cxx:2084
 TGNumberEntry.cxx:2085
 TGNumberEntry.cxx:2086
 TGNumberEntry.cxx:2087
 TGNumberEntry.cxx:2088
 TGNumberEntry.cxx:2089
 TGNumberEntry.cxx:2090
 TGNumberEntry.cxx:2091
 TGNumberEntry.cxx:2092
 TGNumberEntry.cxx:2093
 TGNumberEntry.cxx:2094
 TGNumberEntry.cxx:2095
 TGNumberEntry.cxx:2096
 TGNumberEntry.cxx:2097
 TGNumberEntry.cxx:2098
 TGNumberEntry.cxx:2099
 TGNumberEntry.cxx:2100
 TGNumberEntry.cxx:2101
 TGNumberEntry.cxx:2102
 TGNumberEntry.cxx:2103
 TGNumberEntry.cxx:2104
 TGNumberEntry.cxx:2105
 TGNumberEntry.cxx:2106
 TGNumberEntry.cxx:2107
 TGNumberEntry.cxx:2108
 TGNumberEntry.cxx:2109
 TGNumberEntry.cxx:2110
 TGNumberEntry.cxx:2111
 TGNumberEntry.cxx:2112
 TGNumberEntry.cxx:2113
 TGNumberEntry.cxx:2114
 TGNumberEntry.cxx:2115
 TGNumberEntry.cxx:2116
 TGNumberEntry.cxx:2117
 TGNumberEntry.cxx:2118
 TGNumberEntry.cxx:2119
 TGNumberEntry.cxx:2120
 TGNumberEntry.cxx:2121
 TGNumberEntry.cxx:2122
 TGNumberEntry.cxx:2123
 TGNumberEntry.cxx:2124
 TGNumberEntry.cxx:2125
 TGNumberEntry.cxx:2126
 TGNumberEntry.cxx:2127
 TGNumberEntry.cxx:2128
 TGNumberEntry.cxx:2129
 TGNumberEntry.cxx:2130
 TGNumberEntry.cxx:2131
 TGNumberEntry.cxx:2132
 TGNumberEntry.cxx:2133
 TGNumberEntry.cxx:2134
 TGNumberEntry.cxx:2135
 TGNumberEntry.cxx:2136
 TGNumberEntry.cxx:2137
 TGNumberEntry.cxx:2138
 TGNumberEntry.cxx:2139
 TGNumberEntry.cxx:2140
 TGNumberEntry.cxx:2141
 TGNumberEntry.cxx:2142
 TGNumberEntry.cxx:2143
 TGNumberEntry.cxx:2144
 TGNumberEntry.cxx:2145
 TGNumberEntry.cxx:2146
 TGNumberEntry.cxx:2147
 TGNumberEntry.cxx:2148
 TGNumberEntry.cxx:2149
 TGNumberEntry.cxx:2150
 TGNumberEntry.cxx:2151
 TGNumberEntry.cxx:2152
 TGNumberEntry.cxx:2153
 TGNumberEntry.cxx:2154
 TGNumberEntry.cxx:2155
 TGNumberEntry.cxx:2156
 TGNumberEntry.cxx:2157
 TGNumberEntry.cxx:2158
 TGNumberEntry.cxx:2159
 TGNumberEntry.cxx:2160
 TGNumberEntry.cxx:2161
 TGNumberEntry.cxx:2162
 TGNumberEntry.cxx:2163
 TGNumberEntry.cxx:2164
 TGNumberEntry.cxx:2165
 TGNumberEntry.cxx:2166
 TGNumberEntry.cxx:2167
 TGNumberEntry.cxx:2168
 TGNumberEntry.cxx:2169
 TGNumberEntry.cxx:2170
 TGNumberEntry.cxx:2171
 TGNumberEntry.cxx:2172
 TGNumberEntry.cxx:2173
 TGNumberEntry.cxx:2174
 TGNumberEntry.cxx:2175
 TGNumberEntry.cxx:2176
 TGNumberEntry.cxx:2177
 TGNumberEntry.cxx:2178
 TGNumberEntry.cxx:2179
 TGNumberEntry.cxx:2180
 TGNumberEntry.cxx:2181
 TGNumberEntry.cxx:2182
 TGNumberEntry.cxx:2183
 TGNumberEntry.cxx:2184
 TGNumberEntry.cxx:2185
 TGNumberEntry.cxx:2186
 TGNumberEntry.cxx:2187
 TGNumberEntry.cxx:2188
 TGNumberEntry.cxx:2189
 TGNumberEntry.cxx:2190
 TGNumberEntry.cxx:2191
 TGNumberEntry.cxx:2192
 TGNumberEntry.cxx:2193
 TGNumberEntry.cxx:2194
 TGNumberEntry.cxx:2195
 TGNumberEntry.cxx:2196
 TGNumberEntry.cxx:2197
 TGNumberEntry.cxx:2198
 TGNumberEntry.cxx:2199
 TGNumberEntry.cxx:2200
 TGNumberEntry.cxx:2201
 TGNumberEntry.cxx:2202
 TGNumberEntry.cxx:2203
 TGNumberEntry.cxx:2204
 TGNumberEntry.cxx:2205
 TGNumberEntry.cxx:2206
 TGNumberEntry.cxx:2207
 TGNumberEntry.cxx:2208
 TGNumberEntry.cxx:2209
 TGNumberEntry.cxx:2210
 TGNumberEntry.cxx:2211
 TGNumberEntry.cxx:2212
 TGNumberEntry.cxx:2213
 TGNumberEntry.cxx:2214
 TGNumberEntry.cxx:2215
 TGNumberEntry.cxx:2216
 TGNumberEntry.cxx:2217
 TGNumberEntry.cxx:2218
 TGNumberEntry.cxx:2219
 TGNumberEntry.cxx:2220
 TGNumberEntry.cxx:2221
 TGNumberEntry.cxx:2222
 TGNumberEntry.cxx:2223
 TGNumberEntry.cxx:2224
 TGNumberEntry.cxx:2225
 TGNumberEntry.cxx:2226
 TGNumberEntry.cxx:2227
 TGNumberEntry.cxx:2228
 TGNumberEntry.cxx:2229
 TGNumberEntry.cxx:2230
 TGNumberEntry.cxx:2231
 TGNumberEntry.cxx:2232
 TGNumberEntry.cxx:2233
 TGNumberEntry.cxx:2234
 TGNumberEntry.cxx:2235
 TGNumberEntry.cxx:2236
 TGNumberEntry.cxx:2237
 TGNumberEntry.cxx:2238
 TGNumberEntry.cxx:2239
 TGNumberEntry.cxx:2240
 TGNumberEntry.cxx:2241
 TGNumberEntry.cxx:2242
 TGNumberEntry.cxx:2243
 TGNumberEntry.cxx:2244
 TGNumberEntry.cxx:2245
 TGNumberEntry.cxx:2246
 TGNumberEntry.cxx:2247
 TGNumberEntry.cxx:2248
 TGNumberEntry.cxx:2249
 TGNumberEntry.cxx:2250
 TGNumberEntry.cxx:2251
 TGNumberEntry.cxx:2252
 TGNumberEntry.cxx:2253
 TGNumberEntry.cxx:2254
 TGNumberEntry.cxx:2255
 TGNumberEntry.cxx:2256
 TGNumberEntry.cxx:2257
 TGNumberEntry.cxx:2258
 TGNumberEntry.cxx:2259
 TGNumberEntry.cxx:2260
 TGNumberEntry.cxx:2261
 TGNumberEntry.cxx:2262
 TGNumberEntry.cxx:2263
 TGNumberEntry.cxx:2264
 TGNumberEntry.cxx:2265
 TGNumberEntry.cxx:2266
 TGNumberEntry.cxx:2267
 TGNumberEntry.cxx:2268
 TGNumberEntry.cxx:2269
 TGNumberEntry.cxx:2270
 TGNumberEntry.cxx:2271
 TGNumberEntry.cxx:2272
 TGNumberEntry.cxx:2273
 TGNumberEntry.cxx:2274
 TGNumberEntry.cxx:2275
 TGNumberEntry.cxx:2276
 TGNumberEntry.cxx:2277
 TGNumberEntry.cxx:2278
 TGNumberEntry.cxx:2279
 TGNumberEntry.cxx:2280
 TGNumberEntry.cxx:2281
 TGNumberEntry.cxx:2282
 TGNumberEntry.cxx:2283
 TGNumberEntry.cxx:2284
 TGNumberEntry.cxx:2285
 TGNumberEntry.cxx:2286
 TGNumberEntry.cxx:2287
 TGNumberEntry.cxx:2288
 TGNumberEntry.cxx:2289
 TGNumberEntry.cxx:2290
 TGNumberEntry.cxx:2291
 TGNumberEntry.cxx:2292
 TGNumberEntry.cxx:2293
 TGNumberEntry.cxx:2294
 TGNumberEntry.cxx:2295
 TGNumberEntry.cxx:2296
 TGNumberEntry.cxx:2297
 TGNumberEntry.cxx:2298
 TGNumberEntry.cxx:2299
 TGNumberEntry.cxx:2300
 TGNumberEntry.cxx:2301
 TGNumberEntry.cxx:2302
 TGNumberEntry.cxx:2303
 TGNumberEntry.cxx:2304
 TGNumberEntry.cxx:2305
 TGNumberEntry.cxx:2306
 TGNumberEntry.cxx:2307
 TGNumberEntry.cxx:2308
 TGNumberEntry.cxx:2309
 TGNumberEntry.cxx:2310
 TGNumberEntry.cxx:2311
 TGNumberEntry.cxx:2312
 TGNumberEntry.cxx:2313
 TGNumberEntry.cxx:2314
 TGNumberEntry.cxx:2315
 TGNumberEntry.cxx:2316
 TGNumberEntry.cxx:2317
 TGNumberEntry.cxx:2318
 TGNumberEntry.cxx:2319
 TGNumberEntry.cxx:2320