ROOT logo

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned int magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* Object support */
struct sqltvn
{
  unsigned char *tvnvsn; 
  unsigned short tvnvsnl; 
  unsigned char *tvnnm;
  unsigned short tvnnml; 
  unsigned char *tvnsnm;
  unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;

struct sqladts
{
  unsigned int adtvsn; 
  unsigned short adtmode; 
  unsigned short adtnum;  
  sqltvn adttvn[1];       
};
typedef struct sqladts sqladts;

static struct sqladts sqladt = {
  1,1,0,
};

/* Binding to PL/SQL Records */
struct sqltdss
{
  unsigned int tdsvsn; 
  unsigned short tdsnum; 
  unsigned char *tdsval[1]; 
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
  1,
  0,
};

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[22];
};
static const struct sqlcxp sqlfpn =
{
    21,
    "horaslowreader2010.pc"
};


static unsigned int sqlctx = 157481643;


static struct sqlexd {
   unsigned long  sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   occurs;
      const short *cud;
   unsigned char  *sqlest;
      const char  *stmt;
   sqladts *sqladtp;
   sqltdss *sqltdsp;
   unsigned char  **sqphsv;
   unsigned long  *sqphsl;
            int   *sqphss;
            short **sqpind;
            int   *sqpins;
   unsigned long  *sqparm;
   unsigned long  **sqparc;
   unsigned short  *sqpadto;
   unsigned short  *sqptdso;
   unsigned int   sqlcmax;
   unsigned int   sqlcmin;
   unsigned int   sqlcincr;
   unsigned int   sqlctimeout;
   unsigned int   sqlcnowait;
            int   sqfoff;
   unsigned int   sqcmod;
   unsigned int   sqfmod;
   unsigned int   sqlpfmem;
   unsigned char  *sqhstv[14];
   unsigned long  sqhstl[14];
            int   sqhsts[14];
            short *sqindv[14];
            int   sqinds[14];
   unsigned long  sqharm[14];
   unsigned long  *sqharc[14];
   unsigned short  sqadto[14];
   unsigned short  sqtdso[14];
} sqlstm = {13,14};

// Prototypes
extern "C" {
  void sqlcxt (void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlcx2t(void **, unsigned int *,
               struct sqlexd *, const struct sqlcxp *);
  void sqlbuft(void **, char *);
  void sqlgs2t(void **, char *);
  void sqlorat(void **, unsigned int *, void *);
}

// Forms Interface
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL  = 535;
extern "C" { void sqliem(unsigned char *, signed int *); }

 static const char *sq0001 = 
"select TO_CHAR(starttime,'yyyy-mm-dd hh24:mi:ss') , interval  ,ndata  from h\
ades_slow2.hscs_archiver_rate where (starttime>=TO_DATE(:b0,'yyyy-mm-dd hh24:m\
i:ss') and starttime<TO_DATE(:b1,'yyyy-mm-dd hh24:mi:ss')) order by starttime \
           ";

 static const char *sq0003 = 
"select period_id ,mean_value ,sigma_value ,min_value ,max_value ,num_data_ro\
ws ,stat ,mon_num_data_rows  from hades_slow2.hscs_chan_run_sum_view_ana where\
 (pv_id=:b0 and period_id between :b1 and :b2) order by period_id            ";

 static const char *sq0005 = 
"select TO_CHAR( timestamp ,'yyyy-mm-dd hh24:mi:ss') ,nanosecs ,NVL(value,0.)\
 ,sevr  from hades_slow2.archive_data_f where ( timestamp  between TO_DATE(:b0\
,'yyyy-mm-dd hh24:mi:ss') and TO_DATE(:b1,'yyyy-mm-dd hh24:mi:ss') and pv_id=:\
b2) order by  timestamp ,nanosecs            ";

typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static const short sqlcud0[] =
{13,4130,1,0,0,
5,0,0,1,243,0,9,74,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,
28,0,0,1,0,0,13,76,0,0,3,0,0,1,0,2,97,0,0,2,3,0,0,2,3,0,0,
55,0,0,1,0,0,15,90,0,0,0,0,0,1,0,
70,0,0,2,83,0,4,109,0,0,3,1,0,1,0,2,3,0,0,2,9,0,0,1,97,0,0,
97,0,0,3,231,0,9,169,0,0,3,3,0,1,0,1,3,0,0,1,3,0,0,1,3,0,0,
124,0,0,3,0,0,13,171,0,0,8,0,0,1,0,2,3,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,3,
0,0,2,3,0,0,2,3,0,0,
171,0,0,3,0,0,15,189,0,0,0,0,0,1,0,
186,0,0,4,544,0,4,253,0,0,14,5,0,1,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,4,0,0,2,
4,0,0,2,9,0,0,2,3,0,0,2,97,0,0,1,3,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,
257,0,0,5,277,0,9,341,0,0,3,3,0,1,0,1,97,0,0,1,97,0,0,1,3,0,0,
284,0,0,5,0,0,13,343,0,0,4,0,0,1,0,2,97,0,0,2,3,0,0,2,4,0,0,2,3,0,0,
315,0,0,5,0,0,15,361,0,0,0,0,0,1,0,
};


//*-- AUTHOR  : Ilse Koenig
//*-- Created  : 16/08/2004 by Ilse Koenig
//*-- Modified : 09/02/2011 by Ilse Koenig

//_HADES_CLASS_DESCRIPTION 
//////////////////////////////////////////////////////////////////////////////
//
// HOraSlowReader2010
//
// Class to read slowcontrol data from Oracle for beam times 2010 - 2015
//
//////////////////////////////////////////////////////////////////////////////

#include "horaslowreader2010.h"
#include "hdbconn.h"
#include "horaslowpartition.h"
#include "horaslowperiod.h"
#include "horaslowchannel.h"
#include "horaslowchanrunsum.h"
#include "horaslowchanmeta.h"
#include "horaslowchanraw.h"
#include "horaslowarchrateobj.h"
#include <stdio.h>
#include <stdlib.h>

#define SQLCA_STORAGE_CLASS extern
#define ORACA_STORAGE_CLASS extern

// Oracle communication area
#include <oraca.h>
// SQL Communications Area
#include <sqlca.h>

ClassImp(HOraSlowReader2010)

Bool_t HOraSlowReader2010::readArchiverRates() {
  // Reads the archiver rates in the time range specified in partition
  if (!pConn->isOpen()||!pPartition) return kFALSE;
  TString start=pPartition->getStartTime();
  TString end=pPartition->getEndTime();
  if (start.IsNull()||end.IsNull()) {
    readPartition();
    start=pPartition->getStartTime();
    end=pPartition->getEndTime();
  }
  if (start.IsNull()||end.IsNull()) return kFALSE;
  TString t1=start(0,10);
  TString t2=end(0,10);
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */ 

  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char* tstart;
    char* tend;
    struct {
      char stime[NMAX_SCS][20];
      int  nminutes[NMAX_SCS];
      int  nentries[NMAX_SCS];
    } rates;
  /* EXEC SQL END DECLARE SECTION; */ 

  tstart=(Char_t*)t1.Data();
  tend=(Char_t*)t2.Data();
  TObjArray* data=0;
  Int_t nTot=0;
  Int_t nLast=0;
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND continue; */ 

  /* EXEC SQL DECLARE rates_cursor CURSOR FOR
           SELECT TO_CHAR(starttime,'yyyy-mm-dd hh24:mi:ss'),
                  interval, ndata
           FROM hades_slow2.hscs_archiver_rate
           WHERE starttime >= TO_DATE(:tstart,'yyyy-mm-dd hh24:mi:ss')
             AND starttime < TO_DATE(:tend,'yyyy-mm-dd hh24:mi:ss')
           ORDER BY starttime; */ 

  /* EXEC SQL OPEN rates_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 2;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = sq0001;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )5;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqcmod = (unsigned int )0;
  sqlstm.sqhstv[0] = (unsigned char  *)tstart;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)tend;
  sqlstm.sqhstl[1] = (unsigned long )0;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  do {  
    /* EXEC SQL FETCH rates_cursor INTO :rates; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 3;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )2000;
    sqlstm.offset = (unsigned int  )28;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.sqlpfmem = (unsigned int  )0;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqfoff = (         int )0;
    sqlstm.sqfmod = (unsigned int )2;
    sqlstm.sqhstv[0] = (unsigned char  *)rates.stime;
    sqlstm.sqhstl[0] = (unsigned long )20;
    sqlstm.sqhsts[0] = (         int  )20;
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqharc[0] = (unsigned long  *)0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)rates.nminutes;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[1] = (         int  )sizeof(int);
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqharc[1] = (unsigned long  *)0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)rates.nentries;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[2] = (         int  )sizeof(int);
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqharc[2] = (unsigned long  *)0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) goto errorfound;
}


    nLast=sqlca.sqlerrd[2]-nTot;
    if (nLast>0) {
      if (data==0) data=new TObjArray(nLast);
      else data->Expand(sqlca.sqlerrd[2]);
      for (Int_t i=0;i<nLast;i++) {
        rates.stime[i][19]='\0';
        Int_t v=(Int_t)(rates.nentries[i]/rates.nminutes[i]);
        HOraSlowArchRateObj* p=new HOraSlowArchRateObj(rates.stime[i],v);
        data->AddAt(p,nTot);
        nTot++;
      }
    } 
  } while (nLast==NMAX_SCS&&nTot<=100000);
  /* EXEC SQL CLOSE rates_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 3;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )55;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  pPartition->setRates(data);
  return kTRUE;
errorfound:
  pConn->showSqlError("readArchiverRates");  
  return kFALSE;
}

Int_t HOraSlowReader2010::readChannelId(HOraSlowChannel* pChannel) {
  // Reads the channel id and data type of a channel
  if (!pConn->isOpen()||!pChannel) return kFALSE;
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    char*   chname;
    int     chid;
    /* varchar chtype[3]; */ 
struct { unsigned short len; unsigned char arr[3]; } chtype;

  /* EXEC SQL END DECLARE SECTION; */ 

  chname=(Char_t*)pChannel->GetName();
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */ 

  /* EXEC SQL SELECT pv_id, pv_type INTO :chid, :chtype
           FROM hades_slow2.hscs_channel
           WHERE pv_name = :chname; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 3;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select pv_id ,pv_type into :b0,:b1  from hades_slow2.hscs_c\
hannel where pv_name=:b2";
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )70;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&chid;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)&chtype;
  sqlstm.sqhstl[1] = (unsigned long )5;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)chname;
  sqlstm.sqhstl[2] = (unsigned long )0;
  sqlstm.sqhsts[2] = (         int  )0;
  sqlstm.sqindv[2] = (         short *)0;
  sqlstm.sqinds[2] = (         int  )0;
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode == 1403) goto notfound;
  if (sqlca.sqlcode < 0) goto errorfound;
}


  pChannel->setChannelId(chid);
  chtype.arr[chtype.len]='\0';
  pChannel->setChannelType((Char_t*)chtype.arr);  
  return chid;
notfound:
  Warning("readChannelId","Channel %s not found",chname);
  return -1;
errorfound:
  pConn->showSqlError("readChannelId");  
  return -1;
}  

Bool_t HOraSlowReader2010::readChannelRunSum(HOraSlowChannel* pChannel) {
  // Reads the summary information of a channel for the given partition
  if (!pConn->isOpen()||!pPartition||!pChannel) return kFALSE;
  TObjArray* periods=pPartition->getRunPeriods();
  if (!periods) return kFALSE; 
  Int_t lastIndex=periods->GetLast();
  if (lastIndex<0) return kFALSE;
  Int_t channelId=pChannel->getChannelId();
  if (channelId<0) {
    channelId=readChannelId(pChannel);
  }
  if (channelId<=0) return kFALSE;
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int chid;
    int pmin;
    int pmax;
    struct {
      int     pid[NMAX_SCS];
      double  vmean[NMAX_SCS];
      double  vsigma[NMAX_SCS];
      double  vmin[NMAX_SCS];
      double  vmax[NMAX_SCS];
      int     nd[NMAX_SCS];
      int     vstat[NMAX_SCS];
      int     vmon[NMAX_SCS];
    } runsum;
  /* EXEC SQL END DECLARE SECTION; */ 

  chid=channelId;
  pmin=((HOraSlowPeriod*)(periods->At(0)))->getPeriodId();
  pmax=((HOraSlowPeriod*)(periods->At(lastIndex)))->getPeriodId();
  Int_t nData=lastIndex+1;
  TObjArray* data=new TObjArray(nData);
  Int_t nTot=0;
  Int_t nLast=0;
  Int_t periodId=0;
  HOraSlowPeriod* period=0;
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND continue; */ 

  /* EXEC SQL DECLARE chansum_cursor CURSOR FOR
           SELECT period_id, mean_value, sigma_value, min_value, max_value,
                  num_data_rows, stat, mon_num_data_rows
           FROM hades_slow2.hscs_chan_run_sum_view_ana
           WHERE pv_id = :chid
           AND period_id BETWEEN :pmin AND :pmax
           ORDER BY period_id; */ 

  /* EXEC SQL OPEN chansum_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 3;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = sq0003;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )97;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqcmod = (unsigned int )0;
  sqlstm.sqhstv[0] = (unsigned char  *)&chid;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)&pmin;
  sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)&pmax;
  sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[2] = (         int  )0;
  sqlstm.sqindv[2] = (         short *)0;
  sqlstm.sqinds[2] = (         int  )0;
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  do {  
    /* EXEC SQL FETCH chansum_cursor INTO :runsum; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 8;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )2000;
    sqlstm.offset = (unsigned int  )124;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.sqlpfmem = (unsigned int  )0;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqfoff = (         int )0;
    sqlstm.sqfmod = (unsigned int )2;
    sqlstm.sqhstv[0] = (unsigned char  *)runsum.pid;
    sqlstm.sqhstl[0] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[0] = (         int  )sizeof(int);
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqharc[0] = (unsigned long  *)0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)runsum.vmean;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[1] = (         int  )sizeof(double);
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqharc[1] = (unsigned long  *)0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)runsum.vsigma;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[2] = (         int  )sizeof(double);
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqharc[2] = (unsigned long  *)0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqhstv[3] = (unsigned char  *)runsum.vmin;
    sqlstm.sqhstl[3] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[3] = (         int  )sizeof(double);
    sqlstm.sqindv[3] = (         short *)0;
    sqlstm.sqinds[3] = (         int  )0;
    sqlstm.sqharm[3] = (unsigned long )0;
    sqlstm.sqharc[3] = (unsigned long  *)0;
    sqlstm.sqadto[3] = (unsigned short )0;
    sqlstm.sqtdso[3] = (unsigned short )0;
    sqlstm.sqhstv[4] = (unsigned char  *)runsum.vmax;
    sqlstm.sqhstl[4] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[4] = (         int  )sizeof(double);
    sqlstm.sqindv[4] = (         short *)0;
    sqlstm.sqinds[4] = (         int  )0;
    sqlstm.sqharm[4] = (unsigned long )0;
    sqlstm.sqharc[4] = (unsigned long  *)0;
    sqlstm.sqadto[4] = (unsigned short )0;
    sqlstm.sqtdso[4] = (unsigned short )0;
    sqlstm.sqhstv[5] = (unsigned char  *)runsum.nd;
    sqlstm.sqhstl[5] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[5] = (         int  )sizeof(int);
    sqlstm.sqindv[5] = (         short *)0;
    sqlstm.sqinds[5] = (         int  )0;
    sqlstm.sqharm[5] = (unsigned long )0;
    sqlstm.sqharc[5] = (unsigned long  *)0;
    sqlstm.sqadto[5] = (unsigned short )0;
    sqlstm.sqtdso[5] = (unsigned short )0;
    sqlstm.sqhstv[6] = (unsigned char  *)runsum.vstat;
    sqlstm.sqhstl[6] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[6] = (         int  )sizeof(int);
    sqlstm.sqindv[6] = (         short *)0;
    sqlstm.sqinds[6] = (         int  )0;
    sqlstm.sqharm[6] = (unsigned long )0;
    sqlstm.sqharc[6] = (unsigned long  *)0;
    sqlstm.sqadto[6] = (unsigned short )0;
    sqlstm.sqtdso[6] = (unsigned short )0;
    sqlstm.sqhstv[7] = (unsigned char  *)runsum.vmon;
    sqlstm.sqhstl[7] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[7] = (         int  )sizeof(int);
    sqlstm.sqindv[7] = (         short *)0;
    sqlstm.sqinds[7] = (         int  )0;
    sqlstm.sqharm[7] = (unsigned long )0;
    sqlstm.sqharc[7] = (unsigned long  *)0;
    sqlstm.sqadto[7] = (unsigned short )0;
    sqlstm.sqtdso[7] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) goto errorfound;
}


    nLast=sqlca.sqlerrd[2]-nTot;
    for (Int_t i=0;i<nLast;i++) {
      HOraSlowChanRunSum* p=new HOraSlowChanRunSum();
      period=(HOraSlowPeriod*)(periods->At(nTot));
      periodId=period->getPeriodId();
      if (periodId==runsum.pid[i]) {
        p->setPeriod(period);
        p->fill(runsum.pid[i],runsum.vmean[i],runsum.vsigma[i],
                runsum.vmin[i],runsum.vmax[i],runsum.nd[i],
                runsum.vstat[i],runsum.vmon[i]);
      } else {
        p->fill(periodId,-999.,0.,-999.,-999.,0,1,-1);
      }      
      data->AddAt(p,nTot);
      nTot++;
    } 
  } while (nLast==NMAX_SCS&&nTot<(lastIndex+1));
  /* EXEC SQL CLOSE chansum_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 8;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )171;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  pChannel->setRunSumData(data);
  if (nTot==nData) {
    cout<<"Run summary data for channel "<<pChannel->GetName()<<" read from Oracle\n";
    return kTRUE;
  } else {
    Error("readChannelRunSum","Too few data read");
    return kFALSE;
  }
errorfound:
  pConn->showSqlError("readChannelRunSum");  
  return kFALSE;
}  

Bool_t HOraSlowReader2010::readChannelMetaData(HOraSlowChannel* pChannel) {
  // Reads the meta information of a channel for the given partition
  if (!pConn->isOpen()||!pPartition||!pChannel) return kFALSE;
  TString start=pPartition->getStartTime();
  TString end=pPartition->getEndTime();
  if (start.IsNull()||end.IsNull()) {
    readPartition();
    start=pPartition->getStartTime();
    end=pPartition->getEndTime();
  }
  if (start.IsNull()||end.IsNull()) return kFALSE;
  Int_t channelId=pChannel->getChannelId();
  if (channelId<0) {
    channelId=readChannelId(pChannel);
  }
  if (channelId<=0) return kFALSE;
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int chid;
    char* pstart;
    char* pend;
    struct {
      double  lgraph[NMAX_SCS];
      double  hgraph[NMAX_SCS];
      double  lwarn[NMAX_SCS];
      double  hwarn[NMAX_SCS];
      double  lalarm[NMAX_SCS];
      double  halarm[NMAX_SCS];
      /* varchar un[NMAX_SCS][21]; */ 
struct { unsigned short len; unsigned char arr[22]; } un[2000];

      int     prec[NMAX_SCS];
      char    ts[NMAX_SCS][20];
    } meta;
    struct {
      short lgraph_Ind[NMAX_SCS];
      short hgraph_Ind[NMAX_SCS];
      short lwarn_Ind[NMAX_SCS];
      short hwarn_Ind[NMAX_SCS];
      short lalarm_Ind[NMAX_SCS];
      short halarm_Ind[NMAX_SCS];
      short un_Ind[NMAX_SCS];
      short prec_Ind[NMAX_SCS];
      short ts_Ind[NMAX_SCS];
    } meta_Ind;
  /* EXEC SQL END DECLARE SECTION; */ 

  chid=channelId;
  pstart=(Char_t*)start.Data();
  pend=(Char_t*)end.Data();
  Int_t nData=0;
  Int_t maxPrec=0;
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND continue; */ 

  /* EXEC SQL SELECT lgraph_limit, hgraph_limit, lwarn_limit, hwarn_limit,
                  lalarm_limit, halarm_limit, units, precision,
                  TO_CHAR(md_starttime,'yyyy-mm-dd hh24:mi:ss')
           INTO :meta INDICATOR : meta_Ind
           FROM hades_slow2.arch_meta
           WHERE pv_id = :chid
             AND ( ( md_starttime < TO_DATE(:pstart,'yyyy-mm-dd hh24:mi:ss')
                     AND ( md_endtime IS NULL
                           OR md_endtime > TO_DATE(:pstart,'yyyy-mm-dd hh24:mi:ss') ) )
                OR ( md_starttime BETWEEN TO_DATE(:pstart,'yyyy-mm-dd hh24:mi:ss')
                     AND TO_DATE(:pend,'yyyy-mm-dd hh24:mi:ss') ) )
           ORDER BY md_starttime; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 14;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = "select lgraph_limit ,hgraph_limit ,lwarn_limit ,hwarn_limit\
 ,lalarm_limit ,halarm_limit ,units ,precision ,TO_CHAR(md_starttime,'yyyy-mm-\
dd hh24:mi:ss') into :s1:s2 ,:s3:s4 ,:s5:s6 ,:s7:s8 ,:s9:s10 ,:s11:s12 ,:s13:s\
14 ,:s15:s16 ,:s17:s18   from hades_slow2.arch_meta where (pv_id=:b2 and ((md_\
starttime<TO_DATE(:b3,'yyyy-mm-dd hh24:mi:ss') and (md_endtime is null  or md_\
endtime>TO_DATE(:b3,'yyyy-mm-dd hh24:mi:ss'))) or md_starttime between TO_DATE\
(:b3,'yyyy-mm-dd hh24:mi:ss') and TO_DATE(:b6,'yyyy-mm-dd hh24:mi:ss'))) order\
 by md_starttime ";
  sqlstm.iters = (unsigned int  )2000;
  sqlstm.offset = (unsigned int  )186;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqhstv[0] = (unsigned char  *)meta.lgraph;
  sqlstm.sqhstl[0] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[0] = (         int  )sizeof(double);
  sqlstm.sqindv[0] = (         short *)meta_Ind.lgraph_Ind;
  sqlstm.sqinds[0] = (         int  )sizeof(short);
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqharc[0] = (unsigned long  *)0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)meta.hgraph;
  sqlstm.sqhstl[1] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[1] = (         int  )sizeof(double);
  sqlstm.sqindv[1] = (         short *)meta_Ind.hgraph_Ind;
  sqlstm.sqinds[1] = (         int  )sizeof(short);
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqharc[1] = (unsigned long  *)0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)meta.lwarn;
  sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[2] = (         int  )sizeof(double);
  sqlstm.sqindv[2] = (         short *)meta_Ind.lwarn_Ind;
  sqlstm.sqinds[2] = (         int  )sizeof(short);
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqharc[2] = (unsigned long  *)0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqhstv[3] = (unsigned char  *)meta.hwarn;
  sqlstm.sqhstl[3] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[3] = (         int  )sizeof(double);
  sqlstm.sqindv[3] = (         short *)meta_Ind.hwarn_Ind;
  sqlstm.sqinds[3] = (         int  )sizeof(short);
  sqlstm.sqharm[3] = (unsigned long )0;
  sqlstm.sqharc[3] = (unsigned long  *)0;
  sqlstm.sqadto[3] = (unsigned short )0;
  sqlstm.sqtdso[3] = (unsigned short )0;
  sqlstm.sqhstv[4] = (unsigned char  *)meta.lalarm;
  sqlstm.sqhstl[4] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[4] = (         int  )sizeof(double);
  sqlstm.sqindv[4] = (         short *)meta_Ind.lalarm_Ind;
  sqlstm.sqinds[4] = (         int  )sizeof(short);
  sqlstm.sqharm[4] = (unsigned long )0;
  sqlstm.sqharc[4] = (unsigned long  *)0;
  sqlstm.sqadto[4] = (unsigned short )0;
  sqlstm.sqtdso[4] = (unsigned short )0;
  sqlstm.sqhstv[5] = (unsigned char  *)meta.halarm;
  sqlstm.sqhstl[5] = (unsigned long )sizeof(double);
  sqlstm.sqhsts[5] = (         int  )sizeof(double);
  sqlstm.sqindv[5] = (         short *)meta_Ind.halarm_Ind;
  sqlstm.sqinds[5] = (         int  )sizeof(short);
  sqlstm.sqharm[5] = (unsigned long )0;
  sqlstm.sqharc[5] = (unsigned long  *)0;
  sqlstm.sqadto[5] = (unsigned short )0;
  sqlstm.sqtdso[5] = (unsigned short )0;
  sqlstm.sqhstv[6] = (unsigned char  *)meta.un;
  sqlstm.sqhstl[6] = (unsigned long )23;
  sqlstm.sqhsts[6] = (         int  )24;
  sqlstm.sqindv[6] = (         short *)meta_Ind.un_Ind;
  sqlstm.sqinds[6] = (         int  )sizeof(short);
  sqlstm.sqharm[6] = (unsigned long )0;
  sqlstm.sqharc[6] = (unsigned long  *)0;
  sqlstm.sqadto[6] = (unsigned short )0;
  sqlstm.sqtdso[6] = (unsigned short )0;
  sqlstm.sqhstv[7] = (unsigned char  *)meta.prec;
  sqlstm.sqhstl[7] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[7] = (         int  )sizeof(int);
  sqlstm.sqindv[7] = (         short *)meta_Ind.prec_Ind;
  sqlstm.sqinds[7] = (         int  )sizeof(short);
  sqlstm.sqharm[7] = (unsigned long )0;
  sqlstm.sqharc[7] = (unsigned long  *)0;
  sqlstm.sqadto[7] = (unsigned short )0;
  sqlstm.sqtdso[7] = (unsigned short )0;
  sqlstm.sqhstv[8] = (unsigned char  *)meta.ts;
  sqlstm.sqhstl[8] = (unsigned long )20;
  sqlstm.sqhsts[8] = (         int  )20;
  sqlstm.sqindv[8] = (         short *)meta_Ind.ts_Ind;
  sqlstm.sqinds[8] = (         int  )sizeof(short);
  sqlstm.sqharm[8] = (unsigned long )0;
  sqlstm.sqharc[8] = (unsigned long  *)0;
  sqlstm.sqadto[8] = (unsigned short )0;
  sqlstm.sqtdso[8] = (unsigned short )0;
  sqlstm.sqhstv[9] = (unsigned char  *)&chid;
  sqlstm.sqhstl[9] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[9] = (         int  )sizeof(int);
  sqlstm.sqindv[9] = (         short *)0;
  sqlstm.sqinds[9] = (         int  )0;
  sqlstm.sqharm[9] = (unsigned long )0;
  sqlstm.sqadto[9] = (unsigned short )0;
  sqlstm.sqtdso[9] = (unsigned short )0;
  sqlstm.sqhstv[10] = (unsigned char  *)pstart;
  sqlstm.sqhstl[10] = (unsigned long )0;
  sqlstm.sqhsts[10] = (         int  )0;
  sqlstm.sqindv[10] = (         short *)0;
  sqlstm.sqinds[10] = (         int  )0;
  sqlstm.sqharm[10] = (unsigned long )0;
  sqlstm.sqadto[10] = (unsigned short )0;
  sqlstm.sqtdso[10] = (unsigned short )0;
  sqlstm.sqhstv[11] = (unsigned char  *)pstart;
  sqlstm.sqhstl[11] = (unsigned long )0;
  sqlstm.sqhsts[11] = (         int  )0;
  sqlstm.sqindv[11] = (         short *)0;
  sqlstm.sqinds[11] = (         int  )0;
  sqlstm.sqharm[11] = (unsigned long )0;
  sqlstm.sqadto[11] = (unsigned short )0;
  sqlstm.sqtdso[11] = (unsigned short )0;
  sqlstm.sqhstv[12] = (unsigned char  *)pstart;
  sqlstm.sqhstl[12] = (unsigned long )0;
  sqlstm.sqhsts[12] = (         int  )0;
  sqlstm.sqindv[12] = (         short *)0;
  sqlstm.sqinds[12] = (         int  )0;
  sqlstm.sqharm[12] = (unsigned long )0;
  sqlstm.sqadto[12] = (unsigned short )0;
  sqlstm.sqtdso[12] = (unsigned short )0;
  sqlstm.sqhstv[13] = (unsigned char  *)pend;
  sqlstm.sqhstl[13] = (unsigned long )0;
  sqlstm.sqhsts[13] = (         int  )0;
  sqlstm.sqindv[13] = (         short *)0;
  sqlstm.sqinds[13] = (         int  )0;
  sqlstm.sqharm[13] = (unsigned long )0;
  sqlstm.sqadto[13] = (unsigned short )0;
  sqlstm.sqtdso[13] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  nData=sqlca.sqlerrd[2];
  if (nData>0) {
    TObjArray* data=new TObjArray(nData);
    for (Int_t i=0;i<sqlca.sqlerrd[2];i++) {
      HOraSlowChanMeta* p=new HOraSlowChanMeta();
      if (meta_Ind.lgraph_Ind[i]!=-1) p->setLowGraphLimit(meta.lgraph[i]);
      if (meta_Ind.hgraph_Ind[i]!=-1) p->setHighGraphLimit(meta.hgraph[i]);
      if (meta_Ind.lwarn_Ind[i]!=-1) p->setLowWarnLimit(meta.lwarn[i]);
      if (meta_Ind.hwarn_Ind[i]!=-1) p->setHighWarnLimit(meta.hwarn[i]);
      if (meta_Ind.lalarm_Ind[i]!=-1) p->setLowAlarmLimit(meta.lalarm[i]);
      if (meta_Ind.halarm_Ind[i]!=-1) p->setHighAlarmLimit(meta.halarm[i]);
      if (meta_Ind.un_Ind[i]!=-1) {
        meta.un[i].arr[meta.un[i].len]='\0';
        p->setUnits((Char_t*)meta.un[i].arr);
      }
      if (meta_Ind.prec_Ind[i]!=-1) {
        p->setPrecision(meta.prec[i]);
        if (meta.prec[i]>maxPrec) maxPrec=meta.prec[i];
      }
      if (meta_Ind.ts_Ind[i]!=-1) {
        meta.ts[i][19]='\0';
        p->setStartTime((Char_t*)meta.ts[i]);
      }
      data->AddAt(p,i);
    }
    pChannel->setMetaData(data);
    pChannel->setMaxPrecision(maxPrec);
    cout<<"Meta data for channel "<<pChannel->GetName()<<" read from Oracle\n";
    return kTRUE;
  }
  Error("readChannelMetaData","No meta data found for channel %s",pChannel->GetName());
  return kTRUE;
errorfound:
  pConn->showSqlError("readChannelMetaData");  
  return kFALSE;
}  

Bool_t HOraSlowReader2010::readRawData(HOraSlowChannel* channel,
                                   const Char_t* start, const Char_t* end) {
  // Reads the raw data of a channel in the specified time range
  if (!pConn->isOpen()||channel==0||start==0||end==0) return kFALSE;
  Int_t channelId=channel->getChannelId();
  if (channelId<0) {
    channelId=readChannelId(channel);
  }
  if (channelId<=0) return kFALSE;
  if (channel->getMetaData()==0) readChannelMetaData(channel);
  /* EXEC SQL BEGIN DECLARE SECTION; */ 

    int chid;
    char* tstart;
    char* tend;
    struct {
      char   ti[NMAX_SCS][20];
      int    na[NMAX_SCS];
      double va[NMAX_SCS];
      int    se[NMAX_SCS];
    } rawdata;
  /* EXEC SQL END DECLARE SECTION; */ 

  chid=channelId;
  tstart=(Char_t*)start;
  tend=(Char_t*)end;
  TObjArray* data=0;
  Int_t nTot=0;
  Int_t nLast=0;
  TString lastTimestamp;
  Int_t sevr = 0, status = 0;
  /* EXEC SQL WHENEVER SQLERROR GOTO errorfound; */ 

  /* EXEC SQL WHENEVER NOT FOUND continue; */ 

  /* EXEC SQL DECLARE rawf_cursor CURSOR FOR
           SELECT TO_CHAR(timestamp,'yyyy-mm-dd hh24:mi:ss'),
                  nanosecs, NVL(value,0.), sevr
           FROM hades_slow2.archive_data_f
           WHERE timestamp BETWEEN TO_DATE(:tstart,'yyyy-mm-dd hh24:mi:ss')
                               AND TO_DATE(:tend,'yyyy-mm-dd hh24:mi:ss')
           AND pv_id = :chid
           ORDER BY timestamp, nanosecs; */ 

  /* EXEC SQL OPEN rawf_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 14;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.stmt = sq0005;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )257;
  sqlstm.selerr = (unsigned short)1;
  sqlstm.sqlpfmem = (unsigned int  )0;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlstm.sqcmod = (unsigned int )0;
  sqlstm.sqhstv[0] = (unsigned char  *)tstart;
  sqlstm.sqhstl[0] = (unsigned long )0;
  sqlstm.sqhsts[0] = (         int  )0;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqinds[0] = (         int  )0;
  sqlstm.sqharm[0] = (unsigned long )0;
  sqlstm.sqadto[0] = (unsigned short )0;
  sqlstm.sqtdso[0] = (unsigned short )0;
  sqlstm.sqhstv[1] = (unsigned char  *)tend;
  sqlstm.sqhstl[1] = (unsigned long )0;
  sqlstm.sqhsts[1] = (         int  )0;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqinds[1] = (         int  )0;
  sqlstm.sqharm[1] = (unsigned long )0;
  sqlstm.sqadto[1] = (unsigned short )0;
  sqlstm.sqtdso[1] = (unsigned short )0;
  sqlstm.sqhstv[2] = (unsigned char  *)&chid;
  sqlstm.sqhstl[2] = (unsigned long )sizeof(int);
  sqlstm.sqhsts[2] = (         int  )0;
  sqlstm.sqindv[2] = (         short *)0;
  sqlstm.sqinds[2] = (         int  )0;
  sqlstm.sqharm[2] = (unsigned long )0;
  sqlstm.sqadto[2] = (unsigned short )0;
  sqlstm.sqtdso[2] = (unsigned short )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqphss = sqlstm.sqhsts;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqpins = sqlstm.sqinds;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlstm.sqpadto = sqlstm.sqadto;
  sqlstm.sqptdso = sqlstm.sqtdso;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  do {  
    /* EXEC SQL FETCH rawf_cursor INTO :rawdata; */ 

{
    struct sqlexd sqlstm;
    sqlorat((void **)0, &sqlctx, &oraca);
    sqlstm.sqlvsn = 13;
    sqlstm.arrsiz = 14;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )2000;
    sqlstm.offset = (unsigned int  )284;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.sqlpfmem = (unsigned int  )0;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)4352;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqfoff = (         int )0;
    sqlstm.sqfmod = (unsigned int )2;
    sqlstm.sqhstv[0] = (unsigned char  *)rawdata.ti;
    sqlstm.sqhstl[0] = (unsigned long )20;
    sqlstm.sqhsts[0] = (         int  )20;
    sqlstm.sqindv[0] = (         short *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned long )0;
    sqlstm.sqharc[0] = (unsigned long  *)0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqhstv[1] = (unsigned char  *)rawdata.na;
    sqlstm.sqhstl[1] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[1] = (         int  )sizeof(int);
    sqlstm.sqindv[1] = (         short *)0;
    sqlstm.sqinds[1] = (         int  )0;
    sqlstm.sqharm[1] = (unsigned long )0;
    sqlstm.sqharc[1] = (unsigned long  *)0;
    sqlstm.sqadto[1] = (unsigned short )0;
    sqlstm.sqtdso[1] = (unsigned short )0;
    sqlstm.sqhstv[2] = (unsigned char  *)rawdata.va;
    sqlstm.sqhstl[2] = (unsigned long )sizeof(double);
    sqlstm.sqhsts[2] = (         int  )sizeof(double);
    sqlstm.sqindv[2] = (         short *)0;
    sqlstm.sqinds[2] = (         int  )0;
    sqlstm.sqharm[2] = (unsigned long )0;
    sqlstm.sqharc[2] = (unsigned long  *)0;
    sqlstm.sqadto[2] = (unsigned short )0;
    sqlstm.sqtdso[2] = (unsigned short )0;
    sqlstm.sqhstv[3] = (unsigned char  *)rawdata.se;
    sqlstm.sqhstl[3] = (unsigned long )sizeof(int);
    sqlstm.sqhsts[3] = (         int  )sizeof(int);
    sqlstm.sqindv[3] = (         short *)0;
    sqlstm.sqinds[3] = (         int  )0;
    sqlstm.sqharm[3] = (unsigned long )0;
    sqlstm.sqharc[3] = (unsigned long  *)0;
    sqlstm.sqadto[3] = (unsigned short )0;
    sqlstm.sqtdso[3] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
    if (sqlca.sqlcode < 0) goto errorfound;
}


    nLast=sqlca.sqlerrd[2]-nTot;
    if (nLast>0) {
      if (data==0) data=new TObjArray(nLast);
      else data->Expand(sqlca.sqlerrd[2]);
      for (Int_t i=0;i<nLast;i++) {
        HOraSlowChanRaw* p=new HOraSlowChanRaw();
        rawdata.ti[i][19]='\0';
        sevr=rawdata.se[i];
        if (sevr==3904||sevr==3872||sevr==3874) status=1;
        else status=0;
        p->fill(rawdata.ti[i],rawdata.na[i],rawdata.va[i],status);
        data->AddAt(p,nTot);
        nTot++;
      }
      lastTimestamp=rawdata.ti[nLast-1];
    } 
  } while (nLast==NMAX_SCS&&nTot<=20000);
  /* EXEC SQL CLOSE rawf_cursor; */ 

{
  struct sqlexd sqlstm;
  sqlorat((void **)0, &sqlctx, &oraca);
  sqlstm.sqlvsn = 13;
  sqlstm.arrsiz = 14;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )315;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)4352;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) goto errorfound;
}


  if (nTot>0) {
    if (nTot>=20000) channel->setRawData(data,start,lastTimestamp.Data());
    else channel->setRawData(data,start,end);
    cout<<"Number of raw data: "<<nTot<<'\n';
    return kTRUE;
  }
  Error("readRawData","No raw data found!");
  return kFALSE;
errorfound:
  pConn->showSqlError("readRawData");
  return kFALSE;
}
 horaslowreader2010.pc.cc:1
 horaslowreader2010.pc.cc:2
 horaslowreader2010.pc.cc:3
 horaslowreader2010.pc.cc:4
 horaslowreader2010.pc.cc:5
 horaslowreader2010.pc.cc:6
 horaslowreader2010.pc.cc:7
 horaslowreader2010.pc.cc:8
 horaslowreader2010.pc.cc:9
 horaslowreader2010.pc.cc:10
 horaslowreader2010.pc.cc:11
 horaslowreader2010.pc.cc:12
 horaslowreader2010.pc.cc:13
 horaslowreader2010.pc.cc:14
 horaslowreader2010.pc.cc:15
 horaslowreader2010.pc.cc:16
 horaslowreader2010.pc.cc:17
 horaslowreader2010.pc.cc:18
 horaslowreader2010.pc.cc:19
 horaslowreader2010.pc.cc:20
 horaslowreader2010.pc.cc:21
 horaslowreader2010.pc.cc:22
 horaslowreader2010.pc.cc:23
 horaslowreader2010.pc.cc:24
 horaslowreader2010.pc.cc:25
 horaslowreader2010.pc.cc:26
 horaslowreader2010.pc.cc:27
 horaslowreader2010.pc.cc:28
 horaslowreader2010.pc.cc:29
 horaslowreader2010.pc.cc:30
 horaslowreader2010.pc.cc:31
 horaslowreader2010.pc.cc:32
 horaslowreader2010.pc.cc:33
 horaslowreader2010.pc.cc:34
 horaslowreader2010.pc.cc:35
 horaslowreader2010.pc.cc:36
 horaslowreader2010.pc.cc:37
 horaslowreader2010.pc.cc:38
 horaslowreader2010.pc.cc:39
 horaslowreader2010.pc.cc:40
 horaslowreader2010.pc.cc:41
 horaslowreader2010.pc.cc:42
 horaslowreader2010.pc.cc:43
 horaslowreader2010.pc.cc:44
 horaslowreader2010.pc.cc:45
 horaslowreader2010.pc.cc:46
 horaslowreader2010.pc.cc:47
 horaslowreader2010.pc.cc:48
 horaslowreader2010.pc.cc:49
 horaslowreader2010.pc.cc:50
 horaslowreader2010.pc.cc:51
 horaslowreader2010.pc.cc:52
 horaslowreader2010.pc.cc:53
 horaslowreader2010.pc.cc:54
 horaslowreader2010.pc.cc:55
 horaslowreader2010.pc.cc:56
 horaslowreader2010.pc.cc:57
 horaslowreader2010.pc.cc:58
 horaslowreader2010.pc.cc:59
 horaslowreader2010.pc.cc:60
 horaslowreader2010.pc.cc:61
 horaslowreader2010.pc.cc:62
 horaslowreader2010.pc.cc:63
 horaslowreader2010.pc.cc:64
 horaslowreader2010.pc.cc:65
 horaslowreader2010.pc.cc:66
 horaslowreader2010.pc.cc:67
 horaslowreader2010.pc.cc:68
 horaslowreader2010.pc.cc:69
 horaslowreader2010.pc.cc:70
 horaslowreader2010.pc.cc:71
 horaslowreader2010.pc.cc:72
 horaslowreader2010.pc.cc:73
 horaslowreader2010.pc.cc:74
 horaslowreader2010.pc.cc:75
 horaslowreader2010.pc.cc:76
 horaslowreader2010.pc.cc:77
 horaslowreader2010.pc.cc:78
 horaslowreader2010.pc.cc:79
 horaslowreader2010.pc.cc:80
 horaslowreader2010.pc.cc:81
 horaslowreader2010.pc.cc:82
 horaslowreader2010.pc.cc:83
 horaslowreader2010.pc.cc:84
 horaslowreader2010.pc.cc:85
 horaslowreader2010.pc.cc:86
 horaslowreader2010.pc.cc:87
 horaslowreader2010.pc.cc:88
 horaslowreader2010.pc.cc:89
 horaslowreader2010.pc.cc:90
 horaslowreader2010.pc.cc:91
 horaslowreader2010.pc.cc:92
 horaslowreader2010.pc.cc:93
 horaslowreader2010.pc.cc:94
 horaslowreader2010.pc.cc:95
 horaslowreader2010.pc.cc:96
 horaslowreader2010.pc.cc:97
 horaslowreader2010.pc.cc:98
 horaslowreader2010.pc.cc:99
 horaslowreader2010.pc.cc:100
 horaslowreader2010.pc.cc:101
 horaslowreader2010.pc.cc:102
 horaslowreader2010.pc.cc:103
 horaslowreader2010.pc.cc:104
 horaslowreader2010.pc.cc:105
 horaslowreader2010.pc.cc:106
 horaslowreader2010.pc.cc:107
 horaslowreader2010.pc.cc:108
 horaslowreader2010.pc.cc:109
 horaslowreader2010.pc.cc:110
 horaslowreader2010.pc.cc:111
 horaslowreader2010.pc.cc:112
 horaslowreader2010.pc.cc:113
 horaslowreader2010.pc.cc:114
 horaslowreader2010.pc.cc:115
 horaslowreader2010.pc.cc:116
 horaslowreader2010.pc.cc:117
 horaslowreader2010.pc.cc:118
 horaslowreader2010.pc.cc:119
 horaslowreader2010.pc.cc:120
 horaslowreader2010.pc.cc:121
 horaslowreader2010.pc.cc:122
 horaslowreader2010.pc.cc:123
 horaslowreader2010.pc.cc:124
 horaslowreader2010.pc.cc:125
 horaslowreader2010.pc.cc:126
 horaslowreader2010.pc.cc:127
 horaslowreader2010.pc.cc:128
 horaslowreader2010.pc.cc:129
 horaslowreader2010.pc.cc:130
 horaslowreader2010.pc.cc:131
 horaslowreader2010.pc.cc:132
 horaslowreader2010.pc.cc:133
 horaslowreader2010.pc.cc:134
 horaslowreader2010.pc.cc:135
 horaslowreader2010.pc.cc:136
 horaslowreader2010.pc.cc:137
 horaslowreader2010.pc.cc:138
 horaslowreader2010.pc.cc:139
 horaslowreader2010.pc.cc:140
 horaslowreader2010.pc.cc:141
 horaslowreader2010.pc.cc:142
 horaslowreader2010.pc.cc:143
 horaslowreader2010.pc.cc:144
 horaslowreader2010.pc.cc:145
 horaslowreader2010.pc.cc:146
 horaslowreader2010.pc.cc:147
 horaslowreader2010.pc.cc:148
 horaslowreader2010.pc.cc:149
 horaslowreader2010.pc.cc:150
 horaslowreader2010.pc.cc:151
 horaslowreader2010.pc.cc:152
 horaslowreader2010.pc.cc:153
 horaslowreader2010.pc.cc:154
 horaslowreader2010.pc.cc:155
 horaslowreader2010.pc.cc:156
 horaslowreader2010.pc.cc:157
 horaslowreader2010.pc.cc:158
 horaslowreader2010.pc.cc:159
 horaslowreader2010.pc.cc:160
 horaslowreader2010.pc.cc:161
 horaslowreader2010.pc.cc:162
 horaslowreader2010.pc.cc:163
 horaslowreader2010.pc.cc:164
 horaslowreader2010.pc.cc:165
 horaslowreader2010.pc.cc:166
 horaslowreader2010.pc.cc:167
 horaslowreader2010.pc.cc:168
 horaslowreader2010.pc.cc:169
 horaslowreader2010.pc.cc:170
 horaslowreader2010.pc.cc:171
 horaslowreader2010.pc.cc:172
 horaslowreader2010.pc.cc:173
 horaslowreader2010.pc.cc:174
 horaslowreader2010.pc.cc:175
 horaslowreader2010.pc.cc:176
 horaslowreader2010.pc.cc:177
 horaslowreader2010.pc.cc:178
 horaslowreader2010.pc.cc:179
 horaslowreader2010.pc.cc:180
 horaslowreader2010.pc.cc:181
 horaslowreader2010.pc.cc:182
 horaslowreader2010.pc.cc:183
 horaslowreader2010.pc.cc:184
 horaslowreader2010.pc.cc:185
 horaslowreader2010.pc.cc:186
 horaslowreader2010.pc.cc:187
 horaslowreader2010.pc.cc:188
 horaslowreader2010.pc.cc:189
 horaslowreader2010.pc.cc:190
 horaslowreader2010.pc.cc:191
 horaslowreader2010.pc.cc:192
 horaslowreader2010.pc.cc:193
 horaslowreader2010.pc.cc:194
 horaslowreader2010.pc.cc:195
 horaslowreader2010.pc.cc:196
 horaslowreader2010.pc.cc:197
 horaslowreader2010.pc.cc:198
 horaslowreader2010.pc.cc:199
 horaslowreader2010.pc.cc:200
 horaslowreader2010.pc.cc:201
 horaslowreader2010.pc.cc:202
 horaslowreader2010.pc.cc:203
 horaslowreader2010.pc.cc:204
 horaslowreader2010.pc.cc:205
 horaslowreader2010.pc.cc:206
 horaslowreader2010.pc.cc:207
 horaslowreader2010.pc.cc:208
 horaslowreader2010.pc.cc:209
 horaslowreader2010.pc.cc:210
 horaslowreader2010.pc.cc:211
 horaslowreader2010.pc.cc:212
 horaslowreader2010.pc.cc:213
 horaslowreader2010.pc.cc:214
 horaslowreader2010.pc.cc:215
 horaslowreader2010.pc.cc:216
 horaslowreader2010.pc.cc:217
 horaslowreader2010.pc.cc:218
 horaslowreader2010.pc.cc:219
 horaslowreader2010.pc.cc:220
 horaslowreader2010.pc.cc:221
 horaslowreader2010.pc.cc:222
 horaslowreader2010.pc.cc:223
 horaslowreader2010.pc.cc:224
 horaslowreader2010.pc.cc:225
 horaslowreader2010.pc.cc:226
 horaslowreader2010.pc.cc:227
 horaslowreader2010.pc.cc:228
 horaslowreader2010.pc.cc:229
 horaslowreader2010.pc.cc:230
 horaslowreader2010.pc.cc:231
 horaslowreader2010.pc.cc:232
 horaslowreader2010.pc.cc:233
 horaslowreader2010.pc.cc:234
 horaslowreader2010.pc.cc:235
 horaslowreader2010.pc.cc:236
 horaslowreader2010.pc.cc:237
 horaslowreader2010.pc.cc:238
 horaslowreader2010.pc.cc:239
 horaslowreader2010.pc.cc:240
 horaslowreader2010.pc.cc:241
 horaslowreader2010.pc.cc:242
 horaslowreader2010.pc.cc:243
 horaslowreader2010.pc.cc:244
 horaslowreader2010.pc.cc:245
 horaslowreader2010.pc.cc:246
 horaslowreader2010.pc.cc:247
 horaslowreader2010.pc.cc:248
 horaslowreader2010.pc.cc:249
 horaslowreader2010.pc.cc:250
 horaslowreader2010.pc.cc:251
 horaslowreader2010.pc.cc:252
 horaslowreader2010.pc.cc:253
 horaslowreader2010.pc.cc:254
 horaslowreader2010.pc.cc:255
 horaslowreader2010.pc.cc:256
 horaslowreader2010.pc.cc:257
 horaslowreader2010.pc.cc:258
 horaslowreader2010.pc.cc:259
 horaslowreader2010.pc.cc:260
 horaslowreader2010.pc.cc:261
 horaslowreader2010.pc.cc:262
 horaslowreader2010.pc.cc:263
 horaslowreader2010.pc.cc:264
 horaslowreader2010.pc.cc:265
 horaslowreader2010.pc.cc:266
 horaslowreader2010.pc.cc:267
 horaslowreader2010.pc.cc:268
 horaslowreader2010.pc.cc:269
 horaslowreader2010.pc.cc:270
 horaslowreader2010.pc.cc:271
 horaslowreader2010.pc.cc:272
 horaslowreader2010.pc.cc:273
 horaslowreader2010.pc.cc:274
 horaslowreader2010.pc.cc:275
 horaslowreader2010.pc.cc:276
 horaslowreader2010.pc.cc:277
 horaslowreader2010.pc.cc:278
 horaslowreader2010.pc.cc:279
 horaslowreader2010.pc.cc:280
 horaslowreader2010.pc.cc:281
 horaslowreader2010.pc.cc:282
 horaslowreader2010.pc.cc:283
 horaslowreader2010.pc.cc:284
 horaslowreader2010.pc.cc:285
 horaslowreader2010.pc.cc:286
 horaslowreader2010.pc.cc:287
 horaslowreader2010.pc.cc:288
 horaslowreader2010.pc.cc:289
 horaslowreader2010.pc.cc:290
 horaslowreader2010.pc.cc:291
 horaslowreader2010.pc.cc:292
 horaslowreader2010.pc.cc:293
 horaslowreader2010.pc.cc:294
 horaslowreader2010.pc.cc:295
 horaslowreader2010.pc.cc:296
 horaslowreader2010.pc.cc:297
 horaslowreader2010.pc.cc:298
 horaslowreader2010.pc.cc:299
 horaslowreader2010.pc.cc:300
 horaslowreader2010.pc.cc:301
 horaslowreader2010.pc.cc:302
 horaslowreader2010.pc.cc:303
 horaslowreader2010.pc.cc:304
 horaslowreader2010.pc.cc:305
 horaslowreader2010.pc.cc:306
 horaslowreader2010.pc.cc:307
 horaslowreader2010.pc.cc:308
 horaslowreader2010.pc.cc:309
 horaslowreader2010.pc.cc:310
 horaslowreader2010.pc.cc:311
 horaslowreader2010.pc.cc:312
 horaslowreader2010.pc.cc:313
 horaslowreader2010.pc.cc:314
 horaslowreader2010.pc.cc:315
 horaslowreader2010.pc.cc:316
 horaslowreader2010.pc.cc:317
 horaslowreader2010.pc.cc:318
 horaslowreader2010.pc.cc:319
 horaslowreader2010.pc.cc:320
 horaslowreader2010.pc.cc:321
 horaslowreader2010.pc.cc:322
 horaslowreader2010.pc.cc:323
 horaslowreader2010.pc.cc:324
 horaslowreader2010.pc.cc:325
 horaslowreader2010.pc.cc:326
 horaslowreader2010.pc.cc:327
 horaslowreader2010.pc.cc:328
 horaslowreader2010.pc.cc:329
 horaslowreader2010.pc.cc:330
 horaslowreader2010.pc.cc:331
 horaslowreader2010.pc.cc:332
 horaslowreader2010.pc.cc:333
 horaslowreader2010.pc.cc:334
 horaslowreader2010.pc.cc:335
 horaslowreader2010.pc.cc:336
 horaslowreader2010.pc.cc:337
 horaslowreader2010.pc.cc:338
 horaslowreader2010.pc.cc:339
 horaslowreader2010.pc.cc:340
 horaslowreader2010.pc.cc:341
 horaslowreader2010.pc.cc:342
 horaslowreader2010.pc.cc:343
 horaslowreader2010.pc.cc:344
 horaslowreader2010.pc.cc:345
 horaslowreader2010.pc.cc:346
 horaslowreader2010.pc.cc:347
 horaslowreader2010.pc.cc:348
 horaslowreader2010.pc.cc:349
 horaslowreader2010.pc.cc:350
 horaslowreader2010.pc.cc:351
 horaslowreader2010.pc.cc:352
 horaslowreader2010.pc.cc:353
 horaslowreader2010.pc.cc:354
 horaslowreader2010.pc.cc:355
 horaslowreader2010.pc.cc:356
 horaslowreader2010.pc.cc:357
 horaslowreader2010.pc.cc:358
 horaslowreader2010.pc.cc:359
 horaslowreader2010.pc.cc:360
 horaslowreader2010.pc.cc:361
 horaslowreader2010.pc.cc:362
 horaslowreader2010.pc.cc:363
 horaslowreader2010.pc.cc:364
 horaslowreader2010.pc.cc:365
 horaslowreader2010.pc.cc:366
 horaslowreader2010.pc.cc:367
 horaslowreader2010.pc.cc:368
 horaslowreader2010.pc.cc:369
 horaslowreader2010.pc.cc:370
 horaslowreader2010.pc.cc:371
 horaslowreader2010.pc.cc:372
 horaslowreader2010.pc.cc:373
 horaslowreader2010.pc.cc:374
 horaslowreader2010.pc.cc:375
 horaslowreader2010.pc.cc:376
 horaslowreader2010.pc.cc:377
 horaslowreader2010.pc.cc:378
 horaslowreader2010.pc.cc:379
 horaslowreader2010.pc.cc:380
 horaslowreader2010.pc.cc:381
 horaslowreader2010.pc.cc:382
 horaslowreader2010.pc.cc:383
 horaslowreader2010.pc.cc:384
 horaslowreader2010.pc.cc:385
 horaslowreader2010.pc.cc:386
 horaslowreader2010.pc.cc:387
 horaslowreader2010.pc.cc:388
 horaslowreader2010.pc.cc:389
 horaslowreader2010.pc.cc:390
 horaslowreader2010.pc.cc:391
 horaslowreader2010.pc.cc:392
 horaslowreader2010.pc.cc:393
 horaslowreader2010.pc.cc:394
 horaslowreader2010.pc.cc:395
 horaslowreader2010.pc.cc:396
 horaslowreader2010.pc.cc:397
 horaslowreader2010.pc.cc:398
 horaslowreader2010.pc.cc:399
 horaslowreader2010.pc.cc:400
 horaslowreader2010.pc.cc:401
 horaslowreader2010.pc.cc:402
 horaslowreader2010.pc.cc:403
 horaslowreader2010.pc.cc:404
 horaslowreader2010.pc.cc:405
 horaslowreader2010.pc.cc:406
 horaslowreader2010.pc.cc:407
 horaslowreader2010.pc.cc:408
 horaslowreader2010.pc.cc:409
 horaslowreader2010.pc.cc:410
 horaslowreader2010.pc.cc:411
 horaslowreader2010.pc.cc:412
 horaslowreader2010.pc.cc:413
 horaslowreader2010.pc.cc:414
 horaslowreader2010.pc.cc:415
 horaslowreader2010.pc.cc:416
 horaslowreader2010.pc.cc:417
 horaslowreader2010.pc.cc:418
 horaslowreader2010.pc.cc:419
 horaslowreader2010.pc.cc:420
 horaslowreader2010.pc.cc:421
 horaslowreader2010.pc.cc:422
 horaslowreader2010.pc.cc:423
 horaslowreader2010.pc.cc:424
 horaslowreader2010.pc.cc:425
 horaslowreader2010.pc.cc:426
 horaslowreader2010.pc.cc:427
 horaslowreader2010.pc.cc:428
 horaslowreader2010.pc.cc:429
 horaslowreader2010.pc.cc:430
 horaslowreader2010.pc.cc:431
 horaslowreader2010.pc.cc:432
 horaslowreader2010.pc.cc:433
 horaslowreader2010.pc.cc:434
 horaslowreader2010.pc.cc:435
 horaslowreader2010.pc.cc:436
 horaslowreader2010.pc.cc:437
 horaslowreader2010.pc.cc:438
 horaslowreader2010.pc.cc:439
 horaslowreader2010.pc.cc:440
 horaslowreader2010.pc.cc:441
 horaslowreader2010.pc.cc:442
 horaslowreader2010.pc.cc:443
 horaslowreader2010.pc.cc:444
 horaslowreader2010.pc.cc:445
 horaslowreader2010.pc.cc:446
 horaslowreader2010.pc.cc:447
 horaslowreader2010.pc.cc:448
 horaslowreader2010.pc.cc:449
 horaslowreader2010.pc.cc:450
 horaslowreader2010.pc.cc:451
 horaslowreader2010.pc.cc:452
 horaslowreader2010.pc.cc:453
 horaslowreader2010.pc.cc:454
 horaslowreader2010.pc.cc:455
 horaslowreader2010.pc.cc:456
 horaslowreader2010.pc.cc:457
 horaslowreader2010.pc.cc:458
 horaslowreader2010.pc.cc:459
 horaslowreader2010.pc.cc:460
 horaslowreader2010.pc.cc:461
 horaslowreader2010.pc.cc:462
 horaslowreader2010.pc.cc:463
 horaslowreader2010.pc.cc:464
 horaslowreader2010.pc.cc:465
 horaslowreader2010.pc.cc:466
 horaslowreader2010.pc.cc:467
 horaslowreader2010.pc.cc:468
 horaslowreader2010.pc.cc:469
 horaslowreader2010.pc.cc:470
 horaslowreader2010.pc.cc:471
 horaslowreader2010.pc.cc:472
 horaslowreader2010.pc.cc:473
 horaslowreader2010.pc.cc:474
 horaslowreader2010.pc.cc:475
 horaslowreader2010.pc.cc:476
 horaslowreader2010.pc.cc:477
 horaslowreader2010.pc.cc:478
 horaslowreader2010.pc.cc:479
 horaslowreader2010.pc.cc:480
 horaslowreader2010.pc.cc:481
 horaslowreader2010.pc.cc:482
 horaslowreader2010.pc.cc:483
 horaslowreader2010.pc.cc:484
 horaslowreader2010.pc.cc:485
 horaslowreader2010.pc.cc:486
 horaslowreader2010.pc.cc:487
 horaslowreader2010.pc.cc:488
 horaslowreader2010.pc.cc:489
 horaslowreader2010.pc.cc:490
 horaslowreader2010.pc.cc:491
 horaslowreader2010.pc.cc:492
 horaslowreader2010.pc.cc:493
 horaslowreader2010.pc.cc:494
 horaslowreader2010.pc.cc:495
 horaslowreader2010.pc.cc:496
 horaslowreader2010.pc.cc:497
 horaslowreader2010.pc.cc:498
 horaslowreader2010.pc.cc:499
 horaslowreader2010.pc.cc:500
 horaslowreader2010.pc.cc:501
 horaslowreader2010.pc.cc:502
 horaslowreader2010.pc.cc:503
 horaslowreader2010.pc.cc:504
 horaslowreader2010.pc.cc:505
 horaslowreader2010.pc.cc:506
 horaslowreader2010.pc.cc:507
 horaslowreader2010.pc.cc:508
 horaslowreader2010.pc.cc:509
 horaslowreader2010.pc.cc:510
 horaslowreader2010.pc.cc:511
 horaslowreader2010.pc.cc:512
 horaslowreader2010.pc.cc:513
 horaslowreader2010.pc.cc:514
 horaslowreader2010.pc.cc:515
 horaslowreader2010.pc.cc:516
 horaslowreader2010.pc.cc:517
 horaslowreader2010.pc.cc:518
 horaslowreader2010.pc.cc:519
 horaslowreader2010.pc.cc:520
 horaslowreader2010.pc.cc:521
 horaslowreader2010.pc.cc:522
 horaslowreader2010.pc.cc:523
 horaslowreader2010.pc.cc:524
 horaslowreader2010.pc.cc:525
 horaslowreader2010.pc.cc:526
 horaslowreader2010.pc.cc:527
 horaslowreader2010.pc.cc:528
 horaslowreader2010.pc.cc:529
 horaslowreader2010.pc.cc:530
 horaslowreader2010.pc.cc:531
 horaslowreader2010.pc.cc:532
 horaslowreader2010.pc.cc:533
 horaslowreader2010.pc.cc:534
 horaslowreader2010.pc.cc:535
 horaslowreader2010.pc.cc:536
 horaslowreader2010.pc.cc:537
 horaslowreader2010.pc.cc:538
 horaslowreader2010.pc.cc:539
 horaslowreader2010.pc.cc:540
 horaslowreader2010.pc.cc:541
 horaslowreader2010.pc.cc:542
 horaslowreader2010.pc.cc:543
 horaslowreader2010.pc.cc:544
 horaslowreader2010.pc.cc:545
 horaslowreader2010.pc.cc:546
 horaslowreader2010.pc.cc:547
 horaslowreader2010.pc.cc:548
 horaslowreader2010.pc.cc:549
 horaslowreader2010.pc.cc:550
 horaslowreader2010.pc.cc:551
 horaslowreader2010.pc.cc:552
 horaslowreader2010.pc.cc:553
 horaslowreader2010.pc.cc:554
 horaslowreader2010.pc.cc:555
 horaslowreader2010.pc.cc:556
 horaslowreader2010.pc.cc:557
 horaslowreader2010.pc.cc:558
 horaslowreader2010.pc.cc:559
 horaslowreader2010.pc.cc:560
 horaslowreader2010.pc.cc:561
 horaslowreader2010.pc.cc:562
 horaslowreader2010.pc.cc:563
 horaslowreader2010.pc.cc:564
 horaslowreader2010.pc.cc:565
 horaslowreader2010.pc.cc:566
 horaslowreader2010.pc.cc:567
 horaslowreader2010.pc.cc:568
 horaslowreader2010.pc.cc:569
 horaslowreader2010.pc.cc:570
 horaslowreader2010.pc.cc:571
 horaslowreader2010.pc.cc:572
 horaslowreader2010.pc.cc:573
 horaslowreader2010.pc.cc:574
 horaslowreader2010.pc.cc:575
 horaslowreader2010.pc.cc:576
 horaslowreader2010.pc.cc:577
 horaslowreader2010.pc.cc:578
 horaslowreader2010.pc.cc:579
 horaslowreader2010.pc.cc:580
 horaslowreader2010.pc.cc:581
 horaslowreader2010.pc.cc:582
 horaslowreader2010.pc.cc:583
 horaslowreader2010.pc.cc:584
 horaslowreader2010.pc.cc:585
 horaslowreader2010.pc.cc:586
 horaslowreader2010.pc.cc:587
 horaslowreader2010.pc.cc:588
 horaslowreader2010.pc.cc:589
 horaslowreader2010.pc.cc:590
 horaslowreader2010.pc.cc:591
 horaslowreader2010.pc.cc:592
 horaslowreader2010.pc.cc:593
 horaslowreader2010.pc.cc:594
 horaslowreader2010.pc.cc:595
 horaslowreader2010.pc.cc:596
 horaslowreader2010.pc.cc:597
 horaslowreader2010.pc.cc:598
 horaslowreader2010.pc.cc:599
 horaslowreader2010.pc.cc:600
 horaslowreader2010.pc.cc:601
 horaslowreader2010.pc.cc:602
 horaslowreader2010.pc.cc:603
 horaslowreader2010.pc.cc:604
 horaslowreader2010.pc.cc:605
 horaslowreader2010.pc.cc:606
 horaslowreader2010.pc.cc:607
 horaslowreader2010.pc.cc:608
 horaslowreader2010.pc.cc:609
 horaslowreader2010.pc.cc:610
 horaslowreader2010.pc.cc:611
 horaslowreader2010.pc.cc:612
 horaslowreader2010.pc.cc:613
 horaslowreader2010.pc.cc:614
 horaslowreader2010.pc.cc:615
 horaslowreader2010.pc.cc:616
 horaslowreader2010.pc.cc:617
 horaslowreader2010.pc.cc:618
 horaslowreader2010.pc.cc:619
 horaslowreader2010.pc.cc:620
 horaslowreader2010.pc.cc:621
 horaslowreader2010.pc.cc:622
 horaslowreader2010.pc.cc:623
 horaslowreader2010.pc.cc:624
 horaslowreader2010.pc.cc:625
 horaslowreader2010.pc.cc:626
 horaslowreader2010.pc.cc:627
 horaslowreader2010.pc.cc:628
 horaslowreader2010.pc.cc:629
 horaslowreader2010.pc.cc:630
 horaslowreader2010.pc.cc:631
 horaslowreader2010.pc.cc:632
 horaslowreader2010.pc.cc:633
 horaslowreader2010.pc.cc:634
 horaslowreader2010.pc.cc:635
 horaslowreader2010.pc.cc:636
 horaslowreader2010.pc.cc:637
 horaslowreader2010.pc.cc:638
 horaslowreader2010.pc.cc:639
 horaslowreader2010.pc.cc:640
 horaslowreader2010.pc.cc:641
 horaslowreader2010.pc.cc:642
 horaslowreader2010.pc.cc:643
 horaslowreader2010.pc.cc:644
 horaslowreader2010.pc.cc:645
 horaslowreader2010.pc.cc:646
 horaslowreader2010.pc.cc:647
 horaslowreader2010.pc.cc:648
 horaslowreader2010.pc.cc:649
 horaslowreader2010.pc.cc:650
 horaslowreader2010.pc.cc:651
 horaslowreader2010.pc.cc:652
 horaslowreader2010.pc.cc:653
 horaslowreader2010.pc.cc:654
 horaslowreader2010.pc.cc:655
 horaslowreader2010.pc.cc:656
 horaslowreader2010.pc.cc:657
 horaslowreader2010.pc.cc:658
 horaslowreader2010.pc.cc:659
 horaslowreader2010.pc.cc:660
 horaslowreader2010.pc.cc:661
 horaslowreader2010.pc.cc:662
 horaslowreader2010.pc.cc:663
 horaslowreader2010.pc.cc:664
 horaslowreader2010.pc.cc:665
 horaslowreader2010.pc.cc:666
 horaslowreader2010.pc.cc:667
 horaslowreader2010.pc.cc:668
 horaslowreader2010.pc.cc:669
 horaslowreader2010.pc.cc:670
 horaslowreader2010.pc.cc:671
 horaslowreader2010.pc.cc:672
 horaslowreader2010.pc.cc:673
 horaslowreader2010.pc.cc:674
 horaslowreader2010.pc.cc:675
 horaslowreader2010.pc.cc:676
 horaslowreader2010.pc.cc:677
 horaslowreader2010.pc.cc:678
 horaslowreader2010.pc.cc:679
 horaslowreader2010.pc.cc:680
 horaslowreader2010.pc.cc:681
 horaslowreader2010.pc.cc:682
 horaslowreader2010.pc.cc:683
 horaslowreader2010.pc.cc:684
 horaslowreader2010.pc.cc:685
 horaslowreader2010.pc.cc:686
 horaslowreader2010.pc.cc:687
 horaslowreader2010.pc.cc:688
 horaslowreader2010.pc.cc:689
 horaslowreader2010.pc.cc:690
 horaslowreader2010.pc.cc:691
 horaslowreader2010.pc.cc:692
 horaslowreader2010.pc.cc:693
 horaslowreader2010.pc.cc:694
 horaslowreader2010.pc.cc:695
 horaslowreader2010.pc.cc:696
 horaslowreader2010.pc.cc:697
 horaslowreader2010.pc.cc:698
 horaslowreader2010.pc.cc:699
 horaslowreader2010.pc.cc:700
 horaslowreader2010.pc.cc:701
 horaslowreader2010.pc.cc:702
 horaslowreader2010.pc.cc:703
 horaslowreader2010.pc.cc:704
 horaslowreader2010.pc.cc:705
 horaslowreader2010.pc.cc:706
 horaslowreader2010.pc.cc:707
 horaslowreader2010.pc.cc:708
 horaslowreader2010.pc.cc:709
 horaslowreader2010.pc.cc:710
 horaslowreader2010.pc.cc:711
 horaslowreader2010.pc.cc:712
 horaslowreader2010.pc.cc:713
 horaslowreader2010.pc.cc:714
 horaslowreader2010.pc.cc:715
 horaslowreader2010.pc.cc:716
 horaslowreader2010.pc.cc:717
 horaslowreader2010.pc.cc:718
 horaslowreader2010.pc.cc:719
 horaslowreader2010.pc.cc:720
 horaslowreader2010.pc.cc:721
 horaslowreader2010.pc.cc:722
 horaslowreader2010.pc.cc:723
 horaslowreader2010.pc.cc:724
 horaslowreader2010.pc.cc:725
 horaslowreader2010.pc.cc:726
 horaslowreader2010.pc.cc:727
 horaslowreader2010.pc.cc:728
 horaslowreader2010.pc.cc:729
 horaslowreader2010.pc.cc:730
 horaslowreader2010.pc.cc:731
 horaslowreader2010.pc.cc:732
 horaslowreader2010.pc.cc:733
 horaslowreader2010.pc.cc:734
 horaslowreader2010.pc.cc:735
 horaslowreader2010.pc.cc:736
 horaslowreader2010.pc.cc:737
 horaslowreader2010.pc.cc:738
 horaslowreader2010.pc.cc:739
 horaslowreader2010.pc.cc:740
 horaslowreader2010.pc.cc:741
 horaslowreader2010.pc.cc:742
 horaslowreader2010.pc.cc:743
 horaslowreader2010.pc.cc:744
 horaslowreader2010.pc.cc:745
 horaslowreader2010.pc.cc:746
 horaslowreader2010.pc.cc:747
 horaslowreader2010.pc.cc:748
 horaslowreader2010.pc.cc:749
 horaslowreader2010.pc.cc:750
 horaslowreader2010.pc.cc:751
 horaslowreader2010.pc.cc:752
 horaslowreader2010.pc.cc:753
 horaslowreader2010.pc.cc:754
 horaslowreader2010.pc.cc:755
 horaslowreader2010.pc.cc:756
 horaslowreader2010.pc.cc:757
 horaslowreader2010.pc.cc:758
 horaslowreader2010.pc.cc:759
 horaslowreader2010.pc.cc:760
 horaslowreader2010.pc.cc:761
 horaslowreader2010.pc.cc:762
 horaslowreader2010.pc.cc:763
 horaslowreader2010.pc.cc:764
 horaslowreader2010.pc.cc:765
 horaslowreader2010.pc.cc:766
 horaslowreader2010.pc.cc:767
 horaslowreader2010.pc.cc:768
 horaslowreader2010.pc.cc:769
 horaslowreader2010.pc.cc:770
 horaslowreader2010.pc.cc:771
 horaslowreader2010.pc.cc:772
 horaslowreader2010.pc.cc:773
 horaslowreader2010.pc.cc:774
 horaslowreader2010.pc.cc:775
 horaslowreader2010.pc.cc:776
 horaslowreader2010.pc.cc:777
 horaslowreader2010.pc.cc:778
 horaslowreader2010.pc.cc:779
 horaslowreader2010.pc.cc:780
 horaslowreader2010.pc.cc:781
 horaslowreader2010.pc.cc:782
 horaslowreader2010.pc.cc:783
 horaslowreader2010.pc.cc:784
 horaslowreader2010.pc.cc:785
 horaslowreader2010.pc.cc:786
 horaslowreader2010.pc.cc:787
 horaslowreader2010.pc.cc:788
 horaslowreader2010.pc.cc:789
 horaslowreader2010.pc.cc:790
 horaslowreader2010.pc.cc:791
 horaslowreader2010.pc.cc:792
 horaslowreader2010.pc.cc:793
 horaslowreader2010.pc.cc:794
 horaslowreader2010.pc.cc:795
 horaslowreader2010.pc.cc:796
 horaslowreader2010.pc.cc:797
 horaslowreader2010.pc.cc:798
 horaslowreader2010.pc.cc:799
 horaslowreader2010.pc.cc:800
 horaslowreader2010.pc.cc:801
 horaslowreader2010.pc.cc:802
 horaslowreader2010.pc.cc:803
 horaslowreader2010.pc.cc:804
 horaslowreader2010.pc.cc:805
 horaslowreader2010.pc.cc:806
 horaslowreader2010.pc.cc:807
 horaslowreader2010.pc.cc:808
 horaslowreader2010.pc.cc:809
 horaslowreader2010.pc.cc:810
 horaslowreader2010.pc.cc:811
 horaslowreader2010.pc.cc:812
 horaslowreader2010.pc.cc:813
 horaslowreader2010.pc.cc:814
 horaslowreader2010.pc.cc:815
 horaslowreader2010.pc.cc:816
 horaslowreader2010.pc.cc:817
 horaslowreader2010.pc.cc:818
 horaslowreader2010.pc.cc:819
 horaslowreader2010.pc.cc:820
 horaslowreader2010.pc.cc:821
 horaslowreader2010.pc.cc:822
 horaslowreader2010.pc.cc:823
 horaslowreader2010.pc.cc:824
 horaslowreader2010.pc.cc:825
 horaslowreader2010.pc.cc:826
 horaslowreader2010.pc.cc:827
 horaslowreader2010.pc.cc:828
 horaslowreader2010.pc.cc:829
 horaslowreader2010.pc.cc:830
 horaslowreader2010.pc.cc:831
 horaslowreader2010.pc.cc:832
 horaslowreader2010.pc.cc:833
 horaslowreader2010.pc.cc:834
 horaslowreader2010.pc.cc:835
 horaslowreader2010.pc.cc:836
 horaslowreader2010.pc.cc:837
 horaslowreader2010.pc.cc:838
 horaslowreader2010.pc.cc:839
 horaslowreader2010.pc.cc:840
 horaslowreader2010.pc.cc:841
 horaslowreader2010.pc.cc:842
 horaslowreader2010.pc.cc:843
 horaslowreader2010.pc.cc:844
 horaslowreader2010.pc.cc:845
 horaslowreader2010.pc.cc:846
 horaslowreader2010.pc.cc:847
 horaslowreader2010.pc.cc:848
 horaslowreader2010.pc.cc:849
 horaslowreader2010.pc.cc:850
 horaslowreader2010.pc.cc:851
 horaslowreader2010.pc.cc:852
 horaslowreader2010.pc.cc:853
 horaslowreader2010.pc.cc:854
 horaslowreader2010.pc.cc:855
 horaslowreader2010.pc.cc:856
 horaslowreader2010.pc.cc:857
 horaslowreader2010.pc.cc:858
 horaslowreader2010.pc.cc:859
 horaslowreader2010.pc.cc:860
 horaslowreader2010.pc.cc:861
 horaslowreader2010.pc.cc:862
 horaslowreader2010.pc.cc:863
 horaslowreader2010.pc.cc:864
 horaslowreader2010.pc.cc:865
 horaslowreader2010.pc.cc:866
 horaslowreader2010.pc.cc:867
 horaslowreader2010.pc.cc:868
 horaslowreader2010.pc.cc:869
 horaslowreader2010.pc.cc:870
 horaslowreader2010.pc.cc:871
 horaslowreader2010.pc.cc:872
 horaslowreader2010.pc.cc:873
 horaslowreader2010.pc.cc:874
 horaslowreader2010.pc.cc:875
 horaslowreader2010.pc.cc:876
 horaslowreader2010.pc.cc:877
 horaslowreader2010.pc.cc:878
 horaslowreader2010.pc.cc:879
 horaslowreader2010.pc.cc:880
 horaslowreader2010.pc.cc:881
 horaslowreader2010.pc.cc:882
 horaslowreader2010.pc.cc:883
 horaslowreader2010.pc.cc:884
 horaslowreader2010.pc.cc:885
 horaslowreader2010.pc.cc:886
 horaslowreader2010.pc.cc:887
 horaslowreader2010.pc.cc:888
 horaslowreader2010.pc.cc:889
 horaslowreader2010.pc.cc:890
 horaslowreader2010.pc.cc:891
 horaslowreader2010.pc.cc:892
 horaslowreader2010.pc.cc:893
 horaslowreader2010.pc.cc:894
 horaslowreader2010.pc.cc:895
 horaslowreader2010.pc.cc:896
 horaslowreader2010.pc.cc:897
 horaslowreader2010.pc.cc:898
 horaslowreader2010.pc.cc:899
 horaslowreader2010.pc.cc:900
 horaslowreader2010.pc.cc:901
 horaslowreader2010.pc.cc:902
 horaslowreader2010.pc.cc:903
 horaslowreader2010.pc.cc:904
 horaslowreader2010.pc.cc:905
 horaslowreader2010.pc.cc:906
 horaslowreader2010.pc.cc:907
 horaslowreader2010.pc.cc:908
 horaslowreader2010.pc.cc:909
 horaslowreader2010.pc.cc:910
 horaslowreader2010.pc.cc:911
 horaslowreader2010.pc.cc:912
 horaslowreader2010.pc.cc:913
 horaslowreader2010.pc.cc:914
 horaslowreader2010.pc.cc:915
 horaslowreader2010.pc.cc:916
 horaslowreader2010.pc.cc:917
 horaslowreader2010.pc.cc:918
 horaslowreader2010.pc.cc:919
 horaslowreader2010.pc.cc:920
 horaslowreader2010.pc.cc:921
 horaslowreader2010.pc.cc:922
 horaslowreader2010.pc.cc:923
 horaslowreader2010.pc.cc:924
 horaslowreader2010.pc.cc:925
 horaslowreader2010.pc.cc:926
 horaslowreader2010.pc.cc:927
 horaslowreader2010.pc.cc:928
 horaslowreader2010.pc.cc:929
 horaslowreader2010.pc.cc:930
 horaslowreader2010.pc.cc:931
 horaslowreader2010.pc.cc:932
 horaslowreader2010.pc.cc:933
 horaslowreader2010.pc.cc:934
 horaslowreader2010.pc.cc:935
 horaslowreader2010.pc.cc:936
 horaslowreader2010.pc.cc:937
 horaslowreader2010.pc.cc:938
 horaslowreader2010.pc.cc:939
 horaslowreader2010.pc.cc:940
 horaslowreader2010.pc.cc:941
 horaslowreader2010.pc.cc:942
 horaslowreader2010.pc.cc:943
 horaslowreader2010.pc.cc:944
 horaslowreader2010.pc.cc:945
 horaslowreader2010.pc.cc:946
 horaslowreader2010.pc.cc:947
 horaslowreader2010.pc.cc:948
 horaslowreader2010.pc.cc:949
 horaslowreader2010.pc.cc:950
 horaslowreader2010.pc.cc:951
 horaslowreader2010.pc.cc:952
 horaslowreader2010.pc.cc:953
 horaslowreader2010.pc.cc:954
 horaslowreader2010.pc.cc:955
 horaslowreader2010.pc.cc:956
 horaslowreader2010.pc.cc:957
 horaslowreader2010.pc.cc:958
 horaslowreader2010.pc.cc:959
 horaslowreader2010.pc.cc:960
 horaslowreader2010.pc.cc:961
 horaslowreader2010.pc.cc:962
 horaslowreader2010.pc.cc:963
 horaslowreader2010.pc.cc:964
 horaslowreader2010.pc.cc:965
 horaslowreader2010.pc.cc:966
 horaslowreader2010.pc.cc:967
 horaslowreader2010.pc.cc:968
 horaslowreader2010.pc.cc:969
 horaslowreader2010.pc.cc:970
 horaslowreader2010.pc.cc:971
 horaslowreader2010.pc.cc:972
 horaslowreader2010.pc.cc:973
 horaslowreader2010.pc.cc:974
 horaslowreader2010.pc.cc:975
 horaslowreader2010.pc.cc:976
 horaslowreader2010.pc.cc:977
 horaslowreader2010.pc.cc:978
 horaslowreader2010.pc.cc:979
 horaslowreader2010.pc.cc:980
 horaslowreader2010.pc.cc:981
 horaslowreader2010.pc.cc:982
 horaslowreader2010.pc.cc:983
 horaslowreader2010.pc.cc:984
 horaslowreader2010.pc.cc:985
 horaslowreader2010.pc.cc:986
 horaslowreader2010.pc.cc:987
 horaslowreader2010.pc.cc:988
 horaslowreader2010.pc.cc:989
 horaslowreader2010.pc.cc:990
 horaslowreader2010.pc.cc:991
 horaslowreader2010.pc.cc:992
 horaslowreader2010.pc.cc:993
 horaslowreader2010.pc.cc:994
 horaslowreader2010.pc.cc:995
 horaslowreader2010.pc.cc:996
 horaslowreader2010.pc.cc:997
 horaslowreader2010.pc.cc:998
 horaslowreader2010.pc.cc:999
 horaslowreader2010.pc.cc:1000
 horaslowreader2010.pc.cc:1001
 horaslowreader2010.pc.cc:1002
 horaslowreader2010.pc.cc:1003
 horaslowreader2010.pc.cc:1004
 horaslowreader2010.pc.cc:1005
 horaslowreader2010.pc.cc:1006
 horaslowreader2010.pc.cc:1007
 horaslowreader2010.pc.cc:1008
 horaslowreader2010.pc.cc:1009
 horaslowreader2010.pc.cc:1010
 horaslowreader2010.pc.cc:1011
 horaslowreader2010.pc.cc:1012
 horaslowreader2010.pc.cc:1013
 horaslowreader2010.pc.cc:1014
 horaslowreader2010.pc.cc:1015
 horaslowreader2010.pc.cc:1016
 horaslowreader2010.pc.cc:1017
 horaslowreader2010.pc.cc:1018
 horaslowreader2010.pc.cc:1019
 horaslowreader2010.pc.cc:1020
 horaslowreader2010.pc.cc:1021
 horaslowreader2010.pc.cc:1022
 horaslowreader2010.pc.cc:1023
 horaslowreader2010.pc.cc:1024
 horaslowreader2010.pc.cc:1025
 horaslowreader2010.pc.cc:1026
 horaslowreader2010.pc.cc:1027
 horaslowreader2010.pc.cc:1028
 horaslowreader2010.pc.cc:1029
 horaslowreader2010.pc.cc:1030
 horaslowreader2010.pc.cc:1031
 horaslowreader2010.pc.cc:1032
 horaslowreader2010.pc.cc:1033
 horaslowreader2010.pc.cc:1034
 horaslowreader2010.pc.cc:1035
 horaslowreader2010.pc.cc:1036
 horaslowreader2010.pc.cc:1037
 horaslowreader2010.pc.cc:1038
 horaslowreader2010.pc.cc:1039
 horaslowreader2010.pc.cc:1040
 horaslowreader2010.pc.cc:1041
 horaslowreader2010.pc.cc:1042
 horaslowreader2010.pc.cc:1043
 horaslowreader2010.pc.cc:1044
 horaslowreader2010.pc.cc:1045
 horaslowreader2010.pc.cc:1046
 horaslowreader2010.pc.cc:1047
 horaslowreader2010.pc.cc:1048
 horaslowreader2010.pc.cc:1049
 horaslowreader2010.pc.cc:1050
 horaslowreader2010.pc.cc:1051
 horaslowreader2010.pc.cc:1052
 horaslowreader2010.pc.cc:1053
 horaslowreader2010.pc.cc:1054
 horaslowreader2010.pc.cc:1055
 horaslowreader2010.pc.cc:1056
 horaslowreader2010.pc.cc:1057
 horaslowreader2010.pc.cc:1058
 horaslowreader2010.pc.cc:1059
 horaslowreader2010.pc.cc:1060
 horaslowreader2010.pc.cc:1061
 horaslowreader2010.pc.cc:1062
 horaslowreader2010.pc.cc:1063
 horaslowreader2010.pc.cc:1064
 horaslowreader2010.pc.cc:1065
 horaslowreader2010.pc.cc:1066
 horaslowreader2010.pc.cc:1067
 horaslowreader2010.pc.cc:1068
 horaslowreader2010.pc.cc:1069
 horaslowreader2010.pc.cc:1070
 horaslowreader2010.pc.cc:1071
 horaslowreader2010.pc.cc:1072
 horaslowreader2010.pc.cc:1073
 horaslowreader2010.pc.cc:1074
 horaslowreader2010.pc.cc:1075
 horaslowreader2010.pc.cc:1076
 horaslowreader2010.pc.cc:1077
 horaslowreader2010.pc.cc:1078
 horaslowreader2010.pc.cc:1079
 horaslowreader2010.pc.cc:1080
 horaslowreader2010.pc.cc:1081
 horaslowreader2010.pc.cc:1082
 horaslowreader2010.pc.cc:1083
 horaslowreader2010.pc.cc:1084
 horaslowreader2010.pc.cc:1085
 horaslowreader2010.pc.cc:1086
 horaslowreader2010.pc.cc:1087
 horaslowreader2010.pc.cc:1088
 horaslowreader2010.pc.cc:1089
 horaslowreader2010.pc.cc:1090
 horaslowreader2010.pc.cc:1091
 horaslowreader2010.pc.cc:1092
 horaslowreader2010.pc.cc:1093
 horaslowreader2010.pc.cc:1094
 horaslowreader2010.pc.cc:1095
 horaslowreader2010.pc.cc:1096
 horaslowreader2010.pc.cc:1097
 horaslowreader2010.pc.cc:1098
 horaslowreader2010.pc.cc:1099
 horaslowreader2010.pc.cc:1100
 horaslowreader2010.pc.cc:1101
 horaslowreader2010.pc.cc:1102
 horaslowreader2010.pc.cc:1103
 horaslowreader2010.pc.cc:1104
 horaslowreader2010.pc.cc:1105
 horaslowreader2010.pc.cc:1106
 horaslowreader2010.pc.cc:1107
 horaslowreader2010.pc.cc:1108
 horaslowreader2010.pc.cc:1109
 horaslowreader2010.pc.cc:1110
 horaslowreader2010.pc.cc:1111
 horaslowreader2010.pc.cc:1112
 horaslowreader2010.pc.cc:1113
 horaslowreader2010.pc.cc:1114
 horaslowreader2010.pc.cc:1115
 horaslowreader2010.pc.cc:1116
 horaslowreader2010.pc.cc:1117
 horaslowreader2010.pc.cc:1118
 horaslowreader2010.pc.cc:1119
 horaslowreader2010.pc.cc:1120
 horaslowreader2010.pc.cc:1121
 horaslowreader2010.pc.cc:1122
 horaslowreader2010.pc.cc:1123
 horaslowreader2010.pc.cc:1124
 horaslowreader2010.pc.cc:1125
 horaslowreader2010.pc.cc:1126
 horaslowreader2010.pc.cc:1127
 horaslowreader2010.pc.cc:1128
 horaslowreader2010.pc.cc:1129
 horaslowreader2010.pc.cc:1130
 horaslowreader2010.pc.cc:1131
 horaslowreader2010.pc.cc:1132
 horaslowreader2010.pc.cc:1133
 horaslowreader2010.pc.cc:1134
 horaslowreader2010.pc.cc:1135
 horaslowreader2010.pc.cc:1136
 horaslowreader2010.pc.cc:1137
 horaslowreader2010.pc.cc:1138
 horaslowreader2010.pc.cc:1139
 horaslowreader2010.pc.cc:1140
 horaslowreader2010.pc.cc:1141
 horaslowreader2010.pc.cc:1142
 horaslowreader2010.pc.cc:1143
 horaslowreader2010.pc.cc:1144
 horaslowreader2010.pc.cc:1145
 horaslowreader2010.pc.cc:1146
 horaslowreader2010.pc.cc:1147
 horaslowreader2010.pc.cc:1148
 horaslowreader2010.pc.cc:1149
 horaslowreader2010.pc.cc:1150
 horaslowreader2010.pc.cc:1151
 horaslowreader2010.pc.cc:1152
 horaslowreader2010.pc.cc:1153
 horaslowreader2010.pc.cc:1154
 horaslowreader2010.pc.cc:1155
 horaslowreader2010.pc.cc:1156
 horaslowreader2010.pc.cc:1157
 horaslowreader2010.pc.cc:1158
 horaslowreader2010.pc.cc:1159
 horaslowreader2010.pc.cc:1160
 horaslowreader2010.pc.cc:1161
 horaslowreader2010.pc.cc:1162
 horaslowreader2010.pc.cc:1163
 horaslowreader2010.pc.cc:1164
 horaslowreader2010.pc.cc:1165
 horaslowreader2010.pc.cc:1166
 horaslowreader2010.pc.cc:1167
 horaslowreader2010.pc.cc:1168
 horaslowreader2010.pc.cc:1169
 horaslowreader2010.pc.cc:1170
 horaslowreader2010.pc.cc:1171
 horaslowreader2010.pc.cc:1172
 horaslowreader2010.pc.cc:1173
 horaslowreader2010.pc.cc:1174
 horaslowreader2010.pc.cc:1175
 horaslowreader2010.pc.cc:1176
 horaslowreader2010.pc.cc:1177
 horaslowreader2010.pc.cc:1178
 horaslowreader2010.pc.cc:1179
 horaslowreader2010.pc.cc:1180
 horaslowreader2010.pc.cc:1181
 horaslowreader2010.pc.cc:1182
 horaslowreader2010.pc.cc:1183
 horaslowreader2010.pc.cc:1184
 horaslowreader2010.pc.cc:1185
 horaslowreader2010.pc.cc:1186
 horaslowreader2010.pc.cc:1187
 horaslowreader2010.pc.cc:1188
 horaslowreader2010.pc.cc:1189
 horaslowreader2010.pc.cc:1190
 horaslowreader2010.pc.cc:1191
 horaslowreader2010.pc.cc:1192
 horaslowreader2010.pc.cc:1193
 horaslowreader2010.pc.cc:1194
 horaslowreader2010.pc.cc:1195
 horaslowreader2010.pc.cc:1196
 horaslowreader2010.pc.cc:1197
 horaslowreader2010.pc.cc:1198
 horaslowreader2010.pc.cc:1199
 horaslowreader2010.pc.cc:1200
 horaslowreader2010.pc.cc:1201
 horaslowreader2010.pc.cc:1202
 horaslowreader2010.pc.cc:1203
 horaslowreader2010.pc.cc:1204
 horaslowreader2010.pc.cc:1205
 horaslowreader2010.pc.cc:1206
 horaslowreader2010.pc.cc:1207
 horaslowreader2010.pc.cc:1208
 horaslowreader2010.pc.cc:1209
 horaslowreader2010.pc.cc:1210
 horaslowreader2010.pc.cc:1211
 horaslowreader2010.pc.cc:1212
 horaslowreader2010.pc.cc:1213
 horaslowreader2010.pc.cc:1214
 horaslowreader2010.pc.cc:1215
 horaslowreader2010.pc.cc:1216
 horaslowreader2010.pc.cc:1217
 horaslowreader2010.pc.cc:1218
 horaslowreader2010.pc.cc:1219
 horaslowreader2010.pc.cc:1220
 horaslowreader2010.pc.cc:1221
 horaslowreader2010.pc.cc:1222
 horaslowreader2010.pc.cc:1223
 horaslowreader2010.pc.cc:1224
 horaslowreader2010.pc.cc:1225
 horaslowreader2010.pc.cc:1226
 horaslowreader2010.pc.cc:1227
 horaslowreader2010.pc.cc:1228
 horaslowreader2010.pc.cc:1229
 horaslowreader2010.pc.cc:1230
 horaslowreader2010.pc.cc:1231
 horaslowreader2010.pc.cc:1232
 horaslowreader2010.pc.cc:1233
 horaslowreader2010.pc.cc:1234
 horaslowreader2010.pc.cc:1235
 horaslowreader2010.pc.cc:1236
 horaslowreader2010.pc.cc:1237
 horaslowreader2010.pc.cc:1238