#include "hades.h"
#include "hcategory.h"
#include "hdebug.h"
#include "hevent.h"
#include "heventheader.h"
#include "hldsource.h"
#include "hldsubevt.h"
#include "hruntimedb.h"
#include "hspectrometer.h"
#include "hrichdetector.h"
#include "hrich700raw.h"
#include "hrichcal.h"
#include "hrichcalsim.h"
#include "hrich700trb3unpacker.h"
#include "hrich700trb3lookup.h"
#include "hrich700thresholdpar.h"
#include "hrich700digipar.h"
#include "htrbnetunpacker.h"
#include "richdef.h"
#include <iostream>
using namespace std;
ClassImp(HRich700Trb3Unpacker)
Bool_t HRich700Trb3Unpacker::fHasPrintedTDC = kFALSE;
HRich700Trb3Unpacker::HRich700Trb3Unpacker(vector<UInt_t> &ids)
: HTrb3TdcUnpacker(ids)
{
setHUBId(0x9000);
setCTSId(0xC001);
fCalCat = NULL;
pRawCat = NULL;
fTimeRef = kTRUE;
fLookup = NULL;
fThresholds = NULL;
fDoTimeCut = kFALSE;
fDoToTCut = kTRUE;
fFillCal = kFALSE;
}
Bool_t HRich700Trb3Unpacker::init(void)
{
HRichDetector* det = (HRichDetector*)gHades->getSetup()->getDetector("Rich");
if (!det) {
Error("init", "No Rich Detector found.");
return kFALSE;
}
pRawCat = gHades->getCurrentEvent()->getCategory(catRich700Raw);
if (NULL == pRawCat) {
pRawCat = det->buildCategory(catRich700Raw);
if (NULL == pRawCat) {
Error("init", "Pointer to HRich700Raw category is NULL");
return kFALSE;
}
else {
gHades->getCurrentEvent()->addCategory(catRich700Raw, pRawCat, "Rich");
}
}
if(fFillCal){
fCalCat = gHades->getCurrentEvent()->getCategory(catRichCal);
if (NULL == fCalCat) {
if(gHades->getEmbeddingMode() == 0) {
fCalCat = det->buildCategory(catRichCal);
if (NULL == fCalCat) {
Error("init", "Pointer to HRichCal category is NULL");
return kFALSE;
} else {
gHades->getCurrentEvent()->addCategory(catRichCal, fCalCat, "Rich");
}
} else {
fCalCat = det->buildMatrixCat("HRichCalSim", 1);
if (NULL == fCalCat) {
Error("init", "Can not build output category catRichCalSim, returning...");
return kFALSE;
} else {
gHades->getCurrentEvent()->addCategory(catRichCal, fCalCat, "Rich");
}
}
}
}
fRawLoc.set(2, 0, 0);
fCalLoc.set(3, 0, 0,0);
fLookup = (HRich700Trb3Lookup*)(gHades->getRuntimeDb()
->getContainer("Rich700Trb3Lookup"));
if (!fLookup) {
Error("init", "No Pointer to parameter container Rich700Trb3Lookup.");
return kFALSE;
}
fThresholds = (HRich700ThresholdPar*)(gHades->getRuntimeDb()->getContainer("Rich700ThresholdPar"));
if (!fThresholds) {
Error("init", "No Pointer to parameter container Rich700ThresholdPar.");
return kFALSE;
}
fDigiPar = (HRich700DigiPar*)(gHades->getRuntimeDb()
->getContainer("Rich700DigiPar"));
if (!fDigiPar) {
Error("init", "No Pointer to parameter container Rich700DigiPar.");
return kFALSE;
}
if (NULL == trbNetUnpacker) {
if (gHades->getDataSource()) {
HDataSource* source = gHades->getDataSource();
if (source->InheritsFrom("HldSource")) {
trbNetUnpacker = ((HldSource *)gHades->getDataSource())
->getTrbNetUnpacker();
}
else {
Warning("init", "DataSource not inherited from HldSource! trbNetUnpacker == 0 ");
}
}
else {
Warning("init", "Could not retrieve DataSource! trbNetUnpacker == 0 ");
}
}
if (!trbNetUnpacker->init()) {
Error("init", "Failed to initialize HTrbNetUnpacker!");
return kFALSE;
}
return kTRUE;
}
Bool_t HRich700Trb3Unpacker::reinit(void)
{
if (numTDC() == 0) {
if (fMinAddress == 0 && fMaxAddress == 0) {
Int_t numslots = fLookup->getSize();
fLookup->resetTdcIterator();
for (Int_t slot = 0; slot < numslots; ++slot) {
Int_t trbnetaddress = fLookup->getNextTdcAddress();
if (trbnetaddress) {
Int_t tindex=addTDC(trbnetaddress, RICH700_MAX_TDCCHANNELS+1);
if(!fHasPrintedTDC) {
Info("reinit",
"Added TDC 0x%04x with %d channels from HRich700Trb3Lookup to map index %d",
trbnetaddress, RICH700_MAX_TDCCHANNELS+1,tindex);
}
}
}
setMinAddress(fLookup->getArrayOffset());
setMaxAddress(fLookup->getArrayOffset() + fLookup->getSize());
nCalSrc=3;
fUseTDCFromLookup = kTRUE;
fHasPrintedTDC = kTRUE;
}
else {
Info("reinit",
"TDCs will be added in auto register mode between min address 0x%04x and max address 0x%04x!"
,fMinAddress,fMaxAddress);
}
}
return kTRUE;
}
Int_t HRich700Trb3Unpacker::execute(void)
{
if (gHades->isCalibration()) {
return 1;
}
if (gHades->getCurrentEvent()->getHeader()->getId() == 0xe) {
return 1;
}
if (!pSubEvt){ return 1; }
Int_t nEvt = gHades->getCurrentEvent()->getHeader()->getEventSeqNumber();
if (!decode()) {
Error("decode", "subsubevent decoding failed!!! Evt Nr : %i SubEvtId: %x"
, nEvt, getSubEvtId());
return -1;
}
if (fTimeRef) {
#ifdef USE_FILLED_TDC
for (UInt_t n = 0; n < numFilledTDC(); ++n) {
HTrb3TdcUnpacker::TDC* tdc = getFilledTDC(n);
#else
for (UInt_t n = 0; n < numActiveTDC(); ++n) {
HTrb3TdcUnpacker::TDC* tdc = getActiveTDC(n);
#endif
if (debugFlag > 0) {
Warning("execute", "JJJ try to correct reftime for tdc %04x, tdcindex:%d Evt Nr : %i SubEvtId: %x",
(UInt_t) tdc->getTrbAddr(), n, nEvt, getSubEvtId());
}
if (!tdc->correctRefTimeCh(REFCHAN)) {
if (debugFlag > 0) {
Warning("execute", "time-correction for tdc %04x failed!!! Evt Nr : %i SubEvtId: %x",
(UInt_t) tdc->getTrbAddr(), nEvt, getSubEvtId());
}
}
}
}
if (debugFlag > 0) Warning("execute", "JJJJJ has cleared hits.");
#ifdef USE_FILLED_TDC
for (UInt_t ntdc = 0; ntdc < numFilledTDC(); ntdc++) {
HTrb3TdcUnpacker::TDC* tdc = getFilledTDC(ntdc);
#else
for (UInt_t ntdc = 0; ntdc < numActiveTDC(); ntdc++) {
HTrb3TdcUnpacker::TDC* tdc = getActiveTDC(ntdc);
#endif
HRich700Trb3LookupTdc *board = fLookup->getTdc(tdc->getTrbAddr());
if (!board) {
Warning("execute", "Evt Nr : %i SubEvId: %x (%i) unpacked but TDC Board 0x%x not in lookup table",
nEvt, getSubEvtId(), getSubEvtId(), tdc->getTrbAddr());
continue;
}
if (debugFlag > 0){
Warning("execute", "JJJJJ Evt Nr : %i SubEvId: %x (%i) unpacking TDC Board 0x%x...",
nEvt, getSubEvtId(), getSubEvtId(), tdc->getTrbAddr());
}
#ifdef USE_FILLED_TDC
for (UInt_t j = 0; j < tdc->chanList.size(); ++j) {
UInt_t i = tdc->chanList[j];
HTrb3TdcUnpacker::ChannelRec& theRecord = tdc->getCh(i);
#else
for (UInt_t i = 0; i < tdc->numChannels(); ++i) {
if(REFCHAN == i) { continue; }
HTrb3TdcUnpacker::ChannelRec& theRecord = tdc->getCh(i);
if(!theRecord.hasData) { continue; }
#endif
HRich700Trb3LookupChan *chan = board->getChannel(i);
if (chan==0){
continue;
}
chan->getAddress(fRawLoc[0], fRawLoc[1]);
if (fRawLoc[0] < 0) {
Warning("execute", "Skip pmt=%i, pixel=%i", fRawLoc[0], fRawLoc[1] );
continue;
}
if (debugFlag > 1) Warning("execute", "JJJJ Processing catRich700Raw Slot for pmt=%i, pixel=%i", fRawLoc[0], fRawLoc[1] );
Double_t tmin=0, tmax=1.0e-6, totmin=1e-9, totmax=1e-8;
HRich700PixelThreshold* pthres =fThresholds->getObject(fRawLoc);
if(pthres) {
if(pthres->getFlag() != 0)
{
if (debugFlag > 0)
Warning("execute", "Skipping invalid pixel - pmt=%i, pixel=%ie",
fRawLoc[0], fRawLoc[1]);
continue;
}
tmin = pthres->getT_Min();
tmax = pthres->getT_Max();
totmin = pthres->getTot_Min();
totmax = pthres->getTot_Max();
}else{
Error("execute()", "Can't get threshold parameter for pmt=%i, pixel=%i, using precompileddefaults!", fRawLoc[0], fRawLoc[1]);
}
if (debugFlag > 1) Warning("execute", "JJJJ Record of channel %d has multiplicities - rising:%d falling:%d \n",
i, (Int_t)theRecord.rising_mult, (Int_t) theRecord.falling_mult);
Int_t loc[3] = {-1,-1,-1};
fDigiPar->pmtIdPixelToColRowSec(fRawLoc[0],fRawLoc[1],loc[0],loc[1],loc[2],kFALSE);
if(loc[0]<0)
continue;
UInt_t falling_it=0;
for(UInt_t rising_it=0; rising_it<theRecord.rising_mult; ++rising_it){
Double_t tm0 = theRecord.rising_tm[rising_it]*1e9;
if(fDoTimeCut && ( tm0<tmin || tm0>tmax )) { continue; }
if(falling_it>=theRecord.falling_mult) {
addRawHit(tm0,0,0,loc[0],loc[1],loc[2],0b01);
}
for(;falling_it<theRecord.falling_mult;++falling_it){
Double_t tm1 = theRecord.falling_tm[falling_it]*1e9;
Double_t tot=tm1-tm0;
if(tot<totmin){
addRawHit(0,tm1,tot,loc[0],loc[1],loc[2],0b10);
}
else if(fDoToTCut && tot>totmax){
addRawHit(tm0,0,tot,loc[0],loc[1],loc[2],0b01);
break;
}
else if(!fDoToTCut && ( rising_it+1<theRecord.rising_mult && tot>(theRecord.rising_tm[rising_it+1]*1e9-tm0) ) ){
addRawHit(tm0,0,tot,loc[0],loc[1],loc[2],0b01);
break;
}
else
{
addRawHit(tm0,tm1,tot,loc[0],loc[1],loc[2],0b11);
if(fFillCal) {
addCalHitCharge(loc[0],loc[1],loc[2],tm0,tot);
}
falling_it++;
break;
}
}
}
for(;falling_it<theRecord.falling_mult;++falling_it){
Double_t tm1 = theRecord.falling_tm[falling_it]*1e9;
if(fDoTimeCut && ( tm1<tmin || tm1>tmax )) { continue; }
addRawHit(0,tm1,0,loc[0],loc[1],loc[2],0b01);
}
}
}
return 1;
}
Int_t HRich700Trb3Unpacker::addRawHit(Double_t t_leading, Double_t t_trailing,
Double_t tot, Int_t sec, Int_t col, Int_t row, UInt_t flag)
{
HRich700Raw* raw = static_cast<HRich700Raw*> (pRawCat->getObject(fRawLoc));
if (!raw) {
raw = (HRich700Raw *) pRawCat->getSlot(fRawLoc);
if (raw) {
raw = new (raw) HRich700Raw;
raw->setAddress(fRawLoc[0], fRawLoc[1],sec,col,row);
} else {
if (debugFlag > 0)
Warning("addRawHit()", "Can't get slot pmt=%i, pixel=%i",
fRawLoc[0], fRawLoc[1]);
return -1;
}
}
raw->addHit(t_leading, t_trailing, tot, flag);
if (debugFlag > 1)
Warning("addRawHit",
"JJJJ ADDING hit for pmt:%d pixel:%d tm0:%e tm1:%e tot:%e",
fRawLoc[0], fRawLoc[1], t_leading, t_trailing, tot
);
return 0;
}
Int_t HRich700Trb3Unpacker::addCalHitCharge(Int_t sector, Int_t col, Int_t row,
Float_t time, Float_t tot)
{
fCalLoc[0] = sector;
fCalLoc[1] = row;
fCalLoc[2] = col;
if (debugFlag > 1)
Warning("addCalHitCharge",
"JJJJ ADDING cal hit for sector:%d row:%d col:%d ",
fCalLoc[0], fCalLoc[1], fCalLoc[2]);
HRichCalSim* calsim = 0;
HRichCal* cal = static_cast<HRichCal*>(fCalCat->getObject(fCalLoc));
if (NULL == cal) {
cal = static_cast<HRichCal*>(fCalCat->getSlot(fCalLoc));
if (NULL != cal) {
if(gHades->getEmbeddingMode() != 0){
cal = new (cal) HRichCalSim;
calsim = static_cast<HRichCalSim*> (cal);
if(!calsim->checkTrackId(gHades->getEmbeddingRealTrackId())) calsim->addTrackId(gHades->getEmbeddingRealTrackId());
} else {
cal = new (cal) HRichCal;
}
cal->setMult(0);
cal->setSector(fCalLoc[0]);
cal->setRow(fCalLoc[1]);
cal->setCol(fCalLoc[2]);
cal->setTime(time);
} else {
if (debugFlag > 0)
Warning("addCalHit()",
"Can't get slot sector=%i, row=%i, col=%i", fCalLoc[0],
fCalLoc[1], fCalLoc[2]);
return -1;
}
}
cal->addToT(tot);
cal->increaseMult();
return 0;
}
hrich700trb3unpacker.cc:1 hrich700trb3unpacker.cc:2 hrich700trb3unpacker.cc:3 hrich700trb3unpacker.cc:4 hrich700trb3unpacker.cc:5 hrich700trb3unpacker.cc:6 hrich700trb3unpacker.cc:7 hrich700trb3unpacker.cc:8 hrich700trb3unpacker.cc:9 hrich700trb3unpacker.cc:10 hrich700trb3unpacker.cc:11 hrich700trb3unpacker.cc:12 hrich700trb3unpacker.cc:13 hrich700trb3unpacker.cc:14 hrich700trb3unpacker.cc:15 hrich700trb3unpacker.cc:16 hrich700trb3unpacker.cc:17 hrich700trb3unpacker.cc:18 hrich700trb3unpacker.cc:19 hrich700trb3unpacker.cc:20 hrich700trb3unpacker.cc:21 hrich700trb3unpacker.cc:22 hrich700trb3unpacker.cc:23 hrich700trb3unpacker.cc:24 hrich700trb3unpacker.cc:25 hrich700trb3unpacker.cc:26 hrich700trb3unpacker.cc:27 hrich700trb3unpacker.cc:28 hrich700trb3unpacker.cc:29 hrich700trb3unpacker.cc:30 hrich700trb3unpacker.cc:31 hrich700trb3unpacker.cc:32 hrich700trb3unpacker.cc:33 hrich700trb3unpacker.cc:34 hrich700trb3unpacker.cc:35 hrich700trb3unpacker.cc:36 hrich700trb3unpacker.cc:37 hrich700trb3unpacker.cc:38 hrich700trb3unpacker.cc:39 hrich700trb3unpacker.cc:40 hrich700trb3unpacker.cc:41 hrich700trb3unpacker.cc:42 hrich700trb3unpacker.cc:43 hrich700trb3unpacker.cc:44 hrich700trb3unpacker.cc:45 hrich700trb3unpacker.cc:46 hrich700trb3unpacker.cc:47 hrich700trb3unpacker.cc:48 hrich700trb3unpacker.cc:49 hrich700trb3unpacker.cc:50 hrich700trb3unpacker.cc:51 hrich700trb3unpacker.cc:52 hrich700trb3unpacker.cc:53 hrich700trb3unpacker.cc:54 hrich700trb3unpacker.cc:55 hrich700trb3unpacker.cc:56 hrich700trb3unpacker.cc:57 hrich700trb3unpacker.cc:58 hrich700trb3unpacker.cc:59 hrich700trb3unpacker.cc:60 hrich700trb3unpacker.cc:61 hrich700trb3unpacker.cc:62 hrich700trb3unpacker.cc:63 hrich700trb3unpacker.cc:64 hrich700trb3unpacker.cc:65 hrich700trb3unpacker.cc:66 hrich700trb3unpacker.cc:67 hrich700trb3unpacker.cc:68 hrich700trb3unpacker.cc:69 hrich700trb3unpacker.cc:70 hrich700trb3unpacker.cc:71 hrich700trb3unpacker.cc:72 hrich700trb3unpacker.cc:73 hrich700trb3unpacker.cc:74 hrich700trb3unpacker.cc:75 hrich700trb3unpacker.cc:76 hrich700trb3unpacker.cc:77 hrich700trb3unpacker.cc:78 hrich700trb3unpacker.cc:79 hrich700trb3unpacker.cc:80 hrich700trb3unpacker.cc:81 hrich700trb3unpacker.cc:82 hrich700trb3unpacker.cc:83 hrich700trb3unpacker.cc:84 hrich700trb3unpacker.cc:85 hrich700trb3unpacker.cc:86 hrich700trb3unpacker.cc:87 hrich700trb3unpacker.cc:88 hrich700trb3unpacker.cc:89 hrich700trb3unpacker.cc:90 hrich700trb3unpacker.cc:91 hrich700trb3unpacker.cc:92 hrich700trb3unpacker.cc:93 hrich700trb3unpacker.cc:94 hrich700trb3unpacker.cc:95 hrich700trb3unpacker.cc:96 hrich700trb3unpacker.cc:97 hrich700trb3unpacker.cc:98 hrich700trb3unpacker.cc:99 hrich700trb3unpacker.cc:100 hrich700trb3unpacker.cc:101 hrich700trb3unpacker.cc:102 hrich700trb3unpacker.cc:103 hrich700trb3unpacker.cc:104 hrich700trb3unpacker.cc:105 hrich700trb3unpacker.cc:106 hrich700trb3unpacker.cc:107 hrich700trb3unpacker.cc:108 hrich700trb3unpacker.cc:109 hrich700trb3unpacker.cc:110 hrich700trb3unpacker.cc:111 hrich700trb3unpacker.cc:112 hrich700trb3unpacker.cc:113 hrich700trb3unpacker.cc:114 hrich700trb3unpacker.cc:115 hrich700trb3unpacker.cc:116 hrich700trb3unpacker.cc:117 hrich700trb3unpacker.cc:118 hrich700trb3unpacker.cc:119 hrich700trb3unpacker.cc:120 hrich700trb3unpacker.cc:121 hrich700trb3unpacker.cc:122 hrich700trb3unpacker.cc:123 hrich700trb3unpacker.cc:124 hrich700trb3unpacker.cc:125 hrich700trb3unpacker.cc:126 hrich700trb3unpacker.cc:127 hrich700trb3unpacker.cc:128 hrich700trb3unpacker.cc:129 hrich700trb3unpacker.cc:130 hrich700trb3unpacker.cc:131 hrich700trb3unpacker.cc:132 hrich700trb3unpacker.cc:133 hrich700trb3unpacker.cc:134 hrich700trb3unpacker.cc:135 hrich700trb3unpacker.cc:136 hrich700trb3unpacker.cc:137 hrich700trb3unpacker.cc:138 hrich700trb3unpacker.cc:139 hrich700trb3unpacker.cc:140 hrich700trb3unpacker.cc:141 hrich700trb3unpacker.cc:142 hrich700trb3unpacker.cc:143 hrich700trb3unpacker.cc:144 hrich700trb3unpacker.cc:145 hrich700trb3unpacker.cc:146 hrich700trb3unpacker.cc:147 hrich700trb3unpacker.cc:148 hrich700trb3unpacker.cc:149 hrich700trb3unpacker.cc:150 hrich700trb3unpacker.cc:151 hrich700trb3unpacker.cc:152 hrich700trb3unpacker.cc:153 hrich700trb3unpacker.cc:154 hrich700trb3unpacker.cc:155 hrich700trb3unpacker.cc:156 hrich700trb3unpacker.cc:157 hrich700trb3unpacker.cc:158 hrich700trb3unpacker.cc:159 hrich700trb3unpacker.cc:160 hrich700trb3unpacker.cc:161 hrich700trb3unpacker.cc:162 hrich700trb3unpacker.cc:163 hrich700trb3unpacker.cc:164 hrich700trb3unpacker.cc:165 hrich700trb3unpacker.cc:166 hrich700trb3unpacker.cc:167 hrich700trb3unpacker.cc:168 hrich700trb3unpacker.cc:169 hrich700trb3unpacker.cc:170 hrich700trb3unpacker.cc:171 hrich700trb3unpacker.cc:172 hrich700trb3unpacker.cc:173 hrich700trb3unpacker.cc:174 hrich700trb3unpacker.cc:175 hrich700trb3unpacker.cc:176 hrich700trb3unpacker.cc:177 hrich700trb3unpacker.cc:178 hrich700trb3unpacker.cc:179 hrich700trb3unpacker.cc:180 hrich700trb3unpacker.cc:181 hrich700trb3unpacker.cc:182 hrich700trb3unpacker.cc:183 hrich700trb3unpacker.cc:184 hrich700trb3unpacker.cc:185 hrich700trb3unpacker.cc:186 hrich700trb3unpacker.cc:187 hrich700trb3unpacker.cc:188 hrich700trb3unpacker.cc:189 hrich700trb3unpacker.cc:190 hrich700trb3unpacker.cc:191 hrich700trb3unpacker.cc:192 hrich700trb3unpacker.cc:193 hrich700trb3unpacker.cc:194 hrich700trb3unpacker.cc:195 hrich700trb3unpacker.cc:196 hrich700trb3unpacker.cc:197 hrich700trb3unpacker.cc:198 hrich700trb3unpacker.cc:199 hrich700trb3unpacker.cc:200 hrich700trb3unpacker.cc:201 hrich700trb3unpacker.cc:202 hrich700trb3unpacker.cc:203 hrich700trb3unpacker.cc:204 hrich700trb3unpacker.cc:205 hrich700trb3unpacker.cc:206 hrich700trb3unpacker.cc:207 hrich700trb3unpacker.cc:208 hrich700trb3unpacker.cc:209 hrich700trb3unpacker.cc:210 hrich700trb3unpacker.cc:211 hrich700trb3unpacker.cc:212 hrich700trb3unpacker.cc:213 hrich700trb3unpacker.cc:214 hrich700trb3unpacker.cc:215 hrich700trb3unpacker.cc:216 hrich700trb3unpacker.cc:217 hrich700trb3unpacker.cc:218 hrich700trb3unpacker.cc:219 hrich700trb3unpacker.cc:220 hrich700trb3unpacker.cc:221 hrich700trb3unpacker.cc:222 hrich700trb3unpacker.cc:223 hrich700trb3unpacker.cc:224 hrich700trb3unpacker.cc:225 hrich700trb3unpacker.cc:226 hrich700trb3unpacker.cc:227 hrich700trb3unpacker.cc:228 hrich700trb3unpacker.cc:229 hrich700trb3unpacker.cc:230 hrich700trb3unpacker.cc:231 hrich700trb3unpacker.cc:232 hrich700trb3unpacker.cc:233 hrich700trb3unpacker.cc:234 hrich700trb3unpacker.cc:235 hrich700trb3unpacker.cc:236 hrich700trb3unpacker.cc:237 hrich700trb3unpacker.cc:238 hrich700trb3unpacker.cc:239 hrich700trb3unpacker.cc:240 hrich700trb3unpacker.cc:241 hrich700trb3unpacker.cc:242 hrich700trb3unpacker.cc:243 hrich700trb3unpacker.cc:244 hrich700trb3unpacker.cc:245 hrich700trb3unpacker.cc:246 hrich700trb3unpacker.cc:247 hrich700trb3unpacker.cc:248 hrich700trb3unpacker.cc:249 hrich700trb3unpacker.cc:250 hrich700trb3unpacker.cc:251 hrich700trb3unpacker.cc:252 hrich700trb3unpacker.cc:253 hrich700trb3unpacker.cc:254 hrich700trb3unpacker.cc:255 hrich700trb3unpacker.cc:256 hrich700trb3unpacker.cc:257 hrich700trb3unpacker.cc:258 hrich700trb3unpacker.cc:259 hrich700trb3unpacker.cc:260 hrich700trb3unpacker.cc:261 hrich700trb3unpacker.cc:262 hrich700trb3unpacker.cc:263 hrich700trb3unpacker.cc:264 hrich700trb3unpacker.cc:265 hrich700trb3unpacker.cc:266 hrich700trb3unpacker.cc:267 hrich700trb3unpacker.cc:268 hrich700trb3unpacker.cc:269 hrich700trb3unpacker.cc:270 hrich700trb3unpacker.cc:271 hrich700trb3unpacker.cc:272 hrich700trb3unpacker.cc:273 hrich700trb3unpacker.cc:274 hrich700trb3unpacker.cc:275 hrich700trb3unpacker.cc:276 hrich700trb3unpacker.cc:277 hrich700trb3unpacker.cc:278 hrich700trb3unpacker.cc:279 hrich700trb3unpacker.cc:280 hrich700trb3unpacker.cc:281 hrich700trb3unpacker.cc:282 hrich700trb3unpacker.cc:283 hrich700trb3unpacker.cc:284 hrich700trb3unpacker.cc:285 hrich700trb3unpacker.cc:286 hrich700trb3unpacker.cc:287 hrich700trb3unpacker.cc:288 hrich700trb3unpacker.cc:289 hrich700trb3unpacker.cc:290 hrich700trb3unpacker.cc:291 hrich700trb3unpacker.cc:292 hrich700trb3unpacker.cc:293 hrich700trb3unpacker.cc:294 hrich700trb3unpacker.cc:295 hrich700trb3unpacker.cc:296 hrich700trb3unpacker.cc:297 hrich700trb3unpacker.cc:298 hrich700trb3unpacker.cc:299 hrich700trb3unpacker.cc:300 hrich700trb3unpacker.cc:301 hrich700trb3unpacker.cc:302 hrich700trb3unpacker.cc:303 hrich700trb3unpacker.cc:304 hrich700trb3unpacker.cc:305 hrich700trb3unpacker.cc:306 hrich700trb3unpacker.cc:307 hrich700trb3unpacker.cc:308 hrich700trb3unpacker.cc:309 hrich700trb3unpacker.cc:310 hrich700trb3unpacker.cc:311 hrich700trb3unpacker.cc:312 hrich700trb3unpacker.cc:313 hrich700trb3unpacker.cc:314 hrich700trb3unpacker.cc:315 hrich700trb3unpacker.cc:316 hrich700trb3unpacker.cc:317 hrich700trb3unpacker.cc:318 hrich700trb3unpacker.cc:319 hrich700trb3unpacker.cc:320 hrich700trb3unpacker.cc:321 hrich700trb3unpacker.cc:322 hrich700trb3unpacker.cc:323 hrich700trb3unpacker.cc:324 hrich700trb3unpacker.cc:325 hrich700trb3unpacker.cc:326 hrich700trb3unpacker.cc:327 hrich700trb3unpacker.cc:328 hrich700trb3unpacker.cc:329 hrich700trb3unpacker.cc:330 hrich700trb3unpacker.cc:331 hrich700trb3unpacker.cc:332 hrich700trb3unpacker.cc:333 hrich700trb3unpacker.cc:334 hrich700trb3unpacker.cc:335 hrich700trb3unpacker.cc:336 hrich700trb3unpacker.cc:337 hrich700trb3unpacker.cc:338 hrich700trb3unpacker.cc:339 hrich700trb3unpacker.cc:340 hrich700trb3unpacker.cc:341 hrich700trb3unpacker.cc:342 hrich700trb3unpacker.cc:343 hrich700trb3unpacker.cc:344 hrich700trb3unpacker.cc:345 hrich700trb3unpacker.cc:346 hrich700trb3unpacker.cc:347 hrich700trb3unpacker.cc:348 hrich700trb3unpacker.cc:349 hrich700trb3unpacker.cc:350 hrich700trb3unpacker.cc:351 hrich700trb3unpacker.cc:352 hrich700trb3unpacker.cc:353 hrich700trb3unpacker.cc:354 hrich700trb3unpacker.cc:355 hrich700trb3unpacker.cc:356 hrich700trb3unpacker.cc:357 hrich700trb3unpacker.cc:358 hrich700trb3unpacker.cc:359 hrich700trb3unpacker.cc:360 hrich700trb3unpacker.cc:361 hrich700trb3unpacker.cc:362 hrich700trb3unpacker.cc:363 hrich700trb3unpacker.cc:364 hrich700trb3unpacker.cc:365 hrich700trb3unpacker.cc:366 hrich700trb3unpacker.cc:367 hrich700trb3unpacker.cc:368 hrich700trb3unpacker.cc:369 hrich700trb3unpacker.cc:370 hrich700trb3unpacker.cc:371 hrich700trb3unpacker.cc:372 hrich700trb3unpacker.cc:373 hrich700trb3unpacker.cc:374 hrich700trb3unpacker.cc:375 hrich700trb3unpacker.cc:376 hrich700trb3unpacker.cc:377 hrich700trb3unpacker.cc:378 hrich700trb3unpacker.cc:379 hrich700trb3unpacker.cc:380 hrich700trb3unpacker.cc:381 hrich700trb3unpacker.cc:382 hrich700trb3unpacker.cc:383 hrich700trb3unpacker.cc:384 hrich700trb3unpacker.cc:385 hrich700trb3unpacker.cc:386 hrich700trb3unpacker.cc:387 hrich700trb3unpacker.cc:388 hrich700trb3unpacker.cc:389 hrich700trb3unpacker.cc:390 hrich700trb3unpacker.cc:391 hrich700trb3unpacker.cc:392 hrich700trb3unpacker.cc:393 hrich700trb3unpacker.cc:394 hrich700trb3unpacker.cc:395 hrich700trb3unpacker.cc:396 hrich700trb3unpacker.cc:397 hrich700trb3unpacker.cc:398 hrich700trb3unpacker.cc:399 hrich700trb3unpacker.cc:400 hrich700trb3unpacker.cc:401 hrich700trb3unpacker.cc:402 hrich700trb3unpacker.cc:403 hrich700trb3unpacker.cc:404 hrich700trb3unpacker.cc:405 hrich700trb3unpacker.cc:406 hrich700trb3unpacker.cc:407 hrich700trb3unpacker.cc:408 hrich700trb3unpacker.cc:409 hrich700trb3unpacker.cc:410 hrich700trb3unpacker.cc:411 hrich700trb3unpacker.cc:412 hrich700trb3unpacker.cc:413 hrich700trb3unpacker.cc:414 hrich700trb3unpacker.cc:415 hrich700trb3unpacker.cc:416 hrich700trb3unpacker.cc:417 hrich700trb3unpacker.cc:418 hrich700trb3unpacker.cc:419 hrich700trb3unpacker.cc:420 hrich700trb3unpacker.cc:421 hrich700trb3unpacker.cc:422 hrich700trb3unpacker.cc:423 hrich700trb3unpacker.cc:424 hrich700trb3unpacker.cc:425 hrich700trb3unpacker.cc:426 hrich700trb3unpacker.cc:427 hrich700trb3unpacker.cc:428 hrich700trb3unpacker.cc:429 hrich700trb3unpacker.cc:430 hrich700trb3unpacker.cc:431 hrich700trb3unpacker.cc:432 hrich700trb3unpacker.cc:433 hrich700trb3unpacker.cc:434 hrich700trb3unpacker.cc:435 hrich700trb3unpacker.cc:436 hrich700trb3unpacker.cc:437 hrich700trb3unpacker.cc:438 hrich700trb3unpacker.cc:439 hrich700trb3unpacker.cc:440 hrich700trb3unpacker.cc:441 hrich700trb3unpacker.cc:442 hrich700trb3unpacker.cc:443 hrich700trb3unpacker.cc:444 hrich700trb3unpacker.cc:445 hrich700trb3unpacker.cc:446 hrich700trb3unpacker.cc:447 hrich700trb3unpacker.cc:448 hrich700trb3unpacker.cc:449 hrich700trb3unpacker.cc:450 hrich700trb3unpacker.cc:451 hrich700trb3unpacker.cc:452 hrich700trb3unpacker.cc:453 hrich700trb3unpacker.cc:454 hrich700trb3unpacker.cc:455 hrich700trb3unpacker.cc:456 hrich700trb3unpacker.cc:457 hrich700trb3unpacker.cc:458 hrich700trb3unpacker.cc:459 hrich700trb3unpacker.cc:460 hrich700trb3unpacker.cc:461 hrich700trb3unpacker.cc:462 hrich700trb3unpacker.cc:463 hrich700trb3unpacker.cc:464 hrich700trb3unpacker.cc:465 hrich700trb3unpacker.cc:466 hrich700trb3unpacker.cc:467 hrich700trb3unpacker.cc:468 hrich700trb3unpacker.cc:469 hrich700trb3unpacker.cc:470 hrich700trb3unpacker.cc:471 hrich700trb3unpacker.cc:472 hrich700trb3unpacker.cc:473 hrich700trb3unpacker.cc:474