ROOT logo
#include "honlinemonclientxml.h"

#include "honlinemonclientmain.h"
#include "honlinemonclientmainwin.h"
#include "honlinemonclientdet.h"
#include "honlinemonclienttabwin.h"
#include "honlinemonclientsimplewin.h"
#include "honlinemonclienttab.h"
#include "honlinemonclientcanvas.h"
#include "honlinemonclienthist.h"

#include <cstdlib>

ClassImp(HOnlineMonClientXML);

/* -------------------------------------------------------------------------- */
HOnlineMonClientXML::HOnlineMonClientXML() {
}
/* -------------------------------------------------------------------------- */
HOnlineMonClientXML::~HOnlineMonClientXML() {
}
/* -------------------------------------------------------------------------- */
Bool_t HOnlineMonClientXML::ParseXMLFile(TString filename, HOnlineMonClientMain* pclientmain) {
    // parse the xml config file given by filename
    // get the root node 'client' and search
    // three child nodes 'config', 'MainWindow' and 'detector'
    // and call parse functions
    clientmain = pclientmain;
    TDOMParser *parser = 0;
    TXMLDocument *xmldoc = 0;
    TXMLNode *rootnode = 0;
    TXMLNode *node = 0;
    Int_t parsecode = -1;
    currentDetector = 0;

    parser = new TDOMParser();
    parsecode = parser->ParseFile(filename);

    if (parsecode != 0) { // parsing of document failed
	Printf("XML ERROR: Parsing of XML file '%s' failed. Parse code error %d .", filename.Data(), parsecode);
	exit(1);
    }

    xmldoc = parser->GetXMLDocument();

    if (xmldoc == 0) { // parsing of document failed
	Printf("XML ERROR: parsing of xml file '%s' failed.", filename.Data());
	exit(1);
    }

    rootnode = xmldoc->GetRootNode(); // root node should be 'client' node

    if ( TString(rootnode->GetNodeName()) != "client") { // root node is NOT 'client', error&exit
	Printf("XML ERROR: xml root node is not 'client'.");
	exit(1);
    }

    node = rootnode->GetChildren();

    while (node->HasNextNode()) { // get the child nodes ('config','MainWindow','detector') under root node
	node = node->GetNextNode();
	if (node->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(node->GetNodeName()) == "config") {
		ParseConfigNode(node);
	    }
	    if( TString(node->GetNodeName()) == "MainWindow") {
		ParseMainWindowNode(node, clientmain->clientmainwin);
	    }
	    if( TString(node->GetNodeName()) == "detector") {
		HOnlineMonClientDet *detector = new HOnlineMonClientDet();
		ParseDetectorNode(node, detector);
		clientmain->listDetectors.Add(detector);
	    }
	}
    }

    delete parser; // deletes the xmldocument, too
    parser = 0;

    return kTRUE;
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseHistogramNode(TXMLNode *node, HOnlineMonClientCanvas *canvas) {
    HOnlineMonClientHist *histo = new HOnlineMonClientHist();
    histo->SetGuiName(currentDetector->GetName());

    TXMLNode *child = 0;
    histo->SetActive(kFALSE);

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing histogram node of canvas '%s' failed.", canvas->GetName() );
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();
	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {

	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString histoname = child->GetText();
		// histoname can contain underscores, then isAlnum() returns false
		// if(!histoname.IsAlnum()) {
		if(histoname.Contains(' ') || histoname.Contains('-')) { // histogram name can contain underscores
		    Printf("XML ERROR: parsing histogram node of canvas '%s' failed. Invalid histogram name '%s'.", canvas->GetName(), histoname.Data() );
		    exit(1);
		}
		histo->SetRealName(histoname);
	    }

	    if( TString(child->GetNodeName()) == "type") {
		// title node is last layer, get text inside tag
		TString value = child->GetText();
		if (value == "single") {
		    histo->SetType("single");
		} else {
		    // parse text, delimeter is a ':'
		    // example: <type>array:1:2</type>
		    // indices = -1: draw alle histograms in array
		    TObjArray* ar = value.Tokenize(":");
		    TString p1 = ((TObjString*) ar->At(0))->GetString();
		    TString p2 = ((TObjString*) ar->At(1))->GetString();
		    TString p3 = ((TObjString*) ar->At(2))->GetString();
		    if ( (p1 == "array") && (p2.IsDigit() || (p2.CompareTo("-1")==0)) && (p3.IsDigit() || (p3.CompareTo("-1")==0)) ) {
			// check ok, values valid
			histo->SetArrayIndexS(p2.Atoi());
			histo->SetArrayIndexM(p3.Atoi());
			delete ar;
		    } else {
			Printf("XML ERROR: type of histogram '%s' in canvas '%s' is not valid. Must be 'single', or 'array:s:m' with s,m integer values.", histo->GetName(), canvas->GetName() );
			Printf("found: type: '%s', index1: '%s', index2: '%s'", p1.Data(), p2.Data(), p3.Data());
			delete ar;
			exit(1);
		    }
		}

	    }

	    if( TString(child->GetNodeName()) == "subpad") {
		// subpad node is last layer, get text inside tag
		// if canvas not splitted, ignore subpadnumber given
		// by xml data and set subpadnumber to 0

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: subpad number '%s' of histogram '%s' in canvas '%s' is not a valid number", val.Data(), histo->GetName(), canvas->GetName() );
		    exit(1);
		}

		if (canvas->IsSplitted()) {
		    histo->SetSubpadnumber(val.Atoi());
		} else {
		    histo->SetSubpadnumber(0);
		}
                
		TString hname = currentDetector->GetName();
		hname += "_";
		hname += canvas->GetName();
		hname += "_";
		hname += histo->GetSubpadnumber();
		hname += "_";
		hname += histo->GetRealName();
		histo->SetName(hname);
		canvas->listHists.Add(histo);
	    }
	}
    }

}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseCanvasNode(TXMLNode *node, HOnlineMonClientTabWin *window, HOnlineMonClientTab *montab) {
    // parse Canvases in TabWindows

    TXMLNode *child = 0;
    HOnlineMonClientCanvas *canvas = new HOnlineMonClientCanvas();



    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing canvas node of window '%s' failed.", window->GetName() );
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {

	child = child->GetNextNode();
	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString canvasname = child->GetText();
		if(!canvasname.IsAlnum()) {
		    Printf("XML ERROR: parsing canvas node of window '%s' failed. Invalid canvas name '%s'", window->GetName(), canvasname.Data() );
		    exit(1);
		}
		canvas->SetName(canvasname);
		montab->listCanvases.Add(canvas);
	    }
	    if( TString(child->GetNodeName()) == "width") {
		// width node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: width '%s' of canvas '%s' in tab '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), montab->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetWidth(val.Atoi());
	    }
	    if( TString(child->GetNodeName()) == "height") {
		// height node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: width '%s' of canvas '%s' in tab '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), montab->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetHeight(val.Atoi());
	    }
	    if( TString(child->GetNodeName()) == "splitted") {
		// splitted node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		val.ToLower();

		if ( (val != "true") && (val != "false") ) {
		    Printf("XML ERROR: The value '%s' of canvas '%s' in tab '%s' in window '%s' is not valid.", val.Data(), canvas->GetName(), montab->GetName(), window->GetName() );
		    Printf("Must be 'true' or 'false'.");
		    exit(1);
		}

		canvas->SetSplitted((val == "true") ? kTRUE : kFALSE);
	    }

	    if( TString(child->GetNodeName()) == "nx") {
		// nx node is last layer, get text inside tag
		// ignore value of nx from xml if splitted=false
		// set nx=0 if splitted=false

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: The nx split value '%s' of canvas '%s' in tab '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), montab->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetNx( (canvas->IsSplitted()) ? val.Atoi() : 0 );
	    }

	    if( TString(child->GetNodeName()) == "ny") {
		// ny node is last layer, get text inside tag
		// ignore value of ny from xml if splitted=false
		// set ny=0 if splitted=false

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: The ny split value '%s' of canvas '%s' in tab '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), montab->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetNy( (canvas->IsSplitted()) ? val.Atoi() : 0 );
	    }

	    if( TString(child->GetNodeName()) == "histogram") {
		// if node is histogram, go one layer down
		ParseHistogramNode(child, canvas);
	    }
	}
    }
}

/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseCanvasNode(TXMLNode *node, HOnlineMonClientSimpleWin *window) {
    // parse Canvases in SimpleWindows

    TXMLNode *child = 0;
    HOnlineMonClientCanvas *canvas = new HOnlineMonClientCanvas();


    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing canvas node of window '%s' failed.", window->GetName() );
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {

	child = child->GetNextNode();
	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {

	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString canvasname = child->GetText();
		if(!canvasname.IsAlnum()) {
		    Printf("XML ERROR: parsing canvas node of window '%s' failed. Invalid canvas name '%s'", window->GetName(), canvasname.Data() );
		    exit(1);
		}
		canvas->SetName(canvasname);
		window->listCanvases.Add(canvas);
	    }

	    if( TString(child->GetNodeName()) == "title") {
		// title node is last layer, get text inside tag
		canvas->SetTitle(child->GetText());
	    }

	    if( TString(child->GetNodeName()) == "width") {
		// width node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: width of canvas '%s' in window '%s' is not a valid number.", canvas->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetWidth(val.Atoi());
	    }

	    if( TString(child->GetNodeName()) == "height") {
		// height node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: height of canvas '%s' in window '%s' is not a valid number.", canvas->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetHeight(val.Atoi());
	    }

	    if( TString(child->GetNodeName()) == "splitted") {
		// splitted node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		val.ToLower();

		if ( (val != "true") && (val != "false") ) {
		    Printf("XML ERROR: The value '%s' of 'splitted' of canvas '%s' in window '%s' is not valid.", val.Data(), canvas->GetName(), window->GetName() );
		    Printf("Must be 'true' or 'false'.");
		    exit(1);
		}

		canvas->SetSplitted( (val == "true") ? kTRUE : kFALSE );
	    }

	    if( TString(child->GetNodeName()) == "nx") {
		// nx node is last layer, get text inside tag
		// ignore value of nx from xml if splitted=false
		// set nx=0 if splitted=false

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: The nx split value '%s' of canvas '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetNx( (canvas->IsSplitted()) ? val.Atoi() : 0 );
	    }

	    if( TString(child->GetNodeName()) == "ny") {
		// ny node is last layer, get text inside tag
		// ignore value of ny from xml if splitted=false
		// set ny=0 if splitted=false

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: The ny split value '%s' of canvas '%s' in window '%s' is not a valid number.", val.Data(), canvas->GetName(), window->GetName() );
		    exit(1);
		}

		canvas->SetNy( (canvas->IsSplitted()) ? val.Atoi() : 0 );
	    }

	    if( TString(child->GetNodeName()) == "histogram") {
		// if node is window, go one layer down
		ParseHistogramNode(child, canvas);
	    }
	}
    }

}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseTabNode(TXMLNode *node, HOnlineMonClientTabWin *window) {

    HOnlineMonClientTab *montab = new HOnlineMonClientTab();
    TXMLNode *child = 0;



    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing tab node of window '%s' failed.", window->GetName() );
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();
	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString tabname = child->GetText();
		if(!tabname.IsAlnum()) {
		    Printf("XML ERROR: parsing tab node of window '%s' failed. Invalid tab name '%s'", window->GetName(), tabname.Data() );
		    exit(1);
		}
		montab->SetName(tabname);
		window->listTabs.Add(montab);
	    }
	    if( TString(child->GetNodeName()) == "title") {
		// title node is last layer, get text inside tag
		montab->SetTitle(child->GetText());
	    }
	    if( TString(child->GetNodeName()) == "canvas") {
		// if node is window, go one layer down
		ParseCanvasNode(child, window, montab);
	    }

	}
    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseWindowNode(TXMLNode *node, HOnlineMonClientDet *detector) {
    Bool_t tabbed = kFALSE;
    TString name = "";
    TString title = "";
    TXMLNode *child = 0;

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing window node of detector '%s' failed.", detector->GetName() );
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();

	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString windowname = child->GetText();
		if (!windowname.IsAlnum()) {
		    Printf("XML ERROR: parsing window node of detector '%s' failed. Invalid window name '%s'", detector->GetName(), windowname.Data() );
		    exit(1);
		}
		name = windowname;
	    }
	    if( TString(child->GetNodeName()) == "title") {
		// title node is last layer, get text inside tag
		title = child->GetText();
	    }
	    if( TString(child->GetNodeName()) == "tabbed") {
		// tabbed node is last layer, get text inside tag
		if (TString(child->GetText()) == "true") {
		    // tabbed window
		    tabbed = kTRUE;
		    HOnlineMonClientTabWin *window = new HOnlineMonClientTabWin();
		    window->SetName(name);
		    window->SetTitle(title);
		    detector->listWindows.Add(window);
		} else {
		    // simple window
		    tabbed = kFALSE;
		    HOnlineMonClientSimpleWin *window = new HOnlineMonClientSimpleWin();
		    window->SetName(name);
		    window->SetTitle(title);
		    detector->listWindows.Add(window);
		}
	    }
	    if( TString(child->GetNodeName()) == "canvas") {
		// if node is canvas, go one layer down
		// is possible in nontabbed window ONLY
		// so tabbed must be false, otherwise the xml configuration file is incorrect
		if (tabbed) {
		    Printf("XML ERROR: xml file wrong, found tabbed=true and canvas directly under window.");
		    Printf("Add a tab tag or set tabbed to false.");
		    Printf("Window name: %s", name.Data() );
		    Printf("Detector name: %s", detector->GetName() );
		    exit(1);
		}

		ParseCanvasNode(child, (HOnlineMonClientSimpleWin*)detector->listWindows.FindObject(name)); // window is always HOnlineMonClientSimpleWin
	    }
	    if( TString(child->GetNodeName()) == "tab") {
		// if node is tab, go one layer down
		ParseTabNode(child,  (HOnlineMonClientTabWin*)detector->listWindows.FindObject(name)); // window is always HOnlineMonClientTabWin
	    }
	}
    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseDetectorNode(TXMLNode *node, HOnlineMonClientDet *detector) {
    TXMLNode *child = 0;

    currentDetector = detector;

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing detector node failed.");
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();

	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString detname = child->GetText();
		if (!detname.IsAlnum()) {
		    Printf("XML ERROR: parsing detector node failed. Invalid detector name '%s'", detname.Data());
		    exit(1);
		}

		detector->SetName(detname);
	    }
	    if( TString(child->GetNodeName()) == "title") {
		// title node is last layer, get text inside tag
		detector->SetTitle(child->GetText());
	    }
	    if( TString(child->GetNodeName()) == "window") {
		// if node is window, go one layer down
		ParseWindowNode(child, detector);
	    }

	}
    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseServerNode(TXMLNode *node) {
    TXMLNode *child = 0;

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing server node failed.");
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();

	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "host") {
		// host node is last layer, get text inside tag
		clientmain->SetServerhost(child->GetText());
	    }
	    if( TString(child->GetNodeName()) == "port") {
		// port node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: The server port is not a valid number.");
		    exit(1);
		}

		clientmain->SetServerport(val.Atoi());
	    }

	}

    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseConfigNode(TXMLNode *node) {
    TXMLNode *child = 0;

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing config node failed.");
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();

	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "server") {
		// if node is server, go one layer down
		ParseServerNode(child);
	    }
	}

    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientXML::ParseMainWindowNode(TXMLNode *node, HOnlineMonClientMainWin *clientmainwin) {
    TXMLNode *child = 0;

    if (!node->HasChildren()) {
	Printf("XML ERROR: parsing MainWindow node failed.");
	exit(1);
    }

    child = node->GetChildren();

    while (child->HasNextNode()) {
	child = child->GetNextNode();

	if (child->GetNodeType() == TXMLNode::kXMLElementNode) {
	    if( TString(child->GetNodeName()) == "name") {
		// name node is last layer, get text inside tag
		TString windowname = child->GetText();
		if (!windowname.IsAlnum()) {
		    Printf("XML ERROR: parsing MainWindow node failed. Invalid MainWindow name '%s'", windowname.Data());
		    exit(1);
		}
		clientmainwin->SetName(windowname);
	    }

	    if( TString(child->GetNodeName()) == "title") {
		// title node is last layer, get text inside tag
		clientmainwin->SetTitle(child->GetText());
	    }

	    if( TString(child->GetNodeName()) == "width") {
		// width node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: width of MainWindow is not a valid number.");
		    exit(1);
		}

		clientmainwin->SetWidth(val.Atoi());
	    }

	    if( TString(child->GetNodeName()) == "height") {
		// height node is last layer, get text inside tag

		// type checking
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: height of MainWindow is not a valid number.");
		    exit(1);
		}

		clientmainwin->SetHeight(val.Atoi());
	    }

            if( TString(child->GetNodeName()) == "snapshotpath") {
		clientmainwin->SetSnapShotPath(child->GetText());
	    }
            if( TString(child->GetNodeName()) == "snapshotpathonline") {
		clientmainwin->fTextSnapshotPathOnline=child->GetText();
	    }

	    if( TString(child->GetNodeName()) == "autosaverate") {
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: autosaverate of MainWindow is not a valid number.");
		    exit(1);
		}
		clientmainwin->SetAutoSaveRate(val.Atoi());
		HOnlineMonClientMain::SetAutoSaveInterval(val.Atoi());
	    }
	    if( TString(child->GetNodeName()) == "autosaverateonline") {
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: autosaverateonline of MainWindow is not a valid number.");
		    exit(1);
		}
		HOnlineMonClientMain::SetAutoSaveIntervalOnline(val.Atoi());
	    }

	    if( TString(child->GetNodeName()) == "openlist") {
		TString val = child->GetText();

		TObjArray* myarguments = val.Tokenize(",");
		TIterator* myiter = myarguments->MakeIterator();
                TObjString* stemp = 0;
		// iterate over the list of arguments
		while ((stemp = (TObjString*)myiter->Next()) != 0)
		{
		    TString argument = stemp->GetString();
		    clientmainwin->listOpenDetectors.Add(new TObjString(argument.Data()));
		}
		myarguments->Delete();
		delete myarguments;
                delete myiter;

	    }

	    if( TString(child->GetNodeName()) == "reconnect") {
		TString val = child->GetText();
		if (!val.IsDigit()) {
		    Printf("XML ERROR: reconnect of MainWindow is not a valid number.");
		    exit(1);
		}

                clientmainwin->GetMainClient()->SetReconnect(val.Atoi());
	    }

	}

    }
}

 honlinemonclientxml.cc:1
 honlinemonclientxml.cc:2
 honlinemonclientxml.cc:3
 honlinemonclientxml.cc:4
 honlinemonclientxml.cc:5
 honlinemonclientxml.cc:6
 honlinemonclientxml.cc:7
 honlinemonclientxml.cc:8
 honlinemonclientxml.cc:9
 honlinemonclientxml.cc:10
 honlinemonclientxml.cc:11
 honlinemonclientxml.cc:12
 honlinemonclientxml.cc:13
 honlinemonclientxml.cc:14
 honlinemonclientxml.cc:15
 honlinemonclientxml.cc:16
 honlinemonclientxml.cc:17
 honlinemonclientxml.cc:18
 honlinemonclientxml.cc:19
 honlinemonclientxml.cc:20
 honlinemonclientxml.cc:21
 honlinemonclientxml.cc:22
 honlinemonclientxml.cc:23
 honlinemonclientxml.cc:24
 honlinemonclientxml.cc:25
 honlinemonclientxml.cc:26
 honlinemonclientxml.cc:27
 honlinemonclientxml.cc:28
 honlinemonclientxml.cc:29
 honlinemonclientxml.cc:30
 honlinemonclientxml.cc:31
 honlinemonclientxml.cc:32
 honlinemonclientxml.cc:33
 honlinemonclientxml.cc:34
 honlinemonclientxml.cc:35
 honlinemonclientxml.cc:36
 honlinemonclientxml.cc:37
 honlinemonclientxml.cc:38
 honlinemonclientxml.cc:39
 honlinemonclientxml.cc:40
 honlinemonclientxml.cc:41
 honlinemonclientxml.cc:42
 honlinemonclientxml.cc:43
 honlinemonclientxml.cc:44
 honlinemonclientxml.cc:45
 honlinemonclientxml.cc:46
 honlinemonclientxml.cc:47
 honlinemonclientxml.cc:48
 honlinemonclientxml.cc:49
 honlinemonclientxml.cc:50
 honlinemonclientxml.cc:51
 honlinemonclientxml.cc:52
 honlinemonclientxml.cc:53
 honlinemonclientxml.cc:54
 honlinemonclientxml.cc:55
 honlinemonclientxml.cc:56
 honlinemonclientxml.cc:57
 honlinemonclientxml.cc:58
 honlinemonclientxml.cc:59
 honlinemonclientxml.cc:60
 honlinemonclientxml.cc:61
 honlinemonclientxml.cc:62
 honlinemonclientxml.cc:63
 honlinemonclientxml.cc:64
 honlinemonclientxml.cc:65
 honlinemonclientxml.cc:66
 honlinemonclientxml.cc:67
 honlinemonclientxml.cc:68
 honlinemonclientxml.cc:69
 honlinemonclientxml.cc:70
 honlinemonclientxml.cc:71
 honlinemonclientxml.cc:72
 honlinemonclientxml.cc:73
 honlinemonclientxml.cc:74
 honlinemonclientxml.cc:75
 honlinemonclientxml.cc:76
 honlinemonclientxml.cc:77
 honlinemonclientxml.cc:78
 honlinemonclientxml.cc:79
 honlinemonclientxml.cc:80
 honlinemonclientxml.cc:81
 honlinemonclientxml.cc:82
 honlinemonclientxml.cc:83
 honlinemonclientxml.cc:84
 honlinemonclientxml.cc:85
 honlinemonclientxml.cc:86
 honlinemonclientxml.cc:87
 honlinemonclientxml.cc:88
 honlinemonclientxml.cc:89
 honlinemonclientxml.cc:90
 honlinemonclientxml.cc:91
 honlinemonclientxml.cc:92
 honlinemonclientxml.cc:93
 honlinemonclientxml.cc:94
 honlinemonclientxml.cc:95
 honlinemonclientxml.cc:96
 honlinemonclientxml.cc:97
 honlinemonclientxml.cc:98
 honlinemonclientxml.cc:99
 honlinemonclientxml.cc:100
 honlinemonclientxml.cc:101
 honlinemonclientxml.cc:102
 honlinemonclientxml.cc:103
 honlinemonclientxml.cc:104
 honlinemonclientxml.cc:105
 honlinemonclientxml.cc:106
 honlinemonclientxml.cc:107
 honlinemonclientxml.cc:108
 honlinemonclientxml.cc:109
 honlinemonclientxml.cc:110
 honlinemonclientxml.cc:111
 honlinemonclientxml.cc:112
 honlinemonclientxml.cc:113
 honlinemonclientxml.cc:114
 honlinemonclientxml.cc:115
 honlinemonclientxml.cc:116
 honlinemonclientxml.cc:117
 honlinemonclientxml.cc:118
 honlinemonclientxml.cc:119
 honlinemonclientxml.cc:120
 honlinemonclientxml.cc:121
 honlinemonclientxml.cc:122
 honlinemonclientxml.cc:123
 honlinemonclientxml.cc:124
 honlinemonclientxml.cc:125
 honlinemonclientxml.cc:126
 honlinemonclientxml.cc:127
 honlinemonclientxml.cc:128
 honlinemonclientxml.cc:129
 honlinemonclientxml.cc:130
 honlinemonclientxml.cc:131
 honlinemonclientxml.cc:132
 honlinemonclientxml.cc:133
 honlinemonclientxml.cc:134
 honlinemonclientxml.cc:135
 honlinemonclientxml.cc:136
 honlinemonclientxml.cc:137
 honlinemonclientxml.cc:138
 honlinemonclientxml.cc:139
 honlinemonclientxml.cc:140
 honlinemonclientxml.cc:141
 honlinemonclientxml.cc:142
 honlinemonclientxml.cc:143
 honlinemonclientxml.cc:144
 honlinemonclientxml.cc:145
 honlinemonclientxml.cc:146
 honlinemonclientxml.cc:147
 honlinemonclientxml.cc:148
 honlinemonclientxml.cc:149
 honlinemonclientxml.cc:150
 honlinemonclientxml.cc:151
 honlinemonclientxml.cc:152
 honlinemonclientxml.cc:153
 honlinemonclientxml.cc:154
 honlinemonclientxml.cc:155
 honlinemonclientxml.cc:156
 honlinemonclientxml.cc:157
 honlinemonclientxml.cc:158
 honlinemonclientxml.cc:159
 honlinemonclientxml.cc:160
 honlinemonclientxml.cc:161
 honlinemonclientxml.cc:162
 honlinemonclientxml.cc:163
 honlinemonclientxml.cc:164
 honlinemonclientxml.cc:165
 honlinemonclientxml.cc:166
 honlinemonclientxml.cc:167
 honlinemonclientxml.cc:168
 honlinemonclientxml.cc:169
 honlinemonclientxml.cc:170
 honlinemonclientxml.cc:171
 honlinemonclientxml.cc:172
 honlinemonclientxml.cc:173
 honlinemonclientxml.cc:174
 honlinemonclientxml.cc:175
 honlinemonclientxml.cc:176
 honlinemonclientxml.cc:177
 honlinemonclientxml.cc:178
 honlinemonclientxml.cc:179
 honlinemonclientxml.cc:180
 honlinemonclientxml.cc:181
 honlinemonclientxml.cc:182
 honlinemonclientxml.cc:183
 honlinemonclientxml.cc:184
 honlinemonclientxml.cc:185
 honlinemonclientxml.cc:186
 honlinemonclientxml.cc:187
 honlinemonclientxml.cc:188
 honlinemonclientxml.cc:189
 honlinemonclientxml.cc:190
 honlinemonclientxml.cc:191
 honlinemonclientxml.cc:192
 honlinemonclientxml.cc:193
 honlinemonclientxml.cc:194
 honlinemonclientxml.cc:195
 honlinemonclientxml.cc:196
 honlinemonclientxml.cc:197
 honlinemonclientxml.cc:198
 honlinemonclientxml.cc:199
 honlinemonclientxml.cc:200
 honlinemonclientxml.cc:201
 honlinemonclientxml.cc:202
 honlinemonclientxml.cc:203
 honlinemonclientxml.cc:204
 honlinemonclientxml.cc:205
 honlinemonclientxml.cc:206
 honlinemonclientxml.cc:207
 honlinemonclientxml.cc:208
 honlinemonclientxml.cc:209
 honlinemonclientxml.cc:210
 honlinemonclientxml.cc:211
 honlinemonclientxml.cc:212
 honlinemonclientxml.cc:213
 honlinemonclientxml.cc:214
 honlinemonclientxml.cc:215
 honlinemonclientxml.cc:216
 honlinemonclientxml.cc:217
 honlinemonclientxml.cc:218
 honlinemonclientxml.cc:219
 honlinemonclientxml.cc:220
 honlinemonclientxml.cc:221
 honlinemonclientxml.cc:222
 honlinemonclientxml.cc:223
 honlinemonclientxml.cc:224
 honlinemonclientxml.cc:225
 honlinemonclientxml.cc:226
 honlinemonclientxml.cc:227
 honlinemonclientxml.cc:228
 honlinemonclientxml.cc:229
 honlinemonclientxml.cc:230
 honlinemonclientxml.cc:231
 honlinemonclientxml.cc:232
 honlinemonclientxml.cc:233
 honlinemonclientxml.cc:234
 honlinemonclientxml.cc:235
 honlinemonclientxml.cc:236
 honlinemonclientxml.cc:237
 honlinemonclientxml.cc:238
 honlinemonclientxml.cc:239
 honlinemonclientxml.cc:240
 honlinemonclientxml.cc:241
 honlinemonclientxml.cc:242
 honlinemonclientxml.cc:243
 honlinemonclientxml.cc:244
 honlinemonclientxml.cc:245
 honlinemonclientxml.cc:246
 honlinemonclientxml.cc:247
 honlinemonclientxml.cc:248
 honlinemonclientxml.cc:249
 honlinemonclientxml.cc:250
 honlinemonclientxml.cc:251
 honlinemonclientxml.cc:252
 honlinemonclientxml.cc:253
 honlinemonclientxml.cc:254
 honlinemonclientxml.cc:255
 honlinemonclientxml.cc:256
 honlinemonclientxml.cc:257
 honlinemonclientxml.cc:258
 honlinemonclientxml.cc:259
 honlinemonclientxml.cc:260
 honlinemonclientxml.cc:261
 honlinemonclientxml.cc:262
 honlinemonclientxml.cc:263
 honlinemonclientxml.cc:264
 honlinemonclientxml.cc:265
 honlinemonclientxml.cc:266
 honlinemonclientxml.cc:267
 honlinemonclientxml.cc:268
 honlinemonclientxml.cc:269
 honlinemonclientxml.cc:270
 honlinemonclientxml.cc:271
 honlinemonclientxml.cc:272
 honlinemonclientxml.cc:273
 honlinemonclientxml.cc:274
 honlinemonclientxml.cc:275
 honlinemonclientxml.cc:276
 honlinemonclientxml.cc:277
 honlinemonclientxml.cc:278
 honlinemonclientxml.cc:279
 honlinemonclientxml.cc:280
 honlinemonclientxml.cc:281
 honlinemonclientxml.cc:282
 honlinemonclientxml.cc:283
 honlinemonclientxml.cc:284
 honlinemonclientxml.cc:285
 honlinemonclientxml.cc:286
 honlinemonclientxml.cc:287
 honlinemonclientxml.cc:288
 honlinemonclientxml.cc:289
 honlinemonclientxml.cc:290
 honlinemonclientxml.cc:291
 honlinemonclientxml.cc:292
 honlinemonclientxml.cc:293
 honlinemonclientxml.cc:294
 honlinemonclientxml.cc:295
 honlinemonclientxml.cc:296
 honlinemonclientxml.cc:297
 honlinemonclientxml.cc:298
 honlinemonclientxml.cc:299
 honlinemonclientxml.cc:300
 honlinemonclientxml.cc:301
 honlinemonclientxml.cc:302
 honlinemonclientxml.cc:303
 honlinemonclientxml.cc:304
 honlinemonclientxml.cc:305
 honlinemonclientxml.cc:306
 honlinemonclientxml.cc:307
 honlinemonclientxml.cc:308
 honlinemonclientxml.cc:309
 honlinemonclientxml.cc:310
 honlinemonclientxml.cc:311
 honlinemonclientxml.cc:312
 honlinemonclientxml.cc:313
 honlinemonclientxml.cc:314
 honlinemonclientxml.cc:315
 honlinemonclientxml.cc:316
 honlinemonclientxml.cc:317
 honlinemonclientxml.cc:318
 honlinemonclientxml.cc:319
 honlinemonclientxml.cc:320
 honlinemonclientxml.cc:321
 honlinemonclientxml.cc:322
 honlinemonclientxml.cc:323
 honlinemonclientxml.cc:324
 honlinemonclientxml.cc:325
 honlinemonclientxml.cc:326
 honlinemonclientxml.cc:327
 honlinemonclientxml.cc:328
 honlinemonclientxml.cc:329
 honlinemonclientxml.cc:330
 honlinemonclientxml.cc:331
 honlinemonclientxml.cc:332
 honlinemonclientxml.cc:333
 honlinemonclientxml.cc:334
 honlinemonclientxml.cc:335
 honlinemonclientxml.cc:336
 honlinemonclientxml.cc:337
 honlinemonclientxml.cc:338
 honlinemonclientxml.cc:339
 honlinemonclientxml.cc:340
 honlinemonclientxml.cc:341
 honlinemonclientxml.cc:342
 honlinemonclientxml.cc:343
 honlinemonclientxml.cc:344
 honlinemonclientxml.cc:345
 honlinemonclientxml.cc:346
 honlinemonclientxml.cc:347
 honlinemonclientxml.cc:348
 honlinemonclientxml.cc:349
 honlinemonclientxml.cc:350
 honlinemonclientxml.cc:351
 honlinemonclientxml.cc:352
 honlinemonclientxml.cc:353
 honlinemonclientxml.cc:354
 honlinemonclientxml.cc:355
 honlinemonclientxml.cc:356
 honlinemonclientxml.cc:357
 honlinemonclientxml.cc:358
 honlinemonclientxml.cc:359
 honlinemonclientxml.cc:360
 honlinemonclientxml.cc:361
 honlinemonclientxml.cc:362
 honlinemonclientxml.cc:363
 honlinemonclientxml.cc:364
 honlinemonclientxml.cc:365
 honlinemonclientxml.cc:366
 honlinemonclientxml.cc:367
 honlinemonclientxml.cc:368
 honlinemonclientxml.cc:369
 honlinemonclientxml.cc:370
 honlinemonclientxml.cc:371
 honlinemonclientxml.cc:372
 honlinemonclientxml.cc:373
 honlinemonclientxml.cc:374
 honlinemonclientxml.cc:375
 honlinemonclientxml.cc:376
 honlinemonclientxml.cc:377
 honlinemonclientxml.cc:378
 honlinemonclientxml.cc:379
 honlinemonclientxml.cc:380
 honlinemonclientxml.cc:381
 honlinemonclientxml.cc:382
 honlinemonclientxml.cc:383
 honlinemonclientxml.cc:384
 honlinemonclientxml.cc:385
 honlinemonclientxml.cc:386
 honlinemonclientxml.cc:387
 honlinemonclientxml.cc:388
 honlinemonclientxml.cc:389
 honlinemonclientxml.cc:390
 honlinemonclientxml.cc:391
 honlinemonclientxml.cc:392
 honlinemonclientxml.cc:393
 honlinemonclientxml.cc:394
 honlinemonclientxml.cc:395
 honlinemonclientxml.cc:396
 honlinemonclientxml.cc:397
 honlinemonclientxml.cc:398
 honlinemonclientxml.cc:399
 honlinemonclientxml.cc:400
 honlinemonclientxml.cc:401
 honlinemonclientxml.cc:402
 honlinemonclientxml.cc:403
 honlinemonclientxml.cc:404
 honlinemonclientxml.cc:405
 honlinemonclientxml.cc:406
 honlinemonclientxml.cc:407
 honlinemonclientxml.cc:408
 honlinemonclientxml.cc:409
 honlinemonclientxml.cc:410
 honlinemonclientxml.cc:411
 honlinemonclientxml.cc:412
 honlinemonclientxml.cc:413
 honlinemonclientxml.cc:414
 honlinemonclientxml.cc:415
 honlinemonclientxml.cc:416
 honlinemonclientxml.cc:417
 honlinemonclientxml.cc:418
 honlinemonclientxml.cc:419
 honlinemonclientxml.cc:420
 honlinemonclientxml.cc:421
 honlinemonclientxml.cc:422
 honlinemonclientxml.cc:423
 honlinemonclientxml.cc:424
 honlinemonclientxml.cc:425
 honlinemonclientxml.cc:426
 honlinemonclientxml.cc:427
 honlinemonclientxml.cc:428
 honlinemonclientxml.cc:429
 honlinemonclientxml.cc:430
 honlinemonclientxml.cc:431
 honlinemonclientxml.cc:432
 honlinemonclientxml.cc:433
 honlinemonclientxml.cc:434
 honlinemonclientxml.cc:435
 honlinemonclientxml.cc:436
 honlinemonclientxml.cc:437
 honlinemonclientxml.cc:438
 honlinemonclientxml.cc:439
 honlinemonclientxml.cc:440
 honlinemonclientxml.cc:441
 honlinemonclientxml.cc:442
 honlinemonclientxml.cc:443
 honlinemonclientxml.cc:444
 honlinemonclientxml.cc:445
 honlinemonclientxml.cc:446
 honlinemonclientxml.cc:447
 honlinemonclientxml.cc:448
 honlinemonclientxml.cc:449
 honlinemonclientxml.cc:450
 honlinemonclientxml.cc:451
 honlinemonclientxml.cc:452
 honlinemonclientxml.cc:453
 honlinemonclientxml.cc:454
 honlinemonclientxml.cc:455
 honlinemonclientxml.cc:456
 honlinemonclientxml.cc:457
 honlinemonclientxml.cc:458
 honlinemonclientxml.cc:459
 honlinemonclientxml.cc:460
 honlinemonclientxml.cc:461
 honlinemonclientxml.cc:462
 honlinemonclientxml.cc:463
 honlinemonclientxml.cc:464
 honlinemonclientxml.cc:465
 honlinemonclientxml.cc:466
 honlinemonclientxml.cc:467
 honlinemonclientxml.cc:468
 honlinemonclientxml.cc:469
 honlinemonclientxml.cc:470
 honlinemonclientxml.cc:471
 honlinemonclientxml.cc:472
 honlinemonclientxml.cc:473
 honlinemonclientxml.cc:474
 honlinemonclientxml.cc:475
 honlinemonclientxml.cc:476
 honlinemonclientxml.cc:477
 honlinemonclientxml.cc:478
 honlinemonclientxml.cc:479
 honlinemonclientxml.cc:480
 honlinemonclientxml.cc:481
 honlinemonclientxml.cc:482
 honlinemonclientxml.cc:483
 honlinemonclientxml.cc:484
 honlinemonclientxml.cc:485
 honlinemonclientxml.cc:486
 honlinemonclientxml.cc:487
 honlinemonclientxml.cc:488
 honlinemonclientxml.cc:489
 honlinemonclientxml.cc:490
 honlinemonclientxml.cc:491
 honlinemonclientxml.cc:492
 honlinemonclientxml.cc:493
 honlinemonclientxml.cc:494
 honlinemonclientxml.cc:495
 honlinemonclientxml.cc:496
 honlinemonclientxml.cc:497
 honlinemonclientxml.cc:498
 honlinemonclientxml.cc:499
 honlinemonclientxml.cc:500
 honlinemonclientxml.cc:501
 honlinemonclientxml.cc:502
 honlinemonclientxml.cc:503
 honlinemonclientxml.cc:504
 honlinemonclientxml.cc:505
 honlinemonclientxml.cc:506
 honlinemonclientxml.cc:507
 honlinemonclientxml.cc:508
 honlinemonclientxml.cc:509
 honlinemonclientxml.cc:510
 honlinemonclientxml.cc:511
 honlinemonclientxml.cc:512
 honlinemonclientxml.cc:513
 honlinemonclientxml.cc:514
 honlinemonclientxml.cc:515
 honlinemonclientxml.cc:516
 honlinemonclientxml.cc:517
 honlinemonclientxml.cc:518
 honlinemonclientxml.cc:519
 honlinemonclientxml.cc:520
 honlinemonclientxml.cc:521
 honlinemonclientxml.cc:522
 honlinemonclientxml.cc:523
 honlinemonclientxml.cc:524
 honlinemonclientxml.cc:525
 honlinemonclientxml.cc:526
 honlinemonclientxml.cc:527
 honlinemonclientxml.cc:528
 honlinemonclientxml.cc:529
 honlinemonclientxml.cc:530
 honlinemonclientxml.cc:531
 honlinemonclientxml.cc:532
 honlinemonclientxml.cc:533
 honlinemonclientxml.cc:534
 honlinemonclientxml.cc:535
 honlinemonclientxml.cc:536
 honlinemonclientxml.cc:537
 honlinemonclientxml.cc:538
 honlinemonclientxml.cc:539
 honlinemonclientxml.cc:540
 honlinemonclientxml.cc:541
 honlinemonclientxml.cc:542
 honlinemonclientxml.cc:543
 honlinemonclientxml.cc:544
 honlinemonclientxml.cc:545
 honlinemonclientxml.cc:546
 honlinemonclientxml.cc:547
 honlinemonclientxml.cc:548
 honlinemonclientxml.cc:549
 honlinemonclientxml.cc:550
 honlinemonclientxml.cc:551
 honlinemonclientxml.cc:552
 honlinemonclientxml.cc:553
 honlinemonclientxml.cc:554
 honlinemonclientxml.cc:555
 honlinemonclientxml.cc:556
 honlinemonclientxml.cc:557
 honlinemonclientxml.cc:558
 honlinemonclientxml.cc:559
 honlinemonclientxml.cc:560
 honlinemonclientxml.cc:561
 honlinemonclientxml.cc:562
 honlinemonclientxml.cc:563
 honlinemonclientxml.cc:564
 honlinemonclientxml.cc:565
 honlinemonclientxml.cc:566
 honlinemonclientxml.cc:567
 honlinemonclientxml.cc:568
 honlinemonclientxml.cc:569
 honlinemonclientxml.cc:570
 honlinemonclientxml.cc:571
 honlinemonclientxml.cc:572
 honlinemonclientxml.cc:573
 honlinemonclientxml.cc:574
 honlinemonclientxml.cc:575
 honlinemonclientxml.cc:576
 honlinemonclientxml.cc:577
 honlinemonclientxml.cc:578
 honlinemonclientxml.cc:579
 honlinemonclientxml.cc:580
 honlinemonclientxml.cc:581
 honlinemonclientxml.cc:582
 honlinemonclientxml.cc:583
 honlinemonclientxml.cc:584
 honlinemonclientxml.cc:585
 honlinemonclientxml.cc:586
 honlinemonclientxml.cc:587
 honlinemonclientxml.cc:588
 honlinemonclientxml.cc:589
 honlinemonclientxml.cc:590
 honlinemonclientxml.cc:591
 honlinemonclientxml.cc:592
 honlinemonclientxml.cc:593
 honlinemonclientxml.cc:594
 honlinemonclientxml.cc:595
 honlinemonclientxml.cc:596
 honlinemonclientxml.cc:597
 honlinemonclientxml.cc:598
 honlinemonclientxml.cc:599
 honlinemonclientxml.cc:600
 honlinemonclientxml.cc:601
 honlinemonclientxml.cc:602
 honlinemonclientxml.cc:603
 honlinemonclientxml.cc:604
 honlinemonclientxml.cc:605
 honlinemonclientxml.cc:606
 honlinemonclientxml.cc:607
 honlinemonclientxml.cc:608
 honlinemonclientxml.cc:609
 honlinemonclientxml.cc:610
 honlinemonclientxml.cc:611
 honlinemonclientxml.cc:612
 honlinemonclientxml.cc:613
 honlinemonclientxml.cc:614
 honlinemonclientxml.cc:615
 honlinemonclientxml.cc:616
 honlinemonclientxml.cc:617
 honlinemonclientxml.cc:618
 honlinemonclientxml.cc:619
 honlinemonclientxml.cc:620
 honlinemonclientxml.cc:621
 honlinemonclientxml.cc:622
 honlinemonclientxml.cc:623
 honlinemonclientxml.cc:624
 honlinemonclientxml.cc:625
 honlinemonclientxml.cc:626
 honlinemonclientxml.cc:627
 honlinemonclientxml.cc:628
 honlinemonclientxml.cc:629
 honlinemonclientxml.cc:630
 honlinemonclientxml.cc:631
 honlinemonclientxml.cc:632
 honlinemonclientxml.cc:633
 honlinemonclientxml.cc:634
 honlinemonclientxml.cc:635
 honlinemonclientxml.cc:636
 honlinemonclientxml.cc:637
 honlinemonclientxml.cc:638
 honlinemonclientxml.cc:639
 honlinemonclientxml.cc:640
 honlinemonclientxml.cc:641
 honlinemonclientxml.cc:642
 honlinemonclientxml.cc:643
 honlinemonclientxml.cc:644
 honlinemonclientxml.cc:645
 honlinemonclientxml.cc:646
 honlinemonclientxml.cc:647
 honlinemonclientxml.cc:648
 honlinemonclientxml.cc:649
 honlinemonclientxml.cc:650
 honlinemonclientxml.cc:651
 honlinemonclientxml.cc:652
 honlinemonclientxml.cc:653
 honlinemonclientxml.cc:654
 honlinemonclientxml.cc:655
 honlinemonclientxml.cc:656
 honlinemonclientxml.cc:657
 honlinemonclientxml.cc:658
 honlinemonclientxml.cc:659
 honlinemonclientxml.cc:660
 honlinemonclientxml.cc:661
 honlinemonclientxml.cc:662
 honlinemonclientxml.cc:663
 honlinemonclientxml.cc:664
 honlinemonclientxml.cc:665
 honlinemonclientxml.cc:666
 honlinemonclientxml.cc:667
 honlinemonclientxml.cc:668
 honlinemonclientxml.cc:669
 honlinemonclientxml.cc:670
 honlinemonclientxml.cc:671
 honlinemonclientxml.cc:672
 honlinemonclientxml.cc:673
 honlinemonclientxml.cc:674
 honlinemonclientxml.cc:675
 honlinemonclientxml.cc:676
 honlinemonclientxml.cc:677
 honlinemonclientxml.cc:678
 honlinemonclientxml.cc:679
 honlinemonclientxml.cc:680
 honlinemonclientxml.cc:681
 honlinemonclientxml.cc:682
 honlinemonclientxml.cc:683
 honlinemonclientxml.cc:684
 honlinemonclientxml.cc:685
 honlinemonclientxml.cc:686
 honlinemonclientxml.cc:687
 honlinemonclientxml.cc:688
 honlinemonclientxml.cc:689
 honlinemonclientxml.cc:690
 honlinemonclientxml.cc:691
 honlinemonclientxml.cc:692
 honlinemonclientxml.cc:693
 honlinemonclientxml.cc:694
 honlinemonclientxml.cc:695
 honlinemonclientxml.cc:696
 honlinemonclientxml.cc:697
 honlinemonclientxml.cc:698
 honlinemonclientxml.cc:699
 honlinemonclientxml.cc:700
 honlinemonclientxml.cc:701
 honlinemonclientxml.cc:702
 honlinemonclientxml.cc:703
 honlinemonclientxml.cc:704
 honlinemonclientxml.cc:705
 honlinemonclientxml.cc:706
 honlinemonclientxml.cc:707
 honlinemonclientxml.cc:708
 honlinemonclientxml.cc:709
 honlinemonclientxml.cc:710
 honlinemonclientxml.cc:711
 honlinemonclientxml.cc:712
 honlinemonclientxml.cc:713
 honlinemonclientxml.cc:714
 honlinemonclientxml.cc:715
 honlinemonclientxml.cc:716
 honlinemonclientxml.cc:717
 honlinemonclientxml.cc:718