From: Luca Heltai Date: Wed, 6 Aug 2014 12:56:16 +0000 (+0200) Subject: Added cylindrical Manifold and two tests. X-Git-Tag: v8.2.0-rc1~225^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27085f9fe50ec3c7870c0a0fcf75e48735da2077;p=dealii.git Added cylindrical Manifold and two tests. --- diff --git a/doc/news/changes.h b/doc/news/changes.h index 0e92c848cb..d24f09c434 100644 --- a/doc/news/changes.h +++ b/doc/news/changes.h @@ -98,6 +98,15 @@ inconvenience this causes.
    +
  1. New: Added CylindricalManifold descritpion. +
    + This class allows refinement of cylindrical manifolds. It is a good + companion for GridGenerator::cylinder() and the perfect companion + for GridGenerator::cylinder_shell(). +
    + (Luca Heltai, 2014/08/06) +
  2. +
  3. New: Added support for curved interior cells for all Triangulation dimensions.
    diff --git a/include/deal.II/grid/manifold.h b/include/deal.II/grid/manifold.h index 3a8f51d855..b63c4aa981 100644 --- a/include/deal.II/grid/manifold.h +++ b/include/deal.II/grid/manifold.h @@ -298,8 +298,8 @@ public: * to refine, the middle point is not too far from the manifold mid * point, i.e., as long as the coarse mesh size is small enough. */ - virtual Point - get_new_point(const Quadrature &quad) const; + virtual Point + get_new_point(const Quadrature &quad) const; /** @@ -312,6 +312,12 @@ public: virtual Point project_to_manifold (const std::vector > &points, const Point &candidate) const; +protected: + /** + * Tolerance. This tolerance is used to compute distances in double + * precision. Anything below this tolerance is considered zero. + */ + const double tolerance; private: /** @@ -330,12 +336,6 @@ private: */ const Point periodicity; - /** - * Tolerance. This tolerance is used to compute distances in double - * precision. Anything below this tolerance is considered zero. - */ - const double tolerance; - DeclException4(ExcPeriodicBox, int, Point, Point, double, << "The component number " << arg1 << " of the point [ " << arg2 << " ] is not in the interval [ " << -arg4 diff --git a/include/deal.II/grid/manifold_lib.h b/include/deal.II/grid/manifold_lib.h index 654c99ae05..8397511a05 100644 --- a/include/deal.II/grid/manifold_lib.h +++ b/include/deal.II/grid/manifold_lib.h @@ -106,6 +106,72 @@ private: }; +/** + * Cylindrical Manifold description. In three dimensions, points are + * transformed using a cylindrical coordinate system along the + * x-, y- or z-axis (when using the first + * constructor of this class), or an arbitrarily oriented cylinder + * described by the direction of its axis and a point located on the + * axis. + * + * This class was developed to be used in conjunction with the @p + * cylinder or @p cylinder_shell functions of GridGenerator. This + * function will throw an exception whenever spacedim is not equal to + * three. + * + * @ingroup manifold + * + * @author Luca Heltai, 2014 + */ +template +class CylindricalManifold : public FlatManifold +{ +public: + /** + * Constructor. Using default values for the constructor arguments + * yields a cylinder along the x-axis (axis=0). Choose + * axis=1 or axis=2 for a tube along the y- or + * z-axis, respectively. + */ + CylindricalManifold (const unsigned int axis = 0); + + /** + * Constructor. If constructed with this constructor, the manifold + * described is a cylinder with an axis that points in direction + * #direction and goes through the given #point_on_axis. The + * direction may be arbitrarily scaled, and the given point may be + * any point on the axis. + */ + CylindricalManifold (const Point &direction, + const Point &point_on_axis); + + /** + * Compute new points on the CylindricalManifold. See the documentation + * of the base class for a detailed description of what this + * function does. + */ + virtual Point + get_new_point(const Quadrature &quad) const; + +protected: + /** + * The direction vector of the axis. + */ + const Point direction; + + /** + * An arbitrary point on the axis. + */ + const Point point_on_axis; + +private: + /** + * Given a number for the axis, return a vector that denotes this + * direction. + */ + static Point get_axis_vector (const unsigned int axis); +}; + DEAL_II_NAMESPACE_CLOSE #endif diff --git a/source/grid/CMakeLists.txt b/source/grid/CMakeLists.txt index 18e30fe8c7..fff6739c6d 100644 --- a/source/grid/CMakeLists.txt +++ b/source/grid/CMakeLists.txt @@ -44,6 +44,7 @@ SET(_inst grid_tools.inst.in intergrid_map.inst.in manifold.inst.in + manifold_lib.inst.in tria_accessor.inst.in tria_boundary.inst.in tria_boundary_lib.inst.in diff --git a/source/grid/manifold.cc b/source/grid/manifold.cc index 6707cb27ef..b16ab5765f 100644 --- a/source/grid/manifold.cc +++ b/source/grid/manifold.cc @@ -259,8 +259,8 @@ get_new_point_on_hex (const typename Triangulation<3, 3>::hex_iterator &hex) con template FlatManifold::FlatManifold (const Point periodicity, const double tolerance) : - periodicity(periodicity), - tolerance(tolerance) + tolerance(tolerance), + periodicity(periodicity) {} template diff --git a/source/grid/manifold_lib.cc b/source/grid/manifold_lib.cc index 5f0483eee6..efc765ff17 100644 --- a/source/grid/manifold_lib.cc +++ b/source/grid/manifold_lib.cc @@ -125,11 +125,84 @@ SphericalManifold::pull_back(const Point &space_point) c } return p; } + + +// ============================================================ +// CylindricalManifold +// ============================================================ + + +template +Point +CylindricalManifold::get_axis_vector (const unsigned int axis) +{ + Assert (axis < spacedim, ExcIndexRange (axis, 0, spacedim)); + Point axis_vector; + axis_vector[axis] = 1; + return axis_vector; +} + + +template +CylindricalManifold::CylindricalManifold(const unsigned int axis) : + direction (get_axis_vector (axis)), + point_on_axis (Point()) +{ + Assert(spacedim > 1, ExcImpossibleInDim(1)); +} + + +template +CylindricalManifold::CylindricalManifold(const Point &direction, + const Point &point_on_axis) : + direction (direction), + point_on_axis (point_on_axis) +{ + Assert(spacedim > 2, ExcImpossibleInDim(spacedim)); +} + + + + +template +Point +CylindricalManifold:: +get_new_point (const Quadrature &quad) const +{ + const std::vector > &surrounding_points = quad.get_points(); + const std::vector &weights = quad.get_weights(); + + // compute a proposed new point + Point middle = FlatManifold::get_new_point(quad); + + double radius = 0; + Point on_plane; + + for(unsigned int i=0; i vector_from_axis = (middle-point_on_axis) - + ((middle-point_on_axis) * direction) * direction; + + // scale it to the desired length and put everything back together, + // unless we have a point on the axis + if (vector_from_axis.norm() <= this->tolerance * middle.norm()) + return middle; + + else + return (vector_from_axis / vector_from_axis.norm() * radius + + ((middle-point_on_axis) * direction) * direction + + point_on_axis); +} // explicit instantiations -template class SphericalManifold<1,2>; -template class SphericalManifold<2,2>; -template class SphericalManifold<2,3>; -template class SphericalManifold<3,3>; +#include "manifold_lib.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/manifold_lib.inst.in b/source/grid/manifold_lib.inst.in index 11bf4195a9..0d3616eb91 100644 --- a/source/grid/manifold_lib.inst.in +++ b/source/grid/manifold_lib.inst.in @@ -15,11 +15,14 @@ // --------------------------------------------------------------------- -for (deal_II_dimension : DIMENSIONS) +for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS) { - template class PolarManifold; - template class CylinderManifold; -// template class ConeBoundary; +#if deal_II_space_dimension > 1 && deal_II_dimension <= deal_II_space_dimension + template class SphericalManifold; +#endif +#if deal_II_dimension <= deal_II_space_dimension + template class CylindricalManifold; +#endif } diff --git a/tests/manifold/cylindrical_manifold_01.cc b/tests/manifold/cylindrical_manifold_01.cc new file mode 100644 index 0000000000..62387251e3 --- /dev/null +++ b/tests/manifold/cylindrical_manifold_01.cc @@ -0,0 +1,62 @@ +//---------------------------- cylindrical_manifold_01.cc --------------------------- +// Copyright (C) 2011, 2013 by the mathLab team. +// +// This file is subject to LGPL 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. +// +//---------------------------- cylindrical_manifold_01.cc --------------------------- + + +// Test cylindrical manifold on a cylinder + +#include "../tests.h" +#include +#include + + +// all include files you need here +#include +#include +#include +#include +#include +#include +#include + +// Helper function +template +void test(unsigned int ref=1) +{ + deallog << "Testing dim " << dim + << ", spacedim " << spacedim << std::endl; + + CylindricalManifold manifold; + + Triangulation tria; + GridGenerator::cylinder (tria); + + for(auto cell = tria.begin_active(); cell != tria.end(); ++cell) { + cell->set_all_manifold_ids(1); + } + + tria.set_manifold(1, manifold); + tria.refine_global(1); + + GridOut gridout; + gridout.write_msh(tria, deallog.get_file_stream()); +} + +int main () +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test<3,3>(); + + return 0; +} + diff --git a/tests/manifold/cylindrical_manifold_01.output b/tests/manifold/cylindrical_manifold_01.output new file mode 100644 index 0000000000..637a2feb5f --- /dev/null +++ b/tests/manifold/cylindrical_manifold_01.output @@ -0,0 +1,213 @@ + +DEAL::Testing dim 3, spacedim 3 +$NOD +125 +1 -1.00000 0.707107 -0.707107 +2 -1.00000 -0.707107 -0.707107 +3 -1.00000 0.292893 -0.292893 +4 -1.00000 -0.292893 -0.292893 +5 -1.00000 0.292893 0.292893 +6 -1.00000 -0.292893 0.292893 +7 -1.00000 0.707107 0.707107 +8 -1.00000 -0.707107 0.707107 +9 0.00000 0.707107 -0.707107 +10 0.00000 -0.707107 -0.707107 +11 0.00000 0.292893 -0.292893 +12 0.00000 -0.292893 -0.292893 +13 0.00000 0.292893 0.292893 +14 0.00000 -0.292893 0.292893 +15 0.00000 0.707107 0.707107 +16 0.00000 -0.707107 0.707107 +17 1.00000 0.707107 -0.707107 +18 1.00000 -0.707107 -0.707107 +19 1.00000 0.292893 -0.292893 +20 1.00000 -0.292893 -0.292893 +21 1.00000 0.292893 0.292893 +22 1.00000 -0.292893 0.292893 +23 1.00000 0.707107 0.707107 +24 1.00000 -0.707107 0.707107 +25 -1.00000 0.00000 -1.00000 +26 -1.00000 0.500000 -0.500000 +27 -1.00000 1.00000 0.00000 +28 -0.500000 0.707107 -0.707107 +29 -1.00000 -0.500000 -0.500000 +30 -1.00000 -1.00000 0.00000 +31 -0.500000 -0.707107 -0.707107 +32 -1.00000 0.00000 -0.414214 +33 -1.00000 0.414214 0.00000 +34 -0.500000 0.292893 -0.292893 +35 -1.00000 -0.414214 0.00000 +36 -0.500000 -0.292893 -0.292893 +37 -1.00000 0.00000 0.414214 +38 -0.500000 0.292893 0.292893 +39 -0.500000 -0.292893 0.292893 +40 -1.00000 0.500000 0.500000 +41 -1.00000 0.00000 1.00000 +42 -0.500000 0.707107 0.707107 +43 -1.00000 -0.500000 0.500000 +44 -0.500000 -0.707107 0.707107 +45 0.00000 0.00000 -1.00000 +46 0.00000 0.500000 -0.500000 +47 0.00000 1.00000 0.00000 +48 0.500000 0.707107 -0.707107 +49 0.00000 -0.500000 -0.500000 +50 0.00000 -1.00000 0.00000 +51 0.500000 -0.707107 -0.707107 +52 0.00000 0.00000 -0.414214 +53 0.00000 0.414214 0.00000 +54 0.500000 0.292893 -0.292893 +55 0.00000 -0.414214 0.00000 +56 0.500000 -0.292893 -0.292893 +57 0.00000 0.00000 0.414214 +58 0.500000 0.292893 0.292893 +59 0.500000 -0.292893 0.292893 +60 0.00000 0.500000 0.500000 +61 0.00000 0.00000 1.00000 +62 0.500000 0.707107 0.707107 +63 0.00000 -0.500000 0.500000 +64 0.500000 -0.707107 0.707107 +65 1.00000 0.00000 -1.00000 +66 1.00000 0.500000 -0.500000 +67 1.00000 1.00000 0.00000 +68 1.00000 -0.500000 -0.500000 +69 1.00000 -1.00000 0.00000 +70 1.00000 0.00000 -0.414214 +71 1.00000 0.414214 0.00000 +72 1.00000 -0.414214 0.00000 +73 1.00000 0.00000 0.414214 +74 1.00000 0.500000 0.500000 +75 1.00000 0.00000 1.00000 +76 1.00000 -0.500000 0.500000 +77 -1.00000 8.89225e-18 -0.707107 +78 -1.00000 0.707107 0.00000 +79 -0.500000 0.500000 -0.500000 +80 -0.500000 1.00000 0.00000 +81 -0.500000 0.00000 -1.00000 +82 -0.500000 -0.500000 -0.500000 +83 -1.00000 -0.707107 -8.89225e-18 +84 -0.500000 -1.00000 0.00000 +85 -1.00000 0.00000 0.00000 +86 -0.500000 0.414214 0.00000 +87 -0.500000 0.00000 -0.414214 +88 -0.500000 -0.414214 0.00000 +89 -0.500000 0.00000 0.414214 +90 -1.00000 0.00000 0.707107 +91 -0.500000 0.00000 1.00000 +92 -0.500000 0.500000 0.500000 +93 -0.500000 -0.500000 0.500000 +94 0.00000 8.89225e-18 -0.707107 +95 0.00000 0.707107 0.00000 +96 0.500000 0.500000 -0.500000 +97 0.500000 1.00000 0.00000 +98 0.500000 0.00000 -1.00000 +99 0.500000 -0.500000 -0.500000 +100 0.00000 -0.707107 -8.89225e-18 +101 0.500000 -1.00000 0.00000 +102 0.00000 0.00000 0.00000 +103 0.500000 0.414214 0.00000 +104 0.500000 0.00000 -0.414214 +105 0.500000 -0.414214 0.00000 +106 0.500000 0.00000 0.414214 +107 0.00000 0.00000 0.707107 +108 0.500000 0.00000 1.00000 +109 0.500000 0.500000 0.500000 +110 0.500000 -0.500000 0.500000 +111 1.00000 8.89225e-18 -0.707107 +112 1.00000 0.707107 0.00000 +113 1.00000 -0.707107 -8.89225e-18 +114 1.00000 0.00000 0.00000 +115 1.00000 0.00000 0.707107 +116 -0.500000 1.74882e-18 -0.707107 +117 -0.500000 0.707107 -8.18795e-18 +118 -0.500000 0.00000 0.00000 +119 -0.500000 -0.707107 -1.74882e-18 +120 -0.500000 -8.18795e-18 0.707107 +121 0.500000 1.74882e-18 -0.707107 +122 0.500000 0.707107 -8.18795e-18 +123 0.500000 0.00000 0.00000 +124 0.500000 -0.707107 -1.74882e-18 +125 0.500000 -8.18795e-18 0.707107 +$ENDNOD +$ELM +80 +1 5 0 0 8 1 25 77 26 28 81 116 79 +2 5 0 0 8 25 2 29 77 81 31 82 116 +3 5 0 0 8 28 81 116 79 9 45 94 46 +4 5 0 0 8 81 31 82 116 45 10 49 94 +5 5 0 0 8 26 77 32 3 79 116 87 34 +6 5 0 0 8 77 29 4 32 116 82 36 87 +7 5 0 0 8 79 116 87 34 46 94 52 11 +8 5 0 0 8 116 82 36 87 94 49 12 52 +9 5 0 0 8 1 26 78 27 28 79 117 80 +10 5 0 0 8 26 3 33 78 79 34 86 117 +11 5 0 0 8 28 79 117 80 9 46 95 47 +12 5 0 0 8 79 34 86 117 46 11 53 95 +13 5 0 0 8 27 78 40 7 80 117 92 42 +14 5 0 0 8 78 33 5 40 117 86 38 92 +15 5 0 0 8 80 117 92 42 47 95 60 15 +16 5 0 0 8 117 86 38 92 95 53 13 60 +17 5 0 0 8 3 32 85 33 34 87 118 86 +18 5 0 0 8 32 4 35 85 87 36 88 118 +19 5 0 0 8 34 87 118 86 11 52 102 53 +20 5 0 0 8 87 36 88 118 52 12 55 102 +21 5 0 0 8 33 85 37 5 86 118 89 38 +22 5 0 0 8 85 35 6 37 118 88 39 89 +23 5 0 0 8 86 118 89 38 53 102 57 13 +24 5 0 0 8 118 88 39 89 102 55 14 57 +25 5 0 0 8 2 30 83 29 31 84 119 82 +26 5 0 0 8 30 8 43 83 84 44 93 119 +27 5 0 0 8 31 84 119 82 10 50 100 49 +28 5 0 0 8 84 44 93 119 50 16 63 100 +29 5 0 0 8 29 83 35 4 82 119 88 36 +30 5 0 0 8 83 43 6 35 119 93 39 88 +31 5 0 0 8 82 119 88 36 49 100 55 12 +32 5 0 0 8 119 93 39 88 100 63 14 55 +33 5 0 0 8 7 40 90 41 42 92 120 91 +34 5 0 0 8 40 5 37 90 92 38 89 120 +35 5 0 0 8 42 92 120 91 15 60 107 61 +36 5 0 0 8 92 38 89 120 60 13 57 107 +37 5 0 0 8 41 90 43 8 91 120 93 44 +38 5 0 0 8 90 37 6 43 120 89 39 93 +39 5 0 0 8 91 120 93 44 61 107 63 16 +40 5 0 0 8 120 89 39 93 107 57 14 63 +41 5 0 0 8 9 45 94 46 48 98 121 96 +42 5 0 0 8 45 10 49 94 98 51 99 121 +43 5 0 0 8 48 98 121 96 17 65 111 66 +44 5 0 0 8 98 51 99 121 65 18 68 111 +45 5 0 0 8 46 94 52 11 96 121 104 54 +46 5 0 0 8 94 49 12 52 121 99 56 104 +47 5 0 0 8 96 121 104 54 66 111 70 19 +48 5 0 0 8 121 99 56 104 111 68 20 70 +49 5 0 0 8 9 46 95 47 48 96 122 97 +50 5 0 0 8 46 11 53 95 96 54 103 122 +51 5 0 0 8 48 96 122 97 17 66 112 67 +52 5 0 0 8 96 54 103 122 66 19 71 112 +53 5 0 0 8 47 95 60 15 97 122 109 62 +54 5 0 0 8 95 53 13 60 122 103 58 109 +55 5 0 0 8 97 122 109 62 67 112 74 23 +56 5 0 0 8 122 103 58 109 112 71 21 74 +57 5 0 0 8 11 52 102 53 54 104 123 103 +58 5 0 0 8 52 12 55 102 104 56 105 123 +59 5 0 0 8 54 104 123 103 19 70 114 71 +60 5 0 0 8 104 56 105 123 70 20 72 114 +61 5 0 0 8 53 102 57 13 103 123 106 58 +62 5 0 0 8 102 55 14 57 123 105 59 106 +63 5 0 0 8 103 123 106 58 71 114 73 21 +64 5 0 0 8 123 105 59 106 114 72 22 73 +65 5 0 0 8 10 50 100 49 51 101 124 99 +66 5 0 0 8 50 16 63 100 101 64 110 124 +67 5 0 0 8 51 101 124 99 18 69 113 68 +68 5 0 0 8 101 64 110 124 69 24 76 113 +69 5 0 0 8 49 100 55 12 99 124 105 56 +70 5 0 0 8 100 63 14 55 124 110 59 105 +71 5 0 0 8 99 124 105 56 68 113 72 20 +72 5 0 0 8 124 110 59 105 113 76 22 72 +73 5 0 0 8 15 60 107 61 62 109 125 108 +74 5 0 0 8 60 13 57 107 109 58 106 125 +75 5 0 0 8 62 109 125 108 23 74 115 75 +76 5 0 0 8 109 58 106 125 74 21 73 115 +77 5 0 0 8 61 107 63 16 108 125 110 64 +78 5 0 0 8 107 57 14 63 125 106 59 110 +79 5 0 0 8 108 125 110 64 75 115 76 24 +80 5 0 0 8 125 106 59 110 115 73 22 76 +$ENDELM diff --git a/tests/manifold/cylindrical_manifold_02.cc b/tests/manifold/cylindrical_manifold_02.cc new file mode 100644 index 0000000000..77cc1e5048 --- /dev/null +++ b/tests/manifold/cylindrical_manifold_02.cc @@ -0,0 +1,63 @@ +//---------------------------- cylindrical_manifold_01.cc --------------------------- +// Copyright (C) 2011, 2013 by the mathLab team. +// +// This file is subject to LGPL 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. +// +//---------------------------- cylindrical_manifold_01.cc --------------------------- + + +// Test cylindrical manifold on cylinder shells. + +#include "../tests.h" +#include +#include + + +// all include files you need here +#include +#include +#include +#include +#include +#include +#include + +// Helper function +template +void test(unsigned int ref=1) +{ + deallog << "Testing dim " << dim + << ", spacedim " << spacedim << std::endl; + + // Here the only allowed axis is z. In cylinder the default is x. + CylindricalManifold manifold(2); + + Triangulation tria; + GridGenerator::cylinder_shell (tria, .5, .1, .25); + + for(auto cell = tria.begin_active(); cell != tria.end(); ++cell) { + cell->set_all_manifold_ids(1); + } + + tria.set_manifold(1, manifold); + tria.refine_global(1); + + GridOut gridout; + gridout.write_msh(tria, deallog.get_file_stream()); +} + +int main () +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test<3,3>(); + + return 0; +} + diff --git a/tests/manifold/cylindrical_manifold_02.output b/tests/manifold/cylindrical_manifold_02.output new file mode 100644 index 0000000000..42e27553e6 --- /dev/null +++ b/tests/manifold/cylindrical_manifold_02.output @@ -0,0 +1,696 @@ + +DEAL::Testing dim 3, spacedim 3 +$NOD +432 +1 0.250000 0.00000 0.00000 +2 0.176777 0.176777 0.00000 +3 1.53081e-17 0.250000 0.00000 +4 -0.176777 0.176777 0.00000 +5 -0.250000 3.06162e-17 0.00000 +6 -0.176777 -0.176777 0.00000 +7 -4.59243e-17 -0.250000 0.00000 +8 0.176777 -0.176777 0.00000 +9 0.100000 0.00000 0.00000 +10 0.0707107 0.0707107 0.00000 +11 6.12323e-18 0.100000 0.00000 +12 -0.0707107 0.0707107 0.00000 +13 -0.100000 1.22465e-17 0.00000 +14 -0.0707107 -0.0707107 0.00000 +15 -1.83697e-17 -0.100000 0.00000 +16 0.0707107 -0.0707107 0.00000 +17 0.250000 0.00000 0.125000 +18 0.176777 0.176777 0.125000 +19 1.53081e-17 0.250000 0.125000 +20 -0.176777 0.176777 0.125000 +21 -0.250000 3.06162e-17 0.125000 +22 -0.176777 -0.176777 0.125000 +23 -4.59243e-17 -0.250000 0.125000 +24 0.176777 -0.176777 0.125000 +25 0.100000 0.00000 0.125000 +26 0.0707107 0.0707107 0.125000 +27 6.12323e-18 0.100000 0.125000 +28 -0.0707107 0.0707107 0.125000 +29 -0.100000 1.22465e-17 0.125000 +30 -0.0707107 -0.0707107 0.125000 +31 -1.83697e-17 -0.100000 0.125000 +32 0.0707107 -0.0707107 0.125000 +33 0.250000 0.00000 0.250000 +34 0.176777 0.176777 0.250000 +35 1.53081e-17 0.250000 0.250000 +36 -0.176777 0.176777 0.250000 +37 -0.250000 3.06162e-17 0.250000 +38 -0.176777 -0.176777 0.250000 +39 -4.59243e-17 -0.250000 0.250000 +40 0.176777 -0.176777 0.250000 +41 0.100000 0.00000 0.250000 +42 0.0707107 0.0707107 0.250000 +43 6.12323e-18 0.100000 0.250000 +44 -0.0707107 0.0707107 0.250000 +45 -0.100000 1.22465e-17 0.250000 +46 -0.0707107 -0.0707107 0.250000 +47 -1.83697e-17 -0.100000 0.250000 +48 0.0707107 -0.0707107 0.250000 +49 0.250000 0.00000 0.375000 +50 0.176777 0.176777 0.375000 +51 1.53081e-17 0.250000 0.375000 +52 -0.176777 0.176777 0.375000 +53 -0.250000 3.06162e-17 0.375000 +54 -0.176777 -0.176777 0.375000 +55 -4.59243e-17 -0.250000 0.375000 +56 0.176777 -0.176777 0.375000 +57 0.100000 0.00000 0.375000 +58 0.0707107 0.0707107 0.375000 +59 6.12323e-18 0.100000 0.375000 +60 -0.0707107 0.0707107 0.375000 +61 -0.100000 1.22465e-17 0.375000 +62 -0.0707107 -0.0707107 0.375000 +63 -1.83697e-17 -0.100000 0.375000 +64 0.0707107 -0.0707107 0.375000 +65 0.250000 0.00000 0.500000 +66 0.176777 0.176777 0.500000 +67 1.53081e-17 0.250000 0.500000 +68 -0.176777 0.176777 0.500000 +69 -0.250000 3.06162e-17 0.500000 +70 -0.176777 -0.176777 0.500000 +71 -4.59243e-17 -0.250000 0.500000 +72 0.176777 -0.176777 0.500000 +73 0.100000 0.00000 0.500000 +74 0.0707107 0.0707107 0.500000 +75 6.12323e-18 0.100000 0.500000 +76 -0.0707107 0.0707107 0.500000 +77 -0.100000 1.22465e-17 0.500000 +78 -0.0707107 -0.0707107 0.500000 +79 -1.83697e-17 -0.100000 0.500000 +80 0.0707107 -0.0707107 0.500000 +81 0.230970 0.0956709 0.00000 +82 0.175000 0.00000 0.00000 +83 0.0956709 0.230970 0.00000 +84 0.123744 0.123744 0.00000 +85 -0.0956709 0.230970 0.00000 +86 1.07157e-17 0.175000 0.00000 +87 -0.230970 0.0956709 0.00000 +88 -0.123744 0.123744 0.00000 +89 -0.230970 -0.0956709 0.00000 +90 -0.175000 2.14313e-17 0.00000 +91 -0.0956709 -0.230970 0.00000 +92 -0.123744 -0.123744 0.00000 +93 0.0956709 -0.230970 0.00000 +94 -3.21470e-17 -0.175000 0.00000 +95 0.230970 -0.0956709 0.00000 +96 0.123744 -0.123744 0.00000 +97 0.0923880 0.0382683 0.00000 +98 0.0382683 0.0923880 0.00000 +99 -0.0382683 0.0923880 0.00000 +100 -0.0923880 0.0382683 0.00000 +101 -0.0923880 -0.0382683 0.00000 +102 -0.0382683 -0.0923880 0.00000 +103 0.0382683 -0.0923880 0.00000 +104 0.0923880 -0.0382683 0.00000 +105 0.250000 0.00000 0.0625000 +106 0.230970 0.0956709 0.125000 +107 0.175000 0.00000 0.125000 +108 0.176777 0.176777 0.0625000 +109 0.0956709 0.230970 0.125000 +110 0.123744 0.123744 0.125000 +111 1.53081e-17 0.250000 0.0625000 +112 -0.0956709 0.230970 0.125000 +113 1.07157e-17 0.175000 0.125000 +114 -0.176777 0.176777 0.0625000 +115 -0.230970 0.0956709 0.125000 +116 -0.123744 0.123744 0.125000 +117 -0.250000 3.06162e-17 0.0625000 +118 -0.230970 -0.0956709 0.125000 +119 -0.175000 2.14313e-17 0.125000 +120 -0.176777 -0.176777 0.0625000 +121 -0.0956709 -0.230970 0.125000 +122 -0.123744 -0.123744 0.125000 +123 -4.59243e-17 -0.250000 0.0625000 +124 0.0956709 -0.230970 0.125000 +125 -3.21470e-17 -0.175000 0.125000 +126 0.176777 -0.176777 0.0625000 +127 0.230970 -0.0956709 0.125000 +128 0.123744 -0.123744 0.125000 +129 0.100000 0.00000 0.0625000 +130 0.0923880 0.0382683 0.125000 +131 0.0707107 0.0707107 0.0625000 +132 0.0382683 0.0923880 0.125000 +133 6.12323e-18 0.100000 0.0625000 +134 -0.0382683 0.0923880 0.125000 +135 -0.0707107 0.0707107 0.0625000 +136 -0.0923880 0.0382683 0.125000 +137 -0.100000 1.22465e-17 0.0625000 +138 -0.0923880 -0.0382683 0.125000 +139 -0.0707107 -0.0707107 0.0625000 +140 -0.0382683 -0.0923880 0.125000 +141 -1.83697e-17 -0.100000 0.0625000 +142 0.0382683 -0.0923880 0.125000 +143 0.0707107 -0.0707107 0.0625000 +144 0.0923880 -0.0382683 0.125000 +145 0.250000 0.00000 0.187500 +146 0.230970 0.0956709 0.250000 +147 0.175000 0.00000 0.250000 +148 0.176777 0.176777 0.187500 +149 0.0956709 0.230970 0.250000 +150 0.123744 0.123744 0.250000 +151 1.53081e-17 0.250000 0.187500 +152 -0.0956709 0.230970 0.250000 +153 1.07157e-17 0.175000 0.250000 +154 -0.176777 0.176777 0.187500 +155 -0.230970 0.0956709 0.250000 +156 -0.123744 0.123744 0.250000 +157 -0.250000 3.06162e-17 0.187500 +158 -0.230970 -0.0956709 0.250000 +159 -0.175000 2.14313e-17 0.250000 +160 -0.176777 -0.176777 0.187500 +161 -0.0956709 -0.230970 0.250000 +162 -0.123744 -0.123744 0.250000 +163 -4.59243e-17 -0.250000 0.187500 +164 0.0956709 -0.230970 0.250000 +165 -3.21470e-17 -0.175000 0.250000 +166 0.176777 -0.176777 0.187500 +167 0.230970 -0.0956709 0.250000 +168 0.123744 -0.123744 0.250000 +169 0.100000 0.00000 0.187500 +170 0.0923880 0.0382683 0.250000 +171 0.0707107 0.0707107 0.187500 +172 0.0382683 0.0923880 0.250000 +173 6.12323e-18 0.100000 0.187500 +174 -0.0382683 0.0923880 0.250000 +175 -0.0707107 0.0707107 0.187500 +176 -0.0923880 0.0382683 0.250000 +177 -0.100000 1.22465e-17 0.187500 +178 -0.0923880 -0.0382683 0.250000 +179 -0.0707107 -0.0707107 0.187500 +180 -0.0382683 -0.0923880 0.250000 +181 -1.83697e-17 -0.100000 0.187500 +182 0.0382683 -0.0923880 0.250000 +183 0.0707107 -0.0707107 0.187500 +184 0.0923880 -0.0382683 0.250000 +185 0.250000 0.00000 0.312500 +186 0.230970 0.0956709 0.375000 +187 0.175000 0.00000 0.375000 +188 0.176777 0.176777 0.312500 +189 0.0956709 0.230970 0.375000 +190 0.123744 0.123744 0.375000 +191 1.53081e-17 0.250000 0.312500 +192 -0.0956709 0.230970 0.375000 +193 1.07157e-17 0.175000 0.375000 +194 -0.176777 0.176777 0.312500 +195 -0.230970 0.0956709 0.375000 +196 -0.123744 0.123744 0.375000 +197 -0.250000 3.06162e-17 0.312500 +198 -0.230970 -0.0956709 0.375000 +199 -0.175000 2.14313e-17 0.375000 +200 -0.176777 -0.176777 0.312500 +201 -0.0956709 -0.230970 0.375000 +202 -0.123744 -0.123744 0.375000 +203 -4.59243e-17 -0.250000 0.312500 +204 0.0956709 -0.230970 0.375000 +205 -3.21470e-17 -0.175000 0.375000 +206 0.176777 -0.176777 0.312500 +207 0.230970 -0.0956709 0.375000 +208 0.123744 -0.123744 0.375000 +209 0.100000 0.00000 0.312500 +210 0.0923880 0.0382683 0.375000 +211 0.0707107 0.0707107 0.312500 +212 0.0382683 0.0923880 0.375000 +213 6.12323e-18 0.100000 0.312500 +214 -0.0382683 0.0923880 0.375000 +215 -0.0707107 0.0707107 0.312500 +216 -0.0923880 0.0382683 0.375000 +217 -0.100000 1.22465e-17 0.312500 +218 -0.0923880 -0.0382683 0.375000 +219 -0.0707107 -0.0707107 0.312500 +220 -0.0382683 -0.0923880 0.375000 +221 -1.83697e-17 -0.100000 0.312500 +222 0.0382683 -0.0923880 0.375000 +223 0.0707107 -0.0707107 0.312500 +224 0.0923880 -0.0382683 0.375000 +225 0.250000 0.00000 0.437500 +226 0.230970 0.0956709 0.500000 +227 0.175000 0.00000 0.500000 +228 0.176777 0.176777 0.437500 +229 0.0956709 0.230970 0.500000 +230 0.123744 0.123744 0.500000 +231 1.53081e-17 0.250000 0.437500 +232 -0.0956709 0.230970 0.500000 +233 1.07157e-17 0.175000 0.500000 +234 -0.176777 0.176777 0.437500 +235 -0.230970 0.0956709 0.500000 +236 -0.123744 0.123744 0.500000 +237 -0.250000 3.06162e-17 0.437500 +238 -0.230970 -0.0956709 0.500000 +239 -0.175000 2.14313e-17 0.500000 +240 -0.176777 -0.176777 0.437500 +241 -0.0956709 -0.230970 0.500000 +242 -0.123744 -0.123744 0.500000 +243 -4.59243e-17 -0.250000 0.437500 +244 0.0956709 -0.230970 0.500000 +245 -3.21470e-17 -0.175000 0.500000 +246 0.176777 -0.176777 0.437500 +247 0.230970 -0.0956709 0.500000 +248 0.123744 -0.123744 0.500000 +249 0.100000 0.00000 0.437500 +250 0.0923880 0.0382683 0.500000 +251 0.0707107 0.0707107 0.437500 +252 0.0382683 0.0923880 0.500000 +253 6.12323e-18 0.100000 0.437500 +254 -0.0382683 0.0923880 0.500000 +255 -0.0707107 0.0707107 0.437500 +256 -0.0923880 0.0382683 0.500000 +257 -0.100000 1.22465e-17 0.437500 +258 -0.0923880 -0.0382683 0.500000 +259 -0.0707107 -0.0707107 0.437500 +260 -0.0382683 -0.0923880 0.500000 +261 -1.83697e-17 -0.100000 0.437500 +262 0.0382683 -0.0923880 0.500000 +263 0.0707107 -0.0707107 0.437500 +264 0.0923880 -0.0382683 0.500000 +265 0.161679 0.0669696 0.00000 +266 0.0669696 0.161679 0.00000 +267 -0.0669696 0.161679 0.00000 +268 -0.161679 0.0669696 0.00000 +269 -0.161679 -0.0669696 0.00000 +270 -0.0669696 -0.161679 0.00000 +271 0.0669696 -0.161679 0.00000 +272 0.161679 -0.0669696 0.00000 +273 0.230970 0.0956709 0.0625000 +274 0.161679 0.0669696 0.125000 +275 0.175000 0.00000 0.0625000 +276 0.0956709 0.230970 0.0625000 +277 0.0669696 0.161679 0.125000 +278 0.123744 0.123744 0.0625000 +279 -0.0956709 0.230970 0.0625000 +280 -0.0669696 0.161679 0.125000 +281 1.07157e-17 0.175000 0.0625000 +282 -0.230970 0.0956709 0.0625000 +283 -0.161679 0.0669696 0.125000 +284 -0.123744 0.123744 0.0625000 +285 -0.230970 -0.0956709 0.0625000 +286 -0.161679 -0.0669696 0.125000 +287 -0.175000 2.14313e-17 0.0625000 +288 -0.0956709 -0.230970 0.0625000 +289 -0.0669696 -0.161679 0.125000 +290 -0.123744 -0.123744 0.0625000 +291 0.0956709 -0.230970 0.0625000 +292 0.0669696 -0.161679 0.125000 +293 -3.21470e-17 -0.175000 0.0625000 +294 0.230970 -0.0956709 0.0625000 +295 0.161679 -0.0669696 0.125000 +296 0.123744 -0.123744 0.0625000 +297 0.0923880 0.0382683 0.0625000 +298 0.0382683 0.0923880 0.0625000 +299 -0.0382683 0.0923880 0.0625000 +300 -0.0923880 0.0382683 0.0625000 +301 -0.0923880 -0.0382683 0.0625000 +302 -0.0382683 -0.0923880 0.0625000 +303 0.0382683 -0.0923880 0.0625000 +304 0.0923880 -0.0382683 0.0625000 +305 0.230970 0.0956709 0.187500 +306 0.161679 0.0669696 0.250000 +307 0.175000 0.00000 0.187500 +308 0.0956709 0.230970 0.187500 +309 0.0669696 0.161679 0.250000 +310 0.123744 0.123744 0.187500 +311 -0.0956709 0.230970 0.187500 +312 -0.0669696 0.161679 0.250000 +313 1.07157e-17 0.175000 0.187500 +314 -0.230970 0.0956709 0.187500 +315 -0.161679 0.0669696 0.250000 +316 -0.123744 0.123744 0.187500 +317 -0.230970 -0.0956709 0.187500 +318 -0.161679 -0.0669696 0.250000 +319 -0.175000 2.14313e-17 0.187500 +320 -0.0956709 -0.230970 0.187500 +321 -0.0669696 -0.161679 0.250000 +322 -0.123744 -0.123744 0.187500 +323 0.0956709 -0.230970 0.187500 +324 0.0669696 -0.161679 0.250000 +325 -3.21470e-17 -0.175000 0.187500 +326 0.230970 -0.0956709 0.187500 +327 0.161679 -0.0669696 0.250000 +328 0.123744 -0.123744 0.187500 +329 0.0923880 0.0382683 0.187500 +330 0.0382683 0.0923880 0.187500 +331 -0.0382683 0.0923880 0.187500 +332 -0.0923880 0.0382683 0.187500 +333 -0.0923880 -0.0382683 0.187500 +334 -0.0382683 -0.0923880 0.187500 +335 0.0382683 -0.0923880 0.187500 +336 0.0923880 -0.0382683 0.187500 +337 0.230970 0.0956709 0.312500 +338 0.161679 0.0669696 0.375000 +339 0.175000 0.00000 0.312500 +340 0.0956709 0.230970 0.312500 +341 0.0669696 0.161679 0.375000 +342 0.123744 0.123744 0.312500 +343 -0.0956709 0.230970 0.312500 +344 -0.0669696 0.161679 0.375000 +345 1.07157e-17 0.175000 0.312500 +346 -0.230970 0.0956709 0.312500 +347 -0.161679 0.0669696 0.375000 +348 -0.123744 0.123744 0.312500 +349 -0.230970 -0.0956709 0.312500 +350 -0.161679 -0.0669696 0.375000 +351 -0.175000 2.14313e-17 0.312500 +352 -0.0956709 -0.230970 0.312500 +353 -0.0669696 -0.161679 0.375000 +354 -0.123744 -0.123744 0.312500 +355 0.0956709 -0.230970 0.312500 +356 0.0669696 -0.161679 0.375000 +357 -3.21470e-17 -0.175000 0.312500 +358 0.230970 -0.0956709 0.312500 +359 0.161679 -0.0669696 0.375000 +360 0.123744 -0.123744 0.312500 +361 0.0923880 0.0382683 0.312500 +362 0.0382683 0.0923880 0.312500 +363 -0.0382683 0.0923880 0.312500 +364 -0.0923880 0.0382683 0.312500 +365 -0.0923880 -0.0382683 0.312500 +366 -0.0382683 -0.0923880 0.312500 +367 0.0382683 -0.0923880 0.312500 +368 0.0923880 -0.0382683 0.312500 +369 0.230970 0.0956709 0.437500 +370 0.161679 0.0669696 0.500000 +371 0.175000 0.00000 0.437500 +372 0.0956709 0.230970 0.437500 +373 0.0669696 0.161679 0.500000 +374 0.123744 0.123744 0.437500 +375 -0.0956709 0.230970 0.437500 +376 -0.0669696 0.161679 0.500000 +377 1.07157e-17 0.175000 0.437500 +378 -0.230970 0.0956709 0.437500 +379 -0.161679 0.0669696 0.500000 +380 -0.123744 0.123744 0.437500 +381 -0.230970 -0.0956709 0.437500 +382 -0.161679 -0.0669696 0.500000 +383 -0.175000 2.14313e-17 0.437500 +384 -0.0956709 -0.230970 0.437500 +385 -0.0669696 -0.161679 0.500000 +386 -0.123744 -0.123744 0.437500 +387 0.0956709 -0.230970 0.437500 +388 0.0669696 -0.161679 0.500000 +389 -3.21470e-17 -0.175000 0.437500 +390 0.230970 -0.0956709 0.437500 +391 0.161679 -0.0669696 0.500000 +392 0.123744 -0.123744 0.437500 +393 0.0923880 0.0382683 0.437500 +394 0.0382683 0.0923880 0.437500 +395 -0.0382683 0.0923880 0.437500 +396 -0.0923880 0.0382683 0.437500 +397 -0.0923880 -0.0382683 0.437500 +398 -0.0382683 -0.0923880 0.437500 +399 0.0382683 -0.0923880 0.437500 +400 0.0923880 -0.0382683 0.437500 +401 0.161679 0.0669696 0.0625000 +402 0.0669696 0.161679 0.0625000 +403 -0.0669696 0.161679 0.0625000 +404 -0.161679 0.0669696 0.0625000 +405 -0.161679 -0.0669696 0.0625000 +406 -0.0669696 -0.161679 0.0625000 +407 0.0669696 -0.161679 0.0625000 +408 0.161679 -0.0669696 0.0625000 +409 0.161679 0.0669696 0.187500 +410 0.0669696 0.161679 0.187500 +411 -0.0669696 0.161679 0.187500 +412 -0.161679 0.0669696 0.187500 +413 -0.161679 -0.0669696 0.187500 +414 -0.0669696 -0.161679 0.187500 +415 0.0669696 -0.161679 0.187500 +416 0.161679 -0.0669696 0.187500 +417 0.161679 0.0669696 0.312500 +418 0.0669696 0.161679 0.312500 +419 -0.0669696 0.161679 0.312500 +420 -0.161679 0.0669696 0.312500 +421 -0.161679 -0.0669696 0.312500 +422 -0.0669696 -0.161679 0.312500 +423 0.0669696 -0.161679 0.312500 +424 0.161679 -0.0669696 0.312500 +425 0.161679 0.0669696 0.437500 +426 0.0669696 0.161679 0.437500 +427 -0.0669696 0.161679 0.437500 +428 -0.161679 0.0669696 0.437500 +429 -0.161679 -0.0669696 0.437500 +430 -0.0669696 -0.161679 0.437500 +431 0.0669696 -0.161679 0.437500 +432 0.161679 -0.0669696 0.437500 +$ENDNOD +$ELM +256 +1 5 0 0 8 17 106 274 107 105 273 401 275 +2 5 0 0 8 106 18 110 274 273 108 278 401 +3 5 0 0 8 105 273 401 275 1 81 265 82 +4 5 0 0 8 273 108 278 401 81 2 84 265 +5 5 0 0 8 107 274 130 25 275 401 297 129 +6 5 0 0 8 274 110 26 130 401 278 131 297 +7 5 0 0 8 275 401 297 129 82 265 97 9 +8 5 0 0 8 401 278 131 297 265 84 10 97 +9 5 0 0 8 18 109 277 110 108 276 402 278 +10 5 0 0 8 109 19 113 277 276 111 281 402 +11 5 0 0 8 108 276 402 278 2 83 266 84 +12 5 0 0 8 276 111 281 402 83 3 86 266 +13 5 0 0 8 110 277 132 26 278 402 298 131 +14 5 0 0 8 277 113 27 132 402 281 133 298 +15 5 0 0 8 278 402 298 131 84 266 98 10 +16 5 0 0 8 402 281 133 298 266 86 11 98 +17 5 0 0 8 19 112 280 113 111 279 403 281 +18 5 0 0 8 112 20 116 280 279 114 284 403 +19 5 0 0 8 111 279 403 281 3 85 267 86 +20 5 0 0 8 279 114 284 403 85 4 88 267 +21 5 0 0 8 113 280 134 27 281 403 299 133 +22 5 0 0 8 280 116 28 134 403 284 135 299 +23 5 0 0 8 281 403 299 133 86 267 99 11 +24 5 0 0 8 403 284 135 299 267 88 12 99 +25 5 0 0 8 20 115 283 116 114 282 404 284 +26 5 0 0 8 115 21 119 283 282 117 287 404 +27 5 0 0 8 114 282 404 284 4 87 268 88 +28 5 0 0 8 282 117 287 404 87 5 90 268 +29 5 0 0 8 116 283 136 28 284 404 300 135 +30 5 0 0 8 283 119 29 136 404 287 137 300 +31 5 0 0 8 284 404 300 135 88 268 100 12 +32 5 0 0 8 404 287 137 300 268 90 13 100 +33 5 0 0 8 21 118 286 119 117 285 405 287 +34 5 0 0 8 118 22 122 286 285 120 290 405 +35 5 0 0 8 117 285 405 287 5 89 269 90 +36 5 0 0 8 285 120 290 405 89 6 92 269 +37 5 0 0 8 119 286 138 29 287 405 301 137 +38 5 0 0 8 286 122 30 138 405 290 139 301 +39 5 0 0 8 287 405 301 137 90 269 101 13 +40 5 0 0 8 405 290 139 301 269 92 14 101 +41 5 0 0 8 22 121 289 122 120 288 406 290 +42 5 0 0 8 121 23 125 289 288 123 293 406 +43 5 0 0 8 120 288 406 290 6 91 270 92 +44 5 0 0 8 288 123 293 406 91 7 94 270 +45 5 0 0 8 122 289 140 30 290 406 302 139 +46 5 0 0 8 289 125 31 140 406 293 141 302 +47 5 0 0 8 290 406 302 139 92 270 102 14 +48 5 0 0 8 406 293 141 302 270 94 15 102 +49 5 0 0 8 23 124 292 125 123 291 407 293 +50 5 0 0 8 124 24 128 292 291 126 296 407 +51 5 0 0 8 123 291 407 293 7 93 271 94 +52 5 0 0 8 291 126 296 407 93 8 96 271 +53 5 0 0 8 125 292 142 31 293 407 303 141 +54 5 0 0 8 292 128 32 142 407 296 143 303 +55 5 0 0 8 293 407 303 141 94 271 103 15 +56 5 0 0 8 407 296 143 303 271 96 16 103 +57 5 0 0 8 24 127 295 128 126 294 408 296 +58 5 0 0 8 127 17 107 295 294 105 275 408 +59 5 0 0 8 126 294 408 296 8 95 272 96 +60 5 0 0 8 294 105 275 408 95 1 82 272 +61 5 0 0 8 128 295 144 32 296 408 304 143 +62 5 0 0 8 295 107 25 144 408 275 129 304 +63 5 0 0 8 296 408 304 143 96 272 104 16 +64 5 0 0 8 408 275 129 304 272 82 9 104 +65 5 0 0 8 33 146 306 147 145 305 409 307 +66 5 0 0 8 146 34 150 306 305 148 310 409 +67 5 0 0 8 145 305 409 307 17 106 274 107 +68 5 0 0 8 305 148 310 409 106 18 110 274 +69 5 0 0 8 147 306 170 41 307 409 329 169 +70 5 0 0 8 306 150 42 170 409 310 171 329 +71 5 0 0 8 307 409 329 169 107 274 130 25 +72 5 0 0 8 409 310 171 329 274 110 26 130 +73 5 0 0 8 34 149 309 150 148 308 410 310 +74 5 0 0 8 149 35 153 309 308 151 313 410 +75 5 0 0 8 148 308 410 310 18 109 277 110 +76 5 0 0 8 308 151 313 410 109 19 113 277 +77 5 0 0 8 150 309 172 42 310 410 330 171 +78 5 0 0 8 309 153 43 172 410 313 173 330 +79 5 0 0 8 310 410 330 171 110 277 132 26 +80 5 0 0 8 410 313 173 330 277 113 27 132 +81 5 0 0 8 35 152 312 153 151 311 411 313 +82 5 0 0 8 152 36 156 312 311 154 316 411 +83 5 0 0 8 151 311 411 313 19 112 280 113 +84 5 0 0 8 311 154 316 411 112 20 116 280 +85 5 0 0 8 153 312 174 43 313 411 331 173 +86 5 0 0 8 312 156 44 174 411 316 175 331 +87 5 0 0 8 313 411 331 173 113 280 134 27 +88 5 0 0 8 411 316 175 331 280 116 28 134 +89 5 0 0 8 36 155 315 156 154 314 412 316 +90 5 0 0 8 155 37 159 315 314 157 319 412 +91 5 0 0 8 154 314 412 316 20 115 283 116 +92 5 0 0 8 314 157 319 412 115 21 119 283 +93 5 0 0 8 156 315 176 44 316 412 332 175 +94 5 0 0 8 315 159 45 176 412 319 177 332 +95 5 0 0 8 316 412 332 175 116 283 136 28 +96 5 0 0 8 412 319 177 332 283 119 29 136 +97 5 0 0 8 37 158 318 159 157 317 413 319 +98 5 0 0 8 158 38 162 318 317 160 322 413 +99 5 0 0 8 157 317 413 319 21 118 286 119 +100 5 0 0 8 317 160 322 413 118 22 122 286 +101 5 0 0 8 159 318 178 45 319 413 333 177 +102 5 0 0 8 318 162 46 178 413 322 179 333 +103 5 0 0 8 319 413 333 177 119 286 138 29 +104 5 0 0 8 413 322 179 333 286 122 30 138 +105 5 0 0 8 38 161 321 162 160 320 414 322 +106 5 0 0 8 161 39 165 321 320 163 325 414 +107 5 0 0 8 160 320 414 322 22 121 289 122 +108 5 0 0 8 320 163 325 414 121 23 125 289 +109 5 0 0 8 162 321 180 46 322 414 334 179 +110 5 0 0 8 321 165 47 180 414 325 181 334 +111 5 0 0 8 322 414 334 179 122 289 140 30 +112 5 0 0 8 414 325 181 334 289 125 31 140 +113 5 0 0 8 39 164 324 165 163 323 415 325 +114 5 0 0 8 164 40 168 324 323 166 328 415 +115 5 0 0 8 163 323 415 325 23 124 292 125 +116 5 0 0 8 323 166 328 415 124 24 128 292 +117 5 0 0 8 165 324 182 47 325 415 335 181 +118 5 0 0 8 324 168 48 182 415 328 183 335 +119 5 0 0 8 325 415 335 181 125 292 142 31 +120 5 0 0 8 415 328 183 335 292 128 32 142 +121 5 0 0 8 40 167 327 168 166 326 416 328 +122 5 0 0 8 167 33 147 327 326 145 307 416 +123 5 0 0 8 166 326 416 328 24 127 295 128 +124 5 0 0 8 326 145 307 416 127 17 107 295 +125 5 0 0 8 168 327 184 48 328 416 336 183 +126 5 0 0 8 327 147 41 184 416 307 169 336 +127 5 0 0 8 328 416 336 183 128 295 144 32 +128 5 0 0 8 416 307 169 336 295 107 25 144 +129 5 0 0 8 49 186 338 187 185 337 417 339 +130 5 0 0 8 186 50 190 338 337 188 342 417 +131 5 0 0 8 185 337 417 339 33 146 306 147 +132 5 0 0 8 337 188 342 417 146 34 150 306 +133 5 0 0 8 187 338 210 57 339 417 361 209 +134 5 0 0 8 338 190 58 210 417 342 211 361 +135 5 0 0 8 339 417 361 209 147 306 170 41 +136 5 0 0 8 417 342 211 361 306 150 42 170 +137 5 0 0 8 50 189 341 190 188 340 418 342 +138 5 0 0 8 189 51 193 341 340 191 345 418 +139 5 0 0 8 188 340 418 342 34 149 309 150 +140 5 0 0 8 340 191 345 418 149 35 153 309 +141 5 0 0 8 190 341 212 58 342 418 362 211 +142 5 0 0 8 341 193 59 212 418 345 213 362 +143 5 0 0 8 342 418 362 211 150 309 172 42 +144 5 0 0 8 418 345 213 362 309 153 43 172 +145 5 0 0 8 51 192 344 193 191 343 419 345 +146 5 0 0 8 192 52 196 344 343 194 348 419 +147 5 0 0 8 191 343 419 345 35 152 312 153 +148 5 0 0 8 343 194 348 419 152 36 156 312 +149 5 0 0 8 193 344 214 59 345 419 363 213 +150 5 0 0 8 344 196 60 214 419 348 215 363 +151 5 0 0 8 345 419 363 213 153 312 174 43 +152 5 0 0 8 419 348 215 363 312 156 44 174 +153 5 0 0 8 52 195 347 196 194 346 420 348 +154 5 0 0 8 195 53 199 347 346 197 351 420 +155 5 0 0 8 194 346 420 348 36 155 315 156 +156 5 0 0 8 346 197 351 420 155 37 159 315 +157 5 0 0 8 196 347 216 60 348 420 364 215 +158 5 0 0 8 347 199 61 216 420 351 217 364 +159 5 0 0 8 348 420 364 215 156 315 176 44 +160 5 0 0 8 420 351 217 364 315 159 45 176 +161 5 0 0 8 53 198 350 199 197 349 421 351 +162 5 0 0 8 198 54 202 350 349 200 354 421 +163 5 0 0 8 197 349 421 351 37 158 318 159 +164 5 0 0 8 349 200 354 421 158 38 162 318 +165 5 0 0 8 199 350 218 61 351 421 365 217 +166 5 0 0 8 350 202 62 218 421 354 219 365 +167 5 0 0 8 351 421 365 217 159 318 178 45 +168 5 0 0 8 421 354 219 365 318 162 46 178 +169 5 0 0 8 54 201 353 202 200 352 422 354 +170 5 0 0 8 201 55 205 353 352 203 357 422 +171 5 0 0 8 200 352 422 354 38 161 321 162 +172 5 0 0 8 352 203 357 422 161 39 165 321 +173 5 0 0 8 202 353 220 62 354 422 366 219 +174 5 0 0 8 353 205 63 220 422 357 221 366 +175 5 0 0 8 354 422 366 219 162 321 180 46 +176 5 0 0 8 422 357 221 366 321 165 47 180 +177 5 0 0 8 55 204 356 205 203 355 423 357 +178 5 0 0 8 204 56 208 356 355 206 360 423 +179 5 0 0 8 203 355 423 357 39 164 324 165 +180 5 0 0 8 355 206 360 423 164 40 168 324 +181 5 0 0 8 205 356 222 63 357 423 367 221 +182 5 0 0 8 356 208 64 222 423 360 223 367 +183 5 0 0 8 357 423 367 221 165 324 182 47 +184 5 0 0 8 423 360 223 367 324 168 48 182 +185 5 0 0 8 56 207 359 208 206 358 424 360 +186 5 0 0 8 207 49 187 359 358 185 339 424 +187 5 0 0 8 206 358 424 360 40 167 327 168 +188 5 0 0 8 358 185 339 424 167 33 147 327 +189 5 0 0 8 208 359 224 64 360 424 368 223 +190 5 0 0 8 359 187 57 224 424 339 209 368 +191 5 0 0 8 360 424 368 223 168 327 184 48 +192 5 0 0 8 424 339 209 368 327 147 41 184 +193 5 0 0 8 65 226 370 227 225 369 425 371 +194 5 0 0 8 226 66 230 370 369 228 374 425 +195 5 0 0 8 225 369 425 371 49 186 338 187 +196 5 0 0 8 369 228 374 425 186 50 190 338 +197 5 0 0 8 227 370 250 73 371 425 393 249 +198 5 0 0 8 370 230 74 250 425 374 251 393 +199 5 0 0 8 371 425 393 249 187 338 210 57 +200 5 0 0 8 425 374 251 393 338 190 58 210 +201 5 0 0 8 66 229 373 230 228 372 426 374 +202 5 0 0 8 229 67 233 373 372 231 377 426 +203 5 0 0 8 228 372 426 374 50 189 341 190 +204 5 0 0 8 372 231 377 426 189 51 193 341 +205 5 0 0 8 230 373 252 74 374 426 394 251 +206 5 0 0 8 373 233 75 252 426 377 253 394 +207 5 0 0 8 374 426 394 251 190 341 212 58 +208 5 0 0 8 426 377 253 394 341 193 59 212 +209 5 0 0 8 67 232 376 233 231 375 427 377 +210 5 0 0 8 232 68 236 376 375 234 380 427 +211 5 0 0 8 231 375 427 377 51 192 344 193 +212 5 0 0 8 375 234 380 427 192 52 196 344 +213 5 0 0 8 233 376 254 75 377 427 395 253 +214 5 0 0 8 376 236 76 254 427 380 255 395 +215 5 0 0 8 377 427 395 253 193 344 214 59 +216 5 0 0 8 427 380 255 395 344 196 60 214 +217 5 0 0 8 68 235 379 236 234 378 428 380 +218 5 0 0 8 235 69 239 379 378 237 383 428 +219 5 0 0 8 234 378 428 380 52 195 347 196 +220 5 0 0 8 378 237 383 428 195 53 199 347 +221 5 0 0 8 236 379 256 76 380 428 396 255 +222 5 0 0 8 379 239 77 256 428 383 257 396 +223 5 0 0 8 380 428 396 255 196 347 216 60 +224 5 0 0 8 428 383 257 396 347 199 61 216 +225 5 0 0 8 69 238 382 239 237 381 429 383 +226 5 0 0 8 238 70 242 382 381 240 386 429 +227 5 0 0 8 237 381 429 383 53 198 350 199 +228 5 0 0 8 381 240 386 429 198 54 202 350 +229 5 0 0 8 239 382 258 77 383 429 397 257 +230 5 0 0 8 382 242 78 258 429 386 259 397 +231 5 0 0 8 383 429 397 257 199 350 218 61 +232 5 0 0 8 429 386 259 397 350 202 62 218 +233 5 0 0 8 70 241 385 242 240 384 430 386 +234 5 0 0 8 241 71 245 385 384 243 389 430 +235 5 0 0 8 240 384 430 386 54 201 353 202 +236 5 0 0 8 384 243 389 430 201 55 205 353 +237 5 0 0 8 242 385 260 78 386 430 398 259 +238 5 0 0 8 385 245 79 260 430 389 261 398 +239 5 0 0 8 386 430 398 259 202 353 220 62 +240 5 0 0 8 430 389 261 398 353 205 63 220 +241 5 0 0 8 71 244 388 245 243 387 431 389 +242 5 0 0 8 244 72 248 388 387 246 392 431 +243 5 0 0 8 243 387 431 389 55 204 356 205 +244 5 0 0 8 387 246 392 431 204 56 208 356 +245 5 0 0 8 245 388 262 79 389 431 399 261 +246 5 0 0 8 388 248 80 262 431 392 263 399 +247 5 0 0 8 389 431 399 261 205 356 222 63 +248 5 0 0 8 431 392 263 399 356 208 64 222 +249 5 0 0 8 72 247 391 248 246 390 432 392 +250 5 0 0 8 247 65 227 391 390 225 371 432 +251 5 0 0 8 246 390 432 392 56 207 359 208 +252 5 0 0 8 390 225 371 432 207 49 187 359 +253 5 0 0 8 248 391 264 80 392 432 400 263 +254 5 0 0 8 391 227 73 264 432 371 249 400 +255 5 0 0 8 392 432 400 263 208 359 224 64 +256 5 0 0 8 432 371 249 400 359 187 57 224 +$ENDELM