ROOT logo
//__________________________________________________[C++ CLASS IMPLEMENTATION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TC2LSis3302.cxx
// Purpose:        MARaBOU client to connect to LynxOs/VME
// Description:    Implements class methods to connect to VME modules
// Keywords:
// Author:         R. Lutter
// Mailto:         <a href=mailto:rudi.lutter@physik.uni-muenchen.de>R. Lutter</a>
// Revision:       $Id: TC2LSis3302.cxx,v 1.22 2011-07-26 08:41:50 Marabou Exp $
// Date:           $Date: 2011-07-26 08:41:50 $
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <iostream>
#include <iomanip>

#include "Rtypes.h"
#include "TEnv.h"
#include "TDatime.h"
#include "TROOT.h"

#include "TMrbC2Lynx.h"
#include "TC2LSis3302.h"

#include "TMrbTemplate.h"
#include "TMrbNamedX.h"
#include "TMrbLogger.h"
#include "TMrbResource.h"
#include "SetColor.h"

#include "M2L_CommonDefs.h"

extern TMrbLogger * gMrbLog;
extern TMrbC2Lynx * gMrbC2Lynx;

ClassImp(TC2LSis3302)

Bool_t TC2LSis3302::ExecFunction(Int_t Fcode, TArrayI & DataSend, TArrayI & DataRecv, Int_t ChanNo) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TC2LSis3302::ExecFunction()
// Purpose:        Execute function
// Arguments:      Int_t Fcode            -- function code
//                 TArrayI & DataSend     -- data (send)
//                 TArrayI & DataRecv     -- data (receive)
//                 Int_t ChanNo            -- channel
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Executes function.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (this->IsVerbose() || this->IsOffline()) {
		TMrbNamedX * f = this->FindFunction(Fcode);
		TString fn = f ? f->GetName() : "???";
		TString an = (ChanNo == kSis3302AllChans) ? "all" : Form("chnpat=%#x", ChanNo);
		cout << "[" << this->GetName() << ", " << an << "] Exec function - \""
					<< fn << "\" (0x" << setbase(16) << Fcode << setbase(10) << ")";
		for (Int_t i = 0; i < DataSend.GetSize(); i++) {
			if (i == 0) cout	<< ", data: "; else cout << ", ";
			cout	<< DataSend[i]
					<< "|0x" << setbase(16) << DataSend[i] << setbase(10);
		}
		cout << endl;
		if (this->IsOffline()) {
			DataRecv.Set(100);
			return(kTRUE);
		}
	}

	Int_t wc = DataSend.GetSize() + 1;
	M2L_VME_Exec_Function * x = (M2L_VME_Exec_Function *) gMrbC2Lynx->AllocMessage(sizeof(M2L_VME_Exec_Function), wc, kM2L_MESS_VME_EXEC_FUNCTION);
	x->fData.fData[0] = ChanNo;
	Int_t * dp = &x->fData.fData[1];
	for (Int_t i = 0; i < DataSend.GetSize(); i++, dp++) *dp = DataSend[i];
	x->fXhdr.fHandle = this->GetHandle();
	x->fXhdr.fCode = Fcode;
	x->fData.fWc = wc;
	if (gMrbC2Lynx->Send((M2L_MsgHdr *) x)) {
		wc = DataRecv.GetSize();
		M2L_VME_Return_Results * r = (M2L_VME_Return_Results *) gMrbC2Lynx->AllocMessage(sizeof(M2L_VME_Return_Results), wc, kM2L_MESS_VME_EXEC_FUNCTION);
		if (gMrbC2Lynx->Recv((M2L_MsgHdr *) r)) {
			wc = r->fData.fWc;
			DataRecv.Set(wc);
			Int_t * dp = r->fData.fData;
			for (Int_t i = 0; i < wc; i++, dp++) DataRecv[i] = *dp;
			return(kTRUE);
		} else {
			return(kFALSE);
		}
	} else {
		return(kFALSE);
	}
}

Bool_t TC2LSis3302::GetModuleInfo(Int_t & BoardId, Int_t & MajorVersion, Int_t & MinorVersion) {
	if (this->IsOffline()) return(kTRUE);
	M2L_VME_Exec_Function x;
	gMrbC2Lynx->InitMessage((M2L_MsgHdr *) &x, sizeof(M2L_VME_Exec_Function), kM2L_MESS_VME_EXEC_FUNCTION);
	x.fData.fData[0] = kSis3302AllChans;
	x.fXhdr.fHandle = this->GetHandle();
	x.fXhdr.fCode = kM2L_FCT_GET_MODULE_INFO;
	x.fData.fWc = 1;
	if (gMrbC2Lynx->Send((M2L_MsgHdr *) &x)) {
		M2L_VME_Return_Module_Info r;
		r.fHdr.fLength = sizeof(M2L_VME_Return_Module_Info) / sizeof(Int_t);
		if (gMrbC2Lynx->Recv((M2L_MsgHdr *) &r)) {
			BoardId = r.fBoardId;
			MajorVersion = r.fMajorVersion;
			MinorVersion = r.fMinorVersion;
			return(kTRUE);
		} else {
			return(kFALSE);
		}
	} else {
		return(kFALSE);
	}
}

Bool_t TC2LSis3302::GetModuleAddress(UInt_t & Address, Int_t & AddrSpace) {
	if (this->IsOffline()) return(kTRUE);
	M2L_VME_Exec_Function x;
	gMrbC2Lynx->InitMessage((M2L_MsgHdr *) &x, sizeof(M2L_VME_Exec_Function), kM2L_MESS_VME_EXEC_FUNCTION);
	x.fData.fData[0] = kSis3302AllChans;
	x.fXhdr.fHandle = this->GetHandle();
	x.fXhdr.fCode = kM2L_FCT_SIS_3302_GET_MODULE_ADDR;
	x.fData.fWc = 1;
	if (gMrbC2Lynx->Send((M2L_MsgHdr *) &x)) {
		M2L_VME_Return_Module_Addr r;
		r.fHdr.fLength = sizeof(M2L_VME_Return_Module_Info) / sizeof(Int_t);
		if (gMrbC2Lynx->Recv((M2L_MsgHdr *) &r)) {
			Address = r.fAddress;
			AddrSpace = r.fAddrSpace;
			return(kTRUE);
		} else {
			return(kFALSE);
		}
	} else {
		return(kFALSE);
	}
}

Bool_t TC2LSis3302::SetUserLED(Bool_t & OnFlag) {
	TArrayI ledOn(1); ledOn[0] = OnFlag ? 1 : 0;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_USER_LED, ledOn, ledOn, kSis3302AllChans)) return(kFALSE);
	OnFlag = ledOn[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadDac(TArrayI & DacValues, Int_t ChanNo) {
	TArrayI dataSend(0);
	return(this->ExecFunction(kM2L_FCT_SIS_3302_READ_DAC, dataSend, DacValues, ChanNo));
}

Bool_t TC2LSis3302::WriteDac(TArrayI & DacValues, Int_t ChanNo) {
	return(this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_DAC, DacValues, DacValues, ChanNo));
}

Bool_t TC2LSis3302::KeyAddr(Int_t Key) {
	TArrayI keyData(1);
	keyData[0] = Key;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_KEY_ADDR, keyData, keyData));
}

Bool_t TC2LSis3302::ReadEventConfig(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_EVENT_CONFIG, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEventConfig(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_EVENT_CONFIG, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadEventExtendedConfig(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_EVENT_EXTENDED_CONFIG, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEventExtendedConfig(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_EVENT_EXTENDED_CONFIG, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetHeaderBits(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_HEADER_BITS, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetHeaderBits(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_HEADER_BITS, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetGroupId(Int_t & GroupId, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_GROUP_ID, dataSend, bits, ChanNo)) return(kFALSE);
	GroupId = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTriggerMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TRIGGER_MODE, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTriggerMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRIGGER_MODE, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetGateMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_GATE_MODE, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetGateMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_GATE_MODE, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetNextNeighborTriggerMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_NNB_TRIGGER_MODE, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetNextNeighborTriggerMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_NNB_TRIGGER_MODE, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetNextNeighborGateMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_NNB_GATE_MODE, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetNextNeighborGateMode(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_NNB_GATE_MODE, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetPolarity(Bool_t & InvertFlag, Int_t ChanNo) {
	TArrayI flag(1); flag[0] = InvertFlag ? 1 : 0;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_POLARITY, flag, flag, ChanNo)) return(kFALSE);
	InvertFlag = flag[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetPolarity(Bool_t & InvertFlag, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_POLARITY, dataSend, bits, ChanNo)) return(kFALSE);
	InvertFlag = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadEndAddrThresh(Int_t & Thresh, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI thresh;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_END_ADDR_THRESH, dataSend, thresh, ChanNo)) return(kFALSE);
	Thresh = thresh[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEndAddrThresh(Int_t & Thresh, Int_t ChanNo) {
	TArrayI thresh(1); thresh[0] = Thresh;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_END_ADDR_THRESH, thresh, thresh, ChanNo)) return(kFALSE);
	Thresh = thresh[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadPreTrigDelay(Int_t & Delay, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI delay;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_PRETRIG_DELAY, dataSend, delay, ChanNo)) return(kFALSE);
	Delay = delay[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WritePreTrigDelay(Int_t & Delay, Int_t ChanNo) {
	TArrayI delay(1); delay[0] = Delay;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_PRETRIG_DELAY, delay, delay, ChanNo)) return(kFALSE);
	Delay = delay[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigGateLength(Int_t & Gate, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI gate;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_GATE_LENGTH, dataSend, gate, ChanNo)) return(kFALSE);
	Gate = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigGateLength(Int_t & Gate, Int_t ChanNo) {
	TArrayI gate(1); gate[0] = Gate;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_GATE_LENGTH, gate, gate, ChanNo)) return(kFALSE);
	Gate = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadRawDataSampleLength(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_RAW_DATA_SAMPLE_LENGTH, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteRawDataSampleLength(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_RAW_DATA_SAMPLE_LENGTH, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadRawDataStartIndex(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_RAW_DATA_START_INDEX, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteRawDataStartIndex(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_RAW_DATA_START_INDEX, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadNextSampleAddr(Int_t & Addr, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI addr;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_NEXT_SAMPLE_ADDR, dataSend, addr, ChanNo)) return(kFALSE);
	Addr = addr[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadPrevBankSampleAddr(Int_t & Addr, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI addr;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_PREV_BANK_SAMPLE_ADDR, dataSend, addr, ChanNo)) return(kFALSE);
	Addr = addr[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadActualSample(Int_t & Data, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI data;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_ACTUAL_SAMPLE, dataSend, data, ChanNo)) return(kFALSE);
	Data = data[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigPeakAndGap(Int_t & Peak, Int_t & Gap, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI peakgap;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_PEAK_AND_GAP, dataSend, peakgap, ChanNo)) return(kFALSE);
	Peak = peakgap[0];
	Gap = peakgap[1];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigPeakAndGap(Int_t & Peak, Int_t & Gap, Int_t ChanNo) {
	TArrayI peakgap(2); peakgap[0] = Peak; peakgap[1] = Gap;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_PEAK_AND_GAP, peakgap, peakgap, ChanNo)) return(kFALSE);
	Peak = peakgap[0];
	Gap = peakgap[1];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigPulseLength(Int_t & PulseLength, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI pulse;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_PULSE_LENGTH, dataSend, pulse, ChanNo)) return(kFALSE);
	PulseLength = pulse[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigPulseLength(Int_t & PulseLength, Int_t ChanNo) {
	TArrayI pulse(1); pulse[0] = PulseLength;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_PULSE_LENGTH, pulse, pulse, ChanNo)) return(kFALSE);
	PulseLength = pulse[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigInternalGate(Int_t & Gate, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI gate;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_INTERNAL_GATE, dataSend, gate, ChanNo)) return(kFALSE);
	Gate = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigInternalGate(Int_t & Gate, Int_t ChanNo) {
	TArrayI gate(1); gate[0] = Gate;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_INTERNAL_GATE, gate, gate, ChanNo)) return(kFALSE);
	Gate = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigInternalDelay(Int_t & Delay, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI delay;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_INTERNAL_DELAY, dataSend, delay, ChanNo)) return(kFALSE);
	Delay = delay[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigInternalDelay(Int_t & Delay, Int_t ChanNo) {
	TArrayI delay(1); delay[0] = Delay;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_INTERNAL_DELAY, delay, delay, ChanNo)) return(kFALSE);
	Delay = delay[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTrigDecimation(Int_t & Decimation, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI decim;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRIGGER_DECIMATION, dataSend, decim, ChanNo)) return(kFALSE);
	Decimation = decim[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTrigDecimation(Int_t & Decimation, Int_t ChanNo) {
	TArrayI decim(1); decim[0] = Decimation;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TRIGGER_DECIMATION, decim, decim, ChanNo)) return(kFALSE);
	Decimation = decim[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTrigThreshold(Int_t & Thresh, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI thresh;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TRIGGER_THRESH, dataSend, thresh, ChanNo)) return(kFALSE);
	Thresh = thresh[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTrigThreshold(Int_t & Thresh, Int_t ChanNo) {
	TArrayI thresh(1); thresh[0] = Thresh;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TRIGGER_THRESH, thresh, thresh, ChanNo)) return(kFALSE);
	Thresh = thresh[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTriggerGT(Bool_t & GTFlag, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRIGGER_GT, dataSend, bits, ChanNo)) return(kFALSE);
	GTFlag = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTriggerGT(Bool_t & GTFlag, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = GTFlag ? 1 : 0;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TRIGGER_GT, bits, bits, ChanNo)) return(kFALSE);
	GTFlag = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTriggerOut(Bool_t & OutFlag, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRIGGER_OUT, dataSend, bits, ChanNo)) return(kFALSE);
	OutFlag = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTriggerOut(Bool_t & OutFlag, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = OutFlag ? 1 : 0;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TRIGGER_OUT, bits, bits, ChanNo)) return(kFALSE);
	OutFlag = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadEnergyPeakAndGap(Int_t & Peak, Int_t & Gap, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI peakgap;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_ENERGY_PEAK_AND_GAP, dataSend, peakgap, ChanNo)) return(kFALSE);
	Peak = peakgap[0];
	Gap = peakgap[1];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEnergyPeakAndGap(Int_t & Peak, Int_t & Gap, Int_t ChanNo) {
	TArrayI peakgap(2); peakgap[0] = Peak; peakgap[1] = Gap;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_ENERGY_PEAK_AND_GAP, peakgap, peakgap, ChanNo)) return(kFALSE);
	Peak = peakgap[0];
	Gap = peakgap[1];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetEnergyDecimation(Int_t & Decimation, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI decim;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_ENERGY_DECIMATION, dataSend, decim, ChanNo)) return(kFALSE);
	Decimation = decim[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetEnergyDecimation(Int_t & Decimation, Int_t ChanNo) {
	TArrayI decim(1); decim[0] = Decimation;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_ENERGY_DECIMATION, decim, decim, ChanNo)) return(kFALSE);
	Decimation = decim[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadEnergyGateLength(Int_t & GateLength, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI gate;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_ENERGY_GATE_LENGTH, dataSend, gate, ChanNo)) return(kFALSE);
	GateLength = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEnergyGateLength(Int_t & GateLength, Int_t ChanNo) {
	TArrayI gate(1); gate[0] = GateLength;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_ENERGY_GATE_LENGTH, gate, gate, ChanNo)) return(kFALSE);
	GateLength = gate[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTestBits(Int_t & Bits, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TEST_BITS, dataSend, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTestBits(Int_t & Bits, Int_t ChanNo) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TEST_BITS, bits, bits, ChanNo)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadEnergySampleLength(Int_t & SampleLength, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI sample;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_ENERGY_SAMPLE_LENGTH, dataSend, sample, ChanNo)) return(kFALSE);
	SampleLength = sample[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteEnergySampleLength(Int_t & SampleLength, Int_t ChanNo) {
	TArrayI sample(1); sample[0] = SampleLength;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_ENERGY_SAMPLE_LENGTH, sample, sample, ChanNo)) return(kFALSE);
	SampleLength = sample[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadStartIndex(Int_t & IdxVal, Int_t IdxNo, Int_t ChanNo) {
	TArrayI dataSend(1); dataSend[0] = IdxNo;
	TArrayI idxVal;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_START_INDEX, dataSend, idxVal, ChanNo)) return(kFALSE);
	IdxVal = idxVal[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteStartIndex(Int_t & IdxVal, Int_t IdxNo, Int_t ChanNo) {
	TArrayI idxVal(2); idxVal[0] = IdxNo;  idxVal[1] = IdxVal;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_START_INDEX, idxVal, idxVal, ChanNo)) return(kFALSE);
	IdxVal = idxVal[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::ReadTauFactor(Int_t & Tau, Int_t ChanNo) {
	TArrayI dataSend(0);
	TArrayI tauFact;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_READ_TAU_FACTOR, dataSend, tauFact, ChanNo)) return(kFALSE);
	Tau = tauFact[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::WriteTauFactor(Int_t & Tau, Int_t ChanNo) {
	TArrayI tauFact(1); tauFact[0] = Tau;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_WRITE_TAU_FACTOR, tauFact, tauFact, ChanNo)) return(kFALSE);
	Tau = tauFact[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetLemoInMode(Int_t & Bits) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_LEMO_IN_MODE, dataSend, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetLemoInMode(Int_t & Bits) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_LEMO_IN_MODE, bits, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetLemoOutMode(Int_t & Bits) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_LEMO_OUT_MODE, dataSend, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetLemoOutMode(Int_t & Bits) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_LEMO_OUT_MODE, bits, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetLemoInEnableMask(Int_t & Bits) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_LEMO_IN_ENABLE_MASK, dataSend, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetTriggerFeedback(Bool_t & Feedback) {
	TArrayI dataSend(0);
	TArrayI bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRIGGER_FEEDBACK, dataSend, bits, kSis3302AllChans)) return(kFALSE);
	Feedback = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::SetTriggerFeedback(Bool_t & Feedback) {
	TArrayI bits(1); bits[0] = Feedback ? 1 : 0;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_TRIGGER_FEEDBACK, bits, bits, kSis3302AllChans)) return(kFALSE);
	Feedback = (bits[0] != 0);
	return(kTRUE);
}

Bool_t TC2LSis3302::SetLemoInEnableMask(Int_t & Bits) {
	TArrayI bits(1); bits[0] = Bits;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_LEMO_IN_ENABLE_MASK, bits, bits, kSis3302AllChans)) return(kFALSE);
	Bits = bits[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::GetClockSource(Int_t & ClockSource) {
	TArrayI dataSend(0);
	TArrayI clk;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_GET_CLOCK_SOURCE, dataSend, clk, kSis3302AllChans)) return(kFALSE);
	ClockSource = clk[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::SetClockSource(Int_t & ClockSource) {
	TArrayI clk(1); clk[0] = ClockSource;
	if (!this->ExecFunction(kM2L_FCT_SIS_3302_SET_CLOCK_SOURCE, clk, clk, kSis3302AllChans)) return(kFALSE);
	ClockSource = clk[0];
	return(kTRUE);
}

Bool_t TC2LSis3302::StartTraceCollection(Int_t & NofEvents, Int_t & ChanPattern) {
	TArrayI dataSend(2);
	dataSend[0] = NofEvents;
	dataSend[1] = ChanPattern;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_START_TRACE_COLLECTION, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::ContinueTraceCollection() {
	TArrayI dataSend(1);
	dataSend[0] = 0;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_CONT_TRACE_COLLECTION, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::StopTraceCollection() {
	TArrayI dataSend(1);
	dataSend[0] = 0;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_STOP_TRACE_COLLECTION, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::GetTraceLength(TArrayI & Data, Int_t ChanNo) {
	TArrayI dataSend(1);
	Data.Set(kSis3302EventPreHeader);
	if (this->IsDebug()) cout << "[Debug] before GetTraceLength() size=" << Data.GetSize() << endl;
	Bool_t ok = this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRACE_LENGTH, dataSend, Data, ChanNo);
	if (this->IsDebug()) {
		cout << "[Debug] after GetTraceLength() size=" << Data.GetSize() << endl;
		if (this->IsDebugStop()) getchar();
	}
	return ok;
}

Bool_t TC2LSis3302::GetTraceData(TArrayI & Data, Int_t & EventNo, Int_t ChanNo) {
	TArrayI dataSend(1);
	dataSend[0] = EventNo;
	if (this->IsDebug()) cout << "[Debug] before GetTraceData() size=" << Data.GetSize() << " nevts=" << EventNo << endl;
	Bool_t ok = this->ExecFunction(kM2L_FCT_SIS_3302_GET_TRACE_DATA, dataSend, Data, ChanNo);
	if (this->IsDebug()) {
		cout << "[Debug] after GetTraceData() size=" << Data.GetSize() << endl;
		if (this->IsDebugStop()) getchar();
	}
	return ok;
}

Bool_t TC2LSis3302::DumpTrace() {
	TArrayI dataSend(1);
	dataSend[0] = 0;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_DUMP_TRACE, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::RampDac(TArrayI & Data, Int_t ChanNo) {
	TArrayI dataSend(1);
	return(this->ExecFunction(kM2L_FCT_SIS_3302_RAMP_DAC, dataSend, Data, ChanNo));
}

Bool_t TC2LSis3302::DumpRegisters() {
	TArrayI dataSend(1);
	dataSend[0] = 0;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_DUMP_REGISTERS, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::SetVerboseMode(UInt_t SetFlag, UInt_t ClearFlag) {
	if (ClearFlag != 0) fStatus &= ~ClearFlag;
	if (SetFlag != 0) fStatus |= SetFlag;
	if (SetFlag & kSis3302StatusDebugStopMode) fStatus |= kSis3302StatusDebugMode;
	TArrayI dataSend(1);
	dataSend[0] = fStatus;
	return(this->ExecFunction(kM2L_FCT_SIS_3302_SET_VERBOSE_MODE, dataSend, dataSend, kSis3302AllChans));
}

Bool_t TC2LSis3302::RestoreSettings(const Char_t * SettingsFile) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TC2LSis3302::RestoreSettings
// Purpose:        Read settings from file
// Arguments:      Char_t * SettingsFile   -- settings file
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Reads env data from file.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (fSettingsFile.IsNull()) fSettingsFile = Form("%sSettings.rc", this->GetName());

	if (SettingsFile == NULL || *SettingsFile == '\0') SettingsFile = fSettingsFile.Data();

	TString settingsFile = SettingsFile;
	gSystem->ExpandPathName(settingsFile);
	if (gSystem->AccessPathName(settingsFile.Data())) {
		gMrbLog->Err()	<< "Settings file not found - " << settingsFile << endl;
		gMrbLog->Flush("RestoreSettings");
		return(kFALSE);
	}

	TMrbResource * settings = new TMrbResource("SIS3302", settingsFile.Data());
	TString moduleName;
	settings->Get(moduleName, ".ModuleName", "");
	if (moduleName.IsNull()) {
		gMrbLog->Err()	<< "[" << settingsFile << "] Wrong format - module name missing" << endl;
		gMrbLog->Flush("RestoreSettings");
		return(kFALSE);
	}

	TString dotMod = Form(".%s", moduleName.Data());

	Int_t clockSource = settings->Get(dotMod.Data(), NULL, "ClockSource", 0);
	this->SetClockSource(clockSource);

	Int_t lemo = settings->Get(dotMod.Data(), NULL, "LemoOutMode", 0);
	this->SetLemoOutMode(lemo);
	lemo = settings->Get(dotMod.Data(), NULL, "LemoInMode", 0);
	this->SetLemoInMode(lemo);
	lemo = settings->Get(dotMod.Data(), NULL, "LemoInEnableMask", 0);
	this->SetLemoInEnableMask(lemo);

	TArrayI dacValues(kSis3302NofChans);
	for (Int_t i = 0; i < kSis3302NofChans; i++) {
		dacValues[i] = settings->Get(dotMod.Data(), "DacValue", Form("%d", i), 0);
	}
	this->WriteDac(dacValues, kSis3302AllChans);

	Int_t chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t hdrBits = settings->Get(dotMod.Data(), "HeaderBits", Form("%d", chGrp), 0);
		hdrBits &= 0x7ffc;
		this->SetHeaderBits(hdrBits, i);
	}

	for (Int_t i = 0; i < kSis3302NofChans; i++) {
		Int_t trigMode = settings->Get(dotMod.Data(), "TriggerMode", Form("%d", i), 0);
		this->SetTriggerMode(trigMode, i);
		Int_t gateMode = settings->Get(dotMod.Data(), "GateMode", Form("%d", i), 0);
		this->SetGateMode(gateMode, i);
		trigMode = settings->Get(dotMod.Data(), "NextNeighborTrigger", Form("%d", i), 0);
		this->SetNextNeighborTriggerMode(trigMode, i);
		gateMode = settings->Get(dotMod.Data(), "NextNeighborGate", Form("%d", i), 0);
		this->SetNextNeighborGateMode(gateMode, i);
		Bool_t invert = settings->Get(dotMod.Data(), "InvertSignal", Form("%d", i), kFALSE);
		this->SetPolarity(invert, i);
	}

	chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t delay = settings->Get(dotMod.Data(), "PretrigDelay", Form("%d", chGrp), 0);
		this->WritePreTrigDelay(delay, i);
		Int_t gate = settings->Get(dotMod.Data(), "TrigGateLength", Form("%d", chGrp), 0);
		this->WriteTrigGateLength(gate, i);
	}

	chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t length = settings->Get(dotMod.Data(), "RawDataSampleLength", Form("%d", chGrp), 0);
		this->WriteRawDataSampleLength(length, i);
		Int_t start = settings->Get(dotMod.Data(), "RawDataSampleStart", Form("%d", chGrp), 0);
		this->WriteRawDataStartIndex(start, i);
	}

	for (Int_t i = 0; i < kSis3302NofChans; i++) {
		Int_t peak = settings->Get(dotMod.Data(), "TrigPeakTime", Form("%d", i), 0);
		Int_t gap = settings->Get(dotMod.Data(), "TrigGapTime", Form("%d", i), 0);
		this->WriteTrigPeakAndGap(peak, gap, i);
		Int_t gate = settings->Get(dotMod.Data(), "TrigInternalGate", Form("%d", i), 0);
		this->WriteTrigInternalGate(gate, i);
		Int_t delay = settings->Get(dotMod.Data(), "TrigInternalDelay", Form("%d", i), 0);
		this->WriteTrigInternalDelay(delay, i);
		Int_t length = settings->Get(dotMod.Data(), "TrigPulseLength", Form("%d", i), 0);
		this->WriteTrigPulseLength(length, i);
		Int_t decim = settings->Get(dotMod.Data(), "TrigDecimation", Form("%d", i), 0);
		this->SetTrigDecimation(decim, i);
	}

	for (Int_t i = 0; i < kSis3302NofChans; i++) {
		Int_t thresh = settings->Get(dotMod.Data(), "TrigThresh", Form("%d", i), 0);
		this->WriteTrigThreshold(thresh, i);
		Bool_t gt = settings->Get(dotMod.Data(), "TrigGT", Form("%d", i), kFALSE);
		this->SetTriggerGT(gt, i);
		Bool_t out = settings->Get(dotMod.Data(), "TrigOut", Form("%d", i), kFALSE);
		this->SetTriggerOut(out, i);
	}

	chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t peak = settings->Get(dotMod.Data(), "EnergyPeakTime", Form("%d", chGrp), 0);
		Int_t gap = settings->Get(dotMod.Data(), "EnergyGapTime", Form("%d", chGrp), 0);
		this->WriteEnergyPeakAndGap(peak, gap, i);
		Int_t decim = settings->Get(dotMod.Data(), "EnergyDecimation", Form("%d", chGrp), 0);
		this->SetEnergyDecimation(decim, i);
	}

	chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t gate = settings->Get(dotMod.Data(), "EnergyGateLength", Form("%d", chGrp), 0);
		this->WriteEnergyGateLength(gate, i);
		Int_t test = settings->Get(dotMod.Data(), "EnergyTestBits", Form("%d", chGrp), 0);
		this->SetTestBits(test, i);
	}

	chGrp = 12;
	for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
		Int_t length = settings->Get(dotMod.Data(), "EnergySampleLength", Form("%d", chGrp), 0);
		this->WriteEnergySampleLength(length, i);
		Int_t start = settings->Get(dotMod.Data(), "EnergySampleStart1", Form("%d", chGrp), 0);
		this->WriteStartIndex(start, 0, i);
		start = settings->Get(dotMod.Data(), "EnergySampleStart2", Form("%d", chGrp), 0);
		this->WriteStartIndex(start, 1, i);
		start = settings->Get(dotMod.Data(), "EnergySampleStart3", Form("%d", chGrp), 0);
		this->WriteStartIndex(start, 2, i);
	}

	for (Int_t i = 0; i < kSis3302NofChans; i++) {
		Int_t tau = settings->Get(dotMod.Data(), "EnergyTauFactor", Form("%d", i), 0);
		this->WriteTauFactor(tau, i);
	}

	return(kTRUE);
}

Bool_t TC2LSis3302::SaveSettings(const Char_t * SettingsFile) {
//________________________________________________________________[C++ METHOD]
//////////////////////////////////////////////////////////////////////////////
// Name:           TC2LSis3302::SaveSettings
// Purpose:        Write settings to file
// Arguments:      Char_t * SettingsFile   -- settings file
// Results:        kTRUE/kFALSE
// Exceptions:
// Description:    Write env data to file.
// Keywords:
//////////////////////////////////////////////////////////////////////////////

	if (fSettingsFile.IsNull()) fSettingsFile = Form("%sSettings.rc", this->GetName());

	if (SettingsFile == NULL || *SettingsFile == '\0') SettingsFile = fSettingsFile.Data();

	TString settingsFile = SettingsFile;

	ofstream settings(settingsFile.Data(), ios::out);
	if (!settings.good()) {
		gMrbLog->Err() << gSystem->GetError() << " - " << settingsFile << endl;
		gMrbLog->Flush(this->ClassName(), "SaveSettings");
		return(kFALSE);
	}

	TString tmplPath = gEnv->GetValue("TMrbConfig.TemplatePath", ".:config:$(MARABOU)/templates/config");
	TString tf = "Module_Sis_3302.rc.code";
	gSystem->ExpandPathName(tmplPath);

	const Char_t * fp = gSystem->Which(tmplPath.Data(), tf.Data());
	if (fp == NULL) {
		gMrbLog->Err()	<< "Template file not found -" << endl
						<<           "                 Searching on path " << tmplPath << endl
						<<           "                 for file          " << tf << endl;
		gMrbLog->Flush("SaveSettings");
		return(kFALSE);
	}

	tf = fp;

	TMrbLofNamedX tags;
	tags.AddNamedX(TC2LSis3302::kRcModuleSettings, "MODULE_SETTINGS");

	TMrbTemplate tmpl;
	TString line;
	if (tmpl.Open(tf.Data(), &tags)) {
		for (;;) {
			TMrbNamedX * tag = tmpl.Next(line);
			if (tmpl.IsEof()) break;
			if (tmpl.IsError()) continue;
			if (tmpl.Status() & TMrbTemplate::kNoTag) {
				if (line.Index("//-") != 0) settings << line << endl;
			} else {
				switch (tag->GetIndex()) {
					case TC2LSis3302::kRcModuleSettings:
					{
						TDatime d;
						Int_t boardId, majorVersion, minorVersion;
						tmpl.InitializeCode("%Preamble%");
						tmpl.Substitute("$author", gSystem->Getenv("USER"));
						tmpl.Substitute("$date", d.AsString());
						tmpl.Substitute("$moduleName", this->GetName());
						this->GetModuleInfo(boardId, majorVersion, minorVersion);
						tmpl.Substitute("$moduleFirmware", Form("%x%02x", majorVersion, minorVersion));
						tmpl.WriteCode(settings);

						tmpl.InitializeCode("%AcquisitionControl%");
						tmpl.Substitute("$moduleName", this->GetName());
						Int_t clockSource;
						this->GetClockSource(clockSource);
						tmpl.Substitute("$clockSource", clockSource);

						tmpl.Substitute("$mcaMode", "FALSE");

						Int_t lemo;
						this->GetLemoInMode(lemo);
						tmpl.Substitute("$lemoIn", lemo);
						this->GetLemoOutMode(lemo);
						tmpl.Substitute("$lemoOut", lemo);
						this->GetLemoInEnableMask(lemo);
						tmpl.Substitute("$lemoEnableMask", lemo, 16);
						tmpl.WriteCode(settings);

						tmpl.InitializeCode("%DacSettings%");
						tmpl.WriteCode(settings);
						TArrayI dacValues(kSis3302NofChans);
						this->ReadDac(dacValues, kSis3302AllChans);
						for (Int_t i = 0; i < kSis3302NofChans; i++) {
							tmpl.InitializeCode("%DacSettingsLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chanNo", i);
							tmpl.Substitute("$dacValue", dacValues[i]);
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%EventHeader%");
						tmpl.WriteCode(settings);
						Int_t chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%EventHeaderLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t hdrBits;
							this->GetHeaderBits(hdrBits, i);
							tmpl.Substitute("$hdrBits", hdrBits, 16);
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%EventTrigGateNextNeighbor%");
						tmpl.WriteCode(settings);
						for (Int_t i = 0; i < kSis3302NofChans; i++) {
							tmpl.InitializeCode("%EventTrigGateNNLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chanNo", i);
							Int_t trigMode;
							this->GetTriggerMode(trigMode, i);
							Char_t * tm;
							switch (trigMode) {
								case 0: tm = "NoTrig"; break;
								case 1: tm = "Int"; break;
								case 2: tm = "Ext"; break;
								case 3: tm = "Ext|Int"; break;
							}
							tmpl.Substitute("$trigMode", Form("%#x (%s)", trigMode, tm));
							Int_t gateMode;
							this->GetGateMode(gateMode, i);
							Char_t * gm;
							switch (gateMode) {
								case 0: gm = "NoGate"; break;
								case 1: gm = "Int"; break;
								case 2: gm = "Ext"; break;
								case 3: gm = "Ext|Int"; break;
							}
							tmpl.Substitute("$gateMode", Form("%#x (%s)", gateMode, gm));
							this->GetNextNeighborTriggerMode(trigMode, i);
							switch (trigMode) {
								case 0: tm = "NoTrig"; break;
								case 1: tm = "N+1"; break;
								case 2: tm = "N-1"; break;
								case 3: tm = "N+/-1"; break;
							}
							tmpl.Substitute("$nextNeighborTrigger", Form("%#x (%s)", trigMode, tm));
							this->GetNextNeighborGateMode(gateMode, i);
							switch (gateMode) {
								case 0: gm = "NoGate"; break;
								case 1: gm = "N+1"; break;
								case 2: gm = "N-1"; break;
								case 3: gm = "N+/-1"; break;
							}
							tmpl.Substitute("$nextNeighborGate", Form("%#x (%s)", gateMode, gm));
							Bool_t invert;
							this->GetPolarity(invert, i);
							tmpl.Substitute("$invert", invert ? "TRUE" : "FALSE");
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%TrigDelayGate%");
						tmpl.WriteCode(settings);
						chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%TrigDelayGateLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t delay;
							this->ReadPreTrigDelay(delay, i);
							tmpl.Substitute("$delay", delay);
							Int_t gate;
							this->ReadTrigGateLength(gate, i);
							tmpl.Substitute("$gate", gate);
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%RawDataSample%");
						tmpl.WriteCode(settings);
						chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%RawDataSampleLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t length;
							this->ReadRawDataSampleLength(length, i);
							tmpl.Substitute("$length", length);
							Int_t start;
							this->ReadRawDataStartIndex(start, i);
							tmpl.Substitute("$start", start);
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%TriggerSetup%");
						tmpl.WriteCode(settings);
						for (Int_t i = 0; i < kSis3302NofChans; i++) {
							tmpl.InitializeCode("%TriggerSetupLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chanNo", i);
							Int_t peak, gap;
							this->ReadTrigPeakAndGap(peak, gap, i);
							tmpl.Substitute("$peakTime", peak);
							tmpl.Substitute("$gapTime", gap);
							Int_t gate;
							this->ReadTrigInternalGate(gate, i);
							tmpl.Substitute("$gateLength", gate);
							Int_t delay;
							this->ReadTrigInternalDelay(delay, i);
							tmpl.Substitute("$delay", delay);
							Int_t pulse;
							this->ReadTrigPulseLength(pulse, i);
							tmpl.Substitute("$pulseLength", pulse);
							Int_t decim;
							this->GetTrigDecimation(decim, i);
							char * dm;
							switch (decim) {
								case 0: dm = "NoDecim"; break;
								case 1: dm = "2-fold"; break;
								case 2: dm = "4-fold"; break;
								case 3: dm = "8-fold"; break;
							}
							tmpl.Substitute("$decim", Form("%d (%s)", decim, dm));
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%TriggerThresh%");
						tmpl.WriteCode(settings);
						for (Int_t i = 0; i < kSis3302NofChans; i++) {
							tmpl.InitializeCode("%TriggerThreshLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chanNo", i);
							Int_t thresh;
							this->ReadTrigThreshold(thresh, i);
							tmpl.Substitute("$thresh", thresh);
							Bool_t gt, out;
							this->GetTriggerGT(gt, i);
							tmpl.Substitute("$gt", gt ? "TRUE" : "FALSE");
							this->GetTriggerOut(out, i);
							tmpl.Substitute("$out", out ? "TRUE" : "FALSE");
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%EnergySetup%");
						tmpl.WriteCode(settings);
						chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%EnergySetupLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t peak, gap;
							this->ReadEnergyPeakAndGap(peak, gap, i);
							tmpl.Substitute("$peakTime", peak);
							tmpl.Substitute("$gapTime", gap);
							Int_t decim;
							this->GetEnergyDecimation(decim, i);
							char * dm;
							switch (decim) {
								case 0: dm = "NoDecim"; break;
								case 1: dm = "2-fold"; break;
								case 2: dm = "4-fold"; break;
								case 3: dm = "8-fold"; break;
							}
							tmpl.Substitute("$decim", Form("%d (%s)", decim, dm));
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%EnergyGate%");
						tmpl.WriteCode(settings);
						chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%EnergyGateLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t gate;
							this->ReadEnergyGateLength(gate, i);
							tmpl.Substitute("$gate", gate);
							Int_t test;
							this->GetTestBits(test, i);
							tmpl.Substitute("$test", test);
							tmpl.WriteCode(settings);
						}

						tmpl.InitializeCode("%EnergySample%");
						tmpl.WriteCode(settings);
						chGrp = 12;
						for (Int_t i = 0; i < kSis3302NofChans; i += 2, chGrp += 22) {
							tmpl.InitializeCode("%EnergySampleLoop%");
							tmpl.Substitute("$moduleName", this->GetName());
							tmpl.Substitute("$chGrp", chGrp);
							Int_t length;
							this->ReadEnergySampleLength(length, i);
							tmpl.Substitute("$length", length);
							Int_t start;
							this->ReadStartIndex(start, 0, i);
							tmpl.Substitute("$start1", start);
							this->ReadStartIndex(start, 1, i);
							tmpl.Substitute("$start2", start);
							this->ReadStartIndex(start, 2, i);
							tmpl.Substitute("$start3", start);
							tmpl.WriteCode(settings);
						}

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