]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Added test for error estimator
authorLuca Heltai <luca.heltai@sissa.it>
Tue, 12 Apr 2011 17:53:35 +0000 (17:53 +0000)
committerLuca Heltai <luca.heltai@sissa.it>
Tue, 12 Apr 2011 17:53:35 +0000 (17:53 +0000)
git-svn-id: https://svn.dealii.org/trunk@23578 0785d39b-7218-0410-832d-ea1e28bc413d

tests/codim_one/error_estimator_01.cc [new file with mode: 0644]
tests/codim_one/error_estimator_01/cmp/generic [new file with mode: 0644]

diff --git a/tests/codim_one/error_estimator_01.cc b/tests/codim_one/error_estimator_01.cc
new file mode 100644 (file)
index 0000000..b4a1b07
--- /dev/null
@@ -0,0 +1,211 @@
+//----------------------------  error_estimator_01.cc  ---------------------------
+//    $Id$
+//    Version: $Name$ 
+//
+//    Copyright (C) 2004, 2007, 2010, 2011 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//----------------------------  error_estimator_01.cc  ---------------------------
+
+// check that the kelly error estimator returns the same result whether we
+// compute all indicators at once, or on different subdomains separately
+
+
+
+#include "../tests.h"
+#include <base/logstream.h>
+#include <base/function_lib.h>
+#include <base/quadrature_lib.h>
+#include <lac/vector.h>
+#include <grid/tria.h>
+#include <grid/tria_iterator.h>
+#include <grid/tria_accessor.h>
+#include <grid/grid_generator.h>
+#include <dofs/dof_handler.h>
+#include <fe/fe_q.h>
+#include <fe/mapping_q.h>
+#include <numerics/vectors.h>
+#include <numerics/error_estimator.h>
+
+#include <fstream>
+
+
+template<int dim>
+class MySquareFunction : public Function<dim>
+{
+  public:
+    MySquareFunction () : Function<dim>(2) {}
+    
+    virtual double value (const Point<dim>   &p,
+                         const unsigned int  component) const
+      {        return (component+1)*p.square(); }
+    
+    virtual void   vector_value (const Point<dim>   &p,
+                                Vector<double>     &values) const
+      { values(0) = value(p,0);
+       values(1) = value(p,1); }
+};
+
+
+
+template <int dim>
+Quadrature<dim-1> &
+get_q_face ()
+{
+  static QGauss<dim-1> q(4);
+  return q;
+}
+
+template<>
+Quadrature<0> &
+get_q_face <1>()
+{
+  Quadrature<0> *q = 0;
+  return *q;
+}
+
+template <int dim, int spacedim>
+void make_mesh (Triangulation<dim,spacedim> &tria)
+{
+  
+  GridGenerator::hyper_cube(tria, -1, 1);
+
+                                   // refine the mesh in a random way so as to
+                                   // generate as many cells with
+                                   // hanging nodes as possible
+  tria.refine_global (4-dim);
+  const double steps[4] = { /*d=0*/ 0, 7, 3, 3 };
+  for (unsigned int i=0; i<steps[dim]; ++i)
+    {
+      typename Triangulation<dim,spacedim>::active_cell_iterator
+        cell = tria.begin_active();
+      for (unsigned int index=0; cell != tria.end(); ++cell, ++index)
+        if (index % (3*dim) == 0)
+          cell->set_refine_flag();
+      tria.execute_coarsening_and_refinement ();
+    }
+
+                                  // we now have a number of cells,
+                                  // flag them with some subdomain
+                                  // ids based on their position, in
+                                  // particular we take the quadrant
+                                  // (octant)
+  typename Triangulation<dim,spacedim>::active_cell_iterator
+    cell = tria.begin_active (),
+    endc = tria.end ();
+  for (; cell!=endc; ++cell)
+    {
+      unsigned int subdomain = 0;
+      for (unsigned int d=0; d<dim; ++d)
+       if (cell->center()(d) > 0)
+         subdomain |= (1<<d);
+      Assert (subdomain < (1<<dim), ExcInternalError());
+
+      cell->set_subdomain_id (subdomain);
+    }
+}
+
+
+
+
+template <int dim, int spacedim>
+void
+check ()
+{
+  Functions::CosineFunction<spacedim> function;
+  
+  Triangulation<dim,spacedim> tria;
+  make_mesh (tria);
+  
+  FE_Q<dim,spacedim> element(3);
+  DoFHandler<dim,spacedim> dof(tria);
+  dof.distribute_dofs(element);
+
+  MappingQ<dim,spacedim> mapping(3);
+  Quadrature<dim-1> &q_face = get_q_face<dim>();
+
+  std::map<unsigned char,const Function<spacedim>*> neumann_bc;
+  neumann_bc[0] = &function;
+  
+  Vector<double> v (dof.n_dofs());
+  VectorTools::interpolate (mapping, dof, function, v);
+
+  Vector<float> error1 (tria.n_active_cells());
+  Vector<float> error2 (tria.n_active_cells());
+
+                                   // compute error by looking at all cells at
+                                   // once and output this as the base line
+                                   // results. scale results so that they show
+                                   // up in the output file as a reasonable
+                                   // number
+  KellyErrorEstimator<dim,spacedim>::estimate (mapping, dof, q_face, neumann_bc,
+                                              v, error1);
+  const double scaling_factor = 10000.*error1.size()/error1.l1_norm();
+  error1 *= scaling_factor;
+    
+  deallog << "Estimated error indicators:" << std::endl;
+  for (unsigned int i=0; i<error1.size(); ++i)
+    deallog << error1(i) << std::endl;
+
+                                   // then do the same with different
+                                   // subdomain ids and add up the result
+  for (unsigned int subdomain=0; subdomain<(1<<spacedim); ++subdomain)
+    {
+      deallog << "Subdomain id=" << subdomain << std::endl;
+        
+      Vector<float> this_error (tria.n_active_cells());
+      KellyErrorEstimator<dim,spacedim>::estimate (mapping, dof, q_face, neumann_bc,
+                                                  v, this_error,
+                                                  std::vector<bool>(), 0,
+                                                  multithread_info.n_default_threads,
+                                                  subdomain);
+      this_error *= scaling_factor;
+
+                                       // copy the result into error2. since
+                                       // every invokation of the kelly
+                                       // estimator should only operate on
+                                       // the cells of one subdomain,
+                                       // whenever there is something in
+                                       // this_error, the corresponding
+                                       // entry in error2 should still be
+                                       // empty
+      for (unsigned int i=0; i<this_error.size(); ++i)
+        {
+          deallog << i << ' ' << this_error(i) << std::endl;
+            
+          Assert ((this_error(i)==0) || (error2(i)==0),
+                  ExcInternalError());
+          if (this_error(i) != 0)
+            error2(i) = this_error(i);
+        }
+    }
+
+//                                   now compare the results of the two
+//                                   computations
+   Assert (error1 == error2, ExcInternalError());
+
+  deallog << "OK" << std::endl;
+}
+
+
+int main ()
+{
+  std::ofstream logfile ("error_estimator_01/output");
+  deallog << std::setprecision (2);
+  deallog << std::fixed;  
+  deallog.attach(logfile);
+  deallog.depth_console (0);
+  
+  deallog.push ("1d");
+  check<1,2> ();
+  deallog.pop();
+  deallog.push ("2d");
+  check<2,3> ();
+  deallog.pop();
+
+  deallog.pop ();
+}
diff --git a/tests/codim_one/error_estimator_01/cmp/generic b/tests/codim_one/error_estimator_01/cmp/generic
new file mode 100644 (file)
index 0000000..58c7714
--- /dev/null
@@ -0,0 +1,1237 @@
+
+DEAL:1d::Estimated error indicators:
+DEAL:1d::55.21
+DEAL:1d::67.65
+DEAL:1d::6.61
+DEAL:1d::0.89
+DEAL:1d::9.34
+DEAL:1d::6.64
+DEAL:1d::9.24
+DEAL:1d::36.89
+DEAL:1d::9.28
+DEAL:1d::29.81
+DEAL:1d::1.81
+DEAL:1d::472601.03
+DEAL:1d::4.28
+DEAL:1d::4.61
+DEAL:1d::2.81
+DEAL:1d::2.89
+DEAL:1d::0.43
+DEAL:1d::2.19
+DEAL:1d::0.74
+DEAL:1d::3.29
+DEAL:1d::0.29
+DEAL:1d::0.69
+DEAL:1d::0.68
+DEAL:1d::18.06
+DEAL:1d::0.90
+DEAL:1d::0.87
+DEAL:1d::1.79
+DEAL:1d::0.64
+DEAL:1d::0.97
+DEAL:1d::3.25
+DEAL:1d::2.93
+DEAL:1d::0.95
+DEAL:1d::0.02
+DEAL:1d::0.88
+DEAL:1d::0.03
+DEAL:1d::0.73
+DEAL:1d::0.02
+DEAL:1d::0.14
+DEAL:1d::15.77
+DEAL:1d::0.27
+DEAL:1d::2.10
+DEAL:1d::0.02
+DEAL:1d::0.02
+DEAL:1d::0.18
+DEAL:1d::0.05
+DEAL:1d::0.05
+DEAL:1d::0.15
+DEAL:1d::0.24
+DEAL:1d::1.57
+DEAL:1d::0.01
+DEAL:1d::0.00
+DEAL:1d::0.01
+DEAL:1d::0.01
+DEAL:1d::0.01
+DEAL:1d::167089.64
+DEAL:1d::0.00
+DEAL:1d::0.23
+DEAL:1d::0.01
+DEAL:1d::0.01
+DEAL:1d::0.01
+DEAL:1d::0.19
+DEAL:1d::0.03
+DEAL:1d::0.00
+DEAL:1d::0.01
+DEAL:1d::Subdomain id=0
+DEAL:1d::0 55.21
+DEAL:1d::1 0.00
+DEAL:1d::2 0.00
+DEAL:1d::3 0.89
+DEAL:1d::4 9.34
+DEAL:1d::5 0.00
+DEAL:1d::6 0.00
+DEAL:1d::7 0.00
+DEAL:1d::8 9.28
+DEAL:1d::9 29.81
+DEAL:1d::10 0.00
+DEAL:1d::11 0.00
+DEAL:1d::12 4.28
+DEAL:1d::13 4.61
+DEAL:1d::14 0.00
+DEAL:1d::15 0.00
+DEAL:1d::16 0.43
+DEAL:1d::17 0.00
+DEAL:1d::18 0.00
+DEAL:1d::19 3.29
+DEAL:1d::20 0.00
+DEAL:1d::21 0.00
+DEAL:1d::22 0.68
+DEAL:1d::23 18.06
+DEAL:1d::24 0.00
+DEAL:1d::25 0.00
+DEAL:1d::26 1.79
+DEAL:1d::27 0.64
+DEAL:1d::28 0.97
+DEAL:1d::29 3.25
+DEAL:1d::30 2.93
+DEAL:1d::31 0.95
+DEAL:1d::32 0.02
+DEAL:1d::33 0.88
+DEAL:1d::34 0.00
+DEAL:1d::35 0.00
+DEAL:1d::36 0.02
+DEAL:1d::37 0.00
+DEAL:1d::38 0.00
+DEAL:1d::39 0.00
+DEAL:1d::40 2.10
+DEAL:1d::41 0.02
+DEAL:1d::42 0.02
+DEAL:1d::43 0.00
+DEAL:1d::44 0.00
+DEAL:1d::45 0.00
+DEAL:1d::46 0.00
+DEAL:1d::47 0.00
+DEAL:1d::48 0.00
+DEAL:1d::49 0.01
+DEAL:1d::50 0.00
+DEAL:1d::51 0.01
+DEAL:1d::52 0.01
+DEAL:1d::53 0.01
+DEAL:1d::54 167089.64
+DEAL:1d::55 0.00
+DEAL:1d::56 0.23
+DEAL:1d::57 0.01
+DEAL:1d::58 0.00
+DEAL:1d::59 0.00
+DEAL:1d::60 0.19
+DEAL:1d::61 0.03
+DEAL:1d::62 0.00
+DEAL:1d::63 0.01
+DEAL:1d::Subdomain id=1
+DEAL:1d::0 0.00
+DEAL:1d::1 67.65
+DEAL:1d::2 6.61
+DEAL:1d::3 0.00
+DEAL:1d::4 0.00
+DEAL:1d::5 6.64
+DEAL:1d::6 9.24
+DEAL:1d::7 36.89
+DEAL:1d::8 0.00
+DEAL:1d::9 0.00
+DEAL:1d::10 1.81
+DEAL:1d::11 472601.03
+DEAL:1d::12 0.00
+DEAL:1d::13 0.00
+DEAL:1d::14 2.81
+DEAL:1d::15 2.89
+DEAL:1d::16 0.00
+DEAL:1d::17 2.19
+DEAL:1d::18 0.74
+DEAL:1d::19 0.00
+DEAL:1d::20 0.29
+DEAL:1d::21 0.69
+DEAL:1d::22 0.00
+DEAL:1d::23 0.00
+DEAL:1d::24 0.90
+DEAL:1d::25 0.87
+DEAL:1d::26 0.00
+DEAL:1d::27 0.00
+DEAL:1d::28 0.00
+DEAL:1d::29 0.00
+DEAL:1d::30 0.00
+DEAL:1d::31 0.00
+DEAL:1d::32 0.00
+DEAL:1d::33 0.00
+DEAL:1d::34 0.03
+DEAL:1d::35 0.73
+DEAL:1d::36 0.00
+DEAL:1d::37 0.14
+DEAL:1d::38 15.77
+DEAL:1d::39 0.27
+DEAL:1d::40 0.00
+DEAL:1d::41 0.00
+DEAL:1d::42 0.00
+DEAL:1d::43 0.18
+DEAL:1d::44 0.05
+DEAL:1d::45 0.05
+DEAL:1d::46 0.15
+DEAL:1d::47 0.24
+DEAL:1d::48 1.57
+DEAL:1d::49 0.00
+DEAL:1d::50 0.00
+DEAL:1d::51 0.00
+DEAL:1d::52 0.00
+DEAL:1d::53 0.00
+DEAL:1d::54 0.00
+DEAL:1d::55 0.00
+DEAL:1d::56 0.00
+DEAL:1d::57 0.00
+DEAL:1d::58 0.01
+DEAL:1d::59 0.01
+DEAL:1d::60 0.00
+DEAL:1d::61 0.00
+DEAL:1d::62 0.00
+DEAL:1d::63 0.00
+DEAL:1d::Subdomain id=2
+DEAL:1d::0 0.00
+DEAL:1d::1 0.00
+DEAL:1d::2 0.00
+DEAL:1d::3 0.00
+DEAL:1d::4 0.00
+DEAL:1d::5 0.00
+DEAL:1d::6 0.00
+DEAL:1d::7 0.00
+DEAL:1d::8 0.00
+DEAL:1d::9 0.00
+DEAL:1d::10 0.00
+DEAL:1d::11 0.00
+DEAL:1d::12 0.00
+DEAL:1d::13 0.00
+DEAL:1d::14 0.00
+DEAL:1d::15 0.00
+DEAL:1d::16 0.00
+DEAL:1d::17 0.00
+DEAL:1d::18 0.00
+DEAL:1d::19 0.00
+DEAL:1d::20 0.00
+DEAL:1d::21 0.00
+DEAL:1d::22 0.00
+DEAL:1d::23 0.00
+DEAL:1d::24 0.00
+DEAL:1d::25 0.00
+DEAL:1d::26 0.00
+DEAL:1d::27 0.00
+DEAL:1d::28 0.00
+DEAL:1d::29 0.00
+DEAL:1d::30 0.00
+DEAL:1d::31 0.00
+DEAL:1d::32 0.00
+DEAL:1d::33 0.00
+DEAL:1d::34 0.00
+DEAL:1d::35 0.00
+DEAL:1d::36 0.00
+DEAL:1d::37 0.00
+DEAL:1d::38 0.00
+DEAL:1d::39 0.00
+DEAL:1d::40 0.00
+DEAL:1d::41 0.00
+DEAL:1d::42 0.00
+DEAL:1d::43 0.00
+DEAL:1d::44 0.00
+DEAL:1d::45 0.00
+DEAL:1d::46 0.00
+DEAL:1d::47 0.00
+DEAL:1d::48 0.00
+DEAL:1d::49 0.00
+DEAL:1d::50 0.00
+DEAL:1d::51 0.00
+DEAL:1d::52 0.00
+DEAL:1d::53 0.00
+DEAL:1d::54 0.00
+DEAL:1d::55 0.00
+DEAL:1d::56 0.00
+DEAL:1d::57 0.00
+DEAL:1d::58 0.00
+DEAL:1d::59 0.00
+DEAL:1d::60 0.00
+DEAL:1d::61 0.00
+DEAL:1d::62 0.00
+DEAL:1d::63 0.00
+DEAL:1d::Subdomain id=3
+DEAL:1d::0 0.00
+DEAL:1d::1 0.00
+DEAL:1d::2 0.00
+DEAL:1d::3 0.00
+DEAL:1d::4 0.00
+DEAL:1d::5 0.00
+DEAL:1d::6 0.00
+DEAL:1d::7 0.00
+DEAL:1d::8 0.00
+DEAL:1d::9 0.00
+DEAL:1d::10 0.00
+DEAL:1d::11 0.00
+DEAL:1d::12 0.00
+DEAL:1d::13 0.00
+DEAL:1d::14 0.00
+DEAL:1d::15 0.00
+DEAL:1d::16 0.00
+DEAL:1d::17 0.00
+DEAL:1d::18 0.00
+DEAL:1d::19 0.00
+DEAL:1d::20 0.00
+DEAL:1d::21 0.00
+DEAL:1d::22 0.00
+DEAL:1d::23 0.00
+DEAL:1d::24 0.00
+DEAL:1d::25 0.00
+DEAL:1d::26 0.00
+DEAL:1d::27 0.00
+DEAL:1d::28 0.00
+DEAL:1d::29 0.00
+DEAL:1d::30 0.00
+DEAL:1d::31 0.00
+DEAL:1d::32 0.00
+DEAL:1d::33 0.00
+DEAL:1d::34 0.00
+DEAL:1d::35 0.00
+DEAL:1d::36 0.00
+DEAL:1d::37 0.00
+DEAL:1d::38 0.00
+DEAL:1d::39 0.00
+DEAL:1d::40 0.00
+DEAL:1d::41 0.00
+DEAL:1d::42 0.00
+DEAL:1d::43 0.00
+DEAL:1d::44 0.00
+DEAL:1d::45 0.00
+DEAL:1d::46 0.00
+DEAL:1d::47 0.00
+DEAL:1d::48 0.00
+DEAL:1d::49 0.00
+DEAL:1d::50 0.00
+DEAL:1d::51 0.00
+DEAL:1d::52 0.00
+DEAL:1d::53 0.00
+DEAL:1d::54 0.00
+DEAL:1d::55 0.00
+DEAL:1d::56 0.00
+DEAL:1d::57 0.00
+DEAL:1d::58 0.00
+DEAL:1d::59 0.00
+DEAL:1d::60 0.00
+DEAL:1d::61 0.00
+DEAL:1d::62 0.00
+DEAL:1d::63 0.00
+DEAL:1d::OK
+DEAL:2d::Estimated error indicators:
+DEAL:2d::28892.79
+DEAL:2d::28892.79
+DEAL:2d::28.96
+DEAL:2d::81.16
+DEAL:2d::95.16
+DEAL:2d::81.55
+DEAL:2d::42751.58
+DEAL:2d::50297.00
+DEAL:2d::55.64
+DEAL:2d::50297.00
+DEAL:2d::42751.58
+DEAL:2d::62.36
+DEAL:2d::42.12
+DEAL:2d::42751.58
+DEAL:2d::40.51
+DEAL:2d::50297.00
+DEAL:2d::50297.00
+DEAL:2d::62.36
+DEAL:2d::50.43
+DEAL:2d::49.34
+DEAL:2d::50297.00
+DEAL:2d::42.12
+DEAL:2d::42751.58
+DEAL:2d::31.06
+DEAL:2d::50296.99
+DEAL:2d::42751.58
+DEAL:2d::34.50
+DEAL:2d::28892.79
+DEAL:2d::16291.30
+DEAL:2d::42751.58
+DEAL:2d::53.15
+DEAL:2d::50297.00
+DEAL:2d::62.36
+DEAL:2d::71.02
+DEAL:2d::91.23
+DEAL:2d::91.23
+DEAL:2d::107.05
+DEAL:2d::28892.79
+DEAL:2d::16291.30
+DEAL:2d::28.96
+DEAL:2d::28892.79
+DEAL:2d::91.23
+DEAL:2d::107.05
+DEAL:2d::77.76
+DEAL:2d::79.17
+DEAL:2d::28892.78
+DEAL:2d::36.32
+DEAL:2d::16291.30
+DEAL:2d::28892.79
+DEAL:2d::53.15
+DEAL:2d::54.31
+DEAL:2d::42751.58
+DEAL:2d::50296.99
+DEAL:2d::7.64
+DEAL:2d::4.24
+DEAL:2d::7.30
+DEAL:2d::2.45
+DEAL:2d::4.66
+DEAL:2d::4.66
+DEAL:2d::5.60
+DEAL:2d::2059.95
+DEAL:2d::3803.08
+DEAL:2d::3803.08
+DEAL:2d::1.71
+DEAL:2d::7.92
+DEAL:2d::5.24
+DEAL:2d::8.24
+DEAL:2d::5.45
+DEAL:2d::8.24
+DEAL:2d::5.45
+DEAL:2d::7.80
+DEAL:2d::5.24
+DEAL:2d::10.74
+DEAL:2d::7.80
+DEAL:2d::6.65
+DEAL:2d::2.66
+DEAL:2d::3.00
+DEAL:2d::4.28
+DEAL:2d::6.01
+DEAL:2d::7.67
+DEAL:2d::3.48
+DEAL:2d::3.00
+DEAL:2d::5.27
+DEAL:2d::4.28
+DEAL:2d::11362.63
+DEAL:2d::4.32
+DEAL:2d::9965.63
+DEAL:2d::3.51
+DEAL:2d::5.46
+DEAL:2d::4.84
+DEAL:2d::4.51
+DEAL:2d::4.06
+DEAL:2d::3.24
+DEAL:2d::2.06
+DEAL:2d::8189.22
+DEAL:2d::6104.74
+DEAL:2d::0.31
+DEAL:2d::0.28
+DEAL:2d::0.28
+DEAL:2d::0.25
+DEAL:2d::Subdomain id=0
+DEAL:2d::0 28892.79
+DEAL:2d::1 28892.79
+DEAL:2d::2 28.96
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 42751.58
+DEAL:2d::7 50297.00
+DEAL:2d::8 55.64
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 42751.58
+DEAL:2d::30 53.15
+DEAL:2d::31 50297.00
+DEAL:2d::32 62.36
+DEAL:2d::33 71.02
+DEAL:2d::34 91.23
+DEAL:2d::35 91.23
+DEAL:2d::36 107.05
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 2059.95
+DEAL:2d::61 3803.08
+DEAL:2d::62 3803.08
+DEAL:2d::63 1.71
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 3.00
+DEAL:2d::77 4.28
+DEAL:2d::78 6.01
+DEAL:2d::79 7.67
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=1
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 81.16
+DEAL:2d::4 95.16
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 50297.00
+DEAL:2d::10 42751.58
+DEAL:2d::11 62.36
+DEAL:2d::12 42.12
+DEAL:2d::13 42751.58
+DEAL:2d::14 40.51
+DEAL:2d::15 50297.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 28892.79
+DEAL:2d::38 16291.30
+DEAL:2d::39 28.96
+DEAL:2d::40 28892.79
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 7.64
+DEAL:2d::54 4.24
+DEAL:2d::55 7.30
+DEAL:2d::56 2.45
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 7.92
+DEAL:2d::65 5.24
+DEAL:2d::66 8.24
+DEAL:2d::67 5.45
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 3.48
+DEAL:2d::81 3.00
+DEAL:2d::82 5.27
+DEAL:2d::83 4.28
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=2
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 50297.00
+DEAL:2d::17 62.36
+DEAL:2d::18 50.43
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 91.23
+DEAL:2d::42 107.05
+DEAL:2d::43 77.76
+DEAL:2d::44 79.17
+DEAL:2d::45 28892.78
+DEAL:2d::46 36.32
+DEAL:2d::47 16291.30
+DEAL:2d::48 28892.79
+DEAL:2d::49 53.15
+DEAL:2d::50 54.31
+DEAL:2d::51 42751.58
+DEAL:2d::52 50296.99
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 11362.63
+DEAL:2d::85 4.32
+DEAL:2d::86 9965.63
+DEAL:2d::87 3.51
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=3
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 81.55
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 49.34
+DEAL:2d::20 50297.00
+DEAL:2d::21 42.12
+DEAL:2d::22 42751.58
+DEAL:2d::23 31.06
+DEAL:2d::24 50296.99
+DEAL:2d::25 42751.58
+DEAL:2d::26 34.50
+DEAL:2d::27 28892.79
+DEAL:2d::28 16291.30
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 4.66
+DEAL:2d::58 4.66
+DEAL:2d::59 5.60
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 8.24
+DEAL:2d::69 5.45
+DEAL:2d::70 7.80
+DEAL:2d::71 5.24
+DEAL:2d::72 10.74
+DEAL:2d::73 7.80
+DEAL:2d::74 6.65
+DEAL:2d::75 2.66
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 5.46
+DEAL:2d::89 4.84
+DEAL:2d::90 4.51
+DEAL:2d::91 4.06
+DEAL:2d::92 3.24
+DEAL:2d::93 2.06
+DEAL:2d::94 8189.22
+DEAL:2d::95 6104.74
+DEAL:2d::96 0.31
+DEAL:2d::97 0.28
+DEAL:2d::98 0.28
+DEAL:2d::99 0.25
+DEAL:2d::Subdomain id=4
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=5
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=6
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::Subdomain id=7
+DEAL:2d::0 0.00
+DEAL:2d::1 0.00
+DEAL:2d::2 0.00
+DEAL:2d::3 0.00
+DEAL:2d::4 0.00
+DEAL:2d::5 0.00
+DEAL:2d::6 0.00
+DEAL:2d::7 0.00
+DEAL:2d::8 0.00
+DEAL:2d::9 0.00
+DEAL:2d::10 0.00
+DEAL:2d::11 0.00
+DEAL:2d::12 0.00
+DEAL:2d::13 0.00
+DEAL:2d::14 0.00
+DEAL:2d::15 0.00
+DEAL:2d::16 0.00
+DEAL:2d::17 0.00
+DEAL:2d::18 0.00
+DEAL:2d::19 0.00
+DEAL:2d::20 0.00
+DEAL:2d::21 0.00
+DEAL:2d::22 0.00
+DEAL:2d::23 0.00
+DEAL:2d::24 0.00
+DEAL:2d::25 0.00
+DEAL:2d::26 0.00
+DEAL:2d::27 0.00
+DEAL:2d::28 0.00
+DEAL:2d::29 0.00
+DEAL:2d::30 0.00
+DEAL:2d::31 0.00
+DEAL:2d::32 0.00
+DEAL:2d::33 0.00
+DEAL:2d::34 0.00
+DEAL:2d::35 0.00
+DEAL:2d::36 0.00
+DEAL:2d::37 0.00
+DEAL:2d::38 0.00
+DEAL:2d::39 0.00
+DEAL:2d::40 0.00
+DEAL:2d::41 0.00
+DEAL:2d::42 0.00
+DEAL:2d::43 0.00
+DEAL:2d::44 0.00
+DEAL:2d::45 0.00
+DEAL:2d::46 0.00
+DEAL:2d::47 0.00
+DEAL:2d::48 0.00
+DEAL:2d::49 0.00
+DEAL:2d::50 0.00
+DEAL:2d::51 0.00
+DEAL:2d::52 0.00
+DEAL:2d::53 0.00
+DEAL:2d::54 0.00
+DEAL:2d::55 0.00
+DEAL:2d::56 0.00
+DEAL:2d::57 0.00
+DEAL:2d::58 0.00
+DEAL:2d::59 0.00
+DEAL:2d::60 0.00
+DEAL:2d::61 0.00
+DEAL:2d::62 0.00
+DEAL:2d::63 0.00
+DEAL:2d::64 0.00
+DEAL:2d::65 0.00
+DEAL:2d::66 0.00
+DEAL:2d::67 0.00
+DEAL:2d::68 0.00
+DEAL:2d::69 0.00
+DEAL:2d::70 0.00
+DEAL:2d::71 0.00
+DEAL:2d::72 0.00
+DEAL:2d::73 0.00
+DEAL:2d::74 0.00
+DEAL:2d::75 0.00
+DEAL:2d::76 0.00
+DEAL:2d::77 0.00
+DEAL:2d::78 0.00
+DEAL:2d::79 0.00
+DEAL:2d::80 0.00
+DEAL:2d::81 0.00
+DEAL:2d::82 0.00
+DEAL:2d::83 0.00
+DEAL:2d::84 0.00
+DEAL:2d::85 0.00
+DEAL:2d::86 0.00
+DEAL:2d::87 0.00
+DEAL:2d::88 0.00
+DEAL:2d::89 0.00
+DEAL:2d::90 0.00
+DEAL:2d::91 0.00
+DEAL:2d::92 0.00
+DEAL:2d::93 0.00
+DEAL:2d::94 0.00
+DEAL:2d::95 0.00
+DEAL:2d::96 0.00
+DEAL:2d::97 0.00
+DEAL:2d::98 0.00
+DEAL:2d::99 0.00
+DEAL:2d::OK

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.