Index: src/Actions/FragmentationAction/DepthFirstSearchAction.cpp
===================================================================
--- src/Actions/FragmentationAction/DepthFirstSearchAction.cpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/Actions/FragmentationAction/DepthFirstSearchAction.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -26,4 +26,5 @@
 #include "CodePatterns/Verbose.hpp"
 #include "Graph/CyclicStructureAnalysis.hpp"
+#include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "molecule.hpp"
 #include "Descriptors/MoleculeDescriptor.hpp"
@@ -47,10 +48,10 @@
 
   DoLog(1) && (Log() << Verbose(1) << "Depth-First-Search Analysis." << endl);
-  molecule * const mol = World::getInstance().getMolecule(MoleculeById(0));
-  MoleculeLeafClass *Subgraphs = NULL;      // list of subgraphs from DFS analysis
   atom **ListOfAtoms = NULL;
-  std::deque<bond *> *BackEdgeStack = NULL;
   std::deque<bond *> *LocalBackEdgeStack = NULL;
-  Subgraphs = mol->DepthFirstSearchAnalysis(BackEdgeStack);
+  DepthFirstSearchAnalysis DFS;
+  DFS();
+  DFS.UpdateMoleculeStructure();
+  MoleculeLeafClass *Subgraphs = DFS.getMoleculeStructure();
   if (Subgraphs != NULL) {
     int FragmentCounter = 0;
@@ -58,17 +59,18 @@
       Subgraphs = Subgraphs->next;
       ListOfAtoms = NULL;
-      Subgraphs->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
+      Subgraphs->Leaf->FillListOfLocalAtoms(ListOfAtoms, Subgraphs->Leaf->getAtomCount());
       LocalBackEdgeStack = new std::deque<bond *>; // no need to have it Subgraphs->Leaf->BondCount size
-      Subgraphs->Leaf->PickLocalBackEdges(ListOfAtoms, BackEdgeStack, LocalBackEdgeStack);
+      DFS.PickLocalBackEdges(ListOfAtoms, LocalBackEdgeStack);
       CyclicStructureAnalysis CycleAnalysis;
       CycleAnalysis(LocalBackEdgeStack);
       delete(LocalBackEdgeStack);
+      Subgraphs->Leaf = NULL;
       delete(Subgraphs->previous);
-      delete[](ListOfAtoms);  // and here we remove it
+      delete[](ListOfAtoms);  // allocated by FillListOfLocalAtoms
       FragmentCounter++;
     }
+    Subgraphs->Leaf = NULL;
     delete(Subgraphs);
   }
-  delete(BackEdgeStack);
   return Action::success;
 }
Index: src/Actions/FragmentationAction/FragmentationAction.cpp
===================================================================
--- src/Actions/FragmentationAction/FragmentationAction.cpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/Actions/FragmentationAction/FragmentationAction.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -25,4 +25,5 @@
 #include "CodePatterns/Log.hpp"
 #include "CodePatterns/Verbose.hpp"
+#include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "molecule.hpp"
 #include "Descriptors/MoleculeDescriptor.hpp"
@@ -48,17 +49,17 @@
   getParametersfromValueStorage();
 
+  DepthFirstSearchAnalysis DFS;
   for (World::MoleculeSelectionIterator iter = World::getInstance().beginMoleculeSelection(); iter != World::getInstance().endMoleculeSelection(); ++iter) {
     mol = iter->second;
     ASSERT(mol != NULL, "No molecule has been picked for fragmentation.");
-    DoLog(0) && (Log() << Verbose(0) << "Fragmenting molecule with bond distance " << params.distance << " angstroem, order of " << params.order << "." << endl);
-    DoLog(0) && (Log() << Verbose(0) << "Creating connection matrix..." << endl);
+    LOG(2, "INFO: Fragmenting molecule with bond distance " << params.distance << " angstroem, order of " << params.order << ".");
     start = clock();
-    DoLog(0) && (Log() << Verbose(0) << "Fragmenting molecule with current connection matrix ..." << endl);
     if (mol->hasBondStructure()) {
-      ExitFlag = mol->FragmentMolecule(params.order, params.path);
+      LOG(1, "STAUS: Fragmenting molecule with current connection matrix ...");
+      ExitFlag = mol->FragmentMolecule(params.order, params.path, DFS);
     }
     World::getInstance().setExitFlag(ExitFlag);
     end = clock();
-    DoLog(0) && (Log() << Verbose(0) << "Clocks for this operation: " << (end-start) << ", time: " << ((double)(end-start)/CLOCKS_PER_SEC) << "s." << endl);
+    LOG(0, "STATUS: Clocks for this operation: " << (end-start) << ", time: " << ((double)(end-start)/CLOCKS_PER_SEC) << "s.");
   }
   return Action::success;
Index: src/Actions/FragmentationAction/SubgraphDissectionAction.cpp
===================================================================
--- src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/Actions/FragmentationAction/SubgraphDissectionAction.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -29,4 +29,5 @@
 #include "CodePatterns/Verbose.hpp"
 #include "Graph/BondGraph.hpp"
+#include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "molecule.hpp"
 #include "World.hpp"
@@ -102,10 +103,8 @@
 
   // 2. scan for connected subgraphs
-  LOG(0, "STATUS: Analysing adjacency graph.");
-  MoleculeLeafClass *Subgraphs = NULL;      // list of subgraphs from DFS analysis
-  std::deque<bond *> *BackEdgeStack = NULL;
-  Subgraphs = mol->DepthFirstSearchAnalysis(BackEdgeStack);
-  delete(BackEdgeStack);
-  if ((Subgraphs == NULL) || (Subgraphs->next == NULL)) {
+  DepthFirstSearchAnalysis DFS;
+  DFS();
+  DFS.UpdateMoleculeStructure();
+  if (!World::getInstance().numMolecules()) {
     //World::getInstance().destroyMolecule(mol);
     DoeLog(1) && (eLog()<< Verbose(1) << "There are no atoms." << endl);
@@ -113,59 +112,5 @@
   }
 
-  //int FragmentCounter = Subgraphs->next->Count();
-
-  // TODO: When DepthFirstSearchAnalysis does not use AddCopyAtom() anymore, we don't need to delete all original atoms
-  LOG(0, "STATUS: Creating molecules as connected subgraphs.");
-  {
-    {
-      atom **ListOfAtoms = NULL;
-      // 3a. re-create bond structure and insert molecules into general MoleculeListClass
-      MoleculeLeafClass *MoleculeWalker = Subgraphs->next;
-      while (MoleculeWalker->next != NULL) {
-        ListOfAtoms = NULL;
-        MoleculeWalker->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
-        molecules->insert(MoleculeWalker->Leaf);
-        MoleculeWalker = MoleculeWalker->next;
-      }
-      molecules->insert(MoleculeWalker->Leaf);
-      ListOfAtoms = NULL;
-      MoleculeWalker->Leaf->FillBondStructureFromReference(mol, ListOfAtoms, true);  // we want to keep the created ListOfLocalAtoms
-    }
-
-    // 3b. store map from new to old ids for 3d
-    vector <atom *> allatoms = World::getInstance().getAllAtoms();
-    AtomAtomList newtooldlist;
-    for(vector<atom *>::iterator AtomRunner = allatoms.begin(); AtomRunner != allatoms.end(); ++AtomRunner)
-      if ((*AtomRunner)->father != (*AtomRunner))
-        newtooldlist.insert( std::pair<atomId_t, atomId_t> ((*AtomRunner)->getId(),(*AtomRunner)->father->getId()) );
-
-    {
-      // 3c. destroy the original molecule
-      for (molecule::iterator AtomRunner = mol->begin(); !mol->empty(); AtomRunner = mol->begin())
-        World::getInstance().destroyAtom(*AtomRunner);
-      World::getInstance().destroyMolecule(mol);
-    }
-
-    {
-      // 3d. convert to old Ids and correct fathers (AddCopyAtom sets father to original atom, which has been destroyed).
-      vector <atom *> allatoms = World::getInstance().getAllAtoms();
-      for(vector<atom *>::iterator AtomRunner = allatoms.begin(); AtomRunner != allatoms.end(); ++AtomRunner) {
-        World::getInstance().changeAtomId((*AtomRunner)->getId(), newtooldlist[(*AtomRunner)->getId()]);
-        (*AtomRunner)->father = *AtomRunner;
-      }
-    }
-  }
-
-  // 4. free Leafs
-  LOG(0, "STATUS: Done.");
-  MoleculeLeafClass *MolecularWalker = Subgraphs;
-  while (MolecularWalker->next != NULL) {
-    MolecularWalker->Leaf = NULL;
-    MolecularWalker = MolecularWalker->next;
-    delete(MolecularWalker->previous);
-  }
-  MolecularWalker->Leaf = NULL;
-  delete(MolecularWalker);
-  DoLog(1) && (Log() << Verbose(1) << "I scanned " << molecules->ListOfMolecules.size() << " molecules." << endl);
+  DoLog(1) && (Log() << Verbose(1) << "I scanned " << World::getInstance().numMolecules() << " molecules." << endl);
 
   return Action::state_ptr(UndoState);
Index: src/Graph/DepthFirstSearchAnalysis.cpp
===================================================================
--- src/Graph/DepthFirstSearchAnalysis.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
+++ src/Graph/DepthFirstSearchAnalysis.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -0,0 +1,442 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * DepthFirstSearchAnalysis.cpp
+ *
+ *  Created on: Feb 16, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "DepthFirstSearchAnalysis.hpp"
+
+#include <algorithm>
+#include <functional>
+
+#include "atom.hpp"
+#include "Bond/bond.hpp"
+#include "CodePatterns/Assert.hpp"
+#include "CodePatterns/Info.hpp"
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/Verbose.hpp"
+#include "Descriptors/AtomDescriptor.hpp"
+#include "molecule.hpp"
+#include "World.hpp"
+
+DepthFirstSearchAnalysis::DepthFirstSearchAnalysis() :
+  CurrentGraphNr(0),
+  ComponentNumber(0),
+  BackStepping(false)
+{
+  ResetAllBondsToUnused();
+}
+
+DepthFirstSearchAnalysis::~DepthFirstSearchAnalysis()
+{}
+
+void DepthFirstSearchAnalysis::Init()
+{
+  CurrentGraphNr = 0;
+  ComponentNumber = 0;
+  BackStepping = false;
+  std::for_each(World::getInstance().getAtomIter(),World::getInstance().atomEnd(),
+      std::mem_fun(&atom::resetGraphNr));
+  std::for_each(World::getInstance().getAtomIter(),World::getInstance().atomEnd(),
+      std::mem_fun(&atom::InitComponentNr));
+}
+
+
+bond * DepthFirstSearchAnalysis::FindNextUnused(atom *vertex) const
+{
+  const BondList& ListOfBonds = vertex->getListOfBonds();
+  for (BondList::const_iterator Runner = ListOfBonds.begin();
+      Runner != ListOfBonds.end();
+      ++Runner)
+    if ((*Runner)->IsUsed() == GraphEdge::white)
+      return ((*Runner));
+  return NULL;
+}
+
+
+void DepthFirstSearchAnalysis::ResetAllBondsToUnused() const
+{
+  World::AtomComposite allatoms = World::getInstance().getAllAtoms();
+  for(World::AtomComposite::const_iterator AtomRunner = allatoms.begin();
+      AtomRunner != allatoms.end();
+      ++AtomRunner) {
+    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
+    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
+        BondRunner != ListOfBonds.end();
+        ++BondRunner)
+      if ((*BondRunner)->leftatom == *AtomRunner)
+        (*BondRunner)->ResetUsed();
+  }
+}
+
+void DepthFirstSearchAnalysis::SetNextComponentNumber(atom *vertex, int nr) const
+{
+  size_t i = 0;
+  ASSERT(vertex != NULL,
+      "DepthFirstSearchAnalysis::SetNextComponentNumber() - Given vertex is NULL!");
+  const BondList& ListOfBonds = vertex->getListOfBonds();
+  for (; i < ListOfBonds.size(); i++) {
+    if (vertex->ComponentNr[i] == -1) { // check if not yet used
+      vertex->ComponentNr[i] = nr;
+      break;
+    } else if (vertex->ComponentNr[i] == nr) // if number is already present, don't add another time
+      break; // breaking here will not cause error!
+  }
+  ASSERT(i < ListOfBonds.size(),
+      "DepthFirstSearchAnalysis::SetNextComponentNumber() - All Component entries are already occupied!");
+}
+
+
+bool DepthFirstSearchAnalysis::PickLocalBackEdges(atom **ListOfLocalAtoms, std::deque<bond *> *&LocalStack) const
+{
+  bool status = true;
+  if (BackEdgeStack.empty()) {
+    ELOG(1, "Reference BackEdgeStack is empty!");
+    return false;
+  }
+  bond *Binder = BackEdgeStack.front();
+  bond *FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely
+  atom *Walker = NULL, *OtherAtom = NULL;
+
+  do { // go through all bonds and push local ones
+    Walker = ListOfLocalAtoms[Binder->leftatom->getNr()]; // get one atom in the reference molecule
+    if (Walker != NULL) { // if this Walker exists in the subgraph ...
+      const BondList& ListOfBonds = Walker->getListOfBonds();
+      for (BondList::const_iterator Runner = ListOfBonds.begin();
+          Runner != ListOfBonds.end();
+          ++Runner) {
+        OtherAtom = (*Runner)->GetOtherAtom(Walker);
+        if (OtherAtom == ListOfLocalAtoms[(*Runner)->rightatom->getNr()]) { // found the bond
+          LocalStack->push_front((*Runner));
+          LOG(3, "INFO: Found local edge " << *(*Runner) << ".");
+          break;
+        }
+      }
+    }
+    ASSERT(!BackEdgeStack.empty(), "DepthFirstSearchAnalysis::PickLocalBackEdges() - ReferenceStack is empty!");
+    Binder = BackEdgeStack.front(); // loop the stack for next item
+    LOG(3, "Current candidate edge " << Binder << ".");
+  } while (FirstBond != Binder);
+
+  return status;
+}
+
+
+
+void DepthFirstSearchAnalysis::OutputGraphInfoPerAtom() const
+{
+  LOG(1, "Final graph info for each atom is:");
+  World::AtomComposite allatoms = World::getInstance().getAllAtoms();
+  for_each(allatoms.begin(),allatoms.end(),mem_fun(&atom::OutputGraphInfo));
+}
+
+
+void DepthFirstSearchAnalysis::OutputGraphInfoPerBond() const
+{
+  LOG(1, "Final graph info for each bond is:");
+  World::AtomComposite allatoms = World::getInstance().getAllAtoms();
+  for(World::AtomComposite::const_iterator AtomRunner = allatoms.begin();
+      AtomRunner != allatoms.end();
+      ++AtomRunner) {
+    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
+    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
+        BondRunner != ListOfBonds.end();
+        ++BondRunner)
+      if ((*BondRunner)->leftatom == *AtomRunner) {
+        const bond *Binder = *BondRunner;
+        if (DoLog(2)) {
+          ostream &out = (Log() << Verbose(2));
+          out << ((Binder->Type == GraphEdge::TreeEdge) ? "TreeEdge " : "BackEdge ") << *Binder << ": <";
+          out << ((Binder->leftatom->SeparationVertex) ? "SP," : "") << "L" << Binder->leftatom->LowpointNr << " G" << Binder->leftatom->GraphNr << " Comp.";
+          Binder->leftatom->OutputComponentNumber(&out);
+          out << " ===  ";
+          out << ((Binder->rightatom->SeparationVertex) ? "SP," : "") << "L" << Binder->rightatom->LowpointNr << " G" << Binder->rightatom->GraphNr << " Comp.";
+          Binder->rightatom->OutputComponentNumber(&out);
+          out << ">." << endl;
+        }
+        if (Binder->Cyclic) // cyclic ??
+          LOG(3, "Lowpoint at each side are equal: CYCLIC!");
+      }
+  }
+}
+
+
+unsigned int DepthFirstSearchAnalysis::CyclicBondAnalysis() const
+{
+  unsigned int NoCyclicBonds = 0;
+  World::AtomComposite allatoms = World::getInstance().getAllAtoms();
+  for(World::AtomComposite::const_iterator AtomRunner = allatoms.begin();
+      AtomRunner != allatoms.end();
+      ++AtomRunner) {
+    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
+    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
+        BondRunner != ListOfBonds.end();
+        ++BondRunner)
+      if ((*BondRunner)->leftatom == *AtomRunner)
+        if ((*BondRunner)->rightatom->LowpointNr == (*BondRunner)->leftatom->LowpointNr) { // cyclic ??
+          (*BondRunner)->Cyclic = true;
+          NoCyclicBonds++;
+        }
+  }
+  return NoCyclicBonds;
+}
+
+
+void DepthFirstSearchAnalysis::SetWalkersGraphNr(atom *&Walker)
+{
+  if (!BackStepping) { // if we don't just return from (8)
+    Walker->GraphNr = CurrentGraphNr;
+    Walker->LowpointNr = CurrentGraphNr;
+    LOG(1, "Setting Walker[" << Walker->getName() << "]'s number to " << Walker->GraphNr << " with Lowpoint " << Walker->LowpointNr << ".");
+    AtomStack.push_front(Walker);
+    CurrentGraphNr++;
+  }
+}
+
+
+void DepthFirstSearchAnalysis::ProbeAlongUnusedBond(atom *&Walker, bond *&Binder)
+{
+  atom *OtherAtom = NULL;
+
+  do { // (3) if Walker has no unused egdes, go to (5)
+    BackStepping = false; // reset backstepping flag for (8)
+    if (Binder == NULL) // if we don't just return from (11), Binder is already set to next unused
+      Binder = FindNextUnused(Walker);
+    if (Binder == NULL)
+      break;
+    LOG(2, "Current Unused Bond is " << *Binder << ".");
+    // (4) Mark Binder used, ...
+    Binder->MarkUsed(GraphEdge::black);
+    OtherAtom = Binder->GetOtherAtom(Walker);
+    LOG(2, "(4) OtherAtom is " << OtherAtom->getName() << ".");
+    if (OtherAtom->GraphNr != -1) {
+      // (4a) ... if "other" atom has been visited (GraphNr != 0), set lowpoint to minimum of both, go to (3)
+      Binder->Type = GraphEdge::BackEdge;
+      BackEdgeStack.push_front(Binder);
+      Walker->LowpointNr = (Walker->LowpointNr < OtherAtom->GraphNr) ? Walker->LowpointNr : OtherAtom->GraphNr;
+      LOG(3, "(4a) Visited: Setting Lowpoint of Walker[" << Walker->getName() << "] to " << Walker->LowpointNr << ".");
+    } else {
+      // (4b) ... otherwise set OtherAtom as Ancestor of Walker and Walker as OtherAtom, go to (2)
+      Binder->Type = GraphEdge::TreeEdge;
+      OtherAtom->Ancestor = Walker;
+      Walker = OtherAtom;
+      LOG(3, "(4b) Not Visited: OtherAtom[" << OtherAtom->getName() << "]'s Ancestor is now " << OtherAtom->Ancestor->getName() << ", Walker is OtherAtom " << OtherAtom->getName() << ".");
+      break;
+    }
+    Binder = NULL;
+  } while (1); // (3)
+}
+
+
+void DepthFirstSearchAnalysis::CheckForaNewComponent(atom *&Walker, ConnectedSubgraph &Subgraph)
+{
+  atom *OtherAtom = NULL;
+
+  // (5) if Ancestor of Walker is ...
+  LOG(1, "(5) Number of Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "] is " << Walker->Ancestor->GraphNr << ".");
+
+  if (Walker->Ancestor->GraphNr != Root->GraphNr) {
+    // (6)  (Ancestor of Walker is not Root)
+    if (Walker->LowpointNr < Walker->Ancestor->GraphNr) {
+      // (6a) set Ancestor's Lowpoint number to minimum of of its Ancestor and itself, go to Step(8)
+      Walker->Ancestor->LowpointNr = (Walker->Ancestor->LowpointNr < Walker->LowpointNr) ? Walker->Ancestor->LowpointNr : Walker->LowpointNr;
+      LOG(2, "(6) Setting Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s Lowpoint to " << Walker->Ancestor->LowpointNr << ".");
+    } else {
+      // (7) (Ancestor of Walker is a separating vertex, remove all from stack till Walker (including), these and Ancestor form a component
+      Walker->Ancestor->SeparationVertex = true;
+      LOG(2, "(7) Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s is a separating vertex, creating component.");
+      SetNextComponentNumber(Walker->Ancestor, ComponentNumber);
+      LOG(3, "(7) Walker[" << Walker->getName() << "]'s Ancestor's Compont is " << ComponentNumber << ".");
+      SetNextComponentNumber(Walker, ComponentNumber);
+      LOG(3, "(7) Walker[" << Walker->getName() << "]'s Compont is " << ComponentNumber << ".");
+      do {
+        ASSERT(!AtomStack.empty(), "DepthFirstSearchAnalysis_CheckForaNewComponent() - AtomStack is empty!");
+        OtherAtom = AtomStack.front();
+        AtomStack.pop_front();
+        Subgraph.push_back(OtherAtom);
+        SetNextComponentNumber(OtherAtom, ComponentNumber);
+        LOG(3, "(7) Other[" << OtherAtom->getName() << "]'s Compont is " << ComponentNumber << ".");
+      } while (OtherAtom != Walker);
+      ComponentNumber++;
+    }
+    // (8) Walker becomes its Ancestor, go to (3)
+    LOG(2, "(8) Walker[" << Walker->getName() << "] is now its Ancestor " << Walker->Ancestor->getName() << ", backstepping. ");
+    Walker = Walker->Ancestor;
+    BackStepping = true;
+  }
+}
+
+
+void DepthFirstSearchAnalysis::CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &Subgraph)
+{
+  atom *OtherAtom = NULL;
+
+  if (!BackStepping) { // coming from (8) want to go to (3)
+    // (9) remove all from stack till Walker (including), these and Root form a component
+    //AtomStack.Output(out);
+    SetNextComponentNumber(Root, ComponentNumber);
+    LOG(3, "(9) Root[" << Root->getName() << "]'s Component is " << ComponentNumber << ".");
+    SetNextComponentNumber(Walker, ComponentNumber);
+    LOG(3, "(9) Walker[" << Walker->getName() << "]'s Component is " << ComponentNumber << ".");
+    do {
+      ASSERT(!AtomStack.empty(), "DepthFirstSearchAnalysis::CleanRootStackDownTillWalker() - AtomStack is empty!");
+      OtherAtom = AtomStack.front();
+      AtomStack.pop_front();
+      Subgraph.push_back(OtherAtom);
+      SetNextComponentNumber(OtherAtom, ComponentNumber);
+      LOG(3, "(7) Other[" << OtherAtom->getName() << "]'s Component is " << ComponentNumber << ".");
+    } while (OtherAtom != Walker);
+    ComponentNumber++;
+
+    // (11) Root is separation vertex,  set Walker to Root and go to (4)
+    Walker = Root;
+    Binder = FindNextUnused(Walker);
+    if (Binder != NULL) { // Root is separation vertex
+      LOG(1, "(10) Walker is Root[" << Root->getName() << "], next Unused Bond is " << *Binder << ".");
+      LOG(1, "(11) Root is a separation vertex.");
+      Walker->SeparationVertex = true;
+    } else {
+      LOG(1, "(10) Walker is Root[" << Root->getName() << "], no next Unused Bond.");
+    }
+  }
+}
+
+
+const std::deque<bond *>& DepthFirstSearchAnalysis::getBackEdgeStack() const
+{
+  return BackEdgeStack;
+}
+
+
+void DepthFirstSearchAnalysis::operator()()
+{
+  Info FunctionInfo("DepthFirstSearchAnalysis");
+  ListOfConnectedSubgraphs.clear();
+  int OldGraphNr = 0;
+  atom *Walker = NULL;
+  bond *Binder = NULL;
+
+  if (World::getInstance().numAtoms() == 0)
+    return;
+
+  Init();
+
+  LOG(0, "STATUS: Start walking the bond graph.");
+  for(World::AtomIterator iter = World::getInstance().getAtomIter();
+      iter != World::getInstance().atomEnd();) { // don't advance, is done at the end
+    Root = *iter;
+    // (1) mark all edges unused, empty stack, set atom->GraphNr = -1 for all
+    AtomStack.clear();
+
+    // put into new subgraph molecule and add this to list of subgraphs
+    ConnectedSubgraph CurrentSubgraph;
+    CurrentSubgraph.push_back(Root);
+
+    OldGraphNr = CurrentGraphNr;
+    Walker = Root;
+    do { // (10)
+      do { // (2) set number and Lowpoint of Atom to i, increase i, push current atom
+        SetWalkersGraphNr(Walker);
+
+        ProbeAlongUnusedBond(Walker, Binder);
+
+        if (Binder == NULL) {
+          LOG(2, "No more Unused Bonds.");
+          break;
+        } else
+          Binder = NULL;
+      } while (1); // (2)
+
+      // if we came from backstepping, yet there were no more unused bonds, we end up here with no Ancestor, because Walker is Root! Then we are finished!
+      if ((Walker == Root) && (Binder == NULL))
+        break;
+
+      CheckForaNewComponent( Walker,  CurrentSubgraph);
+
+      CleanRootStackDownTillWalker(Walker, Binder,  CurrentSubgraph);
+
+    } while ((BackStepping) || (Binder != NULL)); // (10) halt only if Root has no unused edges
+
+    ListOfConnectedSubgraphs.push_back(CurrentSubgraph);
+    // From OldGraphNr to CurrentGraphNr ranges an disconnected subgraph
+    std::stringstream output;
+    output << CurrentSubgraph;
+    LOG(0, "STATUS: Disconnected subgraph ranges from " << OldGraphNr << " to "
+        << CurrentGraphNr-1 << ": " << output.str());
+
+    // step on to next root
+    while (iter != World::getInstance().atomEnd()) {
+      if ((*iter)->GraphNr != -1) { // if already discovered, step on
+        iter++;
+      } else {
+        LOG(1,"Current next subgraph root candidate is " << (*iter)->getName()
+            << " with GraphNr " << (*iter)->GraphNr << ".");
+        break;
+      }
+    }
+  }
+  LOG(0, "STATUS: Done walking the bond graph.");
+
+  // set cyclic bond criterium on "same LP" basis
+  CyclicBondAnalysis();
+
+  OutputGraphInfoPerAtom();
+
+  OutputGraphInfoPerBond();
+}
+
+void DepthFirstSearchAnalysis::UpdateMoleculeStructure() const
+{
+  // remove all of World's molecules
+  for (World::MoleculeIterator iter = World::getInstance().getMoleculeIter();
+      World::getInstance().getMoleculeIter() != World::getInstance().moleculeEnd();
+      iter = World::getInstance().getMoleculeIter()) {
+    World::getInstance().getMolecules()->erase(*iter);
+    World::getInstance().destroyMolecule(*iter);
+  }
+  // instantiate new molecules
+  molecule *newmol = NULL;
+  for (ConnectedSubgraphList::const_iterator iter = ListOfConnectedSubgraphs.begin();
+      iter != ListOfConnectedSubgraphs.end();
+      ++iter) {
+    LOG(0, "STATUS: Creating new molecule:");
+    std::stringstream output;
+    newmol = (*iter).getMolecule();
+    newmol->Output(&output);
+    std::stringstream outstream(output.str());
+    std::string line;
+    while (getline(outstream, line)) {
+      LOG(0, "\t"+line);
+    }
+  }
+}
+
+MoleculeLeafClass *DepthFirstSearchAnalysis::getMoleculeStructure() const
+{
+  MoleculeLeafClass *Subgraphs = new MoleculeLeafClass(NULL);
+  MoleculeLeafClass *MolecularWalker = Subgraphs;
+  for (World::MoleculeIterator iter = World::getInstance().getMoleculeIter();
+      iter != World::getInstance().moleculeEnd();
+      ++iter) {
+    // TODO: Remove the insertion into molecule when saving does not depend on them anymore. Also, remove molecule.hpp include
+    MolecularWalker = new MoleculeLeafClass(MolecularWalker);
+    MolecularWalker->Leaf = (*iter);
+  }
+  return Subgraphs;
+}
+
Index: src/Graph/DepthFirstSearchAnalysis.hpp
===================================================================
--- src/Graph/DepthFirstSearchAnalysis.hpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
+++ src/Graph/DepthFirstSearchAnalysis.hpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -0,0 +1,157 @@
+/*
+ * DepthFirstSearchAnalysis.hpp
+ *
+ *  Created on: Feb 16, 2011
+ *      Author: heber
+ */
+
+#ifndef DEPTHFIRSTSEARCHANALYSIS_HPP_
+#define DEPTHFIRSTSEARCHANALYSIS_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <deque>
+
+#include "ConnectedSubgraph.hpp"
+
+class atom;
+class bond;
+class MoleculeLeafClass;
+class molecule;
+
+class DepthFirstSearchAnalysis
+{
+public:
+  /** Constructor of DepthFirstSearchAnalysis.
+   */
+  DepthFirstSearchAnalysis();
+
+  /** Destructor of DepthFirstSearchAnalysis.
+   */
+  ~DepthFirstSearchAnalysis();
+
+  /** Performs a Depth-First search on all atoms.
+   * Marks bonds in molecule as cyclic, bridge, ... and atoms as
+   * articulations points, ...
+   * We use the algorithm from [Even, Graph Algorithms, p.62].
+   * \param *&BackEdgeStack NULL pointer to std::deque<bond *> with all the found back edges, allocated and filled on return
+   * \return list of each disconnected subgraph as an individual molecule class structure
+   */
+  void operator()();
+
+  /** Scans through all bonds and set bond::Cyclic to true where atom::LowpointNr of both ends is equal: LP criterion.
+   * \note Hydrogen bonds can never by cyclic, thus no check for that
+   * \return number of cyclic bonds
+   */
+  unsigned int CyclicBondAnalysis() const;
+
+  /** Removes all molecules and assign anew with known ListOfConnectedSubgraphs.
+   *
+   */
+  void UpdateMoleculeStructure() const;
+
+  /** Creates a chained list of all present molecules.
+   *
+   * \warning returns allocated chained list as reference, has to be free'd item by item through the list
+   *
+   * @return start node of chained molecules list
+   */
+  MoleculeLeafClass *getMoleculeStructure() const;
+
+  /** Picks from a global stack with all back edges the ones in the fragment.
+   *
+   * Reference is the internal BackEdgeStack.
+   *
+   * \param **ListOfLocalAtoms array of father atom::nr to local atom::nr (reverse of atom::father)
+   * \param *LocalStack stack to be filled
+   * \return true - everything ok, false - ReferenceStack was empty
+   */
+  bool PickLocalBackEdges(atom **ListOfLocalAtoms, std::deque<bond *> *&LocalStack) const;
+
+  /** Getter for BackEdgeStack.
+   *
+   * @return const reference to BackEdgeStack
+   */
+  const std::deque<bond *>& getBackEdgeStack() const;
+
+private:
+  /** Resets GraphNodeInfo::ComponentNr and GraphNodeInfo::GraphrNr.
+   *
+   */
+  void Init();
+
+  /** Returns next unused bond for this atom \a *vertex or NULL of none exists.
+   * \param *vertex atom to regard
+   * \return bond class or NULL
+   */
+  bond * FindNextUnused(atom *vertex) const;
+
+  /** Resets bond::Used flag of all bonds in this molecule.
+   * \return true - success, false - -failure
+   */
+  void ResetAllBondsToUnused() const;
+
+  /** Sets the next component number.
+   * This is O(N) as the number of bonds per atom is bound.
+   * \param *vertex atom whose next atom::*ComponentNr is to be set
+   * \param nr number to use
+   */
+  void SetNextComponentNumber(atom *vertex, int nr) const;
+
+  /** Sets atom::GraphNr and atom::LowpointNr to CurrentGraphNr.
+   * \param *Walker current node
+   */
+  void SetWalkersGraphNr(atom *&Walker);
+
+  /** During DFS goes along unvisited bond and touches other atom.
+   * Sets bond::type, if
+   *  -# BackEdge: set atom::LowpointNr and push on \a BackEdgeStack
+   *  -# TreeEgde: set atom::Ancestor and continue with Walker along this edge
+   * Continue until molecule::FindNextUnused() finds no more unused bonds.
+   * \param *&Walker current node
+   * \param *&Binder current edge
+   */
+  void ProbeAlongUnusedBond(atom *&Walker, bond *&Binder);
+
+  /** Checks whether we have a new component.
+   * if atom::LowpointNr of \a *&Walker is greater than atom::GraphNr of its atom::Ancestor, we have a new component.
+   * Meaning that if we touch upon a node who suddenly has a smaller atom::LowpointNr than its ancestor, then we
+   * have a found a new branch in the graph tree.
+   * \param *&Walker current node
+   * \param &LeafWalker contains reference to destination subgraph
+   */
+  void CheckForaNewComponent(atom *&Walker, ConnectedSubgraph &LeafWalker);
+
+  /** Cleans the root stack when we have found a component.
+   * If we are not BackStepping, then we clear the root stack by putting everything into a
+   * component down till we meet Root.
+   * \param *&Walker current node
+   * \param *&Binder current edge
+   * \param &LeafWalker contains reference to destination subgraph
+   */
+  void CleanRootStackDownTillWalker(atom *&Walker, bond *&Binder, ConnectedSubgraph &LeafWalker);
+
+  /** Output graph information per atom.
+   */
+  void OutputGraphInfoPerAtom() const;
+
+  /** Output graph information per bond.
+   */
+  void OutputGraphInfoPerBond() const;
+
+  std::deque<atom *> AtomStack;
+  std::deque<bond *> BackEdgeStack;
+  int CurrentGraphNr;
+  int ComponentNumber;
+  atom *Root;
+  bool BackStepping;
+
+  typedef std::list< ConnectedSubgraph > ConnectedSubgraphList;
+
+  ConnectedSubgraphList ListOfConnectedSubgraphs;
+};
+
+#endif /* DEPTHFIRSTSEARCHANALYSIS_HPP_ */
Index: src/Graph/Makefile.am
===================================================================
--- src/Graph/Makefile.am	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/Graph/Makefile.am	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -10,10 +10,12 @@
 	BreadthFirstSearchAdd.cpp \
 	ConnectedSubgraph.cpp \
-	CyclicStructureAnalysis.cpp
+	CyclicStructureAnalysis.cpp \
+	DepthFirstSearchAnalysis.cpp
 				  
 GRAPHHEADER = \
 	BreadthFirstSearchAdd.hpp \
 	ConnectedSubgraph.hpp \
-	CyclicStructureAnalysis.hpp
+	CyclicStructureAnalysis.hpp \
+	DepthFirstSearchAnalysis.hpp
 
 
Index: src/molecule.hpp
===================================================================
--- src/molecule.hpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/molecule.hpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -39,4 +39,5 @@
 class BondedParticle;
 class BondGraph;
+class DepthFirstSearchAnalysis;
 class element;
 class ForceMatrix;
@@ -204,16 +205,5 @@
   /// Initialising routines in fragmentation
   void OutputBondsList() const;
-  void CyclicBondAnalysis() const;
-  void OutputGraphInfoPerAtom() const;
-  void OutputGraphInfoPerBond() const;
-
-  // Graph analysis
-  MoleculeLeafClass * DepthFirstSearchAnalysis(std::deque<bond *> *&BackEdgeStack) const;
-  bool PickLocalBackEdges(atom **ListOfLocalAtoms, std::deque<bond *> *&ReferenceStack, std::deque<bond *> *&LocalStack) const;
-  bond * FindNextUnused(atom *vertex) const;
-  void SetNextComponentNumber(atom *vertex, int nr) const;
-  void ResetAllBondsToUnused() const;
-  int CountCyclicBonds();
-  bool CheckForConnectedSubgraph(KeySet *Fragment);
+
   bond * CopyBond(atom *left, atom *right, bond *CopyBond);
 
@@ -222,5 +212,5 @@
 
   /// Fragment molecule by two different approaches:
-  int FragmentMolecule(int Order, std::string &prefix);
+  int FragmentMolecule(int Order, std::string &prefix, DepthFirstSearchAnalysis &DFS);
   bool CheckOrderAtSite(bool *AtomMask, Graph *GlobalKeySetList, int Order, std::string path = "");
   bool StoreBondsToFile(std::string filename, std::string path = "");
@@ -259,5 +249,4 @@
 
 private:
-  void init_DFS(struct DFSAccounting&) const;
   int last_atom; //!< number given to last atom
 };
Index: src/molecule_fragmentation.cpp
===================================================================
--- src/molecule_fragmentation.cpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/molecule_fragmentation.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -31,4 +31,5 @@
 #include "Graph/BondGraph.hpp"
 #include "Graph/CyclicStructureAnalysis.hpp"
+#include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "Helpers/helpers.hpp"
 #include "LinearAlgebra/RealSpaceMatrix.hpp"
@@ -623,7 +624,8 @@
  * \param Order up to how many neighbouring bonds a fragment contains in BondOrderScheme::BottumUp scheme
  * \param &prefix path and prefix of the bond order configs to be written
+ * \param &DFS contains bond structure analysis data
  * \return 1 - continue, 2 - stop (no fragmentation occured)
  */
-int molecule::FragmentMolecule(int Order, std::string &prefix)
+int molecule::FragmentMolecule(int Order, std::string &prefix, DepthFirstSearchAnalysis &DFS)
 {
   MoleculeListClass *BondFragments = NULL;
@@ -633,5 +635,4 @@
   fstream File;
   bool FragmentationToDo = true;
-  std::deque<bond *> *BackEdgeStack = NULL, *LocalBackEdgeStack = NULL;
   bool CheckOrder = false;
   Graph **FragmentList = NULL;
@@ -671,36 +672,6 @@
 
   // ===== 2. perform a DFS analysis to gather info on cyclic structure and a list of disconnected subgraphs =====
-  Subgraphs = DepthFirstSearchAnalysis(BackEdgeStack);
-
-  // analysis of the cycles (print rings, get minimum cycle length) for each subgraph
-  MolecularWalker = Subgraphs;
-  const int LeafCount = Subgraphs->next->Count();
-  FragmentCounter = 0;
-  while (MolecularWalker->next != NULL) {
-    MolecularWalker = MolecularWalker->next;
-    // fill the bond structure of the individually stored subgraphs
-    ListOfAtoms = NULL;
-    MolecularWalker->Leaf->FillBondStructureFromReference(this, ListOfAtoms, false);  // we want to keep the created ListOfLocalAtoms
-    DoLog(0) && (Log() << Verbose(0) << "Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
-    LocalBackEdgeStack = new std::deque<bond *>; // (MolecularWalker->Leaf->BondCount);
-//    // check the list of local atoms for debugging
-//    Log() << Verbose(0) << "ListOfLocalAtoms for this subgraph is:" << endl;
-//    for (int i=0;i<getAtomCount();i++)
-//      if (ListOfLocalAtoms[FragmentCounter][i] == NULL)
-//        Log() << Verbose(0) << "\tNULL";
-//      else
-//        Log() << Verbose(0) << "\t" << ListOfLocalAtoms[FragmentCounter][i]->Name;
-    DoLog(0) && (Log() << Verbose(0) << "Gathering local back edges for subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
-    MolecularWalker->Leaf->PickLocalBackEdges(ListOfAtoms, BackEdgeStack, LocalBackEdgeStack);
-    DoLog(0) && (Log() << Verbose(0) << "Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
-    CyclicStructureAnalysis CycleAnalysis;
-    CycleAnalysis(LocalBackEdgeStack);
-    CycleAnalysis.getMinimumRingSize();
-    DoLog(0) && (Log() << Verbose(0) << "Done with Analysing the cycles of subgraph " << MolecularWalker->Leaf << " with nr. " << FragmentCounter << "." << endl);
-    delete(LocalBackEdgeStack);
-    delete(ListOfAtoms);
-    FragmentCounter++;
-  }
-  delete(BackEdgeStack);
+  // NOTE: We assume here that DFS has been performed and molecule structure is current.
+  Subgraphs = DFS.getMoleculeStructure();
 
   // ===== 3. if structure still valid, parse key set file and others =====
@@ -712,6 +683,7 @@
   // =================================== Begin of FRAGMENTATION ===============================
   // ===== 6a. assign each keyset to its respective subgraph =====
-  ListOfLocalAtoms = new atom **[LeafCount];
-  for (int i=0;i<LeafCount;i++)
+  const int MolCount = World::getInstance().numMolecules();
+  ListOfLocalAtoms = new atom **[MolCount];
+  for (int i=0;i<MolCount;i++)
     ListOfLocalAtoms[i] = NULL;
   FragmentCounter = 0;
@@ -762,4 +734,5 @@
     // remove subgraph fragment
     MolecularWalker = Subgraphs->next;
+    Subgraphs->Leaf = NULL;
     delete(Subgraphs);
     Subgraphs = MolecularWalker;
@@ -770,5 +743,5 @@
   delete[](FragmentList);
 
-  DoLog(0) && (Log() << Verbose(0) << FragmentCounter-1 << " subgraph fragments have been removed." << std::endl);
+  DoLog(0) && (Log() << Verbose(0) << FragmentCounter << " subgraph fragments have been removed." << std::endl);
 
   // ===== 8b. gather keyset lists (graphs) from all subgraphs and transform into MoleculeListClass =====
@@ -1262,6 +1235,4 @@
           DoLog(0) && (Log() << Verbose(0) << (*runner) << " ");
         DoLog(0) && (Log() << Verbose(0) << endl);
-        //if (!CheckForConnectedSubgraph(FragmentSearch->FragmentSet))
-          //DoeLog(1) && (eLog()<< Verbose(1) << "The found fragment is not a connected subgraph!" << endl);
         InsertFragmentIntoGraph(FragmentSearch);
       }
Index: src/molecule_graph.cpp
===================================================================
--- src/molecule_graph.cpp	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ src/molecule_graph.cpp	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -30,4 +30,5 @@
 #include "CodePatterns/Verbose.hpp"
 #include "config.hpp"
+#include "Graph/DepthFirstSearchAnalysis.hpp"
 #include "element.hpp"
 #include "Graph/BondGraph.hpp"
@@ -44,18 +45,4 @@
 #define MAXBONDS 8
 
-
-/** Accounting data for Depth First Search.
- */
-struct DFSAccounting
-{
-  std::deque<atom *> *AtomStack;
-  std::deque<bond *> *BackEdgeStack;
-  int CurrentGraphNr;
-  int ComponentNumber;
-  atom *Root;
-  bool BackStepping;
-};
-
-/************************************* Functions for class molecule *********************************/
 
 /** Fills the bond structure of this chain list subgraphs that are derived from a complete \a *reference molecule.
@@ -146,434 +133,4 @@
 ;
 
-
-/** Counts all cyclic bonds and returns their number.
- * \note Hydrogen bonds can never by cyclic, thus no check for that
- * \return number of cyclic bonds
- */
-int molecule::CountCyclicBonds()
-{
-  NoCyclicBonds = 0;
-  int *MinimumRingSize = NULL;
-  MoleculeLeafClass *Subgraphs = NULL;
-  std::deque<bond *> *BackEdgeStack = NULL;
-  for(molecule::iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
-    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
-    if ((!ListOfBonds.empty()) && ((*ListOfBonds.begin())->Type == GraphEdge::Undetermined)) {
-      DoLog(0) && (Log() << Verbose(0) << "No Depth-First-Search analysis performed so far, calling ..." << endl);
-      Subgraphs = DepthFirstSearchAnalysis(BackEdgeStack);
-      while (Subgraphs->next != NULL) {
-        Subgraphs = Subgraphs->next;
-        delete (Subgraphs->previous);
-      }
-      delete (Subgraphs);
-      delete[] (MinimumRingSize);
-      break;
-    }
-  }
-  for(molecule::iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
-    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
-    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
-        BondRunner != ListOfBonds.end();
-        ++BondRunner)
-      if ((*BondRunner)->leftatom == *AtomRunner)
-        if ((*BondRunner)->Cyclic)
-          NoCyclicBonds++;
-  }
-  delete (BackEdgeStack);
-  return NoCyclicBonds;
-}
-;
-
-
-/** Sets atom::GraphNr and atom::LowpointNr to DFSAccounting::CurrentGraphNr.
- * \param *Walker current node
- * \param &BFS structure with accounting data for BFS
- */
-void DepthFirstSearchAnalysis_SetWalkersGraphNr(atom *&Walker, struct DFSAccounting &DFS)
-{
-  if (!DFS.BackStepping) { // if we don't just return from (8)
-    Walker->GraphNr = DFS.CurrentGraphNr;
-    Walker->LowpointNr = DFS.CurrentGraphNr;
-    DoLog(1) && (Log() << Verbose(1) << "Setting Walker[" << Walker->getName() << "]'s number to " << Walker->GraphNr << " with Lowpoint " << Walker->LowpointNr << "." << endl);
-    DFS.AtomStack->push_front(Walker);
-    DFS.CurrentGraphNr++;
-  }
-}
-;
-
-/** During DFS goes along unvisited bond and touches other atom.
- * Sets bond::type, if
- *  -# BackEdge: set atom::LowpointNr and push on \a BackEdgeStack
- *  -# TreeEgde: set atom::Ancestor and continue with Walker along this edge
- * Continue until molecule::FindNextUnused() finds no more unused bonds.
- * \param *mol molecule with atoms and finding unused bonds
- * \param *&Binder current edge
- * \param &DFS DFS accounting data
- */
-void DepthFirstSearchAnalysis_ProbeAlongUnusedBond(const molecule * const mol, atom *&Walker, bond *&Binder, struct DFSAccounting &DFS)
-{
-  atom *OtherAtom = NULL;
-
-  do { // (3) if Walker has no unused egdes, go to (5)
-    DFS.BackStepping = false; // reset backstepping flag for (8)
-    if (Binder == NULL) // if we don't just return from (11), Binder is already set to next unused
-      Binder = mol->FindNextUnused(Walker);
-    if (Binder == NULL)
-      break;
-    DoLog(2) && (Log() << Verbose(2) << "Current Unused Bond is " << *Binder << "." << endl);
-    // (4) Mark Binder used, ...
-    Binder->MarkUsed(GraphEdge::black);
-    OtherAtom = Binder->GetOtherAtom(Walker);
-    DoLog(2) && (Log() << Verbose(2) << "(4) OtherAtom is " << OtherAtom->getName() << "." << endl);
-    if (OtherAtom->GraphNr != -1) {
-      // (4a) ... if "other" atom has been visited (GraphNr != 0), set lowpoint to minimum of both, go to (3)
-      Binder->Type = GraphEdge::BackEdge;
-      DFS.BackEdgeStack->push_front(Binder);
-      Walker->LowpointNr = (Walker->LowpointNr < OtherAtom->GraphNr) ? Walker->LowpointNr : OtherAtom->GraphNr;
-      DoLog(3) && (Log() << Verbose(3) << "(4a) Visited: Setting Lowpoint of Walker[" << Walker->getName() << "] to " << Walker->LowpointNr << "." << endl);
-    } else {
-      // (4b) ... otherwise set OtherAtom as Ancestor of Walker and Walker as OtherAtom, go to (2)
-      Binder->Type = GraphEdge::TreeEdge;
-      OtherAtom->Ancestor = Walker;
-      Walker = OtherAtom;
-      DoLog(3) && (Log() << Verbose(3) << "(4b) Not Visited: OtherAtom[" << OtherAtom->getName() << "]'s Ancestor is now " << OtherAtom->Ancestor->getName() << ", Walker is OtherAtom " << OtherAtom->getName() << "." << endl);
-      break;
-    }
-    Binder = NULL;
-  } while (1); // (3)
-}
-;
-
-/** Checks whether we have a new component.
- * if atom::LowpointNr of \a *&Walker is greater than atom::GraphNr of its atom::Ancestor, we have a new component.
- * Meaning that if we touch upon a node who suddenly has a smaller atom::LowpointNr than its ancestor, then we
- * have a found a new branch in the graph tree.
- * \param *mol molecule with atoms and finding unused bonds
- * \param *&Walker current node
- * \param &DFS DFS accounting data
- */
-void DepthFirstSearchAnalysis_CheckForaNewComponent(const molecule * const mol, atom *&Walker, struct DFSAccounting &DFS, MoleculeLeafClass *&LeafWalker)
-{
-  atom *OtherAtom = NULL;
-
-  // (5) if Ancestor of Walker is ...
-  DoLog(1) && (Log() << Verbose(1) << "(5) Number of Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "] is " << Walker->Ancestor->GraphNr << "." << endl);
-
-  if (Walker->Ancestor->GraphNr != DFS.Root->GraphNr) {
-    // (6)  (Ancestor of Walker is not Root)
-    if (Walker->LowpointNr < Walker->Ancestor->GraphNr) {
-      // (6a) set Ancestor's Lowpoint number to minimum of of its Ancestor and itself, go to Step(8)
-      Walker->Ancestor->LowpointNr = (Walker->Ancestor->LowpointNr < Walker->LowpointNr) ? Walker->Ancestor->LowpointNr : Walker->LowpointNr;
-      DoLog(2) && (Log() << Verbose(2) << "(6) Setting Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s Lowpoint to " << Walker->Ancestor->LowpointNr << "." << endl);
-    } else {
-      // (7) (Ancestor of Walker is a separating vertex, remove all from stack till Walker (including), these and Ancestor form a component
-      Walker->Ancestor->SeparationVertex = true;
-      DoLog(2) && (Log() << Verbose(2) << "(7) Walker[" << Walker->getName() << "]'s Ancestor[" << Walker->Ancestor->getName() << "]'s is a separating vertex, creating component." << endl);
-      mol->SetNextComponentNumber(Walker->Ancestor, DFS.ComponentNumber);
-      DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker->getName() << "]'s Ancestor's Compont is " << DFS.ComponentNumber << "." << endl);
-      mol->SetNextComponentNumber(Walker, DFS.ComponentNumber);
-      DoLog(3) && (Log() << Verbose(3) << "(7) Walker[" << Walker->getName() << "]'s Compont is " << DFS.ComponentNumber << "." << endl);
-      do {
-        ASSERT(!DFS.AtomStack->empty(), "DepthFirstSearchAnalysis_CheckForaNewComponent() - DFS.AtomStack is empty!");
-        OtherAtom = DFS.AtomStack->front();
-        DFS.AtomStack->pop_front();
-        LeafWalker->Leaf->AddCopyAtom(OtherAtom);
-        mol->SetNextComponentNumber(OtherAtom, DFS.ComponentNumber);
-        DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom->getName() << "]'s Compont is " << DFS.ComponentNumber << "." << endl);
-      } while (OtherAtom != Walker);
-      DFS.ComponentNumber++;
-    }
-    // (8) Walker becomes its Ancestor, go to (3)
-    DoLog(2) && (Log() << Verbose(2) << "(8) Walker[" << Walker->getName() << "] is now its Ancestor " << Walker->Ancestor->getName() << ", backstepping. " << endl);
-    Walker = Walker->Ancestor;
-    DFS.BackStepping = true;
-  }
-}
-;
-
-/** Cleans the root stack when we have found a component.
- * If we are not DFSAccounting::BackStepping, then we clear the root stack by putting everything into a
- * component down till we meet DFSAccounting::Root.
- * \param *mol molecule with atoms and finding unused bonds
- * \param *&Walker current node
- * \param *&Binder current edge
- * \param &DFS DFS accounting data
- */
-void DepthFirstSearchAnalysis_CleanRootStackDownTillWalker(const molecule * const mol, atom *&Walker, bond *&Binder, struct DFSAccounting &DFS, MoleculeLeafClass *&LeafWalker)
-{
-  atom *OtherAtom = NULL;
-
-  if (!DFS.BackStepping) { // coming from (8) want to go to (3)
-    // (9) remove all from stack till Walker (including), these and Root form a component
-    //DFS.AtomStack->Output(out);
-    mol->SetNextComponentNumber(DFS.Root, DFS.ComponentNumber);
-    DoLog(3) && (Log() << Verbose(3) << "(9) Root[" << DFS.Root->getName() << "]'s Component is " << DFS.ComponentNumber << "." << endl);
-    mol->SetNextComponentNumber(Walker, DFS.ComponentNumber);
-    DoLog(3) && (Log() << Verbose(3) << "(9) Walker[" << Walker->getName() << "]'s Component is " << DFS.ComponentNumber << "." << endl);
-    do {
-      ASSERT(!DFS.AtomStack->empty(), "DepthFirstSearchAnalysis_CleanRootStackDownTillWalker() - DFS.AtomStack is empty!");
-      OtherAtom = DFS.AtomStack->front();
-      DFS.AtomStack->pop_front();
-      LeafWalker->Leaf->AddCopyAtom(OtherAtom);
-      mol->SetNextComponentNumber(OtherAtom, DFS.ComponentNumber);
-      DoLog(3) && (Log() << Verbose(3) << "(7) Other[" << OtherAtom->getName() << "]'s Component is " << DFS.ComponentNumber << "." << endl);
-    } while (OtherAtom != Walker);
-    DFS.ComponentNumber++;
-
-    // (11) Root is separation vertex,  set Walker to Root and go to (4)
-    Walker = DFS.Root;
-    Binder = mol->FindNextUnused(Walker);
-    DoLog(1) && (Log() << Verbose(1) << "(10) Walker is Root[" << DFS.Root->getName() << "], next Unused Bond is " << Binder << "." << endl);
-    if (Binder != NULL) { // Root is separation vertex
-      DoLog(1) && (Log() << Verbose(1) << "(11) Root is a separation vertex." << endl);
-      Walker->SeparationVertex = true;
-    }
-  }
-}
-;
-
-/** Initializes DFSAccounting structure.
- * \param &DFS accounting structure to allocate
- * \param *mol molecule with AtomCount, BondCount and all atoms
- */
-void DepthFirstSearchAnalysis_Init(struct DFSAccounting &DFS, const molecule * const mol)
-{
-  DFS.AtomStack = new std::deque<atom *> (mol->getAtomCount());
-  DFS.CurrentGraphNr = 0;
-  DFS.ComponentNumber = 0;
-  DFS.BackStepping = false;
-  mol->ResetAllBondsToUnused();
-  DFS.BackEdgeStack->clear();
-}
-;
-
-/** Free's DFSAccounting structure.
- * \param &DFS accounting structure to free
- */
-void DepthFirstSearchAnalysis_Finalize(struct DFSAccounting &DFS)
-{
-  delete (DFS.AtomStack);
-  // delete (DFS.BackEdgeStack); // DON'T free, see DepthFirstSearchAnalysis(), is returned as allocated
-}
-;
-
-void molecule::init_DFS(struct DFSAccounting &DFS) const{
-  DepthFirstSearchAnalysis_Init(DFS, this);
-  for_each(atoms.begin(),atoms.end(),mem_fun(&atom::resetGraphNr));
-  for_each(atoms.begin(),atoms.end(),mem_fun(&atom::InitComponentNr));
-}
-
-/** Performs a Depth-First search on this molecule.
- * Marks bonds in molecule as cyclic, bridge, ... and atoms as
- * articulations points, ...
- * We use the algorithm from [Even, Graph Algorithms, p.62].
- * \param *&BackEdgeStack NULL pointer to std::deque<bond *> with all the found back edges, allocated and filled on return
- * \return list of each disconnected subgraph as an individual molecule class structure
- */
-MoleculeLeafClass * molecule::DepthFirstSearchAnalysis(std::deque<bond *> *&BackEdgeStack) const
-{
-  struct DFSAccounting DFS;
-  BackEdgeStack = new std::deque<bond *> (getBondCount());
-  DFS.BackEdgeStack = BackEdgeStack;
-  MoleculeLeafClass *SubGraphs = new MoleculeLeafClass(NULL);
-  MoleculeLeafClass *LeafWalker = SubGraphs;
-  int OldGraphNr = 0;
-  atom *Walker = NULL;
-  bond *Binder = NULL;
-
-  if (getAtomCount() == 0)
-    return SubGraphs;
-  DoLog(0) && (Log() << Verbose(0) << "Begin of DepthFirstSearchAnalysis" << endl);
-  init_DFS(DFS);
-
-  for (molecule::const_iterator iter = begin(); iter != end();) {
-    DFS.Root = *iter;
-    // (1) mark all edges unused, empty stack, set atom->GraphNr = -1 for all
-    DFS.AtomStack->clear();
-
-    // put into new subgraph molecule and add this to list of subgraphs
-    LeafWalker = new MoleculeLeafClass(LeafWalker);
-    LeafWalker->Leaf = World::getInstance().createMolecule();
-    LeafWalker->Leaf->AddCopyAtom(DFS.Root);
-
-    OldGraphNr = DFS.CurrentGraphNr;
-    Walker = DFS.Root;
-    do { // (10)
-      do { // (2) set number and Lowpoint of Atom to i, increase i, push current atom
-        DepthFirstSearchAnalysis_SetWalkersGraphNr(Walker, DFS);
-
-        DepthFirstSearchAnalysis_ProbeAlongUnusedBond(this, Walker, Binder, DFS);
-
-        if (Binder == NULL) {
-          DoLog(2) && (Log() << Verbose(2) << "No more Unused Bonds." << endl);
-          break;
-        } else
-          Binder = NULL;
-      } while (1); // (2)
-
-      // if we came from backstepping, yet there were no more unused bonds, we end up here with no Ancestor, because Walker is Root! Then we are finished!
-      if ((Walker == DFS.Root) && (Binder == NULL))
-        break;
-
-      DepthFirstSearchAnalysis_CheckForaNewComponent(this, Walker, DFS, LeafWalker);
-
-      DepthFirstSearchAnalysis_CleanRootStackDownTillWalker(this, Walker, Binder, DFS, LeafWalker);
-
-    } while ((DFS.BackStepping) || (Binder != NULL)); // (10) halt only if Root has no unused edges
-
-    // From OldGraphNr to CurrentGraphNr ranges an disconnected subgraph
-    DoLog(0) && (Log() << Verbose(0) << "Disconnected subgraph ranges from " << OldGraphNr << " to " << DFS.CurrentGraphNr << "." << endl);
-    LeafWalker->Leaf->Output((ofstream *)&(Log() << Verbose(0)));
-    DoLog(0) && (Log() << Verbose(0) << endl);
-
-    // step on to next root
-    while ((iter != end()) && ((*iter)->GraphNr != -1)) {
-      //Log() << Verbose(1) << "Current next subgraph root candidate is " << (*iter)->Name << "." << endl;
-      if ((*iter)->GraphNr != -1) // if already discovered, step on
-        iter++;
-    }
-  }
-  // set cyclic bond criterium on "same LP" basis
-  CyclicBondAnalysis();
-
-  OutputGraphInfoPerAtom();
-
-  OutputGraphInfoPerBond();
-
-  // free all and exit
-  DepthFirstSearchAnalysis_Finalize(DFS);
-  DoLog(0) && (Log() << Verbose(0) << "End of DepthFirstSearchAnalysis" << endl);
-  return SubGraphs;
-}
-;
-
-/** Scans through all bonds and set bond::Cyclic to true where atom::LowpointNr of both ends is equal: LP criterion.
- */
-void molecule::CyclicBondAnalysis() const
-{
-  NoCyclicBonds = 0;
-  for(molecule::const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
-    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
-    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
-        BondRunner != ListOfBonds.end();
-        ++BondRunner)
-      if ((*BondRunner)->leftatom == *AtomRunner)
-        if ((*BondRunner)->rightatom->LowpointNr == (*BondRunner)->leftatom->LowpointNr) { // cyclic ??
-          (*BondRunner)->Cyclic = true;
-          NoCyclicBonds++;
-        }
-  }
-}
-;
-
-/** Output graph information per atom.
- */
-void molecule::OutputGraphInfoPerAtom() const
-{
-  DoLog(1) && (Log() << Verbose(1) << "Final graph info for each atom is:" << endl);
-  for_each(atoms.begin(),atoms.end(),mem_fun(&atom::OutputGraphInfo));
-}
-;
-
-/** Output graph information per bond.
- */
-void molecule::OutputGraphInfoPerBond() const
-{
-  DoLog(1) && (Log() << Verbose(1) << "Final graph info for each bond is:" << endl);
-  for(molecule::const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
-    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
-    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
-        BondRunner != ListOfBonds.end();
-        ++BondRunner)
-      if ((*BondRunner)->leftatom == *AtomRunner) {
-        const bond *Binder = *BondRunner;
-        if (DoLog(2)) {
-          ostream &out = (Log() << Verbose(2));
-          out << ((Binder->Type == GraphEdge::TreeEdge) ? "TreeEdge " : "BackEdge ") << *Binder << ": <";
-          out << ((Binder->leftatom->SeparationVertex) ? "SP," : "") << "L" << Binder->leftatom->LowpointNr << " G" << Binder->leftatom->GraphNr << " Comp.";
-          Binder->leftatom->OutputComponentNumber(&out);
-          out << " ===  ";
-          out << ((Binder->rightatom->SeparationVertex) ? "SP," : "") << "L" << Binder->rightatom->LowpointNr << " G" << Binder->rightatom->GraphNr << " Comp.";
-          Binder->rightatom->OutputComponentNumber(&out);
-          out << ">." << endl;
-        }
-        if (Binder->Cyclic) // cyclic ??
-          DoLog(3) && (Log() << Verbose(3) << "Lowpoint at each side are equal: CYCLIC!" << endl);
-      }
-  }
-}
-;
-
-/** Sets the next component number.
- * This is O(N) as the number of bonds per atom is bound.
- * \param *vertex atom whose next atom::*ComponentNr is to be set
- * \param Nr number to use
- */
-void molecule::SetNextComponentNumber(atom *vertex, int nr) const
-{
-  size_t i = 0;
-  if (vertex != NULL) {
-    const BondList& ListOfBonds = vertex->getListOfBonds();
-    for (; i < ListOfBonds.size(); i++) {
-      if (vertex->ComponentNr[i] == -1) { // check if not yet used
-        vertex->ComponentNr[i] = nr;
-        break;
-      } else if (vertex->ComponentNr[i] == nr) // if number is already present, don't add another time
-        break; // breaking here will not cause error!
-    }
-    if (i == ListOfBonds.size()) {
-      DoeLog(0) && (eLog()<< Verbose(0) << "Error: All Component entries are already occupied!" << endl);
-      performCriticalExit();
-    }
-  } else {
-    DoeLog(0) && (eLog()<< Verbose(0) << "Error: Given vertex is NULL!" << endl);
-    performCriticalExit();
-  }
-}
-;
-
-/** Returns next unused bond for this atom \a *vertex or NULL of none exists.
- * \param *vertex atom to regard
- * \return bond class or NULL
- */
-bond * molecule::FindNextUnused(atom *vertex) const
-{
-  const BondList& ListOfBonds = vertex->getListOfBonds();
-  for (BondList::const_iterator Runner = ListOfBonds.begin();
-      Runner != ListOfBonds.end();
-      ++Runner)
-    if ((*Runner)->IsUsed() == GraphEdge::white)
-      return ((*Runner));
-  return NULL;
-}
-;
-
-/** Resets bond::Used flag of all bonds in this molecule.
- * \return true - success, false - -failure
- */
-void molecule::ResetAllBondsToUnused() const
-{
-  for(molecule::const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner) {
-    const BondList& ListOfBonds = (*AtomRunner)->getListOfBonds();
-    for(BondList::const_iterator BondRunner = ListOfBonds.begin();
-        BondRunner != ListOfBonds.end();
-        ++BondRunner)
-      if ((*BondRunner)->leftatom == *AtomRunner)
-        (*BondRunner)->ResetUsed();
-  }
-}
-;
-
-/** Output a list of flags, stating whether the bond was visited or not.
- * \param *list list to print
- */
-void OutputAlreadyVisited(int *list)
-{
-  DoLog(4) && (Log() << Verbose(4) << "Already Visited Bonds:\t");
-  for (int i = 1; i <= list[0]; i++)
-    DoLog(0) && (Log() << Verbose(0) << list[i] << "  ");
-  DoLog(0) && (Log() << Verbose(0) << endl);
-}
-;
 
 /** Storing the bond structure of a molecule to file.
@@ -755,49 +312,4 @@
 ;
 
-/** Picks from a global stack with all back edges the ones in the fragment.
- * \param **ListOfLocalAtoms array of father atom::Nr to local atom::Nr (reverse of atom::father)
- * \param *ReferenceStack stack with all the back egdes
- * \param *LocalStack stack to be filled
- * \return true - everything ok, false - ReferenceStack was empty
- */
-bool molecule::PickLocalBackEdges(atom **ListOfLocalAtoms, std::deque<bond *> *&ReferenceStack, std::deque<bond *> *&LocalStack) const
-{
-  bool status = true;
-  if (ReferenceStack->empty()) {
-    DoLog(1) && (Log() << Verbose(1) << "ReferenceStack is empty!" << endl);
-    return false;
-  }
-  bond *Binder = ReferenceStack->front();
-  ReferenceStack->pop_front();
-  bond *FirstBond = Binder; // mark the first bond, so that we don't loop through the stack indefinitely
-  atom *Walker = NULL, *OtherAtom = NULL;
-  ReferenceStack->push_front(Binder);
-
-  do { // go through all bonds and push local ones
-    Walker = ListOfLocalAtoms[Binder->leftatom->getNr()]; // get one atom in the reference molecule
-    if (Walker != NULL) { // if this Walker exists in the subgraph ...
-      const BondList& ListOfBonds = Walker->getListOfBonds();
-      for (BondList::const_iterator Runner = ListOfBonds.begin();
-          Runner != ListOfBonds.end();
-          ++Runner) {
-        OtherAtom = (*Runner)->GetOtherAtom(Walker);
-        if (OtherAtom == ListOfLocalAtoms[(*Runner)->rightatom->getNr()]) { // found the bond
-          LocalStack->push_front((*Runner));
-          DoLog(3) && (Log() << Verbose(3) << "Found local edge " << *(*Runner) << "." << endl);
-          break;
-        }
-      }
-    }
-    ASSERT(!ReferenceStack->empty(), "molecule::PickLocalBackEdges() - ReferenceStack is empty!");
-    Binder = ReferenceStack->front(); // loop the stack for next item
-    ReferenceStack->pop_front();
-    DoLog(3) && (Log() << Verbose(3) << "Current candidate edge " << Binder << "." << endl);
-    ReferenceStack->push_front(Binder);
-  } while (FirstBond != Binder);
-
-  return status;
-}
-;
-
 /** Adds a bond as a copy to a given one
  * \param *left leftatom of new bond
@@ -891,58 +403,5 @@
 ;
 
-/** For a given keyset \a *Fragment, checks whether it is connected in the current molecule.
- * \param *Fragment Keyset of fragment's vertices
- * \return true - connected, false - disconnected
- * \note this is O(n^2) for it's just a bug checker not meant for permanent use!
- */
-bool molecule::CheckForConnectedSubgraph(KeySet *Fragment)
-{
-  atom *Walker = NULL, *Walker2 = NULL;
-  bool BondStatus = false;
-  int size;
-
-  DoLog(1) && (Log() << Verbose(1) << "Begin of CheckForConnectedSubgraph" << endl);
-  DoLog(2) && (Log() << Verbose(2) << "Disconnected atom: ");
-
-  // count number of atoms in graph
-  size = 0;
-  for (KeySet::iterator runner = Fragment->begin(); runner != Fragment->end(); runner++)
-    size++;
-  if (size > 1)
-    for (KeySet::iterator runner = Fragment->begin(); runner != Fragment->end(); runner++) {
-      Walker = FindAtom(*runner);
-      BondStatus = false;
-      for (KeySet::iterator runners = Fragment->begin(); runners != Fragment->end(); runners++) {
-        Walker2 = FindAtom(*runners);
-        const BondList& ListOfBonds = Walker->getListOfBonds();
-        for (BondList::const_iterator Runner = ListOfBonds.begin();
-            Runner != ListOfBonds.end();
-            ++Runner) {
-          if ((*Runner)->GetOtherAtom(Walker) == Walker2) {
-            BondStatus = true;
-            break;
-          }
-          if (BondStatus)
-            break;
-        }
-      }
-      if (!BondStatus) {
-        DoLog(0) && (Log() << Verbose(0) << (*Walker) << endl);
-        return false;
-      }
-    }
-  else {
-    DoLog(0) && (Log() << Verbose(0) << "none." << endl);
-    return true;
-  }
-  DoLog(0) && (Log() << Verbose(0) << "none." << endl);
-
-  DoLog(1) && (Log() << Verbose(1) << "End of CheckForConnectedSubgraph" << endl);
-
-  return true;
-}
-
-/** Fills a lookup list of father's Atom::Nr -> atom for each subgraph.
- * \param *out output stream from debugging
+/** Fills a lookup list of father's Atom::nr -> atom for each subgraph.
  * \param **&ListOfLocalAtoms Lookup table for each subgraph and index of each atom in global molecule, may be NULL on start, then it is filled
  * \param GlobalAtomCount number of atoms in the complete molecule
Index: tests/Fragmentations/defs.in
===================================================================
--- tests/Fragmentations/defs.in	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/Fragmentations/defs.in	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -57,7 +57,7 @@
 	echo "Current dir is `pwd`, calling $MOLECUILDER $mol.conf --select-molecule-by-id 0 -f $FILENAME --order $ORDER --distance $DISTANCE."
 	if [ -e $mol.dbond ]; then
-		$MOLECUILDER -i ../$mol.xyz -A $mol.dbond --select-all-atoms --create-adjacency --select-molecule-by-id 0 -f $FILENAME --order $ORDER --distance $DISTANCE &>stdout || exitcode=$?
+		$MOLECUILDER -i ../$mol.xyz -A $mol.dbond -I --select-molecule-by-id 0 -f $FILENAME --order $ORDER --distance $DISTANCE &>stdout || exitcode=$?
 	else
-		$MOLECUILDER -i ../$mol.xyz --select-all-atoms --create-adjacency --select-molecule-by-id 0 -f $FILENAME --order $ORDER --distance $DISTANCE $>stdout || exitcode=$?
+		$MOLECUILDER -i ../$mol.xyz -I --select-molecule-by-id 0 -f $FILENAME --order $ORDER --distance $DISTANCE $>stdout || exitcode=$?
 	fi
 	cat <stdout
Index: tests/regression/Analysis/SurfaceCorrelation/testsuite-analysis-surface-correlation.at
===================================================================
--- tests/regression/Analysis/SurfaceCorrelation/testsuite-analysis-surface-correlation.at	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/regression/Analysis/SurfaceCorrelation/testsuite-analysis-surface-correlation.at	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -4,5 +4,5 @@
 AT_KEYWORDS([analysis,correlation])
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/SurfaceCorrelation/pre/test.conf .], 0)
-AT_CHECK([../../molecuilder -i test.conf  -v 3 -I --select-all-molecules --unselect-molecules-by-formula C3H8 --surface-correlation --elements 1 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-width 1. --bin-end 20 --molecule-by-id 1], 0, [stdout], [stderr])
+AT_CHECK([../../molecuilder -i test.conf  -v 3 -I --select-all-molecules --unselect-molecules-by-formula C3H8 --surface-correlation --elements 1 --output-file output.csv --bin-output-file bin_output.csv --bin-start 0 --bin-width 1. --bin-end 20 --molecule-by-id 0], 0, [stdout], [stderr])
 AT_CHECK([fgrep "Begin of CorrelationToSurface" stdout], 0, [ignore], [ignore])
 #AT_CHECK([file=output.csv; diff $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Analysis/SurfaceCorrelation/post/$file], 0, [ignore], [ignore])
Index: tests/regression/Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at
===================================================================
--- tests/regression/Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/regression/Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -2,6 +2,12 @@
 
 AT_SETUP([Fragmentation - Fragmentation])
+AT_KEYWORDS([fragmentation])
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/pre/test.conf .], 0)
-AT_CHECK([../../molecuilder -i test.conf  -v 1 --select-all-atoms --create-adjacency --select-molecule-by-id 0 -f ./BondFragment --distance 1.55 --order 2], 0, [ignore], [ignore])
+AT_CHECK([../../molecuilder -i test.conf  -v 1 -I --select-molecule-by-id 0 -f ./BondFragment --distance 1.55 --order 2], 0, [ignore], [ignore])
+#AT_CHECK([diff BondFragment0.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/post/BondFragment0.conf], 0, [ignore], [ignore])
+#AT_CHECK([diff BondFragment1.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/post/BondFragment1.conf], 0, [ignore], [ignore])
+#AT_CHECK([diff BondFragment2.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/post/BondFragment2.conf], 0, [ignore], [ignore])
+#AT_CHECK([diff BondFragment3.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/post/BondFragment3.conf], 0, [ignore], [ignore])
+#AT_CHECK([diff BondFragment4.conf ${abs_top_srcdir}/${AUTOTEST_PATH}/Fragmentation/FragmentMolecule/post/BondFragment4.conf], 0, [ignore], [ignore])
 AT_CHECK([ls -l BondFragment*.conf | wc -l], 0, [5
 ], [ignore])
Index: tests/regression/Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-all-atoms-of-molecule.at
===================================================================
--- tests/regression/Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-all-atoms-of-molecule.at	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/regression/Selection/Atoms/AllAtomsOfMolecule/testsuite-selection-all-atoms-of-molecule.at	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -4,4 +4,14 @@
 AT_KEYWORDS([selection])
 file=molecule1.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 0 --select-molecules-atoms -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 0 --select-molecules-atoms --undo -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 0 --select-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
+file=molecule0.xyz
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
 AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 1 --select-molecules-atoms -r], 0, [stdout], [stderr])
@@ -13,14 +23,4 @@
 AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 1 --select-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
-file=molecule0.xyz
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 2 --select-molecules-atoms -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 2 --select-molecules-atoms --undo -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz], 0, [ignore], [ignore])
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-molecule-by-id 2 --select-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
 AT_CLEANUP
 
@@ -28,4 +28,14 @@
 AT_KEYWORDS([selection])
 file=molecule0.xyz
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 0 --unselect-molecules-atoms -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 0 --unselect-molecules-atoms --undo -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/empty.xyz], 0, [ignore], [ignore])
+AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
+AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 0 --unselect-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
+AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
+file=molecule1.xyz
 AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
 AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 1 --unselect-molecules-atoms -r], 0, [stdout], [stderr])
@@ -37,13 +47,3 @@
 AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 1 --unselect-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
 AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
-file=molecule1.xyz
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 2 --unselect-molecules-atoms -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 2 --unselect-molecules-atoms --undo -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/empty.xyz], 0, [ignore], [ignore])
-AT_CHECK([/bin/cp -f ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/pre/test.xyz $file], 0)
-AT_CHECK([../../molecuilder -i $file -v 3 -I --select-all-atoms --select-molecule-by-id 2 --unselect-molecules-atoms --undo --redo -r], 0, [stdout], [stderr])
-AT_CHECK([diff -I '.*Created by molecuilder.*' $file ${abs_top_srcdir}/${AUTOTEST_PATH}/Selection/Atoms/AllAtomsOfMolecule/post/$file], 0, [ignore], [ignore])
 AT_CLEANUP
Index: tests/regression/Selection/Molecules/MoleculeById/post/id4_missing.xyz
===================================================================
--- tests/regression/Selection/Molecules/MoleculeById/post/id4_missing.xyz	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
+++ tests/regression/Selection/Molecules/MoleculeById/post/id4_missing.xyz	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -0,0 +1,1028 @@
+1026
+	Created by molecuilder for select-molecule-by-id test
+O	0	0	0.504284
+H	0.758602	0	1.00857
+H	0.758602	0	0
+O	0	0	3.36143
+H	0.758602	0	3.86571
+H	0.758602	0	2.85714
+O	0	0	6.21857
+H	0.758602	0	6.72285
+H	0.758602	0	5.71429
+O	0	0	9.07571
+H	0.758602	0	9.58
+H	0.758602	0	8.57143
+O	0	0	14.79
+H	0.758602	0	15.2943
+H	0.758602	0	14.2857
+O	0	0	17.6471
+H	0.758602	0	18.1514
+H	0.758602	0	17.1429
+O	0	2.85714	0.504284
+H	0.758602	2.85714	1.00857
+H	0.758602	2.85714	0
+O	0	2.85714	3.36143
+H	0.758602	2.85714	3.86571
+H	0.758602	2.85714	2.85714
+O	0	2.85714	6.21857
+H	0.758602	2.85714	6.72285
+H	0.758602	2.85714	5.71429
+O	0	2.85714	9.07571
+H	0.758602	2.85714	9.58
+H	0.758602	2.85714	8.57143
+O	0	2.85714	11.9329
+H	0.758602	2.85714	12.4371
+H	0.758602	2.85714	11.4286
+O	0	2.85714	14.79
+H	0.758602	2.85714	15.2943
+H	0.758602	2.85714	14.2857
+O	0	2.85714	17.6471
+H	0.758602	2.85714	18.1514
+H	0.758602	2.85714	17.1429
+O	0	5.71429	0.504284
+H	0.758602	5.71429	1.00857
+H	0.758602	5.71429	0
+O	0	5.71429	3.36143
+H	0.758602	5.71429	3.86571
+H	0.758602	5.71429	2.85714
+O	0	5.71429	6.21857
+H	0.758602	5.71429	6.72285
+H	0.758602	5.71429	5.71429
+O	0	5.71429	9.07571
+H	0.758602	5.71429	9.58
+H	0.758602	5.71429	8.57143
+O	0	5.71429	11.9329
+H	0.758602	5.71429	12.4371
+H	0.758602	5.71429	11.4286
+O	0	5.71429	14.79
+H	0.758602	5.71429	15.2943
+H	0.758602	5.71429	14.2857
+O	0	5.71429	17.6471
+H	0.758602	5.71429	18.1514
+H	0.758602	5.71429	17.1429
+O	0	8.57143	0.504284
+H	0.758602	8.57143	1.00857
+H	0.758602	8.57143	0
+O	0	8.57143	3.36143
+H	0.758602	8.57143	3.86571
+H	0.758602	8.57143	2.85714
+O	0	8.57143	6.21857
+H	0.758602	8.57143	6.72285
+H	0.758602	8.57143	5.71429
+O	0	8.57143	9.07571
+H	0.758602	8.57143	9.58
+H	0.758602	8.57143	8.57143
+O	0	8.57143	11.9329
+H	0.758602	8.57143	12.4371
+H	0.758602	8.57143	11.4286
+O	0	8.57143	14.79
+H	0.758602	8.57143	15.2943
+H	0.758602	8.57143	14.2857
+O	0	8.57143	17.6471
+H	0.758602	8.57143	18.1514
+H	0.758602	8.57143	17.1429
+O	0	11.4286	0.504284
+H	0.758602	11.4286	1.00857
+H	0.758602	11.4286	0
+O	0	11.4286	3.36143
+H	0.758602	11.4286	3.86571
+H	0.758602	11.4286	2.85714
+O	0	11.4286	6.21857
+H	0.758602	11.4286	6.72285
+H	0.758602	11.4286	5.71429
+O	0	11.4286	9.07571
+H	0.758602	11.4286	9.58
+H	0.758602	11.4286	8.57143
+O	0	11.4286	11.9329
+H	0.758602	11.4286	12.4371
+H	0.758602	11.4286	11.4286
+O	0	11.4286	14.79
+H	0.758602	11.4286	15.2943
+H	0.758602	11.4286	14.2857
+O	0	11.4286	17.6471
+H	0.758602	11.4286	18.1514
+H	0.758602	11.4286	17.1429
+O	0	14.2857	0.504284
+H	0.758602	14.2857	1.00857
+H	0.758602	14.2857	0
+O	0	14.2857	3.36143
+H	0.758602	14.2857	3.86571
+H	0.758602	14.2857	2.85714
+O	0	14.2857	6.21857
+H	0.758602	14.2857	6.72285
+H	0.758602	14.2857	5.71429
+O	0	14.2857	9.07571
+H	0.758602	14.2857	9.58
+H	0.758602	14.2857	8.57143
+O	0	14.2857	11.9329
+H	0.758602	14.2857	12.4371
+H	0.758602	14.2857	11.4286
+O	0	14.2857	14.79
+H	0.758602	14.2857	15.2943
+H	0.758602	14.2857	14.2857
+O	0	14.2857	17.6471
+H	0.758602	14.2857	18.1514
+H	0.758602	14.2857	17.1429
+O	0	17.1429	0.504284
+H	0.758602	17.1429	1.00857
+H	0.758602	17.1429	0
+O	0	17.1429	3.36143
+H	0.758602	17.1429	3.86571
+H	0.758602	17.1429	2.85714
+O	0	17.1429	6.21857
+H	0.758602	17.1429	6.72285
+H	0.758602	17.1429	5.71429
+O	0	17.1429	9.07571
+H	0.758602	17.1429	9.58
+H	0.758602	17.1429	8.57143
+O	0	17.1429	11.9329
+H	0.758602	17.1429	12.4371
+H	0.758602	17.1429	11.4286
+O	0	17.1429	14.79
+H	0.758602	17.1429	15.2943
+H	0.758602	17.1429	14.2857
+O	0	17.1429	17.6471
+H	0.758602	17.1429	18.1514
+H	0.758602	17.1429	17.1429
+O	2.85714	0	0.504284
+H	3.61574	0	1.00857
+H	3.61574	0	0
+O	2.85714	0	3.36143
+H	3.61574	0	3.86571
+H	3.61574	0	2.85714
+O	2.85714	0	6.21857
+H	3.61574	0	6.72285
+H	3.61574	0	5.71429
+O	2.85714	0	9.07571
+H	3.61574	0	9.58
+H	3.61574	0	8.57143
+O	2.85714	0	11.9329
+H	3.61574	0	12.4371
+H	3.61574	0	11.4286
+O	2.85714	0	14.79
+H	3.61574	0	15.2943
+H	3.61574	0	14.2857
+O	2.85714	0	17.6471
+H	3.61574	0	18.1514
+H	3.61574	0	17.1429
+O	2.85714	2.85714	0.504284
+H	3.61574	2.85714	1.00857
+H	3.61574	2.85714	0
+O	2.85714	2.85714	3.36143
+H	3.61574	2.85714	3.86571
+H	3.61574	2.85714	2.85714
+O	2.85714	2.85714	6.21857
+H	3.61574	2.85714	6.72285
+H	3.61574	2.85714	5.71429
+O	2.85714	2.85714	9.07571
+H	3.61574	2.85714	9.58
+H	3.61574	2.85714	8.57143
+O	2.85714	2.85714	11.9329
+H	3.61574	2.85714	12.4371
+H	3.61574	2.85714	11.4286
+O	2.85714	2.85714	14.79
+H	3.61574	2.85714	15.2943
+H	3.61574	2.85714	14.2857
+O	2.85714	2.85714	17.6471
+H	3.61574	2.85714	18.1514
+H	3.61574	2.85714	17.1429
+O	2.85714	5.71429	0.504284
+H	3.61574	5.71429	1.00857
+H	3.61574	5.71429	0
+O	2.85714	5.71429	3.36143
+H	3.61574	5.71429	3.86571
+H	3.61574	5.71429	2.85714
+O	2.85714	5.71429	6.21857
+H	3.61574	5.71429	6.72285
+H	3.61574	5.71429	5.71429
+O	2.85714	5.71429	9.07571
+H	3.61574	5.71429	9.58
+H	3.61574	5.71429	8.57143
+O	2.85714	5.71429	11.9329
+H	3.61574	5.71429	12.4371
+H	3.61574	5.71429	11.4286
+O	2.85714	5.71429	14.79
+H	3.61574	5.71429	15.2943
+H	3.61574	5.71429	14.2857
+O	2.85714	5.71429	17.6471
+H	3.61574	5.71429	18.1514
+H	3.61574	5.71429	17.1429
+O	2.85714	8.57143	0.504284
+H	3.61574	8.57143	1.00857
+H	3.61574	8.57143	0
+O	2.85714	8.57143	3.36143
+H	3.61574	8.57143	3.86571
+H	3.61574	8.57143	2.85714
+O	2.85714	8.57143	6.21857
+H	3.61574	8.57143	6.72285
+H	3.61574	8.57143	5.71429
+O	2.85714	8.57143	9.07571
+H	3.61574	8.57143	9.58
+H	3.61574	8.57143	8.57143
+O	2.85714	8.57143	11.9329
+H	3.61574	8.57143	12.4371
+H	3.61574	8.57143	11.4286
+O	2.85714	8.57143	14.79
+H	3.61574	8.57143	15.2943
+H	3.61574	8.57143	14.2857
+O	2.85714	8.57143	17.6471
+H	3.61574	8.57143	18.1514
+H	3.61574	8.57143	17.1429
+O	2.85714	11.4286	0.504284
+H	3.61574	11.4286	1.00857
+H	3.61574	11.4286	0
+O	2.85714	11.4286	3.36143
+H	3.61574	11.4286	3.86571
+H	3.61574	11.4286	2.85714
+O	2.85714	11.4286	6.21857
+H	3.61574	11.4286	6.72285
+H	3.61574	11.4286	5.71429
+O	2.85714	11.4286	9.07571
+H	3.61574	11.4286	9.58
+H	3.61574	11.4286	8.57143
+O	2.85714	11.4286	11.9329
+H	3.61574	11.4286	12.4371
+H	3.61574	11.4286	11.4286
+O	2.85714	11.4286	14.79
+H	3.61574	11.4286	15.2943
+H	3.61574	11.4286	14.2857
+O	2.85714	11.4286	17.6471
+H	3.61574	11.4286	18.1514
+H	3.61574	11.4286	17.1429
+O	2.85714	14.2857	0.504284
+H	3.61574	14.2857	1.00857
+H	3.61574	14.2857	0
+O	2.85714	14.2857	3.36143
+H	3.61574	14.2857	3.86571
+H	3.61574	14.2857	2.85714
+O	2.85714	14.2857	6.21857
+H	3.61574	14.2857	6.72285
+H	3.61574	14.2857	5.71429
+O	2.85714	14.2857	9.07571
+H	3.61574	14.2857	9.58
+H	3.61574	14.2857	8.57143
+O	2.85714	14.2857	11.9329
+H	3.61574	14.2857	12.4371
+H	3.61574	14.2857	11.4286
+O	2.85714	14.2857	14.79
+H	3.61574	14.2857	15.2943
+H	3.61574	14.2857	14.2857
+O	2.85714	14.2857	17.6471
+H	3.61574	14.2857	18.1514
+H	3.61574	14.2857	17.1429
+O	2.85714	17.1429	0.504284
+H	3.61574	17.1429	1.00857
+H	3.61574	17.1429	0
+O	2.85714	17.1429	3.36143
+H	3.61574	17.1429	3.86571
+H	3.61574	17.1429	2.85714
+O	2.85714	17.1429	6.21857
+H	3.61574	17.1429	6.72285
+H	3.61574	17.1429	5.71429
+O	2.85714	17.1429	9.07571
+H	3.61574	17.1429	9.58
+H	3.61574	17.1429	8.57143
+O	2.85714	17.1429	11.9329
+H	3.61574	17.1429	12.4371
+H	3.61574	17.1429	11.4286
+O	2.85714	17.1429	14.79
+H	3.61574	17.1429	15.2943
+H	3.61574	17.1429	14.2857
+O	2.85714	17.1429	17.6471
+H	3.61574	17.1429	18.1514
+H	3.61574	17.1429	17.1429
+O	5.71429	0	0.504284
+H	6.47289	0	1.00857
+H	6.47289	0	0
+O	5.71429	0	3.36143
+H	6.47289	0	3.86571
+H	6.47289	0	2.85714
+O	5.71429	0	6.21857
+H	6.47289	0	6.72285
+H	6.47289	0	5.71429
+O	5.71429	0	9.07571
+H	6.47289	0	9.58
+H	6.47289	0	8.57143
+O	5.71429	0	11.9329
+H	6.47289	0	12.4371
+H	6.47289	0	11.4286
+O	5.71429	0	14.79
+H	6.47289	0	15.2943
+H	6.47289	0	14.2857
+O	5.71429	0	17.6471
+H	6.47289	0	18.1514
+H	6.47289	0	17.1429
+O	5.71429	2.85714	0.504284
+H	6.47289	2.85714	1.00857
+H	6.47289	2.85714	0
+O	5.71429	2.85714	3.36143
+H	6.47289	2.85714	3.86571
+H	6.47289	2.85714	2.85714
+O	5.71429	2.85714	6.21857
+H	6.47289	2.85714	6.72285
+H	6.47289	2.85714	5.71429
+O	5.71429	2.85714	9.07571
+H	6.47289	2.85714	9.58
+H	6.47289	2.85714	8.57143
+O	5.71429	2.85714	11.9329
+H	6.47289	2.85714	12.4371
+H	6.47289	2.85714	11.4286
+O	5.71429	2.85714	14.79
+H	6.47289	2.85714	15.2943
+H	6.47289	2.85714	14.2857
+O	5.71429	2.85714	17.6471
+H	6.47289	2.85714	18.1514
+H	6.47289	2.85714	17.1429
+O	5.71429	5.71429	0.504284
+H	6.47289	5.71429	1.00857
+H	6.47289	5.71429	0
+O	5.71429	5.71429	3.36143
+H	6.47289	5.71429	3.86571
+H	6.47289	5.71429	2.85714
+O	5.71429	5.71429	6.21857
+H	6.47289	5.71429	6.72285
+H	6.47289	5.71429	5.71429
+O	5.71429	5.71429	9.07571
+H	6.47289	5.71429	9.58
+H	6.47289	5.71429	8.57143
+O	5.71429	5.71429	11.9329
+H	6.47289	5.71429	12.4371
+H	6.47289	5.71429	11.4286
+O	5.71429	5.71429	14.79
+H	6.47289	5.71429	15.2943
+H	6.47289	5.71429	14.2857
+O	5.71429	5.71429	17.6471
+H	6.47289	5.71429	18.1514
+H	6.47289	5.71429	17.1429
+O	5.71429	8.57143	0.504284
+H	6.47289	8.57143	1.00857
+H	6.47289	8.57143	0
+O	5.71429	8.57143	3.36143
+H	6.47289	8.57143	3.86571
+H	6.47289	8.57143	2.85714
+O	5.71429	8.57143	6.21857
+H	6.47289	8.57143	6.72285
+H	6.47289	8.57143	5.71429
+O	5.71429	8.57143	9.07571
+H	6.47289	8.57143	9.58
+H	6.47289	8.57143	8.57143
+O	5.71429	8.57143	11.9329
+H	6.47289	8.57143	12.4371
+H	6.47289	8.57143	11.4286
+O	5.71429	8.57143	14.79
+H	6.47289	8.57143	15.2943
+H	6.47289	8.57143	14.2857
+O	5.71429	8.57143	17.6471
+H	6.47289	8.57143	18.1514
+H	6.47289	8.57143	17.1429
+O	5.71429	11.4286	0.504284
+H	6.47289	11.4286	1.00857
+H	6.47289	11.4286	0
+O	5.71429	11.4286	3.36143
+H	6.47289	11.4286	3.86571
+H	6.47289	11.4286	2.85714
+O	5.71429	11.4286	6.21857
+H	6.47289	11.4286	6.72285
+H	6.47289	11.4286	5.71429
+O	5.71429	11.4286	9.07571
+H	6.47289	11.4286	9.58
+H	6.47289	11.4286	8.57143
+O	5.71429	11.4286	11.9329
+H	6.47289	11.4286	12.4371
+H	6.47289	11.4286	11.4286
+O	5.71429	11.4286	14.79
+H	6.47289	11.4286	15.2943
+H	6.47289	11.4286	14.2857
+O	5.71429	11.4286	17.6471
+H	6.47289	11.4286	18.1514
+H	6.47289	11.4286	17.1429
+O	5.71429	14.2857	0.504284
+H	6.47289	14.2857	1.00857
+H	6.47289	14.2857	0
+O	5.71429	14.2857	3.36143
+H	6.47289	14.2857	3.86571
+H	6.47289	14.2857	2.85714
+O	5.71429	14.2857	6.21857
+H	6.47289	14.2857	6.72285
+H	6.47289	14.2857	5.71429
+O	5.71429	14.2857	9.07571
+H	6.47289	14.2857	9.58
+H	6.47289	14.2857	8.57143
+O	5.71429	14.2857	11.9329
+H	6.47289	14.2857	12.4371
+H	6.47289	14.2857	11.4286
+O	5.71429	14.2857	14.79
+H	6.47289	14.2857	15.2943
+H	6.47289	14.2857	14.2857
+O	5.71429	14.2857	17.6471
+H	6.47289	14.2857	18.1514
+H	6.47289	14.2857	17.1429
+O	5.71429	17.1429	0.504284
+H	6.47289	17.1429	1.00857
+H	6.47289	17.1429	0
+O	5.71429	17.1429	3.36143
+H	6.47289	17.1429	3.86571
+H	6.47289	17.1429	2.85714
+O	5.71429	17.1429	6.21857
+H	6.47289	17.1429	6.72285
+H	6.47289	17.1429	5.71429
+O	5.71429	17.1429	9.07571
+H	6.47289	17.1429	9.58
+H	6.47289	17.1429	8.57143
+O	5.71429	17.1429	11.9329
+H	6.47289	17.1429	12.4371
+H	6.47289	17.1429	11.4286
+O	5.71429	17.1429	14.79
+H	6.47289	17.1429	15.2943
+H	6.47289	17.1429	14.2857
+O	5.71429	17.1429	17.6471
+H	6.47289	17.1429	18.1514
+H	6.47289	17.1429	17.1429
+O	8.57143	0	0.504284
+H	9.33003	0	1.00857
+H	9.33003	0	0
+O	8.57143	0	3.36143
+H	9.33003	0	3.86571
+H	9.33003	0	2.85714
+O	8.57143	0	6.21857
+H	9.33003	0	6.72285
+H	9.33003	0	5.71429
+O	8.57143	0	9.07571
+H	9.33003	0	9.58
+H	9.33003	0	8.57143
+O	8.57143	0	11.9329
+H	9.33003	0	12.4371
+H	9.33003	0	11.4286
+O	8.57143	0	14.79
+H	9.33003	0	15.2943
+H	9.33003	0	14.2857
+O	8.57143	0	17.6471
+H	9.33003	0	18.1514
+H	9.33003	0	17.1429
+O	8.57143	2.85714	0.504284
+H	9.33003	2.85714	1.00857
+H	9.33003	2.85714	0
+O	8.57143	2.85714	3.36143
+H	9.33003	2.85714	3.86571
+H	9.33003	2.85714	2.85714
+O	8.57143	2.85714	6.21857
+H	9.33003	2.85714	6.72285
+H	9.33003	2.85714	5.71429
+O	8.57143	2.85714	9.07571
+H	9.33003	2.85714	9.58
+H	9.33003	2.85714	8.57143
+O	8.57143	2.85714	11.9329
+H	9.33003	2.85714	12.4371
+H	9.33003	2.85714	11.4286
+O	8.57143	2.85714	14.79
+H	9.33003	2.85714	15.2943
+H	9.33003	2.85714	14.2857
+O	8.57143	2.85714	17.6471
+H	9.33003	2.85714	18.1514
+H	9.33003	2.85714	17.1429
+O	8.57143	5.71429	0.504284
+H	9.33003	5.71429	1.00857
+H	9.33003	5.71429	0
+O	8.57143	5.71429	3.36143
+H	9.33003	5.71429	3.86571
+H	9.33003	5.71429	2.85714
+O	8.57143	5.71429	6.21857
+H	9.33003	5.71429	6.72285
+H	9.33003	5.71429	5.71429
+O	8.57143	5.71429	9.07571
+H	9.33003	5.71429	9.58
+H	9.33003	5.71429	8.57143
+O	8.57143	5.71429	11.9329
+H	9.33003	5.71429	12.4371
+H	9.33003	5.71429	11.4286
+O	8.57143	5.71429	14.79
+H	9.33003	5.71429	15.2943
+H	9.33003	5.71429	14.2857
+O	8.57143	5.71429	17.6471
+H	9.33003	5.71429	18.1514
+H	9.33003	5.71429	17.1429
+O	8.57143	8.57143	0.504284
+H	9.33003	8.57143	1.00857
+H	9.33003	8.57143	0
+O	8.57143	8.57143	3.36143
+H	9.33003	8.57143	3.86571
+H	9.33003	8.57143	2.85714
+O	8.57143	8.57143	6.21857
+H	9.33003	8.57143	6.72285
+H	9.33003	8.57143	5.71429
+O	8.57143	8.57143	9.07571
+H	9.33003	8.57143	9.58
+H	9.33003	8.57143	8.57143
+O	8.57143	8.57143	11.9329
+H	9.33003	8.57143	12.4371
+H	9.33003	8.57143	11.4286
+O	8.57143	8.57143	14.79
+H	9.33003	8.57143	15.2943
+H	9.33003	8.57143	14.2857
+O	8.57143	8.57143	17.6471
+H	9.33003	8.57143	18.1514
+H	9.33003	8.57143	17.1429
+O	8.57143	11.4286	0.504284
+H	9.33003	11.4286	1.00857
+H	9.33003	11.4286	0
+O	8.57143	11.4286	3.36143
+H	9.33003	11.4286	3.86571
+H	9.33003	11.4286	2.85714
+O	8.57143	11.4286	6.21857
+H	9.33003	11.4286	6.72285
+H	9.33003	11.4286	5.71429
+O	8.57143	11.4286	9.07571
+H	9.33003	11.4286	9.58
+H	9.33003	11.4286	8.57143
+O	8.57143	11.4286	11.9329
+H	9.33003	11.4286	12.4371
+H	9.33003	11.4286	11.4286
+O	8.57143	11.4286	14.79
+H	9.33003	11.4286	15.2943
+H	9.33003	11.4286	14.2857
+O	8.57143	11.4286	17.6471
+H	9.33003	11.4286	18.1514
+H	9.33003	11.4286	17.1429
+O	8.57143	14.2857	0.504284
+H	9.33003	14.2857	1.00857
+H	9.33003	14.2857	0
+O	8.57143	14.2857	3.36143
+H	9.33003	14.2857	3.86571
+H	9.33003	14.2857	2.85714
+O	8.57143	14.2857	6.21857
+H	9.33003	14.2857	6.72285
+H	9.33003	14.2857	5.71429
+O	8.57143	14.2857	9.07571
+H	9.33003	14.2857	9.58
+H	9.33003	14.2857	8.57143
+O	8.57143	14.2857	11.9329
+H	9.33003	14.2857	12.4371
+H	9.33003	14.2857	11.4286
+O	8.57143	14.2857	14.79
+H	9.33003	14.2857	15.2943
+H	9.33003	14.2857	14.2857
+O	8.57143	14.2857	17.6471
+H	9.33003	14.2857	18.1514
+H	9.33003	14.2857	17.1429
+O	8.57143	17.1429	0.504284
+H	9.33003	17.1429	1.00857
+H	9.33003	17.1429	0
+O	8.57143	17.1429	3.36143
+H	9.33003	17.1429	3.86571
+H	9.33003	17.1429	2.85714
+O	8.57143	17.1429	6.21857
+H	9.33003	17.1429	6.72285
+H	9.33003	17.1429	5.71429
+O	8.57143	17.1429	9.07571
+H	9.33003	17.1429	9.58
+H	9.33003	17.1429	8.57143
+O	8.57143	17.1429	11.9329
+H	9.33003	17.1429	12.4371
+H	9.33003	17.1429	11.4286
+O	8.57143	17.1429	14.79
+H	9.33003	17.1429	15.2943
+H	9.33003	17.1429	14.2857
+O	8.57143	17.1429	17.6471
+H	9.33003	17.1429	18.1514
+H	9.33003	17.1429	17.1429
+O	11.4286	0	0.504284
+H	12.1872	0	1.00857
+H	12.1872	0	0
+O	11.4286	0	3.36143
+H	12.1872	0	3.86571
+H	12.1872	0	2.85714
+O	11.4286	0	6.21857
+H	12.1872	0	6.72285
+H	12.1872	0	5.71429
+O	11.4286	0	9.07571
+H	12.1872	0	9.58
+H	12.1872	0	8.57143
+O	11.4286	0	11.9329
+H	12.1872	0	12.4371
+H	12.1872	0	11.4286
+O	11.4286	0	14.79
+H	12.1872	0	15.2943
+H	12.1872	0	14.2857
+O	11.4286	0	17.6471
+H	12.1872	0	18.1514
+H	12.1872	0	17.1429
+O	11.4286	2.85714	0.504284
+H	12.1872	2.85714	1.00857
+H	12.1872	2.85714	0
+O	11.4286	2.85714	3.36143
+H	12.1872	2.85714	3.86571
+H	12.1872	2.85714	2.85714
+O	11.4286	2.85714	6.21857
+H	12.1872	2.85714	6.72285
+H	12.1872	2.85714	5.71429
+O	11.4286	2.85714	9.07571
+H	12.1872	2.85714	9.58
+H	12.1872	2.85714	8.57143
+O	11.4286	2.85714	11.9329
+H	12.1872	2.85714	12.4371
+H	12.1872	2.85714	11.4286
+O	11.4286	2.85714	14.79
+H	12.1872	2.85714	15.2943
+H	12.1872	2.85714	14.2857
+O	11.4286	2.85714	17.6471
+H	12.1872	2.85714	18.1514
+H	12.1872	2.85714	17.1429
+O	11.4286	5.71429	0.504284
+H	12.1872	5.71429	1.00857
+H	12.1872	5.71429	0
+O	11.4286	5.71429	3.36143
+H	12.1872	5.71429	3.86571
+H	12.1872	5.71429	2.85714
+O	11.4286	5.71429	6.21857
+H	12.1872	5.71429	6.72285
+H	12.1872	5.71429	5.71429
+O	11.4286	5.71429	9.07571
+H	12.1872	5.71429	9.58
+H	12.1872	5.71429	8.57143
+O	11.4286	5.71429	11.9329
+H	12.1872	5.71429	12.4371
+H	12.1872	5.71429	11.4286
+O	11.4286	5.71429	14.79
+H	12.1872	5.71429	15.2943
+H	12.1872	5.71429	14.2857
+O	11.4286	5.71429	17.6471
+H	12.1872	5.71429	18.1514
+H	12.1872	5.71429	17.1429
+O	11.4286	8.57143	0.504284
+H	12.1872	8.57143	1.00857
+H	12.1872	8.57143	0
+O	11.4286	8.57143	3.36143
+H	12.1872	8.57143	3.86571
+H	12.1872	8.57143	2.85714
+O	11.4286	8.57143	6.21857
+H	12.1872	8.57143	6.72285
+H	12.1872	8.57143	5.71429
+O	11.4286	8.57143	9.07571
+H	12.1872	8.57143	9.58
+H	12.1872	8.57143	8.57143
+O	11.4286	8.57143	11.9329
+H	12.1872	8.57143	12.4371
+H	12.1872	8.57143	11.4286
+O	11.4286	8.57143	14.79
+H	12.1872	8.57143	15.2943
+H	12.1872	8.57143	14.2857
+O	11.4286	8.57143	17.6471
+H	12.1872	8.57143	18.1514
+H	12.1872	8.57143	17.1429
+O	11.4286	11.4286	0.504284
+H	12.1872	11.4286	1.00857
+H	12.1872	11.4286	0
+O	11.4286	11.4286	3.36143
+H	12.1872	11.4286	3.86571
+H	12.1872	11.4286	2.85714
+O	11.4286	11.4286	6.21857
+H	12.1872	11.4286	6.72285
+H	12.1872	11.4286	5.71429
+O	11.4286	11.4286	9.07571
+H	12.1872	11.4286	9.58
+H	12.1872	11.4286	8.57143
+O	11.4286	11.4286	11.9329
+H	12.1872	11.4286	12.4371
+H	12.1872	11.4286	11.4286
+O	11.4286	11.4286	14.79
+H	12.1872	11.4286	15.2943
+H	12.1872	11.4286	14.2857
+O	11.4286	11.4286	17.6471
+H	12.1872	11.4286	18.1514
+H	12.1872	11.4286	17.1429
+O	11.4286	14.2857	0.504284
+H	12.1872	14.2857	1.00857
+H	12.1872	14.2857	0
+O	11.4286	14.2857	3.36143
+H	12.1872	14.2857	3.86571
+H	12.1872	14.2857	2.85714
+O	11.4286	14.2857	6.21857
+H	12.1872	14.2857	6.72285
+H	12.1872	14.2857	5.71429
+O	11.4286	14.2857	9.07571
+H	12.1872	14.2857	9.58
+H	12.1872	14.2857	8.57143
+O	11.4286	14.2857	11.9329
+H	12.1872	14.2857	12.4371
+H	12.1872	14.2857	11.4286
+O	11.4286	14.2857	14.79
+H	12.1872	14.2857	15.2943
+H	12.1872	14.2857	14.2857
+O	11.4286	14.2857	17.6471
+H	12.1872	14.2857	18.1514
+H	12.1872	14.2857	17.1429
+O	11.4286	17.1429	0.504284
+H	12.1872	17.1429	1.00857
+H	12.1872	17.1429	0
+O	11.4286	17.1429	3.36143
+H	12.1872	17.1429	3.86571
+H	12.1872	17.1429	2.85714
+O	11.4286	17.1429	6.21857
+H	12.1872	17.1429	6.72285
+H	12.1872	17.1429	5.71429
+O	11.4286	17.1429	9.07571
+H	12.1872	17.1429	9.58
+H	12.1872	17.1429	8.57143
+O	11.4286	17.1429	11.9329
+H	12.1872	17.1429	12.4371
+H	12.1872	17.1429	11.4286
+O	11.4286	17.1429	14.79
+H	12.1872	17.1429	15.2943
+H	12.1872	17.1429	14.2857
+O	11.4286	17.1429	17.6471
+H	12.1872	17.1429	18.1514
+H	12.1872	17.1429	17.1429
+O	14.2857	0	0.504284
+H	15.0443	0	1.00857
+H	15.0443	0	0
+O	14.2857	0	3.36143
+H	15.0443	0	3.86571
+H	15.0443	0	2.85714
+O	14.2857	0	6.21857
+H	15.0443	0	6.72285
+H	15.0443	0	5.71429
+O	14.2857	0	9.07571
+H	15.0443	0	9.58
+H	15.0443	0	8.57143
+O	14.2857	0	11.9329
+H	15.0443	0	12.4371
+H	15.0443	0	11.4286
+O	14.2857	0	14.79
+H	15.0443	0	15.2943
+H	15.0443	0	14.2857
+O	14.2857	0	17.6471
+H	15.0443	0	18.1514
+H	15.0443	0	17.1429
+O	14.2857	2.85714	0.504284
+H	15.0443	2.85714	1.00857
+H	15.0443	2.85714	0
+O	14.2857	2.85714	3.36143
+H	15.0443	2.85714	3.86571
+H	15.0443	2.85714	2.85714
+O	14.2857	2.85714	6.21857
+H	15.0443	2.85714	6.72285
+H	15.0443	2.85714	5.71429
+O	14.2857	2.85714	9.07571
+H	15.0443	2.85714	9.58
+H	15.0443	2.85714	8.57143
+O	14.2857	2.85714	11.9329
+H	15.0443	2.85714	12.4371
+H	15.0443	2.85714	11.4286
+O	14.2857	2.85714	14.79
+H	15.0443	2.85714	15.2943
+H	15.0443	2.85714	14.2857
+O	14.2857	2.85714	17.6471
+H	15.0443	2.85714	18.1514
+H	15.0443	2.85714	17.1429
+O	14.2857	5.71429	0.504284
+H	15.0443	5.71429	1.00857
+H	15.0443	5.71429	0
+O	14.2857	5.71429	3.36143
+H	15.0443	5.71429	3.86571
+H	15.0443	5.71429	2.85714
+O	14.2857	5.71429	6.21857
+H	15.0443	5.71429	6.72285
+H	15.0443	5.71429	5.71429
+O	14.2857	5.71429	9.07571
+H	15.0443	5.71429	9.58
+H	15.0443	5.71429	8.57143
+O	14.2857	5.71429	11.9329
+H	15.0443	5.71429	12.4371
+H	15.0443	5.71429	11.4286
+O	14.2857	5.71429	14.79
+H	15.0443	5.71429	15.2943
+H	15.0443	5.71429	14.2857
+O	14.2857	5.71429	17.6471
+H	15.0443	5.71429	18.1514
+H	15.0443	5.71429	17.1429
+O	14.2857	8.57143	0.504284
+H	15.0443	8.57143	1.00857
+H	15.0443	8.57143	0
+O	14.2857	8.57143	3.36143
+H	15.0443	8.57143	3.86571
+H	15.0443	8.57143	2.85714
+O	14.2857	8.57143	6.21857
+H	15.0443	8.57143	6.72285
+H	15.0443	8.57143	5.71429
+O	14.2857	8.57143	9.07571
+H	15.0443	8.57143	9.58
+H	15.0443	8.57143	8.57143
+O	14.2857	8.57143	11.9329
+H	15.0443	8.57143	12.4371
+H	15.0443	8.57143	11.4286
+O	14.2857	8.57143	14.79
+H	15.0443	8.57143	15.2943
+H	15.0443	8.57143	14.2857
+O	14.2857	8.57143	17.6471
+H	15.0443	8.57143	18.1514
+H	15.0443	8.57143	17.1429
+O	14.2857	11.4286	0.504284
+H	15.0443	11.4286	1.00857
+H	15.0443	11.4286	0
+O	14.2857	11.4286	3.36143
+H	15.0443	11.4286	3.86571
+H	15.0443	11.4286	2.85714
+O	14.2857	11.4286	6.21857
+H	15.0443	11.4286	6.72285
+H	15.0443	11.4286	5.71429
+O	14.2857	11.4286	9.07571
+H	15.0443	11.4286	9.58
+H	15.0443	11.4286	8.57143
+O	14.2857	11.4286	11.9329
+H	15.0443	11.4286	12.4371
+H	15.0443	11.4286	11.4286
+O	14.2857	11.4286	14.79
+H	15.0443	11.4286	15.2943
+H	15.0443	11.4286	14.2857
+O	14.2857	11.4286	17.6471
+H	15.0443	11.4286	18.1514
+H	15.0443	11.4286	17.1429
+O	14.2857	14.2857	0.504284
+H	15.0443	14.2857	1.00857
+H	15.0443	14.2857	0
+O	14.2857	14.2857	3.36143
+H	15.0443	14.2857	3.86571
+H	15.0443	14.2857	2.85714
+O	14.2857	14.2857	6.21857
+H	15.0443	14.2857	6.72285
+H	15.0443	14.2857	5.71429
+O	14.2857	14.2857	9.07571
+H	15.0443	14.2857	9.58
+H	15.0443	14.2857	8.57143
+O	14.2857	14.2857	11.9329
+H	15.0443	14.2857	12.4371
+H	15.0443	14.2857	11.4286
+O	14.2857	14.2857	14.79
+H	15.0443	14.2857	15.2943
+H	15.0443	14.2857	14.2857
+O	14.2857	14.2857	17.6471
+H	15.0443	14.2857	18.1514
+H	15.0443	14.2857	17.1429
+O	14.2857	17.1429	0.504284
+H	15.0443	17.1429	1.00857
+H	15.0443	17.1429	0
+O	14.2857	17.1429	3.36143
+H	15.0443	17.1429	3.86571
+H	15.0443	17.1429	2.85714
+O	14.2857	17.1429	6.21857
+H	15.0443	17.1429	6.72285
+H	15.0443	17.1429	5.71429
+O	14.2857	17.1429	9.07571
+H	15.0443	17.1429	9.58
+H	15.0443	17.1429	8.57143
+O	14.2857	17.1429	11.9329
+H	15.0443	17.1429	12.4371
+H	15.0443	17.1429	11.4286
+O	14.2857	17.1429	14.79
+H	15.0443	17.1429	15.2943
+H	15.0443	17.1429	14.2857
+O	14.2857	17.1429	17.6471
+H	15.0443	17.1429	18.1514
+H	15.0443	17.1429	17.1429
+O	17.1429	0	0.504284
+H	17.9015	0	1.00857
+H	17.9015	0	0
+O	17.1429	0	3.36143
+H	17.9015	0	3.86571
+H	17.9015	0	2.85714
+O	17.1429	0	6.21857
+H	17.9015	0	6.72285
+H	17.9015	0	5.71429
+O	17.1429	0	9.07571
+H	17.9015	0	9.58
+H	17.9015	0	8.57143
+O	17.1429	0	11.9329
+H	17.9015	0	12.4371
+H	17.9015	0	11.4286
+O	17.1429	0	14.79
+H	17.9015	0	15.2943
+H	17.9015	0	14.2857
+O	17.1429	0	17.6471
+H	17.9015	0	18.1514
+H	17.9015	0	17.1429
+O	17.1429	2.85714	0.504284
+H	17.9015	2.85714	1.00857
+H	17.9015	2.85714	0
+O	17.1429	2.85714	3.36143
+H	17.9015	2.85714	3.86571
+H	17.9015	2.85714	2.85714
+O	17.1429	2.85714	6.21857
+H	17.9015	2.85714	6.72285
+H	17.9015	2.85714	5.71429
+O	17.1429	2.85714	9.07571
+H	17.9015	2.85714	9.58
+H	17.9015	2.85714	8.57143
+O	17.1429	2.85714	11.9329
+H	17.9015	2.85714	12.4371
+H	17.9015	2.85714	11.4286
+O	17.1429	2.85714	14.79
+H	17.9015	2.85714	15.2943
+H	17.9015	2.85714	14.2857
+O	17.1429	2.85714	17.6471
+H	17.9015	2.85714	18.1514
+H	17.9015	2.85714	17.1429
+O	17.1429	5.71429	0.504284
+H	17.9015	5.71429	1.00857
+H	17.9015	5.71429	0
+O	17.1429	5.71429	3.36143
+H	17.9015	5.71429	3.86571
+H	17.9015	5.71429	2.85714
+O	17.1429	5.71429	6.21857
+H	17.9015	5.71429	6.72285
+H	17.9015	5.71429	5.71429
+O	17.1429	5.71429	9.07571
+H	17.9015	5.71429	9.58
+H	17.9015	5.71429	8.57143
+O	17.1429	5.71429	11.9329
+H	17.9015	5.71429	12.4371
+H	17.9015	5.71429	11.4286
+O	17.1429	5.71429	14.79
+H	17.9015	5.71429	15.2943
+H	17.9015	5.71429	14.2857
+O	17.1429	5.71429	17.6471
+H	17.9015	5.71429	18.1514
+H	17.9015	5.71429	17.1429
+O	17.1429	8.57143	0.504284
+H	17.9015	8.57143	1.00857
+H	17.9015	8.57143	0
+O	17.1429	8.57143	3.36143
+H	17.9015	8.57143	3.86571
+H	17.9015	8.57143	2.85714
+O	17.1429	8.57143	6.21857
+H	17.9015	8.57143	6.72285
+H	17.9015	8.57143	5.71429
+O	17.1429	8.57143	9.07571
+H	17.9015	8.57143	9.58
+H	17.9015	8.57143	8.57143
+O	17.1429	8.57143	11.9329
+H	17.9015	8.57143	12.4371
+H	17.9015	8.57143	11.4286
+O	17.1429	8.57143	14.79
+H	17.9015	8.57143	15.2943
+H	17.9015	8.57143	14.2857
+O	17.1429	8.57143	17.6471
+H	17.9015	8.57143	18.1514
+H	17.9015	8.57143	17.1429
+O	17.1429	11.4286	0.504284
+H	17.9015	11.4286	1.00857
+H	17.9015	11.4286	0
+O	17.1429	11.4286	3.36143
+H	17.9015	11.4286	3.86571
+H	17.9015	11.4286	2.85714
+O	17.1429	11.4286	6.21857
+H	17.9015	11.4286	6.72285
+H	17.9015	11.4286	5.71429
+O	17.1429	11.4286	9.07571
+H	17.9015	11.4286	9.58
+H	17.9015	11.4286	8.57143
+O	17.1429	11.4286	11.9329
+H	17.9015	11.4286	12.4371
+H	17.9015	11.4286	11.4286
+O	17.1429	11.4286	14.79
+H	17.9015	11.4286	15.2943
+H	17.9015	11.4286	14.2857
+O	17.1429	11.4286	17.6471
+H	17.9015	11.4286	18.1514
+H	17.9015	11.4286	17.1429
+O	17.1429	14.2857	0.504284
+H	17.9015	14.2857	1.00857
+H	17.9015	14.2857	0
+O	17.1429	14.2857	3.36143
+H	17.9015	14.2857	3.86571
+H	17.9015	14.2857	2.85714
+O	17.1429	14.2857	6.21857
+H	17.9015	14.2857	6.72285
+H	17.9015	14.2857	5.71429
+O	17.1429	14.2857	9.07571
+H	17.9015	14.2857	9.58
+H	17.9015	14.2857	8.57143
+O	17.1429	14.2857	11.9329
+H	17.9015	14.2857	12.4371
+H	17.9015	14.2857	11.4286
+O	17.1429	14.2857	14.79
+H	17.9015	14.2857	15.2943
+H	17.9015	14.2857	14.2857
+O	17.1429	14.2857	17.6471
+H	17.9015	14.2857	18.1514
+H	17.9015	14.2857	17.1429
+O	17.1429	17.1429	0.504284
+H	17.9015	17.1429	1.00857
+H	17.9015	17.1429	0
+O	17.1429	17.1429	3.36143
+H	17.9015	17.1429	3.86571
+H	17.9015	17.1429	2.85714
+O	17.1429	17.1429	6.21857
+H	17.9015	17.1429	6.72285
+H	17.9015	17.1429	5.71429
+O	17.1429	17.1429	9.07571
+H	17.9015	17.1429	9.58
+H	17.9015	17.1429	8.57143
+O	17.1429	17.1429	11.9329
+H	17.9015	17.1429	12.4371
+H	17.9015	17.1429	11.4286
+O	17.1429	17.1429	14.79
+H	17.9015	17.1429	15.2943
+H	17.9015	17.1429	14.2857
+O	17.1429	17.1429	17.6471
+H	17.9015	17.1429	18.1514
+H	17.9015	17.1429	17.1429
Index: sts/regression/Selection/Molecules/MoleculeById/post/id5_missing.xyz
===================================================================
--- tests/regression/Selection/Molecules/MoleculeById/post/id5_missing.xyz	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ 	(revision )
@@ -1,1028 +1,0 @@
-1026
-	Created by molecuilder for select-molecule-by-id test
-O	0	0	0.504284
-H	0.758602	0	1.00857
-H	0.758602	0	0
-O	0	0	3.36143
-H	0.758602	0	3.86571
-H	0.758602	0	2.85714
-O	0	0	6.21857
-H	0.758602	0	6.72285
-H	0.758602	0	5.71429
-O	0	0	9.07571
-H	0.758602	0	9.58
-H	0.758602	0	8.57143
-O	0	0	14.79
-H	0.758602	0	15.2943
-H	0.758602	0	14.2857
-O	0	0	17.6471
-H	0.758602	0	18.1514
-H	0.758602	0	17.1429
-O	0	2.85714	0.504284
-H	0.758602	2.85714	1.00857
-H	0.758602	2.85714	0
-O	0	2.85714	3.36143
-H	0.758602	2.85714	3.86571
-H	0.758602	2.85714	2.85714
-O	0	2.85714	6.21857
-H	0.758602	2.85714	6.72285
-H	0.758602	2.85714	5.71429
-O	0	2.85714	9.07571
-H	0.758602	2.85714	9.58
-H	0.758602	2.85714	8.57143
-O	0	2.85714	11.9329
-H	0.758602	2.85714	12.4371
-H	0.758602	2.85714	11.4286
-O	0	2.85714	14.79
-H	0.758602	2.85714	15.2943
-H	0.758602	2.85714	14.2857
-O	0	2.85714	17.6471
-H	0.758602	2.85714	18.1514
-H	0.758602	2.85714	17.1429
-O	0	5.71429	0.504284
-H	0.758602	5.71429	1.00857
-H	0.758602	5.71429	0
-O	0	5.71429	3.36143
-H	0.758602	5.71429	3.86571
-H	0.758602	5.71429	2.85714
-O	0	5.71429	6.21857
-H	0.758602	5.71429	6.72285
-H	0.758602	5.71429	5.71429
-O	0	5.71429	9.07571
-H	0.758602	5.71429	9.58
-H	0.758602	5.71429	8.57143
-O	0	5.71429	11.9329
-H	0.758602	5.71429	12.4371
-H	0.758602	5.71429	11.4286
-O	0	5.71429	14.79
-H	0.758602	5.71429	15.2943
-H	0.758602	5.71429	14.2857
-O	0	5.71429	17.6471
-H	0.758602	5.71429	18.1514
-H	0.758602	5.71429	17.1429
-O	0	8.57143	0.504284
-H	0.758602	8.57143	1.00857
-H	0.758602	8.57143	0
-O	0	8.57143	3.36143
-H	0.758602	8.57143	3.86571
-H	0.758602	8.57143	2.85714
-O	0	8.57143	6.21857
-H	0.758602	8.57143	6.72285
-H	0.758602	8.57143	5.71429
-O	0	8.57143	9.07571
-H	0.758602	8.57143	9.58
-H	0.758602	8.57143	8.57143
-O	0	8.57143	11.9329
-H	0.758602	8.57143	12.4371
-H	0.758602	8.57143	11.4286
-O	0	8.57143	14.79
-H	0.758602	8.57143	15.2943
-H	0.758602	8.57143	14.2857
-O	0	8.57143	17.6471
-H	0.758602	8.57143	18.1514
-H	0.758602	8.57143	17.1429
-O	0	11.4286	0.504284
-H	0.758602	11.4286	1.00857
-H	0.758602	11.4286	0
-O	0	11.4286	3.36143
-H	0.758602	11.4286	3.86571
-H	0.758602	11.4286	2.85714
-O	0	11.4286	6.21857
-H	0.758602	11.4286	6.72285
-H	0.758602	11.4286	5.71429
-O	0	11.4286	9.07571
-H	0.758602	11.4286	9.58
-H	0.758602	11.4286	8.57143
-O	0	11.4286	11.9329
-H	0.758602	11.4286	12.4371
-H	0.758602	11.4286	11.4286
-O	0	11.4286	14.79
-H	0.758602	11.4286	15.2943
-H	0.758602	11.4286	14.2857
-O	0	11.4286	17.6471
-H	0.758602	11.4286	18.1514
-H	0.758602	11.4286	17.1429
-O	0	14.2857	0.504284
-H	0.758602	14.2857	1.00857
-H	0.758602	14.2857	0
-O	0	14.2857	3.36143
-H	0.758602	14.2857	3.86571
-H	0.758602	14.2857	2.85714
-O	0	14.2857	6.21857
-H	0.758602	14.2857	6.72285
-H	0.758602	14.2857	5.71429
-O	0	14.2857	9.07571
-H	0.758602	14.2857	9.58
-H	0.758602	14.2857	8.57143
-O	0	14.2857	11.9329
-H	0.758602	14.2857	12.4371
-H	0.758602	14.2857	11.4286
-O	0	14.2857	14.79
-H	0.758602	14.2857	15.2943
-H	0.758602	14.2857	14.2857
-O	0	14.2857	17.6471
-H	0.758602	14.2857	18.1514
-H	0.758602	14.2857	17.1429
-O	0	17.1429	0.504284
-H	0.758602	17.1429	1.00857
-H	0.758602	17.1429	0
-O	0	17.1429	3.36143
-H	0.758602	17.1429	3.86571
-H	0.758602	17.1429	2.85714
-O	0	17.1429	6.21857
-H	0.758602	17.1429	6.72285
-H	0.758602	17.1429	5.71429
-O	0	17.1429	9.07571
-H	0.758602	17.1429	9.58
-H	0.758602	17.1429	8.57143
-O	0	17.1429	11.9329
-H	0.758602	17.1429	12.4371
-H	0.758602	17.1429	11.4286
-O	0	17.1429	14.79
-H	0.758602	17.1429	15.2943
-H	0.758602	17.1429	14.2857
-O	0	17.1429	17.6471
-H	0.758602	17.1429	18.1514
-H	0.758602	17.1429	17.1429
-O	2.85714	0	0.504284
-H	3.61574	0	1.00857
-H	3.61574	0	0
-O	2.85714	0	3.36143
-H	3.61574	0	3.86571
-H	3.61574	0	2.85714
-O	2.85714	0	6.21857
-H	3.61574	0	6.72285
-H	3.61574	0	5.71429
-O	2.85714	0	9.07571
-H	3.61574	0	9.58
-H	3.61574	0	8.57143
-O	2.85714	0	11.9329
-H	3.61574	0	12.4371
-H	3.61574	0	11.4286
-O	2.85714	0	14.79
-H	3.61574	0	15.2943
-H	3.61574	0	14.2857
-O	2.85714	0	17.6471
-H	3.61574	0	18.1514
-H	3.61574	0	17.1429
-O	2.85714	2.85714	0.504284
-H	3.61574	2.85714	1.00857
-H	3.61574	2.85714	0
-O	2.85714	2.85714	3.36143
-H	3.61574	2.85714	3.86571
-H	3.61574	2.85714	2.85714
-O	2.85714	2.85714	6.21857
-H	3.61574	2.85714	6.72285
-H	3.61574	2.85714	5.71429
-O	2.85714	2.85714	9.07571
-H	3.61574	2.85714	9.58
-H	3.61574	2.85714	8.57143
-O	2.85714	2.85714	11.9329
-H	3.61574	2.85714	12.4371
-H	3.61574	2.85714	11.4286
-O	2.85714	2.85714	14.79
-H	3.61574	2.85714	15.2943
-H	3.61574	2.85714	14.2857
-O	2.85714	2.85714	17.6471
-H	3.61574	2.85714	18.1514
-H	3.61574	2.85714	17.1429
-O	2.85714	5.71429	0.504284
-H	3.61574	5.71429	1.00857
-H	3.61574	5.71429	0
-O	2.85714	5.71429	3.36143
-H	3.61574	5.71429	3.86571
-H	3.61574	5.71429	2.85714
-O	2.85714	5.71429	6.21857
-H	3.61574	5.71429	6.72285
-H	3.61574	5.71429	5.71429
-O	2.85714	5.71429	9.07571
-H	3.61574	5.71429	9.58
-H	3.61574	5.71429	8.57143
-O	2.85714	5.71429	11.9329
-H	3.61574	5.71429	12.4371
-H	3.61574	5.71429	11.4286
-O	2.85714	5.71429	14.79
-H	3.61574	5.71429	15.2943
-H	3.61574	5.71429	14.2857
-O	2.85714	5.71429	17.6471
-H	3.61574	5.71429	18.1514
-H	3.61574	5.71429	17.1429
-O	2.85714	8.57143	0.504284
-H	3.61574	8.57143	1.00857
-H	3.61574	8.57143	0
-O	2.85714	8.57143	3.36143
-H	3.61574	8.57143	3.86571
-H	3.61574	8.57143	2.85714
-O	2.85714	8.57143	6.21857
-H	3.61574	8.57143	6.72285
-H	3.61574	8.57143	5.71429
-O	2.85714	8.57143	9.07571
-H	3.61574	8.57143	9.58
-H	3.61574	8.57143	8.57143
-O	2.85714	8.57143	11.9329
-H	3.61574	8.57143	12.4371
-H	3.61574	8.57143	11.4286
-O	2.85714	8.57143	14.79
-H	3.61574	8.57143	15.2943
-H	3.61574	8.57143	14.2857
-O	2.85714	8.57143	17.6471
-H	3.61574	8.57143	18.1514
-H	3.61574	8.57143	17.1429
-O	2.85714	11.4286	0.504284
-H	3.61574	11.4286	1.00857
-H	3.61574	11.4286	0
-O	2.85714	11.4286	3.36143
-H	3.61574	11.4286	3.86571
-H	3.61574	11.4286	2.85714
-O	2.85714	11.4286	6.21857
-H	3.61574	11.4286	6.72285
-H	3.61574	11.4286	5.71429
-O	2.85714	11.4286	9.07571
-H	3.61574	11.4286	9.58
-H	3.61574	11.4286	8.57143
-O	2.85714	11.4286	11.9329
-H	3.61574	11.4286	12.4371
-H	3.61574	11.4286	11.4286
-O	2.85714	11.4286	14.79
-H	3.61574	11.4286	15.2943
-H	3.61574	11.4286	14.2857
-O	2.85714	11.4286	17.6471
-H	3.61574	11.4286	18.1514
-H	3.61574	11.4286	17.1429
-O	2.85714	14.2857	0.504284
-H	3.61574	14.2857	1.00857
-H	3.61574	14.2857	0
-O	2.85714	14.2857	3.36143
-H	3.61574	14.2857	3.86571
-H	3.61574	14.2857	2.85714
-O	2.85714	14.2857	6.21857
-H	3.61574	14.2857	6.72285
-H	3.61574	14.2857	5.71429
-O	2.85714	14.2857	9.07571
-H	3.61574	14.2857	9.58
-H	3.61574	14.2857	8.57143
-O	2.85714	14.2857	11.9329
-H	3.61574	14.2857	12.4371
-H	3.61574	14.2857	11.4286
-O	2.85714	14.2857	14.79
-H	3.61574	14.2857	15.2943
-H	3.61574	14.2857	14.2857
-O	2.85714	14.2857	17.6471
-H	3.61574	14.2857	18.1514
-H	3.61574	14.2857	17.1429
-O	2.85714	17.1429	0.504284
-H	3.61574	17.1429	1.00857
-H	3.61574	17.1429	0
-O	2.85714	17.1429	3.36143
-H	3.61574	17.1429	3.86571
-H	3.61574	17.1429	2.85714
-O	2.85714	17.1429	6.21857
-H	3.61574	17.1429	6.72285
-H	3.61574	17.1429	5.71429
-O	2.85714	17.1429	9.07571
-H	3.61574	17.1429	9.58
-H	3.61574	17.1429	8.57143
-O	2.85714	17.1429	11.9329
-H	3.61574	17.1429	12.4371
-H	3.61574	17.1429	11.4286
-O	2.85714	17.1429	14.79
-H	3.61574	17.1429	15.2943
-H	3.61574	17.1429	14.2857
-O	2.85714	17.1429	17.6471
-H	3.61574	17.1429	18.1514
-H	3.61574	17.1429	17.1429
-O	5.71429	0	0.504284
-H	6.47289	0	1.00857
-H	6.47289	0	0
-O	5.71429	0	3.36143
-H	6.47289	0	3.86571
-H	6.47289	0	2.85714
-O	5.71429	0	6.21857
-H	6.47289	0	6.72285
-H	6.47289	0	5.71429
-O	5.71429	0	9.07571
-H	6.47289	0	9.58
-H	6.47289	0	8.57143
-O	5.71429	0	11.9329
-H	6.47289	0	12.4371
-H	6.47289	0	11.4286
-O	5.71429	0	14.79
-H	6.47289	0	15.2943
-H	6.47289	0	14.2857
-O	5.71429	0	17.6471
-H	6.47289	0	18.1514
-H	6.47289	0	17.1429
-O	5.71429	2.85714	0.504284
-H	6.47289	2.85714	1.00857
-H	6.47289	2.85714	0
-O	5.71429	2.85714	3.36143
-H	6.47289	2.85714	3.86571
-H	6.47289	2.85714	2.85714
-O	5.71429	2.85714	6.21857
-H	6.47289	2.85714	6.72285
-H	6.47289	2.85714	5.71429
-O	5.71429	2.85714	9.07571
-H	6.47289	2.85714	9.58
-H	6.47289	2.85714	8.57143
-O	5.71429	2.85714	11.9329
-H	6.47289	2.85714	12.4371
-H	6.47289	2.85714	11.4286
-O	5.71429	2.85714	14.79
-H	6.47289	2.85714	15.2943
-H	6.47289	2.85714	14.2857
-O	5.71429	2.85714	17.6471
-H	6.47289	2.85714	18.1514
-H	6.47289	2.85714	17.1429
-O	5.71429	5.71429	0.504284
-H	6.47289	5.71429	1.00857
-H	6.47289	5.71429	0
-O	5.71429	5.71429	3.36143
-H	6.47289	5.71429	3.86571
-H	6.47289	5.71429	2.85714
-O	5.71429	5.71429	6.21857
-H	6.47289	5.71429	6.72285
-H	6.47289	5.71429	5.71429
-O	5.71429	5.71429	9.07571
-H	6.47289	5.71429	9.58
-H	6.47289	5.71429	8.57143
-O	5.71429	5.71429	11.9329
-H	6.47289	5.71429	12.4371
-H	6.47289	5.71429	11.4286
-O	5.71429	5.71429	14.79
-H	6.47289	5.71429	15.2943
-H	6.47289	5.71429	14.2857
-O	5.71429	5.71429	17.6471
-H	6.47289	5.71429	18.1514
-H	6.47289	5.71429	17.1429
-O	5.71429	8.57143	0.504284
-H	6.47289	8.57143	1.00857
-H	6.47289	8.57143	0
-O	5.71429	8.57143	3.36143
-H	6.47289	8.57143	3.86571
-H	6.47289	8.57143	2.85714
-O	5.71429	8.57143	6.21857
-H	6.47289	8.57143	6.72285
-H	6.47289	8.57143	5.71429
-O	5.71429	8.57143	9.07571
-H	6.47289	8.57143	9.58
-H	6.47289	8.57143	8.57143
-O	5.71429	8.57143	11.9329
-H	6.47289	8.57143	12.4371
-H	6.47289	8.57143	11.4286
-O	5.71429	8.57143	14.79
-H	6.47289	8.57143	15.2943
-H	6.47289	8.57143	14.2857
-O	5.71429	8.57143	17.6471
-H	6.47289	8.57143	18.1514
-H	6.47289	8.57143	17.1429
-O	5.71429	11.4286	0.504284
-H	6.47289	11.4286	1.00857
-H	6.47289	11.4286	0
-O	5.71429	11.4286	3.36143
-H	6.47289	11.4286	3.86571
-H	6.47289	11.4286	2.85714
-O	5.71429	11.4286	6.21857
-H	6.47289	11.4286	6.72285
-H	6.47289	11.4286	5.71429
-O	5.71429	11.4286	9.07571
-H	6.47289	11.4286	9.58
-H	6.47289	11.4286	8.57143
-O	5.71429	11.4286	11.9329
-H	6.47289	11.4286	12.4371
-H	6.47289	11.4286	11.4286
-O	5.71429	11.4286	14.79
-H	6.47289	11.4286	15.2943
-H	6.47289	11.4286	14.2857
-O	5.71429	11.4286	17.6471
-H	6.47289	11.4286	18.1514
-H	6.47289	11.4286	17.1429
-O	5.71429	14.2857	0.504284
-H	6.47289	14.2857	1.00857
-H	6.47289	14.2857	0
-O	5.71429	14.2857	3.36143
-H	6.47289	14.2857	3.86571
-H	6.47289	14.2857	2.85714
-O	5.71429	14.2857	6.21857
-H	6.47289	14.2857	6.72285
-H	6.47289	14.2857	5.71429
-O	5.71429	14.2857	9.07571
-H	6.47289	14.2857	9.58
-H	6.47289	14.2857	8.57143
-O	5.71429	14.2857	11.9329
-H	6.47289	14.2857	12.4371
-H	6.47289	14.2857	11.4286
-O	5.71429	14.2857	14.79
-H	6.47289	14.2857	15.2943
-H	6.47289	14.2857	14.2857
-O	5.71429	14.2857	17.6471
-H	6.47289	14.2857	18.1514
-H	6.47289	14.2857	17.1429
-O	5.71429	17.1429	0.504284
-H	6.47289	17.1429	1.00857
-H	6.47289	17.1429	0
-O	5.71429	17.1429	3.36143
-H	6.47289	17.1429	3.86571
-H	6.47289	17.1429	2.85714
-O	5.71429	17.1429	6.21857
-H	6.47289	17.1429	6.72285
-H	6.47289	17.1429	5.71429
-O	5.71429	17.1429	9.07571
-H	6.47289	17.1429	9.58
-H	6.47289	17.1429	8.57143
-O	5.71429	17.1429	11.9329
-H	6.47289	17.1429	12.4371
-H	6.47289	17.1429	11.4286
-O	5.71429	17.1429	14.79
-H	6.47289	17.1429	15.2943
-H	6.47289	17.1429	14.2857
-O	5.71429	17.1429	17.6471
-H	6.47289	17.1429	18.1514
-H	6.47289	17.1429	17.1429
-O	8.57143	0	0.504284
-H	9.33003	0	1.00857
-H	9.33003	0	0
-O	8.57143	0	3.36143
-H	9.33003	0	3.86571
-H	9.33003	0	2.85714
-O	8.57143	0	6.21857
-H	9.33003	0	6.72285
-H	9.33003	0	5.71429
-O	8.57143	0	9.07571
-H	9.33003	0	9.58
-H	9.33003	0	8.57143
-O	8.57143	0	11.9329
-H	9.33003	0	12.4371
-H	9.33003	0	11.4286
-O	8.57143	0	14.79
-H	9.33003	0	15.2943
-H	9.33003	0	14.2857
-O	8.57143	0	17.6471
-H	9.33003	0	18.1514
-H	9.33003	0	17.1429
-O	8.57143	2.85714	0.504284
-H	9.33003	2.85714	1.00857
-H	9.33003	2.85714	0
-O	8.57143	2.85714	3.36143
-H	9.33003	2.85714	3.86571
-H	9.33003	2.85714	2.85714
-O	8.57143	2.85714	6.21857
-H	9.33003	2.85714	6.72285
-H	9.33003	2.85714	5.71429
-O	8.57143	2.85714	9.07571
-H	9.33003	2.85714	9.58
-H	9.33003	2.85714	8.57143
-O	8.57143	2.85714	11.9329
-H	9.33003	2.85714	12.4371
-H	9.33003	2.85714	11.4286
-O	8.57143	2.85714	14.79
-H	9.33003	2.85714	15.2943
-H	9.33003	2.85714	14.2857
-O	8.57143	2.85714	17.6471
-H	9.33003	2.85714	18.1514
-H	9.33003	2.85714	17.1429
-O	8.57143	5.71429	0.504284
-H	9.33003	5.71429	1.00857
-H	9.33003	5.71429	0
-O	8.57143	5.71429	3.36143
-H	9.33003	5.71429	3.86571
-H	9.33003	5.71429	2.85714
-O	8.57143	5.71429	6.21857
-H	9.33003	5.71429	6.72285
-H	9.33003	5.71429	5.71429
-O	8.57143	5.71429	9.07571
-H	9.33003	5.71429	9.58
-H	9.33003	5.71429	8.57143
-O	8.57143	5.71429	11.9329
-H	9.33003	5.71429	12.4371
-H	9.33003	5.71429	11.4286
-O	8.57143	5.71429	14.79
-H	9.33003	5.71429	15.2943
-H	9.33003	5.71429	14.2857
-O	8.57143	5.71429	17.6471
-H	9.33003	5.71429	18.1514
-H	9.33003	5.71429	17.1429
-O	8.57143	8.57143	0.504284
-H	9.33003	8.57143	1.00857
-H	9.33003	8.57143	0
-O	8.57143	8.57143	3.36143
-H	9.33003	8.57143	3.86571
-H	9.33003	8.57143	2.85714
-O	8.57143	8.57143	6.21857
-H	9.33003	8.57143	6.72285
-H	9.33003	8.57143	5.71429
-O	8.57143	8.57143	9.07571
-H	9.33003	8.57143	9.58
-H	9.33003	8.57143	8.57143
-O	8.57143	8.57143	11.9329
-H	9.33003	8.57143	12.4371
-H	9.33003	8.57143	11.4286
-O	8.57143	8.57143	14.79
-H	9.33003	8.57143	15.2943
-H	9.33003	8.57143	14.2857
-O	8.57143	8.57143	17.6471
-H	9.33003	8.57143	18.1514
-H	9.33003	8.57143	17.1429
-O	8.57143	11.4286	0.504284
-H	9.33003	11.4286	1.00857
-H	9.33003	11.4286	0
-O	8.57143	11.4286	3.36143
-H	9.33003	11.4286	3.86571
-H	9.33003	11.4286	2.85714
-O	8.57143	11.4286	6.21857
-H	9.33003	11.4286	6.72285
-H	9.33003	11.4286	5.71429
-O	8.57143	11.4286	9.07571
-H	9.33003	11.4286	9.58
-H	9.33003	11.4286	8.57143
-O	8.57143	11.4286	11.9329
-H	9.33003	11.4286	12.4371
-H	9.33003	11.4286	11.4286
-O	8.57143	11.4286	14.79
-H	9.33003	11.4286	15.2943
-H	9.33003	11.4286	14.2857
-O	8.57143	11.4286	17.6471
-H	9.33003	11.4286	18.1514
-H	9.33003	11.4286	17.1429
-O	8.57143	14.2857	0.504284
-H	9.33003	14.2857	1.00857
-H	9.33003	14.2857	0
-O	8.57143	14.2857	3.36143
-H	9.33003	14.2857	3.86571
-H	9.33003	14.2857	2.85714
-O	8.57143	14.2857	6.21857
-H	9.33003	14.2857	6.72285
-H	9.33003	14.2857	5.71429
-O	8.57143	14.2857	9.07571
-H	9.33003	14.2857	9.58
-H	9.33003	14.2857	8.57143
-O	8.57143	14.2857	11.9329
-H	9.33003	14.2857	12.4371
-H	9.33003	14.2857	11.4286
-O	8.57143	14.2857	14.79
-H	9.33003	14.2857	15.2943
-H	9.33003	14.2857	14.2857
-O	8.57143	14.2857	17.6471
-H	9.33003	14.2857	18.1514
-H	9.33003	14.2857	17.1429
-O	8.57143	17.1429	0.504284
-H	9.33003	17.1429	1.00857
-H	9.33003	17.1429	0
-O	8.57143	17.1429	3.36143
-H	9.33003	17.1429	3.86571
-H	9.33003	17.1429	2.85714
-O	8.57143	17.1429	6.21857
-H	9.33003	17.1429	6.72285
-H	9.33003	17.1429	5.71429
-O	8.57143	17.1429	9.07571
-H	9.33003	17.1429	9.58
-H	9.33003	17.1429	8.57143
-O	8.57143	17.1429	11.9329
-H	9.33003	17.1429	12.4371
-H	9.33003	17.1429	11.4286
-O	8.57143	17.1429	14.79
-H	9.33003	17.1429	15.2943
-H	9.33003	17.1429	14.2857
-O	8.57143	17.1429	17.6471
-H	9.33003	17.1429	18.1514
-H	9.33003	17.1429	17.1429
-O	11.4286	0	0.504284
-H	12.1872	0	1.00857
-H	12.1872	0	0
-O	11.4286	0	3.36143
-H	12.1872	0	3.86571
-H	12.1872	0	2.85714
-O	11.4286	0	6.21857
-H	12.1872	0	6.72285
-H	12.1872	0	5.71429
-O	11.4286	0	9.07571
-H	12.1872	0	9.58
-H	12.1872	0	8.57143
-O	11.4286	0	11.9329
-H	12.1872	0	12.4371
-H	12.1872	0	11.4286
-O	11.4286	0	14.79
-H	12.1872	0	15.2943
-H	12.1872	0	14.2857
-O	11.4286	0	17.6471
-H	12.1872	0	18.1514
-H	12.1872	0	17.1429
-O	11.4286	2.85714	0.504284
-H	12.1872	2.85714	1.00857
-H	12.1872	2.85714	0
-O	11.4286	2.85714	3.36143
-H	12.1872	2.85714	3.86571
-H	12.1872	2.85714	2.85714
-O	11.4286	2.85714	6.21857
-H	12.1872	2.85714	6.72285
-H	12.1872	2.85714	5.71429
-O	11.4286	2.85714	9.07571
-H	12.1872	2.85714	9.58
-H	12.1872	2.85714	8.57143
-O	11.4286	2.85714	11.9329
-H	12.1872	2.85714	12.4371
-H	12.1872	2.85714	11.4286
-O	11.4286	2.85714	14.79
-H	12.1872	2.85714	15.2943
-H	12.1872	2.85714	14.2857
-O	11.4286	2.85714	17.6471
-H	12.1872	2.85714	18.1514
-H	12.1872	2.85714	17.1429
-O	11.4286	5.71429	0.504284
-H	12.1872	5.71429	1.00857
-H	12.1872	5.71429	0
-O	11.4286	5.71429	3.36143
-H	12.1872	5.71429	3.86571
-H	12.1872	5.71429	2.85714
-O	11.4286	5.71429	6.21857
-H	12.1872	5.71429	6.72285
-H	12.1872	5.71429	5.71429
-O	11.4286	5.71429	9.07571
-H	12.1872	5.71429	9.58
-H	12.1872	5.71429	8.57143
-O	11.4286	5.71429	11.9329
-H	12.1872	5.71429	12.4371
-H	12.1872	5.71429	11.4286
-O	11.4286	5.71429	14.79
-H	12.1872	5.71429	15.2943
-H	12.1872	5.71429	14.2857
-O	11.4286	5.71429	17.6471
-H	12.1872	5.71429	18.1514
-H	12.1872	5.71429	17.1429
-O	11.4286	8.57143	0.504284
-H	12.1872	8.57143	1.00857
-H	12.1872	8.57143	0
-O	11.4286	8.57143	3.36143
-H	12.1872	8.57143	3.86571
-H	12.1872	8.57143	2.85714
-O	11.4286	8.57143	6.21857
-H	12.1872	8.57143	6.72285
-H	12.1872	8.57143	5.71429
-O	11.4286	8.57143	9.07571
-H	12.1872	8.57143	9.58
-H	12.1872	8.57143	8.57143
-O	11.4286	8.57143	11.9329
-H	12.1872	8.57143	12.4371
-H	12.1872	8.57143	11.4286
-O	11.4286	8.57143	14.79
-H	12.1872	8.57143	15.2943
-H	12.1872	8.57143	14.2857
-O	11.4286	8.57143	17.6471
-H	12.1872	8.57143	18.1514
-H	12.1872	8.57143	17.1429
-O	11.4286	11.4286	0.504284
-H	12.1872	11.4286	1.00857
-H	12.1872	11.4286	0
-O	11.4286	11.4286	3.36143
-H	12.1872	11.4286	3.86571
-H	12.1872	11.4286	2.85714
-O	11.4286	11.4286	6.21857
-H	12.1872	11.4286	6.72285
-H	12.1872	11.4286	5.71429
-O	11.4286	11.4286	9.07571
-H	12.1872	11.4286	9.58
-H	12.1872	11.4286	8.57143
-O	11.4286	11.4286	11.9329
-H	12.1872	11.4286	12.4371
-H	12.1872	11.4286	11.4286
-O	11.4286	11.4286	14.79
-H	12.1872	11.4286	15.2943
-H	12.1872	11.4286	14.2857
-O	11.4286	11.4286	17.6471
-H	12.1872	11.4286	18.1514
-H	12.1872	11.4286	17.1429
-O	11.4286	14.2857	0.504284
-H	12.1872	14.2857	1.00857
-H	12.1872	14.2857	0
-O	11.4286	14.2857	3.36143
-H	12.1872	14.2857	3.86571
-H	12.1872	14.2857	2.85714
-O	11.4286	14.2857	6.21857
-H	12.1872	14.2857	6.72285
-H	12.1872	14.2857	5.71429
-O	11.4286	14.2857	9.07571
-H	12.1872	14.2857	9.58
-H	12.1872	14.2857	8.57143
-O	11.4286	14.2857	11.9329
-H	12.1872	14.2857	12.4371
-H	12.1872	14.2857	11.4286
-O	11.4286	14.2857	14.79
-H	12.1872	14.2857	15.2943
-H	12.1872	14.2857	14.2857
-O	11.4286	14.2857	17.6471
-H	12.1872	14.2857	18.1514
-H	12.1872	14.2857	17.1429
-O	11.4286	17.1429	0.504284
-H	12.1872	17.1429	1.00857
-H	12.1872	17.1429	0
-O	11.4286	17.1429	3.36143
-H	12.1872	17.1429	3.86571
-H	12.1872	17.1429	2.85714
-O	11.4286	17.1429	6.21857
-H	12.1872	17.1429	6.72285
-H	12.1872	17.1429	5.71429
-O	11.4286	17.1429	9.07571
-H	12.1872	17.1429	9.58
-H	12.1872	17.1429	8.57143
-O	11.4286	17.1429	11.9329
-H	12.1872	17.1429	12.4371
-H	12.1872	17.1429	11.4286
-O	11.4286	17.1429	14.79
-H	12.1872	17.1429	15.2943
-H	12.1872	17.1429	14.2857
-O	11.4286	17.1429	17.6471
-H	12.1872	17.1429	18.1514
-H	12.1872	17.1429	17.1429
-O	14.2857	0	0.504284
-H	15.0443	0	1.00857
-H	15.0443	0	0
-O	14.2857	0	3.36143
-H	15.0443	0	3.86571
-H	15.0443	0	2.85714
-O	14.2857	0	6.21857
-H	15.0443	0	6.72285
-H	15.0443	0	5.71429
-O	14.2857	0	9.07571
-H	15.0443	0	9.58
-H	15.0443	0	8.57143
-O	14.2857	0	11.9329
-H	15.0443	0	12.4371
-H	15.0443	0	11.4286
-O	14.2857	0	14.79
-H	15.0443	0	15.2943
-H	15.0443	0	14.2857
-O	14.2857	0	17.6471
-H	15.0443	0	18.1514
-H	15.0443	0	17.1429
-O	14.2857	2.85714	0.504284
-H	15.0443	2.85714	1.00857
-H	15.0443	2.85714	0
-O	14.2857	2.85714	3.36143
-H	15.0443	2.85714	3.86571
-H	15.0443	2.85714	2.85714
-O	14.2857	2.85714	6.21857
-H	15.0443	2.85714	6.72285
-H	15.0443	2.85714	5.71429
-O	14.2857	2.85714	9.07571
-H	15.0443	2.85714	9.58
-H	15.0443	2.85714	8.57143
-O	14.2857	2.85714	11.9329
-H	15.0443	2.85714	12.4371
-H	15.0443	2.85714	11.4286
-O	14.2857	2.85714	14.79
-H	15.0443	2.85714	15.2943
-H	15.0443	2.85714	14.2857
-O	14.2857	2.85714	17.6471
-H	15.0443	2.85714	18.1514
-H	15.0443	2.85714	17.1429
-O	14.2857	5.71429	0.504284
-H	15.0443	5.71429	1.00857
-H	15.0443	5.71429	0
-O	14.2857	5.71429	3.36143
-H	15.0443	5.71429	3.86571
-H	15.0443	5.71429	2.85714
-O	14.2857	5.71429	6.21857
-H	15.0443	5.71429	6.72285
-H	15.0443	5.71429	5.71429
-O	14.2857	5.71429	9.07571
-H	15.0443	5.71429	9.58
-H	15.0443	5.71429	8.57143
-O	14.2857	5.71429	11.9329
-H	15.0443	5.71429	12.4371
-H	15.0443	5.71429	11.4286
-O	14.2857	5.71429	14.79
-H	15.0443	5.71429	15.2943
-H	15.0443	5.71429	14.2857
-O	14.2857	5.71429	17.6471
-H	15.0443	5.71429	18.1514
-H	15.0443	5.71429	17.1429
-O	14.2857	8.57143	0.504284
-H	15.0443	8.57143	1.00857
-H	15.0443	8.57143	0
-O	14.2857	8.57143	3.36143
-H	15.0443	8.57143	3.86571
-H	15.0443	8.57143	2.85714
-O	14.2857	8.57143	6.21857
-H	15.0443	8.57143	6.72285
-H	15.0443	8.57143	5.71429
-O	14.2857	8.57143	9.07571
-H	15.0443	8.57143	9.58
-H	15.0443	8.57143	8.57143
-O	14.2857	8.57143	11.9329
-H	15.0443	8.57143	12.4371
-H	15.0443	8.57143	11.4286
-O	14.2857	8.57143	14.79
-H	15.0443	8.57143	15.2943
-H	15.0443	8.57143	14.2857
-O	14.2857	8.57143	17.6471
-H	15.0443	8.57143	18.1514
-H	15.0443	8.57143	17.1429
-O	14.2857	11.4286	0.504284
-H	15.0443	11.4286	1.00857
-H	15.0443	11.4286	0
-O	14.2857	11.4286	3.36143
-H	15.0443	11.4286	3.86571
-H	15.0443	11.4286	2.85714
-O	14.2857	11.4286	6.21857
-H	15.0443	11.4286	6.72285
-H	15.0443	11.4286	5.71429
-O	14.2857	11.4286	9.07571
-H	15.0443	11.4286	9.58
-H	15.0443	11.4286	8.57143
-O	14.2857	11.4286	11.9329
-H	15.0443	11.4286	12.4371
-H	15.0443	11.4286	11.4286
-O	14.2857	11.4286	14.79
-H	15.0443	11.4286	15.2943
-H	15.0443	11.4286	14.2857
-O	14.2857	11.4286	17.6471
-H	15.0443	11.4286	18.1514
-H	15.0443	11.4286	17.1429
-O	14.2857	14.2857	0.504284
-H	15.0443	14.2857	1.00857
-H	15.0443	14.2857	0
-O	14.2857	14.2857	3.36143
-H	15.0443	14.2857	3.86571
-H	15.0443	14.2857	2.85714
-O	14.2857	14.2857	6.21857
-H	15.0443	14.2857	6.72285
-H	15.0443	14.2857	5.71429
-O	14.2857	14.2857	9.07571
-H	15.0443	14.2857	9.58
-H	15.0443	14.2857	8.57143
-O	14.2857	14.2857	11.9329
-H	15.0443	14.2857	12.4371
-H	15.0443	14.2857	11.4286
-O	14.2857	14.2857	14.79
-H	15.0443	14.2857	15.2943
-H	15.0443	14.2857	14.2857
-O	14.2857	14.2857	17.6471
-H	15.0443	14.2857	18.1514
-H	15.0443	14.2857	17.1429
-O	14.2857	17.1429	0.504284
-H	15.0443	17.1429	1.00857
-H	15.0443	17.1429	0
-O	14.2857	17.1429	3.36143
-H	15.0443	17.1429	3.86571
-H	15.0443	17.1429	2.85714
-O	14.2857	17.1429	6.21857
-H	15.0443	17.1429	6.72285
-H	15.0443	17.1429	5.71429
-O	14.2857	17.1429	9.07571
-H	15.0443	17.1429	9.58
-H	15.0443	17.1429	8.57143
-O	14.2857	17.1429	11.9329
-H	15.0443	17.1429	12.4371
-H	15.0443	17.1429	11.4286
-O	14.2857	17.1429	14.79
-H	15.0443	17.1429	15.2943
-H	15.0443	17.1429	14.2857
-O	14.2857	17.1429	17.6471
-H	15.0443	17.1429	18.1514
-H	15.0443	17.1429	17.1429
-O	17.1429	0	0.504284
-H	17.9015	0	1.00857
-H	17.9015	0	0
-O	17.1429	0	3.36143
-H	17.9015	0	3.86571
-H	17.9015	0	2.85714
-O	17.1429	0	6.21857
-H	17.9015	0	6.72285
-H	17.9015	0	5.71429
-O	17.1429	0	9.07571
-H	17.9015	0	9.58
-H	17.9015	0	8.57143
-O	17.1429	0	11.9329
-H	17.9015	0	12.4371
-H	17.9015	0	11.4286
-O	17.1429	0	14.79
-H	17.9015	0	15.2943
-H	17.9015	0	14.2857
-O	17.1429	0	17.6471
-H	17.9015	0	18.1514
-H	17.9015	0	17.1429
-O	17.1429	2.85714	0.504284
-H	17.9015	2.85714	1.00857
-H	17.9015	2.85714	0
-O	17.1429	2.85714	3.36143
-H	17.9015	2.85714	3.86571
-H	17.9015	2.85714	2.85714
-O	17.1429	2.85714	6.21857
-H	17.9015	2.85714	6.72285
-H	17.9015	2.85714	5.71429
-O	17.1429	2.85714	9.07571
-H	17.9015	2.85714	9.58
-H	17.9015	2.85714	8.57143
-O	17.1429	2.85714	11.9329
-H	17.9015	2.85714	12.4371
-H	17.9015	2.85714	11.4286
-O	17.1429	2.85714	14.79
-H	17.9015	2.85714	15.2943
-H	17.9015	2.85714	14.2857
-O	17.1429	2.85714	17.6471
-H	17.9015	2.85714	18.1514
-H	17.9015	2.85714	17.1429
-O	17.1429	5.71429	0.504284
-H	17.9015	5.71429	1.00857
-H	17.9015	5.71429	0
-O	17.1429	5.71429	3.36143
-H	17.9015	5.71429	3.86571
-H	17.9015	5.71429	2.85714
-O	17.1429	5.71429	6.21857
-H	17.9015	5.71429	6.72285
-H	17.9015	5.71429	5.71429
-O	17.1429	5.71429	9.07571
-H	17.9015	5.71429	9.58
-H	17.9015	5.71429	8.57143
-O	17.1429	5.71429	11.9329
-H	17.9015	5.71429	12.4371
-H	17.9015	5.71429	11.4286
-O	17.1429	5.71429	14.79
-H	17.9015	5.71429	15.2943
-H	17.9015	5.71429	14.2857
-O	17.1429	5.71429	17.6471
-H	17.9015	5.71429	18.1514
-H	17.9015	5.71429	17.1429
-O	17.1429	8.57143	0.504284
-H	17.9015	8.57143	1.00857
-H	17.9015	8.57143	0
-O	17.1429	8.57143	3.36143
-H	17.9015	8.57143	3.86571
-H	17.9015	8.57143	2.85714
-O	17.1429	8.57143	6.21857
-H	17.9015	8.57143	6.72285
-H	17.9015	8.57143	5.71429
-O	17.1429	8.57143	9.07571
-H	17.9015	8.57143	9.58
-H	17.9015	8.57143	8.57143
-O	17.1429	8.57143	11.9329
-H	17.9015	8.57143	12.4371
-H	17.9015	8.57143	11.4286
-O	17.1429	8.57143	14.79
-H	17.9015	8.57143	15.2943
-H	17.9015	8.57143	14.2857
-O	17.1429	8.57143	17.6471
-H	17.9015	8.57143	18.1514
-H	17.9015	8.57143	17.1429
-O	17.1429	11.4286	0.504284
-H	17.9015	11.4286	1.00857
-H	17.9015	11.4286	0
-O	17.1429	11.4286	3.36143
-H	17.9015	11.4286	3.86571
-H	17.9015	11.4286	2.85714
-O	17.1429	11.4286	6.21857
-H	17.9015	11.4286	6.72285
-H	17.9015	11.4286	5.71429
-O	17.1429	11.4286	9.07571
-H	17.9015	11.4286	9.58
-H	17.9015	11.4286	8.57143
-O	17.1429	11.4286	11.9329
-H	17.9015	11.4286	12.4371
-H	17.9015	11.4286	11.4286
-O	17.1429	11.4286	14.79
-H	17.9015	11.4286	15.2943
-H	17.9015	11.4286	14.2857
-O	17.1429	11.4286	17.6471
-H	17.9015	11.4286	18.1514
-H	17.9015	11.4286	17.1429
-O	17.1429	14.2857	0.504284
-H	17.9015	14.2857	1.00857
-H	17.9015	14.2857	0
-O	17.1429	14.2857	3.36143
-H	17.9015	14.2857	3.86571
-H	17.9015	14.2857	2.85714
-O	17.1429	14.2857	6.21857
-H	17.9015	14.2857	6.72285
-H	17.9015	14.2857	5.71429
-O	17.1429	14.2857	9.07571
-H	17.9015	14.2857	9.58
-H	17.9015	14.2857	8.57143
-O	17.1429	14.2857	11.9329
-H	17.9015	14.2857	12.4371
-H	17.9015	14.2857	11.4286
-O	17.1429	14.2857	14.79
-H	17.9015	14.2857	15.2943
-H	17.9015	14.2857	14.2857
-O	17.1429	14.2857	17.6471
-H	17.9015	14.2857	18.1514
-H	17.9015	14.2857	17.1429
-O	17.1429	17.1429	0.504284
-H	17.9015	17.1429	1.00857
-H	17.9015	17.1429	0
-O	17.1429	17.1429	3.36143
-H	17.9015	17.1429	3.86571
-H	17.9015	17.1429	2.85714
-O	17.1429	17.1429	6.21857
-H	17.9015	17.1429	6.72285
-H	17.9015	17.1429	5.71429
-O	17.1429	17.1429	9.07571
-H	17.9015	17.1429	9.58
-H	17.9015	17.1429	8.57143
-O	17.1429	17.1429	11.9329
-H	17.9015	17.1429	12.4371
-H	17.9015	17.1429	11.4286
-O	17.1429	17.1429	14.79
-H	17.9015	17.1429	15.2943
-H	17.9015	17.1429	14.2857
-O	17.1429	17.1429	17.6471
-H	17.9015	17.1429	18.1514
-H	17.9015	17.1429	17.1429
Index: tests/regression/Selection/Molecules/MoleculeById/post/water_id4.xyz
===================================================================
--- tests/regression/Selection/Molecules/MoleculeById/post/water_id4.xyz	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
+++ tests/regression/Selection/Molecules/MoleculeById/post/water_id4.xyz	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -0,0 +1,5 @@
+3
+	Created by molecuilder for select-molecule-by-id test
+O	0	0	11.9329
+H	0.758602	0	12.4371
+H	0.758602	0	11.4286
Index: sts/regression/Selection/Molecules/MoleculeById/post/water_id5.xyz
===================================================================
--- tests/regression/Selection/Molecules/MoleculeById/post/water_id5.xyz	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ 	(revision )
@@ -1,5 +1,0 @@
-3
-	Created by molecuilder for select-molecule-by-id test
-O	0	0	11.9329
-H	0.758602	0	12.4371
-H	0.758602	0	11.4286
Index: tests/regression/Selection/Molecules/MoleculeById/testsuite-selection-molecule-by-id.at
===================================================================
--- tests/regression/Selection/Molecules/MoleculeById/testsuite-selection-molecule-by-id.at	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/regression/Selection/Molecules/MoleculeById/testsuite-selection-molecule-by-id.at	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -9,10 +9,10 @@
 m4_include(CheckCommand.sh)
 # the tests
-check_command_output $srcpath $srcfile "water_id5.xyz" "-I --select-molecule-by-id 5 -s water_id5.xyz"
-mv water_id5.xyz water_id5_a.xyz
-check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 5 --undo -s empty.xyz"
-check_command_output $srcpath $srcfile "water_id5.xyz" "-I --select-molecule-by-id 5 --undo --redo -s water_id5.xyz"
-mv water_id5.xyz water_id5_b.xyz
-AT_CHECK([diff -I '.*Created by molecuilder.*' water_id5_a.xyz water_id5_b.xyz], 0, [ignore], [ignore])
+check_command_output $srcpath $srcfile "water_id4.xyz" "-I --select-molecule-by-id 4 -s water_id4.xyz"
+mv water_id4.xyz water_id4_a.xyz
+check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 4 --undo -s empty.xyz"
+check_command_output $srcpath $srcfile "water_id4.xyz" "-I --select-molecule-by-id 4 --undo --redo -s water_id4.xyz"
+mv water_id4.xyz water_id4_b.xyz
+AT_CHECK([diff -I '.*Created by molecuilder.*' water_id4_a.xyz water_id4_b.xyz], 0, [ignore], [ignore])
 AT_CLEANUP
 
@@ -24,9 +24,9 @@
 m4_include(CheckCommand.sh)
 # the tests
-check_command_output $srcpath $srcfile "id5_missing.xyz" "-I --select-all-molecules --unselect-molecule-by-id 5 -s id5_missing.xyz"
-mv id5_missing.xyz id5_missing_a.xyz
-check_command_output $srcpath $srcfile "box.xyz" "-I --select-all-molecules --unselect-molecule-by-id 5 --undo -s box.xyz"
-check_command_output $srcpath $srcfile "id5_missing.xyz" "-I --select-all-molecules --unselect-molecule-by-id 5 --undo --redo -s id5_missing.xyz"
-mv id5_missing.xyz id5_missing_b.xyz
-AT_CHECK([diff -I '.*Created by molecuilder.*' id5_missing_a.xyz id5_missing_b.xyz], 0, [ignore], [ignore])
+check_command_output $srcpath $srcfile "id4_missing.xyz" "-I --select-all-molecules --unselect-molecule-by-id 4 -s id4_missing.xyz"
+mv id4_missing.xyz id4_missing_a.xyz
+check_command_output $srcpath $srcfile "box.xyz" "-I --select-all-molecules --unselect-molecule-by-id 4 --undo -s box.xyz"
+check_command_output $srcpath $srcfile "id4_missing.xyz" "-I --select-all-molecules --unselect-molecule-by-id 4 --undo --redo -s id4_missing.xyz"
+mv id4_missing.xyz id4_missing_b.xyz
+AT_CHECK([diff -I '.*Created by molecuilder.*' id4_missing_a.xyz id4_missing_b.xyz], 0, [ignore], [ignore])
 AT_CLEANUP
Index: tests/regression/Selection/Molecules/MoleculeByName/testsuite-selection-molecules-by-name.at
===================================================================
--- tests/regression/Selection/Molecules/MoleculeByName/testsuite-selection-molecules-by-name.at	(revision 1a4d4fe643276ccfaf48040266dbe8e6b192ced2)
+++ tests/regression/Selection/Molecules/MoleculeByName/testsuite-selection-molecules-by-name.at	(revision 49c059c36d49bc80016beb5b2ba5a56947f5f28c)
@@ -8,8 +8,8 @@
 m4_include(CheckCommand.sh)
 # the tests
-check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecule-by-id 1 --select-molecules-by-name water -s water.xyz"
+check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecule-by-id 0 --select-molecules-by-name water -s water.xyz"
 mv water.xyz water_a.xyz
-check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecule-by-id 1 --select-molecules-by-name water --undo -s empty.xyz"
-check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecule-by-id 1 --select-molecules-by-name water --undo --redo -s water.xyz"
+check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecule-by-id 0 --select-molecules-by-name water --undo -s empty.xyz"
+check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecule-by-id 0 --select-molecules-by-name water --undo --redo -s water.xyz"
 mv water.xyz water_b.xyz
 AT_CHECK([diff -I '.*Created by molecuilder.*' water_a.xyz water_b.xyz], 0, [ignore], [ignore])
@@ -23,8 +23,8 @@
 m4_include(CheckCommand.sh)
 # the tests
-check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecules-by-name water -s empty.xyz"
+check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecules-by-name water -s empty.xyz"
 mv empty.xyz empty_a.xyz
-check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecules-by-name water --undo -s water.xyz"
-check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 1 --change-molname \"water\" --unselect-molecules-by-name water --undo --redo -s empty.xyz"
+check_command_output $srcpath $srcfile "water.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecules-by-name water --undo -s water.xyz"
+check_command_output $srcpath $srcfile "empty.xyz" "-I --select-molecule-by-id 0 --change-molname \"water\" --unselect-molecules-by-name water --undo --redo -s empty.xyz"
 mv empty.xyz empty_b.xyz
 AT_CHECK([diff -I '.*Created by molecuilder.*' empty_a.xyz empty_b.xyz], 0, [ignore], [ignore])
