Salome HOME
bos #30358 COTECH Action 141.1: remove config subfolder
authorvsr <vsr@opencascade.com>
Fri, 17 Jun 2022 16:43:33 +0000 (19:43 +0300)
committervsr <vsr@opencascade.com>
Wed, 22 Jun 2022 11:45:41 +0000 (14:45 +0300)
79 files changed:
config/README [deleted file]
config/build_options/cea/options_compilation_salome_master.txt [deleted file]
config/build_options/edf/options_compilation_config_XML.txt [deleted file]
config/build_options/edf/options_compilation_salome_V9_2_0.txt [deleted file]
config/build_options/edf/options_compilation_salome_V9_3_0.txt [deleted file]
config/build_options/edf/options_compilation_salome_master.txt [deleted file]
config/build_options/edf/regroupe_config.txt [deleted file]
config/build_options/occ/options_compilation_salome_master.txt [deleted file]
config/patches/README [deleted file]
config/patches/boost.101-python.patch [deleted file]
config/patches/cea/README [deleted file]
config/patches/cea/freeimage-3.16.0_gcc6.patch [deleted file]
config/patches/cea/gl2ps-1.4.0-GLUT.patch [deleted file]
config/patches/cea/hdf5-1.10.3.patch [deleted file]
config/patches/cea/metis-use_cat_not_more.patch [deleted file]
config/patches/cea/netgen-5.3.1-for-SALOME-OCCT-7.2.0.patch [deleted file]
config/patches/edf/FreeImage3170_Make.patch [deleted file]
config/patches/edf/OCCT-7.2.0.patch [deleted file]
config/patches/edf/OCCT-7.3.0p3.patch [deleted file]
config/patches/edf/OCCT_7.3.0p3_post_install.py [deleted file]
config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch [deleted file]
config/patches/edf/README_V9_2_0.txt [deleted file]
config/patches/edf/README_V9_3_0.txt [deleted file]
config/patches/edf/cgal_cmake352.patch [deleted file]
config/patches/edf/freeimage_3170_sci9.patch [deleted file]
config/patches/edf/gl2ps.patch [deleted file]
config/patches/edf/omniORBpy-4.2.1-2-python3.patch [deleted file]
config/patches/edf/otwrapy_0.7_py3.patch [deleted file]
config/patches/edf/patchHDF5Build.py [deleted file]
config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch [deleted file]
config/patches/edf/pillow-py3.patch [deleted file]
config/patches/edf/scotch604_Make.inc.patch [deleted file]
config/patches/edf/setup_qt5.cfg [deleted file]
config/patches/edf/sphinx176_w_intl_napoleon.patch [deleted file]
config/patches/edf/sphinx_w_intl_napoleon.patch [deleted file]
config/patches/embree.001_centos6.patch [deleted file]
config/patches/freeimage.001_sources.patch [deleted file]
config/patches/freeimage.002_build_procedure.patch [deleted file]
config/patches/freeimage.003_gcc47_compat.patch [deleted file]
config/patches/freeimage.004_gcc66.patch [deleted file]
config/patches/graphviz.001_build_procedure.patch [deleted file]
config/patches/hdf5.001_threads_threads.patch [deleted file]
config/patches/matplotlib.001_build_procedure.patch [deleted file]
config/patches/med.001_cmake_config.patch [deleted file]
config/patches/netgen.001.common.v5.patch [deleted file]
config/patches/netgen.001.common.v6.patch [deleted file]
config/patches/netgen.002.version.v6.patch [deleted file]
config/patches/netgen.003.pthread.v6.patch [deleted file]
config/patches/numpy.001_shell.patch [deleted file]
config/patches/occt.001_transparency.patch [deleted file]
config/patches/opencv.001_compile.patch [deleted file]
config/patches/opencv.002_cmake.patch [deleted file]
config/patches/paraview.0001-LATA-reader.patch [deleted file]
config/patches/paraview.0002-vtkUnstructuredGridRelevantPointsFilter-fix-for-poly.patch [deleted file]
config/patches/paraview.0003-ParaViewClient.patch [deleted file]
config/patches/paraview.0004-ParaView_hdf5.patch [deleted file]
config/patches/paraview.0005-ParaView_find_cgns.patch [deleted file]
config/patches/paraview.0006-ParaView_find_libxml2.patch [deleted file]
config/patches/paraview.0007-ParaView_find_freetype.patch [deleted file]
config/patches/paraview.0008-ParaView_coincident_rendering.patch [deleted file]
config/patches/paraview.0009-ParaView_volume_mapper.patch [deleted file]
config/patches/paraview.0010-ParaView_CATALYST_cmake.patch [deleted file]
config/patches/paraview.0011-ParaView_protobuf_crash.patch [deleted file]
config/patches/paraview.0015-Paraview_VTKM_ioss.patch [deleted file]
config/patches/paraview.0018-spns-26351-autoconvert.patch [deleted file]
config/patches/paraview.0019-spns-26344-VTK-OpenMP.patch [deleted file]
config/patches/paraview.1001-ParaView_windows_catalyst_cmake.patch [deleted file]
config/patches/paraview.1002-ParaView_find_zlib.patch [deleted file]
config/patches/planegcs.001_for_shaper.patch [deleted file]
config/patches/pyqt5sip.001_sipBool.patch [deleted file]
config/patches/qt.001_proxy_factory.patch [deleted file]
config/patches/qt.002_xkbcommon.patch [deleted file]
config/patches/rkcommon.001_native_tbb.patch [deleted file]
config/patches/scotch.001.create_makefile.patch [deleted file]
config/salome.xml [deleted file]
config/scfg [deleted file]
config/scfgcmp [deleted file]
config/sconfig/__init__.py [deleted file]
config/sconfig/salome_config.py [deleted file]

diff --git a/config/README b/config/README
deleted file mode 100644 (file)
index dd61b7c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-The contents of this package:
-
-salome.xml        SALOME configuration file.
-
-patches           Directory with patches needed to build SALOME configuration.
-
-sconfig           Python module to manage SALOME configuration files.
-                  To learn about usage, run Python and type:
-
-                  from sconfig import salome_config
-                  help(salome_config)
-
-scfg              Command line tool to manage SALOME configuration files.
-                  To learn about usage, type:
-
-                  scfg help
-
-scfgcmp           Command line tool to compare two SALOME configuration files.
-                  To learn about usage, type:
-
-                  scfgcmp -h
diff --git a/config/build_options/cea/options_compilation_salome_master.txt b/config/build_options/cea/options_compilation_salome_master.txt
deleted file mode 100644 (file)
index 4823d75..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-KERNEL
-> cmake  -DSALOME_USE_LIBBATCH=ON -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig -DSALOME_CMAKE_DEBUG=ON -DSALOME_USE_64BIT_IDS=ON  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/KERNEL /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/KERNEL
-
-GUI
-> cmake  -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/GUI /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/GUI
-
-GEOM
-> cmake  -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig -DSALOME_GEOM_USE_OPENCV=ON  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/GEOM /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/GEOM
-
-MEDCOUPLING
-> cmake  -DMEDCOUPLING_ENABLE_PYTHON=ON -DMEDCOUPLING_ENABLE_PARTITIONER=ON -DMEDCOUPLING_ENABLE_RENUMBER=ON -DMEDCOUPLING_PARTITIONER_METIS=ON -DMEDCOUPLING_PARTITIONER_SCOTCH=ON -DMEDCOUPLING_PARTITIONER_PARMETIS=OFF -DMEDCOUPLING_MICROMED=OFF -DMEDCOUPLING_USE_MPI=OFF -DMEDCOUPLING_USE_64BIT_IDS=ON  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/MEDCOUPLING /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/MEDCOUPLING
-
-BLSURFPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/BLSURFPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/BLSURFPLUGIN
-
-CALCULATOR
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CALCULATOR /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/CALCULATOR
-
-YACS
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/YACS /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/YACS
-
-PARAVIS
-> cmake  -DSALOME_PARAVIS_USE_GEOM_SOURCE=ON -DSALOME_PARAVIS_USE_SMESH_SOURCE=ON -DBUILD_TESTING=ON  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PARAVIS /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/PARAVIS
-
-SMESH
-> cmake  -DSALOME_SMESH_USE_CGNS:BOOL=ON -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig -DSALOME_SMESH_DYNLOAD_LOCAL:BOOL=ON -DSALOME_SMESH_BUILD_FRENCH_DOC=OFF -DSALOME_SMESH_USE_TBB=ON  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/SMESH /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/SMESH
-
-JOBMANAGER
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/JOBMANAGER /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/JOBMANAGER
-
-CAS
-> cmake  -DUSE_TCL=OFF -DBUILD_MODULE_Draw=OFF -DUSE_FREETYPE=ON -D3RDPARTY_FREETYPE_DIR=$FREETYPEDIR -DUSE_GL2PS=OFF -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=$FREEIMAGEDIR  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CAS /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/CAS
-
-HEXABLOCK
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HEXABLOCK /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HEXABLOCK
-
-NETGENPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/NETGENPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/NETGENPLUGIN
-
-HEXABLOCKPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HEXABLOCKPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HEXABLOCKPLUGIN
-
-GHS3DPRLPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/GHS3DPRLPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/GHS3DPRLPLUGIN
-
-GMSHPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/GMSHPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/GMSHPLUGIN
-
-HexoticPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HexoticPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HexoticPLUGIN
-
-PYCALCULATOR
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PYCALCULATOR /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/PYCALCULATOR
-
-HELLO
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HELLO /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HELLO
-
-PYHELLO
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PYHELLO /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/PYHELLO
-
-HYBRIDPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HYBRIDPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HYBRIDPLUGIN
-
-GHS3DPLUGIN
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/GHS3DPLUGIN /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/GHS3DPLUGIN
-
-LIBBATCH
-> cmake  -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/LIBBATCH /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/LIBBATCH
-
-HOMARD
-> cmake  -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/HOMARD /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/HOMARD
-
-StaticMeshPlugin
-> cmake    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/StaticMeshPlugin /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/StaticMeshPlugin
-
-PARAVISADDONS
-> cmake    -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PARAVISADDONS /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/PARAVISADDONS
-
-SALOME
-> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/SALOME /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/SALOME
-
-rkCommon
-> cmake  -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LIBDIR=lib  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/rkCommon /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/rkCommon
-
-root
-> cmake  -Dgminimal:BOOL=ON -Dmathmore:BOOL=ON -Ddataframe:BOOL=ON -Dmlp:BOOL=ON -Dfftw3:BOOL=ON -Dminuit2:BOOL=ON -Dxml:BOOL=ON -Dasimage:BOOL=ON -Dpyroot:BOOL=ON -Dsoversion:BOOL=ON -Ddataframe:BOOL=ON -DPYTHON_EXECUTABLE:STRING=${PYTHONBIN} -DPYTHON_INCLUDE_DIR:STRING=${PYTHON_INCLUDE}  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/root /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/root
-
-openVKL
-> cmake  -DBUILD_TESTING=OFF -DCMAKE_INSTALL_LIBDIR=lib -DBUILD_EXAMPLES=OFF  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/openVKL /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/openVKL
-
-URANIE
-*** cmake  -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/URANIE -DCMAKE_BUILD_TYPE:STRING=Release -DWITH-OPT++:BOOL=ON -DWITH-JSONCPP:BOOL=ON -D--enable-doc:BOOL=ON /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/URANIE
-
-openturns
-*** cmake -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/openturns -DCMAKE_BUILD_TYPE:STRING=Release -DPYTHON_EXECUTABLE=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/bin/python -DSWIG_EXECUTABLE=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/swig/bin/swig
-
-hdf5
-*** cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DHDF5_ALLOW_EXTERNAL_SUPPORT:BOOL=ON -DHDF5_BUILD_HL_LIB:BOOL=ON -DHDF5_ENABLE_PARALLEL:BOOL=OFF -DHDF5_BUILD_CPP_LIB:BOOL=ON -DHDF5_ENABLE_THREADSAFE:BOOL=ON -DALLOW_UNSUPPORTED:BOOL=ON
-
-cgns
-*** cmake -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS -DCMAKE_BUILD_TYPE:STRING=Release -DCGNS_ENABLE_HDF5:BOOL=ON
-
-gmsh
-*** cmake -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/gmsh -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_BUILD_SHARED=ON -DENABLE_ACIS=OFF -DENABLE_FLTK=OFF -DENABLE_MED=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_PARSER=ON -DENABLE_PETSC=OFF -DENABLE_PRIVATE_API=ON -DENABLE_CGNS=OFF -DCMAKE_INSTALL_LIBDIR=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/gmsh/lib -DCMAKE_PREFIX_PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/lapack
-
-opencv
-*** cmake  -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/opencv -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_NEW_PYTHON_SUPPORT=ON -DBUILD_EXAMPLES:BOOL=ON -DPYTHON3_EXECUTABLE=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/bin/python -DPYTHON3_NUMPY_INCLUDE_DIRS=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/lib/python3.6/site-packages;/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/lib/python3.6/site-packages/numpy/core/include -DWITH_IPP:BOOL=OFF -DBUILD_opencv_java:BOOL=OFF -DPYTHON_INCLUDE_DIR=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/include/python3.6 -DPYTHON_INCLUDE_DIR2=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/include/python3.6 -DWITH_FFMPEG:BOOL=OFF -DWITH_LAPACK:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DWITH_VTK:BOOL=OFF -DENABLE_PRECOMPILED_HEADERS:BOOL=OFF -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/opencv
-
-ParaView
-*** cmake -DCMAKE_INSTALL_PREFIX:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/ParaView -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_FLAGS:STRING=-m64 -DCMAKE_C_FLAGS:STRING=-m64 -DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DBUILD_TESTING:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DOpenGL_GL_PREFERENCE:STRING=LEGACY -DPARAVIEW_USE_CATALYST:BOOL=ON -DCATALYST_BUILD_STUB_IMPLEMENTATION:BOOL=ON -DPARAVIEW_ENABLE_RAYTRACING:BOOL=ON -DVTK_ENABLE_OSPRAY:BOOL=ON -Dospray_DIR:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/ospray/lib/cmake/ospray-2.4.0 -Dembree_DIR:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/embree/lib/cmake/embree-3.12.2 -DVTK_USE_64BIT_IDS:BOOL=ON -DVTK_INSTALL_LIBRARY_DIR=lib/paraview-5.9 -DVTK_INSTALL_ARCHIVE_DIR=lib/paraview-5.9 -DVTK_PYTHON_SITE_PACKAGES_SUFFIX=site-packages -DVTKm_INSTALL_LIB_DIR=lib/paraview-5.9 -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF -DVTK_MODULE_ENABLE_VTK_RenderingLOD:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_FiltersCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_CommonCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOEnSight:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOInfovis:INTERNAL=YES -DTBB_ROOT:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/tbb -DPARAVIEW_USE_QT:BOOL=ON -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DPARAVIEW_USE_PYTHON:BOOL=ON -DVTK_WRAP_PYTHON:BOOL=ON -DPython3_INCLUDE_DIR:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/include/python3.6 -DPython3_LIBRARY:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/lib/libpython3.6.so -DVTK_PYTHON_FULL_THREADSAFE:BOOL=ON -DVTK_NO_PYTHON_THREADS:BOOL=OFF -DVTK_PYTHON_VERSION:STRING=3 -DVTK_WRAP_JAVA:BOOL=OFF -DPARAVIEW_USE_MPI:BOOL=OFF -DCMAKE_CXX_COMPILER:STRING=/opt/rh/devtoolset-8/root/usr/bin/g++ -DCMAKE_C_COMPILER:STRING=/opt/rh/devtoolset-8/root/usr/bin/gcc -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP -DVTKm_ENABLE_OPENMP:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON -DHDF5_DIR:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/share/cmake/hdf5 -DHDF5_USE_STATIC_LIBRARIES:BOOL=OFF -DHDF5_ROOT:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS -DVTK_MODULE_USE_EXTERNAL_ParaView_cgns:BOOL=ON -DCGNS_INCLUDE_DIR:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/include -DCGNS_LIBRARY:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib/libcgns.so -DVTK_MODULE_ENABLE_ParaView_cgns:INTERNAL=YES -DVTK_MODULE_ENABLE_ParaView_VTKExtensionsCGNSReader:INTERNAL=YES -DVTK_MODULE_ENABLE_ParaView_VTKExtensionsCGNSWriter:INTERNAL=YES -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=ON -DBOOST_ROOT:PATH=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS -DBoost_NO_BOOST_CMAKE:BOOL=ON -DBoost_NO_SYSTEM_PATHS:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=OFF -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON -DLIBXML2_INCLUDE_DIR:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/libxml2/include/libxml2 -DLIBXML2_LIBRARIES:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/libxml2/lib/libxml2.so -DLIBXML2_XMLLINT_EXECUTABLE=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/libxml2/bin/xmllint -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=ON -DFREETYPE_INCLUDE_DIRS:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/freetype/include/freetype2 -DFREETYPE_LIBRARY:STRING=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/freetype/lib/libfreetype.so -DPARAVIEW_PLUGINS_DEFAULT:BOOL=ON -DPARAVIEW_PLUGIN_ENABLE_Moments:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_SLACTools:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_SierraPlotTools:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_PacMan:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_pvblot:BOOL=OFF -DVTK_ALL_NEW_OBJECT_FACTORY:BOOL=ON
-
-planegcs
-*** cmake  -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/planegcs
-
-eigen
-*** cmake  -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/eigen
-
-lapack
-*** cmake /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/SOURCES/lapack -DCMAKE_INSTALL_PREFIX=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/lapack -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -DUSE_OPTIMIZED_BLAS=OFF -DCBLAS=ON -DLAPACKE=ON
-
-netgen
-./configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/netgen --with-occ=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CAS --disable-openmp --with-tcl=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib --with-tk=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib --with-tclinclude=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/include CXXFLAGS=-I/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CAS/include/opencascade -O2 -m64 -std=c++0x
-running CONFIG_SHELL=/bin/sh /bin/sh ./configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/netgen --with-occ=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CAS --disable-openmp --with-tcl=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib --with-tk=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib --with-tclinclude=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/include CXXFLAGS=-I/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/CAS/include/opencascade -O2 -m64 -std=c++0x --no-create --no-recursion
-
-graphviz
-*** ./configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS  --enable-tcl=no --with-expat=no --with-qt=no  --enable-perl=no --enable-ocaml=no
-running CONFIG_SHELL=/bin/sh /bin/sh ./configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS --enable-tcl=no --with-expat=no --with-qt=no --enable-perl=no --enable-ocaml=no --with-ghostscript=no --enable-python=no --enable-java=no PKG_CONFIG_PATH=/opt/rh/devtoolset-8/root/usr/lib64/pkgconfig --enable-ltdl-convenience --no-create --no-recursion
-
-sip
-/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python/bin/python3 setup.py build
-qt
-*** configure -prefix /volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/qt -release -opensource -nomake tests -nomake examples -no-rpath -verbose -no-separate-debug-info -confirm-license -qt-libpng -qt-xcb -no-eglfs -dbus-runtime -skip qtwebengine -skip wayland -skip qtgamepad -system-freetype -qt-harfbuzz -no-openssl -no-glib -no-jasper
-
-medfile
-*** configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/medfile FFLAGS=-fdefault-integer-8 -g -O2 -ffixed-line-length-none CFLAGS=-m64 CXXFLAGS=-m64 --enable-python=no --with-med_int=long
-
-omniORB
-*** configure --disable-ipv6
-
-Python
-*** configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/Python --enable-shared --with-threads --without-pymalloc --with-ensurepip=install
-
-omniORBpy
-*** configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/omniORB
-
-swig
-*** configure --without-pcre --without-octave
-
-cppunit
-*** configure --enable-static LDFLAGS="-ldl"
-
-tcl
-*** configure --enable-shared --enable-threads
-
-tk
-*** configure --enable-shared --enable-threads --with-tcl=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/lib --with-tclinclude=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PRODUCTS/include
-
-PyQt
-*** configure.py --confirm-license --no-designer-plugin --verbose --bindir=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PyQt/bin --destdir=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/PyQt/lib/python3.6/site-packages --sipdir=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/sip --disable=QtNetwork --disable=QtWebSockets
-
-freetype
-*** configure --prefix=/volatile/az786502/workspace/SPNS-24358/SALOME-9.7.0-CO7/INSTALL/freetype --with-harfbuzz=no
-
diff --git a/config/build_options/edf/options_compilation_config_XML.txt b/config/build_options/edf/options_compilation_config_XML.txt
deleted file mode 100644 (file)
index 3660a76..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-OPENTURNS_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HELLO1_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-DOCUMENTATION_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-SMESH_master/.yamm/configuration.xml:2:  <option name="SALOME_SMESH_USE_CGNS" value="ON"/>
-SMESH_master/.yamm/configuration.xml:3:  <option name="CGNS_ROOT_DIR" value="${CGNSLIB_INSTALL_DIR}"/>
-SMESH_master/.yamm/configuration.xml:4:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
-SMESH_master/.yamm/configuration.xml:5:  <option name="MEDFILE_ROOT_DIR" value="$MEDFICHIER_INSTALL_DIR"/>
-SMESH_master/.yamm/configuration.xml:6:  <option name="PADDERHOME:STRING" value="${PADDERHOME}"/>
-SMESH_master/.yamm/configuration.xml:7:  <option name="QWT_ROOT_DIR" value="$QWT_INSTALL_DIR"/>
-SMESH_master/.yamm/configuration.xml:8:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-SMESH_master/.yamm/configuration.xml:9:  <option name="SALOME_SMESH_USE_TBB" value="ON"/>
-SMESH_master/.yamm/configuration.xml:10:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-YACS_master/.yamm/configuration.xml:2:  <option name="SALOME_BUILD_GUI" value="ON"/>
-YACS_master/.yamm/configuration.xml:3:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HYBRIDPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-EFICAS_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HEXOTICPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HEXABLOCKPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-ATOMSOLV_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
-ATOMSOLV_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-ATOMSOLV_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
-ATOMSOLV_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-GUI_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
-GUI_master/.yamm/configuration.xml:3:  <option name="CAS_ROOT_DIR" value="$OCC_INSTALL_DIR"/>
-GUI_master/.yamm/configuration.xml:4:  <option name="PARAVIEW_VERSION" value="${PVVERSION}"/>
-GUI_master/.yamm/configuration.xml:5:  <option name="PYQT5_ROOT_DIR" value="$PYQT_INSTALL_DIR"/>
-GUI_master/.yamm/configuration.xml:6:  <option name="SALOME_BUILD_WITH_QT5" value="ON"/>
-GUI_master/.yamm/configuration.xml:7:  <option name="QT5_ROOT_DIR" value="$QT_INSTALL_DIR"/>
-GUI_master/.yamm/configuration.xml:8:  <option name="QWT_LIBRARY" value="$QWT_INSTALL_DIR/lib/libqwt"/>
-GUI_master/.yamm/configuration.xml:9:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
-GUI_master/.yamm/configuration.xml:10:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-GUI_master/.yamm/configuration.xml:11:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-PYHELLO1_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HEXABLOCK_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-MED_master/.yamm/configuration.xml:2:  <option name="MEDCOUPLING_ROOT_DIR" value="${MEDCOUPLING_INSTALL_DIR}"/>
-MED_master/.yamm/configuration.xml:3:  <option name="MEDFILE_ROOT_DIR" value="${MEDFICHIER_INSTALL_DIR}"/>
-MED_master/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-HOMARD_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:2:  <option name="WITH_GUI_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:3:  <option name="WITH_MEDCOUPLING_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:4:  <option name="WITH_PARAVIS_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:5:  <option name="WITH_CAOMAILLAGE_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:6:  <option name="WITH_USECASES_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:7:  <option name="WITH_LARGECASES_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:8:  <option name="WITH_ARCHITECTURE_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_occ_python3_porting/.yamm/configuration.xml:9:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-FIELDS_master/.yamm/configuration.xml:2:  <option name="MEDCOUPLING_ROOT_DIR" value="${MEDCOUPLING_INSTALL_DIR}"/>
-FIELDS_master/.yamm/configuration.xml:3:  <option name="FIELDSFILE_ROOT_DIR" value="${MEDFICHIER_INSTALL_DIR}"/>
-FIELDS_master/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-ATOMGEN_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
-ATOMGEN_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-ATOMGEN_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
-ATOMGEN_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-PARAVIS_master/.yamm/configuration.xml:2:  <option name="VTK_DIR" value="${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview"/>
-PARAVIS_master/.yamm/configuration.xml:3:  <option name="PYTHON_EXECUTABLE" value="$"/>
-PARAVIS_master/.yamm/configuration.xml:4:  <option name="PYTHON_ROOT_DIR" value="${PYTHONHOME}"/>
-PARAVIS_master/.yamm/configuration.xml:5:  <option name="SALOME_PARAVIS_MINIMAL_CORBA" value="ON"/>
-PARAVIS_master/.yamm/configuration.xml:6:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-GMSHPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-NETGENPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-CALCULATOR_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-JOBMANAGER_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-KERNEL_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="${CONFIGURATION_CMAKE_DIR}"/>
-KERNEL_master/.yamm/configuration.xml:3:  <option name="SALOME_BUILD_TESTS" value="ON"/>
-KERNEL_master/.yamm/configuration.xml:4:  <option name="SALOME_USE_LIBBATCH" value="ON"/>
-KERNEL_master/.yamm/configuration.xml:5:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-KERNEL_master/.yamm/configuration.xml:6:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-GHS3DPLUGIN_master/.yamm/configuration.xml:2:  <option name="MESHGEMS_ROOT_DIR" value="&quot;${MESHGEMS_ROOT_DIR}&quot;"/>
-GHS3DPLUGIN_master/.yamm/configuration.xml:3:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-LIGHT_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-BLSURFPLUGIN_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-ATOMIC_master/.yamm/configuration.xml:2:  <option name="CMAKE_INCLUDE_DIRECTORIES_BEFORE" value="ON"/>
-ATOMIC_master/.yamm/configuration.xml:3:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-ATOMIC_master/.yamm/configuration.xml:4:  <option name="SWIG_DIR:PATH" value="$"/>
-ATOMIC_master/.yamm/configuration.xml:5:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-PYLIGHT_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:2:  <option name="WITH_CAOMAILLAGE_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:3:  <option name="WITH_USECASES_TESTS:BOOL" value="ON"/>
-NON_REGRESSION_TESTS_CONFIDENTIAL_occ_python3_porting/.yamm/configuration.xml:4:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-GENERICSOLVER_master/.yamm/configuration.xml:2:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-GEOM_master/.yamm/configuration.xml:2:  <option name="CMAKE_MODULE_PATH" value="&quot;${CONFIGURATION_CMAKE_DIR}&quot;"/>
-GEOM_master/.yamm/configuration.xml:3:  <option name="FREETYPE_INCLUDE_DIR_freetype2" value="&quot;${FREETYPE_INSTALL_DIR}/include/freetype2/freetype&quot;"/>
-GEOM_master/.yamm/configuration.xml:4:  <option name="FREETYPE_INCLUDE_DIR_ft2build" value="&quot;${FREETYPE_INSTALL_DIR}/include/freetype2/freetype&quot;"/>
-GEOM_master/.yamm/configuration.xml:5:  <option name="FREETYPE_LIBRARY" value="&quot;${FREETYPE_INSTALL_DIR}/lib&quot;"/>
-GEOM_master/.yamm/configuration.xml:6:  <option name="SALOME_GEOM_USE_OPENCV" value="ON"/>
-GEOM_master/.yamm/configuration.xml:7:  <option name="SWIG_EXECUTABLE:PATH" value="$"/>
-GEOM_master/.yamm/configuration.xml:8:  <option name="CMAKE_BUILD_TYPE" value="Release"/>
-
diff --git a/config/build_options/edf/options_compilation_salome_V9_2_0.txt b/config/build_options/edf/options_compilation_salome_V9_2_0.txt
deleted file mode 100644 (file)
index 1e66dbf..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-%%%%%%%%%%%%%%%%%
-% PREREQUISITES %
-%%%%%%%%%%%%%%%%%
-
-Paraview-v560p1 :
-°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Doxygen-1814-gr2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Doxygen-1814-gr2380/lib:$LD_LIBRARY_PATH" ; export DOXYGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Doxygen-1814-gr2380" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380/lib:$LD_LIBRARY_PATH" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103/lib:$LD_LIBRARY_PATH" ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365/lib:$LD_LIBRARY_PATH" ; export LIBXML2_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Matplotlib-222-num1151-pyqt590-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; export OPENTURNS_TOOL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Openturns_tool-1111-bst1580-cm3121-dox1814-gr2380-la380-xm291-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/opt/qt/5.9.1/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/qt/5.9.1/lib:$LD_LIBRARY_PATH" ; export QT_INSTALL_DIR="/opt/qt/5.9.1" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; unset PYTHONHOME ; export PYTHONPATH=$CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages:$PYTHONPATH ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys  -DDOXYGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Doxygen-1814-gr2380"  -DGL2PS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103"  -DLIBXML2_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365"  -DOPENTURNS_TOOL_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Openturns_tool-1111-bst1580-cm3121-dox1814-gr2380-la380-xm291-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860"  -DQT_ROOT_DIR="/opt/qt/5.9.1"  -DDOXYGEN_EXECUTABLE=${DOXYGEN_INSTALL_DIR}/bin/doxygen -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_INSTALL_DIR}/include -DGL2PS_LIBRARY:STRING=${GL2PS_INSTALL_DIR}/lib/libgl2ps.so -DDOXYGEN_DOT_EXECUTABLE=${GRAPHVIZ_INSTALL_DIR}/bin/dot -DHDF5_hdf5_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib -DHDF5_hdf5_hl_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_C_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include -DLIBXML2_INCLUDE_DIR=${LIBXML2_INSTALL_DIR}/include/libxml2 -DLIBXML2_LIBRARIES=${LIBXML2_INSTALL_DIR}/lib/libxml2.so -DPARAVIEW_USE_OPENTURNS=ON -DPARAVIEW_ENABLE_WEB=OFF -DOpenTURNS_DIR=${OPENTURNS_TOOL_INSTALL_DIR}/lib/cmake/openturns  -DPYTHON_EXECUTABLEwhich python3.6)  -DVTK_PYTHON_VERSION=3 -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DQT_HELP_GENERATOR=${QT_INSTALL_DIR}/bin/qhelpgenerator -DPARAVIEW_QT_VERSION=5 -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_USE_64BIT_IDS:BOOL=OFF -DPARAVIEW_BUILD_QT_GUI:BOOL=ON -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DVTK_USE_SYSTEM_PYGMENTS:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_NO_PYTHON_THREADS=OFF -DPARAVIEW_ENABLE_CATALYST:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_NonOrthogonalSource:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_RGBZView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SciberQuestToolKit:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_StreamingParticles:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_UncertaintyRendering:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON-DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON-DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON-DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON-DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON-DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON-DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON-DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON-DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON-DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DVTK_NO_PYTHON_THREADS=OFF -DVTK_PYTHON_FULL_THREADSAFE=ON -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP -DPARAVIEW_AUTOLOAD_PLUGIN_StreamingParticles=ON -DPARAVIEW_AUTOLOAD_PLUGIN_UncertaintyRendering=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EyeDomeLighting=ON -DPARAVIEW_AUTOLOAD_PLUGIN_H5PartReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_PointSprite=ON -DPARAVIEW_AUTOLOAD_PLUGIN_SurfaceLIC=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CatalystScriptGeneratorPlugin=ON -DPARAVIEW_ENABLE_WEB:BOOL=OFF -DVTK_INSTALL_LIBRARY_DIR="lib/paraview-5.6" -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="site-packages" -DVTK_INSTALL_ARCHIVE_DIR="lib/paraview-5.6" -DPARAVIEW_INSTALL_PLUGINS_DIR="lib/paraview-5.6/plugins" -DVTKm_INSTALL_LIB_DIR="lib/paraview-5.6" -DVTK_USE_SYSTEM_GL2PS:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON -DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON -DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON -DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON -DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON -DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON -DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON -DVTK_ALL_NEW_OBJECT_FACTORY=ON  /home/es4c769n/salome/edf/V9/prerequisites/src/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys
-
-Gl2ps-14020170729EDFp1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121  -DCMAKE_BUILD_TYPE:STRING=Release  /home/es4c769n/salome/edf/V9/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121
-
-Togl-17 :
-°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Togl-17-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ;  $CURRENT_SOFTWARE_SRC_DIR/configure --enable-threads --enable-shared --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include --with-tk=$TK_INSTALL_DIR/lib --with-tkinclude=$TK_INSTALL_DIR/include  
-
-Occ-730p2 :
-°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Freeimage-3170EDFp2/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Freeimage-3170EDFp2/lib:$LD_LIBRARY_PATH" ; export FREEIMAGE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freeimage-3170EDFp2" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29/lib:$LD_LIBRARY_PATH" ; export FREETYPE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860" ; export CFLAGS="-fPIC -m64" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424  -DFREEIMAGE_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freeimage-3170EDFp2"  -DFREETYPE_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29"  -DGL2PS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424"  -DTCL_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860"  -DTK_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860"  -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=${FREEIMAGE_INSTALL_DIR} -D3RDPARTY_FREEIMAGE_LIBRARY_DIR:PATH=${FREEIMAGE_INSTALL_DIR}/lib -D3RDPARTY_FREEIMAGE_LIBRARY:FILEPATH=${FREEIMAGE_INSTALL_DIR}/lib/libfreeimageplus-${FreeImage_version}.so -D3RDPARTY_FREETYPE_DIR=${FREETYPE_INSTALL_DIR} -DUSE_GL2PS=ON -D3RDPARTY_GL2PS_DIR=${GL2PS_INSTALL_DIR} -DUSE_TBB=ON -D3RDPARTY_TBB_DIR=${TBB_INSTALL_DIR} -D3RDPARTY_TBB_LIBRARY_DIR=${TBB_INSTALL_DIR}/lib -D3RDPARTY_TBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include -D3RDPARTY_TCL_DIR=${TCL_INSTALL_DIR} -D3RDPARTY_TCL_LIBRARY_DIR=${TCL_INSTALL_DIR}/lib -D3RDPARTY_TCL_LIBRARY:PATH=${TCL_LIBRARY_SO} -D3RDPARTY_TK_DIR=${TK_INSTALL_DIR} -D3RDPARTY_TK_LIBRARY_DIR=${TK_INSTALL_DIR}/lib -D3RDPARTY_TK_LIBRARY:PATH=${TK_LIBRARY_SO}  -DINSTALL_DIR_RESOURCE=src  /home/es4c769n/salome/edf/V9/prerequisites/src/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424
-
-Eigen-334 :
-°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Eigen-334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Eigen-334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Eigen-334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Eigen-334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Eigen-334  /home/es4c769n/salome/edf/V9/prerequisites/src/Eigen-334
-
-Lapack-380 :
-°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Lapack-380-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Lapack-380-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Lapack-380-cm3121  -DBUILD_SHARED_LIBS:BOOL=ON /home/es4c769n/salome/edf/V9/prerequisites/src/Lapack-380-cm3121
-
-Boost-1580 :
-°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Boost-1580-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Boost-1580-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Boost-1580-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ;  sh bootstrap.sh --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Freeimage-3170EDFp2 :
-°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Freeimage-3170EDFp2 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cp -r $CURRENT_SOFTWARE_SRC_DIR/* $CURRENT_SOFTWARE_BUILD_DIR;  
-
-Graphviz-2380 :
-°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Graphviz-2380 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Graphviz-2380 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cd $CURRENT_SOFTWARE_SRC_DIR ; ./configure --enable-perl=no --enable-java=no --enable-tcl=no --enable-python=no --with-qt=no --with-pangocairo=yes --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Tk-860 :
-°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Tk-860-tcl860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Tk-860-tcl860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ;  cd $CURRENT_SOFTWARE_BUILD_DIR; $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include  
-
-Medfichier-400rc1 :
-°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Medfichier-400rc1-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Medfichier-400rc1-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Medfichier-400rc1-hdf51103-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Medfichier-400rc1-hdf51103-py365-sw3012/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012  --enable-mesgerr --with-hdf5=$HDF5_INSTALL_DIR  
-
-Cmake-3121 :
-°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Cmake-3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Cmake-3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Cmake-3121/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121 
-
-Python-365 :
-°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export LDFLAGS="${LDFLAGS} -L${TCLDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TCLDIR}/include" ; export LDFLAGS="${LDFLAGS} -L${TKDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TKDIR}/include" ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Python-365-tcl860-tk860/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860 --enable-shared --without-pymalloc  
-
-Gmsh-305 :
-°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Gmsh-305-cm3121-la380-occ730p2-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Gmsh-305-cm3121-la380-occ730p2-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Gmsh-305-cm3121-la380-occ730p2-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Gmsh-305-cm3121-la380-occ730p2-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Gmsh-305-cm3121-la380-occ730p2-tbb424  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424"  --with-tbb-incdir=$TBB_INSTALL_DIR/include --with-tbb-libdir=$TBB_INSTALL_DIR/lib -DENABLE_ACIS=0 -DENABLE_BUILD_SHARED=1 -DENABLE_FLTK=0 -DENABLE_MED=0 -DENABLE_ONELAB_METAMODEL=0 -DENABLE_PARSER=ON -DENABLE_SALOME=0 -DENABLE_PETSC=0  /home/es4c769n/salome/edf/V9/prerequisites/src/Gmsh-305-cm3121-la380-occ730p2-tbb424
-
-Gdb-712 :
-°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Gdb-712-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Gdb-712-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Gdb-712-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Gdb-712-py365/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Gdb-712-py365 
-
-Freetype-29 :
-°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Freetype-29 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Freetype-29 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Freetype-29/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29  --with-harfbuzz=no 
-
-Omniorb-422 :
-°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Omniorb-422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Omniorb-422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorb-422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python3.6); /home/es4c769n/salome/edf/V9/prerequisites/src/Omniorb-422-py365/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorb-422-py365 --disable-ipv6 
-
-Omniorbpy-422EDFp1 :
-°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export OMNIORB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorb-422-py365" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python$PYTHON_VERSION); /home/es4c769n/salome/edf/V9/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 --with-omniorb=$OMNIORB_INSTALL_DIR 
-
-Qwt-612 :
-°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Qwt-612-qt5912sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Qwt-612-qt5912sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Qwt-612-qt5912sys ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/opt/qt/5.9.1/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/qt/5.9.1/lib:$LD_LIBRARY_PATH" ; cd /home/es4c769n/salome/edf/V9/prerequisites/src/Qwt-612-qt5912sys ;sed "s:/usr/local/qwt-\$\$QWT_VERSION:$CURRENT_SOFTWARE_INSTALL_DIR:" qwtconfig.pri > qwtconfig.pri_sed ; mv qwtconfig.pri_sed qwtconfig.pri ; cd /home/es4c769n/salome/edf/V9/prerequisites/build/Qwt-612-qt5912sys ;qmake -d /home/es4c769n/salome/edf/V9/prerequisites/src/Qwt-612-qt5912sys/qwt.pro 
-
-Metis-510 :
-°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Metis-510 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Metis-510 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Metis-510 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Metis-510/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  make config prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Scotch-604EDFp1 :
-°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Scotch-604EDFp1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cd src/Make.inc ; patch -p1 < /home/es4c769n/yamm_V9_BR/src/yamm/projects/salome/softwares/prerequisites/data/scotch604_Make.inc.patch Makefile.inc.i686_pc_linux2 ; ln -s Make.inc/Makefile.inc.i686_pc_linux2 ../Makefile.inc  
-
-Cppunit-1132 :
-°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Cppunit-1132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Cppunit-1132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Cppunit-1132/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132 
-
-Libxml2-291 :
-°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Libxml2-291-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Libxml2-291-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export LDFLAGS=-L$PYTHON_INSTALL_DIR/lib ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Libxml2-291-py365/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365  --with-python=$PYTHON_INSTALL_DIR  
-
-Hdf5-1103 :
-°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Hdf5-1103 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Hdf5-1103 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Hdf5-1103/.yamm/env_build.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103  -DHDF5_BUILD_HL_LIB=ON -DHDF5_BUILD_TOOLS=ON -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_Z_LIB_SUPPORT=ON  /home/es4c769n/salome/edf/V9/prerequisites/src/Hdf5-1103
-
-Tcl-860 :
-°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Tcl-860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Tcl-860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit  
-
-Opencv-24135 :
-°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Opencv-24135-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Opencv-24135-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Opencv-24135-cm3121-py365-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Opencv-24135-cm3121-py365-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Opencv-24135-cm3121-py365-tbb424  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424"  -DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION}) -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DTBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include/tbb -DTBB_LIB_DIR=${TBB_INSTALL_DIR}/lib -DCMAKE_BUILD_TYPE:STRING=Release -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DBUILD_opencv_java=OFF  /home/es4c769n/salome/edf/V9/prerequisites/src/Opencv-24135-cm3121-py365-tbb424
-
-Pyqt-590 :
-°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Pyqt-590-py365-qt5912sys-sip4193 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Pyqt-590-py365-qt5912sys-sip4193 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Pyqt-590-py365-qt5912sys-sip4193 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/opt/qt/5.9.1/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/qt/5.9.1/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Sip-4193-py365/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Sip-4193-py365/lib/python3.6/site-packages:$PYTHONPATH" ; export SIP_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Sip-4193-py365" ;  sed -i "s:videowidget:videowidget_fake:" configure.py ; python$PYTHON_VERSION configure.py --dbus /tmp --confirm-license -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip --designer-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --qml-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --sip-incdir=$SIP_INSTALL_DIR/include/python3.6  
-
-Swig-3012 :
-°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Swig-3012-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Swig-3012-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Swig-3012-py365/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365 --without-pcre --without-octave --program-suffix=3.0  
-
-Sip-4193 :
-°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Sip-4193-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Sip-4193-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Sip-4193-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  python$PYTHON_VERSION configure.py -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -e $CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip  
-
-Muparser-132 :
-°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Muparser-132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Muparser-132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Muparser-132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/prerequisites/src/Muparser-132/configure --prefix=/home/es4c769n/salome/edf/V9/prerequisites/install/Muparser-132 
-
-Planegcs-018 :
-°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Boost-1580-py365" ; export EIGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Eigen-334" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334  -DBOOST_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Boost-1580-py365"  -DEIGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Eigen-334"  /home/es4c769n/salome/edf/V9/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334
-
-
-%%%%%%%%%%%
-% MODULES %
-%%%%%%%%%%%
-
-BLSURFPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/BLSURFPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/BLSURFPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/BLSURFPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/BLSURFPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/BLSURFPLUGIN_V9_2_0rc1  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/BLSURFPLUGIN
-
-HEXOTICPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXOTICPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXOTICPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXOTICPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXOTICPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXOTICPLUGIN_V9_2_0rc1  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXOTICPLUGIN
-
-PARAVIS_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/PARAVIS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/PARAVIS_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/PARAVIS_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/PARAVIS_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PARAVIEW_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/PARAVIS_V9_2_0rc1  -DPARAVIEW_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys"   -DVTK_DIR=${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview-5.6  -DPYTHON_EXECUTABLEwhich python3.6) -DPYTHON_ROOT_DIR=${PYTHONHOME} -DSALOME_PARAVIS_MINIMAL_CORBA=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/PARAVIS
-
-FIELDS_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/FIELDS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/FIELDS_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/FIELDS_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/FIELDS_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1/lib:$LD_LIBRARY_PATH" ; export MEDCOUPLING_INSTALL_DIR="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/FIELDS_V9_2_0rc1  -DMEDCOUPLING_ROOT_DIR="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012"   -DMEDCOUPLING_ROOT_DIR=${MEDCOUPLING_INSTALL_DIR}  -DFIELDSFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR}  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/FIELDS
-
-HEXABLOCKPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXABLOCKPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXABLOCKPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXABLOCKPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXABLOCKPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXABLOCKPLUGIN_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXABLOCKPLUGIN
-
-YACS_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/YACS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/YACS_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/YACS_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/YACS_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/YACS_V9_2_0rc1  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132"   -DSALOME_BUILD_GUI=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/YACS
-
-KERNEL_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/KERNEL ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/KERNEL_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/KERNEL_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/KERNEL_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Boost-1580-py365" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380" ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103" ; export LIBXML2_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorb-422-py365" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/KERNEL_V9_2_0rc1  -DBOOST_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Boost-1580-py365"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Hdf5-1103"  -DLIBXML2_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Libxml2-291-py365"  -DOMNIORB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR}  -DSALOME_BUILD_TESTS=ON  --with-cppunit=${CPPUNIT_INSTALL_DIR}  -DSALOME_USE_LIBBATCH=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/KERNEL
-
-SMESH_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/SMESH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/SMESH_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/SMESH_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/SMESH_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export CGNSLIB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cgnslib-331-cm3121-hd1103" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Qwt-612-qt5912sys" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/SMESH_V9_2_0rc1  -DCGNSLIB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cgnslib-331-cm3121-hd1103"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Qwt-612-qt5912sys"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Tbb-424"   -DSALOME_SMESH_USE_CGNS=ON  -DCGNS_ROOT_DIR=${CGNSLIB_INSTALL_DIR}  -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DMEDFILE_ROOT_DIR=$MEDFICHIER_INSTALL_DIR  -DPADDERHOME:STRING=${PADDERHOME}  -DQWT_ROOT_DIR=$QWT_INSTALL_DIR  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DSALOME_SMESH_USE_TBB=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/SMESH
-
-GEOM_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GEOM ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GEOM_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GEOM_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GEOM_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export FREETYPE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29" ; export OPENCV_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Opencv-24135-cm3121-py365-tbb424" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GEOM_V9_2_0rc1  -DFREETYPE_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Freetype-29"  -DOPENCV_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Opencv-24135-cm3121-py365-tbb424"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DFREETYPE_INCLUDE_DIR_freetype2="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_INCLUDE_DIR_ft2build="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_LIBRARY="${FREETYPE_INSTALL_DIR}/lib"  -DSALOME_GEOM_USE_OPENCV=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GEOM
-
-PYHELLO1_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/PYHELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/PYHELLO1_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/PYHELLO1_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/PYHELLO1_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/PYHELLO1_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/PYHELLO1
-
-HOMARD_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HOMARD ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HOMARD_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HOMARD_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HOMARD_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HOMARD_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HOMARD
-
-CALCULATOR_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/CALCULATOR ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/CALCULATOR_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/CALCULATOR_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/CALCULATOR_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/CALCULATOR_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/CALCULATOR
-
-NETGENPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/NETGENPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/NETGENPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/NETGENPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/NETGENPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export NETGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/NETGENPLUGIN_V9_2_0rc1  -DNETGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/NETGENPLUGIN
-
-HEXABLOCK_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXABLOCK ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXABLOCK_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXABLOCK_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HEXABLOCK_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HEXABLOCK_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HEXABLOCK
-
-GUI_V9_2_0rc1 :
-°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GUI ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GUI_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GUI_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GUI_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export OCC_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424" ; export PARAVIEW_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys" ; export PYQT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Pyqt-590-py365-qt5912sys-sip4193" ; export QT_INSTALL_DIR="/opt/qt/5.9.1" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Qwt-612-qt5912sys" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GUI_V9_2_0rc1  -DOCC_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424"  -DPARAVIEW_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Paraview-v560p1-cm3121-dox1814-gl2ps140-gr2380-hd1103-xml2291-ot1111-py365-qt5912sys"  -DPYQT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Pyqt-590-py365-qt5912sys-sip4193"  -DQT_ROOT_DIR="/opt/qt/5.9.1"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Qwt-612-qt5912sys"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DCAS_ROOT_DIR=$OCC_INSTALL_DIR -DPARAVIEW_VERSION=${PVVERSION} -DPYQT5_ROOT_DIR=$PYQT_INSTALL_DIR -DSALOME_BUILD_WITH_QT5=ON  -DQT5_ROOT_DIR=$QT_INSTALL_DIR  -DQWT_LIBRARY=$QWT_INSTALL_DIR/lib/libqwt.so -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GUI
-
-HELLO1_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HELLO1_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HELLO1_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HELLO1_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HELLO1_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HELLO1
-
-GMSHPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GMSHPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GMSHPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GMSHPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GMSHPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; export GMSH_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gmsh-305-cm3121-la380-occ730p2-tbb424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GMSHPLUGIN_V9_2_0rc1  -DGMSH_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Gmsh-305-cm3121-la380-occ730p2-tbb424"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GMSHPLUGIN
-
-GHS3DPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GHS3DPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GHS3DPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GHS3DPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GHS3DPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GHS3DPLUGIN_V9_2_0rc1   -DMESHGEMS_ROOT_DIR="${MESHGEMS_ROOT_DIR}"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GHS3DPLUGIN
-
-LIGHT_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/LIGHT ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/LIGHT_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/LIGHT_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/LIGHT_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/LIGHT_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/LIGHT
-
-JOBMANAGER_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/JOBMANAGER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/JOBMANAGER_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/JOBMANAGER_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/JOBMANAGER_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/JOBMANAGER_V9_2_0rc1   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/JOBMANAGER
-
-HYBRIDPLUGIN_V9_2_0rc1 :
-°°°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HYBRIDPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HYBRIDPLUGIN_V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HYBRIDPLUGIN_V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; module load qt/5.9.1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/HYBRIDPLUGIN_V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/HYBRIDPLUGIN_V9_2_0rc1  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Meshgems-274"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/HYBRIDPLUGIN
-
-GENERICSOLVER_master :
-°°°°°°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GENERICSOLVER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GENERICSOLVER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GENERICSOLVER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/modules/build/GENERICSOLVER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/GENERICSOLVER_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/modules/src/GENERICSOLVER
-
-
-%%%%%%%%%
-% TOOLS %
-%%%%%%%%%
-
-Medcoupling-V9 :
-°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/MEDCOUPLING ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Medcoupling-V9_2_0rc1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Medcoupling-V9_2_0rc1/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012" ; export METIS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Metis-510" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export SCOTCH_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Scotch-604EDFp1" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Medcoupling-V9_2_0rc1  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Cppunit-1132"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Medfichier-400rc1-hdf51103-py365-sw3012"  -DMETIS_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Metis-510"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860"  -DSCOTCH_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Scotch-604EDFp1"   -DCPPUNIT_ROOT_DIR=${CPPUNIT_INSTALL_DIR}  -DMEDFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR}  -DMETIS_ROOT_DIR=${METIS_INSTALL_DIR}  -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR}  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/MEDCOUPLING
-
-Netgen-531 :
-°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export CASROOT="/home/es4c769n/salome/edf/V9/prerequisites/install/Occ-730p2-freeimg3170-freetp29-gl2ps140-tbb424" ; export PRENETGENPLUGIN_DIR="/home/es4c769n/salome/edf/V9/V9_2_BR/modules/install/PRENETGENPLUGIN_V9_2_0rc1" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tix-841-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tix-841-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Togl-17-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Togl-17-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; TCL_INCLUDE="${TCLDIR}/include ${TKDIR}/include" ;  LDFLAGS="-L${TCLDIR}/lib/Tix-8.4.1 -L${TKDIR}/lib -L${TCLDIR}/lib/Togl1.7 -L${TCLDIR}/lib " CXXFLAGS="-I${TKDIR}/include -I${TCLDIR}/include "  ; /home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17/configure --prefix=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Netgen-531-occ730p2-tcl860-tix841-tk860-togl17  --with-occ=${CASROOT} --with-tcl=${TCLDIR}/lib --with-tk=${TKDIR}/lib --with-togl=${TCLDIR}/lib/Togl1.7 CXXFLAGS="${CXXFLAGS} -O2 -m64 -std=c++0x "  
-
-Libbatch-master :
-°°°°°°°°°°°°°°°°°
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/LIBBATCH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Libbatch-master-cm3121-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Libbatch-master-cm3121-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/tools/build/Libbatch-master-cm3121-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/V9_2_BR/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365/bin:$PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/V9_2_BR/tools/install/Libbatch-master-cm3121-py365-sw3012  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/prerequisites/install/Swig-3012-py365"   -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_INCLUDE_DIR=$PYTHON_INSTALL_DIR/include/python3.6 -DPYTHON_LIBRARY=$PYTHON_INSTALL_DIR/lib/libpython3.6.so  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/V9_2_BR/tools/src/LIBBATCH
-
diff --git a/config/build_options/edf/options_compilation_salome_V9_3_0.txt b/config/build_options/edf/options_compilation_salome_V9_3_0.txt
deleted file mode 100644 (file)
index 82faac7..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-%%%%%%%%%%%%%%%%%
-% PREREQUISITES %
-%%%%%%%%%%%%%%%%%
-
-Planegcs-018 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334 ; export PYTHON_VERSION="3.6" ; module load  python/3.6.5 boost/1.58.0 cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/opt/boost/1.58.0" ; export EIGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Eigen-334" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334  -DBOOST_ROOT_DIR="/opt/boost/1.58.0"  -DEIGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Eigen-334"  /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Planegcs-018-bst1580scibian92sys-cm3121scibian91sys-ei334
-
-Gmsh-414 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys ; export PYTHON_VERSION="3.6" ; module load lapack/3.8.0  gl2ps/1.4.0.1 occ/7.3.1 cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export LD_LIBRARY_PATH="/opt/occ/7.3.1/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys  -DENABLE_ACIS=OFF -DENABLE_BUILD_SHARED=ON -DENABLE_FLTK=OFF -DENABLE_MED=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_PARSER=ON -DENABLE_PETSC=OFF -DENABLE_PRIVATE_API=ON -DENABLE_CGNS=OFF  /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys
-
-Qwt-612 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Qwt-612-qt591scibian91sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Qwt-612-qt591scibian91sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Qwt-612-qt591scibian91sys ; export PYTHON_VERSION="3.6" ; module load  qt/5.9.1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export PATH="/opt/qt/5.9.1/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/qt/5.9.1/lib:$LD_LIBRARY_PATH" ; cd /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Qwt-612-qt591scibian91sys ;sed "s:/usr/local/qwt-\$\$QWT_VERSION:$CURRENT_SOFTWARE_INSTALL_DIR:" qwtconfig.pri > qwtconfig.pri_sed ; mv qwtconfig.pri_sed qwtconfig.pri ; cd /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Qwt-612-qt591scibian91sys ;qmake -d /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Qwt-612-qt591scibian91sys/qwt.pro 
-
-Scotch-604EDFp1 :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Scotch-604EDFp1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cd src/Make.inc ; patch -p1 < /home/es4c769n/yamm_V9_3_BR/src/yamm/projects/salome/softwares/prerequisites/data/scotch604_Make.inc.patch Makefile.inc.i686_pc_linux2 ; ln -s Make.inc/Makefile.inc.i686_pc_linux2 ../Makefile.inc  
-
-Eigen-334 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Eigen-334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Eigen-334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Eigen-334 ; export PYTHON_VERSION="3.6" ; module load  cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Eigen-334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Eigen-334  /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Eigen-334
-
-Metis-510 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Metis-510 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Metis-510 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Metis-510 ; export PYTHON_VERSION="3.6" ; module load  cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Metis-510/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  make config prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Togl-17 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Togl-17-tcl866sys-tk8661sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Togl-17-tcl866sys-tk8661sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Togl-17-tcl866sys-tk8661sys ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  $CURRENT_SOFTWARE_SRC_DIR/configure --enable-threads --enable-shared --enable-64bit --with-tcl=/usr/lib/tcl8.6 --prefix=${CURRENT_SOFTWARE_INSTALL_DIR} --exec-prefix=${CURRENT_SOFTWARE_INSTALL_DIR} --with-tk=/usr/lib/tk8.6  
-
-Opencv-24135 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys ; export PYTHON_VERSION="3.6" ; module load  python/3.6.5 cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export PATH="/opt/cmake/3.12.1/bin:$PATH" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"  -DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION}) -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DCMAKE_BUILD_TYPE:STRING=Release -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DBUILD_opencv_java=OFF  /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys
-
-Cppunit-1132 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Cppunit-1132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/build/Cppunit-1132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9_3_0/prerequisites/src/Cppunit-1132/configure --prefix=/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132 
-
-
-%%%%%%%%%%%
-% MODULES %
-%%%%%%%%%%%
-
-YDEFX_V9_3_0 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/YDEFX ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/YDEFX_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/YDEFX_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 qt/5.9.1 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 python3-pyqt/5.9.0 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/YDEFX_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Configuration-V9_3_0" ; export PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132" ; export PY2CPP_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Py2cpp-v10" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/YDEFX_V9_3_0  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Configuration-V9_3_0"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132"  -DPY2CPP_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Py2cpp-v10"  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_PREFIX_PATH="$KERNEL_ROOT_DIR/salome_adm/cmake_files;$PY2CPP_ROOT_DIR/lib/cmake/py2cpp/;"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/YDEFX
-
-PYHELLO1_V9_3_0 :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/PYHELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/PYHELLO1_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/PYHELLO1_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 qt/5.9.1 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 python3-pyqt/5.9.0 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/PYHELLO1_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/PYHELLO1_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/PYHELLO1
-
-CALCULATOR_V9_3_0 :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/CALCULATOR ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/CALCULATOR_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/CALCULATOR_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/CALCULATOR_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/CALCULATOR_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/CALCULATOR
-
-YACS_V9_3_0 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/YACS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/YACS_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/YACS_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/YACS_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/YACS_V9_3_0  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DSALOME_BUILD_GUI=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/YACS
-
-GUI_V9_3_0 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GUI ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GUI_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GUI_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 qt/5.9.1 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 python3-pyqt/5.9.0 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GUI_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export DOCUTILS_INSTALL_DIR="/opt/python3-docutils/0.12" ; export OPENCASCADE_ROOT_DIR="/opt/occ/7.3.1" ; export PARAVIEW_ROOT_DIR="/opt/pv/5.6.0" ; export PYQT_INSTALL_DIR="/opt/python3-pyqt/5.9.0" ; export QT_INSTALL_DIR="/opt/qt/5.9.1" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Qwt-612-qt591scibian91sys" ; export SIP_INSTALL_DIR="/opt/python3-sip/4.19.3" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GUI_V9_3_0  -DDOCUTILS_ROOT_DIR="/opt/python3-docutils/0.12"  -DOPENCASCADE_ROOT_DIR="/opt/occ/7.3.1"  -DPARAVIEW_ROOT_DIR="/opt/pv/5.6.0"  -DPYQT_ROOT_DIR="/opt/python3-pyqt/5.9.0"  -DQT_ROOT_DIR="/opt/qt/5.9.1"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Qwt-612-qt591scibian91sys"  -DSIP_ROOT_DIR="/opt/python3-sip/4.19.3"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DPARAVIEW_VERSION=${PVVERSION-5.6} -DVTK_ROOT_DIR=${PARAVIEW_ROOT_DIR} -DVTK_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.6} -DParaView_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.6} -DPYQT5_ROOT_DIR=$PYQT_INSTALL_DIR -DSALOME_BUILD_WITH_QT5=ON  -DQT5_ROOT_DIR=$QT_INSTALL_DIR  -DQWT_LIBRARY=$QWT_INSTALL_DIR/lib/libqwt.so -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GUI
-
-HYBRIDPLUGIN_V9_3_0 :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HYBRIDPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HYBRIDPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HYBRIDPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HYBRIDPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HYBRIDPLUGIN_V9_3_0  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HYBRIDPLUGIN
-
-FIELDS_V9_3_0 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/FIELDS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/FIELDS_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/FIELDS_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/FIELDS_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export KERNEL_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/KERNEL_V9_3_0" ; export PATH="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0/lib:$LD_LIBRARY_PATH" ; export MEDCOUPLING_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0" ; export FIELDSFILE_ROOT_DIR="/opt/med/4.0serial" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/FIELDS_V9_3_0  -DKERNEL_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/KERNEL_V9_3_0"  -DMEDCOUPLING_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0"  -DFIELDSFILE_ROOT_DIR="/opt/med/4.0serial"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/FIELDS
-
-GHS3DPLUGIN_V9_3_0 :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GHS3DPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GHS3DPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GHS3DPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GHS3DPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GHS3DPLUGIN_V9_3_0   -DMESHGEMS_ROOT_DIR="${MESHGEMS_ROOT_DIR}"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GHS3DPLUGIN
-
-GENERICSOLVER_V9_3_0 :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GENERICSOLVER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GENERICSOLVER_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GENERICSOLVER_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 cmake/3.12.1 omniorbpy/4.2.2 python/3.6.5 python3-pygments/2.0.2 python3-jinja/2.7.3 python3-sphinx/1.7.6 hdf5/1.10.3 lapack/3.8.0 doxygen/1.8.14 python3-docutils/0.12 swig/3.0.12 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GENERICSOLVER_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GENERICSOLVER_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GENERICSOLVER
-
-HOMARD_V9_3_0 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HOMARD ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HOMARD_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HOMARD_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HOMARD_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HOMARD_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HOMARD
-
-NETGENPLUGIN_V9_3_0 :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/NETGENPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/NETGENPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/NETGENPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/NETGENPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export NETGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/NETGENPLUGIN_V9_3_0  -DNETGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/NETGENPLUGIN
-
-GEOM_V9_3_0 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GEOM ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GEOM_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GEOM_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 qt/5.9.1 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 python3-pyqt/5.9.0 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GEOM_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export OPENCV_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GEOM_V9_3_0  -DOPENCV_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Opencv-24135-cm3121scibian91sys-py365scibian91sys-tbb43sys"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DSALOME_GEOM_USE_OPENCV=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GEOM
-
-LIGHT_V9_3_0 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/LIGHT ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/LIGHT_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/LIGHT_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/LIGHT_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/LIGHT_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/LIGHT
-
-SMESH_V9_3_0 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/SMESH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/SMESH_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/SMESH_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/SMESH_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/opt/boost/1.58.0" ; export CGNSLIB_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cgnslib-331-cm3121scibian91sys-hd1103scibian91sys" ; export MEDFICHIER_INSTALL_DIR="/opt/med/4.0serial" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Qwt-612-qt591scibian91sys" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/SMESH_V9_3_0  -DBOOST_ROOT_DIR="/opt/boost/1.58.0"  -DCGNSLIB_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cgnslib-331-cm3121scibian91sys-hd1103scibian91sys"  -DMEDFICHIER_ROOT_DIR="/opt/med/4.0serial"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Qwt-612-qt591scibian91sys"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DBOOST_ROOT_DIR=$BOOST_INSTALL_DIR  -DBoost_USE_MULTITHREADED=ON  -DSALOME_SMESH_USE_CGNS=ON  -DCGNS_ROOT_DIR=${CGNSLIB_INSTALL_DIR}  -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DMEDFILE_ROOT_DIR=$MEDFICHIER_INSTALL_DIR  -DPADDERHOME:STRING=${PADDERHOME}  -DQWT_ROOT_DIR=$QWT_INSTALL_DIR  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DSALOME_SMESH_USE_TBB=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/SMESH
-
-BLSURFPLUGIN_V9_3_0 :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/BLSURFPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/BLSURFPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/BLSURFPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/BLSURFPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/BLSURFPLUGIN_V9_3_0  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/BLSURFPLUGIN
-
-SHAPER_V9_3_0 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/SHAPER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/SHAPER_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/SHAPER_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 qt/5.9.1 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 python3-pyqt/5.9.0 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/SHAPER_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export OPENCASCADE_ROOT_DIR="/opt/occ/7.3.1" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ; export QT_INSTALL_DIR="/opt/qt/5.9.1" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/SHAPER_V9_3_0  -DOPENCASCADE_ROOT_DIR="/opt/occ/7.3.1"  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"  -DQT_ROOT_DIR="/opt/qt/5.9.1"   -DQT5_ROOT_DIR=${QT_INSTALL_DIR} -DADD_MODELS_TESTS=TRUE -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/SHAPER
-
-HEXOTICPLUGIN_V9_3_0 :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXOTICPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXOTICPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXOTICPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXOTICPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXOTICPLUGIN_V9_3_0  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXOTICPLUGIN
-
-HEXABLOCKPLUGIN_V9_3_0 :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXABLOCKPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXABLOCKPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXABLOCKPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXABLOCKPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXABLOCKPLUGIN_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXABLOCKPLUGIN
-
-HEXABLOCK_V9_3_0 :
-******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXABLOCK ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXABLOCK_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXABLOCK_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HEXABLOCK_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HEXABLOCK_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HEXABLOCK
-
-PARAVIS_V9_3_0 :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/PARAVIS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/PARAVIS_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/PARAVIS_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/PARAVIS_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export PARAVIEW_INSTALL_DIR="/opt/pv/5.6.0" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/PARAVIS_V9_3_0  -DPARAVIEW_ROOT_DIR="/opt/pv/5.6.0"   -DVTK_DIR=${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview-5.6  -DPYTHON_EXECUTABLEwhich python3.6) -DPYTHON_ROOT_DIR=${PYTHONHOME} -DSALOME_PARAVIS_MINIMAL_CORBA=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/PARAVIS
-
-HELLO1_V9_3_0 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HELLO1_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HELLO1_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/HELLO1_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/HELLO1_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/HELLO1
-
-GMSHPLUGIN_V9_3_0 :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GMSHPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GMSHPLUGIN_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GMSHPLUGIN_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 med/4.0serial python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/GMSHPLUGIN_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export GMSH_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/GMSHPLUGIN_V9_3_0  -DGMSH_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Gmsh-414-cm3121scibian91sys-la380scibian91sys-occ731scibian91sys-tbb43sys"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/GMSHPLUGIN
-
-KERNEL_V9_3_0 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/KERNEL ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/KERNEL_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/KERNEL_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load numpy/1.15.1 omniorbpy/4.2.2 omniorb/4.2.2 boost/1.58.0 cmake/3.12.1  python/3.6.5 python3-pygments/2.0.2 python3-jinja/2.7.3 python3-sphinx/1.7.6 hdf5/1.10.3 lapack/3.8.0 doxygen/1.8.14 python3-docutils/0.12 swig/3.0.12 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/KERNEL_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/opt/boost/1.58.0" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132" ; export HDF5_INSTALL_DIR="/opt/hdf5/1.10.3" ; export OMNIORB_INSTALL_DIR="/opt/omniorb/4.2.2" ; export OMNIORBPY_INSTALL_DIR="/opt/omniorbpy/4.2.2" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/KERNEL_V9_3_0  -DBOOST_ROOT_DIR="/opt/boost/1.58.0"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132"  -DHDF5_ROOT_DIR="/opt/hdf5/1.10.3"  -DOMNIORB_ROOT_DIR="/opt/omniorb/4.2.2"  -DOMNIORBPY_ROOT_DIR="/opt/omniorbpy/4.2.2"  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR}  -DSALOME_BUILD_TESTS=ON  --with-cppunit=${CPPUNIT_INSTALL_DIR}  -DSALOME_USE_LIBBATCH=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/KERNEL
-
-JOBMANAGER_V9_3_0 :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/JOBMANAGER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/JOBMANAGER_V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/JOBMANAGER_V9_3_0 ; export PYTHON_VERSION="3.6" ; module load  hdf5/1.10.3 python3-scipy/0.19.1 python3-jinja/2.7.3 swig/3.0.12 cmake/3.12.1 python3-sip/4.19.3 lapack/3.8.0 gl2ps/1.4.0.1 python3-docutils/0.12 python3-pyqt/5.9.0 numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 python3-matplotlib/2.2.2 pv/5.6.0 python3-sphinx/1.7.6 py36-nlopt/2.4.2 omniorbpy/4.2.2 occ/7.3.1 python/3.6.5 python3-pygments/2.0.2 doxygen/1.8.14 qt/5.9.1 openturns/1.12.0 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/build/JOBMANAGER_V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/JOBMANAGER_V9_3_0   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/src/JOBMANAGER
-
-
-%%%%%%%%%
-% TOOLS %
-%%%%%%%%%
-
-Py2cpp :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/PY2CPP ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Py2cpp-v10 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Py2cpp-v10 ; export PYTHON_VERSION="3.6" ; module load  numpy/1.15.1 omniorb/4.2.2 boost/1.58.0 cmake/3.12.1 omniorbpy/4.2.2 python/3.6.5 python3-pygments/2.0.2 python3-jinja/2.7.3 python3-sphinx/1.7.6 hdf5/1.10.3 lapack/3.8.0 doxygen/1.8.14 python3-docutils/0.12 swig/3.0.12 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Py2cpp-v10/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Configuration-V9_3_0" ; export PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Py2cpp-v10  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Configuration-V9_3_0"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132"  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/PY2CPP
-
-Medcoupling :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/MEDCOUPLING ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Medcoupling-V9_3_0 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0 ; export PYTHON_VERSION="3.6" ; module load numpy/1.15.1  boost/1.58.0 cmake/3.12.1 med/4.0serial python/3.6.5 python3-scipy/0.19.1 python3-pygments/2.0.2 python3-jinja/2.7.3 python3-sphinx/1.7.6 hdf5/1.10.3 lapack/3.8.0 doxygen/1.8.14 python3-docutils/0.12 swig/3.0.12 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Medcoupling-V9_3_0/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132" ; export MEDFICHIER_INSTALL_DIR="/opt/med/4.0serial" ; export METIS_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Metis-510" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ; export SCOTCH_INSTALL_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Scotch-604EDFp1" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Medcoupling-V9_3_0  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Cppunit-1132"  -DMEDFICHIER_ROOT_DIR="/opt/med/4.0serial"  -DMETIS_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Metis-510"  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"  -DSCOTCH_ROOT_DIR="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Scotch-604EDFp1"   -DCPPUNIT_ROOT_DIR=${CPPUNIT_INSTALL_DIR}  -DMEDFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR}  -DMETIS_ROOT_DIR=${METIS_INSTALL_DIR}  -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR}  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/MEDCOUPLING
-
-Netgen :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17 ; export PYTHON_VERSION="3.6" ; module load  gl2ps/1.4.0.1 occ/7.3.1 cmake/3.12.1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export CASROOT="/opt/occ/7.3.1" ; export PRENETGENPLUGIN_DIR="/home/es4c769n/salome/edf/V9_3_0/V9_3_0/modules/install/PRENETGENPLUGIN_V9_3_0" ; export PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Tix-841-tcl866sys-tk8661sys/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Tix-841-tcl866sys-tk8661sys/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Togl-17-tcl866sys-tk8661sys/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9_3_0/prerequisites/install/Togl-17-tcl866sys-tk8661sys/lib:$LD_LIBRARY_PATH" ;  LDFLAGS="-L${TCLDIR}/lib/Tix-8.4.1 -L/usr/lib/tcl8.6 -L${TCLDIR}/lib/Togl1.7 -L/usr/lib/tk8.6 " CXXFLAGS="-I/usr/include/tk8.6 -I/usr/include/tcl8.6 "  ; /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17/configure --prefix=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Netgen-531-occ731scibian91sys-tcl866sys-tix841-tk8661sys-togl17  --with-occ=${CASROOT} --with-tcl=/usr/lib/tcl8.6 --with-tk=/usr/lib/tk8.6 --with-togl=${TCLDIR}/lib/Togl1.7 CXXFLAGS="${CXXFLAGS} -O2 -m64 -std=c++0x "  
-
-Libbatch :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/LIBBATCH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Libbatch-V2_4_1-cm3121scibian91sys-py365scibian91sys-sw3012scibian91sys ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Libbatch-V2_4_1-cm3121scibian91sys-py365scibian91sys-sw3012scibian91sys ; export PYTHON_VERSION="3.6" ; module load  python/3.6.5 cmake/3.12.1 swig/3.0.12 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/build/Libbatch-V2_4_1-cm3121scibian91sys-py365scibian91sys-sw3012scibian91sys/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9_3_0/V9_3_0/salome_modules.sh >/dev/null 2>&1 ; export PATH="/opt/cmake/3.12.1/bin:$PATH" ; export PATH="/opt/python/3.6.5/bin:$PATH" ; export LD_LIBRARY_PATH="/opt/python/3.6.5/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/opt/python/3.6.5" ; export PATH="/opt/swig/3.0.12/bin:$PATH" ; export SWIG_INSTALL_DIR="/opt/swig/3.0.12" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/install/Libbatch-V2_4_1-cm3121scibian91sys-py365scibian91sys-sw3012scibian91sys  -DPYTHON_ROOT_DIR="/opt/python/3.6.5"  -DSWIG_ROOT_DIR="/opt/swig/3.0.12"   -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_INCLUDE_DIR=$PYTHON_INSTALL_DIR/include/python3.6 -DPYTHON_LIBRARY=$PYTHON_INSTALL_DIR/lib/libpython3.6.so  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9_3_0/V9_3_0/tools/src/LIBBATCH
-
diff --git a/config/build_options/edf/options_compilation_salome_master.txt b/config/build_options/edf/options_compilation_salome_master.txt
deleted file mode 100644 (file)
index cc756c3..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-%%%%%%%%%%%%%%%%%
-% PREREQUISITES %
-%%%%%%%%%%%%%%%%%
-
-Muparser-132 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Muparser-132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Muparser-132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Muparser-132/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132 
-
-Python-365 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export LDFLAGS="${LDFLAGS} -L${TCLDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TCLDIR}/include" ; export LDFLAGS="${LDFLAGS} -L${TKDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TKDIR}/include" ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Python-365-tcl860-tk860/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860 --enable-shared --without-pymalloc  
-
-Sip-4193 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Sip-4193-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Sip-4193-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  python$PYTHON_VERSION configure.py -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -e $CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip  
-
-Boost-1580 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Boost-1580-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Boost-1580-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  sh bootstrap.sh --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Ispc-1100 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Ispc-1100-cm3121-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Ispc-1100-cm3121-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Ispc-1100-cm3121-py365/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365   -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DCMAKE_CXX_COMPILER=clang++-4.0  -DCMAKE_C_COMPILER=clang-4.0  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Ispc-1100-cm3121-py365
-
-Scotch-604EDFp1 :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Scotch-604EDFp1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cd src/Make.inc ; patch -p1 < /home/es4c769n/yamm/src/yamm/projects/salome/softwares/prerequisites/data/scotch604_Make.inc.patch Makefile.inc.i686_pc_linux2 ; ln -s Make.inc/Makefile.inc.i686_pc_linux2 ../Makefile.inc  
-
-Qt-591 :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Qt-591_nowebengine ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Qt-591_nowebengine ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Qt-591_nowebengine/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine -opensource -confirm-license -no-rpath -skip qtwebengine -qt-xcb 
-
-Eigen-334 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Eigen-334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Eigen-334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Eigen-334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Eigen-334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Eigen-334  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Eigen-334
-
-Gl2ps-14020170729EDFp1 :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121  -DCMAKE_BUILD_TYPE:STRING=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121
-
-Tk-860 :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Tk-860-tcl860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Tk-860-tcl860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ;  cd $CURRENT_SOFTWARE_BUILD_DIR; $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include  
-
-Melissa-000 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Melissa-000-cm3121-num1151-py365-zmq431 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Melissa-000-cm3121-num1151-py365-zmq431 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Melissa-000-cm3121-num1151-py365-zmq431 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Melissa-000-cm3121-num1151-py365-zmq431/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export ZEROMQ_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Zeromq-431-cm3121" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Melissa-000-cm3121-num1151-py365-zmq431  -DZEROMQ_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Zeromq-431-cm3121"   -DZeroMQ_DIR=${ZEROMQ_INSTALL_DIR}/share/cmake/ZeroMQ  -DBUILD_DOCUMENTATION=OFF  -DBUILD_WITH_MPI=ON  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Melissa-000-cm3121-num1151-py365-zmq431
-
-Tcl-860 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Tcl-860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Tcl-860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit  
-
-Openturns_subsetinverse-15 :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export OPENTURNS_HOME="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_tool-114-bst1580-cmi136-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365/bin:$PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012  -DOPENTURNS_HOME="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_tool-114-bst1580-cmi136-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_PREFIX_PATH=${OPENTURNS_HOME}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DCMAKE_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include  -DCMAKE_LIBRARY_PATH=${PYTHON_INSTALL_DIR}/lib  -DPYTHON_INCLUDE_DIR=$PYTHON_INSTALL_DIR/include/python3.6 -DPYTHON_LIBRARY=$PYTHON_INSTALL_DIR/lib/libpython3.6.so -DCMAKE_FIND_ROOT_PATH=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DSWIG_DIR:FILEPATHswig3.0 -swiglib)  -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON  -DUSE_SPHINX=OFF  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Openturns_subsetinverse-15-cm3121-ot1140-py365-sw3012
-
-Zeromq-431 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Zeromq-431-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Zeromq-431-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Zeromq-431-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Zeromq-431-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Zeromq-431-cm3121  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Zeromq-431-cm3121
-
-Lapack-380 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Lapack-380-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121  -DBUILD_SHARED_LIBS:BOOL=ON  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Lapack-380-cm3121
-
-Embree-352 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Embree-352-cm3121-ispc1100 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Embree-352-cm3121-ispc1100 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Embree-352-cm3121-ispc1100/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365/lib:$LD_LIBRARY_PATH" ; export ISPC_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100  -DISPC_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365"   -DCMAKE_CXX_COMPILER=clang++-4.0  -DEMBREE_TUTORIALS=FALSE  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Embree-352-cm3121-ispc1100
-
-Qwt-612 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Qwt-612-qt591 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Qwt-612-qt591 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qwt-612-qt591 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; cd /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Qwt-612-qt591 ;sed "s:/usr/local/qwt-\$\$QWT_VERSION:$CURRENT_SOFTWARE_INSTALL_DIR:" qwtconfig.pri > qwtconfig.pri_sed ; mv qwtconfig.pri_sed qwtconfig.pri ; cd /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Qwt-612-qt591 ;qmake -d /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Qwt-612-qt591/qwt.pro 
-
-Gdal-240 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Gdal-240 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Gdal-240 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export HDF5HOME="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103/lib:$LD_LIBRARY_PATH" ; export NETCDF_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103" ;  cd $CURRENT_SOFTWARE_SRC_DIR;  ./configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR  LDFLAGS="-L${HDF5HOME}/lib/ -lhdf5 -L${HDF5HOME}/lib/libhdf5_hl.so -lhdf5_hl -L${NETCDF_INSTALL_DIR}/lib -lnetcdf"  HDF5_CFLAGS="-I${HDF5HOME}/include -L${HDF5HOME}/lib/ -lhdf5 -L${HDF5HOME}/lib/libhdf5_hl.so -lhdf5_hl"  LIBS="-L${HDF5HOME}/lib/ -lhdf5 -L${HDF5HOME}/lib/libhdf5_hl.so -lhdf5_hl -L${NETCDF_INSTALL_DIR}/lib -lnetcdf"  HDF5_LIBS="-L${HDF5HOME}/lib/ -lhdf5 -L${HDF5HOME}/lib/libhdf5_hl.so -lhdf5_hl "  HDF5_INCLUDE="-I${HDF5HOME}/include"  --with-pcraster=internal  --with-png=internal  --with-libtiff=internal  --with-geotiff=internal  --with-jpeg=internal  --with-gif=internal  --with-python  --with-geos=yes  --with-sqlite3=${SQLITE_ROOT} --with-hdf5=${HDF5HOME}  --with-netcdf=${NETCDF_INSTALL_DIR}   
-
-Paraview-580 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Doxygen-1814-gr2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Doxygen-1814-gr2380/lib:$LD_LIBRARY_PATH" ; export DOXYGEN_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Doxygen-1814-gr2380" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100/lib:$LD_LIBRARY_PATH" ; export EMBREE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240/lib:$LD_LIBRARY_PATH" ; export GDAL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380/lib:$LD_LIBRARY_PATH" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121/lib:$LD_LIBRARY_PATH" ; export HDF5_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Matplotlib-222-num1151-pyqt590-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132/lib:$LD_LIBRARY_PATH" ; export MUPARSER_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103/lib:$LD_LIBRARY_PATH" ; export NETCDF_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103" ; export OPENTURNS_TOOL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_tool-114-bst1580-cmi136-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100/lib:$LD_LIBRARY_PATH" ; export OSPRAY_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export QT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; unset PYTHONHOME ; export PYTHONPATH=$CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages:$PYTHONPATH ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591  -DDOXYGEN_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Doxygen-1814-gr2380"  -DEMBREE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100"  -DGDAL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240"  -DGL2PS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121"  -DMUPARSER_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Muparser-132"  -DNETCDF_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103"  -DOPENTURNS_TOOL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Openturns_tool-114-bst1580-cmi136-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424"  -DOSPRAY_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DQT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DDOXYGEN_EXECUTABLE=${DOXYGEN_INSTALL_DIR}/bin/doxygen  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -Dembree_DIR==${EMBREE_INSTALL_DIR}/lib/cmake/embree-${EMBREE_VERSION}  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPARAVIEW_ENABLE_GDAL:BOOL=ON  -DGDAL_LIBRARY=${GDAL_INSTALL_DIR}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDAL_INSTALL_DIR}/include  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_INSTALL_DIR}/include  -DGL2PS_LIBRARY:STRING=${GL2PS_INSTALL_DIR}/lib/libgl2ps.so  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DDOXYGEN_DOT_EXECUTABLE=${GRAPHVIZ_INSTALL_DIR}/bin/dot  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DHDF5_hdf5_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib  -DHDF5_hdf5_hl_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so  -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so  -DHDF5_C_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include  -DHDF5_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include   -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so   -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=ON -DPARAVIEW_USE_OPENTURNS=ON -DPARAVIEW_ENABLE_OPENTURNS=ON -DPARAVIEW_ENABLE_WEB=OFF  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DOpenTURNS_DIR=${OPENTURNS_TOOL_INSTALL_DIR}/lib/cmake/openturns  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPARAVIEW_USE_OSPRAY:BOOL=ON  -DOSPRAY_INSTALL_DIR=${OSPRAY_INSTALL_DIR}  -DPARAVIEW_ENABLE_RAYTRACING=ON  -DPYTHON_EXECUTABLEwhich python3.6)  -DVTK_PYTHON_VERSION=3  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DQT_HELP_GENERATOR=${QT_INSTALL_DIR}/bin/qhelpgenerator -DPARAVIEW_QT_VERSION=5  -DPYVERSIONS_EXE=/fake_python_exe  -DPARAVIEW_USE_MPI=ON -DHDF5_IS_PARALLEL:BOOL=OFF  -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_USE_64BIT_IDS:BOOL=OFF -DPARAVIEW_BUILD_QT:BOOL=ON -DPARAVIEW_USE_PYTHON:BOOL=ON -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DVTK_USE_SYSTEM_PYGMENTS:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_NO_PYTHON_THREADS=OFF -DPARAVIEW_ENABLE_CATALYST:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_NonOrthogonalSource:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_RGBZView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SciberQuestToolKit:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_StreamingParticles:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_UncertaintyRendering:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON -DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON -DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON -DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON -DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON -DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON -DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DVTK_NO_PYTHON_THREADS=OFF -DVTK_PYTHON_FULL_THREADSAFE=ON -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DVTK_MODULE_ENABLE_VTK_RenderingLOD=YES -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP -DPARAVIEW_AUTOLOAD_PLUGIN_StreamingParticles=ON -DPARAVIEW_AUTOLOAD_PLUGIN_UncertaintyRendering=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EyeDomeLighting=ON -DPARAVIEW_AUTOLOAD_PLUGIN_H5PartReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_PointSprite=ON -DPARAVIEW_AUTOLOAD_PLUGIN_SurfaceLIC=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CatalystScriptGeneratorPlugin=ON -DPARAVIEW_ENABLE_WEB:BOOL=OFF -DVTK_INSTALL_LIBRARY_DIR="lib/paraview-5.8" -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="site-packages" -DVTK_INSTALL_ARCHIVE_DIR="lib/paraview-5.8" -DPARAVIEW_INSTALL_PLUGINS_DIR="lib/paraview-5.8/plugins" -DVTKm_INSTALL_LIB_DIR="lib/paraview-5.8" -DVTK_USE_SYSTEM_GL2PS:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON -DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON -DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON -DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON -DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON -DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON -DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON -DVTK_ALL_NEW_OBJECT_FACTORY=ON -DVTK_MODULE_ENABLE_VTK_RenderingLOD=YES -DVTK_MODULE_ENABLE_VTK_FiltersCore=YES -DVTK_MODULE_ENABLE_VTK_FiltersParallelGeometry=YES -DVTK_MODULE_ENABLE_VTK_FiltersParallelMPI=YES -DVTK_MODULE_ENABLE_VTK_ParallelMPI=YES -DVTK_MODULE_ENABLE_VTK_CommonCore=YES -DVTK_MODULE_ENABLE_VTK_IOCore=YES -DVTK_MODULE_ENABLE_VTK_IOEnSight=YES -DVTK_MODULE_ENABLE_VTK_IOInfovis=YES  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591
-
-Omniorb-422 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Omniorb-422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Omniorb-422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python3.6); /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Omniorb-422-py365/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365 --disable-ipv6 
-
-Occ-740p3 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freeimage-3170EDFp2/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freeimage-3170EDFp2/lib:$LD_LIBRARY_PATH" ; export FREEIMAGE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freeimage-3170EDFp2" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29/lib:$LD_LIBRARY_PATH" ; export FREETYPE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TCL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860" ; export CFLAGS="-fPIC -m64" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424  -DFREEIMAGE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freeimage-3170EDFp2"  -DFREETYPE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29"  -DGL2PS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DTBB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424"  -DTCL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860"  -DTK_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860"  -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=${FREEIMAGE_INSTALL_DIR} -D3RDPARTY_FREEIMAGE_LIBRARY_DIR:PATH=${FREEIMAGE_INSTALL_DIR}/lib -D3RDPARTY_FREEIMAGE_LIBRARY:FILEPATH=${FREEIMAGE_INSTALL_DIR}/lib/libfreeimageplus-${FreeImage_version}.so -D3RDPARTY_FREETYPE_DIR=${FREETYPE_INSTALL_DIR} -DUSE_GL2PS=ON -D3RDPARTY_GL2PS_DIR=${GL2PS_INSTALL_DIR} -DUSE_TBB=ON -D3RDPARTY_TBB_DIR=${TBB_INSTALL_DIR} -D3RDPARTY_TBB_LIBRARY_DIR=${TBB_INSTALL_DIR}/lib -D3RDPARTY_TBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include -D3RDPARTY_TCL_DIR=${TCL_INSTALL_DIR} -D3RDPARTY_TCL_LIBRARY_DIR=${TCL_INSTALL_DIR}/lib -D3RDPARTY_TCL_LIBRARY:PATH=${TCL_LIBRARY_SO} -D3RDPARTY_TK_DIR=${TK_INSTALL_DIR} -D3RDPARTY_TK_LIBRARY_DIR=${TK_INSTALL_DIR}/lib -D3RDPARTY_TK_LIBRARY:PATH=${TK_LIBRARY_SO}  -DINSTALL_DIR_RESOURCE=src  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424
-
-Ospray-184 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Ospray-184-cm3121-emb352-ispc1100 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Ospray-184-cm3121-emb352-ispc1100 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Ospray-184-cm3121-emb352-ispc1100/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100/lib:$LD_LIBRARY_PATH" ; export EMBREE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365/lib:$LD_LIBRARY_PATH" ; export ISPC_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ospray-184-cm3121-emb352-ispc1100  -DEMBREE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Embree-352-cm3121-ispc1100"  -DISPC_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Ispc-1100-cm3121-py365"  -Dembree_DIR==${EMBREE_INSTALL_DIR}/lib/cmake/embree-${EMBREE_VERSION}  -DCMAKE_CXX_COMPILER=clang++-4.0  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Ospray-184-cm3121-emb352-ispc1100
-
-Togl-17 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Togl-17-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ;  $CURRENT_SOFTWARE_SRC_DIR/configure --enable-threads --enable-shared --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include --with-tk=$TK_INSTALL_DIR/lib --with-tkinclude=$TK_INSTALL_DIR/include  
-
-Netcdf-462 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Netcdf-462-cm3121-hd1103 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Netcdf-462-cm3121-hd1103 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Netcdf-462-cm3121-hd1103/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121/lib:$LD_LIBRARY_PATH" ; export HDF5_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Netcdf-462-cm3121-hd1103  -DHDF5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121"   -DHAVE_HDF5_H=${HDF5_INSTALL_DIR}/include/hdf5.h  -DHDF5_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include  -DHDF5_LIBRARIES=${HDF5_INSTALL_DIR}/lib  -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so  -DHDF5_C_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5.so -DCMAKE_BUILD_TYPE:STRING=Release  -DCURL_LIBRARY=/usr/lib/x86_64-linux-gnu/libcurl.so.4  -DCURL_INCLUDE_DIR=/projets/salome/logiciels/salome  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Netcdf-462-cm3121-hd1103
-
-Planegcs-018 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365" ; export EIGEN_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Eigen-334" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334  -DBOOST_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365"  -DEIGEN_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Eigen-334"  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334
-
-Graphviz-2380 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Graphviz-2380 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Graphviz-2380 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cd $CURRENT_SOFTWARE_SRC_DIR ; ./configure --enable-perl=no --enable-java=no --enable-tcl=no --enable-python=no --with-qt=no --with-pangocairo=yes --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Omniorbpy-422EDFp1 :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export OMNIORB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python$PYTHON_VERSION); /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 --with-omniorb=$OMNIORB_INSTALL_DIR 
-
-Hdf5-1103 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Hdf5-1103-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Hdf5-1103-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Hdf5-1103-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121  -DHDF5_BUILD_HL_LIB=ON -DHDF5_BUILD_TOOLS=ON -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_Z_LIB_SUPPORT=ON  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Hdf5-1103-cm3121
-
-Medfichier-410 :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Medfichier-410-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Medfichier-410-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Medfichier-410-hdf51103-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export HDF5_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Medfichier-410-hdf51103-py365-sw3012/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012  --enable-mesgerr --with-swig=/usr/bin/swig --with-hdf5=$HDF5_INSTALL_DIR  
-
-Freeimage-3170EDFp2 :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freeimage-3170EDFp2 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cp -r $CURRENT_SOFTWARE_SRC_DIR/* $CURRENT_SOFTWARE_BUILD_DIR;  
-
-Freetype-29 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Freetype-29 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Freetype-29 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Freetype-29/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29  --with-harfbuzz=no 
-
-Cmake-3121 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cmake-3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Cmake-3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cmake-3121/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121 
-
-Swig-3012 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Swig-3012-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Swig-3012-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Swig-3012-py365/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365 --without-pcre --without-octave --program-suffix=3.0  
-
-Metis-510 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Metis-510 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Metis-510 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Metis-510 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Metis-510/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  make config prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Cminpack-136 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cminpack-136-cm3121-la380 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Cminpack-136-cm3121-la380 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cminpack-136-cm3121-la380 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Cminpack-136-cm3121-la380/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export LAPACK="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121/lib/liblapack.so" ; export BLAS="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121/lib/libblas.so" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cminpack-136-cm3121-la380  -DLAPACK="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121"  -DBLAS="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Lapack-380-cm3121"   -DCMAKE_INCLUDE_PATH="${LAPACK_INSTALL_DIR}/include;"  -DCMAKE_LIBRARY_PATH="${LAPACK_INSTALL_DIR}/lib;"  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cminpack-136-cm3121-la380
-
-Gmsh-414 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Gmsh-414-cm3121-la380-occ740-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Gmsh-414-cm3121-la380-occ740-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ740-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Gmsh-414-cm3121-la380-occ740-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ740-tbb424  -DTBB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424"  --with-tbb-incdir=$TBB_INSTALL_DIR/include --with-tbb-libdir=$TBB_INSTALL_DIR/lib -DENABLE_ACIS=OFF -DENABLE_BUILD_SHARED=ON -DENABLE_FLTK=OFF -DENABLE_MED=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_PARSER=ON -DENABLE_PETSC=OFF -DENABLE_PRIVATE_API=ON -DENABLE_CGNS=OFF  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Gmsh-414-cm3121-la380-occ740-tbb424
-
-Opencv-320 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Opencv-320-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Opencv-320-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Opencv-320-cm3121-py365-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Opencv-320-cm3121-py365-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Numpy-1151-la380-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Numpy-1151-la380-py365/lib:$LD_LIBRARY_PATH" ; export NUMPY_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Numpy-1151-la380-py365" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Opencv-320-cm3121-py365-tbb424  -DNUMPY_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Numpy-1151-la380-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DTBB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424"   -DPYTHON3_NUMPY_INCLUDE_DIRS=${NUMPY_INCLUDE_DIR}-DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION}) -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DTBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include/tbb -DTBB_LIB_DIR=${TBB_INSTALL_DIR}/lib -DCMAKE_BUILD_TYPE:STRING=Release -DWITH_GSTREAMER=OFF -DBUILD_opencv_java=OFF -DWITH_GTK=OFF  -DBUILD_NEW_PYTHON_SUPPORT=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DPYTHON3_EXECUTABLE=${PYTHON_ROOT_DIR}/bin/python -DPYTHON_INCLUDE_DIR=${PYTHON_ROOT_DIR}/include/python${PYTHON_VERSION} -DPYTHON_INCLUDE_DIR2=${PYTHON_ROOT_DIR}/include/python${PYTHON_VERSION} -DWITH_FFMPEG:BOOL=ON -DWITH_LAPACK:BOOL=OFF -DWITH_CUDA:BOOL=OFF -DWITH_IPP=FALSE /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Opencv-320-cm3121-py365-tbb424
-
-Cppunit-1132 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cppunit-1132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Cppunit-1132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Cppunit-1132/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132 
-
-Pyqt-590 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/src/Pyqt-590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/build/Pyqt-590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365/lib/python3.6/site-packages:$PYTHONPATH" ; export SIP_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365" ;  sed -i "s:videowidget:videowidget_fake:" configure.py ; python$PYTHON_VERSION configure.py --dbus /tmp --confirm-license -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip --designer-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --qml-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --stubsdir=$CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages/PyQt5 --sip-incdir=$SIP_INSTALL_DIR/include/python3.6  
-
-
-%%%%%%%%%%%
-% MODULES %
-%%%%%%%%%%%
-
-PYHELLO1_master :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/PYHELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/PYHELLO1_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/PYHELLO1_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/PYHELLO1_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/PYHELLO1_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/PYHELLO1
-
-SMESH_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SMESH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SMESH_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SMESH_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SMESH_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365" ; export CGNSLIB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cgnslib-331-cm3121-hd1103" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export QWT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qwt-612-qt591" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ; export TBB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SMESH_master  -DBOOST_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365"  -DCGNSLIB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cgnslib-331-cm3121-hd1103"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"  -DQWT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qwt-612-qt591"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"  -DTBB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tbb-424"   -DBOOST_ROOT_DIR=$BOOST_INSTALL_DIR  -DBoost_USE_MULTITHREADED=ON  -DSALOME_SMESH_USE_CGNS=ON  -DCGNS_ROOT_DIR=${CGNSLIB_INSTALL_DIR}  -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DMEDFILE_ROOT_DIR=$MEDFICHIER_INSTALL_DIR  -DPADDERHOME:STRING=${PADDERHOME}  -DQWT_ROOT_DIR=$QWT_INSTALL_DIR  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DSALOME_SMESH_USE_TBB=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SMESH
-
-HEXABLOCK_master :
-******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXABLOCK ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXABLOCK_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXABLOCK_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXABLOCK_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXABLOCK_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXABLOCK
-
-SHAPER_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SHAPER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SHAPER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SHAPER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export FREETYPE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29" ; export OPENCASCADE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export QT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPER_master  -DFREETYPE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29"  -DOPENCASCADE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DQT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DQT5_ROOT_DIR=${QT_INSTALL_DIR} -DADD_MODELS_TESTS=TRUE -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SHAPER
-
-CALCULATOR_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/CALCULATOR ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/CALCULATOR_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/CALCULATOR_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/CALCULATOR_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/CALCULATOR_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/CALCULATOR
-
-HYBRIDPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HYBRIDPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HYBRIDPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HYBRIDPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HYBRIDPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HYBRIDPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HYBRIDPLUGIN
-
-YACS_master :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/YACS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/YACS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/YACS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/YACS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/YACS_master  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DSALOME_BUILD_GUI=ON  -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/YACS
-
-BLSURFPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/BLSURFPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/BLSURFPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/BLSURFPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/BLSURFPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/BLSURFPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/BLSURFPLUGIN
-
-LIGHT_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/LIGHT ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/LIGHT_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/LIGHT_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/LIGHT_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/LIGHT_master   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/LIGHT
-
-KERNEL_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/KERNEL ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/KERNEL_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/KERNEL_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380" ; export HDF5_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master  -DBOOST_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Boost-1580-py365"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Hdf5-1103-cm3121"  -DOMNIORB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR}  -DSALOME_BUILD_TESTS=ON  --with-cppunit=${CPPUNIT_INSTALL_DIR}  -DSALOME_USE_LIBBATCH=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/KERNEL
-
-PARAVIS_master :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/PARAVIS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/PARAVIS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/PARAVIS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/PARAVIS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PARAVIEW_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/PARAVIS_master  -DPARAVIEW_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DVTK_DIR=${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview-5.8  -DGDAL_LIBRARY=${GDAL_INSTALL_DIR}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDAL_INSTALL_DIR}/include  -DPYTHON_EXECUTABLEwhich python3.6) -DPYTHON_ROOT_DIR=${PYTHONHOME} -DQT5_ROOT_DIR=$QT5_ROOT_DIR  -DSALOME_PARAVIS_MINIMAL_CORBA=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/PARAVIS
-
-NETGENPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/NETGENPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/NETGENPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/NETGENPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/NETGENPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export NETGEN_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Netgen-531-occ740-tcl860-tix841-tk860-togl17" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/NETGENPLUGIN_master  -DNETGEN_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Netgen-531-occ740-tcl860-tix841-tk860-togl17"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/NETGENPLUGIN
-
-GHS3DPLUGIN_master :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GHS3DPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GHS3DPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GHS3DPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GHS3DPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GHS3DPLUGIN_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DMESHGEMS_ROOT_DIR="${MESHGEMS_ROOT_DIR}"  -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GHS3DPLUGIN
-
-GMSHPLUGIN_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GMSHPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GMSHPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GMSHPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GMSHPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export GMSH_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ740-tbb424" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GMSHPLUGIN_master  -DGMSH_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ740-tbb424"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GMSHPLUGIN
-
-SHAPERSTUDY_master :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SHAPERSTUDY ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SHAPERSTUDY_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPERSTUDY_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/SHAPERSTUDY_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/lib:$LD_LIBRARY_PATH" ; export CMAKE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121" ; export GEOM_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GEOM_master" ; export GUI_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GUI_master" ; export KERNEL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365/lib:$LD_LIBRARY_PATH" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365/lib:$LD_LIBRARY_PATH" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export SHAPER_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPER_master" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPERSTUDY_master  -DCMAKE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121"  -DGEOM_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GEOM_master"  -DGUI_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GUI_master"  -DKERNEL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master"  -DOMNIORB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"  -DSHAPER_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/SHAPER_master"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/SHAPERSTUDY
-
-GUI_master :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GUI ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GUI_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GUI_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GUI_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export DOCUTILS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Docutils-012-py365" ; export OPENCASCADE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PARAVIEW_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591" ; export PYQT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193" ; export QT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export QWT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qwt-612-qt591" ; export SIP_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GUI_master  -DDOCUTILS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Docutils-012-py365"  -DOPENCASCADE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424"  -DPARAVIEW_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Paraview-580-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1140-py365-qt591"  -DPYQT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193"  -DQT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"  -DQWT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qwt-612-qt591"  -DSIP_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DPARAVIEW_VERSION=${PVVERSION-5.8} -DVTK_ROOT_DIR=${PARAVIEW_ROOT_DIR} -DVTK_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.8} -DParaView_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.8} -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DPYQT5_ROOT_DIR=$PYQT_INSTALL_DIR -DSALOME_BUILD_WITH_QT5=ON  -DQT5_ROOT_DIR=$QT_INSTALL_DIR  -DQWT_LIBRARY=$QWT_INSTALL_DIR/lib/libqwt.so -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GUI
-
-HOMARD_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HOMARD ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HOMARD_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HOMARD_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HOMARD_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HOMARD_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HOMARD
-
-YDEFX_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/YDEFX ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/YDEFX_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/YDEFX_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/YDEFX_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export PY2CPP_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/YDEFX_master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DPY2CPP_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_PREFIX_PATH="$KERNEL_ROOT_DIR/salome_adm/cmake_files;$PY2CPP_ROOT_DIR/lib/cmake/py2cpp/;"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/YDEFX
-
-HELLO1_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HELLO1_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HELLO1_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HELLO1_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HELLO1_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HELLO1
-
-FIELDS_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/FIELDS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/FIELDS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/FIELDS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/FIELDS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export KERNEL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master/lib:$LD_LIBRARY_PATH" ; export MEDCOUPLING_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master" ; export FIELDSFILE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/FIELDS_master  -DKERNEL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master"  -DMEDCOUPLING_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master"  -DFIELDSFILE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DQT5_ROOT_DIR=$QT5_ROOT_DIR  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/FIELDS
-
-HEXOTICPLUGIN_master :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXOTICPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXOTICPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXOTICPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXOTICPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXOTICPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Meshgems-2102"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXOTICPLUGIN
-
-GENERICSOLVER_master :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GENERICSOLVER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GENERICSOLVER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GENERICSOLVER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GENERICSOLVER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GENERICSOLVER_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GENERICSOLVER
-
-HEXABLOCKPLUGIN_master :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXABLOCKPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXABLOCKPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXABLOCKPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/HEXABLOCKPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/HEXABLOCKPLUGIN_master  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/HEXABLOCKPLUGIN
-
-EFICAS_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/EFICAS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/EFICAS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/EFICAS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/EFICAS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/EFICAS_master   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/EFICAS
-
-MELIDEFX_master :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/MELIDEFX ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/MELIDEFX_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/MELIDEFX_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/MELIDEFX_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/MELIDEFX_master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DCMAKE_PREFIX_PATH="$KERNEL_ROOT_DIR/salome_adm/cmake_files;"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/MELIDEFX
-
-GEOM_master :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GEOM ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GEOM_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GEOM_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/GEOM_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export FREETYPE_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29" ; export GDAL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240/lib:$LD_LIBRARY_PATH" ; export OPENCV_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Opencv-320-cm3121-py365-tbb424" ; export QT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/GEOM_master  -DFREETYPE_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Freetype-29"  -DGDAL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Gdal-240"  -DOPENCV_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Opencv-320-cm3121-py365-tbb424"  -DQT5_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DFREETYPE_INCLUDE_DIR_freetype2="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_INCLUDE_DIR_ft2build="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_LIBRARY="${FREETYPE_INSTALL_DIR}/lib"  -DGDAL_LIBRARY=${GDAL_INSTALL_DIR}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDAL_INSTALL_DIR}/include  -DSALOME_GEOM_USE_OPENCV=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/GEOM
-
-JOBMANAGER_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/JOBMANAGER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/JOBMANAGER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/JOBMANAGER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/JOBMANAGER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/JOBMANAGER_master   -DGDAL_LIBRARY=${GDALHOME}/lib/libgdal.so  -DGDAL_INCLUDE_DIR=${GDALHOME}/include  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/JOBMANAGER
-
-ADAOSALOME_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/ADAOSALOME ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/ADAOSALOME_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/ADAOSALOME_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/build/ADAOSALOME_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export ADAO_PYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao-master" ; export EFICAS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193" ; export KERNEL_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/ADAOSALOME_master  -DADAO_PYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao-master"  -DEFICAS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193"  -DKERNEL_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/KERNEL_master"  -DOMNIORB_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DADAO_PYTHON_MODULE=OFF -DADAO_SALOME_MODULE=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/src/ADAOSALOME
-
-
-%%%%%%%%%
-% TOOLS %
-%%%%%%%%%
-
-Py2cpp :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/PY2CPP ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Py2cpp-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Py2cpp-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/PY2CPP
-
-Libbatch :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/LIBBATCH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Libbatch-master-cm3121-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Libbatch-master-cm3121-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Libbatch-master-cm3121-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365/bin:$PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Libbatch-master-cm3121-py365-sw3012  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Swig-3012-py365"   -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_INCLUDE_DIR=$PYTHON_INSTALL_DIR/include/python3.6 -DPYTHON_LIBRARY=$PYTHON_INSTALL_DIR/lib/libpython3.6.so  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/LIBBATCH
-
-Eficas_nouveau :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/EFICAS_NOUVEAU ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Qt-591_nowebengine/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Sip-4193-py365/lib/python3.6/site-packages:$PYTHONPATH" ; unset PYTHONHOME ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION})  -DPYVERSIONS_EXE=/fake_python_exe  -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DWITH_TELEMAC_CATA=ON  -DBUILD_DOC=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/EFICAS_NOUVEAU
-
-Adao :
-******
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/ADAO ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Adao-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Adao-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao-master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/ADAO
-
-Netgen :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/Netgen-531-occ740-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Netgen-531-occ740-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Netgen-531-occ740-tcl860-tix841-tk860-togl17 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Netgen-531-occ740-tcl860-tix841-tk860-togl17/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CASROOT="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Occ-740p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PRENETGENPLUGIN_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/modules/install/PRENETGENPLUGIN_master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tix-841-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tix-841-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Togl-17-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Togl-17-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; TCL_INCLUDE="${TCLDIR}/include ${TKDIR}/include" ;  LDFLAGS="-L${TCLDIR}/lib/Tix-8.4.1 -L${TKDIR}/lib -L${TCLDIR}/lib/Togl1.7 -L${TCLDIR}/lib " CXXFLAGS="-I${TKDIR}/include -I${TCLDIR}/include "  ; /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/Netgen-531-occ740-tcl860-tix841-tk860-togl17/configure --prefix=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Netgen-531-occ740-tcl860-tix841-tk860-togl17  --with-occ=${CASROOT} --with-tcl=${TCLDIR}/lib --with-tk=${TKDIR}/lib --with-togl=${TCLDIR}/lib/Togl1.7 CXXFLAGS="${CXXFLAGS} -O2 -m64 -std=c++0x "  
-
-Adao_interface :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/ADAO_INTERFACE ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Adao_interface-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao_interface-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Adao_interface-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export PY2CPP_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Adao_interface-master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Configuration-master"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DPY2CPP_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Py2cpp-master"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DCONFIGURATION_ROOT_DIR=${CONFIGURATION_INSTALL_DIR}  -DCPPUNIT_ROOT_DIR=${CPPUNIT_INSTALL_DIR}  -DPY2CPP_ROOT_DIR=${PY2CPP_INSTALL_DIR}  -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR} -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION) -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/ADAO_INTERFACE
-
-Medcoupling :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/MEDCOUPLING ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Medcoupling-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/build/Medcoupling-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012" ; export METIS_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Metis-510" ; export PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export SCOTCH_INSTALL_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Scotch-604EDFp1" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/install/Medcoupling-master  -DCPPUNIT_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Cppunit-1132"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Medfichier-410-hdf51103-py365-sw3012"  -DMETIS_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Metis-510"  -DPYTHON_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSCOTCH_ROOT_DIR="/home/es4c769n/Constructions/edf/V9_compil/DEV/prerequisites/install/Scotch-604EDFp1"   -DCPPUNIT_ROOT_DIR=${CPPUNIT_INSTALL_DIR}  -DMEDFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR}  -DMETIS_ROOT_DIR=${METIS_INSTALL_DIR}  -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR}  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/Constructions/edf/V9_compil/DEV/DEV/tools/src/MEDCOUPLING
-
diff --git a/config/build_options/edf/regroupe_config.txt b/config/build_options/edf/regroupe_config.txt
deleted file mode 100644 (file)
index 753fe7b..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-%%%%%%%%%%%%%%%%%
-% PREREQUISITES %
-%%%%%%%%%%%%%%%%%
-
-Qwt-612 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Qwt-612-qt591 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Qwt-612-qt591 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qwt-612-qt591 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; cd /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Qwt-612-qt591 ;sed "s:/usr/local/qwt-\$\$QWT_VERSION:$CURRENT_SOFTWARE_INSTALL_DIR:" qwtconfig.pri > qwtconfig.pri_sed ; mv qwtconfig.pri_sed qwtconfig.pri ; cd /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Qwt-612-qt591 ;qmake -d /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Qwt-612-qt591/qwt.pro 
-
-Sip-4193 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Sip-4193-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Sip-4193-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  python$PYTHON_VERSION configure.py -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -e $CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip  
-
-Cmake-3121 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Cmake-3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Cmake-3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Cmake-3121/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121 
-
-Planegcs-018 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Planegcs-018-bst1580-cm3121-ei334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365" ; export EIGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Eigen-334" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Planegcs-018-bst1580-cm3121-ei334  -DBOOST_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365"  -DEIGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Eigen-334"  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Planegcs-018-bst1580-cm3121-ei334
-
-Pyqt-590 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Pyqt-590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Pyqt-590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365/lib/python3.6/site-packages:$PYTHONPATH" ; export SIP_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365" ;  sed -i "s:videowidget:videowidget_fake:" configure.py ; python$PYTHON_VERSION configure.py --dbus /tmp --confirm-license -b $CURRENT_SOFTWARE_INSTALL_DIR/bin -d $CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages -v $CURRENT_SOFTWARE_INSTALL_DIR/share/sip --designer-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --qml-plugindir=$CURRENT_SOFTWARE_INSTALL_DIR/include/python$PYTHON_VERSION --stubsdir=$CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages/PyQt5 --sip-incdir=$SIP_INSTALL_DIR/include/python3.6  
-
-Medfichier-400 :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Medfichier-400-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Medfichier-400-hdf51103-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Medfichier-400-hdf51103-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Medfichier-400-hdf51103-py365-sw3012/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012  --enable-mesgerr --with-swig=/usr/bin/swig --with-hdf5=$HDF5_INSTALL_DIR  
-
-Gmsh-414 :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Gmsh-414-cm3121-la380-occ731-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Gmsh-414-cm3121-la380-occ731-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ731-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Gmsh-414-cm3121-la380-occ731-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ731-tbb424  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424"  --with-tbb-incdir=$TBB_INSTALL_DIR/include --with-tbb-libdir=$TBB_INSTALL_DIR/lib -DENABLE_ACIS=OFF -DENABLE_BUILD_SHARED=ON -DENABLE_FLTK=OFF -DENABLE_MED=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_PARSER=ON -DENABLE_PETSC=OFF -DENABLE_PRIVATE_API=ON -DENABLE_CGNS=OFF  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Gmsh-414-cm3121-la380-occ731-tbb424
-
-Occ-730p3 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freeimage-3170EDFp2/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freeimage-3170EDFp2/lib:$LD_LIBRARY_PATH" ; export FREEIMAGE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freeimage-3170EDFp2" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29/lib:$LD_LIBRARY_PATH" ; export FREETYPE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860" ; export CFLAGS="-fPIC -m64" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424  -DFREEIMAGE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freeimage-3170EDFp2"  -DFREETYPE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29"  -DGL2PS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424"  -DTCL_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860"  -DTK_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860"  -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=${FREEIMAGE_INSTALL_DIR} -D3RDPARTY_FREEIMAGE_LIBRARY_DIR:PATH=${FREEIMAGE_INSTALL_DIR}/lib -D3RDPARTY_FREEIMAGE_LIBRARY:FILEPATH=${FREEIMAGE_INSTALL_DIR}/lib/libfreeimageplus-${FreeImage_version}.so -D3RDPARTY_FREETYPE_DIR=${FREETYPE_INSTALL_DIR} -DUSE_GL2PS=ON -D3RDPARTY_GL2PS_DIR=${GL2PS_INSTALL_DIR} -DUSE_TBB=ON -D3RDPARTY_TBB_DIR=${TBB_INSTALL_DIR} -D3RDPARTY_TBB_LIBRARY_DIR=${TBB_INSTALL_DIR}/lib -D3RDPARTY_TBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include -D3RDPARTY_TCL_DIR=${TCL_INSTALL_DIR} -D3RDPARTY_TCL_LIBRARY_DIR=${TCL_INSTALL_DIR}/lib -D3RDPARTY_TCL_LIBRARY:PATH=${TCL_LIBRARY_SO} -D3RDPARTY_TK_DIR=${TK_INSTALL_DIR} -D3RDPARTY_TK_LIBRARY_DIR=${TK_INSTALL_DIR}/lib -D3RDPARTY_TK_LIBRARY:PATH=${TK_LIBRARY_SO}  -DINSTALL_DIR_RESOURCE=src  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424
-
-Zeromq-431 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Zeromq-431-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Zeromq-431-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Zeromq-431-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Zeromq-431-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Zeromq-431-cm3121  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Zeromq-431-cm3121
-
-Lapack-380 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Lapack-380-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Lapack-380-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Lapack-380-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Lapack-380-cm3121  -DBUILD_SHARED_LIBS:BOOL=ON  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Lapack-380-cm3121
-
-Boost-1580 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Boost-1580-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Boost-1580-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  sh bootstrap.sh --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Omniorb-422 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Omniorb-422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Omniorb-422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python3.6); /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Omniorb-422-py365/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365 --disable-ipv6 
-
-Freeimage-3170EDFp2 :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Freeimage-3170EDFp2 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freeimage-3170EDFp2 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cp -r $CURRENT_SOFTWARE_SRC_DIR/* $CURRENT_SOFTWARE_BUILD_DIR;  
-
-Melissa-000 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Melissa-000-cm3121-num1151-py365-zmq431 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Melissa-000-cm3121-num1151-py365-zmq431 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Melissa-000-cm3121-num1151-py365-zmq431 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Melissa-000-cm3121-num1151-py365-zmq431/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export ZEROMQ_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Zeromq-431-cm3121" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Melissa-000-cm3121-num1151-py365-zmq431  -DZEROMQ_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Zeromq-431-cm3121"   -DZeroMQ_DIR=${ZEROMQ_INSTALL_DIR}/share/cmake/ZeroMQ  -DBUILD_DOCUMENTATION=OFF  -DBUILD_WITH_MPI=ON  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Melissa-000-cm3121-num1151-py365-zmq431
-
-Opencv-24135 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Opencv-24135-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Opencv-24135-cm3121-py365-tbb424 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Opencv-24135-cm3121-py365-tbb424 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Opencv-24135-cm3121-py365-tbb424/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424/lib:$LD_LIBRARY_PATH" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Opencv-24135-cm3121-py365-tbb424  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424"  -DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION}) -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DTBB_INCLUDE_DIR=${TBB_INSTALL_DIR}/include/tbb -DTBB_LIB_DIR=${TBB_INSTALL_DIR}/lib -DCMAKE_BUILD_TYPE:STRING=Release -DWITH_FFMPEG=OFF -DWITH_GSTREAMER=OFF -DBUILD_opencv_java=OFF  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Opencv-24135-cm3121-py365-tbb424
-
-Scotch-604EDFp1 :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Scotch-604EDFp1 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Scotch-604EDFp1 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cd src/Make.inc ; patch -p1 < /home/es4c769n/yamm/src/yamm/projects/salome/softwares/prerequisites/data/scotch604_Make.inc.patch Makefile.inc.i686_pc_linux2 ; ln -s Make.inc/Makefile.inc.i686_pc_linux2 ../Makefile.inc  
-
-Eigen-334 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Eigen-334 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Eigen-334 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Eigen-334 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Eigen-334/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Eigen-334  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Eigen-334
-
-Metis-510 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Metis-510 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Metis-510 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Metis-510 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Metis-510/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  make config prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Python-365 :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Python-365-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export LDFLAGS="${LDFLAGS} -L${TCLDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TCLDIR}/include" ; export LDFLAGS="${LDFLAGS} -L${TKDIR}/lib" ; export CPPFLAGS="${CPPFLAGS} -I${TKDIR}/include" ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Python-365-tcl860-tk860/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860 --enable-shared --without-pymalloc  
-
-Freetype-29 :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Freetype-29 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Freetype-29 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Freetype-29/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29  --with-harfbuzz=no 
-
-Graphviz-2380 :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Graphviz-2380 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Graphviz-2380 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cd $CURRENT_SOFTWARE_SRC_DIR ; ./configure --enable-perl=no --enable-java=no --enable-tcl=no --enable-python=no --with-qt=no --with-pangocairo=yes --prefix=$CURRENT_SOFTWARE_INSTALL_DIR   
-
-Swig-3012 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Swig-3012-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Swig-3012-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Swig-3012-py365/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365 --without-pcre --without-octave --program-suffix=3.0  
-
-Muparser-132 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Muparser-132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Muparser-132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Muparser-132/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132 
-
-Togl-17 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Togl-17-tcl860-tk860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Togl-17-tcl860-tk860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export TK_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ;  $CURRENT_SOFTWARE_SRC_DIR/configure --enable-threads --enable-shared --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include --with-tk=$TK_INSTALL_DIR/lib --with-tkinclude=$TK_INSTALL_DIR/include  
-
-Cppunit-1132 :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Cppunit-1132 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Cppunit-1132 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Cppunit-1132/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132 
-
-Tcl-860 :
-*********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Tcl-860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Tcl-860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit  
-
-Gl2ps-14020170729EDFp1 :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Gl2ps-14020170729EDFp1-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121  -DCMAKE_BUILD_TYPE:STRING=Release  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Gl2ps-14020170729EDFp1-cm3121
-
-Paraview-v561p1 :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Doxygen-1814-gr2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Doxygen-1814-gr2380/lib:$LD_LIBRARY_PATH" ; export DOXYGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Doxygen-1814-gr2380" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121/lib:$LD_LIBRARY_PATH" ; export GL2PS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380/lib:$LD_LIBRARY_PATH" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121/lib:$LD_LIBRARY_PATH" ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Matplotlib-222-num1151-pyqt590-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132/lib:$LD_LIBRARY_PATH" ; export MUPARSER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132" ; export OPENTURNS_TOOL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Openturns_tool-112-bst1580-cm3121-dox1814-gr2380-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/lib:$LD_LIBRARY_PATH" ; export QT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sphinx-176EDFp1-doc012-jin273-pyg202-py365-set3840/lib/python3.6/site-packages:$PYTHONPATH" ; unset PYTHONHOME ; export PYTHONPATH=$CURRENT_SOFTWARE_INSTALL_DIR/lib/python$PYTHON_VERSION/site-packages:$PYTHONPATH ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591  -DDOXYGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Doxygen-1814-gr2380"  -DGL2PS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gl2ps-14020170729EDFp1-cm3121"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121"  -DMUPARSER_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Muparser-132"  -DOPENTURNS_TOOL_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Openturns_tool-112-bst1580-cm3121-dox1814-gr2380-la380-mpl222-mup132-num1151-py365-r2151-ro146-sci0191-sw3012-tbb424"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DQT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine"  -DDOXYGEN_EXECUTABLE=${DOXYGEN_INSTALL_DIR}/bin/doxygen -DGL2PS_INCLUDE_DIR:STRING=${GL2PS_INSTALL_DIR}/include -DGL2PS_LIBRARY:STRING=${GL2PS_INSTALL_DIR}/lib/libgl2ps.so -DDOXYGEN_DOT_EXECUTABLE=${GRAPHVIZ_INSTALL_DIR}/bin/dot -DHDF5_hdf5_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib -DHDF5_hdf5_hl_LIBRARY_RELEASE=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_HL_LIBRARY=${HDF5_INSTALL_DIR}/lib/libhdf5_hl.so -DHDF5_C_INCLUDE_DIR=${HDF5_INSTALL_DIR}/include -DPARAVIEW_USE_OPENTURNS=ON -DPARAVIEW_ENABLE_WEB=OFF -DOpenTURNS_DIR=${OPENTURNS_TOOL_INSTALL_DIR}/lib/cmake/openturns  -DPYTHON_EXECUTABLEwhich python3.6)  -DVTK_PYTHON_VERSION=3 -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION} -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so -DQT_HELP_GENERATOR=${QT_INSTALL_DIR}/bin/qhelpgenerator -DPARAVIEW_QT_VERSION=5 -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DVTK_USE_64BIT_IDS:BOOL=OFF -DPARAVIEW_BUILD_QT_GUI:BOOL=ON -DPARAVIEW_ENABLE_PYTHON:BOOL=ON -DVTK_USE_SYSTEM_HDF5:BOOL=ON -DVTK_USE_SYSTEM_PYGMENTS:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_NO_PYTHON_THREADS=OFF -DPARAVIEW_ENABLE_CATALYST:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_NonOrthogonalSource:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_RGBZView:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_SciberQuestToolKit:BOOL=OFF -DPARAVIEW_BUILD_PLUGIN_StreamingParticles:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_UncertaintyRendering:BOOL=ON -DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON -DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON-DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON-DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON-DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON-DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON-DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON-DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON-DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON-DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON-DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON -DBUILD_DOCUMENTATION:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DVTK_NO_PYTHON_THREADS=OFF -DVTK_PYTHON_FULL_THREADSAFE=ON -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP -DPARAVIEW_AUTOLOAD_PLUGIN_StreamingParticles=ON -DPARAVIEW_AUTOLOAD_PLUGIN_UncertaintyRendering=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EyeDomeLighting=ON -DPARAVIEW_AUTOLOAD_PLUGIN_H5PartReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_PointSprite=ON -DPARAVIEW_AUTOLOAD_PLUGIN_SurfaceLIC=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CatalystScriptGeneratorPlugin=ON -DPARAVIEW_ENABLE_WEB:BOOL=OFF -DVTK_INSTALL_LIBRARY_DIR="lib/paraview-5.6" -DVTK_PYTHON_SITE_PACKAGES_SUFFIX="site-packages" -DVTK_INSTALL_ARCHIVE_DIR="lib/paraview-5.6" -DPARAVIEW_INSTALL_PLUGINS_DIR="lib/paraview-5.6/plugins" -DVTKm_INSTALL_LIB_DIR="lib/paraview-5.6" -DVTK_USE_SYSTEM_GL2PS:BOOL=ON -DPARAVIEW_AUTOLOAD_PLUGIN_AcceleratedAlgorithms=ON -DPARAVIEW_AUTOLOAD_PLUGIN_CDIReader=ON -DPARAVIEW_AUTOLOAD_PLUGIN_DigitalRockPhysics=ON -DPARAVIEW_AUTOLOAD_PLUGIN_EmbossingRepresentations=ON -DPARAVIEW_AUTOLOAD_PLUGIN_GeodesicMeasurement=ON -DPARAVIEW_AUTOLOAD_PLUGIN_LagrangianParticleTracker=ON -DPARAVIEW_AUTOLOAD_PLUGIN_MooseXfemClip=ON -DPARAVIEW_AUTOLOAD_PLUGIN_StreamLinesRepresentation=ON -DPARAVIEW_AUTOLOAD_PLUGIN_ThickenLayeredCells=ON -DPARAVIEW_AUTOLOAD_PLUGIN_VTKmFilters=ON -DVTK_ALL_NEW_OBJECT_FACTORY=ON  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591
-
-Omniorbpy-422EDFp1 :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Omniorbpy-422EDFp1-orb422-py365 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export OMNIORB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ;  export PYTHONwhich python$PYTHON_VERSION); /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Omniorbpy-422EDFp1-orb422-py365/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365 --with-omniorb=$OMNIORB_INSTALL_DIR 
-
-Tk-860 :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Tk-860-tcl860 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Tk-860-tcl860 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export TCL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ;  cd $CURRENT_SOFTWARE_BUILD_DIR; $CURRENT_SOFTWARE_SRC_DIR/unix/configure --prefix=$CURRENT_SOFTWARE_INSTALL_DIR --enable-threads --enable-64bit --with-tcl=$TCL_INSTALL_DIR/lib --with-tclinclude=$TCL_INSTALL_DIR/include  
-
-Qt-591 :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Qt-591_nowebengine ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Qt-591_nowebengine ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Qt-591_nowebengine/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine -opensource -confirm-license -no-rpath -skip qtwebengine -qt-xcb 
-
-Hdf5-1103 :
-***********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Hdf5-1103-cm3121 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Hdf5-1103-cm3121 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/prerequisites/build/Hdf5-1103-cm3121/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121  -DHDF5_BUILD_HL_LIB=ON -DHDF5_BUILD_TOOLS=ON -DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_Z_LIB_SUPPORT=ON  /home/es4c769n/salome/edf/V9/DEV/prerequisites/src/Hdf5-1103-cm3121
-
-
-%%%%%%%%%%%
-% MODULES %
-%%%%%%%%%%%
-
-CALCULATOR_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/CALCULATOR ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/CALCULATOR_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/CALCULATOR_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/CALCULATOR_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/CALCULATOR_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/CALCULATOR
-
-HYBRIDPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HYBRIDPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HYBRIDPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HYBRIDPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HYBRIDPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HYBRIDPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HYBRIDPLUGIN
-
-NETGENPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/NETGENPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/NETGENPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/NETGENPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/NETGENPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export NETGEN_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Netgen-531-occ731-tcl860-tix841-tk860-togl17" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/NETGENPLUGIN_master  -DNETGEN_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Netgen-531-occ731-tcl860-tix841-tk860-togl17"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/NETGENPLUGIN
-
-FIELDS_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/FIELDS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/FIELDS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/FIELDS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/FIELDS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export KERNEL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master/lib:$LD_LIBRARY_PATH" ; export MEDCOUPLING_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master" ; export FIELDSFILE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/FIELDS_master  -DKERNEL_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master"  -DMEDCOUPLING_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master"  -DFIELDSFILE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/FIELDS
-
-GUI_master :
-************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GUI ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GUI_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GUI_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GUI_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export DOCUTILS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Docutils-012-py365" ; export OPENCASCADE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PARAVIEW_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591" ; export PYQT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193" ; export QT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qwt-612-qt591" ; export SIP_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GUI_master  -DDOCUTILS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Docutils-012-py365"  -DOPENCASCADE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424"  -DPARAVIEW_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591"  -DPYQT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193"  -DQT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qwt-612-qt591"  -DSIP_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DPARAVIEW_VERSION=${PVVERSION-5.6} -DVTK_ROOT_DIR=${PARAVIEW_ROOT_DIR} -DVTK_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.6} -DParaView_DIR=${PARAVIEW_ROOT_DIR}/lib/cmake/paraview-${PVVERSION-5.6} -DPYQT5_ROOT_DIR=$PYQT_INSTALL_DIR -DSALOME_BUILD_WITH_QT5=ON  -DQT5_ROOT_DIR=$QT_INSTALL_DIR  -DQWT_LIBRARY=$QWT_INSTALL_DIR/lib/libqwt.so -DCMAKE_INCLUDE_DIRECTORIES_BEFORE=ON -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GUI
-
-HEXOTICPLUGIN_master :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXOTICPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXOTICPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXOTICPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXOTICPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXOTICPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXOTICPLUGIN
-
-GHS3DPLUGIN_master :
-********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GHS3DPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GHS3DPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GHS3DPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GHS3DPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GHS3DPLUGIN_master   -DMESHGEMS_ROOT_DIR="${MESHGEMS_ROOT_DIR}"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GHS3DPLUGIN
-
-HEXABLOCK_master :
-******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXABLOCK ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXABLOCK_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXABLOCK_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXABLOCK_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXABLOCK_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXABLOCK
-
-ADAOSALOME_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/ADAOSALOME ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/ADAOSALOME_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/ADAOSALOME_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/ADAOSALOME_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export ADAO_PYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Adao-master" ; export EFICAS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193" ; export KERNEL_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/ADAOSALOME_master  -DADAO_PYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Adao-master"  -DEFICAS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193"  -DKERNEL_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master"  -DOMNIORB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DADAO_PYTHON_MODULE=OFF -DADAO_SALOME_MODULE=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/ADAOSALOME
-
-KERNEL_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/KERNEL ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/KERNEL_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/KERNEL_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132" ; export GRAPHVIZ_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380" ; export HDF5_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121" ; export OMNIORB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365" ; export OMNIORBPY_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/KERNEL_master  -DBOOST_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132"  -DGRAPHVIZ_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Graphviz-2380"  -DHDF5_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Hdf5-1103-cm3121"  -DOMNIORB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorb-422-py365"  -DOMNIORBPY_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Omniorbpy-422EDFp1-orb422-py365"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH=${CONFIGURATION_CMAKE_DIR}  -DSALOME_BUILD_TESTS=ON  --with-cppunit=${CPPUNIT_INSTALL_DIR}  -DSALOME_USE_LIBBATCH=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/KERNEL
-
-GEOM_master :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GEOM ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GEOM_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GEOM_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GEOM_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export FREETYPE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29" ; export OPENCV_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Opencv-24135-cm3121-py365-tbb424" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GEOM_master  -DFREETYPE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29"  -DOPENCV_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Opencv-24135-cm3121-py365-tbb424"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"   -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DFREETYPE_INCLUDE_DIR_freetype2="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_INCLUDE_DIR_ft2build="${FREETYPE_INSTALL_DIR}/include/freetype2/freetype"  -DFREETYPE_LIBRARY="${FREETYPE_INSTALL_DIR}/lib"  -DSALOME_GEOM_USE_OPENCV=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GEOM
-
-YACS_master :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/YACS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/YACS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/YACS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/YACS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/YACS_master  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"   -DSALOME_BUILD_GUI=ON  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/YACS
-
-PYHELLO1_master :
-*****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/PYHELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/PYHELLO1_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/PYHELLO1_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/PYHELLO1_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/PYHELLO1_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/PYHELLO1
-
-HEXABLOCKPLUGIN_master :
-************************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXABLOCKPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXABLOCKPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXABLOCKPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HEXABLOCKPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HEXABLOCKPLUGIN_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HEXABLOCKPLUGIN
-
-JOBMANAGER_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/JOBMANAGER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/JOBMANAGER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/JOBMANAGER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/JOBMANAGER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/JOBMANAGER_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/JOBMANAGER
-
-HELLO1_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HELLO1 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HELLO1_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HELLO1_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HELLO1_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HELLO1_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HELLO1
-
-HOMARD_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HOMARD ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HOMARD_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HOMARD_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/HOMARD_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/HOMARD_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/HOMARD
-
-BLSURFPLUGIN_master :
-*********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/BLSURFPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/BLSURFPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/BLSURFPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/BLSURFPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export MESHGEMS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/BLSURFPLUGIN_master  -DMESHGEMS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Meshgems-286"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/BLSURFPLUGIN
-
-SMESH_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/SMESH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/SMESH_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/SMESH_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/SMESH_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export BOOST_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365" ; export CGNSLIB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cgnslib-331-cm3121-hd1103" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012" ; export QWT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qwt-612-qt591" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ; export TBB_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/SMESH_master  -DBOOST_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Boost-1580-py365"  -DCGNSLIB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cgnslib-331-cm3121-hd1103"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012"  -DQWT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qwt-612-qt591"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"  -DTBB_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tbb-424"   -DBOOST_ROOT_DIR=$BOOST_INSTALL_DIR  -DBoost_USE_MULTITHREADED=ON  -DSALOME_SMESH_USE_CGNS=ON  -DCGNS_ROOT_DIR=${CGNSLIB_INSTALL_DIR}  -DCMAKE_MODULE_PATH="${CONFIGURATION_CMAKE_DIR}"  -DMEDFILE_ROOT_DIR=$MEDFICHIER_INSTALL_DIR  -DPADDERHOME:STRING=${PADDERHOME}  -DQWT_ROOT_DIR=$QWT_INSTALL_DIR  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DSALOME_SMESH_USE_TBB=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/SMESH
-
-GENERICSOLVER_master :
-**********************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GENERICSOLVER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GENERICSOLVER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GENERICSOLVER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GENERICSOLVER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GENERICSOLVER_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GENERICSOLVER
-
-YDEFX_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/YDEFX ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/YDEFX_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/YDEFX_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/YDEFX_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Configuration-master" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132" ; export PY2CPP_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Py2cpp-master" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/YDEFX_master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Configuration-master"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132"  -DPY2CPP_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Py2cpp-master"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_PREFIX_PATH="$KERNEL_ROOT_DIR/salome_adm/cmake_files;$PY2CPP_ROOT_DIR/lib/cmake/py2cpp/;"  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/YDEFX
-
-EFICAS_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/EFICAS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/EFICAS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/EFICAS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/EFICAS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/EFICAS_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/EFICAS
-
-PARAVIS_master :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/PARAVIS ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/PARAVIS_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/PARAVIS_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/PARAVIS_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PARAVIEW_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/PARAVIS_master  -DPARAVIEW_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Paraview-v561p1-cm3121-dox1814-gl2ps1401-gr2380-hd1103-mup132-ot1120-py365-qt591"   -DVTK_DIR=${PARAVIEW_INSTALL_DIR}/lib/cmake/paraview-5.6  -DPYTHON_EXECUTABLEwhich python3.6) -DPYTHON_ROOT_DIR=${PYTHONHOME} -DSALOME_PARAVIS_MINIMAL_CORBA=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/PARAVIS
-
-LIGHT_master :
-**************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/LIGHT ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/LIGHT_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/LIGHT_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/LIGHT_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/LIGHT_master   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/LIGHT
-
-SHAPER_master :
-***************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/SHAPER ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/SHAPER_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/SHAPER_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/SHAPER_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export FREETYPE_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29" ; export OPENCASCADE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export QT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/SHAPER_master  -DFREETYPE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Freetype-29"  -DOPENCASCADE_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DQT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine"   -DQT5_ROOT_DIR=${QT_INSTALL_DIR} -DADD_MODELS_TESTS=TRUE -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/SHAPER
-
-GMSHPLUGIN_master :
-*******************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GMSHPLUGIN ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GMSHPLUGIN_master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GMSHPLUGIN_master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/modules/build/GMSHPLUGIN_master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export GMSH_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ731-tbb424" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/GMSHPLUGIN_master  -DGMSH_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Gmsh-414-cm3121-la380-occ731-tbb424"   -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/modules/src/GMSHPLUGIN
-
-
-%%%%%%%%%
-% TOOLS %
-%%%%%%%%%
-
-Netgen :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/Netgen-531-occ731-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Netgen-531-occ731-tcl860-tix841-tk860-togl17 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Netgen-531-occ731-tcl860-tix841-tk860-togl17 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Netgen-531-occ731-tcl860-tix841-tk860-togl17/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CASROOT="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Occ-730p3-freeimg3170-freetp29-gl2ps1401-tbb424" ; export PRENETGENPLUGIN_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/modules/install/PRENETGENPLUGIN_master" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tcl-860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tix-841-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tix-841-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Tk-860-tcl860/lib:$LD_LIBRARY_PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Togl-17-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Togl-17-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; TCL_INCLUDE="${TCLDIR}/include ${TKDIR}/include" ;  LDFLAGS="-L${TCLDIR}/lib/Tix-8.4.1 -L${TKDIR}/lib -L${TCLDIR}/lib/Togl1.7 -L${TCLDIR}/lib " CXXFLAGS="-I${TKDIR}/include -I${TCLDIR}/include "  ; /home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/Netgen-531-occ731-tcl860-tix841-tk860-togl17/configure --prefix=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Netgen-531-occ731-tcl860-tix841-tk860-togl17  --with-occ=${CASROOT} --with-tcl=${TCLDIR}/lib --with-tk=${TKDIR}/lib --with-togl=${TCLDIR}/lib/Togl1.7 CXXFLAGS="${CXXFLAGS} -O2 -m64 -std=c++0x "  
-
-Medcoupling :
-*************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/MEDCOUPLING ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Medcoupling-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Medcoupling-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132" ; export MEDFICHIER_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012" ; export METIS_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Metis-510" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export SCOTCH_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Scotch-604EDFp1" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Medcoupling-master  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132"  -DMEDFICHIER_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Medfichier-400-hdf51103-py365-sw3012"  -DMETIS_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Metis-510"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSCOTCH_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Scotch-604EDFp1"   -DCPPUNIT_ROOT_DIR=${CPPUNIT_INSTALL_DIR}  -DMEDFILE_ROOT_DIR=${MEDFICHIER_INSTALL_DIR}  -DMETIS_ROOT_DIR=${METIS_INSTALL_DIR}  -DSCOTCH_ROOT_DIR=${SCOTCH_INSTALL_DIR}  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/MEDCOUPLING
-
-Py2cpp :
-********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/PY2CPP ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Py2cpp-master ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Py2cpp-master ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Py2cpp-master/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export CONFIGURATION_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Configuration-master" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132/lib:$LD_LIBRARY_PATH" ; export CPPUNIT_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Py2cpp-master  -DCONFIGURATION_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Configuration-master"  -DCPPUNIT_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cppunit-1132"  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_ROOT_DIR=${PYTHON_INSTALL_DIR}  -DPYTHON_INCLUDE_DIR=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/PY2CPP
-
-Eficas_nouveau :
-****************
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/EFICAS_NOUVEAU ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Pyqt-590-py365-qt591-sip4193/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Qt-591_nowebengine/lib/python3.6/site-packages:$PYTHONPATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365/bin:$PATH" ; export PYTHONPATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Sip-4193-py365/lib/python3.6/site-packages:$PYTHONPATH" ; unset PYTHONHOME ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Eficas_nouveau-master-cm3121-pyqt590-py365-qt591-sip4193  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"   -DPYTHON_EXECUTABLEwhich python${PYTHON_VERSION})  -DPYVERSIONS_EXE=/fake_python_exe  -DPYTHON_INCLUDE_PATH=${PYTHON_INSTALL_DIR}/include/python${PYTHON_VERSION}  -DPYTHON_LIBRARY=${PYTHON_INSTALL_DIR}/lib/libpython${PYTHON_VERSION}.so  -DWITH_TELEMAC_CATA=ON  -DBUILD_DOC=ON  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/EFICAS_NOUVEAU
-
-Libbatch :
-**********
-export CURRENT_SOFTWARE_SRC_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/LIBBATCH ; export CURRENT_SOFTWARE_BUILD_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Libbatch-master-cm3121-py365-sw3012 ; export CURRENT_SOFTWARE_INSTALL_DIR=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Libbatch-master-cm3121-py365-sw3012 ; export PYTHON_VERSION="3.6" ; . /home/es4c769n/salome/edf/V9/DEV/DEV/tools/build/Libbatch-master-cm3121-py365-sw3012/.yamm/env_build.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_prerequisites.sh >/dev/null 2>&1 ; . /home/es4c769n/salome/edf/V9/DEV/DEV/salome_modules.sh >/dev/null 2>&1 ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Cmake-3121/bin:$PATH" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/bin:$PATH" ; export LD_LIBRARY_PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860/lib:$LD_LIBRARY_PATH" ; export PYTHON_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860" ; export PATH="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365/bin:$PATH" ; export SWIG_INSTALL_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365" ;  cmake -DCMAKE_INSTALL_PREFIX=/home/es4c769n/salome/edf/V9/DEV/DEV/tools/install/Libbatch-master-cm3121-py365-sw3012  -DPYTHON_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Python-365-tcl860-tk860"  -DSWIG_ROOT_DIR="/home/es4c769n/salome/edf/V9/DEV/prerequisites/install/Swig-3012-py365"   -DPYTHON_EXECUTABLEwhich python$PYTHON_VERSION)  -DPYTHON_INCLUDE_DIR=$PYTHON_INSTALL_DIR/include/python3.6 -DPYTHON_LIBRARY=$PYTHON_INSTALL_DIR/lib/libpython3.6.so  -DSWIG_EXECUTABLE:PATHwhich swig3.0)  -DCMAKE_BUILD_TYPE=Release  /home/es4c769n/salome/edf/V9/DEV/DEV/tools/src/LIBBATCH
-
diff --git a/config/build_options/occ/options_compilation_salome_master.txt b/config/build_options/occ/options_compilation_salome_master.txt
deleted file mode 100644 (file)
index 30c3593..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-ATOMGEN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${ATOMGEN_ROOT_DIR} ${ATOMGEN_SRC_DIR}
-
-ATOMIC
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${ATOMIC_ROOT_DIR} ${ATOMIC_SRC_DIR}
-
-ATOMSOLV
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${ATOMSOLV_ROOT_DIR} ${ATOMSOLV_SRC_DIR}
-
-BLSURFPLUGIN
->  cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${BLSURFPLUGIN_ROOT_DIR} ${BLSURFPLUGIN_SRC_DIR}
-
-BLSURFPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${BLSURFPLUGINWOGUI_ROOT_DIR} ${BLSURFPLUGIN_SRC_DIR}
-
-CALCULATOR
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${CALCULATOR_ROOT_DIR} ${CALCULATOR_SRC_DIR}
-
-COMPONENT 
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${COMPONENT_ROOT_DIR} ${COMPONENT_SRC_DIR}
-
-DOCUMENTATION
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${DOCUMENTATION_ROOT_DIR} ${DOCUMENTATION_SRC_DIR}
-
-GEOM
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_GEOM_USE_OPENCV=ON -DCMAKE_INSTALL_PREFIX=${GEOM_ROOT_DIR} ${GEOM_SRC_DIR}
-
-> GEOMWOGUI
-cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DSALOME_GEOM_USE_OPENCV=ON -DCMAKE_INSTALL_PREFIX=${GEOMWOGUI_ROOT_DIR} ${GEOM_SRC_DIR}
-
-GHS3DPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${GHS3DPLUGIN_ROOT_DIR} ${GHS3DPLUGIN_SRC_DIR}
-
-GHS3DPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${GHS3DPLUGINWOGUI_ROOT_DIR} ${GHS3DPLUGIN_SRC_DIR}
-
-GHS3DPRLPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${GHS3DPRLPLUGIN_ROOT_DIR} ${GHS3DPRLPLUGIN_SRC_DIR}
-
-GHS3DPRLPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${GHS3DPRLPLUGINWOGUI_ROOT_DIR} ${GHS3DPRLPLUGIN_SRC_DIR}
-
-GMSHPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${GMSHPLUGIN_ROOT_DIR} ${GMSHPLUGIN_SRC_DIR}
-
-GMSHPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${GMSHPLUGINWOGUI_ROOT_DIR} ${GMSHPLUGIN_SRC_DIR}
-
-GUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${GUI_ROOT_DIR} ${GUI_SRC_DIR}
-
-HELLO
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HELLO_ROOT_DIR} ${HELLO_SRC_DIR}
-
-HEXABLOCK
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HEXABLOCK_ROOT_DIR} ${HEXABLOCK_SRC_DIR}
-
-HEXABLOCKPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HEXABLOCKPLUGIN_ROOT_DIR} ${HEXABLOCKPLUGIN_SRC_DIR}
-
-HexoticPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HexoticPLUGIN_ROOT_DIR} ${HexoticPLUGIN_SRC_DIR}
-
-HexoticPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${HexoticPLUGINWOGUI_ROOT_DIR} ${HexoticPLUGIN_SRC_DIR}
-
-HOMARD
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HOMARD_ROOT_DIR} ${HOMARD_SRC_DIR}
-
-HYBRIDPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${HYBRIDPLUGIN_ROOT_DIR} ${HYBRIDPLUGIN_SRC_DIR}
-
-HYBRIDPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${HYBRIDPLUGINWOGUI_ROOT_DIR} ${HYBRIDPLUGIN_SRC_DIR}
-
-JOBMANAGER
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${JOBMANAGER_ROOT_DIR} ${JOBMANAGER_SRC_DIR}
-
-KERNEL
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_USE_LIBBATCH=ON -DCMAKE_INSTALL_PREFIX=${KERNEL_ROOT_DIR} ${KERNEL_SRC_DIR}
-
-KERNEL_OPT
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_USE_LIBBATCH=ON -DSALOME_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=${KERNEL_OPT_ROOT_DIR} ${KERNEL_SRC_DIR}
-
-LIBBATCH
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${LIBBATCH_ROOT_DIR} ${LIBBATCH_SRC_DIR}
-
-LIGHT
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${LIGHT_ROOT_DIR} ${LIGHT_SRC_DIR}
-
-FIELDS
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${FILEDS_ROOT_DIR} ${FIELDS_SRC_DIR}
-
-MEDCOUPLING
-> cmake -DCMAKE_BUILD_TYPE=Release -DMEDCOUPLING_USE_64BIT_IDS=ON -DCMAKE_INSTALL_PREFIX=${MEDCOUPLING_ROOT_DIR} ${MEDCOUPLING_SRC_DIR}
-
-MEDCOUPLING_OPT
-> cmake -DCMAKE_BUILD_TYPE=Release -DMEDCOUPLING_USE_64BIT_IDS=ON -DSALOME_USE_MPI=ON -DSALOME_MED_PARTITIONER_PARMETIS=OFF -DCMAKE_INSTALL_PREFIX=${MEDCOUPLING_OPT_ROOT_DIR} ${MEDCOUPLING_SRC_DIR}
-
-MEDCOUPLINGMICRO
-> cmake -DCMAKE_BUILD_TYPE=Release -DMEDCOUPLING_USE_64BIT_IDS=ON -DMEDCOUPLING_MICROMED=ON -DCMAKE_INSTALL_PREFIX=${MEDCOUPLINGMICRO_ROOT_DIR} ${MEDCOUPLIN_SRC_DIR}
-
-FIELDSWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${FIELDSWOGUI_ROOT_DIR} ${FIELDS_SRC_DIR}
-
-NETGENPLUGIN
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${NETGENPLUGIN_ROOT_DIR} ${NETGENPLUGIN_SRC_DIR}
-
-NETGENPLUGINWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=${NETGENPLUGINWOGUI_ROOT_DIR} ${NETGENPLUGIN_SRC_DIR}
-
-PARAVIS
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_PARAVIS_USE_GEOM_SOURCE=ON -DSALOME_PARAVIS_USE_SMESH_SOURCE=ON -DCMAKE_INSTALL_PREFIX=${PARAVIS_ROOT_DIR} ${PARAVIS_SRC_DIR}
-
-PYCALCULATOR
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PYCALCULATOR_ROOT_DIR} ${PYCALCULATOR_SRC_DIR}
-
-PYHELLO
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PYHELLO_ROOT_DIR} ${PYHELLO_SRC_DIR}
-
-PYLIGHT
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PYLIGHT_ROOT_DIR} ${PYLIGHT_SRC_DIR}
-
-RANDOMIZER
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${RANDOMIZER_ROOT_DIR} ${RANDOMIZER_SRC_DIR}
-
-SHAPER
-> cmake -DCMAKE_BUILD_TYPE=Release  -DADD_COMPATIBILITY_TESTS=ON -DADD_MODELS_TESTS=ON -DCMAKE_INSTALL_PREFIX=${SHAPER_ROOT_DIR} ${SHAPER_SRC_DIR}
-
-SIERPINSKY
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SIERPINSKY_ROOT_DIR} ${SIERPINSKY_SRC_DIR}
-
-SMESH
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_SMESH_USE_TBB=ON -DSALOME_SMESH_USE_CGNS=ON -DCMAKE_INSTALL_PREFIX=${SMESH_ROOT_DIR} ${SMESH_SRC_DIR}
-
-SMESHWOGUI
-> cmake -DCMAKE_BUILD_TYPE=Release -DSALOME_BUILD_GUI=OFF -DSALOME_SMESH_USE_TBB=ON -DSALOME_SMESH_USE_CGNS=ON -DCMAKE_INSTALL_PREFIX=${SMESHWOGUI_ROOT_DIR} ${SMESH_SRC_DIR}
-
-YACS
-> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${YACS_ROOT_DIR} ${YACS_SRC_DIR}
-
-YACSGEN
-> python3 setup.py install --prefix=${YACSGEN_ROOT_DIR}
-
-cgns
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${CGNS_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCGNS_BUILD_SHARED:BOOL=ON -DCGNS_ENABLE_HDF5:BOOL=ON -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake -DHDF5_INCLUDE_PATH:PATH=${HDF5_ROOT_DIR}/include -DHDF5_LIBRARY:FILEPATH=${HDF5_ROOT_DIR}/lib/libhdf5.so -DHDF5_NEED_ZLIB=ON ${CGNS_SRC_DIR}
-
-cython
-> python3 setup.py install --prefix=${CYTHON_ROOT_DIR}
-
-occt (Open CASCADE Technology)
-> cmake -DINSTALL_DIR:STRING=${CAS_ROOT_DIR} -D3RDPARTY_TCL_DIR:PATH=${TCLTK_ROOT_DIR} -DUSE_TBB:BOOL=ON -D3RDPARTY_TBB_DIR:PATH=${TBB_ROOT_DIR} -D3RDPARTY_FREETYPE_DIR:PATH=${FREETYPE_ROOT_DIR} -DUSE_FREEIMAGE:BOOL=ON -D3RDPARTY_FREEIMAGE_DIR:PATH=${FREEIMAGE_ROOT_DIR} -DCMAKE_BUILD_TYPE:STRING=Release ${CAS_SRC_DIR}
-
-paraview
-cmake -DCMAKE_INSTALL_PREFIX:STRING=${PARAVIEW_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_FLAGS:STRING=-m64 -DCMAKE_C_FLAGS:STRING=-m64 -DPARAVIEW_BUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DPARAVIEW_BUILD_TESTING:BOOL=OFF -DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON -DOpenGL_GL_PREFERENCE:STRING=LEGACY -DPARAVIEW_ENABLE_RAYTRACING:BOOL=ON -DVTK_ENABLE_OSPRAY:BOOL=ON -Dembree_DIR:PATH=${EMBREE_ROOT_DIR}/lib/cmake/embree-${VERSION_EMBREE} -DTBB_ROOT:PATH=${TBB_ROOT_DIR} -Drkcommon_DIR:PATH=${RKCOMMON_ROOT_DIR}/lib/cmake/rkcommon-${VERSION_RKCOMMON} -Dopenvkl_DIR:PATH=${OPENVKL_ROOT_DIR}/lib/cmake/openvkl-${VERSION_OPENVKL} -DVTK_USE_64BIT_IDS:BOOL=ON -DVTK_REPORT_OPENGL_ERRORS:BOOL=OFF -DVTK_MODULE_ENABLE_VTK_RenderingLOD:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_FiltersCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_CommonCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOCore:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOEnSight:INTERNAL=YES -DVTK_MODULE_ENABLE_VTK_IOInfovis:INTERNAL=YES -DPARAVIEW_USE_QT:BOOL=ON -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF -DPARAVIEW_USE_PYTHON:BOOL=ON -DVTK_WRAP_PYTHON:BOOL=ON -DPython3_INCLUDE_DIR:STRING=${PYTHON_ROOT_DIR}/include/python3.6 -DPython3_LIBRARY:STRING=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DVTK_PYTHON_FULL_THREADSAFE:BOOL=ON -DVTK_NO_PYTHON_THREADS:BOOL=OFF -DVTK_PYTHON_VERSION:STRING=3 -DVTK_WRAP_JAVA:BOOL=OFF -DPARAVIEW_USE_MPI:BOOL=OFF -DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON -DHDF5_DIR:PATH=${HDF5_ROOT_DIR}/share/cmake/hdf5 -DHDF5_USE_STATIC_LIBRARIES:BOOL=OFF -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=ON -DBOOST_ROOT:PATH=${BOOST_ROOT_DIR} -DBoost_NO_BOOST_CMAKE:BOOL=ON -DBoost_NO_SYSTEM_PATHS:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=OFF -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON -DLIBXML2_INCLUDE_DIR:STRING=${LIBXML2_ROOT_DIR}/include/libxml2 -DLIBXML2_LIBRARIES:STRING=${LIBXML2_ROOT_DIR}/lib/libxml2.so -DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=ON -DVTK_MODULE_USE_EXTERNAL_ParaView_cgns:BOOL=ON -DCGNS_INCLUDE_DIR:PATH=${CGNS_ROOT_DIR}/include -DCGNS_LIBRARY:PATH=${CGNS_ROOT_DIR}/lib/libcgns.so -DVTK_MODULE_ENABLE_ParaView_cgns:INTERNAL=YES -DVTK_MODULE_ENABLE_ParaView_VTKExtensionsCGNSReader:INTERNAL=YES -DVTK_MODULE_ENABLE_ParaView_VTKExtensionsCGNSWriter:INTERNAL=YES -DPARAVIEW_PLUGINS_DEFAULT:BOOL=ON -DPARAVIEW_PLUGIN_ENABLE_Moments:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_SLACTools:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_SierraPlotTools:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_PacMan:BOOL=OFF -DPARAVIEW_PLUGIN_ENABLE_pvblot:BOOL=OFF -DPARAVIEW_USE_CATALYST:BOOL=ON -DCATALYST_BUILD_STUB_IMPLEMENTATION:BOOL=ON ${PARAVIEW_SRC_DIR}
-
-pillow
-> python3 ./setup.py install --prefix=${PILLOW_ROOT_DIR}
-
-pyqtsip
-> python3 ./setup.py install --prefix=${PYQTSIP_ROOT_DIR}
-
-pyqt
-> python3 ./configure.py -b ${PYQT5_ROOT_DIR}/bin -d ${PYQT5_ROOT_DIR} -v ${PYQT5_ROOT_DIR}/sip --stubsdir=${PYQT5_ROOT_DIR}/PyQt5 --confirm-license --designer-plugindir=${PYQT5_ROOT_DIR}/plugins/designer --qml-plugindir=${PYQT5_ROOT_DIR}/plugins/qml --no-qsci-api
-
-python3
-> ./configure --prefix=${PYTHON_ROOT_DIR} --enable-shared --with-threads --with-libs=-lstdc++ --without-pymalloc --enable-optimizations CFLAGS=-m64 CXXFLAGS=-m64 CPPFLAGS=-I${TCLTK_ROOT_DIR}/include LDFLAGS=-L${TCLTK_ROOT_DIR}/lib 
-
-sphinx (and related products)
- * alabaster
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * babel
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
- * certifi
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * chardet
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * click
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * docutils
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * idna
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
- * imagesize
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * jinja2
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * markupSafe
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * packaging
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * pockets
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * pygments
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * pyparsing
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * pytz
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * requests
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * setuptools
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * six
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * snowballstemmer
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * sphinx
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
- * sphinxcontrib-websupport
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * sphinx-intl
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
- * urllib3
- > python3 ./setup.py install --prefix=${SPHINX_ROOT_DIR}
-
-boost
-> ./bootstrap.sh  --prefix=${BOOST_ROOT_DIR} --with-toolset=gcc --with-python=${PYTHON_ROOT_DIR}/bin/python3
-
-cmake
-> ./configure --prefix=${CMAKE_ROOT_DIR}
-
-doxygen
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${DOXYGEN_ROOT_DIR} ${DOXYGEN_SRC_DIR}
-
-embree
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${EMBREE_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER:STRING=clang++ -DCMAKE_C_COMPILER:STRING=clang -DEMBREE_TUTORIALS:BOOL=OFF -DEMBREE_TASKING_SYSTEM:STRING=TBB -DTBB_ROOT:PATH=${TBB_ROOT_DIR} -DEMBREE_ISA_AVX512SKX:BOOL=OFF -DEMBREE_ISPC_SUPPORT:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib ${EMBREE_SRC_DIR}
-
-freeimage (no specific configuration procedure, options are passed to make)
-> make -f Makefile.gnu
-> make -f Makefile.gnu DESTDIR=${FREEIMAGE_ROOT_DIR} install
-        
-freetype
-> ./configure --prefix=${FREETYPE_ROOT_DIR} --with-harfbuzz=no CFLAGS='-m64 -fPIC' CPPFLAGS='-m64 -fPIC'
-
-gmsh
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${GMSH_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DENABLE_BUILD_SHARED:BOOL=ON -DENABLE_ACIS:BOOL=OFF -DENABLE_FLTK:BOOL=OFF -DENABLE_MED:BOOL=OFF -DENABLE_ONELAB_METAMODEL:BOOL=OFF -DENABLE_PARSER:BOOL=ON -DENABLE_PETSC:BOOL=OFF -DENABLE_PRIVATE_API:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DENABLE_CGNS:BOOL=OFF ${GMSH_SRC_DIR}
-
-graphvis
-> ./configure --prefix=${GRAPHVIS_ROOT_DIR} --disable-rpath --disable-tcl --disable-perl --disable-php --disable-ocaml --disable-lua --disable-java --disable-guile --disable-sharp --disable-swig --disable-python --disable-r --disable-ruby --without-expat --without-qt CFLAGS=-m64 CXXFLAGS=-m64
-
-h5py (and related products)
- * nose
- > python3 ./setup.py install --prefix=${H5PY_ROOT_DIR}
-
- * pkgconfig
- > python3 ./setup.py install --prefix=${H5PY_ROOT_DIR}
-
- * h5py
- > python3 ./setup.py install --prefix=${H5PY_ROOT_DIR}
-
-hdf5
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${HDF5_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DHDF5_ENABLE_THREADSAFE:BOOL=ON -DALLOW_UNSUPPORTED:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON -DHDF5_BUILD_HL_LIB:BOOL=ON -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON ${HDF5_SRC_DIR}
-
-ispc (install from binaries package)
-> tar xzf ${ISPC_ARCHIVE} -C ${ISPC_ROOT_DIR}
-
-libxml2
-> ./configure --prefix=${LIBXML2_ROOT_DIR}
-
-llvm
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${LLVM_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DPYTHON_EXECUTABLE:STRING=${PYTHON_ROOT_DIR}/bin/python3.6 -DLLVM_INSTALL_UTILS:BOOL=ON -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN:BOOL=ON -DLLVM_ENABLE_DUMP:BOOL=ON ${LLVM_SRC_DIR}
-
-matplotlib (and related products)
- * cycler
- > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
- * dateutil
- > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
-
- * kiwisolver
- > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
-
- * matplotlib
- > python3 ./setup.py install --prefix=${MATPLOTLIB_ROOT_DIR}
-
-medfile
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${MEDFILE_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DMEDFILE_BUILD_SHARED_LIBS:BOOL=ON -DMEDFILE_BUILD_TESTS:BOOL=OFF -DMEDFILE_INSTALL_DOC:BOOL=ON -DMEDFILE_BUILD_PYTHON:BOOL=ON -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_ROOT_DIR}/include/python3.6 -DPYTHON_LIBRARY:FILEPATH=${PYTHON_ROOT_DIR}/lib/libpython3.6.so -DHDF5_ROOT:PATH=${HDF5_ROOT_DIR} -DMED_MEDINT_TYPE=long ${MEDFILE_SRC_DIR}
-(note: build as FFLAGS=-fdefault-integer-8 cmake ${cmake_options})
-
-mesa
-> configure --prefix=${MESA_ROOT_DIR} --enable-opengl --disable-gles1 --disable-gles2 --disable-va --disable-xvmc --disable-vdpau --enable-shared-glapi --disable-texture-float --enable-llvm --disable-llvm-shared-libs --with-llvm-prefix=${LLVM_ROOT_DIR} --with-gallium-drivers=swrast --disable-dri --with-dri-drivers= --disable-egl --with-platforms=x11 --disable-gbm --enable-glx=gallium-xlib --disable-osmesa --enable-gallium-osmesa --enable-autotools
-
-metis
-> make config prefix=${METIS_ROOT_DIR} shared=1
-
-mpi4py
-> python3 ./setup.py install --prefix=${MPI4PY_ROOT_DIR}
-
-netgen
-> aclocal -I m4
-> libtoolize --force --copy --automake
-> autoconf
-> automake --copy --gnu --add-missing
-> ./configure --prefix=${NETGEN_ROOT_DIR} --with-occ=${CAS_ROOT_DIR} --with-tcl=${TCLTK_ROOT_DIR}/lib --with-tk=${TCLTK_ROOT_DIR}/lib --with-tclinclude=${TCLTK_ROOT_DIR}/include CXXFLAGS=-O2 -m64 -std=c++0x
-
-nlopt 
-> ./configure --prefix=${NLOPT_ROOT_DIR} --enable-shared --with-python PYTHON=`which python3` PYTHON_CONFIG=`which python3-config` CFLAGS=-m64 -fPIC CPPFLAGS=-m64 -fPIC
-
-numpy (and related products)
- * lapack
- > cmake -DCMAKE_INSTALL_PREFIX:STRING=${NUMPY_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_CXX_FLAGS:STRING=-fPIC -DCMAKE_C_FLAGS:STRING=-fPIC ${LAPACK_SRC_DIR}
-
- * numpy
- > python3 ./setup.py install --prefix=${NUMPY_ROOT_DIR}
-
-omniorb
-> ./configure --prefix=${OMNIORB_ROOT_DIR} PYTHON=${PYTHON_ROOT_DIR}/bin/python3
-
-omniorbpy
-> ./configure --prefix=${OMNIORB_ROOT_DIR} PYTHON=${PYTHON_ROOT_DIR}/bin/python3
-
-opencv
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${OPENCV_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_opencv_java:BOOL=OFF -DWITH_GTK:BOOL=OFF -DWITH_LAPACK:BOOL=OFF ${OPENCV_SRC_DIR}
-
-openmpi
-> ./configure --prefix=${OPENMPI_ROOT_DIR} CFLAGS=-m64 CXXFLAGS=-m64
-
-openvkl
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${OPENVKL_ROOT_DIR} -DCMAKE_INSTALL_LIBDIR:STRING=lib -DBUILD_TESTING:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -Drkcommon_DIR:PATH=${RKCOMMON_ROOT_DIR}/lib/cmake/rkcommon-${VERSION_RKCOMMON} -DBUILD_EXAMPLES:BOOL=OFF ${OPENVKL_SRC_DIR}
-
-ospray
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${OSPRAY_ROOT_DIR} -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_COMPILER:STRING=clang++ -DCMAKE_C_COMPILER:STRING=clang -DOSPRAY_TASKING_SYSTEM:STRING=TBB -DOSPRAY_ENABLE_APPS:BOOL=OFF -DTBB_ROOT:PATH=${TBB_ROOT_DIR} -Dembree_DIR:PATH=${EMBREE_ROOT_DIR}/lib/cmake/embree-${VERSION_EMBREE} -Drkcommon_DIR:PATH=${RKCOMMON_ROOT_DIR}/lib/cmake/rkcommon-${VERSION_RKCOMMON} -Dopenvkl_DIR:PATH=${OPENVKL_ROOT_DIR}/lib/cmake/openvkl-${VERSION_OPENVKL} ${OSPRAY_SRC_DIR}
-
-planegcs
-> cmake -DCMAKE_INSTALL_PREFIX:STRING=${PLANEGCS_ROOT_DIR} ${PLANEGCS_SRC_DIR}
-
-psutil
-> python3 ./setup.py install --prefix=${PSUTIL_ROOT_DIR}
-
-qt5
-> ./configure -prefix ${QT5_ROOT_DIR} -no-separate-debug-info -opensource -confirm-license -release -no-rpath -verbose -qt-libpng -qt-xcb -no-eglfs -dbus-runtime -skip qtwebengine -skip wayland -skip qtgamepad -system-freetype -qt-harfbuzz -no-openssl -no-glib -nomake examples -nomake tests
-
-qwt
-> ./qmake
-
-rkcommon
-> cmake -DCMAKE_INSTALL_PREFIX=${RKCOMMON_ROOT_DIR} -DCMAKE_INSTALL_LIBDIR:STRING=lib -DBUILD_TESTING:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release ${RKCOMMON_SRC_DIR}
-
-scipy
-> python3 ./setup.py install --prefix=${SCIPY_ROOT_DIR}
-
-scotch (no specific configuration procedure, options are passed to make)
-> make prefix=${SCOTCH_ROOT_DIR}
-
-sip
-> python3 ./setup.py install --prefix=${SIP_ROOT_DIR}
-
-swig
-> ./configure --prefix=${SWIG_ROOT_DIR} --with-boost=${BOOST_ROOT_DIR} --with-python3=${PYTHON_ROOT_DIR}/bin/python3 --without-octave --with-tcl=${TCLTK_ROOT_DIR} --program-suffix=3.0 CFLAGS=-m64 CXXFLAGS=-m64
-
-tbb (no specific configuration procedure, use pre-compiled binaries from the tbb web-site)
-> tar xzf ${TBB_ARCHIVE} -C ${TBB_ROOT_DIR}
-
-tcl
-> ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --enable-64bit
-
-tclx
-> ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --with-tcl=${TCLTK_ROOT_DIR}/lib --with-tk=${TCLTK_ROOT_DIR}/lib --enable-64bit
-
-tk
-> ./configure --prefix=${TCLTK_ROOT_DIR} --enable-gcc --enable-shared --enable-threads --with-tcl=${TCLTK_ROOT_DIR}/lib --enable-64bit
-
-toml
-> python3 ./setup.py install --prefix=${TOML_ROOT_DIR}
diff --git a/config/patches/README b/config/patches/README
deleted file mode 100644 (file)
index f4d6bea..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-This directory containes patches needed to build SALOME pre-requisites.
-
-Comments
-========
-
-1. graphviz
-   ! Additional patch is applied to binaries installation of grapviz via sed utility; this corrects config6 to decrease size of produced png images  
-
-2. qwt
-   ! Patch which contains hardcoded path to qwt install directory is applied via sed utility. It is impossible to create such a patch using diff syntax.
-
-3. omniorbpy
-   ! Additional patch is applied via sed to installed omniidl executables in order to set correct path to omniORB directory.
diff --git a/config/patches/boost.101-python.patch b/config/patches/boost.101-python.patch
deleted file mode 100644 (file)
index 3ba83bb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/include/boost/python/detail/config.hpp b/include/boost/python/detail/config.hpp
-index acf58831..8dce9b74 100644
---- a/include/boost/python/detail/config.hpp
-+++ b/include/boost/python/detail/config.hpp
-@@ -105,7 +105,9 @@
- // Set the name of our library, this will get undef'ed by auto_link.hpp
- // once it's done with it:
- //
--#define BOOST_LIB_NAME boost_python##PY_MAJOR_VERSION##PY_MINOR_VERSION
-+#define _BOOST_PYTHON_CONCAT(N, M, m) N ## M ## m
-+#define BOOST_PYTHON_CONCAT(N, M, m) _BOOST_PYTHON_CONCAT(N, M, m)
-+#define BOOST_LIB_NAME BOOST_PYTHON_CONCAT(boost_python, PY_MAJOR_VERSION, PY_MINOR_VERSION)
- //
- // If we're importing code from a dll, then tell auto_link.hpp about it:
- //
-@@ -118,6 +120,9 @@
- #include <boost/config/auto_link.hpp>
- #endif  // auto-linking disabled
-+#undef BOOST_PYTHON_CONCAT
-+#undef _BOOST_PYTHON_CONCAT
-+
- #ifndef BOOST_PYTHON_NO_PY_SIGNATURES
- #define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition
- #endif
diff --git a/config/patches/cea/README b/config/patches/cea/README
deleted file mode 100644 (file)
index 52c6fa8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-patches applied to SALOME master on February 15th, 2019, October 15th, with their size and sha1sum :
-
-    16a744c44edd656313518a2c4395faf3c2231b29  4784  freeimage-3.16.0_gcc6.patch   (~ occt/freeimage.004_gcc66.patch)
-                                                    patch to build freeimage with gcc 6 version
-
-    0f7a3ede54223bcf9e8fd02fb3a70cdfc3feadd3  699   gl2ps-1.4.0-GLUT.patch
-                                                    cmake option to activate/desactivate GLUT
-
-
-    e8c95d6e325c42be00349a72eaede02c188db9bb  1181  hdf5-1.10.3.patch             (~ occt/hdf5.001_threads_threads.patch)
-                                                    fix problem with Threads::Threads library for CMake build procedure
-                                                    
-
-    584680046919e11e5fa521a68b098a926542c0e3  348   metis-use_cat_not_more.patch
-                                                    replace more command by a cat command
-
-
-    ab660d036e7f761e6c8d0df1cc994c5d2c9ec2db  57810 netgen-5.3.1-for-SALOME-OCCT-7.2.0.patch
-                                                    compatibility patch provided by OCC
-
diff --git a/config/patches/cea/freeimage-3.16.0_gcc6.patch b/config/patches/cea/freeimage-3.16.0_gcc6.patch
deleted file mode 100644 (file)
index 614a853..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c  2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c       2016-10-14 12:05:37.481253676 +0300
-@@ -4072,22 +4072,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp      2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp   2016-10-14 12:06:27.540395171 +0300
-@@ -3782,22 +3782,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-@@ -7380,7 +7380,7 @@
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
-     { "Phase One P65", 0, 0,\r
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
--    { "Red One", 704, 0xffff,         /* DJC */\r
-+    { "Red One", 704, (short int)0xffff,              /* DJC */\r
-       { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } },\r
-     { "Samsung EK-GN120", 0, 0, /* Adobe; Galaxy NX */\r
-         { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },\r
diff --git a/config/patches/cea/gl2ps-1.4.0-GLUT.patch b/config/patches/cea/gl2ps-1.4.0-GLUT.patch
deleted file mode 100644 (file)
index 51958a9..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- gl2ps-1.3.9p1_ori/CMakeLists.txt   2015-10-19 00:01:33.000000000 +0200
-+++ gl2ps-1.3.9p1_new/CMakeLists.txt   2017-08-03 15:26:40.967608544 +0200
-@@ -82,11 +82,14 @@ if(OPENGL_FOUND)
-   list(APPEND EXTERNAL_LIBRARIES ${OPENGL_LIBRARIES})
- endif(OPENGL_FOUND)
--find_package(GLUT)
--if(GLUT_FOUND)
--  list(APPEND EXTERNAL_INCLUDES ${GLUT_INCLUDE_DIR})
--  list(APPEND EXTERNAL_LIBRARIES ${GLUT_LIBRARIES})
--endif(GLUT_FOUND)
-+# Add ENABLE_GLUT option
-+if(ENABLE_GLUT)
-+  find_package(GLUT)
-+  if(GLUT_FOUND)
-+    list(APPEND EXTERNAL_INCLUDES ${GLUT_INCLUDE_DIR})
-+    list(APPEND EXTERNAL_LIBRARIES ${GLUT_LIBRARIES})
-+  endif(GLUT_FOUND)
-+endif(ENABLE_GLUT)
- if(ENABLE_ZLIB)
-   find_package(ZLIB)
diff --git a/config/patches/cea/hdf5-1.10.3.patch b/config/patches/cea/hdf5-1.10.3.patch
deleted file mode 100644 (file)
index 45ecfe0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur --exclude=CVS --exclude=.git hdf5-1.10.3_orig/src/CMakeLists.txt hdf5-1.10.3_patched/src/CMakeLists.txt\r
---- hdf5-1.10.3_orig/src/CMakeLists.txt        2018-08-10 00:36:31.000000000 +0300\r
-+++ hdf5-1.10.3_patched/src/CMakeLists.txt     2018-10-10 16:25:28.196773245 +0300\r
-@@ -954,9 +954,10 @@\r
-           $<$<BOOL:${HDF5_ENABLE_DEBUG_APIS}>:H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG>\r
-   )\r
-   TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED)\r
-+  get_property(_threads_libs TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES)\r
-   target_link_libraries (${HDF5_LIBSH_TARGET}\r
-       PRIVATE ${LINK_LIBS} ${LINK_COMP_LIBS} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_LIBRARIES}>"\r
--      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:Threads::Threads>\r
-+      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:${_threads_libs}>\r
-   )\r
-   set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")\r
-   H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED "LIB")\r
diff --git a/config/patches/cea/metis-use_cat_not_more.patch b/config/patches/cea/metis-use_cat_not_more.patch
deleted file mode 100644 (file)
index a683030..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rupN metis/Makefile metis_new/Makefile
---- metis/Makefile     2013-03-30 17:24:45.000000000 +0100
-+++ metis_new/Makefile 2016-07-06 15:33:42.959903471 +0200
-@@ -62,7 +62,7 @@ endef
- all clean install:
-       @if [ ! -f $(BUILDDIR)/Makefile ]; then \
--              more BUILD.txt; \
-+              cat BUILD.txt; \
-       else \
-               make -C $(BUILDDIR) $@ $(MAKEFLAGS); \
-       fi
diff --git a/config/patches/cea/netgen-5.3.1-for-SALOME-OCCT-7.2.0.patch b/config/patches/cea/netgen-5.3.1-for-SALOME-OCCT-7.2.0.patch
deleted file mode 100644 (file)
index 49d4a6d..0000000
+++ /dev/null
@@ -1,1530 +0,0 @@
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.am netgen-5.3.1_SRC_modif/Makefile.am
---- netgen-5.3.1_SRC_orig/Makefile.am  2014-08-29 13:55:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.am 2017-09-11 18:08:21.217313702 +0300
-@@ -2,7 +2,7 @@
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- # TESTS = ng/netgen -batchmode
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.in netgen-5.3.1_SRC_modif/Makefile.in
---- netgen-5.3.1_SRC_orig/Makefile.in  2014-10-06 15:04:37.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.in 2017-09-11 18:08:21.225312838 +0300
-@@ -280,7 +280,7 @@
- top_srcdir = @top_srcdir@
- ACLOCAL_AMFLAGS = -I m4
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- all: config.h
-       $(MAKE) $(AM_MAKEFLAGS) all-recursive
-diff -Naur netgen-5.3.1_SRC_orig/configure.ac netgen-5.3.1_SRC_modif/configure.ac
---- netgen-5.3.1_SRC_orig/configure.ac 2014-10-06 15:00:17.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/configure.ac        2017-09-11 18:08:21.226312730 +0300
-@@ -20,7 +20,7 @@
- CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
- # LDFLAGS="$LDFLAGS $OPENMP_CXXFLAGS"
--AM_PROG_AR
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AC_PROG_LIBTOOL
- LT_INIT
-@@ -42,8 +42,8 @@
- if test a$occon = atrue ; then
--      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
--      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-+      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
-+      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
- #  -lTKDCAF
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am       2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am      2017-09-11 18:08:21.234311865 +0300
-@@ -8,7 +8,7 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include  $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libcsg.la
-+noinst_LTLIBRARIES = libcsg.la
- libcsg_la_SOURCES = algprim.cpp brick.cpp   \
-@@ -17,12 +17,9 @@
- manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
- solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
--libcsg_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
--
--
- if NGGUI
--lib_LTLIBRARIES += libcsgvis.la 
-+lib_LTLIBRARIES = libcsgvis.la 
- libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
- libcsgvis_la_LIBADD = libcsg.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am    2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am   2017-09-11 18:08:21.234311865 +0300
-@@ -4,16 +4,15 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libgeom2d.la 
-+noinst_LTLIBRARIES = libgeom2d.la 
- if NGGUI
--lib_LTLIBRARIES += libgeom2dvis.la 
-+lib_LTLIBRARIES = libgeom2dvis.la 
- endif
- libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
--libgeom2d_la_LIBADD =         $(top_builddir)/libsrc/meshing/libmesh.la
- libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
- libgeom2dvis_la_LIBADD = libgeom2d.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am 2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am        2017-09-11 18:08:21.234311865 +0300
-@@ -2,14 +2,11 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface  $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
- METASOURCES = AUTO
--lib_LTLIBRARIES = libinterface.la
-+noinst_LTLIBRARIES = libinterface.la
- libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
-       read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
-       writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
-       writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
-       wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp 
--
--libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
--
- # libinterface_la_LDFLAGS = -rdynamic
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am  2017-09-11 18:08:21.234311865 +0300
-@@ -15,7 +15,7 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libmesh.la
-+noinst_LTLIBRARIES = libmesh.la
- libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
-       clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp            \
-@@ -30,8 +30,5 @@
-       topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp   \
-       parallelmesh.cpp  paralleltop.cpp  paralleltop.hpp basegeom.cpp 
--libmesh_la_LIBADD =  $(top_builddir)/libsrc/linalg/libla.la \
--      $(top_builddir)/libsrc/gprim/libgprim.la \
--      $(top_builddir)/libsrc/general/libgen.la \
--      -lz
-+libmesh_la_LIBADD = -lz
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp    2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp   2017-09-11 18:08:21.226312730 +0300
-@@ -75,6 +75,9 @@
-   static int timer = NgProfiler::CreateTimer ("FindInnerPoint");
-   NgProfiler::RegionTimer reg (timer);
-+  if ( points.Size() < 3 )
-+    return 0;
-+
-   Array<Vec3d> a;
-   Array<double> c;
-   Mat<3> m, inv;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp 2017-09-11 18:08:21.227312622 +0300
-@@ -1219,6 +1219,7 @@
-             tetused = 0;
-             tetused[0] = 1;
-+              int nbtetused = 0;
-             for (int l = 2; l < nsuround; l++)
-               {
-@@ -1239,10 +1240,12 @@
-                             
-                             tetused[k] = 1; 
-                             suroundpts[l] = newpi;
-+                              ++nbtetused;
-                           }                   
-                     }
-               }
--
-+              if ( nbtetused < nsuround )
-+                continue;
-             
-             bad1 = 0;
-             for (int k = 0; k < nsuround; k++)
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp 2017-09-11 18:08:21.227312622 +0300
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h> // to get DBL_MIN defined
- #include "meshing.hpp"  
-@@ -666,7 +667,8 @@
-         double det = trans.Det();
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -722,7 +724,8 @@
-             double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
--            if (det <= 0)
-+            // if (det <= 0)
-+            if (det <= DBL_MIN)  // avoid FPE
-               {
-                 dd = 0;
-                 return 1e12;
-@@ -806,7 +809,8 @@
-           = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
-           + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -856,7 +860,8 @@
-         frob /= 2;
-         double det = trans.Det();
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -1864,7 +1869,8 @@
-       case PYRAMID:
-         {
-           double noz = 1-p(2);
--          if (noz == 0.0) noz = 1e-10;
-+          //if (noz == 0.0) noz = 1e-10;
-+          if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
-           double xi  = p(0) / noz;
-           double eta = p(1) / noz;
-@@ -2030,7 +2036,8 @@
-         double det = -trans.Det();
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob * frob / det;
-@@ -2102,7 +2109,8 @@
-         ddet *= -1;
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -2184,7 +2192,7 @@
-       
-         det *= -1;
-       
--        if (det <= 0)
-+        if (det <= DBL_MIN)
-           err += 1e12;
-         else
-           {
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp 2017-09-11 18:08:21.228312514 +0300
-@@ -15,6 +15,7 @@
-     Classes for NETGEN
-   */
-+class Mesh; // added due to compilation errors on some platforms
-   enum ELEMENT_TYPE { 
-@@ -360,7 +361,7 @@
-         {
- #ifdef DEBUG
-           if (typ != QUAD && typ != QUAD6 && typ != QUAD8)
--            PrintSysError ("element2d::GetNV not implemented for typ", typ)
-+            PrintSysError ("element2d::GetNV not implemented for typ", typ);
- #endif
-           return 4;
-         }
-@@ -618,7 +619,7 @@
-         return 8;
-       default:
- #ifdef DEBUG
--        PrintSysError ("Element3d::GetNV not implemented for typ ", typ)
-+        PrintSysError ("Element3d::GetNV not implemented for typ ", typ);
- #endif
-           ;
-       }
-@@ -682,7 +683,7 @@
-       case PRISM12: return 5;
-       default:
- #ifdef DEBUG
--        PrintSysError ("element3d::GetNFaces not implemented for typ", typ)
-+        PrintSysError ("element3d::GetNFaces not implemented for typ", typ);
- #endif
-           ;
-       }
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am      2017-09-11 18:08:21.234311865 +0300
-@@ -14,10 +14,10 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libocc.la
-+noinst_LTLIBRARIES = libocc.la
- if NGGUI
--lib_LTLIBRARIES += liboccvis.la 
-+lib_LTLIBRARIES = liboccvis.la 
- endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx    2017-09-11 18:08:21.228312514 +0300
-@@ -47,9 +47,7 @@
- #include <TopOpeBRep_EdgesIntersector.hxx>
- #include <TopOpeBRep_Point2d.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
--#include <TopTools_MapOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Edge.hxx>
- #include <TopoDS_Vertex.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx    2017-09-11 18:08:21.228312514 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter2d_HeaderFile
- #define _Partition_Inter2d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _Standard_Real_HeaderFile
-@@ -36,11 +38,13 @@
- #ifndef _Standard_Boolean_HeaderFile
- #include <Standard_Boolean.hxx>
- #endif
-+
-+#include <TopTools_MapOfShape.hxx>
-+#include <TopTools_ListOfShape.hxx>
-+
- class BRepAlgo_AsDes;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Vertex;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx    2017-09-11 18:08:21.229312406 +0300
-@@ -48,7 +48,6 @@
- #include <TopOpeBRepTool_BoxSort.hxx>
- #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Compound.hxx>
- #include <TopoDS_Edge.hxx>
-@@ -206,7 +205,7 @@
-   Handle (Geom_Surface) S   = BRep_Tool::Surface(F,L);
-   if (S->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
--    S = (*(Handle_Geom_RectangularTrimmedSurface*)&S)->BasisSurface();
-+    S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
-   }
-   if (!S->IsUPeriodic() && !S->IsVPeriodic())
-     return;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx    2017-09-11 18:08:21.229312406 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter3d_HeaderFile
- #define _Partition_Inter3d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
-@@ -36,6 +38,9 @@
- #ifndef _TopTools_MapOfShape_HeaderFile
- #include <TopTools_MapOfShape.hxx>
- #endif
-+#ifndef _TopTools_ListOfShape_HeaderFile
-+#include <TopTools_ListOfShape.hxx>
-+#endif
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
-@@ -43,10 +48,7 @@
- #include <Standard_Boolean.hxx>
- #endif
- class BRepAlgo_AsDes;
--class TopTools_ListOfShape;
--class TopTools_DataMapOfShapeShape;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Shape;
- class TopoDS_Vertex;
- class TopoDS_Edge;
-@@ -83,13 +85,13 @@
-    void FacesPartition(const TopoDS_Face& F1,const TopoDS_Face& F2) ;
-    Standard_Boolean IsDone(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
-    TopTools_MapOfShape& TouchedFaces() ;
--   Handle_BRepAlgo_AsDes AsDes() const;
-+   Handle(BRepAlgo_AsDes) AsDes() const;
-    TopTools_MapOfShape& NewEdges() ;
-    Standard_Boolean HasSameDomainF(const TopoDS_Shape& F) const;
-    Standard_Boolean IsSameDomainF(const TopoDS_Shape& F1,const TopoDS_Shape& F2) const;
-    const TopTools_ListOfShape& SameDomain(const TopoDS_Face& F) const;
-    TopoDS_Vertex ReplaceSameDomainV(const TopoDS_Vertex& V,const TopoDS_Edge& E) const;
--   Handle_BRepAlgo_AsDes SectionEdgesAD() const;
-+   Handle(BRepAlgo_AsDes) SectionEdgesAD() const;
-    Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
-    Standard_Boolean HasSectionEdge(const TopoDS_Face& F) const;
-    Standard_Boolean IsSplitOn(const TopoDS_Edge& NewE,const TopoDS_Edge& OldE,const TopoDS_Face& F) const;
-@@ -121,11 +123,11 @@
-    // Fields PRIVATE
-    //
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    TopTools_DataMapOfShapeListOfShape myDone;
-    TopTools_MapOfShape myTouched;
-    TopTools_MapOfShape myNewEdges;
--   Handle_BRepAlgo_AsDes mySectionEdgesAD;
-+   Handle(BRepAlgo_AsDes) mySectionEdgesAD;
-    TopTools_DataMapOfShapeListOfShape mySameDomainFM;
-    TopTools_DataMapOfShapeShape mySameDomainVM;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx       2017-09-11 18:08:21.229312406 +0300
-@@ -38,8 +38,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
--
- #ifndef _Standard_HeaderFile
- #include <Standard.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx     2017-09-11 18:08:21.229312406 +0300
-@@ -210,7 +210,7 @@
-     Cc->D1(uc, PC, CTg1);
-     if (!isForward) CTg1.Reverse();
--    Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
-+    Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
-     // select an edge whose first derivative is most left of CTg1
-     // ie an angle between Tg1 and CTg1 is least
-@@ -234,7 +234,7 @@
-       // -PI < angle < PI
-       Standard_Real angle = Tg1.Angle(CTg1);
--      if (PI - Abs(angle) <= tolAng)
-+      if (M_PI - Abs(angle) <= tolAng)
-       {
-         // an angle is too close to PI; assure that an angle sign really
-         // reflects an edge position: +PI - an edge is worst,
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx     2017-09-11 18:08:21.230312298 +0300
-@@ -24,7 +24,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
- class BRepAlgo_Image;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx     2017-09-11 18:08:21.230312298 +0300
-@@ -13,6 +13,9 @@
- #ifndef _TopTools_ListOfShape_HeaderFile
- #include <TopTools_ListOfShape.hxx>
- #endif
-+#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-+#include <TopTools_MapOfOrientedShape.hxx>
-+#endif
- #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #endif
-@@ -23,8 +26,6 @@
- #include <Standard_Real.hxx>
- #endif
- class TopoDS_Shape;
--class TopTools_ListOfShape;
--class TopTools_MapOfOrientedShape;
- class TopoDS_Edge;
- class TopoDS_Face;
- class gp_Vec;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx    2017-09-11 18:08:21.230312298 +0300
-@@ -48,7 +48,6 @@
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #include <TopTools_IndexedMapOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
- #include <TopTools_SequenceOfShape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx    2017-09-11 18:08:21.231312190 +0300
-@@ -28,9 +28,6 @@
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
--#include <Handle_BRepAlgo_AsDes.hxx>
--#endif
- #ifndef _BRepAlgo_Image_HeaderFile
- #include <BRepAlgo_Image.hxx>
- #endif
-@@ -45,7 +42,6 @@
- #endif
- class BRepAlgo_AsDes;
- class TopoDS_Shape;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-@@ -129,7 +125,7 @@
-    TopTools_DataMapOfShapeShape myFaceShapeMap;
-    TopTools_DataMapOfShapeShape myInternalFaces;
-    TopTools_DataMapOfShapeShape myIntNotClFaces;
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    BRepAlgo_Image myImagesFaces;
-    BRepAlgo_Image myImagesEdges;
-    BRepAlgo_Image myImageShape;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp      2017-09-11 18:08:21.231312190 +0300
-@@ -28,7 +28,7 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
- //#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp    2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp   2017-09-11 18:08:21.231312190 +0300
-@@ -171,8 +171,8 @@
-          if(h < 1e-4*maxside)\r
-             return;\r
\r
--\r
--         if (h > 30) return;\r
-+         // commented to restrict H on a large sphere for example
-+         //if (h > 30) return;
-       }\r
\r
-       if (h < maxside && depth < 10)\r
-@@ -250,8 +250,8 @@
-       hvalue[0] = 0;\r
-       pnt = c->Value(s0);\r
\r
--      double olddist = 0;\r
--      double dist = 0;\r
-+      //double olddist = 0; -- useless variables
-+      //double dist = 0;
\r
-       int tmpVal = (int)(DIVIDEEDGESECTIONS);\r
\r
-@@ -259,15 +259,19 @@
-       {\r
-          oldpnt = pnt;\r
-          pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));\r
-+         // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
-          hvalue[i] = hvalue[i-1] +\r
-+         //   1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+         //   pnt.Distance(oldpnt);
-+           min( 1.0,
-             1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
--            pnt.Distance(oldpnt);\r
-+                pnt.Distance(oldpnt));
\r
-          //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))\r
-          //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;\r
\r
--         olddist = dist;\r
--         dist = pnt.Distance(oldpnt);\r
-+         //olddist = dist; -- useless variables
-+         //dist = pnt.Distance(oldpnt);
-       }\r
\r
-       //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));\r
-@@ -282,7 +286,10 @@
-       {\r
-          if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)\r
-          {\r
--            params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);\r
-+            // -- for nsubedges comparable to DIVIDEEDGESECTIONS
-+            //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
-+            params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-             pnt = c->Value(params[i]);\r
-             ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));\r
-             i++;\r
-@@ -326,6 +333,9 @@
-       (*testout) << "nedges = " << nedges << endl;\r
\r
-       double eps = 1e-6 * geom.GetBoundingBox().Diam();\r
-+      const double eps2 = eps * eps; // -- small optimization
-+
-+      int first_vp = mesh.GetNP()+1; // -- to support SALOME sub-meshes
\r
-       for (int i = 1; i <= nvertices; i++)\r
-       {\r
-@@ -335,7 +345,8 @@
-          bool exists = 0;\r
-          if (merge_solids)\r
-             for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)\r
--               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)\r
-+               //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)              
-+               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
-                {\r
-                   exists = 1;\r
-                   break;\r
-@@ -365,6 +376,7 @@
-          {\r
-             TopoDS_Face face = TopoDS::Face(exp1.Current());\r
-             int facenr = geom.fmap.FindIndex(face);\r
-+            if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
\r
-             if (face2solid[0][facenr-1] == 0)\r
-                face2solid[0][facenr-1] = solidnr;\r
-@@ -384,6 +396,7 @@
-       int facenr = 0;\r
-       int edgenr = 0;\r
\r
-+      edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
\r
-       (*testout) << "faces = " << geom.fmap.Extent() << endl;\r
-       int curr = 0;\r
-@@ -445,6 +458,7 @@
-                   //(*testout) << "ignoring degenerated edge" << endl;\r
-                   continue;\r
-                }\r
-+               if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
\r
-                if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
-                   geom.vmap.FindIndex(TopExp::LastVertex (edge)))\r
-@@ -477,20 +491,104 @@
\r
-                if (!merge_solids)\r
-                {\r
--                  pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));\r
--                  pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));\r
-+                 //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
-+                 //pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
-+                 MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );
-+                 int *ipp[] = { &pnums[0], &pnums[pnums.Size()-1] };
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v[2];
-+                 v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 v[1] = TopoDS::Vertex( vIt.Value() );
-+                 if ( v[0].Orientation() == TopAbs_REVERSED )
-+                   std::swap( v[0], v[1] );
-+                 for ( int i = 0; i < 2; ++i)
-+                 {
-+                   int &ip = *ipp[i];
-+                   ip = geom.vmap.FindIndex ( v[i] );
-+                   if ( ip == 0 || ip > nvertices )
-+                   {
-+                     int iv = ip;
-+                     if ( ip == 0 )
-+                       ip = iv = geom.vmap.Add( v[i] );
-+                     gp_Pnt pnt = BRep_Tool::Pnt( v[i] );
-+                     MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+                     for (PointIndex pi = 1; pi < first_vp; pi++)
-+                       if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )
-+                       {
-+                         ip = pi;
-+                         if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )
-+                           continue;
-+                         if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())
-+                           mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );
-+                         break;
-+                       }
-                }\r
-                else\r
-                {\r
--                  Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));\r
--                  Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));\r
-+                     ip += first_vp - 1;
-+                   }
-+                 }
-+               }
-+               else
-+               {
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
-+                 if ( v1.Orientation() == TopAbs_REVERSED )
-+                   std::swap( v1, v2 );
-+                 const bool isClosedEdge = v1.IsSame( v2 );
-+                 
-+                  Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
-+                  Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
-+                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
-+                  if ( isClosedEdge )
-+                    tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
\r
-                   pnums[0] = -1;\r
-                   pnums.Last() = -1;\r
-                   for (PointIndex pi = 1; pi < first_ep; pi++)\r
-                   {\r
--                     if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;\r
--                     if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;\r
-+                    if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
-+                    if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
-+                  }
-+                  if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
-+                      ( !isClosedEdge && pnums[0] == pnums.Last() ))
-+                    pnums[0] = pnums.Last() = -1;
-+                  if ( pnums[0] == -1 || pnums.Last() == -1 )
-+                  {
-+                    // take into account a possible large gap between a vertex and an edge curve
-+                    // end and a large vertex tolerance covering the whole edge
-+                    if ( pnums[0] == -1 )
-+                    {
-+                      double tol = BRep_Tool::Tolerance( v1 );
-+                      for (PointIndex pi = 1; pi < first_ep; pi++)
-+                        if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
-+                          pnums[0] = pi;
-+
-+                      if ( pnums[0] == -1 )
-+                        pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
-+                    }
-+                    if ( isClosedEdge )
-+                    {
-+                      pnums.Last() = pnums[0];
-+                    }
-+                    else
-+                    {
-+                      if ( pnums.Last() == -1 )
-+                      {
-+                        double tol = BRep_Tool::Tolerance( v2 );
-+                        for (PointIndex pi = 1; pi < first_ep; pi++)
-+                          if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
-+                            pnums.Last() = pi;
-+
-+                        if ( pnums.Last() == -1 )
-+                          pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
-+                      }
-+
-+                      if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
-+                           Dist2( lp, mesh[PointIndex(pnums.Last())]))
-+                      std::swap( pnums[0], pnums.Last() );
-+                    }
-                   }\r
-                }\r
\r
-@@ -500,17 +598,20 @@
-                   bool exists = 0;\r
-                   int j;\r
-                   for (j = first_ep; j <= mesh.GetNP(); j++)\r
-+                  {
-+                     if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue; // to support SALOME fuse edges
-                      if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)\r
-                      {\r
-                         exists = 1;\r
-                         break;\r
-                      }\r
-+                  }
\r
-                      if (exists)\r
-                         pnums[i] = j;\r
-                      else\r
-                      {\r
--                        mesh.AddPoint (mp[i-1]);\r
-+                        mesh.AddPoint (mp[i-1], geomedgenr); // to support SALOME fuse edges
-                         (*testout) << "add meshpoint " << mp[i-1] << endl;\r
-                         pnums[i] = mesh.GetNP();\r
-                      }\r
-@@ -594,6 +695,8 @@
-       //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si\r
-       //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;\r
-       //      exit(10);\r
-+      for (int j = 1; j <= mesh.GetNP(); j++) // to support SALOME fuse edges: set level to zero
-+        mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );
\r
-       mesh.CalcSurfacesOfNode();\r
-       multithread.task = savetask;\r
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp      2017-09-11 18:08:32.836058020 +0300
-@@ -8,6 +8,8 @@
- #include "ShapeAnalysis_CheckSmallFace.hxx"\r
- #include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"\r
- #include "ShapeAnalysis_Surface.hxx"\r
-+#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
-+#include <TopAbs_State.hxx>
- #include "BRepAlgoAPI_Fuse.hxx"\r
- #include "BRepCheck_Analyzer.hxx"\r
- #include "BRepLib.hxx"\r
-@@ -16,9 +18,16 @@
- #include "ShapeFix_FixSmallFace.hxx"\r
- #include "Partition_Spliter.hxx"\r
\r
--\r
- namespace netgen\r
- {\r
-+  // free data used to optimize Project() and FastProject()
-+  OCCGeometry::~OCCGeometry()
-+  {
-+    NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+    for (; it.More(); it.Next())
-+      delete it.Value();
-+  }
-+
-    void OCCGeometry :: PrintNrShapes ()\r
-    {\r
-       TopExp_Explorer e;\r
-@@ -112,13 +121,13 @@
-       double surfacecont = 0;\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-             TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
-             if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
-+               rebuild->Remove(edge);\r
-          }\r
-          shape = rebuild->Apply(shape);\r
-       }\r
-@@ -143,7 +152,7 @@
-          cout << endl << "- repairing faces" << endl;\r
\r
-          Handle(ShapeFix_Face) sff;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
\r
\r
-@@ -187,7 +196,7 @@
-                   cout << "(natural bounds added)" <<endl;\r
-                TopoDS_Face newface = sff->Face();\r
\r
--               rebuild->Replace(face, newface, Standard_False);\r
-+               rebuild->Replace(face, newface);\r
-             }\r
\r
-             // Set the original colour of the face to the newly created \r
-@@ -200,13 +209,13 @@
\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-             TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
-             if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
-+               rebuild->Remove(edge);\r
-          }\r
-          shape = rebuild->Apply(shape);\r
-       }\r
-@@ -217,7 +226,7 @@
-          cout << endl << "- fixing small edges" << endl;\r
\r
-          Handle(ShapeFix_Wire) sfw;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
\r
\r
-@@ -270,7 +279,7 @@
-                if(replace)\r
-                {\r
-                   TopoDS_Wire newwire = sfw->Wire();\r
--                  rebuild->Replace(oldwire, newwire, Standard_False);\r
-+                  rebuild->Replace(oldwire, newwire);\r
-                }\r
\r
-                //delete sfw; sfw = NULL;\r
-@@ -284,7 +293,7 @@
\r
-          {\r
-             BuildFMap();\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-             rebuild->Apply(shape);\r
\r
-             for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-@@ -300,7 +309,7 @@
-                      cout << "removing degenerated edge " << emap.FindIndex(edge)\r
-                         << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))\r
-                         << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;\r
--                     rebuild->Remove(edge, false);\r
-+                     rebuild->Remove(edge);\r
-                   }\r
-                }\r
-             }\r
-@@ -312,13 +321,13 @@
\r
\r
-          {\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-             rebuild->Apply(shape);\r
-             for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-             {\r
-                TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
-                if ( BRep_Tool::Degenerated(edge) )\r
--                  rebuild->Remove(edge, false);\r
-+                  rebuild->Remove(edge);\r
-             }\r
-             shape = rebuild->Apply(shape);\r
-          }\r
-@@ -438,13 +447,13 @@
\r
\r
-       {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-          rebuild->Apply(shape);\r
-          for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
-          {\r
-             TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
-             if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
-+               rebuild->Remove(edge);\r
-          }\r
-          shape = rebuild->Apply(shape);\r
-       }\r
-@@ -483,9 +492,9 @@
-                   TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
-                   TopoDS_Solid newsolid = solid;\r
-                   BRepLib::OrientClosedSolid (newsolid);\r
--                  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
-+                  Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-                   //            rebuild->Apply(shape);\r
--                  rebuild->Replace(solid, newsolid, Standard_False);\r
-+                  rebuild->Replace(solid, newsolid);\r
-                   TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);\r
-                   //            TopoDS_Shape newshape = rebuild->Apply(shape);\r
-                   shape = newshape;\r
-@@ -906,8 +915,8 @@
-             TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
-             TopoDS_Solid newsolid = solid;\r
-             BRepLib::OrientClosedSolid (newsolid);\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--            rebuild->Replace(solid, newsolid, Standard_False);\r
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Replace(solid, newsolid);\r
\r
-             TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);\r
-             shape = newshape;\r
-@@ -951,25 +960,58 @@
-    }\r
\r
\r
-+   // returns a projector and a classifier for the given surface
-+   void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                                  BRepTopAdaptor_FClass2d*& cls) const
-+   {
-+     //MSV: organize caching projector in the map
-+     if (fprjmap.IsBound(surfi))
-+     {
-+       proj = fprjmap.Find(surfi);
-+       cls = fclsmap.Find(surfi);
-+     }
-+     else
-+     {
-+       const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+       Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+       proj = new ShapeAnalysis_Surface(aSurf);
-+       fprjmap.Bind(surfi, proj);
-+       cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+       fclsmap.Bind(surfi, cls);
-+     }
-+   }
\r
--\r
--   void OCCGeometry :: Project (int surfi, Point<3> & p) const\r
-+   // void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+   bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
-    {\r
-       static int cnt = 0;\r
-       if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;\r
\r
-       gp_Pnt pnt(p(0), p(1), p(2));\r
\r
--      double u,v;\r
--      Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--      Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );\r
--      gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );\r
--      suval.Coord( u, v);\r
--      pnt = thesurf->Value( u, v );\r
--\r
-+      // -- Optimization: use cached projector and classifier
-+      // double u,v;
-+      // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-+      // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-+      // suval.Coord( u, v);
-+      // pnt = thesurf->Value( u, v );  
-+
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+\r
-+      gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        return false;
-+      }
-+      pnt = proj->Value(p2d);
-+      p2d.Coord(u, v);
\r
-       p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());\r
\r
-+      return true;
-    }\r
\r
\r
-@@ -979,54 +1021,69 @@
-    {\r
-       gp_Pnt p(ap(0), ap(1), ap(2));\r
\r
--      Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--\r
--      gp_Pnt x = surface->Value (u,v);\r
--\r
--      if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;\r
--\r
--      gp_Vec du, dv;\r
--\r
--      surface->D1(u,v,x,du,dv);\r
--\r
--      int count = 0;\r
--\r
--      gp_Pnt xold;\r
--      gp_Vec n;\r
--      double det, lambda, mu;\r
--\r
--      do {\r
--         count++;\r
--\r
--         n = du^dv;\r
--\r
--         det = Det3 (n.X(), du.X(), dv.X(),\r
--            n.Y(), du.Y(), dv.Y(),\r
--            n.Z(), du.Z(), dv.Z());\r
--\r
--         if (det < 1e-15) return false;\r
--\r
--         lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),\r
--            n.Y(), p.Y()-x.Y(), dv.Y(),\r
--            n.Z(), p.Z()-x.Z(), dv.Z())/det;\r
--\r
--         mu     = Det3 (n.X(), du.X(), p.X()-x.X(),\r
--            n.Y(), du.Y(), p.Y()-x.Y(),\r
--            n.Z(), du.Z(), p.Z()-x.Z())/det;\r
--\r
--         u += lambda;\r
--         v += mu;\r
--\r
--         xold = x;\r
--         surface->D1(u,v,x,du,dv);\r
--\r
--      } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);\r
--\r
--      //    (*testout) << "FastProject count: " << count << endl;\r
--\r
--      if (count == 50) return false;\r
--\r
--      ap = Point<3> (x.X(), x.Y(), x.Z());\r
-+      // -- Optimization: use cached projector and classifier
-+      // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // 
-+      // gp_Pnt x = surface->Value (u,v);
-+      // 
-+      // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
-+      // 
-+      // gp_Vec du, dv;
-+      // 
-+      // surface->D1(u,v,x,du,dv);
-+      // 
-+      // int count = 0;
-+      // 
-+      // gp_Pnt xold;
-+      // gp_Vec n;
-+      // double det, lambda, mu;
-+      // 
-+      // do {
-+      //    count++;
-+      // 
-+      //    n = du^dv;
-+      // 
-+      //    det = Det3 (n.X(), du.X(), dv.X(),
-+      //       n.Y(), du.Y(), dv.Y(),
-+      //       n.Z(), du.Z(), dv.Z());
-+      // 
-+      //    if (det < 1e-15) return false;
-+      // 
-+      //    lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-+      //       n.Y(), p.Y()-x.Y(), dv.Y(),
-+      //       n.Z(), p.Z()-x.Z(), dv.Z())/det;
-+      // 
-+      //    mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
-+      //       n.Y(), du.Y(), p.Y()-x.Y(),
-+      //       n.Z(), du.Z(), p.Z()-x.Z())/det;
-+      // 
-+      //    u += lambda;
-+      //    v += mu;
-+      // 
-+      //    xold = x;
-+      //    surface->D1(u,v,x,du,dv);
-+      // 
-+      // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
-+      // 
-+      // //    (*testout) << "FastProject count: " << count << endl;
-+      // 
-+      // if (count == 50) return false;
-+      // 
-+      // ap = Point<3> (x.X(), x.Y(), x.Z());
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+\r
-+      gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        //cout << "Projection fails" << endl;
-+        return false;
-+      }
-+\r
-+      p = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+      ap = Point<3> (p.X(), p.Y(), p.Z());
\r
-       return true;\r
-    }\r
-@@ -1038,9 +1095,9 @@
-    {\r
-       cout << "writing stl..."; cout.flush();\r
-       StlAPI_Writer writer;\r
--      writer.RelativeMode() = Standard_False;\r
-+      //writer.RelativeMode() = Standard_False;
\r
--      writer.SetDeflection(0.02);\r
-+      //writer.SetDeflection(0.02);
-       writer.Write(shape,filename);\r
\r
-       cout << "done" << endl;\r
-@@ -1059,10 +1116,10 @@
-       occgeo = new OCCGeometry;\r
\r
-       // Initiate a dummy XCAF Application to handle the IGES XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
\r
-       // Create an XCAF Document to contain the IGES file itself\r
--      Handle_TDocStd_Document iges_doc;\r
-+      Handle(TDocStd_Document) iges_doc;
\r
-       // Check if a IGES File is already open under this handle, if so, close it to prevent\r
-       // Segmentation Faults when trying to create a new document\r
-@@ -1089,8 +1146,8 @@
-       reader.Transfer(iges_doc);\r
\r
-       // Read in the shape(s) and the colours present in the IGES File\r
--      Handle_XCAFDoc_ShapeTool iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());\r
--      Handle_XCAFDoc_ColorTool iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());\r
-+      Handle(XCAFDoc_ShapeTool) iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
-+      Handle(XCAFDoc_ColorTool) iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
\r
-       TDF_LabelSequence iges_shapes;\r
-       iges_shape_contents->GetShapes(iges_shapes);\r
-@@ -1137,10 +1194,10 @@
-       occgeo = new OCCGeometry;\r
\r
-       // Initiate a dummy XCAF Application to handle the STEP XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
\r
-       // Create an XCAF Document to contain the STEP file itself\r
--      Handle_TDocStd_Document step_doc;\r
-+      Handle(TDocStd_Document) step_doc;
\r
-       // Check if a STEP File is already open under this handle, if so, close it to prevent\r
-       // Segmentation Faults when trying to create a new document\r
-@@ -1167,8 +1224,8 @@
-       reader.Transfer(step_doc);\r
\r
-       // Read in the shape(s) and the colours present in the STEP File\r
--      Handle_XCAFDoc_ShapeTool step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());\r
--      Handle_XCAFDoc_ColorTool step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());\r
-+      Handle(XCAFDoc_ShapeTool) step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
-+      Handle(XCAFDoc_ColorTool) step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
\r
-       TDF_LabelSequence step_shapes;\r
-       step_shape_contents->GetShapes(step_shapes);\r
-@@ -1221,7 +1278,7 @@
-       // Fixed a bug in the OpenCascade XDE Colour handling when \r
-       // opening BREP Files, since BREP Files have no colour data.\r
-       // Hence, the face_colours Handle needs to be created as a NULL handle.\r
--      occgeo->face_colours = Handle_XCAFDoc_ColorTool();\r
-+      occgeo->face_colours = Handle(XCAFDoc_ColorTool)();
-       occgeo->face_colours.Nullify();\r
-       occgeo->changed = 1;\r
-       occgeo->BuildFMap();\r
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp      2017-09-11 18:08:21.233311974 +0300
-@@ -15,8 +15,8 @@
- #include "Geom_Curve.hxx"\r
- #include "Geom2d_Curve.hxx"\r
- #include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "BRepTools.hxx"\r
- #include "TopExp.hxx"\r
- #include "BRepBuilderAPI_MakeVertex.hxx"\r
-@@ -42,8 +42,8 @@
- #include "Geom_Curve.hxx"\r
- #include "Geom2d_Curve.hxx"\r
- #include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
- #include "TopoDS_Wire.hxx"\r
- #include "BRepTools_WireExplorer.hxx"\r
- #include "BRepTools.hxx"\r
-@@ -68,18 +68,26 @@
- #include "IGESToBRep_Reader.hxx"\r
- #include "Interface_Static.hxx"\r
- #include "GeomAPI_ExtremaCurveCurve.hxx"\r
--#include "Standard_ErrorHandler.hxx"\r
-+//#include "Standard_ErrorHandler.hxx"
- #include "Standard_Failure.hxx"\r
- #include "ShapeUpgrade_ShellSewing.hxx"\r
- #include "ShapeFix_Shape.hxx"\r
- #include "ShapeFix_Wireframe.hxx"\r
-+#include <Standard_Version.hxx>
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) <= 0x060702
-+// porting to OCCT6.7.3
- #include "BRepMesh.hxx"\r
-+#endif
- #include "BRepMesh_IncrementalMesh.hxx"\r
- #include "BRepBndLib.hxx"\r
- #include "Bnd_Box.hxx"\r
- #include "ShapeAnalysis.hxx"\r
- #include "ShapeBuild_ReShape.hxx"\r
\r
-+// -- Optimization: to use cached projector and classifier
-+#include <NCollection_DataMap.hxx>
-+class ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
\r
- // Philippose - 29/01/2009\r
- // OpenCascade XDE Support\r
-@@ -192,6 +200,9 @@
-    class OCCGeometry : public NetgenGeometry\r
-    {\r
-       Point<3> center;\r
-+      // -- Optimization: to use cached projector and classifier
-+      mutable NCollection_DataMap<int,Handle(ShapeAnalysis_Surface)> fprjmap;
-+      mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
\r
-    public:\r
-       TopoDS_Shape shape;\r
-@@ -203,7 +214,7 @@
-       // OpenCascade XDE Support\r
-       // XCAF Handle to make the face colours available to the rest of\r
-       // the system\r
--      Handle_XCAFDoc_ColorTool face_colours;\r
-+      Handle(XCAFDoc_ColorTool) face_colours;
\r
-      mutable int changed;\r
-       Array<int> facemeshstatus;\r
-@@ -247,6 +258,8 @@
-      virtual void Save (string filename) const;\r
\r
\r
-+      ~OCCGeometry();      // -- to free cached projector and classifier
-+
-       void BuildFMap();\r
\r
-       Box<3> GetBoundingBox()\r
-@@ -266,9 +279,14 @@
-       Point<3> Center()\r
-       {  return center;}\r
\r
--      void Project (int surfi, Point<3> & p) const;\r
-+      // void Project (int surfi, Point<3> & p) const; -- optimization
-+      bool Project (int surfi, Point<3> & p, double& u, double& v) const;
-       bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;\r
\r
-+      // -- Optimization: to use cached projector and classifier
-+      void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                        BRepTopAdaptor_FClass2d*& cls) const;
-+
-       OCCSurface GetSurface (int surfi)\r
-       {\r
-          cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;\r
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp  2017-09-11 18:08:21.233311974 +0300
-@@ -6,6 +6,7 @@
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
- #include <ShapeAnalysis_Surface.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
- namespace netgen
-@@ -96,13 +97,16 @@
-       n.Normalize();
-       }
--    else
-+    else if ( lprop.IsNormalDefined() )
-       {
-       n(0)=lprop.Normal().X();
-       n(1)=lprop.Normal().Y();
-       n(2)=lprop.Normal().Z();
-       }
--
-+    else
-+      {
-+        n = 0;
-+      }
-     if(glob_testout)
-       {
-       (*testout) << "u " << geominfo.u << " v " << geominfo.v 
-@@ -434,23 +438,33 @@
-   void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
-   {
--    geometry.Project (surfind, p);
-+    // geometry.Project (surfind, p); -- signature of Project() changed for optimization
-+    double u, v;
-+    geometry.Project (surfind, p, u, v);
-   }
-   int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
-   {
--    double u = gi.u;
--    double v = gi.v;
-+    //double u = gi.u;
-+    //double v = gi.v;
-     Point<3> hp = p;
--    if (geometry.FastProject (surfind, hp, u, v))
--      {
-+    // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
-+    // if (geometry.FastProject (surfind, hp, u, v))
-+    //   {
-+    //    p = hp;
-+    //    return 1;
-+    //   }
-+    // ProjectPoint (surfind, p); 
-+    // return CalcPointGeomInfo (surfind, gi, p); 
-+    bool ok;
-+    if (gi.trignum > 0)
-+      ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+    else
-+      ok = geometry.Project (surfind, hp, gi.u, gi.v);
-       p = hp;
--      return 1;
--      }
--    ProjectPoint (surfind, p); 
--    return CalcPointGeomInfo (surfind, gi, p); 
-+    return ok;
-   }
-@@ -680,7 +694,8 @@
-       if (!geometry.FastProject (surfi, hnewp, u, v))
-         {
-         //  cout << "Fast projection to surface fails! Using OCC projection" << endl;
--          geometry.Project (surfi, hnewp);
-+          // geometry.Project (surfi, hnewp); -- Project() changed for optimization
-+          geometry.Project (surfi, hnewp, u, v);
-         }
-       newgi.trignum = 1;
-@@ -689,7 +704,7 @@
-       }
-   
-     newp = hnewp;
--  }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: 
-@@ -708,14 +723,18 @@
-     hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-     newp = hnewp;
-     newgi = ap1;
--  };
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
-   {
-     if (surfi > 0)
--      geometry.Project (surfi, p);
--  };
-+      //geometry.Project (surfi, p);
-+    {
-+      double u, v;
-+      geometry.Project (surfi, p, u, v);
-+    }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
-   {
-@@ -723,9 +742,10 @@
-       if (!geometry.FastProject (surfi, p, gi.u, gi.v))
-       {
-         cout << "Fast projection to surface fails! Using OCC projection" << endl;
--        geometry.Project (surfi, p);
-+          double u, v;
-+        geometry.Project (surfi, p, u, v);
-+      }
-       }
--  };
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp       2017-09-11 18:08:32.837057913 +0300
-@@ -485,7 +485,7 @@
-                 if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);\r
-                 if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);\r
\r
--                rebuild->Replace(sh, sh.Reversed(), Standard_False);\r
-+                rebuild->Replace(sh, sh.Reversed());\r
\r
-                 TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);\r
-                 occgeometry->shape = newshape;\r
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h
---- netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h      2017-09-11 18:08:21.233311974 +0300
-@@ -33,6 +33,7 @@
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am  2017-09-11 18:08:21.235311757 +0300
-@@ -4,10 +4,10 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libstl.la 
-+noinst_LTLIBRARIES = libstl.la 
- if NGGUI
--lib_LTLIBRARIES += libstlvis.la 
-+lib_LTLIBRARIES = libstlvis.la 
- endif
- libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
-@@ -16,6 +16,5 @@
- libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
- libstlvis_la_LIBADD = libstl.la
--libstl_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
- # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la 
-diff -Naur netgen-5.3.1_SRC_orig/nglib/Makefile.am netgen-5.3.1_SRC_modif/nglib/Makefile.am
---- netgen-5.3.1_SRC_orig/nglib/Makefile.am    2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/Makefile.am   2017-09-11 18:08:21.235311757 +0300
-@@ -14,6 +14,9 @@
-       $(top_builddir)/libsrc/stlgeom/libstl.la \
-       $(top_builddir)/libsrc/occ/libocc.la \
-       $(top_builddir)/libsrc/meshing/libmesh.la \
-+      $(top_builddir)/libsrc/general/libgen.la \
-+      $(top_builddir)/libsrc/gprim/libgprim.la \
-+      $(top_builddir)/libsrc/linalg/libla.la
-       $(OCCLIBS) $(MPI_LIBS)
- libnglib_la_LDFLAGS = -avoid-version
-diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.h netgen-5.3.1_SRC_modif/nglib/nglib.h
---- netgen-5.3.1_SRC_orig/nglib/nglib.h        2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/nglib.h       2017-09-11 18:08:21.233311974 +0300
-@@ -24,7 +24,7 @@
- // Philippose - 14.02.2009\r
- // Modifications for creating a DLL in Windows\r
- #ifdef WIN32\r
--   #ifdef NGLIB_EXPORTS || nglib_EXPORTS\r
-+   #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
-       #define DLL_HEADER   __declspec(dllexport)\r
-    #else\r
-       #define DLL_HEADER   __declspec(dllimport)\r
diff --git a/config/patches/edf/FreeImage3170_Make.patch b/config/patches/edf/FreeImage3170_Make.patch
deleted file mode 100644 (file)
index 37ec343..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -Naur FreeImage3170/Makefile.fip FreeImage3170p1/Makefile.fip 
---- FreeImage3170/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
-+++ FreeImage3170p1/Makefile.fip       2018-10-18 14:48:29.531048024 +0200
-@@ -4,9 +4,9 @@
- include fipMakefile.srcs
- # General configuration variables:
--DESTDIR ?= /
--INCDIR ?= $(DESTDIR)/usr/include
--INSTALLDIR ?= $(DESTDIR)/usr/lib
-+DESTDIR ?= $(DESTDIR)
-+INCDIR ?= $(DESTDIR)/include
-+INSTALLDIR ?= $(DESTDIR)/lib
- # Converts cr/lf to just lf
- DOS2UNIX = dos2unix
-@@ -72,10 +72,10 @@
- install:
-       install -d $(INCDIR) $(INSTALLDIR)
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)
--      install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+      install -m 755 $(HEADER) $(INCDIR)
-+      install -m 755 $(HEADERFIP) $(INCDIR)
-+      install -m 755 $(STATICLIB) $(INSTALLDIR)
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
-
-diff -Naur FreeImage3170/Makefile.gnu FreeImage3170p1/Makefile.gnu
---- FreeImage3170/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
-+++ FreeImage3170p1/Makefile.gnu       2018-10-18 14:53:23.100138977 +0200
-@@ -4,9 +4,9 @@
- include Makefile.srcs
- # General configuration variables:
--DESTDIR ?= /
--INCDIR ?= $(DESTDIR)/usr/include
--INSTALLDIR ?= $(DESTDIR)/usr/lib
-+DESTDIR ?= $(DESTDIR)
-+INCDIR ?= $(DESTDIR)/include
-+INSTALLDIR ?= $(DESTDIR)/lib
- # Converts cr/lf to just lf
- DOS2UNIX = dos2unix
-@@ -71,9 +71,9 @@
- install:
-       install -d $(INCDIR) $(INSTALLDIR)
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+      install -m 755 $(HEADER) $(INCDIR)
-+      install -m 755 $(STATICLIB) $(INSTALLDIR)
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)   
- #     ldconfig
-
diff --git a/config/patches/edf/OCCT-7.2.0.patch b/config/patches/edf/OCCT-7.2.0.patch
deleted file mode 100644 (file)
index 4ffcd5a..0000000
+++ /dev/null
@@ -1,969 +0,0 @@
-diff --git a/adm/cmake/occt_resources.cmake b/adm/cmake/occt_resources.cmake
-index 7a88051..d51df4d 100644
---- a/adm/cmake/occt_resources.cmake
-+++ b/adm/cmake/occt_resources.cmake
-@@ -68,6 +68,7 @@ FILE_TO_LIST ("adm/RESOURCES" RESOURCES)
- foreach (CurrentResource ${RESOURCES})
-   get_filename_component (CurrentResource_FileName "${CurrentResource}" NAME)
-   if ("${CurrentResource_FileName}" STREQUAL TObj.msg OR
-+      "${CurrentResource_FileName}" STREQUAL BOPAlgo.msg OR
-       "${CurrentResource_FileName}" STREQUAL Units.dat OR
-       "${CurrentResource}" STREQUAL XSMessage OR
-       "${CurrentResource}" STREQUAL SHMessage OR
-diff --git a/src/BOPAlgo/BOPAlgo.msg b/src/BOPAlgo/BOPAlgo.msg
-index 67350fc..673a39e 100644
---- a/src/BOPAlgo/BOPAlgo.msg
-+++ b/src/BOPAlgo/BOPAlgo.msg
-@@ -67,3 +67,12 @@ Warning: Removal of internal boundaries among Faces has failed
- .BOPAlgo_AlertRemovalOfIBForEdgesFailed
- Warning: Removal of internal boundaries among Edges has failed
-+
-+.BOPAlgo_AlertIntersectionOfPairOfShapesFailed
-+Warning: Intersection of pair of shapes has failed
-+
-+.BOPAlgo_AlertBuildingPCurveFailed
-+Warning: Building 2D curve of edge on face has failed
-+
-+.BOPAlgo_AlertAcquiredSelfIntersection
-+Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered
-diff --git a/src/BOPAlgo/BOPAlgo_Alerts.hxx b/src/BOPAlgo/BOPAlgo_Alerts.hxx
-index 02cec15..04ce9c7 100644
---- a/src/BOPAlgo/BOPAlgo_Alerts.hxx
-+++ b/src/BOPAlgo/BOPAlgo_Alerts.hxx
-@@ -78,4 +78,14 @@ DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertShellSplitterFailed)
- //! Some edges are too small and have no valid range
- DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertTooSmallEdge)
-+//! Intersection of pair of shapes has failed
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertIntersectionOfPairOfShapesFailed)
-+
-+//! Building 2D curve of edge on face has failed
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertBuildingPCurveFailed)
-+
-+//! Some sub-shapes of some of the argument become connected through
-+//! other shapes and the argument became self-interfered
-+DEFINE_ALERT_WITH_SHAPE(BOPAlgo_AlertAcquiredSelfIntersection)
-+
- #endif // _BOPAlgo_Alerts_HeaderFile
-diff --git a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-index c63a538..feec778 100644
---- a/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-+++ b/src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx
-@@ -69,4 +69,13 @@ static const char BOPAlgo_BOPAlgo_msg[] =
-   "Warning: Removal of internal boundaries among Faces has failed\n"
-   "\n"
-   ".BOPAlgo_AlertRemovalOfIBForEdgesFailed\n"
--  "Warning: Removal of internal boundaries among Edges has failed\n";
-+  "Warning: Removal of internal boundaries among Edges has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertIntersectionOfPairOfShapesFailed\n"
-+  "Warning: Intersection of pair of shapes has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertBuildingPCurveFailed\n"
-+  "Warning: Building 2D curve of edge on face has failed\n"
-+  "\n"
-+  ".BOPAlgo_AlertAcquiredSelfIntersection\n"
-+  "Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered\n";
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-index ab79f4e..bd4e512 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx
-@@ -87,13 +87,19 @@ class TopoDS_Face;
- //! - *Gluing options* - allows to speed up the calculation on the special
- //!                      cases, in which some sub-shapes are coincide.<br>
- //!
--//! The algorithm returns the following Warning statuses:<br>
--//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;<br>
--//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;<br>
-+//! The algorithm returns the following Warning statuses:
-+//! - *BOPAlgo_AlertSelfInterferingShape* - in case some of the argument shapes are self-interfering shapes;
-+//! - *BOPAlgo_AlertTooSmallEdge* - in case some edges of the input shapes have no valid range;
- //! - *BOPAlgo_AlertNotSplittableEdge* - in case some edges of the input shapes has such a small
--//!                         valid range so it cannot be split;<br>
-+//!                                      valid range so it cannot be split;
- //! - *BOPAlgo_AlertBadPositioning* - in case the positioning of the input shapes leads to creation
--//!                      of small edges.<br>
-+//!                                   of small edges;
-+//! - *BOPAlgo_AlertIntersectionOfPairOfShapesFailed* - in case intersection of some of the
-+//!                                                     sub-shapes has failed;
-+//! - *BOPAlgo_AlertAcquiredSelfIntersection* - in case some sub-shapes of the argument become connected
-+//!                                             through other shapes;
-+//! - *BOPAlgo_AlertBuildingPCurveFailed* - in case building 2D curve for some of the edges
-+//!                                         on the faces has failed.
- //!
- //! The algorithm returns the following Error alerts:
- //! - *BOPAlgo_AlertTooFewArguments* - in case there are no enough arguments to
-@@ -290,6 +296,7 @@ protected:
-                                     BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDMExEdges,
-                                     BOPCol_DataMapOfIntegerInteger& theDMNewSD,
-                                     const BOPCol_IndexedMapOfShape& theMicroEdges,
-+                                    const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
-                                     const BOPCol_BaseAllocator& theAllocator);
-   
-   Standard_EXPORT void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock& theLPB);
-@@ -474,6 +481,8 @@ protected:
-   //! In case self-interference is found the warning is added.
-   Standard_EXPORT void CheckSelfInterference();
-+  //! Adds the warning about failed intersection of pair of sub-shapes
-+  Standard_EXPORT void AddIntersectionFailedWarning(const TopoDS_Shape& theS1, const TopoDS_Shape& theS2);
-   BOPCol_ListOfShape myArguments;
-   BOPDS_PDS myDS;
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-index c8341c5..83faf2d 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx
-@@ -112,7 +112,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-               }
-               //
-               if (aLE.Extent() > 1) {
--                // Add warning
-+                // Add the acquired self-interference warning:
-+                // The same common block contains several edges from one argument
-                 TopoDS_Compound aWC;
-                 aBB.MakeCompound(aWC);
-                 //
-@@ -122,7 +123,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-                   aBB.Add(aWC, aE1);
-                 }
-                 //
--                AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
-+                AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
-               }
-             }
-           }
-@@ -168,7 +169,8 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-     for (j = 1; j <= aNbC; ++j) {
-       const BOPCol_IndexedMapOfShape& aMCS = aMCSI(j);
-       if (aMCS.Extent() > 1) {
--        // Add self-interference warning
-+        // Add acquired self-interference warning:
-+        // Several faces from one argument contain the same vertex or edge
-         TopoDS_Compound aWC;
-         aBB.MakeCompound(aWC);
-         //
-@@ -177,7 +179,7 @@ void BOPAlgo_PaveFiller::CheckSelfInterference()
-           const TopoDS_Shape& aSx = aMCS(iS);
-           aBB.Add(aWC, aSx);
-         }
--        AddWarning (new BOPAlgo_AlertSelfInterferingShape (aWC));
-+        AddWarning (new BOPAlgo_AlertAcquiredSelfIntersection (aWC));
-       }
-     }
-   }
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-index c496668..9ac5e67 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
-@@ -17,6 +17,7 @@
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_Tools.hxx>
- #include <BOPCol_NCVector.hxx>
- #include <BOPCol_Parallel.hxx>
-@@ -27,6 +28,7 @@
- #include <BOPDS_PaveBlock.hxx>
- #include <BOPDS_VectorOfInterfVE.hxx>
- #include <BOPTools_AlgoTools.hxx>
-+#include <BRep_Builder.hxx>
- #include <BRep_Tool.hxx>
- #include <gp_Pnt.hxx>
- #include <IntTools_Context.hxx>
-@@ -110,7 +112,16 @@ class BOPAlgo_VertexEdge : public BOPAlgo_Algo {
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      myFlag=myContext->ComputeVE (myV, myE, myT, myTolVNew, myFuzzyValue);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   };
-   //
-  protected:
-@@ -267,6 +278,11 @@ void BOPAlgo_PaveFiller::IntersectVE
-   for (i = 0; i < aNbVE; ++i) {
-     const BOPAlgo_VertexEdge& aVESolver = aVVE(i);
-     if (aVESolver.Flag() != 0) {
-+      if (aVESolver.HasErrors())
-+      {
-+        // Warn about failed intersection of sub-shapes
-+        AddIntersectionFailedWarning(aVESolver.Vertex(), aVESolver.Edge());
-+      }
-       continue;
-     }
-     //
-@@ -491,3 +507,19 @@ void BOPAlgo_PaveFiller::SplitPaveBlocks(const BOPCol_MapOfInteger& theMEdges,
-     }
-   }
- }
-+
-+//=======================================================================
-+// function: AddIntersectionFailedWarning
-+// purpose: 
-+//=======================================================================
-+void BOPAlgo_PaveFiller::AddIntersectionFailedWarning(const TopoDS_Shape& theS1,
-+                                                      const TopoDS_Shape& theS2)
-+{
-+  // Create the warn shape
-+  TopoDS_Compound aWC;
-+  BRep_Builder().MakeCompound(aWC);
-+  BRep_Builder().Add(aWC, theS1);
-+  BRep_Builder().Add(aWC, theS2);
-+  // Add the warning
-+  AddWarning(new BOPAlgo_AlertIntersectionOfPairOfShapesFailed(aWC));
-+}
-\ No newline at end of file
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-index 3a8892e..5db97a8 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
-@@ -93,7 +93,16 @@ class BOPAlgo_EdgeEdge :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_EdgeEdge::Perform();
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_EdgeEdge::Perform();
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -229,7 +238,11 @@ void BOPAlgo_PaveFiller::PerformEE()
-     Bnd_Box aBB1, aBB2;
-     //
-     BOPAlgo_EdgeEdge& anEdgeEdge=aVEdgeEdge(k);
--    if (!anEdgeEdge.IsDone()) {
-+    if (!anEdgeEdge.IsDone() || anEdgeEdge.HasErrors()) {
-+      // Warn about failed intersection of sub-shapes
-+      const TopoDS_Shape& aE1 = myDS->Shape(anEdgeEdge.PaveBlock1()->OriginalEdge());
-+      const TopoDS_Shape& aE2 = myDS->Shape(anEdgeEdge.PaveBlock2()->OriginalEdge());
-+      AddIntersectionFailedWarning(aE1, aE2);
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-index 291edb2..900d363 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
-@@ -17,6 +17,7 @@
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_SectionAttribute.hxx>
- #include <BOPCol_MapOfInteger.hxx>
- #include <BOPCol_NCVector.hxx>
-@@ -107,7 +108,16 @@ class BOPAlgo_VertexFace : public BOPAlgo_Algo {
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      myFlag=myContext->ComputeVF(myV, myF, myT1, myT2, myTolVNew, myFuzzyValue);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -212,7 +222,12 @@ void BOPAlgo_PaveFiller::PerformVF()
-     const BOPAlgo_VertexFace& aVertexFace=aVVF(k);
-     // 
-     iFlag=aVertexFace.Flag();
--    if (iFlag) {
-+    if (iFlag != 0) {
-+      if (aVertexFace.HasErrors())
-+      {
-+        // Warn about failed intersection of sub-shapes
-+        AddIntersectionFailedWarning(aVertexFace.Vertex(), aVertexFace.Face());
-+      }
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-index 84fc6d1..717e478 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
-@@ -103,7 +103,16 @@ class BOPAlgo_EdgeFace :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_EdgeFace::Perform();
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_EdgeFace::Perform();
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -258,7 +267,9 @@ void BOPAlgo_PaveFiller::PerformEF()
-   //
-   for (k=0; k < aNbEdgeFace; ++k) {
-     BOPAlgo_EdgeFace& aEdgeFace=aVEdgeFace(k);
--    if (!aEdgeFace.IsDone()) {
-+    if (!aEdgeFace.IsDone() || aEdgeFace.HasErrors()) {
-+      // Warn about failed intersection of sub-shapes
-+      AddIntersectionFailedWarning(aEdgeFace.Edge(), aEdgeFace.Face());
-       continue;
-     }
-     //
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-index bbc1b35..dfbfe61 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
-@@ -144,7 +144,16 @@ class BOPAlgo_FaceFace :
-   //
-   virtual void Perform() {
-     BOPAlgo_Algo::UserBreak();
--    IntTools_FaceFace::Perform(myF1, myF2);
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      IntTools_FaceFace::Perform(myF1, myF2);
-+    }
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertIntersectionFailed);
-+    }
-   }
-   //
-  protected:
-@@ -263,10 +272,12 @@ void BOPAlgo_PaveFiller::PerformFF()
-   for (k = 0; k < aNbFaceFace; ++k) {
-     BOPAlgo_FaceFace& aFaceFace = aVFaceFace(k);
-     aFaceFace.Indices(nF1, nF2);
--    if (!aFaceFace.IsDone()) {
-+    if (!aFaceFace.IsDone() || aFaceFace.HasErrors()) {
-       BOPDS_InterfFF& aFF = aFFs.Append1();
-       aFF.SetIndices(nF1, nF2);
-       aFF.Init(0, 0);
-+      // Warn about failed intersection of faces
-+      AddIntersectionFailedWarning(aFaceFace.Face1(), aFaceFace.Face2());
-       continue;
-     }
-     //
-@@ -373,6 +384,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-   BOPCol_DataMapOfIntegerListOfInteger aDMBV(100, aAllocator);
-   BOPCol_DataMapIteratorOfDataMapOfIntegerReal aItMV;
-   BOPCol_IndexedMapOfShape aMicroEdges(100, aAllocator);
-+  BOPCol_IndexedMapOfShape aVertsOnRejectedPB;
-   //
-   for (i=0; i<aNbFF; ++i) {
-     //
-@@ -557,6 +569,19 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-             if (!bInBothFaces) {
-               aMPBAdd.Add(aPBOut);
-               PreparePostTreatFF(i, j, aPBOut, aMSCPB, aMVI, aLPBC);
-+              // Try fusing the vertices of the existing pave block
-+              // with the vertices put on the real section curve (except
-+              // for technological vertices, which will be removed)
-+              Standard_Integer nVOut1, nVOut2;
-+              aPBOut->Indices(nVOut1, nVOut2);
-+              if (nV1 != nVOut1 && nV1 != nVOut2 && !aMVBounds.Contains(nV1))
-+              {
-+                aVertsOnRejectedPB.Add(aV1);
-+              }
-+              if (nV2 != nVOut1 && nV2 != nVOut2 && !aMVBounds.Contains(nV2))
-+              {
-+                aVertsOnRejectedPB.Add(aV2);
-+              }
-             }
-           }
-           continue;
-@@ -639,7 +664,7 @@ void BOPAlgo_PaveFiller::MakeBlocks()
-   // 
-   // post treatment
-   MakeSDVerticesFF(aDMVLV, aDMNewSD);
--  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aAllocator);
-+  PostTreatFF(aMSCPB, aDMExEdges, aDMNewSD, aMicroEdges, aVertsOnRejectedPB, aAllocator);
-   if (HasErrors()) {
-     return;
-   }
-@@ -697,6 +722,7 @@ void BOPAlgo_PaveFiller::PostTreatFF
-      BOPDS_DataMapOfPaveBlockListOfPaveBlock& aDMExEdges,
-      BOPCol_DataMapOfIntegerInteger& aDMNewSD,
-      const BOPCol_IndexedMapOfShape& theMicroEdges,
-+     const BOPCol_IndexedMapOfShape& theVertsOnRejectedPB,
-      const Handle(NCollection_BaseAllocator)& theAllocator)
- {
-   Standard_Integer aNbS = theMSCPB.Extent();
-@@ -724,8 +750,9 @@ void BOPAlgo_PaveFiller::PostTreatFF
-   BOPDS_VectorOfInterfFF& aFFs=myDS->InterfFF();
-   //
-   Standard_Integer aNbME = theMicroEdges.Extent();
-+  Standard_Integer aNbVOnRPB = theVertsOnRejectedPB.Extent();
-   // 0
--  if (aNbS==1 && (aNbME == 0)) {
-+  if (aNbS==1 && (aNbME == 0) && (aNbVOnRPB == 0)) {
-     const TopoDS_Shape& aS=theMSCPB.FindKey(1);
-     const BOPDS_CoupleOfPaveBlocks &aCPB=theMSCPB.FindFromIndex(1);
-     //
-@@ -824,6 +851,20 @@ void BOPAlgo_PaveFiller::PostTreatFF
-       aBB.UpdateVertex(aVerts[1], aTolV2 + aDist);
-     }
-   }
-+
-+  // Add vertices put on the real section curves to unify them with the
-+  // vertices of the edges, by which these sections curves have been rejected
-+  for (Standard_Integer i = 1; i <= aNbVOnRPB; ++i)
-+  {
-+    TopoDS_Shape aVer = theVertsOnRejectedPB(i);
-+    Standard_Integer iVer = myDS->Index(aVer);
-+    const Standard_Integer* pSD = aDMNewSD.Seek(iVer);
-+    if (pSD)
-+      aVer = myDS->Shape(*pSD);
-+
-+    if (anAddedSD.Add(aVer))
-+      aLS.Append(aVer);
-+  }
-   //
-   // 2 Fuse shapes
-   aPF.SetProgressIndicator(myProgressIndicator);
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-index bf02175..1e91f55 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
-@@ -16,6 +16,7 @@
- // commercial license or contractual agreement.
- #include <BOPAlgo_PaveFiller.hxx>
-+#include <BOPAlgo_Alerts.hxx>
- #include <BOPAlgo_SectionAttribute.hxx>
- #include <BOPAlgo_Tools.hxx>
- #include <BOPCol_IndexedMapOfShape.hxx>
-@@ -241,28 +242,37 @@ class BOPAlgo_MPC : public BOPAlgo_Algo  {
-   }
-   //
-   virtual void Perform() {
--    Standard_Integer iErr;
--    //
--    iErr=1;
--    if (!myEz.IsNull()) {
--      TopoDS_Edge aSpz;
-+    try
-+    {
-+      OCC_CATCH_SIGNALS
-+
-+      Standard_Integer iErr;
-       //
--      BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
--                                        myV2, myT2, aSpz);
-+      iErr=1;
-+      if (!myEz.IsNull()) {
-+        TopoDS_Edge aSpz;
-+        //
-+        BOPTools_AlgoTools::MakeSplitEdge(myEz,myV1, myT1, 
-+                                          myV2, myT2, aSpz);
-+        //
-+        iErr=
-+          BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
-+                                                     myE, 
-+                                                     myF, 
-+                                                     myContext);
-+      }
-       //
--      iErr=
--        BOPTools_AlgoTools2D::AttachExistingPCurve(aSpz, 
--                                                   myE, 
--                                                   myF, 
--                                                   myContext);
--    }
--    //
--    if (iErr) { 
--      BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
-+      if (iErr) { 
-+        BOPTools_AlgoTools2D::BuildPCurveForEdgeOnFace(myE, myF, myContext);
-+      }
-+      // 
-+      if (myFlag) {
-+        UpdateVertices(myE, myF);
-+      }
-     }
--    // 
--    if (myFlag) {
--      UpdateVertices(myE, myF);
-+    catch (Standard_Failure)
-+    {
-+      AddError(new BOPAlgo_AlertBuildingPCurveFailed(TopoDS_Shape()));
-     }
-   }
-   //
-@@ -676,6 +686,20 @@ void BOPAlgo_PaveFiller::MakePCurves()
-   //======================================================
-   BOPAlgo_MPCCnt::Perform(myRunParallel, aVMPC, myContext);
-   //======================================================
-+
-+  // Add warnings of the failed projections
-+  Standard_Integer aNb = aVMPC.Extent();
-+  for (i = 0; i < aNb; ++i)
-+  {
-+    if (aVMPC(i).HasErrors())
-+    {
-+      TopoDS_Compound aWC;
-+      BRep_Builder().MakeCompound(aWC);
-+      BRep_Builder().Add(aWC, aVMPC(i).Edge());
-+      BRep_Builder().Add(aWC, aVMPC(i).Face());
-+      AddWarning(new BOPAlgo_AlertBuildingPCurveFailed(aWC));
-+    }
-+  }
- }
- //=======================================================================
- //function : UpdateVertices
-diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-index 495c640..08f515a 100644
---- a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-+++ b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx
-@@ -32,6 +32,7 @@
- #include <Geom2d_Line.hxx>
- #include <Geom2d_TrimmedCurve.hxx>
- #include <Geom2dAdaptor_Curve.hxx>
-+#include <Geom2dAPI_ProjectPointOnCurve.hxx>
- #include <Geom2dInt_GInter.hxx>
- #include <gp_Lin2d.hxx>
- #include <gp_Pnt.hxx>
-@@ -52,6 +53,11 @@ static
-                        const Standard_Real  aP2,
-                        TopoDS_Edge& aNewEdge);
-+static
-+  Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
-+                                 const BOPDS_Pave& thePave,
-+                                 const Standard_Real theTol);
-+
- //=======================================================================
- //function : ProcessDE
- //purpose  : 
-@@ -304,25 +310,30 @@ void BOPAlgo_PaveFiller::ProcessDE()
-     }
-     // Intersection
-     Geom2dInt_GInter aGInter(aGAC1, aGAC2, aTolInt, aTolInt);
--    if (!aGInter.IsDone()) {
--      continue;
--    }
--    //
--    // Analyze intersection points
--    Standard_Integer i, aNbPoints = aGInter.NbPoints();
--    for (i = 1; i <= aNbPoints; ++i) {
--      Standard_Real aX = aGInter.Point(i).ParamOnFirst();
--      if (aX - aTD1 < aTolCmp || aTD2 - aX < aTolCmp) {
--        continue;
-+    if (aGInter.IsDone() && aGInter.NbPoints())
-+    {
-+      // Analyze intersection points
-+      Standard_Integer i, aNbPoints = aGInter.NbPoints();
-+      for (i = 1; i <= aNbPoints; ++i) {
-+        Standard_Real aX = aGInter.Point(i).ParamOnFirst();
-+        aPave.SetParameter(aX);
-+        AddSplitPoint(aPBD, aPave, aTolCmp);
-       }
--      //
--      Standard_Integer anInd;
--      if (aPBD->ContainsParameter(aX, aTolCmp, anInd)) {
--        continue;
-+    }
-+    else
-+    {
-+      // If the intersection did not succeed, try the projection of the end point
-+      // of the curve corresponding to the vertex of degenerated edge
-+      Standard_Real aT = (nVD == aPB->Pave1().Index() ?
-+        aPB->Pave1().Parameter() : aPB->Pave2().Parameter());
-+      gp_Pnt2d aP2d = aC2D->Value(aT);
-+      Geom2dAPI_ProjectPointOnCurve aProj2d(aP2d, aC2DDE, aTD1, aTD2);
-+      if (aProj2d.NbPoints())
-+      {
-+        Standard_Real aX = aProj2d.LowerDistanceParameter();
-+        aPave.SetParameter(aX);
-+        AddSplitPoint(aPBD, aPave, aTolCmp);
-       }
--      //
--      aPave.SetParameter(aX);
--      aPBD->AppendExtPave1(aPave);
-     }
-   }
- }
-@@ -354,3 +365,34 @@ void BOPAlgo_PaveFiller::ProcessDE()
-   BB.UpdateEdge(E, aTol);
-   aNewEdge=E;
- }
-+
-+//=======================================================================
-+// function: AddSplitPoint
-+// purpose: Validates the point represented by the pave <thePave>
-+//          for the Pave Block <thePBD>.
-+//          In case the point passes the checks it is added as an
-+//          Extra Pave to the Pave Block for further splitting of the latter.
-+//          Returns TRUE if the point is added, otherwise returns FALSE.
-+//=======================================================================
-+Standard_Boolean AddSplitPoint(const Handle(BOPDS_PaveBlock)& thePBD,
-+                               const BOPDS_Pave& thePave,
-+                               const Standard_Real theTol)
-+{
-+  Standard_Real aTD1, aTD2;
-+  thePBD->Range(aTD1, aTD2);
-+
-+  Standard_Real aT = thePave.Parameter();
-+  // Check that the parameter is inside the Pave Block
-+  if (aT - aTD1 < theTol || aTD2 - aT < theTol)
-+    return Standard_False;
-+
-+  // Check that the pave block does not contain the same parameter
-+  Standard_Integer anInd;
-+  if (thePBD->ContainsParameter(aT, theTol, anInd))
-+    return Standard_False;
-+
-+  // Add the point as an Extra pave to the Pave Block for further
-+  // splitting of the latter
-+  thePBD->AppendExtPave1(thePave);
-+  return Standard_True;
-+}
-diff --git a/src/BOPTest/BOPTest_CheckCommands.cxx b/src/BOPTest/BOPTest_CheckCommands.cxx
-index 618e86c..77d5cd2 100644
---- a/src/BOPTest/BOPTest_CheckCommands.cxx
-+++ b/src/BOPTest/BOPTest_CheckCommands.cxx
-@@ -235,6 +235,8 @@ Standard_Integer bopcheck (Draw_Interpretor& di,
-   //
-   aTimer.Stop();
-   //
-+  BOPTest::ReportAlerts(aChecker);
-+  //
-   iErr=aChecker.HasErrors();
-   //
-   const BOPDS_DS& aDS=*(aChecker.PDS());
-diff --git a/src/IntWalk/IntWalk_PWalking.cxx b/src/IntWalk/IntWalk_PWalking.cxx
-index 54c42a1..eed1c63 100644
---- a/src/IntWalk/IntWalk_PWalking.cxx
-+++ b/src/IntWalk/IntWalk_PWalking.cxx
-@@ -159,6 +159,35 @@ static void IsParallel(const Handle(IntSurf_LineOn2S)& theLine,
-   theIsUparallel = ((aVmax - aVmin) < theToler);
- }
-+//=======================================================================
-+//function : AdjustToDomain
-+//purpose  : Returns TRUE if theP has been changed (i.e. initial value
-+//            was out of the domain)
-+//=======================================================================
-+static Standard_Boolean AdjustToDomain(const Standard_Integer theNbElem,
-+                                       Standard_Real* theParam,
-+                                       const Standard_Real* const theLowBorder,
-+                                       const Standard_Real* const theUppBorder)
-+{
-+  Standard_Boolean aRetVal = Standard_False;
-+  for (Standard_Integer i = 0; i < theNbElem; i++)
-+  {
-+    if ((theParam[i] - theLowBorder[i]) < -Precision::PConfusion())
-+    {
-+      theParam[i] = theLowBorder[i];
-+      aRetVal = Standard_True;
-+    }
-+
-+    if ((theParam[i] - theUppBorder[i]) > Precision::PConfusion())
-+    {
-+      theParam[i] = theUppBorder[i];
-+      aRetVal = Standard_True;
-+    }
-+  }
-+
-+  return aRetVal;
-+}
-+
- //==================================================================================
- // function : IntWalk_PWalking::IntWalk_PWalking
- // purpose  : 
-@@ -2247,7 +2276,19 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
-         continue;
-       anInt.Point().Parameters(thePnt(1), thePnt(2), thePnt(3), thePnt(4));
--      return Standard_True;
-+
-+      Standard_Boolean isInDomain = Standard_True;
-+      for (Standard_Integer j = 1; isInDomain && (j <= 4); ++j)
-+      {
-+        if ((thePnt(j) - aLowBorder[j - 1] + Precision::PConfusion())*
-+            (thePnt(j) - aUppBorder[j - 1] - Precision::PConfusion()) > 0.0)
-+        {
-+          isInDomain = Standard_False;
-+        }
-+      }
-+
-+      if (isInDomain)
-+        return Standard_True;
-     }
-   }
-@@ -2259,16 +2300,26 @@ Standard_Boolean IntWalk_PWalking::HandleSingleSingularPoint(const Handle(Adapto
- //purpose  : 
- //=======================================================================
- Standard_Boolean IntWalk_PWalking::
--SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
--                    const Handle(Adaptor3d_HSurface)& theASurf2,
--                    const Standard_Real theU1,
--                    const Standard_Real theV1,
--                    const Standard_Real theU2,
--                    const Standard_Real theV2,
--                    const Standard_Boolean isTheFirst)
-+        SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
-+                            const Handle(Adaptor3d_HSurface)& theASurf2,
-+                            const Standard_Real theU1,
-+                            const Standard_Real theV1,
-+                            const Standard_Real theU2,
-+                            const Standard_Real theV2,
-+                            const Standard_Boolean isTheFirst)
- {
-   Standard_Boolean isOK = Standard_False;
-+  // u1, v1, u2, v2 order is used.
-+  const Standard_Real aLowBorder[4] = {theASurf1->FirstUParameter(),
-+                                       theASurf1->FirstVParameter(),
-+                                       theASurf2->FirstUParameter(),
-+                                       theASurf2->FirstVParameter()};
-+  const Standard_Real aUppBorder[4] = {theASurf1->LastUParameter(),
-+                                       theASurf1->LastVParameter(),
-+                                       theASurf2->LastUParameter(),
-+                                       theASurf2->LastVParameter()};
-+
-   // Tune solution tolerance according with object size.
-   const Standard_Real aRes1 = Max(Precision::PConfusion() / theASurf1->UResolution(1.0),
-                                   Precision::PConfusion() / theASurf1->VResolution(1.0));
-@@ -2288,21 +2339,26 @@ SeekPointOnBoundary(const Handle(Adaptor3d_HSurface)& theASurf1,
-   {
-     aNbIter--;
-     aStatus = DistanceMinimizeByGradient(theASurf1, theASurf2, aPnt);
--    if(aStatus)
-+    if (aStatus && !AdjustToDomain(4, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
-       break;
--    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)), aPnt(1), aPnt(2));
--    if(aStatus)
-+    aStatus = DistanceMinimizeByExtrema(theASurf1, theASurf2->Value(aPnt(3), aPnt(4)),
-+                                        aPnt(1), aPnt(2));
-+    if (aStatus && !AdjustToDomain(2, &aPnt(1), &aLowBorder[0], &aUppBorder[0]))
-       break;
--    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)), aPnt(3), aPnt(4));
--    if(aStatus)
-+    aStatus = DistanceMinimizeByExtrema(theASurf2, theASurf1->Value(aPnt(1), aPnt(2)),
-+                                        aPnt(3), aPnt(4));
-+    if (aStatus && !AdjustToDomain(2, &aPnt(3), &aLowBorder[2], &aUppBorder[2]))
-       break;
-   }
-   while(!aStatus && (aNbIter > 0));
-   // Handle singular points.
--  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1, theASurf2, aTol, aSingularPnt);
-+  Standard_Boolean aSingularStatus = HandleSingleSingularPoint(theASurf1,
-+                                                               theASurf2,
-+                                                               aTol,
-+                                                               aSingularPnt);
-   if (aSingularStatus)
-     aPnt = aSingularPnt;
-diff --git a/tests/bugs/modalg_7/bug25879 b/tests/bugs/modalg_7/bug25879
-index bb45244..e344c39 100755
---- a/tests/bugs/modalg_7/bug25879
-+++ b/tests/bugs/modalg_7/bug25879
-@@ -13,7 +13,8 @@ explode Box E
- blend Fillet Box 1 Box_1 1 Box_2 1 Box_3 1 Box_4 1 Box_5 1 Box_6 1 Box_7 1 Box_8 1 Box_9 1 Box_10 1 Box_11 1 Box_12
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Fillet]] == 1 } {
-+set bug_info [string trim [bopcheck Fillet]]
-+if {$bug_info != "This shape seems to be OK."} {
-     puts "Error : result of blend fails the bopcheck"
- }
-diff --git a/tests/bugs/modalg_7/bug29073 b/tests/bugs/modalg_7/bug29073
-new file mode 100644
-index 0000000..e13beca
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29073
-@@ -0,0 +1,34 @@
-+puts "======="
-+puts "0029073"
-+puts "======="
-+puts ""
-+##################################################
-+# Regression: General Cut produces invalid shape
-+##################################################
-+
-+brestore [locate_data_file bug29073_M6.brep] b1
-+brestore [locate_data_file bug29073_Shell.brep] b2
-+
-+bclearobjects
-+bcleartools
-+baddobjects b1
-+baddtools b2
-+bfillds
-+
-+# check the result of SECTION
-+bbop rsec 4
-+checknbshapes rsec -edge 1 -vertex 2
-+
-+# check the result of GF
-+bbuild rgf
-+checkshape rgf
-+checkprops rgf -s 163.708 -v 115.912
-+checknbshapes rgf -wire 25 -face 24 -shell 3 -solid 1
-+
-+# check the CUT
-+bbop result 3
-+checkshape result
-+checkprops result -s 0.000713987
-+checknbshapes result -wire 1 -face 1
-+
-+checkview -display result -2d -path ${imagedir}/${test_image}.png
-diff --git a/tests/bugs/modalg_7/bug29099 b/tests/bugs/modalg_7/bug29099
-new file mode 100644
-index 0000000..f4bbf91
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29099
-@@ -0,0 +1,23 @@
-+puts "======="
-+puts "0029099"
-+puts "======="
-+puts ""
-+##################################################
-+# Extra shapes in result of General Cut (box by ellipsoid)
-+##################################################
-+
-+brestore [locate_data_file bug29099_Box.brep] b1
-+brestore [locate_data_file bug29099_Rotation.brep] b2
-+
-+bclearobjects
-+bcleartools
-+baddobjects b1
-+baddtools b2
-+bfillds
-+bbuild result
-+
-+checkshape result
-+checknbshapes result -wire 11 -face 10 -shell 3 -solid 3
-+checkprops result -s 12651.3 -v 52187.5
-+
-+checkview -display result -2d -path ${imagedir}/${test_image}.png
-\ No newline at end of file
-diff --git a/tests/bugs/modalg_7/bug29103 b/tests/bugs/modalg_7/bug29103
-new file mode 100644
-index 0000000..33bc06c
---- /dev/null
-+++ b/tests/bugs/modalg_7/bug29103
-@@ -0,0 +1,56 @@
-+puts "========"
-+puts "OCC29103"
-+puts "========"
-+puts ""
-+#################################################
-+# No intersection curve between faces if starting points are given
-+#################################################
-+
-+set MaxTolReached 2.0e-7
-+set GoodNbCurv 1
-+set ExpLength 0.074141742883251954
-+
-+restore [locate_data_file bug29073_M6.brep] a
-+restore [locate_data_file bug29073_Shell.brep] b
-+explode a f
-+explode b f
-+
-+don b_2
-+axo
-+fit
-+disp a_6
-+
-+set log1 [bopcurves a_6 b_2 -2d]
-+
-+checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png
-+checklength c_1 -l $ExpLength
-+
-+don b_2
-+axo
-+fit
-+disp a_6
-+
-+set log2 [bopcurves a_6 b_2 -2d -p -0.55478319275098653 1.2919191091235780 0.80333089657224976 0.67079577554162440 -p -0.62451407353846222 1.2667484772947102 0.82894736842100003 0.70523311453721027]
-+
-+checkview -screenshot -2d -path ${imagedir}/${test_image}_2.png
-+checklength c_1 -l $ExpLength
-+
-+regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log1} full Toler1 NbCurv1
-+regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log2} full Toler2 NbCurv2
-+
-+if {$Toler1 > $MaxTolReached} {
-+  puts "Error: Big tolerance is returned by intersector w/o start points"
-+}
-+
-+if {$Toler2 > $MaxTolReached} {
-+  puts "Error: Big tolerance is returned by intersector with start points"
-+}
-+
-+if {$NbCurv1 != $GoodNbCurv} {
-+  puts "Error: Please check NbCurves for intersector w/o start points"
-+}
-+
-+if {$NbCurv2 != $GoodNbCurv} {
-+  puts "Error: Please check NbCurves for intersector with start points"
-+}
-+
-diff --git a/tests/bugs/moddata_3/bug25693_1 b/tests/bugs/moddata_3/bug25693_1
-index de7953d..86d1aeb 100755
---- a/tests/bugs/moddata_3/bug25693_1
-+++ b/tests/bugs/moddata_3/bug25693_1
-@@ -10,7 +10,8 @@ puts ""
- restore [locate_data_file bug25693_path3035.brep] result
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck result]] == 1 } {
-+set bug_info [string trim [bopcheck result]]
-+if {$bug_info != "This shape seems to be OK."} {
-     puts "Error : Wire of BSplines fails bopcheck"
- }
-diff --git a/tests/bugs/moddata_3/bug25693_2 b/tests/bugs/moddata_3/bug25693_2
-index 6b3bfb1..cfc7a0e 100755
---- a/tests/bugs/moddata_3/bug25693_2
-+++ b/tests/bugs/moddata_3/bug25693_2
-@@ -12,11 +12,13 @@ restore [locate_data_file bug25693_path3039.brep] path3039
- prism Extrude_path3039 path3039 0 0 50
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck path3039]] == 1 } {
-+set log1 [string trim [bopcheck path3039]]
-+if {$log1 != "This shape seems to be OK."} {
-     puts "Error : bad shape"
- }
--if { [regexp "There were errors during the operation, so the list may be incomplete" [bopcheck Extrude_path3039]] == 1 } {
-+set log2 [string trim [bopcheck Extrude_path3039]]
-+if {$log2 != "This shape seems to be OK."} {
-     puts "Error : Wire of BSplines fails bopcheck"
- }
diff --git a/config/patches/edf/OCCT-7.3.0p3.patch b/config/patches/edf/OCCT-7.3.0p3.patch
deleted file mode 100644 (file)
index e8b94b4..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -ruN occ-7.3.0p3_base/CMakeLists.txt occ-7.3.0p3/CMakeLists.txt
---- occ-7.3.0p3_base/CMakeLists.txt    2019-04-26 07:25:25.310312723 +0200
-+++ occ-7.3.0p3/CMakeLists.txt 2019-04-26 07:23:09.000000000 +0200
-@@ -121,6 +121,7 @@
-     set (CMAKE_INSTALL_PREFIX "C:/opencascade-${OCC_VERSION_STRING_EXT}")
-   endif()
-   set (INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" CACHE PATH "${INSTALL_DIR_DESCR}")
-+  set (INSTALL_DIR_PDM "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}" CACHE PATH "${INSTALL_DIR_DESCR}")
- else()
-   file (TO_CMAKE_PATH "${INSTALL_DIR}" INSTALL_DIR)
-   set (INSTALL_DIR "${INSTALL_DIR}" CACHE PATH "${INSTALL_DIR_DESCR}" FORCE)
-@@ -1107,7 +1108,7 @@
- endforeach()
- # install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
- install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
--install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
-+install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR_PDM}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
- foreach (OCCT_MODULE ${OCCT_MODULES})
-   if (BUILD_MODULE_${OCCT_MODULE})
diff --git a/config/patches/edf/OCCT_7.3.0p3_post_install.py b/config/patches/edf/OCCT_7.3.0p3_post_install.py
deleted file mode 100644 (file)
index 869a6d2..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-# python OCCT_7.3.0p3_post_install.py $(CURDIR)/debian/${OCCT_INSTALL_DIR}/lib/cmake/opencascade
-
-import os,shutil,sys
-from glob import glob
-dn=sys.argv[1]
-fis=glob(os.path.join(dn,"*-release.cmake"))
-for fi in fis:
-    with open(fi) as f:
-        lines = [elt.replace("\\${OCCT_INSTALL_BIN_LETTER}","") for elt in f]
-    with open(fi,"w") as f2:
-        f2.writelines(lines)
-    pass
diff --git a/config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch b/config/patches/edf/ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch
deleted file mode 100644 (file)
index 5240a41..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- orig/ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx  2017-09-13 10:51:02.000000000 +0300
-+++ ParaView-5.4.0-463c0633_SRC/VTK/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx       2017-11-14 16:15:29.312760666 +0300
-@@ -402,10 +402,13 @@
-   }
- }
-+static bool ctxErrorOccurred = false;
-+
- extern "C"
- {
-   int vtkXOGLContextCreationErrorHandler(Display*, XErrorEvent*)
-   {
-+    ctxErrorOccurred = true;
-     return 1;
-   }
- }
-@@ -584,6 +587,11 @@
-             GL_TRUE, context_attribs );
-         // Sync to ensure any errors generated are processed.
-         XSync( this->DisplayId, False );
-+        if(ctxErrorOccurred)
-+        {
-+          this->Internal->ContextId = nullptr;
-+          ctxErrorOccurred = false;
-+        }
-       }
-       XSetErrorHandler(previousHandler);
-       if ( this->Internal->ContextId )
diff --git a/config/patches/edf/README_V9_2_0.txt b/config/patches/edf/README_V9_2_0.txt
deleted file mode 100644 (file)
index b9038a8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-In this directory you can find all the patch used for V9_2_0 building :
-
-CGAL           4.0                     : cgal_cmake352.patch
-FREEIMAGE      3.1.6                   : 
-GL2PS          1.4.0-20170729          : gl2ps.patch
-OCC            7.2.0p3                 : OCCT-7.2.0.patch
-OMNIORBPY      4.2.2                   : omniORBpy-4.2.1-2-python3.patch
-OPENTURNS_WRAPY        0.7                     : otwrapy_0.7_py3.patch
-PARAVIEW       v5.6.0                  : ParaView-5.4.0-463c0633-vtkXOpenGLRenderWindow.cxx.patch, patch_pv_b5c4c893_py_catalyst.patch
-PILLOW         3.4.2                   : pillow-py3.patch 
-SCOTCH         6.0.4                   : scotch604_Make.inc.patch
-SPHINX         1.2.3                   : sphinx176_w_intl_napoleon.patch
diff --git a/config/patches/edf/README_V9_3_0.txt b/config/patches/edf/README_V9_3_0.txt
deleted file mode 100644 (file)
index 93db2f3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-In this directory you can find all the patch used for V9_3_0 building :
-
-
-CGAL              4.0   : cgal_cmake352.patch
-> fix for a dobble / in a path
-    # For CGAL < 4.7
-    # Patch if build with cmake > 3.5
-
-FREEIMAGE        3.17   : freeimage_3170_sci9.patch and FreeImage3170_Make.patch
-> patch to build freeimage
-
-GL2PS           1.4.0   : gl2ps.patch
-> Patch for : if(GLUT_FOUND)
-
-HDF5           1.10.3   : patchHDF5Build.py
-> Make links
-
-MATPLOTLIB      2.2.2   : setup_qt5.cfg
-> Patch to build matplolib with Qt5 options
-
-OMNIORBPY       4.2.2   : omniORBpy-4.2.1-2-python3.patch
-> To python3 version compatiblity
-
-SCOTCH          6.4.0   : scotch604_Make.inc.patch
-> Fix esmumps management
-
-SPHINX          1.7.6   : sphinx176_w_intl_napoleon.patch
-> Lowering the version number for the required software
diff --git a/config/patches/edf/cgal_cmake352.patch b/config/patches/edf/cgal_cmake352.patch
deleted file mode 100644 (file)
index 88124b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/CMakeLists.txt       2012-02-10 21:00:53.000000000 +0100
-+++ b/src/CMakeLists.txt       2016-04-21 17:09:10.641089365 +0200
-@@ -117,7 +117,7 @@
-   file(GLOB CONFIGURED_LIBS_IN_PACKAGE ${package}/src/CGAL*/CMakeLists.txt)
-   foreach (libconfigfile ${CONFIGURED_LIBS_IN_PACKAGE})
-     string(REPLACE "${package}/src/" "" libconfigfile ${libconfigfile})
--    string(REPLACE "//CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
-+    string(REPLACE "/CMakeLists.txt" "" CGAL_CONFIGURED_LIBRARY_SUBDIR ${libconfigfile})
-     if (NOT ${CGAL_CONFIGURED_LIBRARY_SUBDIR} STREQUAL "CGAL")
-       string(REPLACE "CGAL" "" CGAL_CONFIGURED_LIBRARY_NAME ${CGAL_CONFIGURED_LIBRARY_SUBDIR})
diff --git a/config/patches/edf/freeimage_3170_sci9.patch b/config/patches/edf/freeimage_3170_sci9.patch
deleted file mode 100644 (file)
index 4aeeef5..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -Naur Freeimage-3170_orig/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c Freeimage-3170/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c
---- Freeimage-3170_orig/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c    2015-02-20 02:34:36.000000000 +0000
-+++ Freeimage-3170/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c 2018-10-24 11:19:31.058729145 +0000
-@@ -34,15 +34,15 @@
-     G = G - t2 + kGCst;                                                        \
-     B = B + kBCst;                                                             \
-     __asm__ volatile (                                                         \
--      "shll_s.w         %["#R"],      %["#R"],        9              \n\t"     \
--      "shll_s.w         %["#G"],      %["#G"],        9              \n\t"     \
--      "shll_s.w         %["#B"],      %["#B"],        9              \n\t"     \
--      "precrqu_s.qb.ph  %["#R"],      %["#R"],        $zero          \n\t"     \
--      "precrqu_s.qb.ph  %["#G"],      %["#G"],        $zero          \n\t"     \
--      "precrqu_s.qb.ph  %["#B"],      %["#B"],        $zero          \n\t"     \
--      "srl              %["#R"],      %["#R"],        24             \n\t"     \
--      "srl              %["#G"],      %["#G"],        24             \n\t"     \
--      "srl              %["#B"],      %["#B"],        24             \n\t"     \
-+      "shll_s.w         %[" #R "],      %[" #R "],        9              \n\t"     \
-+      "shll_s.w         %[" #G "],      %[" #G "],        9              \n\t"     \
-+      "shll_s.w         %[" #B "],      %[" #B "],        9              \n\t"     \
-+      "precrqu_s.qb.ph  %[" #R "],      %[" #R "],        $zero          \n\t"     \
-+      "precrqu_s.qb.ph  %[" #G "],      %[" #G "],        $zero          \n\t"     \
-+      "precrqu_s.qb.ph  %[" #B "],      %[" #B "],        $zero          \n\t"     \
-+      "srl              %[" #R "],      %[" #R "],        24             \n\t"     \
-+      "srl              %[" #G "],      %[" #G "],        24             \n\t"     \
-+      "srl              %[" #B "],      %[" #B "],        24             \n\t"     \
-       : [R]"+r"(R), [G]"+r"(G), [B]"+r"(B)                                     \
-       :                                                                        \
-     );                                                                         \
-diff -Naur Freeimage-3170_orig/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c Freeimage-3170/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c
---- Freeimage-3170_orig/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c   2015-02-20 02:34:38.000000000 +0000
-+++ Freeimage-3170/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c        2018-10-24 11:20:37.854752080 +0000
-@@ -54,9 +54,9 @@
-   "srl              %[temp5],   %[temp5],       24              \n\t"          \
-   "srl              %[temp6],   %[temp6],       24              \n\t"          \
-   "srl              %[temp7],   %[temp7],       24              \n\t"          \
--  "sb               %[temp5],   "#R"(%[dst])                    \n\t"          \
--  "sb               %[temp6],   "#G"(%[dst])                    \n\t"          \
--  "sb               %[temp7],   "#B"(%[dst])                    \n\t"          \
-+  "sb               %[temp5],   " #R "(%[dst])                    \n\t"          \
-+  "sb               %[temp6],   " #G "(%[dst])                    \n\t"          \
-+  "sb               %[temp7],   " #B "(%[dst])                    \n\t"          \
- #define ASM_CLOBBER_LIST()                                                     \
-   : [temp0]"=&r"(temp0), [temp1]"=&r"(temp1), [temp2]"=&r"(temp2),             \
diff --git a/config/patches/edf/gl2ps.patch b/config/patches/edf/gl2ps.patch
deleted file mode 100644 (file)
index 9b99528..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- A/CMakeLists.txt   2016-07-19 11:43:42.845939766 +0200
-+++ B/CMakeLists.txt   2016-07-19 11:44:33.633939452 +0200
-@@ -140,9 +140,9 @@
- if(GLUT_FOUND)
-   add_executable(gl2psTest WIN32 gl2psTest.c)
--  target_link_libraries(gl2psTest lib ${EXTERNAL_LIBRARIES})
-+  target_link_libraries(gl2psTest lib m ${EXTERNAL_LIBRARIES})
-   add_executable(gl2psTestSimple WIN32 gl2psTestSimple.c)
--  target_link_libraries(gl2psTestSimple lib ${EXTERNAL_LIBRARIES})
-+  target_link_libraries(gl2psTestSimple lib m ${EXTERNAL_LIBRARIES})
- endif(GLUT_FOUND)
- find_package(LATEX)
diff --git a/config/patches/edf/omniORBpy-4.2.1-2-python3.patch b/config/patches/edf/omniORBpy-4.2.1-2-python3.patch
deleted file mode 100644 (file)
index 82b749a..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -Naur a/python3/omniORB/__init__.py b/python3/omniORB/__init__.py
---- a/python3/omniORB/__init__.py      2015-06-08 13:39:59.000000000 +0200
-+++ b/python3/omniORB/__init__.py      2017-05-09 14:57:00.521302183 +0200
-@@ -458,17 +458,65 @@
-     def __repr__(self):
-         return self._n
--    def __cmp__(self, other):
-+    def __eq__(self, other):
-         try:
-             if isinstance(other, EnumItem):
-                 if other._parent_id == self._parent_id:
--                    return cmp(self._v, other._v)
-+                    return self._v == other._v
-                 else:
--                    return cmp(self._parent_id, other._parent_id)
-+                    return self._parent_id == other._parent_id
-             else:
--                return cmp(id(self), id(other))
-+                return id(self) == id(other)
-         except:
--            return cmp(id(self), id(other))
-+            return id(self) == id(other)
-+
-+    def __lt__(self, other):
-+        try:
-+            if isinstance(other, EnumItem):
-+                if other._parent_id == self._parent_id:
-+                    return self._v < other._v
-+                else:
-+                    return self._parent_id < other._parent_id
-+            else:
-+                return id(self) < id(other)
-+        except:
-+            return id(self) < id(other)
-+
-+    def __le__(self, other):
-+        try:
-+            if isinstance(other, EnumItem):
-+                if other._parent_id == self._parent_id:
-+                    return self._v <= other._v
-+                else:
-+                    return self._parent_id <= other._parent_id
-+            else:
-+                return id(self) <= id(other)
-+        except:
-+            return id(self) <= id(other)
-+
-+    def __gt__(self, other):
-+        try:
-+            if isinstance(other, EnumItem):
-+                if other._parent_id == self._parent_id:
-+                    return self._v > other._v
-+                else:
-+                    return self._parent_id > other._parent_id
-+            else:
-+                return id(self) > id(other)
-+        except:
-+            return id(self) > id(other)
-+
-+    def __ge__(self, other):
-+        try:
-+            if isinstance(other, EnumItem):
-+                if other._parent_id == self._parent_id:
-+                    return self._v >= other._v
-+                else:
-+                    return self._parent_id >= other._parent_id
-+            else:
-+                return id(self) >= id(other)
-+        except:
-+            return id(self) >= id(other)
-     def __hash__(self):
-         return hash(self._parent_id + "/" + self._n)
diff --git a/config/patches/edf/otwrapy_0.7_py3.patch b/config/patches/edf/otwrapy_0.7_py3.patch
deleted file mode 100644 (file)
index 1935b68..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur a/setup.py b/setup.py
---- a/setup.py 2017-10-26 11:31:16.000000000 +0200
-+++ b/setup.py 2018-09-13 13:58:34.256434654 +0200
-@@ -6,7 +6,7 @@
- from codecs import open
- from os import path
--with open('otwrapy/__init__.py') as fid:
-+with open('otwrapy/__init__.py', 'r') as fid:
-     for line in fid:
-         if line.startswith('__version__'):
-             version = line.strip().split()[-1][1:-1]
diff --git a/config/patches/edf/patchHDF5Build.py b/config/patches/edf/patchHDF5Build.py
deleted file mode 100644 (file)
index cab5be8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-import os
-
-li=[]
-for root,dirs,fis in os.walk(os.getcwd()):
-  if "link.txt" in fis:
-    li.append(os.path.join(root,"link.txt"))
-
-for f in li:
-    with open(f,"r") as fid:
-        lines=fid.readlines()
-        for ii,st in enumerate(lines):
-            st=st.replace("-Wl,--export-dynamic;","-Wl,--export-dynamic")
-            st=st.replace("--enable-new-dtags;","--enable-new-dtags")
-            lines[ii]=st
-            pass
-    with open(f,"w") as fid:
-        fid.writelines(lines)
-
diff --git a/config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch b/config/patches/edf/patch_pv_b5c4c893_py_catalyst.patch
deleted file mode 100644 (file)
index 055f0e4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e3031c3..f5585fa 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -923,3 +923,6 @@ if (NOT WIN32 AND is_git)
-       "paraview-source-${format}")
-   endforeach ()
- endif ()
-+
-+FILE(WRITE ${PROJECT_BINARY_DIR}/lib/cmake/paraview-5.4/Modules/vtkPVPythonCatalystHierarchy.txt "This is a patch")
-+
diff --git a/config/patches/edf/pillow-py3.patch b/config/patches/edf/pillow-py3.patch
deleted file mode 100644 (file)
index a77d1d1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur Pillow-3.4.2/setup.py Pillow-3.4.2-new/setup.py
---- Pillow-3.4.2/setup.py      2017-05-10 14:42:20.479585980 +0200
-+++ Pillow-3.4.2-new/setup.py  2017-05-10 14:41:33.468524757 +0200
-@@ -116,7 +116,7 @@
- ZLIB_ROOT = None
- IMAGEQUANT_ROOT = None
- TIFF_ROOT = None
--FREETYPE_ROOT = None
-+FREETYPE_ROOT = os.getenv("FREETYPEDIR")
- LCMS_ROOT = None
diff --git a/config/patches/edf/scotch604_Make.inc.patch b/config/patches/edf/scotch604_Make.inc.patch
deleted file mode 100644 (file)
index 2f09266..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -Naur Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2 Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2
---- Scotch-604/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 11:23:34.588586025 +0100
-+++ Scotch-604_esmumps/src/Make.inc/Makefile.inc.i686_pc_linux2        2018-02-20 17:15:15.203967949 +0100
-@@ -9,9 +9,9 @@
- CCS           = gcc
- CCP           = mpicc
- CCD           = gcc
--CFLAGS                = -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
-+CFLAGS                = -O3 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -DSCOTCH_PTHREAD -Drestrict=__restrict
- CLIBFLAGS     =
--LDFLAGS               = -lz -lm -pthread
-+LDFLAGS               = -lz -lm -pthread -lrt
- CP            = cp
- LEX           = flex -Pscotchyy -olex.yy.c
- LN            = ln
-diff -Naur Scotch-604EDFp1/src/Makefile Scotch-604EDFp1_esmumps/src/Makefile
---- Scotch-604EDFp1/src/Makefile       2018-03-30 15:37:48.930229374 +0200
-+++ Scotch-604EDFp1_esmumps/src/Makefile       2018-03-30 15:35:09.765696046 +0200
-@@ -93,11 +93,13 @@
-                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
-                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) scotch && $(MAKE) install)
-                                       (cd libscotchmetis ; $(MAKE)                                                                scotch && $(MAKE) install)
-+                                      (cd esmumps ;        $(MAKE)                                                                scotch && $(MAKE) install)
- ptscotch                      :       required
-                                       (cd libscotch ;      $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
-                                       (cd scotch ;         $(MAKE) VERSION=$(VERSION) RELEASE=$(RELEASE) PATCHLEVEL=$(PATCHLEVEL) ptscotch && $(MAKE) ptinstall)
-                                       (cd libscotchmetis ; $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
-+                                      (cd esmumps ;        $(MAKE)                                                                ptscotch && $(MAKE) ptinstall)
- check                         :       scotch
-                                       (cd check ; $(MAKE) check)
-@@ -105,17 +107,12 @@
- ptcheck                               :       ptscotch
-                                       (cd check ; $(MAKE) ptcheck)
--esmumps                               :       scotch
--                                      (cd esmumps ; $(MAKE) scotch && $(MAKE) install)
--
--ptesmumps                     :       ptscotch
--                                      (cd esmumps ; $(MAKE) ptscotch && $(MAKE) ptinstall)
--
- install                               :       required        $(bindir)       $(includedir)   $(libdir)       $(mandir)/man1
-                                       -$(CP) -f ../bin/[agm]*$(EXE) $(bindir)
-                                       -$(CP) -f ../bin/d[agm]*$(EXE) $(bindir)
-                                       -$(CP) -f ../include/*scotch*.h $(includedir)
-                                       -$(CP) -f ../lib/*scotch*$(LIB) $(libdir)
-+                                      -$(CP) -f ../lib/*esmumps*$(LIB) $(libdir)
-                                       -$(CP) -Rf ../man/* $(mandir)
- clean                         :       required
diff --git a/config/patches/edf/setup_qt5.cfg b/config/patches/edf/setup_qt5.cfg
deleted file mode 100644 (file)
index 46fc465..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# Rename this file to setup.cfg to modify matplotlib's
-# build options.
-
-[egg_info]
-tag_svn_revision = 1
-
-[directories]
-# Uncomment to override the default basedir in setupext.py.
-# This can be a single directory or a comma-delimited list of directories.
-#basedirlist = /usr
-
-[status]
-# To suppress display of the dependencies and their versions
-# at the top of the build log, uncomment the following line:
-#suppress = False
-
-[packages]
-# There are a number of subpackages of matplotlib that are considered
-# optional.  They are all installed by default, but they may be turned
-# off here.
-#
-tests = False
-sample_data = False
-toolkits = True
-
-[gui_support]
-# Matplotlib supports multiple GUI toolkits, including Cocoa,
-# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of
-# these toolkits requires AGG, the Anti-Grain Geometry library,
-# which is provided by matplotlib and built by default.
-#
-# Some backends are written in pure Python, and others require
-# extension code to be compiled. By default, matplotlib checks for
-# these GUI toolkits during installation and, if present, compiles the
-# required extensions to support the toolkit.
-#
-# - GTK 2.x support of any kind requires the GTK runtime environment
-#   headers and PyGTK.
-# - Tk support requires Tk development headers and Tkinter.
-# - Mac OSX backend requires the Cocoa headers included with XCode.
-# - Windowing is MS-Windows specific, and requires the "windows.h"
-#   header.
-#
-# The other GUI toolkits do not require any extension code, and can be
-# used as long as the libraries are installed on your system --
-# therefore they are installed unconditionally.
-#
-# You can uncomment any the following lines to change this
-# behavior. Acceptible values are:
-#
-#     True: build the extension. Exits with a warning if the
-#           required dependencies are not available
-#     False: do not build the extension
-#     auto: build if the required dependencies are available,
-#           otherwise skip silently. This is the default
-#           behavior
-#
-#agg = auto
-#cairo = auto
-#gtk = auto
-#gtk3agg = auto
-#gtk3cairo = auto
-#gtkagg = auto
-#macosx = auto
-#pyside = auto
-qt5agg = auto
-#tkagg = auto
-#windowing = auto
-#wxagg = auto
-
-[rc_options]
-# User-configurable options
-#
-# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo,
-# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg.
-#
-# The Agg, Ps, Pdf and SVG backends do not require external
-# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, or TkAgg
-# if you have disabled the relevent extension modules.  Agg will be used
-# by default.
-#
-backend = Qt5Agg
-#
diff --git a/config/patches/edf/sphinx176_w_intl_napoleon.patch b/config/patches/edf/sphinx176_w_intl_napoleon.patch
deleted file mode 100644 (file)
index 13bbb9b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- Sphinx-176-doc012-jin273-pyg202-py355-set3840/setup.py     2018-07-16 17:22:47.000000000 +0200
-+++ Sphinx-176-doc012-jin273-pyg202-py355-set3840_w_intl_nap/setup.py  2018-08-20 14:11:16.139399383 +0200
-@@ -17,8 +17,10 @@
- install_requires = [
-     'six>=1.5',
-     'Jinja2>=2.3',
--    'Pygments>=2.0',
--    'docutils>=0.11',
-+    'Pygments>=1.2',
-+    'docutils>=0.7',
-+    'sphinxcontrib-napoleon==0.6.1',
-+    'sphinx-intl==0.9.10',
-     'snowballstemmer>=1.1',
-     'babel>=1.3,!=2.0',
-     'alabaster>=0.7,<0.8',
diff --git a/config/patches/edf/sphinx_w_intl_napoleon.patch b/config/patches/edf/sphinx_w_intl_napoleon.patch
deleted file mode 100644 (file)
index 1e78c5d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- Sphinx-123-doc012-jin273-pyg202-py2710-set3840/setup.py    2014-09-01 16:22:41.000000000 +0200
-+++ Sphinx-123-doc012-jin273-pyg202-py2710-set3840_w_intl_nap/setup.py 2018-04-12 15:05:37.575068486 +0200
-@@ -41,7 +41,7 @@
- * Setuptools integration
- '''
--requires = ['Pygments>=1.2', 'docutils>=0.7']
-+requires = ['sphinxcontrib-napoleon==0.6.1', 'sphinx-intl==0.9.10','Pygments>=1.2', 'docutils>=0.7']
- if sys.version_info[:3] >= (3, 3, 0):
-     requires[1] = 'docutils>=0.10'
diff --git a/config/patches/embree.001_centos6.patch b/config/patches/embree.001_centos6.patch
deleted file mode 100644 (file)
index 6d6af2f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur embree-3.5.2_SRC_orig/common/sys/alloc.cpp embree-3.5.2_SRC_modif/common/sys/alloc.cpp
---- embree-3.5.2_SRC_orig/common/sys/alloc.cpp 2019-03-13 14:13:56.000000000 +0300
-+++ embree-3.5.2_SRC_modif/common/sys/alloc.cpp        2019-07-23 12:59:36.127707285 +0300
-@@ -22,6 +22,10 @@
- ////////////////////////////////////////////////////////////////////////////////
- /// All Platforms
- ////////////////////////////////////////////////////////////////////////////////
-+
-+#ifndef MAP_HUGETLB
-+#define MAP_HUGETLB     0x40000         /* create a huge page mapping */
-+#endif
-   
- namespace embree
- {
diff --git a/config/patches/freeimage.001_sources.patch b/config/patches/freeimage.001_sources.patch
deleted file mode 100644 (file)
index 8bf79df..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur --exclude=CVS freeimage-3.16.0_orig/Source/LibWebP/src/utils/bit_writer.c freeimage-3.16.0_patch/Source/LibWebP/src/utils/bit_writer.c
---- freeimage-3.16.0_orig/Source/LibWebP/src/utils/bit_writer.c
-+++ freeimage-3.16.0_patch/Source/LibWebP/src/utils/bit_writer.c
-@@ -226,6 +226,21 @@
- #define htole16(x) (x)\r
- #else     // pretty much all linux and/or glibc\r
- #include <endian.h>\r
-+#if !defined(htole32)
-+# include <byteswap.h>
-+# ifdef __USE_BSD
-+/* Conversion interfaces.  */
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+#define htole16(x) (x)
-+#define htole32(x) (x)
-+#define htole64(x) (x)
-+#else
-+#define htole16(x) __bswap_16 (x)
-+#define htole32(x) __bswap_32 (x)
-+#define htole64(x) __bswap_64 (x)
-+#endif
-+#endif
-+#endif
- #endif\r
\r
- // Returns 1 on success.\r
diff --git a/config/patches/freeimage.002_build_procedure.patch b/config/patches/freeimage.002_build_procedure.patch
deleted file mode 100644 (file)
index bcbaad3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -NaurwB freeimage-3.16.0__0/Makefile.fip freeimage-3.16.0__1/Makefile.fip
---- freeimage-3.16.0__0/Makefile.fip   2014-03-15 19:35:28.000000000 +0400
-+++ freeimage-3.16.0__1/Makefile.fip   2017-03-15 15:05:20.396869687 +0300
-@@ -4,9 +4,9 @@
- include fipMakefile.srcs\r
\r
- # General configuration variables:\r
--DESTDIR ?= /\r
--INCDIR ?= $(DESTDIR)/usr/include\r
--INSTALLDIR ?= $(DESTDIR)/usr/lib\r
-+DESTDIR ?= /usr\r
-+INCDIR ?= $(DESTDIR)/include\r
-+INSTALLDIR ?= $(DESTDIR)/lib\r
\r
- # Converts cr/lf to just lf\r
- DOS2UNIX = dos2unix\r
-@@ -71,10 +71,12 @@
\r
- install:\r
-       install -d $(INCDIR) $(INSTALLDIR)\r
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)\r
--      install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)\r
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)\r
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)\r
-+      install -m 644 $(HEADER) $(INCDIR)\r
-+      install -m 644 $(HEADERFIP) $(INCDIR)\r
-+      install -m 644 $(STATICLIB) $(INSTALLDIR)\r
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)
-+      ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-+      ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)\r
\r
- clean:\r
-       rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)\r
-diff -NaurwB freeimage-3.16.0__0/Makefile.gnu freeimage-3.16.0__1/Makefile.gnu
---- freeimage-3.16.0__0/Makefile.gnu   2014-03-16 00:02:08.000000000 +0400
-+++ freeimage-3.16.0__1/Makefile.gnu   2017-03-15 15:05:20.384869623 +0300
-@@ -4,9 +4,9 @@
- include Makefile.srcs\r
\r
- # General configuration variables:\r
--DESTDIR ?= /\r
--INCDIR ?= $(DESTDIR)/usr/include\r
--INSTALLDIR ?= $(DESTDIR)/usr/lib\r
-+DESTDIR ?= /usr\r
-+INCDIR ?= $(DESTDIR)/include\r
-+INSTALLDIR ?= $(DESTDIR)/lib\r
\r
- # Converts cr/lf to just lf\r
- DOS2UNIX = dos2unix\r
-@@ -70,9 +70,9 @@
\r
- install:\r
-       install -d $(INCDIR) $(INSTALLDIR)\r
--      install -m 644 -o root -g root $(HEADER) $(INCDIR)\r
--      install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)\r
--      install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)\r
-+      install -m 644 $(HEADER) $(INCDIR)\r
-+      install -m 644 $(STATICLIB) $(INSTALLDIR)\r
-+      install -m 755 $(SHAREDLIB) $(INSTALLDIR)\r
-       ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)\r
-       ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)   \r
- #     ldconfig\r
diff --git a/config/patches/freeimage.003_gcc47_compat.patch b/config/patches/freeimage.003_gcc47_compat.patch
deleted file mode 100644 (file)
index 516a499..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -NaurwB freeimage-3.16.0__0/Source/OpenEXR/IlmImf/ImfAutoArray.h freeimage-3.16.0__1/Source/OpenEXR/IlmImf/ImfAutoArray.h
---- freeimage-3.16.0__0/Source/OpenEXR/IlmImf/ImfAutoArray.h   2014-03-08 01:31:08.000000000 +0400
-+++ freeimage-3.16.0__1/Source/OpenEXR/IlmImf/ImfAutoArray.h   2017-03-15 14:10:35.682298047 +0300
-@@ -45,6 +45,7 @@
- //-----------------------------------------------------------------------------
- #include "OpenEXRConfig.h"
-+#include <string.h>
- #if !defined(_WIN32) || defined(__MINGW32__)
- // needed for memset
- #include <string.h>
diff --git a/config/patches/freeimage.004_gcc66.patch b/config/patches/freeimage.004_gcc66.patch
deleted file mode 100644 (file)
index 614a853..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/dcraw/dcraw.c  2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/dcraw/dcraw.c       2016-10-14 12:05:37.481253676 +0300
-@@ -4072,22 +4072,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-diff -Naur freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp
---- freeimage-3.16.0_SRC_orig/Source/LibRawLite/internal/dcraw_common.cpp      2014-02-07 23:48:10.000000000 +0400
-+++ freeimage-3.16.0_SRC_patched/Source/LibRawLite/internal/dcraw_common.cpp   2016-10-14 12:06:27.540395171 +0300
-@@ -3782,22 +3782,22 @@
-     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,\r
-     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,\r
-     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,\r
--    -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
--    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,\r
-+    -1,-2,-1,+0,0,(signed char)0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,\r
-+    -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char)0x88, -1,-1,+1,-2,0,0x40,\r
-     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,\r
-     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,\r
-     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,\r
-     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,\r
-     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,\r
-     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,\r
--    +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,\r
-+    +0,-2,+0,+0,1,(signed char)0x80, +0,-1,+0,+1,1,(signed char)0x88, +0,-1,+1,-2,0,0x40,\r
-     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,\r
-     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,\r
-     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,\r
-     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,\r
-     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,\r
--    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,\r
--    +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-+    +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char)0x80,\r
-+    +1,-1,+1,+1,0,(signed char)0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,\r
-     +1,+0,+2,+1,0,0x10\r
-   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };\r
-   ushort (*brow[5])[4], *pix;\r
-@@ -7380,7 +7380,7 @@
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
-     { "Phase One P65", 0, 0,\r
-       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },\r
--    { "Red One", 704, 0xffff,         /* DJC */\r
-+    { "Red One", 704, (short int)0xffff,              /* DJC */\r
-       { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } },\r
-     { "Samsung EK-GN120", 0, 0, /* Adobe; Galaxy NX */\r
-         { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },\r
diff --git a/config/patches/graphviz.001_build_procedure.patch b/config/patches/graphviz.001_build_procedure.patch
deleted file mode 100644 (file)
index ede5edd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -NaurwB graphviz-2.38.0__1/configure graphviz-2.38.0__0/configure
---- graphviz-2.38.0__0/configure       2017-03-15 14:22:15.286297951 +0300
-+++ graphviz-2.38.0__1/configure       2017-03-15 14:23:12.054621051 +0300
-@@ -22415,7 +22415,7 @@
-       else
-         PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
-         PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION_SHORT
--        PYTHON_LIBS="-lpython$PYTHON_VERSION_SHORT"
-+        PYTHON_LIBS="-L$PYTHON_PREFIX/lib -lpython$PYTHON_VERSION_SHORT"
-         PYTHON_INSTALL_DIR="`$PYTHON $srcdir/config/config_python.py archsitelib`"
-         save_CPPFLAGS=$CPPFLAGS
-         CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-@@ -23797,7 +23797,7 @@
- fi
- if test "x$use_tcl" = "x"; then
--  TCL_VERSION_FOUND=`echo 'puts [info tclversion]' | $TCLSH`
-+  TCL_VERSION_FOUND=`echo 'puts [info tclversion]' | $TCLSH 2>/dev/null | grep -E '^[0-9.]+$'`
-   # can't assume ksh on all architectures
-   # TCLSH_EXEC_PREFIX=${TCLSH%%/bin/tclsh.*}
diff --git a/config/patches/hdf5.001_threads_threads.patch b/config/patches/hdf5.001_threads_threads.patch
deleted file mode 100644 (file)
index 776800f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur --exclude=CVS --exclude=.git hdf5-1.10.3_orig/src/CMakeLists.txt hdf5-1.10.3_patched/src/CMakeLists.txt
---- hdf5-1.10.3_orig/src/CMakeLists.txt        2018-08-10 00:36:31.000000000 +0300
-+++ hdf5-1.10.3_patched/src/CMakeLists.txt     2018-10-10 16:25:28.196773245 +0300
-@@ -954,9 +954,10 @@
-           $<$<BOOL:${HDF5_ENABLE_DEBUG_APIS}>:H5Z_DEBUG;H5T_DEBUG;H5ST_DEBUG;H5S_DEBUG;H5O_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5F_DEBUG;H5D_DEBUG;H5B2_DEBUG;H5AC_DEBUG>
-   )
-   TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED)
-+  get_property(_threads_libs TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES)
-   target_link_libraries (${HDF5_LIBSH_TARGET}
-       PRIVATE ${LINK_LIBS} ${LINK_COMP_LIBS} "$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_LIBRARIES}>"
--      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:Threads::Threads>
-+      PUBLIC $<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_DL_LIBS}> $<$<BOOL:${HDF5_ENABLE_THREADSAFE}>:${_threads_libs}>
-   )
-   set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_LIBSH_TARGET}")
-   H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED "LIB")
diff --git a/config/patches/matplotlib.001_build_procedure.patch b/config/patches/matplotlib.001_build_procedure.patch
deleted file mode 100644 (file)
index 4afaaa7..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-diff -Naur matplotlib-2.2.2_SRC_orig/setup.cfg matplotlib-2.2.2_SRC_modif/setup.cfg
---- matplotlib-2.2.2_SRC_orig/setup.cfg        1970-01-01 03:00:00.000000000 +0300
-+++ matplotlib-2.2.2_SRC_modif/setup.cfg       2019-11-14 15:26:36.710641396 +0300
-@@ -0,0 +1,99 @@
-+# Rename this file to setup.cfg to modify Matplotlib's
-+# build options.
-+
-+[egg_info]
-+tag_svn_revision = 1
-+
-+[directories]
-+# Uncomment to override the default basedir in setupext.py.
-+# This can be a single directory or a comma-delimited list of directories.
-+#basedirlist = /usr
-+
-+[test]
-+# If you plan to develop Matplotlib and run or add to the test suite,
-+# set this to True.  It will download and build a specific version of
-+# FreeType, and then use that to build the ft2font extension.  This
-+# ensures that test images are exactly reproducible.
-+#local_freetype = False
-+
-+[status]
-+# To suppress display of the dependencies and their versions
-+# at the top of the build log, uncomment the following line:
-+#suppress = True 
-+
-+[packages]
-+# There are a number of subpackages of Matplotlib that are considered
-+# optional. All except tests are installed by default, but that can
-+# be changed here.
-+#
-+#tests = False
-+sample_data = False
-+toolkits = False
-+# Tests for the toolkits are only automatically installed
-+# if the tests and toolkits packages are also getting installed.
-+#toolkits_tests = auto
-+
-+[gui_support]
-+# Matplotlib supports multiple GUI toolkits, including
-+# GTK, MacOSX, Qt4, Qt5, Tk, and WX. Support for many of
-+# these toolkits requires AGG, the Anti-Grain Geometry library,
-+# which is provided by Matplotlib and built by default.
-+#
-+# Some backends are written in pure Python, and others require
-+# extension code to be compiled. By default, Matplotlib checks for
-+# these GUI toolkits during installation and, if present, compiles the
-+# required extensions to support the toolkit.
-+#
-+# - GTK 2.x support of any kind requires the GTK runtime environment
-+#   headers and PyGTK.
-+# - Tk support requires Tk development headers and Tkinter.
-+# - Mac OSX backend requires the Cocoa headers included with XCode.
-+# - Windowing is MS-Windows specific, and requires the "windows.h"
-+#   header.
-+#
-+# The other GUI toolkits do not require any extension code, and can be
-+# used as long as the libraries are installed on your system --
-+# therefore they are installed unconditionally.
-+#
-+# You can uncomment any the following lines to change this
-+# behavior. Acceptable values are:
-+#
-+#     True: build the extension. Exits with a warning if the
-+#           required dependencies are not available
-+#     False: do not build the extension
-+#     auto: build if the required dependencies are available,
-+#           otherwise skip silently. This is the default
-+#           behavior
-+#
-+#agg = auto
-+#cairo = auto
-+#gtk = auto
-+#gtk3agg = auto
-+#gtk3cairo = auto
-+#gtkagg = auto
-+#macosx = auto
-+#pyside = auto
-+qt4agg = auto
-+#tkagg = auto
-+#windowing = auto
-+#wxagg = auto
-+
-+[rc_options]
-+# User-configurable options
-+#
-+# Default backend, one of: Agg, Cairo, GTK, GTKAgg, GTKCairo,
-+# GTK3Agg, GTK3Cairo, MacOSX, Pdf, Ps, Qt4Agg, Qt5Agg, SVG, TkAgg, WX, WXAgg.
-+#
-+# The Agg, Ps, Pdf and SVG backends do not require external
-+# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, or TkAgg
-+# if you have disabled the relevant extension modules.  Agg will be used
-+# by default.
-+#
-+backend = Qt5Agg
-+#
-+
-+[package_data]
-+# Package additional files found in the lib/matplotlib directories.
-+#
-+# On Windows, package DLL files.
-+#dlls = True
diff --git a/config/patches/med.001_cmake_config.patch b/config/patches/med.001_cmake_config.patch
deleted file mode 100644 (file)
index d980c7c..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-diff -Naur med-4.1.0_SRC.orig/CMakeLists.txt med-4.1.0_SRC.new/CMakeLists.txt
---- med-4.1.0_SRC.orig/CMakeLists.txt  2020-03-12 18:45:46.000000000 +0300
-+++ med-4.1.0_SRC.new/CMakeLists.txt   2021-03-19 16:07:10.097210739 +0300
-@@ -101,7 +101,7 @@
- IF(WIN32 AND NOT CYGWIN)
-    SET(INSTALL_CMAKE_CONFIG_DIR cmake)
- ELSE()
--   SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/med-fichier-${MED_STR_VERSION})
-+   SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/medfile-${MED_STR_VERSION})
- ENDIF()
- SET(INSTALL_INCLUDE_DIR include)
-diff -Naur med-4.1.0_SRC.orig/CMakeLists.txt.in med-4.1.0_SRC.new/CMakeLists.txt.in
---- med-4.1.0_SRC.orig/CMakeLists.txt.in       2020-03-03 16:53:39.000000000 +0300
-+++ med-4.1.0_SRC.new/CMakeLists.txt.in        2021-03-19 16:50:43.589542683 +0300
-@@ -101,7 +101,7 @@
- IF(WIN32 AND NOT CYGWIN)
-    SET(INSTALL_CMAKE_CONFIG_DIR cmake)
- ELSE()
--   SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/med-fichier-${MED_STR_VERSION})
-+   SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/medfile-${MED_STR_VERSION})
- ENDIF()
- SET(INSTALL_INCLUDE_DIR include)
-diff -Naur med-4.1.0_SRC.orig/config/cmake_files/MEDFileConfig.cmake.in med-4.1.0_SRC.new/config/cmake_files/MEDFileConfig.cmake.in
---- med-4.1.0_SRC.orig/config/cmake_files/MEDFileConfig.cmake.in       2020-02-24 14:08:41.000000000 +0300
-+++ med-4.1.0_SRC.new/config/cmake_files/MEDFileConfig.cmake.in        2021-03-19 14:26:06.733900990 +0300
-@@ -39,13 +39,13 @@
- IF(MEDFILE_BUILD_SHARED_LIBS)
-   SET(MEDFILE_C_LIBRARIES medC)
-   SET(MEDFILE_EXTRA_LIBRARIES medimportengine)
-+  SET(MEDFILE_LIBRARIES medC medfwrap med)
- ENDIF()
- IF(MEDFILE_BUILD_STATIC_LIBS)
-   SET(MEDFILE_C_LIBRARIES medC_static)
-   SET(MEDFILE_EXTRA_LIBRARIES medimportengine_static)
-+  SET(MEDFILE_LIBRARIES medC_static med_static medfwrap_static)
- ENDIF()
--# For now we don't expose Fortran bindings:
--SET(MEDFILE_LIBRARIES ${MEDFILE_C_LIBRARIES})
- # Package root dir:
- SET_AND_CHECK(MEDFILE_ROOT_DIR_EXP "@PACKAGE_CMAKE_INSTALL_PREFIX@")
-diff -Naur med-4.1.0_SRC.orig/src/CMakeLists.txt med-4.1.0_SRC.new/src/CMakeLists.txt
---- med-4.1.0_SRC.orig/src/CMakeLists.txt      2020-03-12 18:45:46.000000000 +0300
-+++ med-4.1.0_SRC.new/src/CMakeLists.txt       2021-03-19 14:21:15.342441002 +0300
-@@ -113,7 +113,7 @@
-       SOVERSION 11
-       VERSION   11.0.1)
-     TARGET_LINK_LIBRARIES(medfwrap medC)
--    INSTALL(TARGETS medfwrap EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS medfwrap EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-     # Add Shared MED library
-     ADD_LIBRARY(med SHARED MEDiterators.c)
-@@ -124,7 +124,7 @@
-     TARGET_LINK_LIBRARIES(med medfwrap)    
-    
-     # Install only the resulting library:
--    INSTALL(TARGETS med EXPORT medTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS med EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-   ENDIF()
-   ######### Static Libraries ##########
-@@ -137,7 +137,7 @@
-     ADD_LIBRARY(medfwrap_static STATIC ${medfort_wrap_SOURCES})
-     SET_TARGET_PROPERTIES(medfwrap_static PROPERTIES OUTPUT_NAME medfwrap)
-     TARGET_LINK_LIBRARIES(medfwrap_static medC_static)
--    INSTALL(TARGETS medfwrap_static EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS medfwrap_static EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-     
-     # Add Static MED library
-     ADD_LIBRARY(med_static STATIC MEDiterators.c)
-@@ -145,7 +145,7 @@
-     TARGET_LINK_LIBRARIES(med_static medfwrap_static)
-     # Install only the resulting library:  
--    INSTALL(TARGETS med_static EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS med_static EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-   ENDIF()
-   
- ENDIF(CMAKE_Fortran_COMPILER_WORKS)
-diff -Naur med-4.1.0_SRC.orig/src/CMakeLists.txt.in med-4.1.0_SRC.new/src/CMakeLists.txt.in
---- med-4.1.0_SRC.orig/src/CMakeLists.txt.in   2019-07-03 19:09:45.000000000 +0300
-+++ med-4.1.0_SRC.new/src/CMakeLists.txt.in    2021-03-19 16:48:53.988720349 +0300
-@@ -113,7 +113,7 @@
-       SOVERSION @MED_CMAKE_SO_MAJ@
-       VERSION   @MED_CMAKE_SO_MAJ@.@MED_CMAKE_SO_MIN@.@MED_CMAKE_SO_REL@)
-     TARGET_LINK_LIBRARIES(medfwrap medC)
--    INSTALL(TARGETS medfwrap EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS medfwrap EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-     # Add Shared MED library
-     ADD_LIBRARY(med SHARED MEDiterators.c)
-@@ -124,7 +124,7 @@
-     TARGET_LINK_LIBRARIES(med medfwrap)    
-    
-     # Install only the resulting library:
--    INSTALL(TARGETS med EXPORT medTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS med EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-   ENDIF()
-   ######### Static Libraries ##########
-@@ -137,7 +137,7 @@
-     ADD_LIBRARY(medfwrap_static STATIC ${medfort_wrap_SOURCES})
-     SET_TARGET_PROPERTIES(medfwrap_static PROPERTIES OUTPUT_NAME medfwrap)
-     TARGET_LINK_LIBRARIES(medfwrap_static medC_static)
--    INSTALL(TARGETS medfwrap_static EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS medfwrap_static EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-     
-     # Add Static MED library
-     ADD_LIBRARY(med_static STATIC MEDiterators.c)
-@@ -145,7 +145,7 @@
-     TARGET_LINK_LIBRARIES(med_static medfwrap_static)
-     # Install only the resulting library:  
--    INSTALL(TARGETS med_static EXPORT medfileTargetsF DESTINATION lib${LIB_SUFFIX})
-+    INSTALL(TARGETS med_static EXPORT ${_export_group} DESTINATION lib${LIB_SUFFIX})
-   ENDIF()
-   
- ENDIF(CMAKE_Fortran_COMPILER_WORKS)
diff --git a/config/patches/netgen.001.common.v5.patch b/config/patches/netgen.001.common.v5.patch
deleted file mode 100644 (file)
index 78567eb..0000000
+++ /dev/null
@@ -1,49355 +0,0 @@
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.am netgen-5.3.1_SRC_modif/Makefile.am
---- netgen-5.3.1_SRC_orig/Makefile.am  2014-08-29 13:55:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.am 2019-11-14 16:56:26.946325231 +0300
-@@ -2,7 +2,7 @@
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- # TESTS = ng/netgen -batchmode
-diff -Naur netgen-5.3.1_SRC_orig/Makefile.in netgen-5.3.1_SRC_modif/Makefile.in
---- netgen-5.3.1_SRC_orig/Makefile.in  2014-10-06 15:04:37.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/Makefile.in 2019-11-14 16:56:20.582503364 +0300
-@@ -280,7 +280,7 @@
- top_srcdir = @top_srcdir@
- ACLOCAL_AMFLAGS = -I m4
- METASOURCES = AUTO
--SUBDIRS = libsrc ng tutorials doc windows nglib
-+SUBDIRS = libsrc nglib #tutorials doc windows nglib
- all: config.h
-       $(MAKE) $(AM_MAKEFLAGS) all-recursive
-diff -Naur netgen-5.3.1_SRC_orig/configure.ac netgen-5.3.1_SRC_modif/configure.ac
---- netgen-5.3.1_SRC_orig/configure.ac 2014-10-06 15:00:17.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/configure.ac        2019-11-14 16:56:25.406368338 +0300
-@@ -20,7 +20,7 @@
- CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
- # LDFLAGS="$LDFLAGS $OPENMP_CXXFLAGS"
--AM_PROG_AR
-+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
- AC_PROG_LIBTOOL
- LT_INIT
-@@ -42,8 +42,8 @@
- if test a$occon = atrue ; then
--      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/inc -I/usr/include/opencascade"])
--      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF -lFWOSPlugin"])
-+      AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
-+      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
- #  -lTKDCAF
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/csg/Makefile.am       2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/csg/Makefile.am      2019-11-14 16:56:23.050434285 +0300
-@@ -8,7 +8,7 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include  $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libcsg.la
-+noinst_LTLIBRARIES = libcsg.la
- libcsg_la_SOURCES = algprim.cpp brick.cpp   \
-@@ -17,12 +17,9 @@
- manifold.cpp meshsurf.cpp polyhedra.cpp revolution.cpp singularref.cpp \
- solid.cpp specpoin.cpp spline3d.cpp surface.cpp triapprox.cpp
--libcsg_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
--
--
- if NGGUI
--lib_LTLIBRARIES += libcsgvis.la 
-+lib_LTLIBRARIES = libcsgvis.la 
- libcsgvis_la_SOURCES = vscsg.cpp csgpkg.cpp
- libcsgvis_la_LIBADD = libcsg.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp
---- netgen-5.3.1_SRC_orig/libsrc/general/parthreads.cpp        2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/general/parthreads.cpp       2019-11-14 16:56:21.462478733 +0300
-@@ -1,40 +1,40 @@
--/**************************************************************************/\r
--/* File:   parthreads.cpp                                                 */\r
--/* Author: Joachim Schoeberl                                              */\r
--/* Date:   01. Jun. 95                                                    */\r
--/**************************************************************************/\r
--\r
--\r
--#include <mystdlib.h>\r
--#include <myadt.hpp>\r
--\r
--/*\r
--\r
--namespace netgen\r
--{\r
--  using namespace netgen;\r
--\r
--#ifdef WIN32\r
--\r
--  NgLock :: NgLock (NgMutex & mut)\r
--    : sl(&mut.cs)\r
--  {\r
--    ;\r
--  }\r
--\r
--  void NgLock :: Lock ()\r
--  {\r
--    sl.Lock();\r
--  }\r
--  void NgLock :: UnLock ()\r
--  {\r
--    sl.Unlock();\r
--  }\r
--\r
--\r
--#else\r
--\r
--#endif\r
--}\r
--\r
--*/\r
-+/**************************************************************************/
-+/* File:   parthreads.cpp                                                 */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   01. Jun. 95                                                    */
-+/**************************************************************************/
-+
-+
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+
-+/*
-+
-+namespace netgen
-+{
-+  using namespace netgen;
-+
-+#ifdef WIN32
-+
-+  NgLock :: NgLock (NgMutex & mut)
-+    : sl(&mut.cs)
-+  {
-+    ;
-+  }
-+
-+  void NgLock :: Lock ()
-+  {
-+    sl.Lock();
-+  }
-+  void NgLock :: UnLock ()
-+  {
-+    sl.Unlock();
-+  }
-+
-+
-+#else
-+
-+#endif
-+}
-+
-+*/
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/geom2d/Makefile.am    2014-08-29 13:54:06.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/geom2d/Makefile.am   2019-11-14 16:56:22.570447721 +0300
-@@ -4,16 +4,15 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libgeom2d.la 
-+noinst_LTLIBRARIES = libgeom2d.la 
- if NGGUI
--lib_LTLIBRARIES += libgeom2dvis.la 
-+lib_LTLIBRARIES = libgeom2dvis.la 
- endif
- libgeom2d_la_SOURCES = genmesh2d.cpp geom2dmesh.cpp geometry2d.cpp
--libgeom2d_la_LIBADD =         $(top_builddir)/libsrc/meshing/libmesh.la
- libgeom2dvis_la_SOURCES = geom2dpkg.cpp vsgeom2d.cpp
- libgeom2dvis_la_LIBADD = libgeom2d.la
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/interface/Makefile.am 2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/Makefile.am        2019-11-14 16:56:23.298427343 +0300
-@@ -2,14 +2,11 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include -I$(top_srcdir)/libsrc/interface  $(MPI_INCLUDES) $(TCL_INCLUDES) -DOPENGL
- METASOURCES = AUTO
--lib_LTLIBRARIES = libinterface.la
-+noinst_LTLIBRARIES = libinterface.la
- libinterface_la_SOURCES = nginterface.cpp nginterface_v2.cpp \
-       read_fnf_mesh.cpp readtetmesh.cpp readuser.cpp writeabaqus.cpp writediffpack.cpp \
-       writedolfin.cpp writeelmer.cpp writefeap.cpp writefluent.cpp writegmsh.cpp writejcm.cpp \
-       writepermas.cpp writetecplot.cpp writetet.cpp writetochnog.cpp writeuser.cpp \
-       wuchemnitz.cpp writegmsh2.cpp writeOpenFOAM15x.cpp 
--
--libinterface_la_LIBADD = $(top_builddir)/libsrc/meshing/libmesh.la
--
- # libinterface_la_LDFLAGS = -rdynamic
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeOpenFOAM15x.cpp        2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeOpenFOAM15x.cpp       2019-11-14 16:56:23.286427679 +0300
-@@ -1,811 +1,811 @@
--/*! \file writeOpenFOAM15x.cpp\r
--*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format\r
--*  \author Philippose Rajan\r
--*  \date 25 October 2009\r
--*\r
--*  This function extends the export capabilities of\r
--*  Netgen to include the OpenFOAM 1.5+ File Format.\r
--*\r
--*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files \r
--*  which together define the mesh points, faces, cells and \r
--*  boundary conditions. \r
--*\r
--*  The files are:\r
--*  1. points    -> A list of the point co-ordinates\r
--*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)\r
--*  3. owner     -> The owner cell of each face \r
--*  4. neighbour -> The neighbour cell of each face\r
--*  5. boundary  -> The set of boundaries with name, start face, and num. of faces\r
--*\r
--*  For a detailed description of the format, refer to the following link:\r
--*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes\r
--*\r
--*/\r
--\r
--#include <mystdlib.h>\r
--\r
--#include <myadt.hpp>\r
--#include <linalg.hpp>\r
--#include <csg.hpp>\r
--#include <meshing.hpp>\r
--#include <sys/stat.h>\r
--\r
--\r
--namespace netgen\r
--{\r
--#include "writeuser.hpp"\r
--\r
--   // Global arrays used to maintain the owner, neighbour and face lists \r
--   // so that they are accessible across functions\r
--   static Array<int> owner_facelist;\r
--   static Array<int> owner_celllist;\r
--   static Array<int> neighbour_celllist;\r
--   static Array<int> surfelem_bclist;\r
--   static Array<INDEX_2> surfelem_lists;\r
--\r
--\r
--\r
--   static void WriteOpenFOAM15xBanner(ostream * outfile)\r
--   {\r
--      static char FOAMversion[4] = "1.5";\r
--      static char spaces[40];\r
--\r
--      memset(spaces, ' ', 40);\r
--      spaces[38 - strlen(FOAMversion)] = '\0';\r
--      \r
--      *outfile << \r
--              "/*--------------------------------*- C++ -*----------------------------------*\\\n";\r
--\r
--      *outfile <<\r
--              "| =========                 |                                                 |\n"\r
--              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"\r
--              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"\r
--              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"\r
--              "|    \\\\/     M anipulation  |                                                 |\n"\r
--              "\\*---------------------------------------------------------------------------*/\n";\r
--\r
--   }\r
--\r
--\r
--\r
--   static void WriteOpenFOAM15xDividerStart(ostream * outfile)\r
--   {\r
--      *outfile  <<\r
--               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";\r
--   }\r
--\r
--\r
--\r
--   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)\r
--   {\r
--      *outfile <<\r
--              "// ************************************************************************* //\n";\r
--   }\r
--\r
--\r
--\r
--   static bool BuildOwnerNeighbourLists (const Mesh & mesh)\r
--   {\r
--      // Clear all the arrays\r
--      owner_facelist.DeleteAll();\r
--      owner_celllist.DeleteAll();\r
--      neighbour_celllist.DeleteAll();\r
--      surfelem_bclist.DeleteAll();\r
--      surfelem_lists.DeleteAll();\r
--\r
--      const MeshTopology& meshtopo = mesh.GetTopology();\r
--      \r
--      // Update the mesh topology structures\r
--      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);\r
--      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);\r
--      const_cast<MeshTopology&> (meshtopo).Update();\r
--\r
--      // Extract important mesh metrics\r
--      int ne = mesh.GetNE();\r
--      int nse = mesh.GetNSE();\r
--      int totfaces = meshtopo.GetNFaces();\r
--\r
--      // Preset the size of the arrays to speed up future operations\r
--      // Number of internal faces = total faces - num. of surface faces\r
--      owner_facelist.SetSize(totfaces - nse);\r
--      owner_celllist.SetSize(totfaces - nse);\r
--      neighbour_celllist.SetSize(totfaces - nse);\r
--      surfelem_bclist.SetSize(nse);\r
--      surfelem_lists.SetSize(nse);\r
--\r
--      // Initialise arrays to zero if required\r
--      neighbour_celllist = 0;\r
--\r
--      // Array used to keep track of Faces which have already been \r
--      // processed and added to the Owner list... In addition, also the \r
--      // location where the face appears in the Owner list is also stored \r
--      // to speed up creation of the Neighbour list\r
--      Array<int> ownerfaces(totfaces);\r
--      ownerfaces = 0;\r
--\r
--      // Array to hold the set of local faces of each volume element \r
--      // while running through the set of volume elements\r
--      // NOTE: The size is set automatically by the Netgen topology function\r
--      Array<int> locfaces;\r
--\r
--      // Secondary indices used to independently advance the owner \r
--      // and boundary condition arrays within the main loop\r
--      int owner_ind = 1;\r
--      int bc_ind = 1;\r
--\r
--      // Loop through all the volume elements\r
--      for(int elind = 1; elind <= ne; elind++)\r
--      {\r
--         // Extract the current volume element\r
--      // const Element & el = mesh.VolumeElement(elind);\r
--\r
--         // Get the face numbers of the faces of the current volume element\r
--         // The values returned are given a sign depending on the orientation \r
--         // of the faces. This is used while writing the faces file, to \r
--         // determine whether or not to invert the face triangle before writing \r
--         // it to file\r
--         meshtopo.GetElementFaces(elind,locfaces,true);\r
--\r
--         // Loop through the faces\r
--         for(int i = 1; i <= locfaces.Size(); i++)\r
--         {\r
--            // The absolute value of a face number (because the faces \r
--            // returned by the GetElementFaces function prepend it \r
--            // with a sign depending on the face orientation)\r
--            int absfacenr = abs(locfaces.Elem(i));\r
--\r
--            // If the face already exists in the owner list, add \r
--            // the current cell into the neighbour list, in the \r
--            // same location where the face appears in the owner list\r
--            int owner_face = ownerfaces.Elem(absfacenr);\r
--            if(owner_face)\r
--            {\r
--               neighbour_celllist.Elem(owner_face) = elind;\r
--\r
--               // From this point on, the code within this "if" block \r
--               // basically sorts the order of the the Neighbour cells (along \r
--               // with the faces list) in ascending order.\r
--               // The approach used is..... to traverse the owner and neighbour cell lists\r
--               // up and down, and sort the neighbour cells of a given owner cell \r
--               // as the list evolves.\r
--               // NOTE: A value of "zero" in the neighbour list implies that \r
--               // the neighbour has not been found yet, so the "zero" locations need \r
--               // to be skipped while sorting in ascending order\r
--               int curr_owner = owner_celllist.Elem(owner_face);\r
--\r
--               int peek_loc = owner_face - 1;\r
--               int new_loc = owner_face;\r
--\r
--               // Traversing upwards in the list\r
--               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))\r
--               {\r
--                  if((neighbour_celllist.Elem(peek_loc) != 0) \r
--                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))\r
--                  {\r
--                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));\r
--                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));\r
--                     new_loc = peek_loc;\r
--                  }\r
--\r
--                  peek_loc--;\r
--               }\r
--\r
--               peek_loc = owner_face + 1;\r
--\r
--               // Traversing downwards in the list\r
--               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))\r
--               {\r
--                  if((neighbour_celllist.Elem(peek_loc) != 0) \r
--                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))\r
--                  {\r
--                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));\r
--                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));\r
--                     new_loc = peek_loc;\r
--                  }\r
--\r
--                  peek_loc++;\r
--               }\r
--\r
--               continue;\r
--            }\r
--\r
--            // Check if the face is a surface element (boundary face)\r
--            // if not, add the current volume element and the corresponding face into \r
--            // the owner list\r
--            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);\r
--            if(!surfelem)\r
--            {\r
--               // If it is a new face which has not been listed before, \r
--               // add the current cell into the owner list, and save \r
--               // the index location to be used later by the neighbour list\r
--               owner_celllist.Elem(owner_ind) = elind;\r
--               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);\r
--               // Update the array to indicate that the face is already processed\r
--               ownerfaces.Elem(absfacenr) = owner_ind;\r
--\r
--               owner_ind++;\r
--            }\r
--            // If the face is a boundary face, extract the boundary condition number of the \r
--            // face, and append that along with the face number and the current cell \r
--            // into the various surface elements lists\r
--            else\r
--            {\r
--               Element2d sel = mesh.SurfaceElement(surfelem);\r
--               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();\r
--               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);\r
--\r
--               bc_ind++;\r
--            }\r
--         }\r
--      }\r
--\r
--      // This correction is required in cases where the mesh has been "uniform refined".... for \r
--      // some reason, the number of faces reported by Netgen is higher than the actual number \r
--      // of faces in the mesh\r
--      owner_facelist.SetSize(owner_ind-1);\r
--      owner_celllist.SetSize(owner_ind-1);\r
--      neighbour_celllist.SetSize(owner_ind-1);\r
--\r
--\r
--      // Sort the list of surface elements in ascending order of boundary condition number\r
--      // also sort the cell list in the same manner\r
--      QuickSort(surfelem_bclist,surfelem_lists);\r
--\r
--/*    \r
--      // Debugging output to a file \r
--      ofstream dbg("OpenFOAMDebug.log");\r
--\r
--      dbg << " ------- Boundary List -------- \n";\r
--\r
--      for(int i = 1; i <= surfelem_bclist.Size(); i++)\r
--      {\r
--         dbg << "bc = " << surfelem_bclist.Elem(i) \r
--              << " : face = " << surfelem_lists.Elem(i).I1()\r
--              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";\r
--      }\r
--\r
--      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";\r
--\r
--      for(int i = 1; i <= owner_celllist.Size(); i++)\r
--      {\r
--         dbg << "Ind:" << i << " :: (" \r
--              << owner_celllist.Elem(i) << " "\r
--              << owner_facelist.Elem(i) << "  "\r
--              << neighbour_celllist.Elem(i) << ")\n";\r
--      }\r
--\r
--      dbg.close();\r
--*/\r
--      return(false);\r
--   }\r
--\r
--\r
--\r
--   static void WriteNeighbourFile (ostream * outfile)\r
--   {\r
--      // Write the OpenFOAM standard banner and dividers, etc...\r
--      WriteOpenFOAM15xBanner(outfile);\r
--      *outfile << "FoamFile \n"\r
--              << "{ \n"\r
--              << "    version     2.0; \n"\r
--              << "    format      ascii; \n"\r
--              << "    class       labelList; \n"\r
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
--              << "    location    \"constant\\polyMesh\"; \n"\r
--              << "    object      neighbour; \n"\r
--              << "} \n";\r
--      WriteOpenFOAM15xDividerStart(outfile);\r
--\r
--      *outfile << "\n\n";\r
--\r
--      int nneighbours = neighbour_celllist.Size();\r
--\r
--      *outfile << nneighbours << "\n";\r
--\r
--      *outfile << "(\n";\r
--\r
--      // Write the neighbour cells to file\r
--      for(int i = 1; i <= neighbour_celllist.Size(); i++)\r
--      {\r
--         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";\r
--      }\r
--      *outfile << ")\n\n";\r
--      WriteOpenFOAM15xDividerEnd(outfile);\r
--   }\r
--\r
--\r
--\r
--   static void WriteOwnerFile (ostream * outfile)\r
--   {\r
--      // Write the OpenFOAM standard banner and dividers, etc...\r
--      WriteOpenFOAM15xBanner(outfile);\r
--      *outfile << "FoamFile \n"\r
--              << "{ \n"\r
--              << "    version     2.0; \n"\r
--              << "    format      ascii; \n"\r
--              << "    class       labelList; \n"\r
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
--              << "    location    \"constant\\polyMesh\"; \n"\r
--              << "    object      owner; \n"\r
--              << "} \n";\r
--      WriteOpenFOAM15xDividerStart(outfile);\r
--\r
--      *outfile << "\n\n";\r
--\r
--      int nowners = owner_celllist.Size() + surfelem_lists.Size();\r
--\r
--      *outfile << nowners << "\n";\r
--\r
--      *outfile << "(\n";\r
--\r
--      // Write the owners of the internal cells to file\r
--      for(int i = 1; i <= owner_celllist.Size(); i++)\r
--      {\r
--         *outfile << owner_celllist.Elem(i) - 1 << "\n";\r
--      }\r
--\r
--      // Write the owners of the boundary cells to file\r
--      // (Written in order of ascending boundary condition numbers)\r
--      for(int i = 1; i <= surfelem_lists.Size(); i++)\r
--      {\r
--         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";\r
--      }\r
--      *outfile << ")\n\n";\r
--      WriteOpenFOAM15xDividerEnd(outfile);\r
--   }\r
--\r
--\r
--\r
--   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)\r
--   {\r
--      const MeshTopology& meshtopo = mesh.GetTopology();\r
--\r
--      // Write the OpenFOAM standard banner and dividers, etc...\r
--      WriteOpenFOAM15xBanner(outfile);\r
--      *outfile << "FoamFile \n"\r
--              << "{ \n"\r
--              << "    version     2.0; \n"\r
--              << "    format      ascii; \n"\r
--              << "    class       faceList; \n"\r
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
--              << "    location    \"constant\\polyMesh\"; \n"\r
--              << "    object      faces; \n"\r
--              << "} \n";\r
--      WriteOpenFOAM15xDividerStart(outfile);\r
--\r
--      *outfile << "\n\n";\r
--\r
--      int nfaces = owner_facelist.Size() + surfelem_lists.Size();\r
--\r
--      *outfile << nfaces << "\n";\r
--\r
--      *outfile << "(\n";\r
--\r
--      // Array to hold the indices of the points of each face to \r
--      // flip if required \r
--      Array<int> facepnts;\r
--\r
--      // Write the faces in the order specified in the owners lists of the \r
--      // internal cells and the boundary cells\r
--      for(int i = 1; i <= owner_facelist.Size(); i++)\r
--      {\r
--         int face_w_orientation = owner_facelist.Elem(i);\r
--         int facenr = abs(face_w_orientation);\r
--\r
--         meshtopo.GetFaceVertices(facenr,facepnts);\r
--\r
--         // Get the orientation of the face, and invert it if required\r
--         // Since the faces already have the orientation "embedded" into \r
--         // them by means of the prepended sign, only this needs to be \r
--         // checked for...\r
--         if(face_w_orientation > 0)\r
--         {\r
--            int tmppnts = 0;\r
--\r
--            if(facepnts.Size() == 4)\r
--            {\r
--               tmppnts = facepnts.Elem(1);\r
--               facepnts.Elem(1) = facepnts.Elem(2);\r
--               facepnts.Elem(2) = tmppnts;\r
--               \r
--               tmppnts = facepnts.Elem(3);\r
--               facepnts.Elem(3) = facepnts.Elem(4);\r
--               facepnts.Elem(4) = tmppnts;\r
--            }\r
--            else if(facepnts.Size() == 3)\r
--            {\r
--               tmppnts = facepnts.Elem(1);\r
--               facepnts.Elem(1) = facepnts.Elem(3);\r
--               facepnts.Elem(3) = tmppnts;\r
--            }\r
--         }\r
--\r
--         *outfile << facepnts.Size();\r
--         *outfile << "(";\r
--         for(int j = 1; j <= facepnts.Size(); j++)\r
--         {\r
--            *outfile << facepnts.Elem(j)-1;\r
--            if(j != facepnts.Size()) *outfile << " ";\r
--         }\r
--         *outfile << ")\n";\r
--      }\r
--\r
--      // Now append the faces of the surface elements (written in \r
--      // ascending order of boundary condition number) also into \r
--      // the faces file\r
--      for(int i = 1; i <= surfelem_lists.Size(); i++)\r
--      {\r
--         int face_w_orientation = surfelem_lists.Elem(i).I1();\r
--         int facenr = abs(face_w_orientation);\r
--\r
--         meshtopo.GetFaceVertices(facenr,facepnts);\r
--\r
--         // Get the orientation of the face, and invert it if required\r
--         if(face_w_orientation > 0)\r
--         {\r
--            int tmppnts = 0;\r
--\r
--            if(facepnts.Size() == 4)\r
--            {\r
--               tmppnts = facepnts.Elem(1);\r
--               facepnts.Elem(1) = facepnts.Elem(2);\r
--               facepnts.Elem(2) = tmppnts;\r
--               \r
--               tmppnts = facepnts.Elem(3);\r
--               facepnts.Elem(3) = facepnts.Elem(4);\r
--               facepnts.Elem(4) = tmppnts;\r
--            }\r
--            else if(facepnts.Size() == 3)\r
--            {\r
--               tmppnts = facepnts.Elem(1);\r
--               facepnts.Elem(1) = facepnts.Elem(3);\r
--               facepnts.Elem(3) = tmppnts;\r
--            }\r
--         }\r
--\r
--         *outfile << facepnts.Size();\r
--         *outfile << "(";\r
--         for(int j = 1; j <= facepnts.Size(); j++)\r
--         {\r
--            *outfile << facepnts.Elem(j)-1;\r
--            if(j != facepnts.Size()) *outfile << " ";\r
--         }\r
--         *outfile << ")\n";\r
--      }\r
--\r
--      *outfile << ")\n\n";\r
--      WriteOpenFOAM15xDividerEnd(outfile);\r
--   }\r
--\r
--\r
-- \r
--   static void WritePointsFile (ostream * outfile, const Mesh & mesh)\r
--   {\r
--      int np = mesh.GetNP();\r
--\r
--      // Write the OpenFOAM standard banner and dividers, etc...\r
--      WriteOpenFOAM15xBanner(outfile);\r
--      *outfile << "FoamFile \n"\r
--              << "{ \n"\r
--              << "    version     2.0; \n"\r
--              << "    format      ascii; \n"\r
--              << "    class       vectorField; \n"\r
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
--              << "    location    \"constant\\polyMesh\"; \n"\r
--              << "    object      points; \n"\r
--              << "} \n";\r
--      WriteOpenFOAM15xDividerStart(outfile);\r
--\r
--      *outfile << "\n\n";\r
--\r
--      // Number of points in the following list\r
--      *outfile << np << "\n";\r
--\r
--      outfile->precision(6);\r
--      outfile->setf (ios::fixed, ios::floatfield);\r
--      outfile->setf (ios::showpoint);\r
--\r
--      // Coordinate list starts here\r
--      *outfile << "(\n";\r
--\r
--      for(int i = 1; i <= np; i++)\r
--      {\r
--         const Point3d & p = mesh.Point(i);\r
--\r
--         // Write coordinates to file\r
--         *outfile << "(";\r
--         *outfile << p.X() << " ";\r
--         *outfile << p.Y() << " ";\r
--         *outfile << p.Z();\r
--         *outfile << ")\n";\r
--      }\r
--      *outfile << ")\n\n";\r
--      WriteOpenFOAM15xDividerEnd(outfile);\r
--   }\r
--\r
--\r
--\r
--   static void WriteBoundaryFile (ostream * outfile)\r
--   {\r
--      // Write the OpenFOAM standard banner and dividers, etc...\r
--      WriteOpenFOAM15xBanner(outfile);\r
--      *outfile << "FoamFile \n"\r
--              << "{ \n"\r
--              << "    version     2.0; \n"\r
--              << "    format      ascii; \n"\r
--              << "    class       polyBoundaryMesh; \n"\r
--              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"\r
--              << "    location    \"constant\\polyMesh\"; \n"\r
--              << "    object      boundary; \n"\r
--              << "} \n";\r
--      WriteOpenFOAM15xDividerStart(outfile);\r
--\r
--      *outfile << "\n";\r
--\r
--\r
--      Array<INDEX_3> bcarray;\r
--      int ind = 1;\r
--\r
--      // Since the boundary conditions are already sorted in ascending \r
--      // order, the last element will give the maximum number of possible \r
--      // boundary condition entries\r
--      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());\r
--\r
--      bcarray.SetSize(bcmax+1);\r
--\r
--      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);\r
--            \r
--      for(int i = 2; i <= surfelem_bclist.Size(); i++)\r
--      {\r
--         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())\r
--         {\r
--            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;\r
--         }\r
--         else\r
--         {\r
--            ind++;\r
--            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);\r
--         }\r
--      }\r
--\r
--      bcarray.SetSize(ind);\r
--\r
--      *outfile << bcarray.Size() << "\n";\r
--      *outfile << "(\n";\r
--\r
--      int startface = 0;\r
--\r
--      for(int i = 1; i <= bcarray.Size(); i++)\r
--      {\r
--         startface = owner_celllist.Size() + bcarray.Elem(i).I3();\r
--\r
--         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"\r
--                 << "    {\n"\r
--                 << "        type            patch;\n"\r
--                 << "        physicalType    patch;\n"\r
--                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"\r
--                 << "        startFace       " << startface << ";\n"\r
--                 << "    }\n";\r
--      }\r
--\r
--      *outfile << ")\n\n";\r
--      WriteOpenFOAM15xDividerEnd(outfile);\r
--   }\r
--\r
--\r
--\r
--   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)\r
--   {\r
--      bool error = false;\r
--      char casefiles[256];\r
--\r
--      // Make sure that the mesh data has been updated\r
--      const_cast<Mesh&> (mesh).Compress();\r
--      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();\r
--      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();\r
--      const_cast<Mesh&> (mesh).BuildElementSearchTree();\r
--\r
--\r
--      int np = mesh.GetNP();\r
--      int nse = mesh.GetNSE();\r
--      int ne = mesh.GetNE();\r
--\r
--      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";\r
--\r
--      // Abort if there are no points, surface elements or volume elements\r
--      if((np <= 0) || (ne <= 0) || (nse <= 0))\r
--      {\r
--         cout << "Export Error: Invalid mesh.... Aborting!\n";\r
--         return;\r
--      }\r
--\r
--      // OpenFOAM only supports linear meshes!\r
--      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())\r
--      {\r
--         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";\r
--         return;\r
--      }\r
--\r
--      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG) \r
--         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )\r
--         || (mesh.VolumeElement(ne/2).GetType() == TET10)\r
--         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))\r
--      {\r
--         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";\r
--         return;\r
--      }\r
--\r
--\r
--      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";\r
--\r
--      // Create the case directory if it does not already exist\r
--      // NOTE: This needs to be improved for the Linux variant....!!!\r
--   #ifdef WIN32\r
--      char casedir[256];\r
--      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());\r
--      system(casedir);\r
--   #else\r
--      char casedir[256];\r
--      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);\r
--      sprintf(casedir, "%s/constant", casename.c_str());\r
--      mkdir(casedir, S_IRWXU|S_IRWXG);\r
--      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());\r
--      mkdir(casedir, S_IRWXU|S_IRWXG);\r
--   #endif\r
--\r
--      // Open handles to the five required mesh files\r
--      // points\r
--      // faces\r
--      // owner\r
--      // neighbour\r
--      // boundary\r
--        ostream *outfile_pnts;\r
--        ostream *outfile_faces;\r
--        ostream *outfile_own;\r
--        ostream *outfile_nei;\r
--        ostream *outfile_bnd;\r
--\r
--        if(compressed)\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());\r
--                outfile_pnts = new ogzstream(casefiles);\r
--        }\r
--        else\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());\r
--                outfile_pnts = new ofstream(casefiles);\r
--        }\r
--\r
--        if(compressed)\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());\r
--                outfile_faces = new ogzstream(casefiles);\r
--        }\r
--        else\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());\r
--                outfile_faces = new ofstream(casefiles);\r
--        }\r
--\r
--        if(compressed)\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str()); \r
--                outfile_own = new ogzstream(casefiles);\r
--        }\r
--        else\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str()); \r
--                outfile_own = new ofstream(casefiles);\r
--        }\r
--\r
--        if(compressed)\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());\r
--                outfile_nei = new ogzstream(casefiles);\r
--        }\r
--        else\r
--        {\r
--                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());\r
--                outfile_nei = new ofstream(casefiles);\r
--        }\r
--\r
--        // Note... the boundary file is not compressed\r
--      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str()); \r
--      outfile_bnd = new ofstream(casefiles);\r
--\r
--      ResetTime();\r
--\r
--      // Build the owner, neighbour, faces and boundary lists \r
--      // from the Netgen mesh\r
--      cout << "\nBuilding Owner, Neighbour and Face Lists: ";\r
--\r
--      error = BuildOwnerNeighbourLists(mesh);\r
--\r
--      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--\r
--\r
--      // Write the "owner" file\r
--      if(outfile_own->good() && !error)\r
--      {\r
--         cout << "Writing the owner file: ";\r
--         WriteOwnerFile(outfile_own);\r
--         delete outfile_own;\r
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Export Error: Error creating file: owner.... Aborting\n";\r
--         error = true;\r
--      }\r
--\r
--\r
--      // Write the "neighbour" file\r
--      if(outfile_nei->good() && !error)\r
--      {\r
--         cout << "Writing the neighbour file: ";\r
--         WriteNeighbourFile(outfile_nei);\r
--         delete outfile_nei;\r
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Export Error: Error creating file: neighbour.... Aborting\n";\r
--         error = true;\r
--      }\r
--\r
--\r
--      // Write the "faces" file\r
--      if(outfile_faces->good() && !error)\r
--      {\r
--         cout << "Writing the faces file: ";\r
--         WriteFacesFile(outfile_faces, mesh);\r
--         delete outfile_faces;\r
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Export Error: Error creating file: faces.... Aborting\n";\r
--         error = true;\r
--      }\r
--\r
--\r
--      // Write the "points" file\r
--      if(outfile_pnts->good() && !error)\r
--      {\r
--         cout << "Writing the points file: ";\r
--         WritePointsFile(outfile_pnts,mesh);\r
--         delete outfile_pnts;\r
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Export Error: Error creating file: points.... Aborting\n";\r
--         error = true;\r
--      }\r
--\r
--\r
--      // Write the "boundary" file\r
--      if(outfile_bnd->good() && !error)\r
--      {\r
--         cout << "Writing the boundary file: ";\r
--         WriteBoundaryFile(outfile_bnd);\r
--         delete outfile_bnd;\r
--         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Export Error: Error creating file: boundary.... Aborting\n";\r
--         error = true;\r
--      }\r
--\r
--      if(!error)\r
--      {\r
--         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";\r
--      }\r
--      else\r
--      {\r
--         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";\r
--      }\r
--   }\r
--}\r
--\r
-+/*! \file writeOpenFOAM15x.cpp
-+*  \brief Export Netgen Mesh in the OpenFOAM 1.5+ File format
-+*  \author Philippose Rajan
-+*  \date 25 October 2009
-+*
-+*  This function extends the export capabilities of
-+*  Netgen to include the OpenFOAM 1.5+ File Format.
-+*
-+*  The OpenFOAM 1.5+ mesh format consists of a set of 5 files 
-+*  which together define the mesh points, faces, cells and 
-+*  boundary conditions. 
-+*
-+*  The files are:
-+*  1. points    -> A list of the point co-ordinates
-+*  2. faces     -> A list of the faces with format <n>(pnt_ind1 pnt_ind2 .... pnt_ind<n>)
-+*  3. owner     -> The owner cell of each face 
-+*  4. neighbour -> The neighbour cell of each face
-+*  5. boundary  -> The set of boundaries with name, start face, and num. of faces
-+*
-+*  For a detailed description of the format, refer to the following link:
-+*  http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes
-+*
-+*/
-+
-+#include <mystdlib.h>
-+
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <meshing.hpp>
-+#include <sys/stat.h>
-+
-+
-+namespace netgen
-+{
-+#include "writeuser.hpp"
-+
-+   // Global arrays used to maintain the owner, neighbour and face lists 
-+   // so that they are accessible across functions
-+   static Array<int> owner_facelist;
-+   static Array<int> owner_celllist;
-+   static Array<int> neighbour_celllist;
-+   static Array<int> surfelem_bclist;
-+   static Array<INDEX_2> surfelem_lists;
-+
-+
-+
-+   static void WriteOpenFOAM15xBanner(ostream * outfile)
-+   {
-+      static char FOAMversion[4] = "1.5";
-+      static char spaces[40];
-+
-+      memset(spaces, ' ', 40);
-+      spaces[38 - strlen(FOAMversion)] = '\0';
-+      
-+      *outfile << 
-+              "/*--------------------------------*- C++ -*----------------------------------*\\\n";
-+
-+      *outfile <<
-+              "| =========                 |                                                 |\n"
-+              "| \\\\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |\n"
-+              "|  \\\\    /   O peration     | Version:  " << FOAMversion << spaces << "|\n"
-+              "|   \\\\  /    A nd           | Web:      http://www.OpenFOAM.org               |\n"
-+              "|    \\\\/     M anipulation  |                                                 |\n"
-+              "\\*---------------------------------------------------------------------------*/\n";
-+
-+   }
-+
-+
-+
-+   static void WriteOpenFOAM15xDividerStart(ostream * outfile)
-+   {
-+      *outfile  <<
-+               "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //\n";
-+   }
-+
-+
-+
-+   static void WriteOpenFOAM15xDividerEnd(ostream * outfile)
-+   {
-+      *outfile <<
-+              "// ************************************************************************* //\n";
-+   }
-+
-+
-+
-+   static bool BuildOwnerNeighbourLists (const Mesh & mesh)
-+   {
-+      // Clear all the arrays
-+      owner_facelist.DeleteAll();
-+      owner_celllist.DeleteAll();
-+      neighbour_celllist.DeleteAll();
-+      surfelem_bclist.DeleteAll();
-+      surfelem_lists.DeleteAll();
-+
-+      const MeshTopology& meshtopo = mesh.GetTopology();
-+      
-+      // Update the mesh topology structures
-+      const_cast<MeshTopology&> (meshtopo).SetBuildEdges(true);
-+      const_cast<MeshTopology&> (meshtopo).SetBuildFaces(true);
-+      const_cast<MeshTopology&> (meshtopo).Update();
-+
-+      // Extract important mesh metrics
-+      int ne = mesh.GetNE();
-+      int nse = mesh.GetNSE();
-+      int totfaces = meshtopo.GetNFaces();
-+
-+      // Preset the size of the arrays to speed up future operations
-+      // Number of internal faces = total faces - num. of surface faces
-+      owner_facelist.SetSize(totfaces - nse);
-+      owner_celllist.SetSize(totfaces - nse);
-+      neighbour_celllist.SetSize(totfaces - nse);
-+      surfelem_bclist.SetSize(nse);
-+      surfelem_lists.SetSize(nse);
-+
-+      // Initialise arrays to zero if required
-+      neighbour_celllist = 0;
-+
-+      // Array used to keep track of Faces which have already been 
-+      // processed and added to the Owner list... In addition, also the 
-+      // location where the face appears in the Owner list is also stored 
-+      // to speed up creation of the Neighbour list
-+      Array<int> ownerfaces(totfaces);
-+      ownerfaces = 0;
-+
-+      // Array to hold the set of local faces of each volume element 
-+      // while running through the set of volume elements
-+      // NOTE: The size is set automatically by the Netgen topology function
-+      Array<int> locfaces;
-+
-+      // Secondary indices used to independently advance the owner 
-+      // and boundary condition arrays within the main loop
-+      int owner_ind = 1;
-+      int bc_ind = 1;
-+
-+      // Loop through all the volume elements
-+      for(int elind = 1; elind <= ne; elind++)
-+      {
-+         // Extract the current volume element
-+      // const Element & el = mesh.VolumeElement(elind);
-+
-+         // Get the face numbers of the faces of the current volume element
-+         // The values returned are given a sign depending on the orientation 
-+         // of the faces. This is used while writing the faces file, to 
-+         // determine whether or not to invert the face triangle before writing 
-+         // it to file
-+         meshtopo.GetElementFaces(elind,locfaces,true);
-+
-+         // Loop through the faces
-+         for(int i = 1; i <= locfaces.Size(); i++)
-+         {
-+            // The absolute value of a face number (because the faces 
-+            // returned by the GetElementFaces function prepend it 
-+            // with a sign depending on the face orientation)
-+            int absfacenr = abs(locfaces.Elem(i));
-+
-+            // If the face already exists in the owner list, add 
-+            // the current cell into the neighbour list, in the 
-+            // same location where the face appears in the owner list
-+            int owner_face = ownerfaces.Elem(absfacenr);
-+            if(owner_face)
-+            {
-+               neighbour_celllist.Elem(owner_face) = elind;
-+
-+               // From this point on, the code within this "if" block 
-+               // basically sorts the order of the the Neighbour cells (along 
-+               // with the faces list) in ascending order.
-+               // The approach used is..... to traverse the owner and neighbour cell lists
-+               // up and down, and sort the neighbour cells of a given owner cell 
-+               // as the list evolves.
-+               // NOTE: A value of "zero" in the neighbour list implies that 
-+               // the neighbour has not been found yet, so the "zero" locations need 
-+               // to be skipped while sorting in ascending order
-+               int curr_owner = owner_celllist.Elem(owner_face);
-+
-+               int peek_loc = owner_face - 1;
-+               int new_loc = owner_face;
-+
-+               // Traversing upwards in the list
-+               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc >= 1))
-+               {
-+                  if((neighbour_celllist.Elem(peek_loc) != 0) 
-+                     && (neighbour_celllist.Elem(new_loc) < neighbour_celllist.Elem(peek_loc)))
-+                  {
-+                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
-+                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
-+                     new_loc = peek_loc;
-+                  }
-+
-+                  peek_loc--;
-+               }
-+
-+               peek_loc = owner_face + 1;
-+
-+               // Traversing downwards in the list
-+               while((owner_celllist.Elem(peek_loc) == curr_owner) && (peek_loc <= owner_ind))
-+               {
-+                  if((neighbour_celllist.Elem(peek_loc) != 0) 
-+                     && (neighbour_celllist.Elem(new_loc) > neighbour_celllist.Elem(peek_loc)))
-+                  {
-+                     Swap(neighbour_celllist.Elem(new_loc),neighbour_celllist.Elem(peek_loc));
-+                     Swap(owner_facelist.Elem(new_loc),owner_facelist.Elem(peek_loc));
-+                     new_loc = peek_loc;
-+                  }
-+
-+                  peek_loc++;
-+               }
-+
-+               continue;
-+            }
-+
-+            // Check if the face is a surface element (boundary face)
-+            // if not, add the current volume element and the corresponding face into 
-+            // the owner list
-+            int surfelem = meshtopo.GetFace2SurfaceElement(absfacenr);
-+            if(!surfelem)
-+            {
-+               // If it is a new face which has not been listed before, 
-+               // add the current cell into the owner list, and save 
-+               // the index location to be used later by the neighbour list
-+               owner_celllist.Elem(owner_ind) = elind;
-+               owner_facelist.Elem(owner_ind) = locfaces.Elem(i);
-+               // Update the array to indicate that the face is already processed
-+               ownerfaces.Elem(absfacenr) = owner_ind;
-+
-+               owner_ind++;
-+            }
-+            // If the face is a boundary face, extract the boundary condition number of the 
-+            // face, and append that along with the face number and the current cell 
-+            // into the various surface elements lists
-+            else
-+            {
-+               Element2d sel = mesh.SurfaceElement(surfelem);
-+               surfelem_bclist.Elem(bc_ind) = mesh.GetFaceDescriptor(sel.GetIndex()).BCProperty();
-+               surfelem_lists.Elem(bc_ind) = INDEX_2(locfaces.Elem(i),elind);
-+
-+               bc_ind++;
-+            }
-+         }
-+      }
-+
-+      // This correction is required in cases where the mesh has been "uniform refined".... for 
-+      // some reason, the number of faces reported by Netgen is higher than the actual number 
-+      // of faces in the mesh
-+      owner_facelist.SetSize(owner_ind-1);
-+      owner_celllist.SetSize(owner_ind-1);
-+      neighbour_celllist.SetSize(owner_ind-1);
-+
-+
-+      // Sort the list of surface elements in ascending order of boundary condition number
-+      // also sort the cell list in the same manner
-+      QuickSort(surfelem_bclist,surfelem_lists);
-+
-+/*    
-+      // Debugging output to a file 
-+      ofstream dbg("OpenFOAMDebug.log");
-+
-+      dbg << " ------- Boundary List -------- \n";
-+
-+      for(int i = 1; i <= surfelem_bclist.Size(); i++)
-+      {
-+         dbg << "bc = " << surfelem_bclist.Elem(i) 
-+              << " : face = " << surfelem_lists.Elem(i).I1()
-+              << " : cell = " << surfelem_lists.Elem(i).I2() << "\n";
-+      }
-+
-+      dbg << "\n ------- Owner / Face / Neighbour List ------- \n";
-+
-+      for(int i = 1; i <= owner_celllist.Size(); i++)
-+      {
-+         dbg << "Ind:" << i << " :: (" 
-+              << owner_celllist.Elem(i) << " "
-+              << owner_facelist.Elem(i) << "  "
-+              << neighbour_celllist.Elem(i) << ")\n";
-+      }
-+
-+      dbg.close();
-+*/
-+      return(false);
-+   }
-+
-+
-+
-+   static void WriteNeighbourFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       labelList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      neighbour; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nneighbours = neighbour_celllist.Size();
-+
-+      *outfile << nneighbours << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Write the neighbour cells to file
-+      for(int i = 1; i <= neighbour_celllist.Size(); i++)
-+      {
-+         *outfile << neighbour_celllist.Elem(i) - 1 << "\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteOwnerFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       labelList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      owner; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nowners = owner_celllist.Size() + surfelem_lists.Size();
-+
-+      *outfile << nowners << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Write the owners of the internal cells to file
-+      for(int i = 1; i <= owner_celllist.Size(); i++)
-+      {
-+         *outfile << owner_celllist.Elem(i) - 1 << "\n";
-+      }
-+
-+      // Write the owners of the boundary cells to file
-+      // (Written in order of ascending boundary condition numbers)
-+      for(int i = 1; i <= surfelem_lists.Size(); i++)
-+      {
-+         *outfile << surfelem_lists.Elem(i).I2() - 1 << "\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteFacesFile (ostream * outfile, const Mesh & mesh)
-+   {
-+      const MeshTopology& meshtopo = mesh.GetTopology();
-+
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       faceList; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      faces; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      int nfaces = owner_facelist.Size() + surfelem_lists.Size();
-+
-+      *outfile << nfaces << "\n";
-+
-+      *outfile << "(\n";
-+
-+      // Array to hold the indices of the points of each face to 
-+      // flip if required 
-+      Array<int> facepnts;
-+
-+      // Write the faces in the order specified in the owners lists of the 
-+      // internal cells and the boundary cells
-+      for(int i = 1; i <= owner_facelist.Size(); i++)
-+      {
-+         int face_w_orientation = owner_facelist.Elem(i);
-+         int facenr = abs(face_w_orientation);
-+
-+         meshtopo.GetFaceVertices(facenr,facepnts);
-+
-+         // Get the orientation of the face, and invert it if required
-+         // Since the faces already have the orientation "embedded" into 
-+         // them by means of the prepended sign, only this needs to be 
-+         // checked for...
-+         if(face_w_orientation > 0)
-+         {
-+            int tmppnts = 0;
-+
-+            if(facepnts.Size() == 4)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(2);
-+               facepnts.Elem(2) = tmppnts;
-+               
-+               tmppnts = facepnts.Elem(3);
-+               facepnts.Elem(3) = facepnts.Elem(4);
-+               facepnts.Elem(4) = tmppnts;
-+            }
-+            else if(facepnts.Size() == 3)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(3);
-+               facepnts.Elem(3) = tmppnts;
-+            }
-+         }
-+
-+         *outfile << facepnts.Size();
-+         *outfile << "(";
-+         for(int j = 1; j <= facepnts.Size(); j++)
-+         {
-+            *outfile << facepnts.Elem(j)-1;
-+            if(j != facepnts.Size()) *outfile << " ";
-+         }
-+         *outfile << ")\n";
-+      }
-+
-+      // Now append the faces of the surface elements (written in 
-+      // ascending order of boundary condition number) also into 
-+      // the faces file
-+      for(int i = 1; i <= surfelem_lists.Size(); i++)
-+      {
-+         int face_w_orientation = surfelem_lists.Elem(i).I1();
-+         int facenr = abs(face_w_orientation);
-+
-+         meshtopo.GetFaceVertices(facenr,facepnts);
-+
-+         // Get the orientation of the face, and invert it if required
-+         if(face_w_orientation > 0)
-+         {
-+            int tmppnts = 0;
-+
-+            if(facepnts.Size() == 4)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(2);
-+               facepnts.Elem(2) = tmppnts;
-+               
-+               tmppnts = facepnts.Elem(3);
-+               facepnts.Elem(3) = facepnts.Elem(4);
-+               facepnts.Elem(4) = tmppnts;
-+            }
-+            else if(facepnts.Size() == 3)
-+            {
-+               tmppnts = facepnts.Elem(1);
-+               facepnts.Elem(1) = facepnts.Elem(3);
-+               facepnts.Elem(3) = tmppnts;
-+            }
-+         }
-+
-+         *outfile << facepnts.Size();
-+         *outfile << "(";
-+         for(int j = 1; j <= facepnts.Size(); j++)
-+         {
-+            *outfile << facepnts.Elem(j)-1;
-+            if(j != facepnts.Size()) *outfile << " ";
-+         }
-+         *outfile << ")\n";
-+      }
-+
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+ 
-+   static void WritePointsFile (ostream * outfile, const Mesh & mesh)
-+   {
-+      int np = mesh.GetNP();
-+
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       vectorField; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      points; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n\n";
-+
-+      // Number of points in the following list
-+      *outfile << np << "\n";
-+
-+      outfile->precision(6);
-+      outfile->setf (ios::fixed, ios::floatfield);
-+      outfile->setf (ios::showpoint);
-+
-+      // Coordinate list starts here
-+      *outfile << "(\n";
-+
-+      for(int i = 1; i <= np; i++)
-+      {
-+         const Point3d & p = mesh.Point(i);
-+
-+         // Write coordinates to file
-+         *outfile << "(";
-+         *outfile << p.X() << " ";
-+         *outfile << p.Y() << " ";
-+         *outfile << p.Z();
-+         *outfile << ")\n";
-+      }
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   static void WriteBoundaryFile (ostream * outfile)
-+   {
-+      // Write the OpenFOAM standard banner and dividers, etc...
-+      WriteOpenFOAM15xBanner(outfile);
-+      *outfile << "FoamFile \n"
-+              << "{ \n"
-+              << "    version     2.0; \n"
-+              << "    format      ascii; \n"
-+              << "    class       polyBoundaryMesh; \n"
-+              << "    note        \"Mesh generated and converted using NETGEN-" << PACKAGE_VERSION << "\"; \n"
-+              << "    location    \"constant\\polyMesh\"; \n"
-+              << "    object      boundary; \n"
-+              << "} \n";
-+      WriteOpenFOAM15xDividerStart(outfile);
-+
-+      *outfile << "\n";
-+
-+
-+      Array<INDEX_3> bcarray;
-+      int ind = 1;
-+
-+      // Since the boundary conditions are already sorted in ascending 
-+      // order, the last element will give the maximum number of possible 
-+      // boundary condition entries
-+      int bcmax = surfelem_bclist.Elem(surfelem_bclist.Size());
-+
-+      bcarray.SetSize(bcmax+1);
-+
-+      bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(1),1,0);
-+            
-+      for(int i = 2; i <= surfelem_bclist.Size(); i++)
-+      {
-+         if(surfelem_bclist.Elem(i) == bcarray.Elem(ind).I1())
-+         {
-+            bcarray.Elem(ind).I2() = bcarray.Elem(ind).I2()+1;
-+         }
-+         else
-+         {
-+            ind++;
-+            bcarray.Elem(ind) = INDEX_3(surfelem_bclist.Elem(i),1,i-1);
-+         }
-+      }
-+
-+      bcarray.SetSize(ind);
-+
-+      *outfile << bcarray.Size() << "\n";
-+      *outfile << "(\n";
-+
-+      int startface = 0;
-+
-+      for(int i = 1; i <= bcarray.Size(); i++)
-+      {
-+         startface = owner_celllist.Size() + bcarray.Elem(i).I3();
-+
-+         *outfile << "    patch" << bcarray.Elem(i).I1() << "\n"
-+                 << "    {\n"
-+                 << "        type            patch;\n"
-+                 << "        physicalType    patch;\n"
-+                 << "        nFaces          " << bcarray.Elem(i).I2() << ";\n"
-+                 << "        startFace       " << startface << ";\n"
-+                 << "    }\n";
-+      }
-+
-+      *outfile << ")\n\n";
-+      WriteOpenFOAM15xDividerEnd(outfile);
-+   }
-+
-+
-+
-+   void WriteOpenFOAM15xFormat (const Mesh & mesh, const string & casename, const bool compressed)
-+   {
-+      bool error = false;
-+      char casefiles[256];
-+
-+      // Make sure that the mesh data has been updated
-+      const_cast<Mesh&> (mesh).Compress();
-+      const_cast<Mesh&> (mesh).CalcSurfacesOfNode();
-+      const_cast<Mesh&> (mesh).RebuildSurfaceElementLists();
-+      const_cast<Mesh&> (mesh).BuildElementSearchTree();
-+
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int ne = mesh.GetNE();
-+
-+      cout << "Write OpenFOAM 1.5+ Mesh Files....\n";
-+
-+      // Abort if there are no points, surface elements or volume elements
-+      if((np <= 0) || (ne <= 0) || (nse <= 0))
-+      {
-+         cout << "Export Error: Invalid mesh.... Aborting!\n";
-+         return;
-+      }
-+
-+      // OpenFOAM only supports linear meshes!
-+      if(mparam.secondorder || mesh.GetCurvedElements().IsHighOrder())
-+      {
-+         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
-+         return;
-+      }
-+
-+      if(( (mesh.SurfaceElement(nse/2).GetType() != TRIG) 
-+         && (mesh.SurfaceElement(nse/2).GetType() != QUAD) )
-+         || (mesh.VolumeElement(ne/2).GetType() == TET10)
-+         || (mesh.VolumeElement(ne/2).GetType() == PRISM12))
-+      {
-+         cout << "Export Error: OpenFOAM 1.5+ does not support non-linear elements.... Aborting!\n";
-+         return;
-+      }
-+
-+
-+      cout << "Writing OpenFOAM 1.5+ Mesh files to case: " << casename << "\n";
-+
-+      // Create the case directory if it does not already exist
-+      // NOTE: This needs to be improved for the Linux variant....!!!
-+   #ifdef WIN32
-+      char casedir[256];
-+      sprintf(casedir, "mkdir %s\\constant\\polyMesh", casename.c_str());
-+      system(casedir);
-+   #else
-+      char casedir[256];
-+      mkdir(casename.c_str(), S_IRWXU|S_IRWXG);
-+      sprintf(casedir, "%s/constant", casename.c_str());
-+      mkdir(casedir, S_IRWXU|S_IRWXG);
-+      sprintf(casedir, "%s/constant/polyMesh", casename.c_str());
-+      mkdir(casedir, S_IRWXU|S_IRWXG);
-+   #endif
-+
-+      // Open handles to the five required mesh files
-+      // points
-+      // faces
-+      // owner
-+      // neighbour
-+      // boundary
-+        ostream *outfile_pnts;
-+        ostream *outfile_faces;
-+        ostream *outfile_own;
-+        ostream *outfile_nei;
-+        ostream *outfile_bnd;
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/points.gz", casename.c_str());
-+                outfile_pnts = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/points", casename.c_str());
-+                outfile_pnts = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/faces.gz", casename.c_str());
-+                outfile_faces = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/faces", casename.c_str());
-+                outfile_faces = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/owner.gz", casename.c_str()); 
-+                outfile_own = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/owner", casename.c_str()); 
-+                outfile_own = new ofstream(casefiles);
-+        }
-+
-+        if(compressed)
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/neighbour.gz", casename.c_str());
-+                outfile_nei = new ogzstream(casefiles);
-+        }
-+        else
-+        {
-+                sprintf(casefiles, "%s/constant/polyMesh/neighbour", casename.c_str());
-+                outfile_nei = new ofstream(casefiles);
-+        }
-+
-+        // Note... the boundary file is not compressed
-+      sprintf(casefiles, "%s/constant/polyMesh/boundary", casename.c_str()); 
-+      outfile_bnd = new ofstream(casefiles);
-+
-+      ResetTime();
-+
-+      // Build the owner, neighbour, faces and boundary lists 
-+      // from the Netgen mesh
-+      cout << "\nBuilding Owner, Neighbour and Face Lists: ";
-+
-+      error = BuildOwnerNeighbourLists(mesh);
-+
-+      cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+
-+
-+      // Write the "owner" file
-+      if(outfile_own->good() && !error)
-+      {
-+         cout << "Writing the owner file: ";
-+         WriteOwnerFile(outfile_own);
-+         delete outfile_own;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: owner.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "neighbour" file
-+      if(outfile_nei->good() && !error)
-+      {
-+         cout << "Writing the neighbour file: ";
-+         WriteNeighbourFile(outfile_nei);
-+         delete outfile_nei;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: neighbour.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "faces" file
-+      if(outfile_faces->good() && !error)
-+      {
-+         cout << "Writing the faces file: ";
-+         WriteFacesFile(outfile_faces, mesh);
-+         delete outfile_faces;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: faces.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "points" file
-+      if(outfile_pnts->good() && !error)
-+      {
-+         cout << "Writing the points file: ";
-+         WritePointsFile(outfile_pnts,mesh);
-+         delete outfile_pnts;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: points.... Aborting\n";
-+         error = true;
-+      }
-+
-+
-+      // Write the "boundary" file
-+      if(outfile_bnd->good() && !error)
-+      {
-+         cout << "Writing the boundary file: ";
-+         WriteBoundaryFile(outfile_bnd);
-+         delete outfile_bnd;
-+         cout << "Done! (Time Elapsed = " << GetTime() << " sec)\n";
-+      }
-+      else
-+      {
-+         cout << "Export Error: Error creating file: boundary.... Aborting\n";
-+         error = true;
-+      }
-+
-+      if(!error)
-+      {
-+         cout << "OpenFOAM 1.5+ Export successfully completed (Time elapsed = " << GetTime() << " sec) !\n";
-+      }
-+      else
-+      {
-+         cout << "Error in OpenFOAM 1.5+ Export.... Aborted!\n";
-+      }
-+   }
-+}
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.cpp       2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.cpp      2019-11-14 16:56:23.170430926 +0300
-@@ -1,1040 +1,1040 @@
--//\r
--//  Write user dependent output file\r
--//\r
--\r
--#include <mystdlib.h>\r
--\r
--#include <myadt.hpp>\r
--#include <linalg.hpp>\r
--#include <csg.hpp>\r
--#include <geometry2d.hpp>\r
--#include <meshing.hpp>\r
--\r
--namespace netgen\r
--{\r
--#include "writeuser.hpp"\r
--\r
--\r
--  void RegisterUserFormats (Array<const char*> & names,\r
--                          Array<const char*> & extensions)\r
--                          \r
--{\r
--  const char *types[] =\r
--    {\r
--      "Neutral Format",  ".mesh",\r
--      "Surface Mesh Format", ".mesh" ,\r
--      "DIFFPACK Format", ".mesh",\r
--      "TecPlot Format", ".mesh",\r
--      "Tochnog Format", ".mesh",\r
--      "Abaqus Format", ".mesh",\r
--      "Fluent Format", ".mesh",\r
--      "Permas Format", ".mesh",\r
--      "FEAP Format", ".mesh",\r
--      "Elmer Format", "*",\r
--      "STL Format", ".stl",\r
--      "STL Extended Format", ".stl",\r
--      "VRML Format", ".*",\r
--      "Gmsh Format", ".gmsh",\r
--      "Gmsh2 Format", ".gmsh2",\r
--      "OpenFOAM 1.5+ Format", "*",\r
--        "OpenFOAM 1.5+ Compressed", "*",\r
--      "JCMwave Format", ".jcm",\r
--      "TET Format", ".tet",\r
--      //      { "Chemnitz Format" },\r
--      0\r
--    };\r
--  \r
--  for (int i = 0; types[2*i]; i++)\r
--    {\r
--      names.Append (types[2*i]);\r
--      extensions.Append (types[2*i+1]);\r
--    }\r
--}\r
--  \r
--\r
--\r
--bool WriteUserFormat (const string & format,\r
--                    const Mesh & mesh,\r
--                    const NetgenGeometry & hgeom,\r
--                    const string & filename)\r
--{\r
--  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);\r
--\r
--  PrintMessage (1, "Export mesh to file ", filename,\r
--              ", format is ", format);\r
--\r
--  if (format == "Neutral Format")\r
--    WriteNeutralFormat (mesh, geom, filename);\r
--\r
--  else if (format == "Surface Mesh Format")\r
--    WriteSurfaceFormat (mesh, filename);\r
--\r
--  else if (format == "DIFFPACK Format")\r
--    WriteDiffPackFormat (mesh, geom, filename);\r
--\r
--  else if (format == "Tochnog Format")\r
--    WriteTochnogFormat (mesh, filename);\r
--\r
--  else if (format == "TecPlot Format")\r
--    cerr << "ERROR: TecPlot format currently out of order" << endl;\r
--      // WriteTecPlotFormat (mesh, geom, filename);\r
--\r
--  else if (format == "Abaqus Format")\r
--    WriteAbaqusFormat (mesh, filename);\r
--\r
--  else if (format == "Fluent Format")\r
--    WriteFluentFormat (mesh, filename);\r
--\r
--  else if (format == "Permas Format")\r
--    WritePermasFormat (mesh, filename);\r
--\r
--  else if (format == "FEAP Format")\r
--    WriteFEAPFormat (mesh, filename);\r
--\r
--  else if (format == "Elmer Format")\r
--    WriteElmerFormat (mesh, filename);\r
--\r
--  else if (format == "STL Format")\r
--    WriteSTLFormat (mesh, filename);\r
--\r
--  // Philippose - 16 August 2010\r
--  // Added additional STL Export in which\r
--  // each face of the geometry is treated\r
--  // as a separate "solid" entity\r
--  else if (format == "STL Extended Format")\r
--      WriteSTLExtFormat (mesh, filename);\r
--\r
--  else if (format == "VRML Format")\r
--    WriteVRMLFormat (mesh, 1, filename);\r
--\r
--  else if (format == "Fepp Format")\r
--    WriteFEPPFormat (mesh, geom, filename);\r
--\r
--  else if (format ==  "EdgeElement Format")\r
--    WriteEdgeElementFormat (mesh, geom, filename);\r
--\r
--  else if (format == "Chemnitz Format")\r
--    WriteUserChemnitz (mesh, filename);\r
--\r
--  else if (format == "Gmsh Format")\r
--    WriteGmshFormat (mesh, geom, filename);\r
--\r
--  // Philippose - 29/01/2009\r
--  // Added Gmsh v2.xx Mesh export capability\r
--  else if (format == "Gmsh2 Format")\r
--    WriteGmsh2Format (mesh, geom, filename);\r
--\r
--  // Philippose - 25/10/2009\r
--  // Added OpenFOAM 1.5+ Mesh export capability\r
--  else if (format == "OpenFOAM 1.5+ Format")\r
--    WriteOpenFOAM15xFormat (mesh, filename, false);\r
--\r
--  else if (format == "OpenFOAM 1.5+ Compressed")\r
--    WriteOpenFOAM15xFormat (mesh, filename, true);\r
--\r
--  else if (format == "JCMwave Format")\r
--    WriteJCMFormat (mesh, geom, filename);\r
--\r
--#ifdef OLIVER\r
--  else if (format == "TET Format")\r
--    WriteTETFormat( mesh, filename);//, "High Frequency" );\r
--#endif\r
--\r
--  else\r
--    {\r
--      return 1;\r
--    }\r
--\r
--  return 0;\r
--}\r
--\r
--\r
--\r
--\r
--/*\r
-- *  Neutral mesh format\r
-- *  points, elements, surface elements\r
-- */\r
--\r
--void WriteNeutralFormat (const Mesh & mesh,\r
--                       const CSGeometry & geom,\r
--                       const string & filename)\r
--{\r
--  cout << "write neutral, new" << endl;\r
--  int np = mesh.GetNP();\r
--  int ne = mesh.GetNE();\r
--  int nse = mesh.GetNSE();\r
--  int nseg = mesh.GetNSeg();\r
--  int i, j;\r
--\r
--  int inverttets = mparam.inverttets;\r
--  int invertsurf = mparam.inverttrigs;\r
--\r
--  ofstream outfile (filename.c_str());\r
--\r
--  outfile.precision(6);\r
--  outfile.setf (ios::fixed, ios::floatfield);\r
--  outfile.setf (ios::showpoint);\r
--\r
--  outfile << np << "\n";\r
--\r
--  for (i = 1; i <= np; i++)\r
--    {\r
--      const Point3d & p = mesh.Point(i);\r
--\r
--      outfile.width(10);\r
--      outfile << p.X() << " ";\r
--      outfile.width(9);\r
--      outfile << p.Y() << " ";\r
--      if (mesh.GetDimension() == 3)\r
--      {\r
--        outfile.width(9);\r
--        outfile << p.Z();\r
--        }\r
--      outfile << "\n";\r
--    }\r
--\r
--  if (mesh.GetDimension() == 3)\r
--    {\r
--      outfile << ne << "\n";\r
--      for (i = 1; i <= ne; i++)\r
--      {\r
--        Element el = mesh.VolumeElement(i);\r
--        if (inverttets)\r
--          el.Invert();\r
--        outfile.width(4);\r
--        outfile << el.GetIndex() << "  ";\r
--        for (j = 1; j <= el.GetNP(); j++)\r
--          {\r
--            outfile << " ";\r
--            outfile.width(8);\r
--            outfile << el.PNum(j);\r
--          }\r
--        outfile << "\n";\r
--      }\r
--    }\r
--\r
--  outfile << nse << "\n";\r
--  for (i = 1; i <= nse; i++)\r
--    {\r
--      Element2d el = mesh.SurfaceElement(i);\r
--      if (invertsurf)\r
--      el.Invert();\r
--      outfile.width(4);\r
--      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";\r
--      for (j = 1; j <= el.GetNP(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << el.PNum(j);\r
--      }\r
--      outfile << "\n";\r
--    }\r
--\r
--\r
--  if (mesh.GetDimension() == 2)\r
--    {\r
--      outfile << nseg << "\n";\r
--      for (i = 1; i <= nseg; i++)\r
--      {\r
--        const Segment & seg = mesh.LineSegment(i);\r
--        outfile.width(4);\r
--        outfile << seg.si << "    ";\r
--\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << seg[0];\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << seg[1];\r
--\r
--        outfile << "\n";\r
--      }\r
--    }\r
--}\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--void WriteSurfaceFormat (const Mesh & mesh,\r
--                       const string & filename)\r
--{\r
--  // surface mesh\r
--  int i, j;\r
--\r
--  cout << "Write Surface Mesh" << endl;\r
--\r
--  ofstream outfile (filename.c_str());\r
--\r
--  outfile << "surfacemesh" << endl;\r
--\r
--  outfile << mesh.GetNP() << endl;\r
--  for (i = 1; i <= mesh.GetNP(); i++)\r
--    {\r
--      for (j = 0; j < 3; j++)\r
--      {\r
--        outfile.width(10);\r
--        outfile << mesh.Point(i)(j) << " ";\r
--      }\r
--      outfile << endl;\r
--    }\r
--  outfile << mesh.GetNSE() << endl;\r
--  for (i = 1; i <= mesh.GetNSE(); i++)\r
--    {\r
--      for (j = 1; j <= 3; j++)\r
--      {\r
--        outfile.width(8);\r
--        outfile << mesh.SurfaceElement(i).PNum(j);\r
--      }\r
--      outfile << endl;\r
--    }\r
--}\r
--\r
--\r
--\r
--\r
--\r
--/*\r
-- *  save surface mesh as STL file\r
-- */\r
--\r
--void WriteSTLFormat (const Mesh & mesh,\r
--                   const string & filename)\r
--{\r
--  cout << "\nWrite STL Surface Mesh" << endl;\r
--\r
--  ostream *outfile;\r
--\r
--  if(filename.substr(filename.length()-3,3) == ".gz")\r
--        outfile = new ogzstream(filename.c_str());\r
--  else\r
--        outfile = new ofstream(filename.c_str());\r
--\r
--  int i;\r
--\r
--  outfile->precision(10);\r
--\r
--  *outfile << "solid" << endl;\r
--\r
--  for (i = 1; i <= mesh.GetNSE(); i++)\r
--    {\r
--      *outfile << "facet normal ";\r
--      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));\r
--      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));\r
--      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));\r
--\r
--      Vec3d normal = Cross(p2-p1,p3-p1);\r
--      if (normal.Length() != 0)\r
--      {\r
--        normal /= (normal.Length());\r
--      }\r
--\r
--      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";\r
--      *outfile << "outer loop\n";\r
--\r
--      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";\r
--      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";\r
--      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";\r
--\r
--      *outfile << "endloop\n";\r
--      *outfile << "endfacet\n";\r
--    }\r
--  *outfile << "endsolid" << endl;\r
--}\r
--\r
--\r
--\r
--\r
--\r
--/*\r
-- *  Philippose - 16 August 2010\r
-- *  Save surface mesh as STL file\r
-- *  with a separate solid definition\r
-- *  for each face\r
-- *  - This helps in splitting up the\r
-- *    STL into named boundary faces\r
-- *    when using a third-party mesher\r
-- */\r
--void WriteSTLExtFormat (const Mesh & mesh,\r
--                   const string & filename)\r
--{\r
--  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;\r
--\r
--  ostream *outfile;\r
--\r
--  if(filename.substr(filename.length()-3,3) == ".gz")\r
--        outfile = new ogzstream(filename.c_str());\r
--  else\r
--        outfile = new ofstream(filename.c_str());\r
--\r
--  outfile->precision(10);\r
--\r
--  int numBCs = 0;\r
--\r
--  Array<int> faceBCs;\r
--  TABLE<int> faceBCMapping;\r
--\r
--  faceBCs.SetSize(mesh.GetNFD());\r
--  faceBCMapping.SetSize(mesh.GetNFD());\r
--\r
--  faceBCs = -1;\r
--\r
--  // Collect the BC numbers used in the mesh\r
--  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)\r
--  {\r
--        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();\r
--\r
--        if(faceBCs.Pos(bcNum) < 0)\r
--        {\r
--        numBCs++;\r
--                faceBCs.Set(numBCs,bcNum);\r
--        faceBCMapping.Add1(numBCs,faceNr);        \r
--        }\r
--     else\r
--     {\r
--        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);\r
--     }\r
--  }\r
--\r
--  faceBCs.SetSize(numBCs);\r
--  faceBCMapping.ChangeSize(numBCs);\r
--\r
--  // Now actually write the data to file\r
--  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)\r
--  {\r
--      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";\r
--\r
--      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)\r
--      {\r
--          Array<SurfaceElementIndex> faceSei;\r
--          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);\r
--\r
--          for (int i = 0; i < faceSei.Size(); i++)\r
--          {\r
--                *outfile << "facet normal ";\r
--                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));\r
--                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));\r
--                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));\r
--\r
--                Vec3d normal = Cross(p2-p1,p3-p1);\r
--                if (normal.Length() != 0)\r
--                {\r
--                        normal /= (normal.Length());\r
--                }\r
--\r
--                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";\r
--                *outfile << "outer loop\n";\r
--\r
--                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";\r
--                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";\r
--                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";\r
--\r
--                *outfile << "endloop\n";\r
--                *outfile << "endfacet\n";\r
--          }\r
--      }\r
--      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";\r
--  }\r
--}\r
--\r
--\r
--\r
--\r
--/*\r
-- *\r
-- *  write surface mesh as VRML file\r
-- *\r
-- */\r
--\r
--void WriteVRMLFormat (const Mesh & mesh,\r
--                    bool faces,\r
--                    const string & filename)\r
--{\r
--\r
--  if (faces)\r
--\r
--    {\r
--      // Output in VRML, IndexedFaceSet is used\r
--      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>\r
--\r
--      int np = mesh.GetNP();\r
--      int nse = mesh.GetNSE();\r
--      int i, j;\r
--\r
--      ofstream outfile (filename.c_str());\r
--\r
--      outfile.precision(6);\r
--      outfile.setf (ios::fixed, ios::floatfield);\r
--      outfile.setf (ios::showpoint);\r
--\r
--      outfile << "#VRML V2.0 utf8 \n"\r
--               "Background {\n"\r
--               "    skyColor [1 1 1]\n"\r
--               "    groundColor [1 1 1]\n"\r
--               "}\n"\r
--               "Group{ children [\n"\r
--               "Shape{ \n"\r
--               "appearance Appearance { material Material { }} \n"\r
--                 "geometry IndexedFaceSet { \n"\r
--                 "coord Coordinate { point [ \n";\r
--\r
--\r
--      for (i = 1; i <= np; i++)\r
--        {\r
--          const Point3d & p = mesh.Point(i);\r
--          outfile.width(10);\r
--          outfile << p.X() << " ";\r
--          outfile << p.Y() << " ";\r
--          outfile << p.Z() << " \n";\r
--      }\r
--\r
--      outfile << "  ] } \n"\r
--                 "coordIndex [ \n";\r
--\r
--      for (i = 1; i <= nse; i++)\r
--      {\r
--        const Element2d & el = mesh.SurfaceElement(i);\r
--\r
--        for (j = 1; j <= 3; j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << el.PNum(j)-1;\r
--          }\r
--        outfile << " -1 \n";\r
--      }\r
--\r
--      outfile << "  ] \n";\r
--\r
--      //define number and RGB definitions of colors\r
--      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"\r
--                 "colorIndex [\n";\r
--\r
--      for (i = 1; i <= nse; i++)\r
--      {\r
--        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();\r
--          outfile << endl;\r
--      }\r
--\r
--      outfile << " ] \n"\r
--                 "colorPerVertex FALSE \n"\r
--                 "creaseAngle 0 \n"\r
--               "solid FALSE \n"\r
--                 "ccw FALSE \n"\r
--               "convex TRUE \n"\r
--                 "} } # end of Shape\n"\r
--               "] }\n";\r
--\r
--    } /* end of VRMLFACES */\r
--\r
--\r
--  else\r
--\r
--    {\r
--        // Output in VRML, IndexedLineSet is used\r
--      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>\r
--\r
--      int np = mesh.GetNP();\r
--      int nse = mesh.GetNSE();\r
--      int i, j;\r
--\r
--      ofstream outfile (filename.c_str());\r
--\r
--      outfile.precision(6);\r
--      outfile.setf (ios::fixed, ios::floatfield);\r
--      outfile.setf (ios::showpoint);\r
--\r
--      outfile << "#VRML V2.0 utf8 \n"\r
--               "Background {\n"\r
--               "    skyColor [1 1 1]\n"\r
--               "    groundColor [1 1 1]\n"\r
--               "}\n"\r
--               "Group{ children [\n"\r
--               "Shape{ \n"\r
--               "appearance Appearance { material Material { }} \n"\r
--                 "geometry IndexedLineSet { \n"\r
--                 "coord Coordinate { point [ \n";\r
--\r
--\r
--      for (i = 1; i <= np; i++)\r
--        {\r
--          const Point3d & p = mesh.Point(i);\r
--          outfile.width(10);\r
--          outfile << p.X() << " ";\r
--          outfile << p.Y() << " ";\r
--          outfile << p.Z() << " \n";\r
--      }\r
--\r
--      outfile << "  ] } \n"\r
--                 "coordIndex [ \n";\r
--\r
--      for (i = 1; i <= nse; i++)\r
--      {\r
--        const Element2d & el = mesh.SurfaceElement(i);\r
--\r
--        for (j = 1; j <= 3; j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << el.PNum(j)-1;\r
--          }\r
--        outfile.width(8);\r
--        outfile << el.PNum(1)-1;\r
--        outfile << " -1 \n";\r
--      }\r
--\r
--      outfile << "  ] \n";\r
--\r
--/* Uncomment if you want color mesh\r
--      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"\r
--                 "colorIndex [\n";\r
--\r
--      for (i = 1; i <= nse; i++)\r
--      {\r
--        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();\r
--          outfile << endl;\r
--      }\r
--\r
--      outfile << " ] \n"\r
--*/\r
--      outfile << "colorPerVertex FALSE \n"\r
--                 "} } #end of Shape\n"\r
--               "] } \n";\r
--\r
--    }\r
--\r
--}\r
--\r
--\r
--\r
--\r
--\r
--\r
--/*\r
-- * FEPP .. a finite element package developed at University Linz, Austria\r
-- */\r
--void WriteFEPPFormat (const Mesh & mesh,\r
--                    const CSGeometry & geom,\r
--                    const string & filename)\r
--{\r
--\r
--  ofstream outfile (filename.c_str());\r
--\r
--  if (mesh.GetDimension() == 3)\r
--\r
--    {\r
--\r
--      // output for FEPP\r
--\r
--      int np = mesh.GetNP();\r
--      int ne = mesh.GetNE();\r
--      int nse = mesh.GetNSE();\r
--      int ns = mesh.GetNFD();\r
--      int i, j;\r
--\r
--      outfile.precision(5);\r
--      outfile.setf (ios::fixed, ios::floatfield);\r
--      outfile.setf (ios::showpoint);\r
--\r
--      outfile << "volumemesh4" << endl;\r
--      outfile << nse << endl;\r
--      for (i = 1; i <= nse; i++)\r
--      {\r
--        const Element2d & el = mesh.SurfaceElement(i);\r
--\r
--        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;\r
--        outfile.width(4);\r
--        outfile << el.GetIndex() << " ";\r
--        outfile.width(4);\r
--        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";\r
--        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";\r
--        outfile.width(4);\r
--        outfile << el.GetNP() << "    ";\r
--        for (j = 1; j <= el.GetNP(); j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << el.PNum(j);\r
--          }\r
--        outfile << "\n";\r
--      }\r
--\r
--\r
--      outfile << ne << "\n";\r
--      for (i = 1; i <= ne; i++)\r
--      {\r
--        const Element & el = mesh.VolumeElement(i);\r
--        outfile.width(4);\r
--        outfile << el.GetIndex() << " ";\r
--        outfile.width(4);\r
--        outfile << el.GetNP() << " ";\r
--        for (j = 1; j <= el.GetNP(); j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << el.PNum(j);\r
--          }\r
--        outfile << "\n";\r
--      }\r
--\r
--      outfile << np << "\n";\r
--      for (i = 1; i <= np; i++)\r
--      {\r
--        const Point3d & p = mesh.Point(i);\r
--\r
--        outfile.width(10);\r
--        outfile << p.X() << " ";\r
--        outfile.width(9);\r
--        outfile << p.Y() << " ";\r
--        outfile.width(9);\r
--        outfile << p.Z() << "\n";\r
--      }\r
--\r
--      /*\r
--      if (typ == WRITE_FEPPML)\r
--      {\r
--        int nbn =  mesh.mlbetweennodes.Size();\r
--        outfile << nbn << "\n";\r
--        for (i = 1; i <= nbn; i++)\r
--          outfile << mesh.mlbetweennodes.Get(i).I1() << " "\r
--                  << mesh.mlbetweennodes.Get(i).I2() << "\n";\r
--\r
--\r
--        //      int ncon = mesh.connectedtonode.Size();\r
--        //      outfile << ncon << "\n";\r
--        //      for (i = 1; i <= ncon; i++)\r
--        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;\r
--      }\r
--      */\r
--\r
--\r
--      // write CSG surfaces\r
--      if (&geom && geom.GetNSurf() >= ns)\r
--      {\r
--        outfile << ns << endl;\r
--        for (i = 1; i <= ns; i++)\r
--          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);\r
--      }\r
--      else\r
--      outfile << "0" << endl;\r
--    }\r
--\r
--\r
--  else\r
--\r
--    { // 2D fepp format\r
--\r
--      ;\r
--      /*\r
--      extern SplineGeometry2d * geometry2d;\r
--      if (geometry2d)\r
--      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);\r
--      else\r
--      Save2DMesh (mesh, 0, outfile);\r
--      */\r
--    }\r
--}\r
--\r
--\r
--\r
--\r
--\r
--\r
--/*\r
-- *  Edge element mesh format\r
-- *  points, elements, edges\r
-- */\r
--\r
--void WriteEdgeElementFormat (const Mesh & mesh,\r
--                           const CSGeometry & geom,\r
--                           const string & filename)\r
--{\r
--  cout << "write edge element format" << endl;\r
--\r
--  const MeshTopology * top = &mesh.GetTopology();\r
--  int npoints = mesh.GetNP();\r
--  int nelements = mesh.GetNE();\r
--  int nsurfelem = mesh.GetNSE();\r
--  int nedges = top->GetNEdges();\r
--  int i, j;\r
--\r
--  int inverttets = mparam.inverttets;\r
--  int invertsurf = mparam.inverttrigs;\r
--  Array<int> edges;\r
--\r
--  ofstream outfile (filename.c_str());\r
--\r
--  outfile.precision(6);\r
--  outfile.setf (ios::fixed, ios::floatfield);\r
--  outfile.setf (ios::showpoint);\r
--\r
--\r
--  // vertices with coordinates\r
--  outfile << npoints << "\n";\r
--  for (i = 1; i <= npoints; i++)\r
--    {\r
--      const Point3d & p = mesh.Point(i);\r
--\r
--      outfile.width(10);\r
--      outfile << p.X() << " ";\r
--      outfile.width(9);\r
--      outfile << p.Y() << " ";\r
--      outfile.width(9);\r
--      outfile << p.Z() << "\n";\r
--    }\r
--\r
--  // element - edge - list\r
--  outfile << nelements << " " << nedges << "\n";\r
--  for (i = 1; i <= nelements; i++)\r
--    {\r
--      Element el = mesh.VolumeElement(i);\r
--      if (inverttets)\r
--              el.Invert();\r
--      outfile.width(4);\r
--      outfile << el.GetIndex() << "  ";\r
--      outfile.width(8);\r
--      outfile << el.GetNP();\r
--      for (j = 1; j <= el.GetNP(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << el.PNum(j);\r
--      }\r
--\r
--      top->GetElementEdges(i,edges);\r
--      outfile << endl << "      ";\r
--      outfile.width(8);\r
--      outfile << edges.Size();\r
--      for (j=1; j <= edges.Size(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << edges[j-1];\r
--      }\r
--      outfile << "\n";\r
--\r
--      // orientation:\r
--      top->GetElementEdgeOrientations(i,edges);\r
--      outfile << "              ";\r
--      for (j=1; j <= edges.Size(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << edges[j-1];\r
--      }\r
--      outfile << "\n";\r
--    }\r
--\r
--  // surface element - edge - list (with boundary conditions)\r
--  outfile << nsurfelem << "\n";\r
--  for (i = 1; i <= nsurfelem; i++)\r
--    {\r
--      Element2d el = mesh.SurfaceElement(i);\r
--      if (invertsurf)\r
--      el.Invert();\r
--      outfile.width(4);\r
--      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";\r
--      outfile.width(8);\r
--      outfile << el.GetNP();\r
--      for (j = 1; j <= el.GetNP(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << el.PNum(j);\r
--      }\r
--\r
--      top->GetSurfaceElementEdges(i,edges);\r
--      outfile << endl << "      ";\r
--      outfile.width(8);\r
--      outfile << edges.Size();\r
--      for (j=1; j <= edges.Size(); j++)\r
--      {\r
--        outfile << " ";\r
--        outfile.width(8);\r
--        outfile << edges[j-1];\r
--      }\r
--      outfile << "\n";\r
--    }\r
--\r
--\r
--  int v1, v2;\r
--  // edge - vertex - list\r
--  outfile << nedges << "\n";\r
--  for (i=1; i <= nedges; i++)\r
--    {\r
--      top->GetEdgeVertices(i,v1,v2);\r
--      outfile.width(4);\r
--      outfile << v1;\r
--      outfile << " ";\r
--      outfile.width(8);\r
--      outfile << v2 << endl;\r
--    }\r
--}\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--#ifdef OLDSTYLE_WRITE\r
--\r
--\r
--void WriteFile (int typ,\r
--              const Mesh & mesh,\r
--              const CSGeometry & geom,\r
--              const char * filename,\r
--              const char * geomfile,\r
--              double h)\r
--{\r
--\r
--\r
--  int inverttets = mparam.inverttets;\r
--  int invertsurf = mparam.inverttrigs;\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--  if (typ == WRITE_EDGEELEMENT)\r
--    {\r
--      // write edge element file\r
--      // Peter Harscher, ETHZ\r
--\r
--      cout << "Write Edge-Element Format" << endl;\r
--\r
--      ofstream outfile (filename);\r
--\r
--      int i, j;\r
--      int ned;\r
--\r
--      // hash table representing edges;\r
--      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());\r
--\r
--      // list of edges\r
--      Array<INDEX_2> edgelist;\r
--\r
--      // edge (point) on boundary ?\r
--      BitArray bedge, bpoint(mesh.GetNP());\r
--\r
--      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },\r
--                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };\r
--\r
--      // fill hashtable   (point1, point2)  ---->  edgenr\r
--      for (i = 1; i <= mesh.GetNE(); i++)\r
--      {\r
--        const Element & el = mesh.VolumeElement (i);\r
--        INDEX_2 edge;\r
--        for (j = 1; j <= 6; j++)\r
--          {\r
--            edge.I1() = el.PNum (eledges[j-1][0]);\r
--            edge.I2() = el.PNum (eledges[j-1][1]);\r
--            edge.Sort();\r
--\r
--            if (!edgeht.Used (edge))\r
--              {\r
--                edgelist.Append (edge);\r
--                edgeht.Set (edge, edgelist.Size());\r
--              }\r
--          }\r
--      }\r
--\r
--\r
--      // set bedges, bpoints\r
--      bedge.SetSize (edgelist.Size());\r
--      bedge.Clear();\r
--      bpoint.Clear();\r
--\r
--      for (i = 1; i <= mesh.GetNSE(); i++)\r
--      {\r
--        const Element2d & sel = mesh.SurfaceElement(i);\r
--        for (j = 1; j <= 3; j++)\r
--          {\r
--            bpoint.Set (sel.PNum(j));\r
--\r
--            INDEX_2 edge;\r
--            edge.I1() = sel.PNum(j);\r
--            edge.I2() = sel.PNum(j%3+1);\r
--            edge.Sort();\r
--\r
--            bedge.Set (edgeht.Get (edge));\r
--          }\r
--      }\r
--\r
--\r
--\r
--      outfile << mesh.GetNE() << endl;\r
--      // write element ---> point\r
--      for (i = 1; i <= mesh.GetNE(); i++)\r
--      {\r
--        const Element & el = mesh.VolumeElement(i);\r
--\r
--        outfile.width(8);\r
--        outfile << i;\r
--        for (j = 1; j <= 4; j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << el.PNum(j);\r
--          }\r
--        outfile << endl;\r
--      }\r
--\r
--      // write element ---> edge\r
--      for (i = 1; i <= mesh.GetNE(); i++)\r
--      {\r
--        const Element & el = mesh.VolumeElement (i);\r
--        INDEX_2 edge;\r
--        for (j = 1; j <= 6; j++)\r
--          {\r
--            edge.I1() = el.PNum (eledges[j-1][0]);\r
--            edge.I2() = el.PNum (eledges[j-1][1]);\r
--            edge.Sort();\r
--\r
--            outfile.width(8);\r
--            outfile << edgeht.Get (edge);\r
--          }\r
--        outfile << endl;\r
--      }\r
--\r
--      // write points\r
--      outfile << mesh.GetNP() << endl;\r
--      outfile.precision (6);\r
--      for (i = 1; i <= mesh.GetNP(); i++)\r
--      {\r
--        const Point3d & p = mesh.Point(i);\r
--\r
--        for (j = 1; j <= 3; j++)\r
--          {\r
--            outfile.width(8);\r
--            outfile << p.X(j);\r
--          }\r
--        outfile << "       "\r
--                << (bpoint.Test(i) ? "1" : 0) << endl;\r
--      }\r
--\r
--      // write edges\r
--      outfile << edgelist.Size() << endl;\r
--      for (i = 1; i <= edgelist.Size(); i++)\r
--      {\r
--        outfile.width(8);\r
--        outfile << edgelist.Get(i).I1();\r
--        outfile.width(8);\r
--        outfile << edgelist.Get(i).I2();\r
--        outfile << "       "\r
--                << (bedge.Test(i) ? "1" : "0") << endl;\r
--      }\r
--    }\r
--\r
--\r
--\r
--\r
--}\r
--#endif\r
--}\r
--\r
-+//
-+//  Write user dependent output file
-+//
-+
-+#include <mystdlib.h>
-+
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <geometry2d.hpp>
-+#include <meshing.hpp>
-+
-+namespace netgen
-+{
-+#include "writeuser.hpp"
-+
-+
-+  void RegisterUserFormats (Array<const char*> & names,
-+                          Array<const char*> & extensions)
-+                          
-+{
-+  const char *types[] =
-+    {
-+      "Neutral Format",  ".mesh",
-+      "Surface Mesh Format", ".mesh" ,
-+      "DIFFPACK Format", ".mesh",
-+      "TecPlot Format", ".mesh",
-+      "Tochnog Format", ".mesh",
-+      "Abaqus Format", ".mesh",
-+      "Fluent Format", ".mesh",
-+      "Permas Format", ".mesh",
-+      "FEAP Format", ".mesh",
-+      "Elmer Format", "*",
-+      "STL Format", ".stl",
-+      "STL Extended Format", ".stl",
-+      "VRML Format", ".*",
-+      "Gmsh Format", ".gmsh",
-+      "Gmsh2 Format", ".gmsh2",
-+      "OpenFOAM 1.5+ Format", "*",
-+        "OpenFOAM 1.5+ Compressed", "*",
-+      "JCMwave Format", ".jcm",
-+      "TET Format", ".tet",
-+      //      { "Chemnitz Format" },
-+      0
-+    };
-+  
-+  for (int i = 0; types[2*i]; i++)
-+    {
-+      names.Append (types[2*i]);
-+      extensions.Append (types[2*i+1]);
-+    }
-+}
-+  
-+
-+
-+bool WriteUserFormat (const string & format,
-+                    const Mesh & mesh,
-+                    const NetgenGeometry & hgeom,
-+                    const string & filename)
-+{
-+  const CSGeometry & geom = *dynamic_cast<const CSGeometry*> (&hgeom);
-+
-+  PrintMessage (1, "Export mesh to file ", filename,
-+              ", format is ", format);
-+
-+  if (format == "Neutral Format")
-+    WriteNeutralFormat (mesh, geom, filename);
-+
-+  else if (format == "Surface Mesh Format")
-+    WriteSurfaceFormat (mesh, filename);
-+
-+  else if (format == "DIFFPACK Format")
-+    WriteDiffPackFormat (mesh, geom, filename);
-+
-+  else if (format == "Tochnog Format")
-+    WriteTochnogFormat (mesh, filename);
-+
-+  else if (format == "TecPlot Format")
-+    cerr << "ERROR: TecPlot format currently out of order" << endl;
-+      // WriteTecPlotFormat (mesh, geom, filename);
-+
-+  else if (format == "Abaqus Format")
-+    WriteAbaqusFormat (mesh, filename);
-+
-+  else if (format == "Fluent Format")
-+    WriteFluentFormat (mesh, filename);
-+
-+  else if (format == "Permas Format")
-+    WritePermasFormat (mesh, filename);
-+
-+  else if (format == "FEAP Format")
-+    WriteFEAPFormat (mesh, filename);
-+
-+  else if (format == "Elmer Format")
-+    WriteElmerFormat (mesh, filename);
-+
-+  else if (format == "STL Format")
-+    WriteSTLFormat (mesh, filename);
-+
-+  // Philippose - 16 August 2010
-+  // Added additional STL Export in which
-+  // each face of the geometry is treated
-+  // as a separate "solid" entity
-+  else if (format == "STL Extended Format")
-+      WriteSTLExtFormat (mesh, filename);
-+
-+  else if (format == "VRML Format")
-+    WriteVRMLFormat (mesh, 1, filename);
-+
-+  else if (format == "Fepp Format")
-+    WriteFEPPFormat (mesh, geom, filename);
-+
-+  else if (format ==  "EdgeElement Format")
-+    WriteEdgeElementFormat (mesh, geom, filename);
-+
-+  else if (format == "Chemnitz Format")
-+    WriteUserChemnitz (mesh, filename);
-+
-+  else if (format == "Gmsh Format")
-+    WriteGmshFormat (mesh, geom, filename);
-+
-+  // Philippose - 29/01/2009
-+  // Added Gmsh v2.xx Mesh export capability
-+  else if (format == "Gmsh2 Format")
-+    WriteGmsh2Format (mesh, geom, filename);
-+
-+  // Philippose - 25/10/2009
-+  // Added OpenFOAM 1.5+ Mesh export capability
-+  else if (format == "OpenFOAM 1.5+ Format")
-+    WriteOpenFOAM15xFormat (mesh, filename, false);
-+
-+  else if (format == "OpenFOAM 1.5+ Compressed")
-+    WriteOpenFOAM15xFormat (mesh, filename, true);
-+
-+  else if (format == "JCMwave Format")
-+    WriteJCMFormat (mesh, geom, filename);
-+
-+#ifdef OLIVER
-+  else if (format == "TET Format")
-+    WriteTETFormat( mesh, filename);//, "High Frequency" );
-+#endif
-+
-+  else
-+    {
-+      return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+
-+
-+
-+/*
-+ *  Neutral mesh format
-+ *  points, elements, surface elements
-+ */
-+
-+void WriteNeutralFormat (const Mesh & mesh,
-+                       const CSGeometry & geom,
-+                       const string & filename)
-+{
-+  cout << "write neutral, new" << endl;
-+  int np = mesh.GetNP();
-+  int ne = mesh.GetNE();
-+  int nse = mesh.GetNSE();
-+  int nseg = mesh.GetNSeg();
-+  int i, j;
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile.precision(6);
-+  outfile.setf (ios::fixed, ios::floatfield);
-+  outfile.setf (ios::showpoint);
-+
-+  outfile << np << "\n";
-+
-+  for (i = 1; i <= np; i++)
-+    {
-+      const Point3d & p = mesh.Point(i);
-+
-+      outfile.width(10);
-+      outfile << p.X() << " ";
-+      outfile.width(9);
-+      outfile << p.Y() << " ";
-+      if (mesh.GetDimension() == 3)
-+      {
-+        outfile.width(9);
-+        outfile << p.Z();
-+        }
-+      outfile << "\n";
-+    }
-+
-+  if (mesh.GetDimension() == 3)
-+    {
-+      outfile << ne << "\n";
-+      for (i = 1; i <= ne; i++)
-+      {
-+        Element el = mesh.VolumeElement(i);
-+        if (inverttets)
-+          el.Invert();
-+        outfile.width(4);
-+        outfile << el.GetIndex() << "  ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile << " ";
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+    }
-+
-+  outfile << nse << "\n";
-+  for (i = 1; i <= nse; i++)
-+    {
-+      Element2d el = mesh.SurfaceElement(i);
-+      if (invertsurf)
-+      el.Invert();
-+      outfile.width(4);
-+      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "    ";
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+      outfile << "\n";
-+    }
-+
-+
-+  if (mesh.GetDimension() == 2)
-+    {
-+      outfile << nseg << "\n";
-+      for (i = 1; i <= nseg; i++)
-+      {
-+        const Segment & seg = mesh.LineSegment(i);
-+        outfile.width(4);
-+        outfile << seg.si << "    ";
-+
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << seg[0];
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << seg[1];
-+
-+        outfile << "\n";
-+      }
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+void WriteSurfaceFormat (const Mesh & mesh,
-+                       const string & filename)
-+{
-+  // surface mesh
-+  int i, j;
-+
-+  cout << "Write Surface Mesh" << endl;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile << "surfacemesh" << endl;
-+
-+  outfile << mesh.GetNP() << endl;
-+  for (i = 1; i <= mesh.GetNP(); i++)
-+    {
-+      for (j = 0; j < 3; j++)
-+      {
-+        outfile.width(10);
-+        outfile << mesh.Point(i)(j) << " ";
-+      }
-+      outfile << endl;
-+    }
-+  outfile << mesh.GetNSE() << endl;
-+  for (i = 1; i <= mesh.GetNSE(); i++)
-+    {
-+      for (j = 1; j <= 3; j++)
-+      {
-+        outfile.width(8);
-+        outfile << mesh.SurfaceElement(i).PNum(j);
-+      }
-+      outfile << endl;
-+    }
-+}
-+
-+
-+
-+
-+
-+/*
-+ *  save surface mesh as STL file
-+ */
-+
-+void WriteSTLFormat (const Mesh & mesh,
-+                   const string & filename)
-+{
-+  cout << "\nWrite STL Surface Mesh" << endl;
-+
-+  ostream *outfile;
-+
-+  if(filename.substr(filename.length()-3,3) == ".gz")
-+        outfile = new ogzstream(filename.c_str());
-+  else
-+        outfile = new ofstream(filename.c_str());
-+
-+  int i;
-+
-+  outfile->precision(10);
-+
-+  *outfile << "solid" << endl;
-+
-+  for (i = 1; i <= mesh.GetNSE(); i++)
-+    {
-+      *outfile << "facet normal ";
-+      const Point3d& p1 = mesh.Point(mesh.SurfaceElement(i).PNum(1));
-+      const Point3d& p2 = mesh.Point(mesh.SurfaceElement(i).PNum(2));
-+      const Point3d& p3 = mesh.Point(mesh.SurfaceElement(i).PNum(3));
-+
-+      Vec3d normal = Cross(p2-p1,p3-p1);
-+      if (normal.Length() != 0)
-+      {
-+        normal /= (normal.Length());
-+      }
-+
-+      *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
-+      *outfile << "outer loop\n";
-+
-+      *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
-+      *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
-+      *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
-+
-+      *outfile << "endloop\n";
-+      *outfile << "endfacet\n";
-+    }
-+  *outfile << "endsolid" << endl;
-+}
-+
-+
-+
-+
-+
-+/*
-+ *  Philippose - 16 August 2010
-+ *  Save surface mesh as STL file
-+ *  with a separate solid definition
-+ *  for each face
-+ *  - This helps in splitting up the
-+ *    STL into named boundary faces
-+ *    when using a third-party mesher
-+ */
-+void WriteSTLExtFormat (const Mesh & mesh,
-+                   const string & filename)
-+{
-+  cout << "\nWrite STL Surface Mesh (with separated boundary faces)" << endl;
-+
-+  ostream *outfile;
-+
-+  if(filename.substr(filename.length()-3,3) == ".gz")
-+        outfile = new ogzstream(filename.c_str());
-+  else
-+        outfile = new ofstream(filename.c_str());
-+
-+  outfile->precision(10);
-+
-+  int numBCs = 0;
-+
-+  Array<int> faceBCs;
-+  TABLE<int> faceBCMapping;
-+
-+  faceBCs.SetSize(mesh.GetNFD());
-+  faceBCMapping.SetSize(mesh.GetNFD());
-+
-+  faceBCs = -1;
-+
-+  // Collect the BC numbers used in the mesh
-+  for(int faceNr = 1; faceNr <= mesh.GetNFD(); faceNr++)
-+  {
-+        int bcNum = mesh.GetFaceDescriptor(faceNr).BCProperty();
-+
-+        if(faceBCs.Pos(bcNum) < 0)
-+        {
-+        numBCs++;
-+                faceBCs.Set(numBCs,bcNum);
-+        faceBCMapping.Add1(numBCs,faceNr);        
-+        }
-+     else
-+     {
-+        faceBCMapping.Add1(faceBCs.Pos(bcNum)+1,faceNr);
-+     }
-+  }
-+
-+  faceBCs.SetSize(numBCs);
-+  faceBCMapping.ChangeSize(numBCs);
-+
-+  // Now actually write the data to file
-+  for(int bcInd = 1; bcInd <= faceBCs.Size(); bcInd++)
-+  {
-+      *outfile << "solid Boundary_" << faceBCs.Elem(bcInd) << "\n";
-+
-+      for(int faceNr = 1;faceNr <= faceBCMapping.EntrySize(bcInd); faceNr++)
-+      {
-+          Array<SurfaceElementIndex> faceSei;
-+          mesh.GetSurfaceElementsOfFace(faceBCMapping.Get(bcInd,faceNr),faceSei);
-+
-+          for (int i = 0; i < faceSei.Size(); i++)
-+          {
-+                *outfile << "facet normal ";
-+                const Point3d& p1 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(1));
-+                const Point3d& p2 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(2));
-+                const Point3d& p3 = mesh.Point(mesh.SurfaceElement(faceSei[i]).PNum(3));
-+
-+                Vec3d normal = Cross(p2-p1,p3-p1);
-+                if (normal.Length() != 0)
-+                {
-+                        normal /= (normal.Length());
-+                }
-+
-+                *outfile << normal.X() << " " << normal.Y() << " " << normal.Z() << "\n";
-+                *outfile << "outer loop\n";
-+
-+                *outfile << "vertex " << p1.X() << " " << p1.Y() << " " << p1.Z() << "\n";
-+                *outfile << "vertex " << p2.X() << " " << p2.Y() << " " << p2.Z() << "\n";
-+                *outfile << "vertex " << p3.X() << " " << p3.Y() << " " << p3.Z() << "\n";
-+
-+                *outfile << "endloop\n";
-+                *outfile << "endfacet\n";
-+          }
-+      }
-+      *outfile << "endsolid Boundary_" << faceBCs.Elem(bcInd) << "\n";
-+  }
-+}
-+
-+
-+
-+
-+/*
-+ *
-+ *  write surface mesh as VRML file
-+ *
-+ */
-+
-+void WriteVRMLFormat (const Mesh & mesh,
-+                    bool faces,
-+                    const string & filename)
-+{
-+
-+  if (faces)
-+
-+    {
-+      // Output in VRML, IndexedFaceSet is used
-+      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int i, j;
-+
-+      ofstream outfile (filename.c_str());
-+
-+      outfile.precision(6);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "#VRML V2.0 utf8 \n"
-+               "Background {\n"
-+               "    skyColor [1 1 1]\n"
-+               "    groundColor [1 1 1]\n"
-+               "}\n"
-+               "Group{ children [\n"
-+               "Shape{ \n"
-+               "appearance Appearance { material Material { }} \n"
-+                 "geometry IndexedFaceSet { \n"
-+                 "coord Coordinate { point [ \n";
-+
-+
-+      for (i = 1; i <= np; i++)
-+        {
-+          const Point3d & p = mesh.Point(i);
-+          outfile.width(10);
-+          outfile << p.X() << " ";
-+          outfile << p.Y() << " ";
-+          outfile << p.Z() << " \n";
-+      }
-+
-+      outfile << "  ] } \n"
-+                 "coordIndex [ \n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j)-1;
-+          }
-+        outfile << " -1 \n";
-+      }
-+
-+      outfile << "  ] \n";
-+
-+      //define number and RGB definitions of colors
-+      outfile << "color Color { color [1 0 0, 0 1 0, 0 0 1, 1 1 0]} \n"
-+                 "colorIndex [\n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
-+          outfile << endl;
-+      }
-+
-+      outfile << " ] \n"
-+                 "colorPerVertex FALSE \n"
-+                 "creaseAngle 0 \n"
-+               "solid FALSE \n"
-+                 "ccw FALSE \n"
-+               "convex TRUE \n"
-+                 "} } # end of Shape\n"
-+               "] }\n";
-+
-+    } /* end of VRMLFACES */
-+
-+
-+  else
-+
-+    {
-+        // Output in VRML, IndexedLineSet is used
-+      // Bartosz Sawicki <sawickib@ee.pw.edu.pl>
-+
-+      int np = mesh.GetNP();
-+      int nse = mesh.GetNSE();
-+      int i, j;
-+
-+      ofstream outfile (filename.c_str());
-+
-+      outfile.precision(6);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "#VRML V2.0 utf8 \n"
-+               "Background {\n"
-+               "    skyColor [1 1 1]\n"
-+               "    groundColor [1 1 1]\n"
-+               "}\n"
-+               "Group{ children [\n"
-+               "Shape{ \n"
-+               "appearance Appearance { material Material { }} \n"
-+                 "geometry IndexedLineSet { \n"
-+                 "coord Coordinate { point [ \n";
-+
-+
-+      for (i = 1; i <= np; i++)
-+        {
-+          const Point3d & p = mesh.Point(i);
-+          outfile.width(10);
-+          outfile << p.X() << " ";
-+          outfile << p.Y() << " ";
-+          outfile << p.Z() << " \n";
-+      }
-+
-+      outfile << "  ] } \n"
-+                 "coordIndex [ \n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j)-1;
-+          }
-+        outfile.width(8);
-+        outfile << el.PNum(1)-1;
-+        outfile << " -1 \n";
-+      }
-+
-+      outfile << "  ] \n";
-+
-+/* Uncomment if you want color mesh
-+      outfile << "color Color { color [1 1 1, 0 1 0, 0 0 1, 1 1 0]} \n"
-+                 "colorIndex [\n";
-+
-+      for (i = 1; i <= nse; i++)
-+      {
-+        outfile << mesh.GetFaceDescriptor(mesh.SurfaceElement(i).GetIndex ()).BCProperty();
-+          outfile << endl;
-+      }
-+
-+      outfile << " ] \n"
-+*/
-+      outfile << "colorPerVertex FALSE \n"
-+                 "} } #end of Shape\n"
-+               "] } \n";
-+
-+    }
-+
-+}
-+
-+
-+
-+
-+
-+
-+/*
-+ * FEPP .. a finite element package developed at University Linz, Austria
-+ */
-+void WriteFEPPFormat (const Mesh & mesh,
-+                    const CSGeometry & geom,
-+                    const string & filename)
-+{
-+
-+  ofstream outfile (filename.c_str());
-+
-+  if (mesh.GetDimension() == 3)
-+
-+    {
-+
-+      // output for FEPP
-+
-+      int np = mesh.GetNP();
-+      int ne = mesh.GetNE();
-+      int nse = mesh.GetNSE();
-+      int ns = mesh.GetNFD();
-+      int i, j;
-+
-+      outfile.precision(5);
-+      outfile.setf (ios::fixed, ios::floatfield);
-+      outfile.setf (ios::showpoint);
-+
-+      outfile << "volumemesh4" << endl;
-+      outfile << nse << endl;
-+      for (i = 1; i <= nse; i++)
-+      {
-+        const Element2d & el = mesh.SurfaceElement(i);
-+
-+        //      int facenr = mesh.facedecoding.Get(el.GetIndex()).surfnr;
-+        outfile.width(4);
-+        outfile << el.GetIndex() << " ";
-+        outfile.width(4);
-+        //      outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
-+        outfile << mesh.GetFaceDescriptor(el.GetIndex()).BCProperty() << " ";
-+        outfile.width(4);
-+        outfile << el.GetNP() << "    ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+
-+
-+      outfile << ne << "\n";
-+      for (i = 1; i <= ne; i++)
-+      {
-+        const Element & el = mesh.VolumeElement(i);
-+        outfile.width(4);
-+        outfile << el.GetIndex() << " ";
-+        outfile.width(4);
-+        outfile << el.GetNP() << " ";
-+        for (j = 1; j <= el.GetNP(); j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << "\n";
-+      }
-+
-+      outfile << np << "\n";
-+      for (i = 1; i <= np; i++)
-+      {
-+        const Point3d & p = mesh.Point(i);
-+
-+        outfile.width(10);
-+        outfile << p.X() << " ";
-+        outfile.width(9);
-+        outfile << p.Y() << " ";
-+        outfile.width(9);
-+        outfile << p.Z() << "\n";
-+      }
-+
-+      /*
-+      if (typ == WRITE_FEPPML)
-+      {
-+        int nbn =  mesh.mlbetweennodes.Size();
-+        outfile << nbn << "\n";
-+        for (i = 1; i <= nbn; i++)
-+          outfile << mesh.mlbetweennodes.Get(i).I1() << " "
-+                  << mesh.mlbetweennodes.Get(i).I2() << "\n";
-+
-+
-+        //      int ncon = mesh.connectedtonode.Size();
-+        //      outfile << ncon << "\n";
-+        //      for (i = 1; i <= ncon; i++)
-+        //        outfile << i << " " << mesh.connectedtonode.Get(i) << endl;
-+      }
-+      */
-+
-+
-+      // write CSG surfaces
-+      if (&geom && geom.GetNSurf() >= ns)
-+      {
-+        outfile << ns << endl;
-+        for (i = 1; i <= ns; i++)
-+          geom.GetSurface(mesh.GetFaceDescriptor(i).SurfNr())->Print(outfile);
-+      }
-+      else
-+      outfile << "0" << endl;
-+    }
-+
-+
-+  else
-+
-+    { // 2D fepp format
-+
-+      ;
-+      /*
-+      extern SplineGeometry2d * geometry2d;
-+      if (geometry2d)
-+      Save2DMesh (mesh, &geometry2d->GetSplines(), outfile);
-+      else
-+      Save2DMesh (mesh, 0, outfile);
-+      */
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+/*
-+ *  Edge element mesh format
-+ *  points, elements, edges
-+ */
-+
-+void WriteEdgeElementFormat (const Mesh & mesh,
-+                           const CSGeometry & geom,
-+                           const string & filename)
-+{
-+  cout << "write edge element format" << endl;
-+
-+  const MeshTopology * top = &mesh.GetTopology();
-+  int npoints = mesh.GetNP();
-+  int nelements = mesh.GetNE();
-+  int nsurfelem = mesh.GetNSE();
-+  int nedges = top->GetNEdges();
-+  int i, j;
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+  Array<int> edges;
-+
-+  ofstream outfile (filename.c_str());
-+
-+  outfile.precision(6);
-+  outfile.setf (ios::fixed, ios::floatfield);
-+  outfile.setf (ios::showpoint);
-+
-+
-+  // vertices with coordinates
-+  outfile << npoints << "\n";
-+  for (i = 1; i <= npoints; i++)
-+    {
-+      const Point3d & p = mesh.Point(i);
-+
-+      outfile.width(10);
-+      outfile << p.X() << " ";
-+      outfile.width(9);
-+      outfile << p.Y() << " ";
-+      outfile.width(9);
-+      outfile << p.Z() << "\n";
-+    }
-+
-+  // element - edge - list
-+  outfile << nelements << " " << nedges << "\n";
-+  for (i = 1; i <= nelements; i++)
-+    {
-+      Element el = mesh.VolumeElement(i);
-+      if (inverttets)
-+              el.Invert();
-+      outfile.width(4);
-+      outfile << el.GetIndex() << "  ";
-+      outfile.width(8);
-+      outfile << el.GetNP();
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+
-+      top->GetElementEdges(i,edges);
-+      outfile << endl << "      ";
-+      outfile.width(8);
-+      outfile << edges.Size();
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+
-+      // orientation:
-+      top->GetElementEdgeOrientations(i,edges);
-+      outfile << "              ";
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+    }
-+
-+  // surface element - edge - list (with boundary conditions)
-+  outfile << nsurfelem << "\n";
-+  for (i = 1; i <= nsurfelem; i++)
-+    {
-+      Element2d el = mesh.SurfaceElement(i);
-+      if (invertsurf)
-+      el.Invert();
-+      outfile.width(4);
-+      outfile << mesh.GetFaceDescriptor (el.GetIndex()).BCProperty() << "  ";
-+      outfile.width(8);
-+      outfile << el.GetNP();
-+      for (j = 1; j <= el.GetNP(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << el.PNum(j);
-+      }
-+
-+      top->GetSurfaceElementEdges(i,edges);
-+      outfile << endl << "      ";
-+      outfile.width(8);
-+      outfile << edges.Size();
-+      for (j=1; j <= edges.Size(); j++)
-+      {
-+        outfile << " ";
-+        outfile.width(8);
-+        outfile << edges[j-1];
-+      }
-+      outfile << "\n";
-+    }
-+
-+
-+  int v1, v2;
-+  // edge - vertex - list
-+  outfile << nedges << "\n";
-+  for (i=1; i <= nedges; i++)
-+    {
-+      top->GetEdgeVertices(i,v1,v2);
-+      outfile.width(4);
-+      outfile << v1;
-+      outfile << " ";
-+      outfile.width(8);
-+      outfile << v2 << endl;
-+    }
-+}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+#ifdef OLDSTYLE_WRITE
-+
-+
-+void WriteFile (int typ,
-+              const Mesh & mesh,
-+              const CSGeometry & geom,
-+              const char * filename,
-+              const char * geomfile,
-+              double h)
-+{
-+
-+
-+  int inverttets = mparam.inverttets;
-+  int invertsurf = mparam.inverttrigs;
-+
-+
-+
-+
-+
-+
-+
-+
-+  if (typ == WRITE_EDGEELEMENT)
-+    {
-+      // write edge element file
-+      // Peter Harscher, ETHZ
-+
-+      cout << "Write Edge-Element Format" << endl;
-+
-+      ofstream outfile (filename);
-+
-+      int i, j;
-+      int ned;
-+
-+      // hash table representing edges;
-+      INDEX_2_HASHTABLE<int> edgeht(mesh.GetNP());
-+
-+      // list of edges
-+      Array<INDEX_2> edgelist;
-+
-+      // edge (point) on boundary ?
-+      BitArray bedge, bpoint(mesh.GetNP());
-+
-+      static int eledges[6][2] = { { 1, 2 } , { 1, 3 } , { 1, 4 },
-+                                 { 2, 3 } , { 2, 4 } , { 3, 4 } };
-+
-+      // fill hashtable   (point1, point2)  ---->  edgenr
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement (i);
-+        INDEX_2 edge;
-+        for (j = 1; j <= 6; j++)
-+          {
-+            edge.I1() = el.PNum (eledges[j-1][0]);
-+            edge.I2() = el.PNum (eledges[j-1][1]);
-+            edge.Sort();
-+
-+            if (!edgeht.Used (edge))
-+              {
-+                edgelist.Append (edge);
-+                edgeht.Set (edge, edgelist.Size());
-+              }
-+          }
-+      }
-+
-+
-+      // set bedges, bpoints
-+      bedge.SetSize (edgelist.Size());
-+      bedge.Clear();
-+      bpoint.Clear();
-+
-+      for (i = 1; i <= mesh.GetNSE(); i++)
-+      {
-+        const Element2d & sel = mesh.SurfaceElement(i);
-+        for (j = 1; j <= 3; j++)
-+          {
-+            bpoint.Set (sel.PNum(j));
-+
-+            INDEX_2 edge;
-+            edge.I1() = sel.PNum(j);
-+            edge.I2() = sel.PNum(j%3+1);
-+            edge.Sort();
-+
-+            bedge.Set (edgeht.Get (edge));
-+          }
-+      }
-+
-+
-+
-+      outfile << mesh.GetNE() << endl;
-+      // write element ---> point
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement(i);
-+
-+        outfile.width(8);
-+        outfile << i;
-+        for (j = 1; j <= 4; j++)
-+          {
-+            outfile.width(8);
-+            outfile << el.PNum(j);
-+          }
-+        outfile << endl;
-+      }
-+
-+      // write element ---> edge
-+      for (i = 1; i <= mesh.GetNE(); i++)
-+      {
-+        const Element & el = mesh.VolumeElement (i);
-+        INDEX_2 edge;
-+        for (j = 1; j <= 6; j++)
-+          {
-+            edge.I1() = el.PNum (eledges[j-1][0]);
-+            edge.I2() = el.PNum (eledges[j-1][1]);
-+            edge.Sort();
-+
-+            outfile.width(8);
-+            outfile << edgeht.Get (edge);
-+          }
-+        outfile << endl;
-+      }
-+
-+      // write points
-+      outfile << mesh.GetNP() << endl;
-+      outfile.precision (6);
-+      for (i = 1; i <= mesh.GetNP(); i++)
-+      {
-+        const Point3d & p = mesh.Point(i);
-+
-+        for (j = 1; j <= 3; j++)
-+          {
-+            outfile.width(8);
-+            outfile << p.X(j);
-+          }
-+        outfile << "       "
-+                << (bpoint.Test(i) ? "1" : 0) << endl;
-+      }
-+
-+      // write edges
-+      outfile << edgelist.Size() << endl;
-+      for (i = 1; i <= edgelist.Size(); i++)
-+      {
-+        outfile.width(8);
-+        outfile << edgelist.Get(i).I1();
-+        outfile.width(8);
-+        outfile << edgelist.Get(i).I2();
-+        outfile << "       "
-+                << (bedge.Test(i) ? "1" : "0") << endl;
-+      }
-+    }
-+
-+
-+
-+
-+}
-+#endif
-+}
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp
---- netgen-5.3.1_SRC_orig/libsrc/interface/writeuser.hpp       2014-08-29 13:54:02.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/interface/writeuser.hpp      2019-11-14 16:56:23.222429470 +0300
-@@ -1,166 +1,166 @@
--#ifndef WRITEUSER\r
--#define WRITEUSER\r
--\r
--/**************************************************************************/\r
--/* File:    writeuser.hh                                                  */\r
--/* Authors: many                                                          */\r
--/* Date:    10. Dec. 97                                                   */\r
--/**************************************************************************/\r
--\r
--\r
--extern\r
--void WriteFile (int typ,\r
--                const Mesh & mesh,\r
--                const CSGeometry & geom,\r
--                const char * filename,\r
--                const char * geomfile = NULL,\r
--                double h = 0);\r
--\r
--\r
--\r
--extern\r
--void ReadFile (Mesh & mesh,\r
--               const string & filename);\r
--\r
--\r
--\r
--\r
--\r
--\r
--extern\r
--void WriteNeutralFormat (const Mesh & mesh,\r
--                         const CSGeometry & geom,\r
--                         const string & filename);\r
--\r
--extern\r
--void WriteSurfaceFormat (const Mesh & mesh,\r
--                         const string & filename);\r
--\r
--extern\r
--void WriteSTLFormat (const Mesh & mesh,\r
--                     const string & filename);\r
--\r
--\r
--// Philippose - 16 August 2010\r
--// Added the STL Extended format in which\r
--// each face of the geometry is treated as\r
--// a separate "solid" entity in the STL file\r
--extern\r
--void WriteSTLExtFormat (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--\r
--extern\r
--void WriteVRMLFormat (const Mesh & mesh,\r
--                      bool faces,\r
--                      const string & filename);\r
--\r
--extern\r
--void WriteFEPPFormat (const Mesh & mesh,\r
--                      const CSGeometry & geom,\r
--                      const string & filename);\r
--\r
--extern\r
--void WriteGmshFormat (const Mesh & mesh,\r
--                      const CSGeometry & geom,\r
--                      const string & filename);\r
--\r
--\r
--// Philippose - 29/01/2009\r
--// Added GMSH v2.xx Mesh Export support\r
--void WriteGmsh2Format (const Mesh & mesh,\r
--                       const CSGeometry & geom,\r
--                       const string & filename);\r
--\r
--\r
--// Philippose - 25/10/2009\r
--// Added OpenFOAM 1.5+ Mesh Export support\r
--extern \r
--void WriteOpenFOAM15xFormat (const Mesh & mesh, \r
--                             const string & casename,\r
--                                                       const bool compressed);\r
--\r
--\r
--extern\r
--void WriteUserChemnitz (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--extern\r
--void WriteJCMFormat (const Mesh & mesh,\r
--                     const CSGeometry & geom,\r
--                     const string & filename);\r
--\r
--\r
--extern\r
--void WriteDiffPackFormat (const Mesh & mesh,\r
--                          const CSGeometry & geom,\r
--                          const string & filename);\r
--\r
--extern\r
--void WriteTochnogFormat (const Mesh & mesh,\r
--                         const string & filename);\r
--\r
--extern\r
--void WriteTecPlotFormat (const Mesh & mesh,\r
--                         const CSGeometry & geom,\r
--                         const string & filename);\r
--\r
--extern\r
--void WriteAbaqusFormat (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--extern\r
--void WriteFluentFormat (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--extern\r
--void WritePermasFormat (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--extern\r
--void WriteFEAPFormat (const Mesh & mesh,\r
--                      const string & filename);\r
--\r
--extern\r
--void WriteElmerFormat (const Mesh & mesh,\r
--                       const string & filename);\r
--\r
--\r
--extern\r
--void WriteEdgeElementFormat (const Mesh & mesh,\r
--                             const CSGeometry & geom,\r
--                             const string & filename);\r
--\r
--\r
--\r
--#ifdef OLIVER\r
--extern\r
--void WriteTETFormat (const Mesh & mesh,\r
--                     const string & filename);\r
--\r
--#endif\r
--\r
--extern void ReadTETFormat (Mesh & mesh,\r
--                           const string & filename);\r
--\r
--\r
--extern void ReadFNFFormat (Mesh & mesh,\r
--                           const string & filename);\r
--\r
--\r
--\r
--void WriteDolfinFormat (const Mesh & mesh,\r
--                        const string & filename);\r
--\r
--\r
--extern void RegisterUserFormats (Array<const char*> & names,\r
--                                 Array<const char*> & extensions);\r
--\r
--\r
--extern bool WriteUserFormat (const string & format,\r
--                             const Mesh & mesh,\r
--                             const NetgenGeometry & geom,\r
--                             const string & filename);\r
--\r
--#endif\r
--\r
-+#ifndef WRITEUSER
-+#define WRITEUSER
-+
-+/**************************************************************************/
-+/* File:    writeuser.hh                                                  */
-+/* Authors: many                                                          */
-+/* Date:    10. Dec. 97                                                   */
-+/**************************************************************************/
-+
-+
-+extern
-+void WriteFile (int typ,
-+                const Mesh & mesh,
-+                const CSGeometry & geom,
-+                const char * filename,
-+                const char * geomfile = NULL,
-+                double h = 0);
-+
-+
-+
-+extern
-+void ReadFile (Mesh & mesh,
-+               const string & filename);
-+
-+
-+
-+
-+
-+
-+extern
-+void WriteNeutralFormat (const Mesh & mesh,
-+                         const CSGeometry & geom,
-+                         const string & filename);
-+
-+extern
-+void WriteSurfaceFormat (const Mesh & mesh,
-+                         const string & filename);
-+
-+extern
-+void WriteSTLFormat (const Mesh & mesh,
-+                     const string & filename);
-+
-+
-+// Philippose - 16 August 2010
-+// Added the STL Extended format in which
-+// each face of the geometry is treated as
-+// a separate "solid" entity in the STL file
-+extern
-+void WriteSTLExtFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+
-+extern
-+void WriteVRMLFormat (const Mesh & mesh,
-+                      bool faces,
-+                      const string & filename);
-+
-+extern
-+void WriteFEPPFormat (const Mesh & mesh,
-+                      const CSGeometry & geom,
-+                      const string & filename);
-+
-+extern
-+void WriteGmshFormat (const Mesh & mesh,
-+                      const CSGeometry & geom,
-+                      const string & filename);
-+
-+
-+// Philippose - 29/01/2009
-+// Added GMSH v2.xx Mesh Export support
-+void WriteGmsh2Format (const Mesh & mesh,
-+                       const CSGeometry & geom,
-+                       const string & filename);
-+
-+
-+// Philippose - 25/10/2009
-+// Added OpenFOAM 1.5+ Mesh Export support
-+extern 
-+void WriteOpenFOAM15xFormat (const Mesh & mesh, 
-+                             const string & casename,
-+                                                       const bool compressed);
-+
-+
-+extern
-+void WriteUserChemnitz (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteJCMFormat (const Mesh & mesh,
-+                     const CSGeometry & geom,
-+                     const string & filename);
-+
-+
-+extern
-+void WriteDiffPackFormat (const Mesh & mesh,
-+                          const CSGeometry & geom,
-+                          const string & filename);
-+
-+extern
-+void WriteTochnogFormat (const Mesh & mesh,
-+                         const string & filename);
-+
-+extern
-+void WriteTecPlotFormat (const Mesh & mesh,
-+                         const CSGeometry & geom,
-+                         const string & filename);
-+
-+extern
-+void WriteAbaqusFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteFluentFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WritePermasFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+extern
-+void WriteFEAPFormat (const Mesh & mesh,
-+                      const string & filename);
-+
-+extern
-+void WriteElmerFormat (const Mesh & mesh,
-+                       const string & filename);
-+
-+
-+extern
-+void WriteEdgeElementFormat (const Mesh & mesh,
-+                             const CSGeometry & geom,
-+                             const string & filename);
-+
-+
-+
-+#ifdef OLIVER
-+extern
-+void WriteTETFormat (const Mesh & mesh,
-+                     const string & filename);
-+
-+#endif
-+
-+extern void ReadTETFormat (Mesh & mesh,
-+                           const string & filename);
-+
-+
-+extern void ReadFNFFormat (Mesh & mesh,
-+                           const string & filename);
-+
-+
-+
-+void WriteDolfinFormat (const Mesh & mesh,
-+                        const string & filename);
-+
-+
-+extern void RegisterUserFormats (Array<const char*> & names,
-+                                 Array<const char*> & extensions);
-+
-+
-+extern bool WriteUserFormat (const string & format,
-+                             const Mesh & mesh,
-+                             const NetgenGeometry & geom,
-+                             const string & filename);
-+
-+#endif
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/meshing/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/Makefile.am  2019-11-14 16:56:25.162375168 +0300
-@@ -15,7 +15,7 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libmesh.la
-+noinst_LTLIBRARIES = libmesh.la
- libmesh_la_SOURCES = adfront2.cpp adfront3.cpp bisect.cpp boundarylayer.cpp \
-       clusters.cpp curvedelems.cpp delaunay.cpp delaunay2d.cpp            \
-@@ -30,8 +30,5 @@
-       topology.cpp triarls.cpp validate.cpp zrefine.cpp bcfunctions.cpp   \
-       parallelmesh.cpp  paralleltop.cpp  paralleltop.hpp basegeom.cpp 
--libmesh_la_LIBADD =  $(top_builddir)/libsrc/linalg/libla.la \
--      $(top_builddir)/libsrc/gprim/libgprim.la \
--      $(top_builddir)/libsrc/general/libgen.la \
--      -lz
-+libmesh_la_LIBADD = -lz
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/findip.hpp    2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/findip.hpp   2019-11-14 16:56:24.618390395 +0300
-@@ -75,6 +75,9 @@
-   static int timer = NgProfiler::CreateTimer ("FindInnerPoint");
-   NgProfiler::RegionTimer reg (timer);
-+  if ( points.Size() < 3 )
-+    return 0;
-+
-   Array<Vec3d> a;
-   Array<double> c;
-   Mat<3> m, inv;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/improve3.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/improve3.cpp 2019-11-14 16:56:24.510393419 +0300
-@@ -1219,6 +1219,7 @@
-             tetused = 0;
-             tetused[0] = 1;
-+              int nbtetused = 0;
-             for (int l = 2; l < nsuround; l++)
-               {
-@@ -1239,10 +1240,12 @@
-                             
-                             tetused[k] = 1; 
-                             suroundpts[l] = newpi;
-+                              ++nbtetused;
-                           }                   
-                     }
-               }
--
-+              if ( nbtetused < nsuround )
-+                continue;
-             
-             bad1 = 0;
-             for (int k = 0; k < nsuround; k++)
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.cpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.cpp 2019-11-14 16:56:24.906382333 +0300
-@@ -1,4 +1,5 @@
- #include <mystdlib.h>
-+#include <float.h> // to get DBL_MIN defined
- #include "meshing.hpp"  
-@@ -666,7 +667,8 @@
-         double det = trans.Det();
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -722,7 +724,8 @@
-             double det = trans(0,0)*trans(1,1)-trans(1,0)*trans(0,1);
--            if (det <= 0)
-+            // if (det <= 0)
-+            if (det <= DBL_MIN)  // avoid FPE
-               {
-                 dd = 0;
-                 return 1e12;
-@@ -806,7 +809,8 @@
-           = dtrans(0,0) * trans(1,1) - trans(0,1) * dtrans(1,0)
-           + trans(0,0) * dtrans(1,1) - dtrans(0,1) * trans(1,0);
--        if (det <= 0)
-+        // if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -856,7 +860,8 @@
-         frob /= 2;
-         double det = trans.Det();
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob / det;
-@@ -1864,7 +1869,8 @@
-       case PYRAMID:
-         {
-           double noz = 1-p(2);
--          if (noz == 0.0) noz = 1e-10;
-+          //if (noz == 0.0) noz = 1e-10;
-+          if (noz <= DBL_MIN) noz = 1e-10; // avoid FPE
-           double xi  = p(0) / noz;
-           double eta = p(1) / noz;
-@@ -2030,7 +2036,8 @@
-         double det = -trans.Det();
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           err += frob * frob * frob / det;
-@@ -2102,7 +2109,8 @@
-         ddet *= -1;
-       
--        if (det <= 0)
-+        //if (det <= 0)
-+        if (det <= DBL_MIN) // avoid FPE
-           err += 1e12;
-         else
-           {
-@@ -2184,7 +2192,7 @@
-       
-         det *= -1;
-       
--        if (det <= 0)
-+        if (det <= DBL_MIN)
-           err += 1e12;
-         else
-           {
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp
---- netgen-5.3.1_SRC_orig/libsrc/meshing/meshtype.hpp  2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/meshing/meshtype.hpp 2019-11-14 16:56:24.310399017 +0300
-@@ -15,6 +15,7 @@
-     Classes for NETGEN
-   */
-+class Mesh; // added due to compilation errors on some platforms
-   enum ELEMENT_TYPE { 
-@@ -360,7 +361,7 @@
-         {
- #ifdef DEBUG
-           if (typ != QUAD && typ != QUAD6 && typ != QUAD8)
--            PrintSysError ("element2d::GetNV not implemented for typ", typ)
-+            PrintSysError ("element2d::GetNV not implemented for typ", typ);
- #endif
-           return 4;
-         }
-@@ -618,7 +619,7 @@
-         return 8;
-       default:
- #ifdef DEBUG
--        PrintSysError ("Element3d::GetNV not implemented for typ ", typ)
-+        PrintSysError ("Element3d::GetNV not implemented for typ ", typ);
- #endif
-           ;
-       }
-@@ -682,7 +683,7 @@
-       case PRISM12: return 5;
-       default:
- #ifdef DEBUG
--        PrintSysError ("element3d::GetNFaces not implemented for typ", typ)
-+        PrintSysError ("element3d::GetNFaces not implemented for typ", typ);
- #endif
-           ;
-       }
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/occ/Makefile.am       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Makefile.am      2019-11-14 16:56:24.298399352 +0300
-@@ -14,10 +14,10 @@
- METASOURCES = AUTO
--lib_LTLIBRARIES = libocc.la
-+noinst_LTLIBRARIES = libocc.la
- if NGGUI
--lib_LTLIBRARIES += liboccvis.la 
-+lib_LTLIBRARIES = liboccvis.la 
- endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.cxx    2019-11-14 16:56:23.574419617 +0300
-@@ -47,9 +47,7 @@
- #include <TopOpeBRep_EdgesIntersector.hxx>
- #include <TopOpeBRep_Point2d.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
--#include <TopTools_MapOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Edge.hxx>
- #include <TopoDS_Vertex.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter2d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter2d.hxx    2019-11-14 16:56:24.278399912 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter2d_HeaderFile
- #define _Partition_Inter2d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _Standard_Real_HeaderFile
-@@ -36,11 +38,13 @@
- #ifndef _Standard_Boolean_HeaderFile
- #include <Standard_Boolean.hxx>
- #endif
-+
-+#include <TopTools_MapOfShape.hxx>
-+#include <TopTools_ListOfShape.hxx>
-+
- class BRepAlgo_AsDes;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Vertex;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.cxx    2019-11-14 16:56:23.426423760 +0300
-@@ -48,7 +48,6 @@
- #include <TopOpeBRepTool_BoxSort.hxx>
- #include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopoDS.hxx>
- #include <TopoDS_Compound.hxx>
- #include <TopoDS_Edge.hxx>
-@@ -206,7 +205,7 @@
-   Handle (Geom_Surface) S   = BRep_Tool::Surface(F,L);
-   if (S->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
--    S = (*(Handle_Geom_RectangularTrimmedSurface*)&S)->BasisSurface();
-+    S = Handle(Geom_RectangularTrimmedSurface)::DownCast (S)->BasisSurface();
-   }
-   if (!S->IsUPeriodic() && !S->IsVPeriodic())
-     return;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Inter3d.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Inter3d.hxx    2019-11-14 16:56:23.542420513 +0300
-@@ -27,7 +27,9 @@
- #ifndef _Partition_Inter3d_HeaderFile
- #define _Partition_Inter3d_HeaderFile
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
-+#include <Standard_Version.hxx>
-+
-+#if OCC_VERSION_MAJOR < 7
- #include <Handle_BRepAlgo_AsDes.hxx>
- #endif
- #ifndef _TopTools_DataMapOfShapeListOfShape_HeaderFile
-@@ -36,6 +38,9 @@
- #ifndef _TopTools_MapOfShape_HeaderFile
- #include <TopTools_MapOfShape.hxx>
- #endif
-+#ifndef _TopTools_ListOfShape_HeaderFile
-+#include <TopTools_ListOfShape.hxx>
-+#endif
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
-@@ -43,10 +48,7 @@
- #include <Standard_Boolean.hxx>
- #endif
- class BRepAlgo_AsDes;
--class TopTools_ListOfShape;
--class TopTools_DataMapOfShapeShape;
- class TopoDS_Face;
--class TopTools_MapOfShape;
- class TopoDS_Shape;
- class TopoDS_Vertex;
- class TopoDS_Edge;
-@@ -83,13 +85,13 @@
-    void FacesPartition(const TopoDS_Face& F1,const TopoDS_Face& F2) ;
-    Standard_Boolean IsDone(const TopoDS_Face& F1,const TopoDS_Face& F2) const;
-    TopTools_MapOfShape& TouchedFaces() ;
--   Handle_BRepAlgo_AsDes AsDes() const;
-+   Handle(BRepAlgo_AsDes) AsDes() const;
-    TopTools_MapOfShape& NewEdges() ;
-    Standard_Boolean HasSameDomainF(const TopoDS_Shape& F) const;
-    Standard_Boolean IsSameDomainF(const TopoDS_Shape& F1,const TopoDS_Shape& F2) const;
-    const TopTools_ListOfShape& SameDomain(const TopoDS_Face& F) const;
-    TopoDS_Vertex ReplaceSameDomainV(const TopoDS_Vertex& V,const TopoDS_Edge& E) const;
--   Handle_BRepAlgo_AsDes SectionEdgesAD() const;
-+   Handle(BRepAlgo_AsDes) SectionEdgesAD() const;
-    Standard_Boolean IsSectionEdge(const TopoDS_Edge& E) const;
-    Standard_Boolean HasSectionEdge(const TopoDS_Face& F) const;
-    Standard_Boolean IsSplitOn(const TopoDS_Edge& NewE,const TopoDS_Edge& OldE,const TopoDS_Face& F) const;
-@@ -121,11 +123,11 @@
-    // Fields PRIVATE
-    //
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    TopTools_DataMapOfShapeListOfShape myDone;
-    TopTools_MapOfShape myTouched;
-    TopTools_MapOfShape myNewEdges;
--   Handle_BRepAlgo_AsDes mySectionEdgesAD;
-+   Handle(BRepAlgo_AsDes) mySectionEdgesAD;
-    TopTools_DataMapOfShapeListOfShape mySameDomainFM;
-    TopTools_DataMapOfShapeShape mySameDomainVM;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop.hxx        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop.hxx       2019-11-14 16:56:23.458422865 +0300
-@@ -38,8 +38,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
--
- #ifndef _Standard_HeaderFile
- #include <Standard.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.cxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.cxx     2019-11-14 16:56:24.290399576 +0300
-@@ -210,7 +210,7 @@
-     Cc->D1(uc, PC, CTg1);
-     if (!isForward) CTg1.Reverse();
--    Standard_Real anglemin = 3 * PI, tolAng = 1.e-8;
-+    Standard_Real anglemin = 3 * M_PI, tolAng = 1.e-8;
-     // select an edge whose first derivative is most left of CTg1
-     // ie an angle between Tg1 and CTg1 is least
-@@ -234,7 +234,7 @@
-       // -PI < angle < PI
-       Standard_Real angle = Tg1.Angle(CTg1);
--      if (PI - Abs(angle) <= tolAng)
-+      if (M_PI - Abs(angle) <= tolAng)
-       {
-         // an angle is too close to PI; assure that an angle sign really
-         // reflects an edge position: +PI - an edge is worst,
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop2d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop2d.hxx     2019-11-14 16:56:23.382424992 +0300
-@@ -24,7 +24,6 @@
- #endif
- class TopoDS_Face;
- class TopoDS_Edge;
--class TopTools_ListOfShape;
- class BRepAlgo_Image;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Loop3d.hxx      2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Loop3d.hxx     2019-11-14 16:56:23.562419954 +0300
-@@ -13,6 +13,9 @@
- #ifndef _TopTools_ListOfShape_HeaderFile
- #include <TopTools_ListOfShape.hxx>
- #endif
-+#ifndef _TopTools_MapOfOrientedShape_HeaderFile
-+#include <TopTools_MapOfOrientedShape.hxx>
-+#endif
- #ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #endif
-@@ -23,8 +26,6 @@
- #include <Standard_Real.hxx>
- #endif
- class TopoDS_Shape;
--class TopTools_ListOfShape;
--class TopTools_MapOfOrientedShape;
- class TopoDS_Edge;
- class TopoDS_Face;
- class gp_Vec;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.cxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.cxx    2019-11-14 16:56:23.814412900 +0300
-@@ -48,7 +48,6 @@
- #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
- #include <TopTools_IndexedMapOfShape.hxx>
- #include <TopTools_ListIteratorOfListOfShape.hxx>
--#include <TopTools_ListOfShape.hxx>
- #include <TopTools_MapIteratorOfMapOfShape.hxx>
- #include <TopTools_SequenceOfShape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx
---- netgen-5.3.1_SRC_orig/libsrc/occ/Partition_Spliter.hxx     2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/Partition_Spliter.hxx    2019-11-14 16:56:23.802413236 +0300
-@@ -28,9 +28,6 @@
- #ifndef _TopTools_DataMapOfShapeShape_HeaderFile
- #include <TopTools_DataMapOfShapeShape.hxx>
- #endif
--#ifndef _Handle_BRepAlgo_AsDes_HeaderFile
--#include <Handle_BRepAlgo_AsDes.hxx>
--#endif
- #ifndef _BRepAlgo_Image_HeaderFile
- #include <BRepAlgo_Image.hxx>
- #endif
-@@ -45,7 +42,6 @@
- #endif
- class BRepAlgo_AsDes;
- class TopoDS_Shape;
--class TopTools_ListOfShape;
- class TopoDS_Edge;
-@@ -129,7 +125,7 @@
-    TopTools_DataMapOfShapeShape myFaceShapeMap;
-    TopTools_DataMapOfShapeShape myInternalFaces;
-    TopTools_DataMapOfShapeShape myIntNotClFaces;
--   Handle_BRepAlgo_AsDes myAsDes;
-+   Handle(BRepAlgo_AsDes) myAsDes;
-    BRepAlgo_Image myImagesFaces;
-    BRepAlgo_Image myImagesEdges;
-    BRepAlgo_Image myImageShape;
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occconstruction.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occconstruction.cpp      2019-11-14 16:56:23.822412676 +0300
-@@ -28,7 +28,7 @@
- #include <BRepAlgoAPI_Common.hxx>
- #include <BRepAlgoAPI_Fuse.hxx>
- #include <BRepAlgoAPI_Section.hxx>
--#include <BRepOffsetAPI_Sewing.hxx>
-+//#include <BRepOffsetAPI_Sewing.hxx>
- //#include <BRepAlgo_Sewing.hxx>
- #include <BRepOffsetAPI_MakeOffsetShape.hxx>
- #include <ShapeFix_Shape.hxx>
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgenmesh.cpp    2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgenmesh.cpp   2019-11-14 16:56:23.482422193 +0300
-@@ -1,1467 +1,1570 @@
--#ifdef OCCGEOMETRY\r
--\r
--#include <mystdlib.h>\r
--#include <occgeom.hpp>\r
--#include <meshing.hpp>\r
--\r
--\r
--namespace netgen\r
--{\r
--\r
--#include "occmeshsurf.hpp"\r
--\r
--#define TCL_OK 0\r
--#define TCL_ERROR 1\r
--\r
--#define DIVIDEEDGESECTIONS 1000\r
--#define IGNORECURVELENGTH 1e-4\r
--#define VSMALL 1e-10\r
--\r
--\r
--   bool merge_solids = 1;\r
--\r
--\r
--  // can you please explain what you intend to compute here (JS) !!!\r
--   double Line :: Dist (Line l)\r
--   {\r
--      Vec<3> n = p1-p0;\r
--      Vec<3> q = l.p1-l.p0;\r
--      double nq = n*q;\r
--\r
--      Point<3> p = p0 + 0.5*n;\r
--      double lambda = (p-l.p0)*n / (nq + VSMALL);\r
--\r
--      if (lambda >= 0 && lambda <= 1)\r
--      {\r
--         double d = (p-l.p0-lambda*q).Length();\r
--         //        if (d < 1e-3) d = 1e99;\r
--         return d;\r
--      }\r
--      else\r
--         return 1e99;\r
--   }\r
--\r
--\r
--\r
--   double Line :: Length ()\r
--   {\r
--      return (p1-p0).Length();\r
--   }\r
--\r
--\r
--\r
--   inline Point<3> occ2ng (const gp_Pnt & p)\r
--   {\r
--      return  Point<3> (p.X(), p.Y(), p.Z());\r
--   }\r
--\r
--\r
--\r
--   double ComputeH (double kappa)\r
--   {\r
--      double hret;\r
--      kappa *= mparam.curvaturesafety;\r
--\r
--      if (mparam.maxh * kappa < 1)\r
--         hret = mparam.maxh;\r
--      else\r
--         hret = 1 / (kappa + VSMALL);\r
--\r
--      if (mparam.maxh < hret)\r
--         hret = mparam.maxh;\r
--\r
--      return (hret);\r
--   }\r
--\r
--\r
--\r
--\r
--   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,\r
--                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)\r
--   {\r
--      int ls = -1;\r
--\r
--      gp_Pnt pnt0,pnt1,pnt2;\r
--\r
--      prop->SetParameters (par0.X(), par0.Y());\r
--      pnt0 = prop->Value();\r
--\r
--      prop->SetParameters (par1.X(), par1.Y());\r
--      pnt1 = prop->Value();\r
--\r
--      prop->SetParameters (par2.X(), par2.Y());\r
--      pnt2 = prop->Value();\r
--\r
--      double aux;\r
--      double maxside = pnt0.Distance(pnt1);\r
--      ls = 2;\r
--      aux = pnt1.Distance(pnt2);\r
--      if(aux > maxside)\r
--      {\r
--         maxside = aux;\r
--         ls = 0;\r
--      }\r
--      aux = pnt2.Distance(pnt0);\r
--      if(aux > maxside)\r
--      {\r
--         maxside = aux;\r
--         ls = 1;\r
--      }\r
--\r
--\r
--\r
--      gp_Pnt2d parmid;\r
--\r
--      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );\r
--      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );\r
--\r
--      if (depth%3 == 0)\r
--      {\r
--         double curvature = 0;\r
--\r
--         prop->SetParameters (parmid.X(), parmid.Y());\r
--         if (!prop->IsCurvatureDefined())\r
--         {\r
--            (*testout) << "curvature not defined!" << endl;\r
--            return;\r
--         }\r
--         curvature = max(fabs(prop->MinCurvature()),\r
--            fabs(prop->MaxCurvature()));\r
--\r
--         prop->SetParameters (par0.X(), par0.Y());\r
--         if (!prop->IsCurvatureDefined())\r
--         {\r
--            (*testout) << "curvature not defined!" << endl;\r
--            return;\r
--         }\r
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
--            fabs(prop->MaxCurvature())));\r
--\r
--         prop->SetParameters (par1.X(), par1.Y());\r
--         if (!prop->IsCurvatureDefined())\r
--         {\r
--            (*testout) << "curvature not defined!" << endl;\r
--            return;\r
--         }\r
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
--            fabs(prop->MaxCurvature())));\r
--\r
--         prop->SetParameters (par2.X(), par2.Y());\r
--         if (!prop->IsCurvatureDefined())\r
--         {\r
--            (*testout) << "curvature not defined!" << endl;\r
--            return;\r
--         }\r
--         curvature = max(curvature,max(fabs(prop->MinCurvature()),\r
--            fabs(prop->MaxCurvature())));\r
--\r
--         //(*testout) << "curvature " << curvature << endl;\r
--\r
--         if (curvature < 1e-3)\r
--         {\r
--            //(*testout) << "curvature too small (" << curvature << ")!" << endl;\r
--            return;\r
--            // return war bis 10.2.05 auskommentiert\r
--         }\r
--\r
--\r
--\r
--         h = ComputeH (curvature+1e-10);\r
--\r
--         if(h < 1e-4*maxside)\r
--            return;\r
--\r
--\r
--         if (h > 30) return;\r
--      }\r
--\r
--      if (h < maxside && depth < 10)\r
--      {\r
--         //cout << "\r h " << h << flush;\r
--         gp_Pnt2d pm;\r
--\r
--         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;\r
--         //cout << "par0 " << par0.X() << " " << par0.Y()\r
--         //<< " par1 " << par1.X() << " " << par1.Y()\r
--         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;\r
--\r
--         if(ls == 0)\r
--         {\r
--            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));\r
--            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);\r
--            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);\r
--         }\r
--         else if(ls == 1)\r
--         {\r
--            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));\r
--            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);\r
--            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);\r
--         }\r
--         else if(ls == 2)\r
--         {\r
--            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));\r
--            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);\r
--            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);\r
--         }\r
--\r
--      }\r
--      else\r
--      {\r
--         gp_Pnt pnt;\r
--         Point3d p3d;\r
--\r
--         prop->SetParameters (parmid.X(), parmid.Y());\r
--         pnt = prop->Value();\r
--         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());\r
--         mesh.RestrictLocalH (p3d, h);\r
--\r
--         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());\r
--         mesh.RestrictLocalH (p3d, h);\r
--\r
--         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());\r
--         mesh.RestrictLocalH (p3d, h);\r
--\r
--         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());\r
--         mesh.RestrictLocalH (p3d, h);\r
--\r
--         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;\r
--\r
--      }\r
--   }\r
--\r
--\r
--\r
--   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,\r
--                    Array<double> & params, Mesh & mesh)\r
--   {\r
--      double s0, s1;\r
--      double maxh = mparam.maxh;\r
--      int nsubedges = 1;\r
--      gp_Pnt pnt, oldpnt;\r
--      double svalue[DIVIDEEDGESECTIONS];\r
--\r
--      GProp_GProps system;\r
--      BRepGProp::LinearProperties(edge, system);\r
--      double L = system.Mass();\r
--\r
--      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
--\r
--      double hvalue[DIVIDEEDGESECTIONS+1];\r
--      hvalue[0] = 0;\r
--      pnt = c->Value(s0);\r
--\r
--      double olddist = 0;\r
--      double dist = 0;\r
--\r
--      int tmpVal = (int)(DIVIDEEDGESECTIONS);\r
--\r
--      for (int i = 1; i <= tmpVal; i++)\r
--      {\r
--         oldpnt = pnt;\r
--         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));\r
--         hvalue[i] = hvalue[i-1] +\r
--            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
--            pnt.Distance(oldpnt);\r
--\r
--         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))\r
--         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;\r
--\r
--         olddist = dist;\r
--         dist = pnt.Distance(oldpnt);\r
--      }\r
--\r
--      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));\r
--      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));\r
--\r
--      ps.SetSize(nsubedges-1);\r
--      params.SetSize(nsubedges+1);\r
--\r
--      int i = 1;\r
--      int i1 = 0;\r
--      do\r
--      {\r
--         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)\r
--         {\r
--            params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);\r
--            pnt = c->Value(params[i]);\r
--            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));\r
--            i++;\r
--         }\r
--         i1++;\r
--         if (i1 > DIVIDEEDGESECTIONS)\r
--         {\r
--            nsubedges = i;\r
--            ps.SetSize(nsubedges-1);\r
--            params.SetSize(nsubedges+1);\r
--            cout << "divide edge: local h too small" << endl;\r
--         }\r
--      } while (i < nsubedges);\r
--\r
--      params[0] = s0;\r
--      params[nsubedges] = s1;\r
--\r
--      if (params[nsubedges] <= params[nsubedges-1])\r
--      {\r
--         cout << "CORRECTED" << endl;\r
--         ps.SetSize (nsubedges-2);\r
--         params.SetSize (nsubedges);\r
--         params[nsubedges] = s1;\r
--      }\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)\r
--   {\r
--      const char * savetask = multithread.task;\r
--      multithread.task = "Edge meshing";\r
--\r
--      (*testout) << "edge meshing" << endl;\r
--\r
--      int nvertices = geom.vmap.Extent();\r
--      int nedges = geom.emap.Extent();\r
--\r
--      (*testout) << "nvertices = " << nvertices << endl;\r
--      (*testout) << "nedges = " << nedges << endl;\r
--\r
--      double eps = 1e-6 * geom.GetBoundingBox().Diam();\r
--\r
--      for (int i = 1; i <= nvertices; i++)\r
--      {\r
--         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));\r
--         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );\r
--\r
--         bool exists = 0;\r
--         if (merge_solids)\r
--            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)\r
--               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)\r
--               {\r
--                  exists = 1;\r
--                  break;\r
--               }\r
--\r
--               if (!exists)\r
--                  mesh.AddPoint (mp);\r
--      }\r
--\r
--      (*testout) << "different vertices = " << mesh.GetNP() << endl;\r
--\r
--\r
--      int first_ep = mesh.GetNP()+1;\r
--\r
--      Array<int> face2solid[2];\r
--      for (int i = 0; i<2; i++)\r
--      {\r
--         face2solid[i].SetSize (geom.fmap.Extent());\r
--         face2solid[i] = 0;\r
--      }\r
--\r
--      int solidnr = 0;\r
--      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
--      {\r
--         solidnr++;\r
--         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Face face = TopoDS::Face(exp1.Current());\r
--            int facenr = geom.fmap.FindIndex(face);\r
--\r
--            if (face2solid[0][facenr-1] == 0)\r
--               face2solid[0][facenr-1] = solidnr;\r
--            else\r
--               face2solid[1][facenr-1] = solidnr;\r
--         }\r
--      }\r
--\r
--\r
--      int total = 0;\r
--      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)\r
--         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())\r
--            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())\r
--               total++;\r
--\r
--\r
--      int facenr = 0;\r
--      int edgenr = 0;\r
--\r
--\r
--      (*testout) << "faces = " << geom.fmap.Extent() << endl;\r
--      int curr = 0;\r
--\r
--      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)\r
--      {\r
--         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));\r
--         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS\r
--\r
--         int solidnr0 = face2solid[0][i3-1];\r
--         int solidnr1 = face2solid[1][i3-1];\r
--\r
--         /* auskommentiert am 3.3.05 von robert\r
--         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())\r
--         {\r
--         TopoDS_Face face2 = TopoDS::Face(exp2.Current());\r
--         if (geom.fmap.FindIndex(face2) == facenr)\r
--         {\r
--         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);\r
--         }\r
--         }\r
--         */\r
--\r
--         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));\r
--\r
--         // Philippose - 06/07/2009\r
--         // Add the face colour to the mesh data\r
--         Quantity_Color face_colour;\r
--\r
--         if(!(geom.face_colours.IsNull())\r
--            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))\r
--         {\r
--            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));\r
--         }\r
--         else\r
--         {\r
--            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));\r
--         }\r
--         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)\r
--\r
--\r
--         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);\r
--\r
--         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())\r
--         {\r
--            TopoDS_Shape wire = exp2.Current();\r
--\r
--            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())\r
--            {\r
--               curr++;\r
--               (*testout) << "edge nr " << curr << endl;\r
--\r
--               multithread.percent = 100 * curr / double (total);\r
--               if (multithread.terminate) return;\r
--\r
--               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());\r
--               if (BRep_Tool::Degenerated(edge))\r
--               {\r
--                  //(*testout) << "ignoring degenerated edge" << endl;\r
--                  continue;\r
--               }\r
--\r
--               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
--                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))\r
--               {\r
--                  GProp_GProps system;\r
--                  BRepGProp::LinearProperties(edge, system);\r
--\r
--                  if (system.Mass() < eps)\r
--                  {\r
--                     cout << "ignoring edge " << geom.emap.FindIndex (edge)\r
--                        << ". closed edge with length < " << eps << endl;\r
--                     continue;\r
--                  }\r
--               }\r
--\r
--\r
--               Handle(Geom2d_Curve) cof;\r
--               double s0, s1;\r
--               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);\r
--\r
--               int geomedgenr = geom.emap.FindIndex(edge);\r
--\r
--               Array <MeshPoint> mp;\r
--               Array <double> params;\r
--\r
--               DivideEdge (edge, mp, params, mesh);\r
-- \r
--               Array <int> pnums;\r
--               pnums.SetSize (mp.Size()+2);\r
--\r
--               if (!merge_solids)\r
--               {\r
--                  pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));\r
--                  pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));\r
--               }\r
--               else\r
--               {\r
--                  Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));\r
--                  Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));\r
--\r
--                  pnums[0] = -1;\r
--                  pnums.Last() = -1;\r
--                  for (PointIndex pi = 1; pi < first_ep; pi++)\r
--                  {\r
--                     if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;\r
--                     if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;\r
--                  }\r
--               }\r
--\r
--\r
--               for (int i = 1; i <= mp.Size(); i++)\r
--               {\r
--                  bool exists = 0;\r
--                  int j;\r
--                  for (j = first_ep; j <= mesh.GetNP(); j++)\r
--                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)\r
--                     {\r
--                        exists = 1;\r
--                        break;\r
--                     }\r
--\r
--                     if (exists)\r
--                        pnums[i] = j;\r
--                     else\r
--                     {\r
--                        mesh.AddPoint (mp[i-1]);\r
--                        (*testout) << "add meshpoint " << mp[i-1] << endl;\r
--                        pnums[i] = mesh.GetNP();\r
--                     }\r
--               }\r
--               (*testout) << "NP = " << mesh.GetNP() << endl;\r
--\r
--               //(*testout) << pnums[pnums.Size()-1] << endl;\r
--\r
--               for (int i = 1; i <= mp.Size()+1; i++)\r
--               {\r
--                  edgenr++;\r
--                  Segment seg;\r
--\r
--                  seg[0] = pnums[i-1];\r
--                  seg[1] = pnums[i];\r
--                  seg.edgenr = edgenr;\r
--                  seg.si = facenr;\r
--                  seg.epgeominfo[0].dist = params[i-1];\r
--                  seg.epgeominfo[1].dist = params[i];\r
--                  seg.epgeominfo[0].edgenr = geomedgenr;\r
--                  seg.epgeominfo[1].edgenr = geomedgenr;\r
--\r
--                  gp_Pnt2d p2d;\r
--                  p2d = cof->Value(params[i-1]);\r
--                  //                  if (i == 1) p2d = cof->Value(s0);\r
--                  seg.epgeominfo[0].u = p2d.X();\r
--                  seg.epgeominfo[0].v = p2d.Y();\r
--                  p2d = cof->Value(params[i]);\r
--                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);\r
--                  seg.epgeominfo[1].u = p2d.X();\r
--                  seg.epgeominfo[1].v = p2d.Y();\r
--\r
--                  /*\r
--                  if (occface->IsUPeriodic())\r
--                  {\r
--                  cout << "U Periodic" << endl;\r
--                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >\r
--                  fabs(seg.epgeominfo[1].u-\r
--                  (seg.epgeominfo[0].u-occface->UPeriod())))\r
--                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();\r
--\r
--                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >\r
--                  fabs(seg.epgeominfo[1].u-\r
--                  (seg.epgeominfo[0].u+occface->UPeriod())))\r
--                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();\r
--                  }\r
--\r
--                  if (occface->IsVPeriodic())\r
--                  {\r
--                  cout << "V Periodic" << endl;\r
--                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >\r
--                  fabs(seg.epgeominfo[1].v-\r
--                  (seg.epgeominfo[0].v-occface->VPeriod())))\r
--                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();\r
--\r
--                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >\r
--                  fabs(seg.epgeominfo[1].v-\r
--                  (seg.epgeominfo[0].v+occface->VPeriod())))\r
--                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();\r
--                  }\r
--                  */\r
--\r
--                  if (edge.Orientation() == TopAbs_REVERSED)\r
--                  {\r
--                     swap (seg[0], seg[1]);\r
--                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);\r
--                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);\r
--                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);\r
--                  }\r
--\r
--                  mesh.AddSegment (seg);\r
--\r
--                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());\r
--\r
--               }\r
--            }\r
--         }\r
--      }\r
--\r
--      //      for(i=1; i<=mesh.GetNSeg(); i++)\r
--      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si\r
--      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;\r
--      //      exit(10);\r
--\r
--      mesh.CalcSurfacesOfNode();\r
--      multithread.task = savetask;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)\r
--   {\r
--      int i, j, k;\r
--      int changed;\r
--\r
--      const char * savetask = multithread.task;\r
--      multithread.task = "Surface meshing";\r
--\r
--      geom.facemeshstatus = 0;\r
--\r
--      int noldp = mesh.GetNP();\r
--\r
--      double starttime = GetTime();\r
--\r
--      Array<int> glob2loc(noldp);\r
--\r
--      //int projecttype = PARAMETERSPACE;\r
--\r
--      int projecttype = PARAMETERSPACE;\r
--\r
--      int notrys = 1;\r
--\r
--      int surfmesherror = 0;\r
--\r
--      for (k = 1; k <= mesh.GetNFD(); k++)\r
--      {\r
--         if(1==0 && !geom.fvispar[k-1].IsDrawable())\r
--         {\r
--            (*testout) << "ignoring face " << k << endl;\r
--            cout << "ignoring face " << k << endl;\r
--            continue;\r
--         }\r
--\r
--         (*testout) << "mesh face " << k << endl;\r
--         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);\r
--         geom.facemeshstatus[k-1] = -1;\r
--\r
--\r
--         /*\r
--         if (k != 42)\r
--         {\r
--         cout << "skipped" << endl;\r
--         continue;\r
--         }\r
--         */\r
--\r
--\r
--         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);\r
--\r
--         int oldnf = mesh.GetNSE();\r
--\r
--         Box<3> bb = geom.GetBoundingBox();\r
--\r
--         //      int projecttype = PLANESPACE;\r
--\r
--         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);\r
--\r
--         if (meshing.GetProjectionType() == PLANESPACE)\r
--            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");\r
--         else\r
--            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");\r
--\r
--         if (surfmesherror)\r
--            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;\r
--\r
--         //      Meshing2OCCSurfaces meshing(f2, bb);\r
--         meshing.SetStartTime (starttime);\r
--\r
--         //(*testout) << "Face " << k << endl << endl;\r
--\r
--\r
--         if (meshing.GetProjectionType() == PLANESPACE)\r
--         {\r
--            int cntp = 0;\r
--            glob2loc = 0;\r
--            for (i = 1; i <= mesh.GetNSeg(); i++)\r
--            {\r
--               Segment & seg = mesh.LineSegment(i);\r
--               if (seg.si == k)\r
--               {\r
--                  for (j = 1; j <= 2; j++)\r
--                  {\r
--                     int pi = (j == 1) ? seg[0] : seg[1];\r
--                     if (!glob2loc.Get(pi))\r
--                     {\r
--                        meshing.AddPoint (mesh.Point(pi), pi);\r
--                        cntp++;\r
--                        glob2loc.Elem(pi) = cntp;\r
--                     }\r
--                  }\r
--               }\r
--            }\r
--\r
--            for (i = 1; i <= mesh.GetNSeg(); i++)\r
--            {\r
--               Segment & seg = mesh.LineSegment(i);\r
--               if (seg.si == k)\r
--               {\r
--                  PointGeomInfo gi0, gi1;\r
--                  gi0.trignum = gi1.trignum = k;\r
--                  gi0.u = seg.epgeominfo[0].u;\r
--                  gi0.v = seg.epgeominfo[0].v;\r
--                  gi1.u = seg.epgeominfo[1].u;\r
--                  gi1.v = seg.epgeominfo[1].v;\r
--\r
--                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);\r
--                  //(*testout) << gi0.u << " " << gi0.v << endl;\r
--                  //(*testout) << gi1.u << " " << gi1.v << endl;\r
--               }\r
--            }\r
--         }\r
--         else\r
--         {\r
--            int cntp = 0;\r
--\r
--            for (i = 1; i <= mesh.GetNSeg(); i++)\r
--               if (mesh.LineSegment(i).si == k)\r
--                  cntp+=2;\r
--\r
--\r
--            Array< PointGeomInfo > gis;\r
--\r
--            gis.SetAllocSize (cntp);\r
--            gis.SetSize (0);\r
--\r
--            for (i = 1; i <= mesh.GetNSeg(); i++)\r
--            {\r
--               Segment & seg = mesh.LineSegment(i);\r
--               if (seg.si == k)\r
--               {\r
--                  PointGeomInfo gi0, gi1;\r
--                  gi0.trignum = gi1.trignum = k;\r
--                  gi0.u = seg.epgeominfo[0].u;\r
--                  gi0.v = seg.epgeominfo[0].v;\r
--                  gi1.u = seg.epgeominfo[1].u;\r
--                  gi1.v = seg.epgeominfo[1].v;\r
--\r
--                  int locpnum[2] = {0, 0};\r
--\r
--                  for (j = 0; j < 2; j++)\r
--                  {\r
--                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;\r
--\r
--                     int l;\r
--                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)\r
--                     {\r
--                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);\r
--\r
--                        if (dist < 1e-10)\r
--                           locpnum[j] = l+1;\r
--                     }\r
--\r
--                     if (locpnum[j] == 0)\r
--                     {\r
--                        int pi = (j == 0) ? seg[0] : seg[1];\r
--                        meshing.AddPoint (mesh.Point(pi), pi);\r
--\r
--                        gis.SetSize (gis.Size()+1);\r
--                        gis[l] = gi;\r
--                        locpnum[j] = l+1;\r
--                     }\r
--                  }\r
--\r
--                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);\r
--                  //(*testout) << gi0.u << " " << gi0.v << endl;\r
--                  //(*testout) << gi1.u << " " << gi1.v << endl;\r
--\r
--               }\r
--            }\r
--         }\r
--\r
--\r
--\r
--\r
--\r
--         // Philippose - 15/01/2009\r
--         double maxh = geom.face_maxh[k-1];\r
--         //double maxh = mparam.maxh;\r
--         mparam.checkoverlap = 0;\r
--         //      int noldpoints = mesh->GetNP();\r
--         int noldsurfel = mesh.GetNSE();\r
--\r
--         GProp_GProps sprops;\r
--         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);\r
--         meshing.SetMaxArea(2.*sprops.Mass());\r
--\r
--         MESHING2_RESULT res;\r
--\r
--         try {\r
--         res = meshing.GenerateMesh (mesh, mparam, maxh, k);\r
--         }\r
--\r
--         catch (SingularMatrixException)\r
--         {\r
--            (*myerr) << "Singular Matrix" << endl;\r
--            res = MESHING2_GIVEUP;\r
--         }\r
--\r
--         catch (UVBoundsException)\r
--         {\r
--            (*myerr) << "UV bounds exceeded" << endl;\r
--            res = MESHING2_GIVEUP;\r
--         }\r
--\r
--         projecttype = PARAMETERSPACE;\r
--\r
--         if (res != MESHING2_OK)\r
--         {\r
--            if (notrys == 1)\r
--            {\r
--               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)\r
--                  mesh.DeleteSurfaceElement (i);\r
--\r
--               mesh.Compress();\r
--\r
--               cout << "retry Surface " << k << endl;\r
--\r
--               k--;\r
--               projecttype*=-1;\r
--               notrys++;\r
--               continue;\r
--            }\r
--            else\r
--            {\r
--               geom.facemeshstatus[k-1] = -1;\r
--               PrintError ("Problem in Surface mesh generation");\r
--               surfmesherror++;\r
--               //           throw NgException ("Problem in Surface mesh generation");\r
--            }\r
--         }\r
--         else\r
--         {\r
--            geom.facemeshstatus[k-1] = 1;\r
--         }\r
--\r
--         notrys = 1;\r
--\r
--         for (i = oldnf+1; i <= mesh.GetNSE(); i++)\r
--            mesh.SurfaceElement(i).SetIndex (k);\r
--\r
--      }\r
--\r
--//      ofstream problemfile("occmesh.rep");\r
--\r
--//      problemfile << "SURFACEMESHING" << endl << endl;\r
--\r
--      if (surfmesherror)\r
--      {\r
--         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;\r
--         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;\r
--         for (int i = 1; i <= geom.fmap.Extent(); i++)\r
--            if (geom.facemeshstatus[i-1] == -1)\r
--            {\r
--               cout << "Face " << i << endl;\r
--//               problemfile << "problem with face " << i << endl;\r
--//               problemfile << "vertices: " << endl;\r
--               TopExp_Explorer exp0,exp1,exp2;\r
--               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )\r
--               {\r
--                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());\r
--                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )\r
--                  {\r
--                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )\r
--                     {\r
--                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());\r
--                        gp_Pnt point = BRep_Tool::Pnt(vertex);\r
--//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;\r
--                     }\r
--                  }\r
--               }\r
--//               problemfile << endl;\r
--\r
--            }\r
--            cout << endl << endl;\r
--            cout << "for more information open IGES/STEP Topology Explorer" << endl;\r
--//            problemfile.close();\r
--            throw NgException ("Problem in Surface mesh generation");\r
--      }\r
--      else\r
--      {\r
--//         problemfile << "OK" << endl << endl;\r
--//         problemfile.close();\r
--      }\r
--\r
--\r
--\r
--\r
--      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)\r
--         return;\r
--\r
--      multithread.task = "Optimizing surface";\r
--\r
--      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");\r
--      NgProfiler::StartTimer (timer_opt2d);\r
--\r
--      for (k = 1; k <= mesh.GetNFD(); k++)\r
--      {\r
--         //      if (k != 42) continue;\r
--         //      if (k != 36) continue;\r
--\r
--         //      (*testout) << "optimize face " << k << endl;\r
--         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);\r
--\r
--         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);\r
--\r
--         PrintMessage (1, "Optimize Surface ", k);\r
--         for (i = 1; i <= mparam.optsteps2d; i++)\r
--         {\r
--            //          (*testout) << "optstep " << i << endl;\r
--            if (multithread.terminate) return;\r
--\r
--            {\r
--               MeshOptimize2dOCCSurfaces meshopt(geom);\r
--               meshopt.SetFaceIndex (k);\r
--               meshopt.SetImproveEdges (0);\r
--               meshopt.SetMetricWeight (mparam.elsizeweight);\r
--               //meshopt.SetMetricWeight (0.2);\r
--               meshopt.SetWriteStatus (0);\r
--\r
--               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;\r
--               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));\r
--            }\r
--\r
--            if (multithread.terminate) return;\r
--            {\r
--               MeshOptimize2dOCCSurfaces meshopt(geom);\r
--               meshopt.SetFaceIndex (k);\r
--               meshopt.SetImproveEdges (0);\r
--               //meshopt.SetMetricWeight (0.2);\r
--               meshopt.SetMetricWeight (mparam.elsizeweight);\r
--               meshopt.SetWriteStatus (0);\r
--\r
--               //         (*testout) << "ImproveMesh (mesh)" << endl;\r
--               meshopt.ImproveMesh (mesh, mparam);\r
--            }\r
--\r
--            {\r
--               MeshOptimize2dOCCSurfaces meshopt(geom);\r
--               meshopt.SetFaceIndex (k);\r
--               meshopt.SetImproveEdges (0);\r
--               //meshopt.SetMetricWeight (0.2);\r
--               meshopt.SetMetricWeight (mparam.elsizeweight);\r
--               meshopt.SetWriteStatus (0);\r
--\r
--               //         (*testout) << "CombineImprove (mesh)" << endl;\r
--               meshopt.CombineImprove (mesh);\r
--            }\r
--\r
--            if (multithread.terminate) return;\r
--            {\r
--               MeshOptimize2dOCCSurfaces meshopt(geom);\r
--               meshopt.SetFaceIndex (k);\r
--               meshopt.SetImproveEdges (0);\r
--               //meshopt.SetMetricWeight (0.2);\r
--               meshopt.SetMetricWeight (mparam.elsizeweight);\r
--               meshopt.SetWriteStatus (0);\r
--\r
--               //         (*testout) << "ImproveMesh (mesh)" << endl;\r
--               meshopt.ImproveMesh (mesh, mparam);\r
--            }\r
--         }\r
--\r
--      }\r
--\r
--\r
--      mesh.CalcSurfacesOfNode();\r
--      mesh.Compress();\r
--\r
--      NgProfiler::StopTimer (timer_opt2d);\r
--\r
--      multithread.task = savetask;\r
--   }\r
--\r
--\r
--\r
--   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)\r
--   {\r
--      mesh.SetGlobalH (mparam.maxh);\r
--      mesh.SetMinimalH (mparam.minh);\r
--\r
--      Array<double> maxhdom;\r
--      maxhdom.SetSize (geom.NrSolids());\r
--      maxhdom = mparam.maxh;\r
--\r
--      mesh.SetMaxHDomain (maxhdom);\r
--\r
--      Box<3> bb = geom.GetBoundingBox();\r
--      bb.Increase (bb.Diam()/10);\r
--\r
--      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);\r
--\r
--      if (mparam.uselocalh)\r
--      {\r
--         const char * savetask = multithread.task;\r
--         multithread.percent = 0;\r
--\r
--         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);\r
--\r
--         int nedges = geom.emap.Extent();\r
--\r
--               double mincurvelength = IGNORECURVELENGTH;\r
--         double maxedgelen = 0;\r
--         double minedgelen = 1e99;\r
--\r
--               if(occparam.resthminedgelenenable) \r
--               {\r
--                      mincurvelength = occparam.resthminedgelen;\r
--                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;\r
--               }\r
--\r
--         multithread.task = "Setting local mesh size (elements per edge)";\r
--\r
--         // setting elements per edge\r
--\r
--         for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
--         {\r
--            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));\r
--            multithread.percent = 100 * (i-1)/double(nedges);\r
--            if (BRep_Tool::Degenerated(e)) continue;\r
--\r
--            GProp_GProps system;\r
--            BRepGProp::LinearProperties(e, system);\r
--            double len = system.Mass();\r
--\r
--            if (len < mincurvelength)\r
--            {\r
--               (*testout) << "ignored" << endl;\r
--               continue;\r
--            }\r
--\r
--            double localh = len/mparam.segmentsperedge;\r
--            double s0, s1;\r
--\r
--            // Philippose - 23/01/2009\r
--            // Find all the parent faces of a given edge\r
--            // and limit the mesh size of the edge based on the\r
--            // mesh size limit of the face\r
--            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;\r
--            edge_face_map.Clear();\r
--\r
--            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);\r
--            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);\r
--\r
--            TopTools_ListIteratorOfListOfShape parent_face_list;\r
--\r
--            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())\r
--            {\r
--               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());\r
--\r
--               int face_index = geom.fmap.FindIndex(parent_face);\r
--\r
--               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);\r
--            }\r
--\r
--            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);\r
--\r
--            maxedgelen = max (maxedgelen, len);\r
--            minedgelen = min (minedgelen, len);\r
--\r
--            // Philippose - 23/01/2009\r
--            // Modified the calculation of maxj, because the\r
--            // method used so far always results in maxj = 2,\r
--            // which causes the localh to be set only at the\r
--            // starting, mid and end of the edge.\r
--            // Old Algorithm:\r
--            // int maxj = 2 * (int) ceil (localh/len);\r
--            int maxj = max((int) ceil(len/localh), 2);\r
--\r
--            for (int j = 0; j <= maxj; j++)\r
--            {\r
--               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));\r
--               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);\r
--            }\r
--         }\r
--\r
--         multithread.task = "Setting local mesh size (edge curvature)";\r
--\r
--         // setting edge curvature\r
--\r
--         int nsections = 20;\r
--\r
--         for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
--         {\r
--            double maxcur = 0;\r
--            multithread.percent = 100 * (i-1)/double(nedges);\r
--            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));\r
--            if (BRep_Tool::Degenerated(edge)) continue;\r
--            double s0, s1;\r
--            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
--            BRepAdaptor_Curve brepc(edge);\r
--            BRepLProp_CLProps prop(brepc, 2, 1e-5);\r
--\r
--            for (int j = 1; j <= nsections; j++)\r
--            {\r
--               double s = s0 + j/(double) nsections * (s1-s0);\r
--               prop.SetParameter (s);\r
--               double curvature = prop.Curvature();\r
--               if(curvature> maxcur) maxcur = curvature;\r
--\r
--               if (curvature >= 1e99)\r
--                  continue;\r
--\r
--               gp_Pnt pnt = c->Value (s);\r
--\r
--               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));\r
--            }\r
--            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;\r
--         }\r
--\r
--         multithread.task = "Setting local mesh size (face curvature)";\r
--\r
--         // setting face curvature\r
--\r
--         int nfaces = geom.fmap.Extent();\r
--\r
--         for (int i = 1; i <= nfaces && !multithread.terminate; i++)\r
--         {\r
--            multithread.percent = 100 * (i-1)/double(nfaces);\r
--            TopoDS_Face face = TopoDS::Face(geom.fmap(i));\r
--            TopLoc_Location loc;\r
--            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);\r
--            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);\r
--\r
--            if (triangulation.IsNull()) continue;\r
--\r
--            BRepAdaptor_Surface sf(face, Standard_True);\r
--            BRepLProp_SLProps prop(sf, 2, 1e-5);\r
--\r
--            int ntriangles = triangulation -> NbTriangles();\r
--            for (int j = 1; j <= ntriangles; j++)\r
--            {\r
--               gp_Pnt p[3];\r
--               gp_Pnt2d par[3];\r
--\r
--               for (int k = 1; k <=3; k++)\r
--               {\r
--                  int n = triangulation->Triangles()(j)(k);\r
--                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);\r
--                  par[k-1] = triangulation->UVNodes()(n);\r
--               }\r
--\r
--               //double maxside = 0;\r
--               //maxside = max (maxside, p[0].Distance(p[1]));\r
--               //maxside = max (maxside, p[0].Distance(p[2]));\r
--               //maxside = max (maxside, p[1].Distance(p[2]));\r
--               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;\r
--\r
--               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);\r
--               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;\r
--            }\r
--         }\r
--\r
--         // setting close edges\r
--\r
--         if (occparam.resthcloseedgeenable)\r
--         {\r
--            multithread.task = "Setting local mesh size (close edges)";\r
--\r
--            int sections = 100;\r
--\r
--            Array<Line> lines(sections*nedges);\r
--\r
--            Box3dTree* searchtree =\r
--               new Box3dTree (bb.PMin(), bb.PMax());\r
--\r
--            int nlines = 0;\r
--            for (int i = 1; i <= nedges && !multithread.terminate; i++)\r
--            {\r
--               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));\r
--               if (BRep_Tool::Degenerated(edge)) continue;\r
--\r
--               double s0, s1;\r
--               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);\r
--               BRepAdaptor_Curve brepc(edge);\r
--               BRepLProp_CLProps prop(brepc, 1, 1e-5);\r
--               prop.SetParameter (s0);\r
--\r
--               gp_Vec d0 = prop.D1().Normalized();\r
--               double s_start = s0;\r
--               int count = 0;\r
--               for (int j = 1; j <= sections; j++)\r
--               {\r
--                  double s = s0 + (s1-s0)*(double)j/(double)sections;\r
--                  prop.SetParameter (s);\r
--                  gp_Vec d1 = prop.D1().Normalized();\r
--                  double cosalpha = fabs(d0*d1);\r
--                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))\r
--                  {\r
--                     count++;\r
--                     gp_Pnt p0 = c->Value (s_start);\r
--                     gp_Pnt p1 = c->Value (s);\r
--                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());\r
--                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());\r
--\r
--                     Box3d box;\r
--                     box.SetPoint (Point3d(lines[nlines].p0));\r
--                     box.AddPoint (Point3d(lines[nlines].p1));\r
--\r
--                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);\r
--                     nlines++;\r
--\r
--                     s_start = s;\r
--                     d0 = d1;\r
--                  }\r
--               }\r
--            }\r
--\r
--            Array<int> linenums;\r
--\r
--            for (int i = 0; i < nlines; i++)\r
--            {\r
--               multithread.percent = (100*i)/double(nlines);\r
--               Line & line = lines[i];\r
--\r
--               Box3d box;\r
--               box.SetPoint (Point3d(line.p0));\r
--               box.AddPoint (Point3d(line.p1));\r
--               double maxhline = max (mesh.GetH(box.PMin()),\r
--                  mesh.GetH(box.PMax()));\r
--               box.Increase(maxhline);\r
--\r
--               double mindist = 1e99;\r
--               linenums.SetSize(0);\r
--               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);\r
--\r
--               for (int j = 0; j < linenums.Size(); j++)\r
--               {\r
--                  int num = linenums[j]-1;\r
--                  if (i == num) continue;\r
--                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;\r
--                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;\r
--                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;\r
--                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;\r
--                  mindist = min (mindist, line.Dist(lines[num]));\r
--               }\r
--\r
--               mindist /= (occparam.resthcloseedgefac + VSMALL);\r
--\r
--               if (mindist < 1e-3)\r
--               {\r
--                  (*testout) << "extremely small local h: " << mindist\r
--                     << " --> setting to 1e-3" << endl;\r
--                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;\r
--                  mindist = 1e-3;\r
--               }\r
--\r
--               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);\r
--            }\r
--         }\r
--\r
--         multithread.task = savetask;\r
--\r
--      }\r
--\r
--      // Philippose - 09/03/2009\r
--      // Added the capability to load the mesh size from a \r
--      // file also for OpenCascade Geometry\r
--      // Note: \r
--      // ** If the "uselocalh" option is ticked in \r
--      // the "mesh options...insider" menu, the mesh \r
--      // size will be further modified by the topology \r
--      // analysis routines.\r
--      // ** To use the mesh size file as the sole source \r
--      // for defining the mesh size, uncheck the "uselocalh"\r
--      // option.\r
--      mesh.LoadLocalMeshSize (mparam.meshsizefilename);\r
--   }\r
--\r
--\r
--\r
--  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,\r
--                     int perfstepsstart, int perfstepsend)\r
--   {\r
--      multithread.percent = 0;\r
--\r
--      if (perfstepsstart <= MESHCONST_ANALYSE)\r
--      {\r
--         delete mesh;\r
--         mesh = new Mesh();\r
--         mesh->geomtype = Mesh::GEOM_OCC;\r
--\r
--         OCCSetLocalMeshSize(geom,*mesh);\r
--      }\r
--\r
--      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)\r
--         return TCL_OK;\r
--\r
--      if (perfstepsstart <= MESHCONST_MESHEDGES)\r
--      {\r
--         OCCFindEdges (geom, *mesh);\r
--\r
--         /*\r
--         cout << "Removing redundant points" << endl;\r
--\r
--         int i, j;\r
--         int np = mesh->GetNP();\r
--         Array<int> equalto;\r
--\r
--         equalto.SetSize (np);\r
--         equalto = 0;\r
--\r
--         for (i = 1; i <= np; i++)\r
--         {\r
--         for (j = i+1; j <= np; j++)\r
--         {\r
--         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))\r
--         equalto[j-1] = i;\r
--         }\r
--         }\r
--\r
--         for (i = 1; i <= np; i++)\r
--         if (equalto[i-1])\r
--         {\r
--         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;\r
--         for (j = 1; j <= mesh->GetNSeg(); j++)\r
--         {\r
--         Segment & seg = mesh->LineSegment(j);\r
--         if (seg[0] == i) seg[0] = equalto[i-1];\r
--         if (seg[1] == i) seg[1] = equalto[i-1];\r
--         }\r
--         }\r
--\r
--         cout << "Removing degenerated segments" << endl;\r
--         for (j = 1; j <= mesh->GetNSeg(); j++)\r
--         {\r
--         Segment & seg = mesh->LineSegment(j);\r
--         if (seg[0] == seg[1])\r
--         {\r
--         mesh->DeleteSegment(j);\r
--         cout << "Deleting Segment " << j << endl;\r
--         }\r
--         }\r
--\r
--         mesh->Compress();\r
--         */\r
--\r
--         /*\r
--         for (int i = 1; i <= geom.fmap.Extent(); i++)\r
--         {\r
--         Handle(Geom_Surface) hf1 =\r
--         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));\r
--         for (int j = i+1; j <= geom.fmap.Extent(); j++)\r
--         {\r
--         Handle(Geom_Surface) hf2 =\r
--         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));\r
--         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;\r
--         }\r
--         }\r
--         */\r
--\r
--#ifdef LOG_STREAM\r
--         (*logout) << "Edges meshed" << endl\r
--            << "time = " << GetTime() << " sec" << endl\r
--            << "points: " << mesh->GetNP() << endl;\r
--#endif\r
--      }\r
--\r
--      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)\r
--         return TCL_OK;\r
--\r
--      if (perfstepsstart <= MESHCONST_MESHSURFACE)\r
--      {\r
--         OCCMeshSurface (geom, *mesh, perfstepsend);\r
--         if (multithread.terminate) return TCL_OK;\r
--\r
--#ifdef LOG_STREAM\r
--         (*logout) << "Surfaces meshed" << endl\r
--            << "time = " << GetTime() << " sec" << endl\r
--            << "points: " << mesh->GetNP() << endl;\r
--#endif\r
--\r
--#ifdef STAT_STREAM\r
--         (*statout) << mesh->GetNSeg() << " & "\r
--            << mesh->GetNSE() << " & - &"\r
--            << GetTime() << " & " << endl;\r
--#endif\r
--\r
--         //      MeshQuality2d (*mesh);\r
--         mesh->CalcSurfacesOfNode();\r
--      }\r
--\r
--      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)\r
--         return TCL_OK;\r
--\r
--      if (perfstepsstart <= MESHCONST_MESHVOLUME)\r
--      {\r
--         multithread.task = "Volume meshing";\r
--\r
--         MESHING3_RESULT res = MeshVolume (mparam, *mesh);\r
--\r
--/*\r
--         ofstream problemfile("occmesh.rep",ios_base::app);\r
--\r
--         problemfile << "VOLUMEMESHING" << endl << endl;\r
--         if(res != MESHING3_OK)\r
--            problemfile << "ERROR" << endl << endl;\r
--         else\r
--            problemfile << "OK" << endl\r
--            << mesh->GetNE() << " elements" << endl << endl;\r
--\r
--         problemfile.close();\r
--*/\r
--\r
--         if (res != MESHING3_OK) return TCL_ERROR;\r
--\r
--         if (multithread.terminate) return TCL_OK;\r
--\r
--         RemoveIllegalElements (*mesh);\r
--         if (multithread.terminate) return TCL_OK;\r
--\r
--         MeshQuality3d (*mesh);\r
--\r
--#ifdef STAT_STREAM\r
--         (*statout) << GetTime() << " & ";\r
--#endif\r
--\r
--#ifdef LOG_STREAM\r
--         (*logout) << "Volume meshed" << endl\r
--            << "time = " << GetTime() << " sec" << endl\r
--            << "points: " << mesh->GetNP() << endl;\r
--#endif\r
--      }\r
--\r
--      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)\r
--         return TCL_OK;\r
--\r
--      if (perfstepsstart <= MESHCONST_OPTVOLUME)\r
--      {\r
--         multithread.task = "Volume optimization";\r
--\r
--         OptimizeVolume (mparam, *mesh);\r
--         if (multithread.terminate) return TCL_OK;\r
--\r
--#ifdef STAT_STREAM\r
--         (*statout) << GetTime() << " & "\r
--            << mesh->GetNE() << " & "\r
--            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;\r
--#endif\r
--\r
--#ifdef LOG_STREAM\r
--         (*logout) << "Volume optimized" << endl\r
--            << "time = " << GetTime() << " sec" << endl\r
--            << "points: " << mesh->GetNP() << endl;\r
--#endif\r
--\r
--         // cout << "Optimization complete" << endl;\r
--\r
--      }\r
--\r
--      (*testout) << "NP: " << mesh->GetNP() << endl;\r
--      for (int i = 1; i <= mesh->GetNP(); i++)\r
--         (*testout) << mesh->Point(i) << endl;\r
--\r
--      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;\r
--      for (int i = 1; i <= mesh->GetNSeg(); i++)\r
--         (*testout) << mesh->LineSegment(i) << endl;\r
--\r
--      return TCL_OK;\r
--   }\r
--}\r
--\r
--#endif\r
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <occgeom.hpp>
-+#include <meshing.hpp>
-+
-+
-+namespace netgen
-+{
-+
-+#include "occmeshsurf.hpp"
-+
-+#define TCL_OK 0
-+#define TCL_ERROR 1
-+
-+#define DIVIDEEDGESECTIONS 1000
-+#define IGNORECURVELENGTH 1e-4
-+#define VSMALL 1e-10
-+
-+
-+   bool merge_solids = 1;
-+
-+
-+  // can you please explain what you intend to compute here (JS) !!!
-+   double Line :: Dist (Line l)
-+   {
-+      Vec<3> n = p1-p0;
-+      Vec<3> q = l.p1-l.p0;
-+      double nq = n*q;
-+
-+      Point<3> p = p0 + 0.5*n;
-+      double lambda = (p-l.p0)*n / (nq + VSMALL);
-+
-+      if (lambda >= 0 && lambda <= 1)
-+      {
-+         double d = (p-l.p0-lambda*q).Length();
-+         //        if (d < 1e-3) d = 1e99;
-+         return d;
-+      }
-+      else
-+         return 1e99;
-+   }
-+
-+
-+
-+   double Line :: Length ()
-+   {
-+      return (p1-p0).Length();
-+   }
-+
-+
-+
-+   inline Point<3> occ2ng (const gp_Pnt & p)
-+   {
-+      return  Point<3> (p.X(), p.Y(), p.Z());
-+   }
-+
-+
-+
-+   double ComputeH (double kappa)
-+   {
-+      double hret;
-+      kappa *= mparam.curvaturesafety;
-+
-+      if (mparam.maxh * kappa < 1)
-+         hret = mparam.maxh;
-+      else
-+         hret = 1 / (kappa + VSMALL);
-+
-+      if (mparam.maxh < hret)
-+         hret = mparam.maxh;
-+
-+      return (hret);
-+   }
-+
-+
-+
-+
-+   void RestrictHTriangle (gp_Pnt2d & par0, gp_Pnt2d & par1, gp_Pnt2d & par2,
-+                           BRepLProp_SLProps * prop, Mesh & mesh, int depth, double h = 0)
-+   {
-+      int ls = -1;
-+
-+      gp_Pnt pnt0,pnt1,pnt2;
-+
-+      prop->SetParameters (par0.X(), par0.Y());
-+      pnt0 = prop->Value();
-+
-+      prop->SetParameters (par1.X(), par1.Y());
-+      pnt1 = prop->Value();
-+
-+      prop->SetParameters (par2.X(), par2.Y());
-+      pnt2 = prop->Value();
-+
-+      double aux;
-+      double maxside = pnt0.Distance(pnt1);
-+      ls = 2;
-+      aux = pnt1.Distance(pnt2);
-+      if(aux > maxside)
-+      {
-+         maxside = aux;
-+         ls = 0;
-+      }
-+      aux = pnt2.Distance(pnt0);
-+      if(aux > maxside)
-+      {
-+         maxside = aux;
-+         ls = 1;
-+      }
-+
-+
-+
-+      gp_Pnt2d parmid;
-+
-+      parmid.SetX( (par0.X()+par1.X()+par2.X()) / 3 );
-+      parmid.SetY( (par0.Y()+par1.Y()+par2.Y()) / 3 );
-+
-+      if (depth%3 == 0)
-+      {
-+         double curvature = 0;
-+
-+         prop->SetParameters (parmid.X(), parmid.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature()));
-+
-+         prop->SetParameters (par0.X(), par0.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         prop->SetParameters (par1.X(), par1.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         prop->SetParameters (par2.X(), par2.Y());
-+         if (!prop->IsCurvatureDefined())
-+         {
-+            (*testout) << "curvature not defined!" << endl;
-+            return;
-+         }
-+         curvature = max(curvature,max(fabs(prop->MinCurvature()),
-+            fabs(prop->MaxCurvature())));
-+
-+         //(*testout) << "curvature " << curvature << endl;
-+
-+         if (curvature < 1e-3)
-+         {
-+            //(*testout) << "curvature too small (" << curvature << ")!" << endl;
-+            return;
-+            // return war bis 10.2.05 auskommentiert
-+         }
-+
-+
-+
-+         h = ComputeH (curvature+1e-10);
-+
-+         if(h < 1e-4*maxside)
-+            return;
-+
-+         // commented to restrict H on a large sphere for example
-+         //if (h > 30) return;
-+      }
-+
-+      if (h < maxside && depth < 10)
-+      {
-+         //cout << "\r h " << h << flush;
-+         gp_Pnt2d pm;
-+
-+         //cout << "h " << h << " maxside " << maxside << " depth " << depth << endl;
-+         //cout << "par0 " << par0.X() << " " << par0.Y()
-+         //<< " par1 " << par1.X() << " " << par1.Y()
-+         //   << " par2 " << par2.X() << " " << par2.Y()<< endl;
-+
-+         if(ls == 0)
-+         {
-+            pm.SetX(0.5*(par1.X()+par2.X())); pm.SetY(0.5*(par1.Y()+par2.Y()));
-+            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
-+         }
-+         else if(ls == 1)
-+         {
-+            pm.SetX(0.5*(par0.X()+par2.X())); pm.SetY(0.5*(par0.Y()+par2.Y()));
-+            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par0, par1, prop, mesh, depth+1, h);
-+         }
-+         else if(ls == 2)
-+         {
-+            pm.SetX(0.5*(par0.X()+par1.X())); pm.SetY(0.5*(par0.Y()+par1.Y()));
-+            RestrictHTriangle(pm, par1, par2, prop, mesh, depth+1, h);
-+            RestrictHTriangle(pm, par2, par0, prop, mesh, depth+1, h);
-+         }
-+
-+      }
-+      else
-+      {
-+         gp_Pnt pnt;
-+         Point3d p3d;
-+
-+         prop->SetParameters (parmid.X(), parmid.Y());
-+         pnt = prop->Value();
-+         p3d = Point3d(pnt.X(), pnt.Y(), pnt.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt0.X(), pnt0.Y(), pnt0.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt1.X(), pnt1.Y(), pnt1.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         p3d = Point3d(pnt2.X(), pnt2.Y(), pnt2.Z());
-+         mesh.RestrictLocalH (p3d, h);
-+
-+         //(*testout) << "p = " << p3d << ", h = " << h << ", maxside = " << maxside << endl;
-+
-+      }
-+   }
-+
-+
-+
-+   void DivideEdge (TopoDS_Edge & edge, Array<MeshPoint> & ps,
-+                    Array<double> & params, Mesh & mesh)
-+   {
-+      double s0, s1;
-+      double maxh = mparam.maxh;
-+      int nsubedges = 1;
-+      gp_Pnt pnt, oldpnt;
-+      double svalue[DIVIDEEDGESECTIONS];
-+
-+      GProp_GProps system;
-+      BRepGProp::LinearProperties(edge, system);
-+      double L = system.Mass();
-+
-+      Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+
-+      double hvalue[DIVIDEEDGESECTIONS+1];
-+      hvalue[0] = 0;
-+      pnt = c->Value(s0);
-+
-+      //double olddist = 0; -- useless variables
-+      //double dist = 0;
-+
-+      int tmpVal = (int)(DIVIDEEDGESECTIONS);
-+
-+      for (int i = 1; i <= tmpVal; i++)
-+      {
-+         oldpnt = pnt;
-+         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));
-+         // -- no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS
-+         hvalue[i] = hvalue[i-1] +
-+         //   1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+         //   pnt.Distance(oldpnt);
-+           min( 1.0,
-+            1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*
-+                pnt.Distance(oldpnt));
-+
-+         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))
-+         //      <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;
-+
-+         //olddist = dist; -- useless variables
-+         //dist = pnt.Distance(oldpnt);
-+      }
-+
-+      //  nsubedges = int(ceil(hvalue[DIVIDEEDGESECTIONS]));
-+      nsubedges = max (1, int(floor(hvalue[DIVIDEEDGESECTIONS]+0.5)));
-+
-+      ps.SetSize(nsubedges-1);
-+      params.SetSize(nsubedges+1);
-+
-+      int i = 1;
-+      int i1 = 0;
-+      do
-+      {
-+         if (hvalue[i1]/hvalue[DIVIDEEDGESECTIONS]*nsubedges >= i)
-+         {
-+            // -- for nsubedges comparable to DIVIDEEDGESECTIONS
-+            //params[i] = s0+(i1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            double d1 = i1 - (hvalue[i1] - i*hvalue[DIVIDEEDGESECTIONS]/nsubedges)/(hvalue[i1]-hvalue[i1-1]);
-+            params[i] = s0+(d1/double(DIVIDEEDGESECTIONS))*(s1-s0);
-+            pnt = c->Value(params[i]);
-+            ps[i-1] = MeshPoint (Point3d(pnt.X(), pnt.Y(), pnt.Z()));
-+            i++;
-+         }
-+         i1++;
-+         if (i1 > DIVIDEEDGESECTIONS)
-+         {
-+            nsubedges = i;
-+            ps.SetSize(nsubedges-1);
-+            params.SetSize(nsubedges+1);
-+            cout << "divide edge: local h too small" << endl;
-+         }
-+      } while (i < nsubedges);
-+
-+      params[0] = s0;
-+      params[nsubedges] = s1;
-+
-+      if (params[nsubedges] <= params[nsubedges-1])
-+      {
-+         cout << "CORRECTED" << endl;
-+         ps.SetSize (nsubedges-2);
-+         params.SetSize (nsubedges);
-+         params[nsubedges] = s1;
-+      }
-+   }
-+
-+
-+
-+
-+   void OCCFindEdges (OCCGeometry & geom, Mesh & mesh)
-+   {
-+      const char * savetask = multithread.task;
-+      multithread.task = "Edge meshing";
-+
-+      (*testout) << "edge meshing" << endl;
-+
-+      int nvertices = geom.vmap.Extent();
-+      int nedges = geom.emap.Extent();
-+
-+      (*testout) << "nvertices = " << nvertices << endl;
-+      (*testout) << "nedges = " << nedges << endl;
-+
-+      double eps = 1e-6 * geom.GetBoundingBox().Diam();
-+      const double eps2 = eps * eps; // -- small optimization
-+
-+      int first_vp = mesh.GetNP()+1; // -- to support SALOME sub-meshes
-+
-+      for (int i = 1; i <= nvertices; i++)
-+      {
-+         gp_Pnt pnt = BRep_Tool::Pnt (TopoDS::Vertex(geom.vmap(i)));
-+         MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+
-+         bool exists = 0;
-+         if (merge_solids)
-+            for (PointIndex pi = 1; pi <= mesh.GetNP(); pi++)
-+               //if ( Dist2 (mesh[pi], Point<3>(mp)) < eps*eps)              
-+               if ( Dist2 (mesh[pi], Point<3>(mp)) < eps2 ) // -- small optimization
-+               {
-+                  exists = 1;
-+                  break;
-+               }
-+
-+               if (!exists)
-+                  mesh.AddPoint (mp);
-+      }
-+
-+      (*testout) << "different vertices = " << mesh.GetNP() << endl;
-+
-+
-+      int first_ep = mesh.GetNP()+1;
-+
-+      Array<int> face2solid[2];
-+      for (int i = 0; i<2; i++)
-+      {
-+         face2solid[i].SetSize (geom.fmap.Extent());
-+         face2solid[i] = 0;
-+      }
-+
-+      int solidnr = 0;
-+      for (TopExp_Explorer exp0(geom.shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+      {
-+         solidnr++;
-+         for (TopExp_Explorer exp1(exp0.Current(), TopAbs_FACE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face(exp1.Current());
-+            int facenr = geom.fmap.FindIndex(face);
-+            if ( facenr < 1 ) continue; // -- to support SALOME sub-meshes
-+
-+            if (face2solid[0][facenr-1] == 0)
-+               face2solid[0][facenr-1] = solidnr;
-+            else
-+               face2solid[1][facenr-1] = solidnr;
-+         }
-+      }
-+
-+
-+      int total = 0;
-+      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
-+         for (TopExp_Explorer exp2(geom.fmap(i3), TopAbs_WIRE); exp2.More(); exp2.Next())
-+            for (TopExp_Explorer exp3(exp2.Current(), TopAbs_EDGE); exp3.More(); exp3.Next())
-+               total++;
-+
-+
-+      int facenr = 0;
-+      int edgenr = 0;
-+
-+      edgenr = mesh.GetNSeg(); // to support SALOME sub-meshes
-+
-+      (*testout) << "faces = " << geom.fmap.Extent() << endl;
-+      int curr = 0;
-+
-+      for (int i3 = 1; i3 <= geom.fmap.Extent(); i3++)
-+      {
-+         TopoDS_Face face = TopoDS::Face(geom.fmap(i3));
-+         facenr = geom.fmap.FindIndex (face);       // sollte doch immer == i3 sein ??? JS
-+
-+         int solidnr0 = face2solid[0][i3-1];
-+         int solidnr1 = face2solid[1][i3-1];
-+
-+         /* auskommentiert am 3.3.05 von robert
-+         for (exp2.Init (geom.somap(solidnr0), TopAbs_FACE); exp2.More(); exp2.Next())
-+         {
-+         TopoDS_Face face2 = TopoDS::Face(exp2.Current());
-+         if (geom.fmap.FindIndex(face2) == facenr)
-+         {
-+         //                 if (face.Orientation() != face2.Orientation()) swap (solidnr0, solidnr1);
-+         }
-+         }
-+         */
-+
-+         mesh.AddFaceDescriptor (FaceDescriptor(facenr, solidnr0, solidnr1, 0));
-+
-+         // Philippose - 06/07/2009
-+         // Add the face colour to the mesh data
-+         Quantity_Color face_colour;
-+
-+         if(!(geom.face_colours.IsNull())
-+            && (geom.face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour)))
-+         {
-+            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(face_colour.Red(),face_colour.Green(),face_colour.Blue()));
-+         }
-+         else
-+         {
-+            mesh.GetFaceDescriptor(facenr).SetSurfColour(Vec3d(0.0,1.0,0.0));
-+         }
-+         // ACHTUNG! STIMMT NICHT ALLGEMEIN (RG)
-+
-+
-+         Handle(Geom_Surface) occface = BRep_Tool::Surface(face);
-+
-+         for (TopExp_Explorer exp2 (face, TopAbs_WIRE); exp2.More(); exp2.Next())
-+         {
-+            TopoDS_Shape wire = exp2.Current();
-+
-+            for (TopExp_Explorer exp3 (wire, TopAbs_EDGE); exp3.More(); exp3.Next())
-+            {
-+               curr++;
-+               (*testout) << "edge nr " << curr << endl;
-+
-+               multithread.percent = 100 * curr / double (total);
-+               if (multithread.terminate) return;
-+
-+               TopoDS_Edge edge = TopoDS::Edge (exp3.Current());
-+               if (BRep_Tool::Degenerated(edge))
-+               {
-+                  //(*testout) << "ignoring degenerated edge" << endl;
-+                  continue;
-+               }
-+               if ( geom.emap.FindIndex(edge) < 1 ) continue; // to support SALOME sub-meshes
-+
-+               if (geom.vmap.FindIndex(TopExp::FirstVertex (edge)) ==
-+                  geom.vmap.FindIndex(TopExp::LastVertex (edge)))
-+               {
-+                  GProp_GProps system;
-+                  BRepGProp::LinearProperties(edge, system);
-+
-+                  if (system.Mass() < eps)
-+                  {
-+                     cout << "ignoring edge " << geom.emap.FindIndex (edge)
-+                        << ". closed edge with length < " << eps << endl;
-+                     continue;
-+                  }
-+               }
-+
-+
-+               Handle(Geom2d_Curve) cof;
-+               double s0, s1;
-+               cof = BRep_Tool::CurveOnSurface (edge, face, s0, s1);
-+
-+               int geomedgenr = geom.emap.FindIndex(edge);
-+
-+               Array <MeshPoint> mp;
-+               Array <double> params;
-+
-+               DivideEdge (edge, mp, params, mesh);
-+ 
-+               Array <int> pnums;
-+               pnums.SetSize (mp.Size()+2);
-+
-+               if (!merge_solids)
-+               {
-+                 //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge));
-+                 //pnums[pnums.Size()-1] = geom.vmap.FindIndex (TopExp::LastVertex (edge));
-+                 MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );
-+                 int *ipp[] = { &pnums[0], &pnums[pnums.Size()-1] };
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v[2];
-+                 v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 v[1] = TopoDS::Vertex( vIt.Value() );
-+                 if ( v[0].Orientation() == TopAbs_REVERSED )
-+                   std::swap( v[0], v[1] );
-+                 for ( int i = 0; i < 2; ++i)
-+                 {
-+                   int &ip = *ipp[i];
-+                   ip = geom.vmap.FindIndex ( v[i] );
-+                   if ( ip == 0 || ip > nvertices )
-+                   {
-+                     int iv = ip;
-+                     if ( ip == 0 )
-+                       ip = iv = geom.vmap.Add( v[i] );
-+                     gp_Pnt pnt = BRep_Tool::Pnt( v[i] );
-+                     MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );
-+                     for (PointIndex pi = 1; pi < first_vp; pi++)
-+                       if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )
-+                       {
-+                         ip = pi;
-+                         if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )
-+                           continue;
-+                         if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())
-+                           mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );
-+                         break;
-+                       }
-+               }
-+               else
-+               {
-+                     ip += first_vp - 1;
-+                   }
-+                 }
-+               }
-+               else
-+               {
-+                 TopoDS_Iterator vIt( edge, false );
-+                 TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();
-+                 TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );
-+                 if ( v1.Orientation() == TopAbs_REVERSED )
-+                   std::swap( v1, v2 );
-+                 const bool isClosedEdge = v1.IsSame( v2 );
-+                 
-+                  Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
-+                  Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
-+                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
-+                  if ( isClosedEdge )
-+                    tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
-+
-+                  pnums[0] = -1;
-+                  pnums.Last() = -1;
-+                  for (PointIndex pi = 1; pi < first_ep; pi++)
-+                  {
-+                    if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;
-+                    if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;
-+                  }
-+                  if (( isClosedEdge && pnums[0] != pnums.Last() ) ||
-+                      ( !isClosedEdge && pnums[0] == pnums.Last() ))
-+                    pnums[0] = pnums.Last() = -1;
-+                  if ( pnums[0] == -1 || pnums.Last() == -1 )
-+                  {
-+                    // take into account a possible large gap between a vertex and an edge curve
-+                    // end and a large vertex tolerance covering the whole edge
-+                    if ( pnums[0] == -1 )
-+                    {
-+                      double tol = BRep_Tool::Tolerance( v1 );
-+                      for (PointIndex pi = 1; pi < first_ep; pi++)
-+                        if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)
-+                          pnums[0] = pi;
-+
-+                      if ( pnums[0] == -1 )
-+                        pnums[0] = first_ep-1- nvertices + geom.vmap.FindIndex ( v1 );
-+                    }
-+                    if ( isClosedEdge )
-+                    {
-+                      pnums.Last() = pnums[0];
-+                    }
-+                    else
-+                    {
-+                      if ( pnums.Last() == -1 )
-+                      {
-+                        double tol = BRep_Tool::Tolerance( v2 );
-+                        for (PointIndex pi = 1; pi < first_ep; pi++)
-+                          if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)
-+                            pnums.Last() = pi;
-+
-+                        if ( pnums.Last() == -1 )
-+                          pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );
-+                      }
-+
-+                      if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >
-+                           Dist2( lp, mesh[PointIndex(pnums.Last())]))
-+                      std::swap( pnums[0], pnums.Last() );
-+                    }
-+                  }
-+               }
-+
-+
-+               for (int i = 1; i <= mp.Size(); i++)
-+               {
-+                  bool exists = 0;
-+                  int j;
-+                  for (j = first_ep; j <= mesh.GetNP(); j++)
-+                  {
-+                     if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue; // to support SALOME fuse edges
-+                     if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)
-+                     {
-+                        exists = 1;
-+                        break;
-+                     }
-+                  }
-+
-+                     if (exists)
-+                        pnums[i] = j;
-+                     else
-+                     {
-+                        mesh.AddPoint (mp[i-1], geomedgenr); // to support SALOME fuse edges
-+                        (*testout) << "add meshpoint " << mp[i-1] << endl;
-+                        pnums[i] = mesh.GetNP();
-+                     }
-+               }
-+               (*testout) << "NP = " << mesh.GetNP() << endl;
-+
-+               //(*testout) << pnums[pnums.Size()-1] << endl;
-+
-+               for (int i = 1; i <= mp.Size()+1; i++)
-+               {
-+                  edgenr++;
-+                  Segment seg;
-+
-+                  seg[0] = pnums[i-1];
-+                  seg[1] = pnums[i];
-+                  seg.edgenr = edgenr;
-+                  seg.si = facenr;
-+                  seg.epgeominfo[0].dist = params[i-1];
-+                  seg.epgeominfo[1].dist = params[i];
-+                  seg.epgeominfo[0].edgenr = geomedgenr;
-+                  seg.epgeominfo[1].edgenr = geomedgenr;
-+
-+                  gp_Pnt2d p2d;
-+                  p2d = cof->Value(params[i-1]);
-+                  //                  if (i == 1) p2d = cof->Value(s0);
-+                  seg.epgeominfo[0].u = p2d.X();
-+                  seg.epgeominfo[0].v = p2d.Y();
-+                  p2d = cof->Value(params[i]);
-+                  //                  if (i == mp.Size()+1) p2d = cof -> Value(s1);
-+                  seg.epgeominfo[1].u = p2d.X();
-+                  seg.epgeominfo[1].v = p2d.Y();
-+
-+                  /*
-+                  if (occface->IsUPeriodic())
-+                  {
-+                  cout << "U Periodic" << endl;
-+                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
-+                  fabs(seg.epgeominfo[1].u-
-+                  (seg.epgeominfo[0].u-occface->UPeriod())))
-+                  seg.epgeominfo[0].u = p2d.X()+occface->UPeriod();
-+
-+                  if (fabs(seg.epgeominfo[1].u-seg.epgeominfo[0].u) >
-+                  fabs(seg.epgeominfo[1].u-
-+                  (seg.epgeominfo[0].u+occface->UPeriod())))
-+                  seg.epgeominfo[0].u = p2d.X()-occface->UPeriod();
-+                  }
-+
-+                  if (occface->IsVPeriodic())
-+                  {
-+                  cout << "V Periodic" << endl;
-+                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
-+                  fabs(seg.epgeominfo[1].v-
-+                  (seg.epgeominfo[0].v-occface->VPeriod())))
-+                  seg.epgeominfo[0].v = p2d.Y()+occface->VPeriod();
-+
-+                  if (fabs(seg.epgeominfo[1].v-seg.epgeominfo[0].v) >
-+                  fabs(seg.epgeominfo[1].v-
-+                  (seg.epgeominfo[0].v+occface->VPeriod())))
-+                  seg.epgeominfo[0].v = p2d.Y()-occface->VPeriod();
-+                  }
-+                  */
-+
-+                  if (edge.Orientation() == TopAbs_REVERSED)
-+                  {
-+                     swap (seg[0], seg[1]);
-+                     swap (seg.epgeominfo[0].dist, seg.epgeominfo[1].dist);
-+                     swap (seg.epgeominfo[0].u, seg.epgeominfo[1].u);
-+                     swap (seg.epgeominfo[0].v, seg.epgeominfo[1].v);
-+                  }
-+
-+                  mesh.AddSegment (seg);
-+
-+                  //edgesegments[geomedgenr-1]->Append(mesh.GetNSeg());
-+
-+               }
-+            }
-+         }
-+      }
-+
-+      //      for(i=1; i<=mesh.GetNSeg(); i++)
-+      //              (*testout) << "edge " << mesh.LineSegment(i).edgenr << " face " << mesh.LineSegment(i).si
-+      //                              << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;
-+      //      exit(10);
-+      for (int j = 1; j <= mesh.GetNP(); j++) // to support SALOME fuse edges: set level to zero
-+        mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );
-+
-+      mesh.CalcSurfacesOfNode();
-+      multithread.task = savetask;
-+   }
-+
-+
-+
-+
-+   void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend)
-+   {
-+      int i, j, k;
-+      int changed;
-+
-+      const char * savetask = multithread.task;
-+      multithread.task = "Surface meshing";
-+
-+      geom.facemeshstatus = 0;
-+
-+      int noldp = mesh.GetNP();
-+
-+      double starttime = GetTime();
-+
-+      Array<int> glob2loc(noldp);
-+
-+      //int projecttype = PARAMETERSPACE;
-+
-+      int projecttype = PARAMETERSPACE;
-+
-+      int notrys = 1;
-+
-+      int surfmesherror = 0;
-+
-+      for (k = 1; k <= mesh.GetNFD(); k++)
-+      {
-+         if(1==0 && !geom.fvispar[k-1].IsDrawable())
-+         {
-+            (*testout) << "ignoring face " << k << endl;
-+            cout << "ignoring face " << k << endl;
-+            continue;
-+         }
-+
-+         (*testout) << "mesh face " << k << endl;
-+         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
-+         geom.facemeshstatus[k-1] = -1;
-+
-+
-+         /*
-+         if (k != 42)
-+         {
-+         cout << "skipped" << endl;
-+         continue;
-+         }
-+         */
-+
-+
-+         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
-+
-+         int oldnf = mesh.GetNSE();
-+
-+         Box<3> bb = geom.GetBoundingBox();
-+
-+         //      int projecttype = PLANESPACE;
-+
-+         Meshing2OCCSurfaces meshing(TopoDS::Face(geom.fmap(k)), bb, projecttype);
-+
-+         if (meshing.GetProjectionType() == PLANESPACE)
-+            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (plane space projection)");
-+         else
-+            PrintMessage (2, "Face ", k, " / ", mesh.GetNFD(), " (parameter space projection)");
-+
-+         if (surfmesherror)
-+            cout << "Surface meshing error occured before (in " << surfmesherror << " faces)" << endl;
-+
-+         //      Meshing2OCCSurfaces meshing(f2, bb);
-+         meshing.SetStartTime (starttime);
-+
-+         //(*testout) << "Face " << k << endl << endl;
-+
-+
-+         if (meshing.GetProjectionType() == PLANESPACE)
-+         {
-+            int cntp = 0;
-+            glob2loc = 0;
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  for (j = 1; j <= 2; j++)
-+                  {
-+                     int pi = (j == 1) ? seg[0] : seg[1];
-+                     if (!glob2loc.Get(pi))
-+                     {
-+                        meshing.AddPoint (mesh.Point(pi), pi);
-+                        cntp++;
-+                        glob2loc.Elem(pi) = cntp;
-+                     }
-+                  }
-+               }
-+            }
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  PointGeomInfo gi0, gi1;
-+                  gi0.trignum = gi1.trignum = k;
-+                  gi0.u = seg.epgeominfo[0].u;
-+                  gi0.v = seg.epgeominfo[0].v;
-+                  gi1.u = seg.epgeominfo[1].u;
-+                  gi1.v = seg.epgeominfo[1].v;
-+
-+                  meshing.AddBoundaryElement (glob2loc.Get(seg[0]), glob2loc.Get(seg[1]), gi0, gi1);
-+                  //(*testout) << gi0.u << " " << gi0.v << endl;
-+                  //(*testout) << gi1.u << " " << gi1.v << endl;
-+               }
-+            }
-+         }
-+         else
-+         {
-+            int cntp = 0;
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+               if (mesh.LineSegment(i).si == k)
-+                  cntp+=2;
-+
-+
-+            Array< PointGeomInfo > gis;
-+
-+            gis.SetAllocSize (cntp);
-+            gis.SetSize (0);
-+
-+            for (i = 1; i <= mesh.GetNSeg(); i++)
-+            {
-+               Segment & seg = mesh.LineSegment(i);
-+               if (seg.si == k)
-+               {
-+                  PointGeomInfo gi0, gi1;
-+                  gi0.trignum = gi1.trignum = k;
-+                  gi0.u = seg.epgeominfo[0].u;
-+                  gi0.v = seg.epgeominfo[0].v;
-+                  gi1.u = seg.epgeominfo[1].u;
-+                  gi1.v = seg.epgeominfo[1].v;
-+
-+                  int locpnum[2] = {0, 0};
-+
-+                  for (j = 0; j < 2; j++)
-+                  {
-+                     PointGeomInfo gi = (j == 0) ? gi0 : gi1;
-+
-+                     int l;
-+                     for (l = 0; l < gis.Size() && locpnum[j] == 0; l++)
-+                     {
-+                        double dist = sqr (gis[l].u-gi.u)+sqr(gis[l].v-gi.v);
-+
-+                        if (dist < 1e-10)
-+                           locpnum[j] = l+1;
-+                     }
-+
-+                     if (locpnum[j] == 0)
-+                     {
-+                        int pi = (j == 0) ? seg[0] : seg[1];
-+                        meshing.AddPoint (mesh.Point(pi), pi);
-+
-+                        gis.SetSize (gis.Size()+1);
-+                        gis[l] = gi;
-+                        locpnum[j] = l+1;
-+                     }
-+                  }
-+
-+                  meshing.AddBoundaryElement (locpnum[0], locpnum[1], gi0, gi1);
-+                  //(*testout) << gi0.u << " " << gi0.v << endl;
-+                  //(*testout) << gi1.u << " " << gi1.v << endl;
-+
-+               }
-+            }
-+         }
-+
-+
-+
-+
-+
-+         // Philippose - 15/01/2009
-+         double maxh = geom.face_maxh[k-1];
-+         //double maxh = mparam.maxh;
-+         mparam.checkoverlap = 0;
-+         //      int noldpoints = mesh->GetNP();
-+         int noldsurfel = mesh.GetNSE();
-+
-+         GProp_GProps sprops;
-+         BRepGProp::SurfaceProperties(TopoDS::Face(geom.fmap(k)),sprops);
-+         meshing.SetMaxArea(2.*sprops.Mass());
-+
-+         MESHING2_RESULT res;
-+
-+         try {
-+         res = meshing.GenerateMesh (mesh, mparam, maxh, k);
-+         }
-+
-+         catch (SingularMatrixException)
-+         {
-+            (*myerr) << "Singular Matrix" << endl;
-+            res = MESHING2_GIVEUP;
-+         }
-+
-+         catch (UVBoundsException)
-+         {
-+            (*myerr) << "UV bounds exceeded" << endl;
-+            res = MESHING2_GIVEUP;
-+         }
-+
-+         projecttype = PARAMETERSPACE;
-+
-+         if (res != MESHING2_OK)
-+         {
-+            if (notrys == 1)
-+            {
-+               for (int i = noldsurfel+1; i <= mesh.GetNSE(); i++)
-+                  mesh.DeleteSurfaceElement (i);
-+
-+               mesh.Compress();
-+
-+               cout << "retry Surface " << k << endl;
-+
-+               k--;
-+               projecttype*=-1;
-+               notrys++;
-+               continue;
-+            }
-+            else
-+            {
-+               geom.facemeshstatus[k-1] = -1;
-+               PrintError ("Problem in Surface mesh generation");
-+               surfmesherror++;
-+               //           throw NgException ("Problem in Surface mesh generation");
-+            }
-+         }
-+         else
-+         {
-+            geom.facemeshstatus[k-1] = 1;
-+         }
-+
-+         notrys = 1;
-+
-+         for (i = oldnf+1; i <= mesh.GetNSE(); i++)
-+            mesh.SurfaceElement(i).SetIndex (k);
-+
-+      }
-+
-+//      ofstream problemfile("occmesh.rep");
-+
-+//      problemfile << "SURFACEMESHING" << endl << endl;
-+
-+      if (surfmesherror)
-+      {
-+         cout << "WARNING! NOT ALL FACES HAVE BEEN MESHED" << endl;
-+         cout << "SURFACE MESHING ERROR OCCURED IN " << surfmesherror << " FACES:" << endl;
-+         for (int i = 1; i <= geom.fmap.Extent(); i++)
-+            if (geom.facemeshstatus[i-1] == -1)
-+            {
-+               cout << "Face " << i << endl;
-+//               problemfile << "problem with face " << i << endl;
-+//               problemfile << "vertices: " << endl;
-+               TopExp_Explorer exp0,exp1,exp2;
-+               for ( exp0.Init(TopoDS::Face (geom.fmap(i)), TopAbs_WIRE); exp0.More(); exp0.Next() )
-+               {
-+                  TopoDS_Wire wire = TopoDS::Wire(exp0.Current());
-+                  for ( exp1.Init(wire,TopAbs_EDGE); exp1.More(); exp1.Next() )
-+                  {
-+                     TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+                     for ( exp2.Init(edge,TopAbs_VERTEX); exp2.More(); exp2.Next() )
-+                     {
-+                        TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());
-+                        gp_Pnt point = BRep_Tool::Pnt(vertex);
-+//                        problemfile << point.X() << " " << point.Y() << " " << point.Z() << endl;
-+                     }
-+                  }
-+               }
-+//               problemfile << endl;
-+
-+            }
-+            cout << endl << endl;
-+            cout << "for more information open IGES/STEP Topology Explorer" << endl;
-+//            problemfile.close();
-+            throw NgException ("Problem in Surface mesh generation");
-+      }
-+      else
-+      {
-+//         problemfile << "OK" << endl << endl;
-+//         problemfile.close();
-+      }
-+
-+
-+
-+
-+      if (multithread.terminate || perfstepsend < MESHCONST_OPTSURFACE)
-+         return;
-+
-+      multithread.task = "Optimizing surface";
-+
-+      static int timer_opt2d = NgProfiler::CreateTimer ("Optimization 2D");
-+      NgProfiler::StartTimer (timer_opt2d);
-+
-+      for (k = 1; k <= mesh.GetNFD(); k++)
-+      {
-+         //      if (k != 42) continue;
-+         //      if (k != 36) continue;
-+
-+         //      (*testout) << "optimize face " << k << endl;
-+         multithread.percent = 100 * k / (mesh.GetNFD() + VSMALL);
-+
-+         FaceDescriptor & fd = mesh.GetFaceDescriptor(k);
-+
-+         PrintMessage (1, "Optimize Surface ", k);
-+         for (i = 1; i <= mparam.optsteps2d; i++)
-+         {
-+            //          (*testout) << "optstep " << i << endl;
-+            if (multithread.terminate) return;
-+
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "EdgeSwapping (mesh, (i > mparam.optsteps2d/2))" << endl;
-+               meshopt.EdgeSwapping (mesh, (i > mparam.optsteps2d/2));
-+            }
-+
-+            if (multithread.terminate) return;
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "ImproveMesh (mesh)" << endl;
-+               meshopt.ImproveMesh (mesh, mparam);
-+            }
-+
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "CombineImprove (mesh)" << endl;
-+               meshopt.CombineImprove (mesh);
-+            }
-+
-+            if (multithread.terminate) return;
-+            {
-+               MeshOptimize2dOCCSurfaces meshopt(geom);
-+               meshopt.SetFaceIndex (k);
-+               meshopt.SetImproveEdges (0);
-+               //meshopt.SetMetricWeight (0.2);
-+               meshopt.SetMetricWeight (mparam.elsizeweight);
-+               meshopt.SetWriteStatus (0);
-+
-+               //         (*testout) << "ImproveMesh (mesh)" << endl;
-+               meshopt.ImproveMesh (mesh, mparam);
-+            }
-+         }
-+
-+      }
-+
-+
-+      mesh.CalcSurfacesOfNode();
-+      mesh.Compress();
-+
-+      NgProfiler::StopTimer (timer_opt2d);
-+
-+      multithread.task = savetask;
-+   }
-+
-+
-+
-+   void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh)
-+   {
-+      mesh.SetGlobalH (mparam.maxh);
-+      mesh.SetMinimalH (mparam.minh);
-+
-+      Array<double> maxhdom;
-+      maxhdom.SetSize (geom.NrSolids());
-+      maxhdom = mparam.maxh;
-+
-+      mesh.SetMaxHDomain (maxhdom);
-+
-+      Box<3> bb = geom.GetBoundingBox();
-+      bb.Increase (bb.Diam()/10);
-+
-+      mesh.SetLocalH (bb.PMin(), bb.PMax(), 0.5);
-+
-+      if (mparam.uselocalh)
-+      {
-+         const char * savetask = multithread.task;
-+         multithread.percent = 0;
-+
-+         mesh.SetLocalH (bb.PMin(), bb.PMax(), mparam.grading);
-+
-+         int nedges = geom.emap.Extent();
-+
-+               double mincurvelength = IGNORECURVELENGTH;
-+         double maxedgelen = 0;
-+         double minedgelen = 1e99;
-+
-+               if(occparam.resthminedgelenenable) 
-+               {
-+                      mincurvelength = occparam.resthminedgelen;
-+                      if(mincurvelength < IGNORECURVELENGTH) mincurvelength = IGNORECURVELENGTH;
-+               }
-+
-+         multithread.task = "Setting local mesh size (elements per edge)";
-+
-+         // setting elements per edge
-+
-+         for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+         {
-+            TopoDS_Edge e = TopoDS::Edge (geom.emap(i));
-+            multithread.percent = 100 * (i-1)/double(nedges);
-+            if (BRep_Tool::Degenerated(e)) continue;
-+
-+            GProp_GProps system;
-+            BRepGProp::LinearProperties(e, system);
-+            double len = system.Mass();
-+
-+            if (len < mincurvelength)
-+            {
-+               (*testout) << "ignored" << endl;
-+               continue;
-+            }
-+
-+            double localh = len/mparam.segmentsperedge;
-+            double s0, s1;
-+
-+            // Philippose - 23/01/2009
-+            // Find all the parent faces of a given edge
-+            // and limit the mesh size of the edge based on the
-+            // mesh size limit of the face
-+            TopTools_IndexedDataMapOfShapeListOfShape edge_face_map;
-+            edge_face_map.Clear();
-+
-+            TopExp::MapShapesAndAncestors(geom.shape, TopAbs_EDGE, TopAbs_FACE, edge_face_map);
-+            const TopTools_ListOfShape& parent_faces = edge_face_map.FindFromKey(e);
-+
-+            TopTools_ListIteratorOfListOfShape parent_face_list;
-+
-+            for(parent_face_list.Initialize(parent_faces); parent_face_list.More(); parent_face_list.Next())
-+            {
-+               TopoDS_Face parent_face = TopoDS::Face(parent_face_list.Value());
-+
-+               int face_index = geom.fmap.FindIndex(parent_face);
-+
-+               if(face_index >= 1) localh = min(localh,geom.face_maxh[face_index - 1]);
-+            }
-+
-+            Handle(Geom_Curve) c = BRep_Tool::Curve(e, s0, s1);
-+
-+            maxedgelen = max (maxedgelen, len);
-+            minedgelen = min (minedgelen, len);
-+
-+            // Philippose - 23/01/2009
-+            // Modified the calculation of maxj, because the
-+            // method used so far always results in maxj = 2,
-+            // which causes the localh to be set only at the
-+            // starting, mid and end of the edge.
-+            // Old Algorithm:
-+            // int maxj = 2 * (int) ceil (localh/len);
-+            int maxj = max((int) ceil(len/localh), 2);
-+
-+            for (int j = 0; j <= maxj; j++)
-+            {
-+               gp_Pnt pnt = c->Value (s0+double(j)/maxj*(s1-s0));
-+               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), localh);
-+            }
-+         }
-+
-+         multithread.task = "Setting local mesh size (edge curvature)";
-+
-+         // setting edge curvature
-+
-+         int nsections = 20;
-+
-+         for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+         {
-+            double maxcur = 0;
-+            multithread.percent = 100 * (i-1)/double(nedges);
-+            TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
-+            if (BRep_Tool::Degenerated(edge)) continue;
-+            double s0, s1;
-+            Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+            BRepAdaptor_Curve brepc(edge);
-+            BRepLProp_CLProps prop(brepc, 2, 1e-5);
-+
-+            for (int j = 1; j <= nsections; j++)
-+            {
-+               double s = s0 + j/(double) nsections * (s1-s0);
-+               prop.SetParameter (s);
-+               double curvature = prop.Curvature();
-+               if(curvature> maxcur) maxcur = curvature;
-+
-+               if (curvature >= 1e99)
-+                  continue;
-+
-+               gp_Pnt pnt = c->Value (s);
-+
-+               mesh.RestrictLocalH (Point3d(pnt.X(), pnt.Y(), pnt.Z()), ComputeH (fabs(curvature)));
-+            }
-+            // (*testout) << "edge " << i << " max. curvature: " << maxcur << endl;
-+         }
-+
-+         multithread.task = "Setting local mesh size (face curvature)";
-+
-+         // setting face curvature
-+
-+         int nfaces = geom.fmap.Extent();
-+
-+         for (int i = 1; i <= nfaces && !multithread.terminate; i++)
-+         {
-+            multithread.percent = 100 * (i-1)/double(nfaces);
-+            TopoDS_Face face = TopoDS::Face(geom.fmap(i));
-+            TopLoc_Location loc;
-+            Handle(Geom_Surface) surf = BRep_Tool::Surface (face);
-+            Handle(Poly_Triangulation) triangulation = BRep_Tool::Triangulation (face, loc);
-+
-+            if (triangulation.IsNull()) continue;
-+
-+            BRepAdaptor_Surface sf(face, Standard_True);
-+            BRepLProp_SLProps prop(sf, 2, 1e-5);
-+
-+            int ntriangles = triangulation -> NbTriangles();
-+            for (int j = 1; j <= ntriangles; j++)
-+            {
-+               gp_Pnt p[3];
-+               gp_Pnt2d par[3];
-+
-+               for (int k = 1; k <=3; k++)
-+               {
-+                  int n = triangulation->Triangles()(j)(k);
-+                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
-+                  par[k-1] = triangulation->UVNodes()(n);
-+               }
-+
-+               //double maxside = 0;
-+               //maxside = max (maxside, p[0].Distance(p[1]));
-+               //maxside = max (maxside, p[0].Distance(p[2]));
-+               //maxside = max (maxside, p[1].Distance(p[2]));
-+               //cout << "\rFace " << i << " pos11 ntriangles " << ntriangles << " maxside " << maxside << flush;
-+
-+               RestrictHTriangle (par[0], par[1], par[2], &prop, mesh, 0);
-+               //cout << "\rFace " << i << " pos12 ntriangles " << ntriangles << flush;
-+            }
-+         }
-+
-+         // setting close edges
-+
-+         if (occparam.resthcloseedgeenable)
-+         {
-+            multithread.task = "Setting local mesh size (close edges)";
-+
-+            int sections = 100;
-+
-+            Array<Line> lines(sections*nedges);
-+
-+            Box3dTree* searchtree =
-+               new Box3dTree (bb.PMin(), bb.PMax());
-+
-+            int nlines = 0;
-+            for (int i = 1; i <= nedges && !multithread.terminate; i++)
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge (geom.emap(i));
-+               if (BRep_Tool::Degenerated(edge)) continue;
-+
-+               double s0, s1;
-+               Handle(Geom_Curve) c = BRep_Tool::Curve(edge, s0, s1);
-+               BRepAdaptor_Curve brepc(edge);
-+               BRepLProp_CLProps prop(brepc, 1, 1e-5);
-+               prop.SetParameter (s0);
-+
-+               gp_Vec d0 = prop.D1().Normalized();
-+               double s_start = s0;
-+               int count = 0;
-+               for (int j = 1; j <= sections; j++)
-+               {
-+                  double s = s0 + (s1-s0)*(double)j/(double)sections;
-+                  prop.SetParameter (s);
-+                  gp_Vec d1 = prop.D1().Normalized();
-+                  double cosalpha = fabs(d0*d1);
-+                  if ((j == sections) || (cosalpha < cos(10.0/180.0*M_PI)))
-+                  {
-+                     count++;
-+                     gp_Pnt p0 = c->Value (s_start);
-+                     gp_Pnt p1 = c->Value (s);
-+                     lines[nlines].p0 = Point<3> (p0.X(), p0.Y(), p0.Z());
-+                     lines[nlines].p1 = Point<3> (p1.X(), p1.Y(), p1.Z());
-+
-+                     Box3d box;
-+                     box.SetPoint (Point3d(lines[nlines].p0));
-+                     box.AddPoint (Point3d(lines[nlines].p1));
-+
-+                     searchtree->Insert (box.PMin(), box.PMax(), nlines+1);
-+                     nlines++;
-+
-+                     s_start = s;
-+                     d0 = d1;
-+                  }
-+               }
-+            }
-+
-+            Array<int> linenums;
-+
-+            for (int i = 0; i < nlines; i++)
-+            {
-+               multithread.percent = (100*i)/double(nlines);
-+               Line & line = lines[i];
-+
-+               Box3d box;
-+               box.SetPoint (Point3d(line.p0));
-+               box.AddPoint (Point3d(line.p1));
-+               double maxhline = max (mesh.GetH(box.PMin()),
-+                  mesh.GetH(box.PMax()));
-+               box.Increase(maxhline);
-+
-+               double mindist = 1e99;
-+               linenums.SetSize(0);
-+               searchtree->GetIntersecting(box.PMin(),box.PMax(),linenums);
-+
-+               for (int j = 0; j < linenums.Size(); j++)
-+               {
-+                  int num = linenums[j]-1;
-+                  if (i == num) continue;
-+                  if ((line.p0-lines[num].p0).Length2() < 1e-15) continue;
-+                  if ((line.p0-lines[num].p1).Length2() < 1e-15) continue;
-+                  if ((line.p1-lines[num].p0).Length2() < 1e-15) continue;
-+                  if ((line.p1-lines[num].p1).Length2() < 1e-15) continue;
-+                  mindist = min (mindist, line.Dist(lines[num]));
-+               }
-+
-+               mindist /= (occparam.resthcloseedgefac + VSMALL);
-+
-+               if (mindist < 1e-3)
-+               {
-+                  (*testout) << "extremely small local h: " << mindist
-+                     << " --> setting to 1e-3" << endl;
-+                  (*testout) << "somewhere near " << line.p0 << " - " << line.p1 << endl;
-+                  mindist = 1e-3;
-+               }
-+
-+               mesh.RestrictLocalHLine(line.p0, line.p1, mindist);
-+            }
-+         }
-+
-+         multithread.task = savetask;
-+
-+      }
-+
-+      // Philippose - 09/03/2009
-+      // Added the capability to load the mesh size from a 
-+      // file also for OpenCascade Geometry
-+      // Note: 
-+      // ** If the "uselocalh" option is ticked in 
-+      // the "mesh options...insider" menu, the mesh 
-+      // size will be further modified by the topology 
-+      // analysis routines.
-+      // ** To use the mesh size file as the sole source 
-+      // for defining the mesh size, uncheck the "uselocalh"
-+      // option.
-+      mesh.LoadLocalMeshSize (mparam.meshsizefilename);
-+   }
-+
-+
-+
-+  int OCCGenerateMesh (OCCGeometry & geom, Mesh *& mesh, MeshingParameters & mparam,
-+                     int perfstepsstart, int perfstepsend)
-+   {
-+      multithread.percent = 0;
-+
-+      if (perfstepsstart <= MESHCONST_ANALYSE)
-+      {
-+         delete mesh;
-+         mesh = new Mesh();
-+         mesh->geomtype = Mesh::GEOM_OCC;
-+
-+         OCCSetLocalMeshSize(geom,*mesh);
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_ANALYSE)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHEDGES)
-+      {
-+         OCCFindEdges (geom, *mesh);
-+
-+         /*
-+         cout << "Removing redundant points" << endl;
-+
-+         int i, j;
-+         int np = mesh->GetNP();
-+         Array<int> equalto;
-+
-+         equalto.SetSize (np);
-+         equalto = 0;
-+
-+         for (i = 1; i <= np; i++)
-+         {
-+         for (j = i+1; j <= np; j++)
-+         {
-+         if (!equalto[j-1] && (Dist2 (mesh->Point(i), mesh->Point(j)) < 1e-12))
-+         equalto[j-1] = i;
-+         }
-+         }
-+
-+         for (i = 1; i <= np; i++)
-+         if (equalto[i-1])
-+         {
-+         cout << "Point " << i << " is equal to Point " << equalto[i-1] << endl;
-+         for (j = 1; j <= mesh->GetNSeg(); j++)
-+         {
-+         Segment & seg = mesh->LineSegment(j);
-+         if (seg[0] == i) seg[0] = equalto[i-1];
-+         if (seg[1] == i) seg[1] = equalto[i-1];
-+         }
-+         }
-+
-+         cout << "Removing degenerated segments" << endl;
-+         for (j = 1; j <= mesh->GetNSeg(); j++)
-+         {
-+         Segment & seg = mesh->LineSegment(j);
-+         if (seg[0] == seg[1])
-+         {
-+         mesh->DeleteSegment(j);
-+         cout << "Deleting Segment " << j << endl;
-+         }
-+         }
-+
-+         mesh->Compress();
-+         */
-+
-+         /*
-+         for (int i = 1; i <= geom.fmap.Extent(); i++)
-+         {
-+         Handle(Geom_Surface) hf1 =
-+         BRep_Tool::Surface(TopoDS::Face(geom.fmap(i)));
-+         for (int j = i+1; j <= geom.fmap.Extent(); j++)
-+         {
-+         Handle(Geom_Surface) hf2 =
-+         BRep_Tool::Surface(TopoDS::Face(geom.fmap(j)));
-+         if (hf1 == hf2) cout << "face " << i << " and face " << j << " lie on same surface" << endl;
-+         }
-+         }
-+         */
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Edges meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_MESHEDGES)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHSURFACE)
-+      {
-+         OCCMeshSurface (geom, *mesh, perfstepsend);
-+         if (multithread.terminate) return TCL_OK;
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Surfaces meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+
-+#ifdef STAT_STREAM
-+         (*statout) << mesh->GetNSeg() << " & "
-+            << mesh->GetNSE() << " & - &"
-+            << GetTime() << " & " << endl;
-+#endif
-+
-+         //      MeshQuality2d (*mesh);
-+         mesh->CalcSurfacesOfNode();
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_OPTSURFACE)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_MESHVOLUME)
-+      {
-+         multithread.task = "Volume meshing";
-+
-+         MESHING3_RESULT res = MeshVolume (mparam, *mesh);
-+
-+/*
-+         ofstream problemfile("occmesh.rep",ios_base::app);
-+
-+         problemfile << "VOLUMEMESHING" << endl << endl;
-+         if(res != MESHING3_OK)
-+            problemfile << "ERROR" << endl << endl;
-+         else
-+            problemfile << "OK" << endl
-+            << mesh->GetNE() << " elements" << endl << endl;
-+
-+         problemfile.close();
-+*/
-+
-+         if (res != MESHING3_OK) return TCL_ERROR;
-+
-+         if (multithread.terminate) return TCL_OK;
-+
-+         RemoveIllegalElements (*mesh);
-+         if (multithread.terminate) return TCL_OK;
-+
-+         MeshQuality3d (*mesh);
-+
-+#ifdef STAT_STREAM
-+         (*statout) << GetTime() << " & ";
-+#endif
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Volume meshed" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+      }
-+
-+      if (multithread.terminate || perfstepsend <= MESHCONST_MESHVOLUME)
-+         return TCL_OK;
-+
-+      if (perfstepsstart <= MESHCONST_OPTVOLUME)
-+      {
-+         multithread.task = "Volume optimization";
-+
-+         OptimizeVolume (mparam, *mesh);
-+         if (multithread.terminate) return TCL_OK;
-+
-+#ifdef STAT_STREAM
-+         (*statout) << GetTime() << " & "
-+            << mesh->GetNE() << " & "
-+            << mesh->GetNP() << " " << '\\' << '\\' << " \\" << "hline" << endl;
-+#endif
-+
-+#ifdef LOG_STREAM
-+         (*logout) << "Volume optimized" << endl
-+            << "time = " << GetTime() << " sec" << endl
-+            << "points: " << mesh->GetNP() << endl;
-+#endif
-+
-+         // cout << "Optimization complete" << endl;
-+
-+      }
-+
-+      (*testout) << "NP: " << mesh->GetNP() << endl;
-+      for (int i = 1; i <= mesh->GetNP(); i++)
-+         (*testout) << mesh->Point(i) << endl;
-+
-+      (*testout) << endl << "NSegments: " << mesh->GetNSeg() << endl;
-+      for (int i = 1; i <= mesh->GetNSeg(); i++)
-+         (*testout) << mesh->LineSegment(i) << endl;
-+
-+      return TCL_OK;
-+   }
-+}
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.cpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.cpp      2019-11-14 16:56:23.366425439 +0300
-@@ -1,1612 +1,1669 @@
--\r
--#ifdef OCCGEOMETRY\r
--\r
--#include <mystdlib.h>\r
--#include <occgeom.hpp>\r
--#include "ShapeAnalysis_ShapeTolerance.hxx"\r
--#include "ShapeAnalysis_ShapeContents.hxx"\r
--#include "ShapeAnalysis_CheckSmallFace.hxx"\r
--#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"\r
--#include "ShapeAnalysis_Surface.hxx"\r
--#include "BRepAlgoAPI_Fuse.hxx"\r
--#include "BRepCheck_Analyzer.hxx"\r
--#include "BRepLib.hxx"\r
--#include "ShapeBuild_ReShape.hxx"\r
--#include "ShapeFix.hxx"\r
--#include "ShapeFix_FixSmallFace.hxx"\r
--#include "Partition_Spliter.hxx"\r
--\r
--\r
--namespace netgen\r
--{\r
--   void OCCGeometry :: PrintNrShapes ()\r
--   {\r
--      TopExp_Explorer e;\r
--      int count = 0;\r
--      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;\r
--      cout << "CompSolids: " << count << endl;\r
--\r
--      cout << "Solids    : " << somap.Extent() << endl;\r
--      cout << "Shells    : " << shmap.Extent() << endl;\r
--      cout << "Faces     : " << fmap.Extent() << endl;\r
--      cout << "Edges     : " << emap.Extent() << endl;\r
--      cout << "Vertices  : " << vmap.Extent() << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void PrintContents (OCCGeometry * geom)\r
--   {\r
--      ShapeAnalysis_ShapeContents cont;\r
--      cont.Clear();\r
--      cont.Perform(geom->shape);\r
--\r
--      (*testout) << "OCC CONTENTS" << endl;\r
--      (*testout) << "============" << endl;\r
--      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;\r
--      (*testout) << "SHELLS   : " << cont.NbShells() << endl;\r
--      (*testout) << "FACES    : " << cont.NbFaces() << endl;\r
--      (*testout) << "WIRES    : " << cont.NbWires() << endl;\r
--      (*testout) << "EDGES    : " << cont.NbEdges() << endl;\r
--      (*testout) << "VERTICES : " << cont.NbVertices() << endl;\r
--\r
--      TopExp_Explorer e;\r
--      int count = 0;\r
--      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())\r
--         count++;\r
--      (*testout) << "Compounds: " << count << endl;\r
--\r
--      count = 0;\r
--      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())\r
--         count++;\r
--      (*testout) << "CompSolids: " << count << endl;\r
--\r
--      (*testout) << endl;\r
--\r
--      cout << "Highest entry in topology hierarchy: " << endl;\r
--      if (count)\r
--         cout << count << " composite solid(s)" << endl;\r
--      else\r
--         if (geom->somap.Extent())\r
--            cout << geom->somap.Extent() << " solid(s)" << endl;\r
--         else\r
--            if (geom->shmap.Extent())\r
--               cout << geom->shmap.Extent() << " shells(s)" << endl;\r
--            else\r
--               if (geom->fmap.Extent())\r
--                  cout << geom->fmap.Extent() << " face(s)" << endl;\r
--               else\r
--                  if (geom->wmap.Extent())\r
--                     cout << geom->wmap.Extent() << " wire(s)" << endl;\r
--                  else\r
--                     if (geom->emap.Extent())\r
--                        cout << geom->emap.Extent() << " edge(s)" << endl;\r
--                     else\r
--                        if (geom->vmap.Extent())\r
--                           cout << geom->vmap.Extent() << " vertices(s)" << endl;\r
--                        else\r
--                           cout << "no entities" << endl;\r
--\r
--   }\r
--\r
--\r
--\r
--   void OCCGeometry :: HealGeometry ()\r
--   {\r
--      int nrc = 0, nrcs = 0,\r
--         nrso = somap.Extent(),\r
--         nrsh = shmap.Extent(),\r
--         nrf = fmap.Extent(),\r
--         nrw = wmap.Extent(),\r
--         nre = emap.Extent(),\r
--         nrv = vmap.Extent();\r
--\r
--      TopExp_Explorer exp0;\r
--      TopExp_Explorer exp1;\r
--\r
--\r
--      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;\r
--      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;\r
--\r
--      double surfacecont = 0;\r
--\r
--      {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--         rebuild->Apply(shape);\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
--         }\r
--         shape = rebuild->Apply(shape);\r
--      }\r
--\r
--      BuildFMap();\r
--\r
--\r
--      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
--      {\r
--         TopoDS_Face face = TopoDS::Face(exp0.Current());\r
--\r
--         GProp_GProps system;\r
--         BRepGProp::SurfaceProperties(face, system);\r
--         surfacecont += system.Mass();\r
--      }\r
--\r
--\r
--      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl\r
--         << "-----------------------------------" << endl;\r
--\r
--      {\r
--         cout << endl << "- repairing faces" << endl;\r
--\r
--         Handle(ShapeFix_Face) sff;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--         rebuild->Apply(shape);\r
--\r
--\r
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
--         {\r
--            // Variable to hold the colour (if there exists one) of \r
--            // the current face being processed\r
--            Quantity_Color face_colour;\r
--\r
--            TopoDS_Face face = TopoDS::Face (exp0.Current());\r
--\r
--            if(face_colours.IsNull()\r
--               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))\r
--            {\r
--               // Set the default face colour to green (Netgen Standard)\r
--               // if no colour has been defined for the face\r
--               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);\r
--            }\r
--\r
--            sff = new ShapeFix_Face (face);\r
--            sff->FixAddNaturalBoundMode() = Standard_True;\r
--            sff->FixSmallAreaWireMode() = Standard_True;\r
--            sff->Perform();\r
--\r
--            if(sff->Status(ShapeExtend_DONE1) ||\r
--               sff->Status(ShapeExtend_DONE2) ||\r
--               sff->Status(ShapeExtend_DONE3) ||\r
--               sff->Status(ShapeExtend_DONE4) ||\r
--               sff->Status(ShapeExtend_DONE5))\r
--            {\r
--               cout << "repaired face " << fmap.FindIndex(face) << " ";\r
--               if(sff->Status(ShapeExtend_DONE1))\r
--                  cout << "(some wires are fixed)" <<endl;\r
--               else if(sff->Status(ShapeExtend_DONE2))\r
--                  cout << "(orientation of wires fixed)" <<endl;\r
--               else if(sff->Status(ShapeExtend_DONE3))\r
--                  cout << "(missing seam added)" <<endl;\r
--               else if(sff->Status(ShapeExtend_DONE4))\r
--                  cout << "(small area wire removed)" <<endl;\r
--               else if(sff->Status(ShapeExtend_DONE5))\r
--                  cout << "(natural bounds added)" <<endl;\r
--               TopoDS_Face newface = sff->Face();\r
--\r
--               rebuild->Replace(face, newface, Standard_False);\r
--            }\r
--\r
--            // Set the original colour of the face to the newly created \r
--            // face (after the healing process)\r
--            face = TopoDS::Face (exp0.Current());\r
--            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);\r
--         }\r
--         shape = rebuild->Apply(shape);\r
--      }\r
--\r
--\r
--      {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--         rebuild->Apply(shape);\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
--         }\r
--         shape = rebuild->Apply(shape);\r
--      }\r
--\r
--\r
--      if (fixsmalledges)\r
--      {\r
--         cout << endl << "- fixing small edges" << endl;\r
--\r
--         Handle(ShapeFix_Wire) sfw;\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--         rebuild->Apply(shape);\r
--\r
--\r
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
--         {\r
--            TopoDS_Face face = TopoDS::Face(exp0.Current());\r
--\r
--            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())\r
--            {\r
--               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());\r
--               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);\r
--               sfw->ModifyTopologyMode() = Standard_True;\r
--\r
--               sfw->ClosedWireMode() = Standard_True;\r
--\r
--               bool replace = false;\r
--\r
--               replace = sfw->FixReorder() || replace;\r
--\r
--               replace = sfw->FixConnected() || replace;\r
--\r
--\r
--\r
--               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||\r
--                  sfw->StatusSmall(ShapeExtend_FAIL2) ||\r
--                  sfw->StatusSmall(ShapeExtend_FAIL3)))\r
--               {\r
--                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;\r
--                  replace = true;\r
--\r
--               }\r
--               else if (sfw->StatusSmall(ShapeExtend_FAIL1))\r
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
--                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;\r
--               else if (sfw->StatusSmall(ShapeExtend_FAIL2))\r
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
--                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;\r
--               else if (sfw->StatusSmall(ShapeExtend_FAIL3))\r
--                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)\r
--                  << ", CheckConnected has failed" << endl;\r
--\r
--               replace = sfw->FixEdgeCurves() || replace;\r
--\r
--               replace = sfw->FixDegenerated() || replace;\r
--\r
--               replace = sfw->FixSelfIntersection() || replace;\r
--\r
--               replace = sfw->FixLacking(Standard_True) || replace;\r
--\r
--               if(replace)\r
--               {\r
--                  TopoDS_Wire newwire = sfw->Wire();\r
--                  rebuild->Replace(oldwire, newwire, Standard_False);\r
--               }\r
--\r
--               //delete sfw; sfw = NULL;\r
--\r
--            }\r
--         }\r
--\r
--         shape = rebuild->Apply(shape);\r
--\r
--\r
--\r
--         {\r
--            BuildFMap();\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--            rebuild->Apply(shape);\r
--\r
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--            {\r
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==\r
--                  vmap.FindIndex(TopExp::LastVertex (edge)))\r
--               {\r
--                  GProp_GProps system;\r
--                  BRepGProp::LinearProperties(edge, system);\r
--                  if (system.Mass() < tolerance)\r
--                  {\r
--                     cout << "removing degenerated edge " << emap.FindIndex(edge)\r
--                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))\r
--                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;\r
--                     rebuild->Remove(edge, false);\r
--                  }\r
--               }\r
--            }\r
--            shape = rebuild->Apply(shape);\r
--\r
--            //delete rebuild; rebuild = NULL;\r
--         }\r
--\r
--\r
--\r
--         {\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--            rebuild->Apply(shape);\r
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--            {\r
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--               if ( BRep_Tool::Degenerated(edge) )\r
--                  rebuild->Remove(edge, false);\r
--            }\r
--            shape = rebuild->Apply(shape);\r
--         }\r
--\r
--\r
--\r
--\r
--         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;\r
--         sfwf->SetPrecision(tolerance);\r
--         sfwf->Load (shape);\r
--         sfwf->ModeDropSmallEdges() = Standard_True;\r
--\r
--         sfwf->SetPrecision(boundingbox.Diam());\r
--\r
--         if (sfwf->FixWireGaps())\r
--         {\r
--            cout << endl << "- fixing wire gaps" << endl;\r
--            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;\r
--            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;\r
--            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;\r
--            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;\r
--            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;\r
--         }\r
--\r
--         sfwf->SetPrecision(tolerance);\r
--\r
--\r
--         {\r
--            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--            {\r
--               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--               if ( BRep_Tool::Degenerated(edge) )\r
--                  cout << "degenerated edge at position 4" << endl;\r
--            }\r
--         }\r
--\r
--\r
--\r
--         if (sfwf->FixSmallEdges())\r
--         {\r
--            cout << endl << "- fixing wire frames" << endl;\r
--            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;\r
--            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;\r
--            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;\r
--         }\r
--\r
--\r
--\r
--         shape = sfwf->Shape();\r
--\r
--         //delete sfwf; sfwf = NULL;\r
--         //delete rebuild; rebuild = NULL;\r
--\r
--      }\r
--\r
--\r
--\r
--\r
--\r
--      {\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               cout << "degenerated edge at position 5" << endl;\r
--         }\r
--      }\r
--\r
--\r
--\r
--\r
--      if (fixspotstripfaces)\r
--      {\r
--\r
--         cout << endl << "- fixing spot and strip faces" << endl;\r
--         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();\r
--         sffsm -> Init (shape);\r
--         sffsm -> SetPrecision (tolerance);\r
--         sffsm -> Perform();\r
--\r
--         shape = sffsm -> FixShape();\r
--         //delete sffsm; sffsm = NULL;\r
--      }\r
--\r
--\r
--      {\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               cout << "degenerated edge at position 6" << endl;\r
--         }\r
--      }\r
--\r
--\r
--\r
--      if (sewfaces)\r
--      {\r
--         cout << endl << "- sewing faces" << endl;\r
--\r
--         BRepOffsetAPI_Sewing sewedObj(tolerance);\r
--\r
--         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
--         {\r
--            TopoDS_Face face = TopoDS::Face (exp0.Current());\r
--            sewedObj.Add (face);\r
--         }\r
--\r
--         sewedObj.Perform();\r
--\r
--         if (!sewedObj.SewedShape().IsNull())\r
--            shape = sewedObj.SewedShape();\r
--         else\r
--            cout << " not possible";\r
--      }\r
--\r
--\r
--\r
--      {\r
--         Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--         rebuild->Apply(shape);\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               rebuild->Remove(edge, false);\r
--         }\r
--         shape = rebuild->Apply(shape);\r
--      }\r
--\r
--\r
--      if (makesolids)\r
--      {\r
--         cout << endl << "- making solids" << endl;\r
--\r
--         BRepBuilderAPI_MakeSolid ms;\r
--         int count = 0;\r
--         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())\r
--         {\r
--            count++;\r
--            ms.Add (TopoDS::Shell(exp0.Current()));\r
--         }\r
--\r
--         if (!count)\r
--         {\r
--            cout << " not possible (no shells)" << endl;\r
--         }\r
--         else\r
--         {\r
--            BRepCheck_Analyzer ba(ms);\r
--            if (ba.IsValid ())\r
--            {\r
--               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;\r
--               sfs->Init (ms);\r
--               sfs->SetPrecision(tolerance);\r
--               sfs->SetMaxTolerance(tolerance);\r
--               sfs->Perform();\r
--               shape = sfs->Shape();\r
--\r
--               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
--               {\r
--                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
--                  TopoDS_Solid newsolid = solid;\r
--                  BRepLib::OrientClosedSolid (newsolid);\r
--                  Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--                  //            rebuild->Apply(shape);\r
--                  rebuild->Replace(solid, newsolid, Standard_False);\r
--                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);\r
--                  //            TopoDS_Shape newshape = rebuild->Apply(shape);\r
--                  shape = newshape;\r
--               }\r
--\r
--               //delete sfs; sfs = NULL;\r
--            }\r
--            else\r
--               cout << " not possible" << endl;\r
--         }\r
--      }\r
--\r
--\r
--\r
--      if (splitpartitions)\r
--      {\r
--         cout << "- running SALOME partition splitter" << endl;\r
--\r
--         TopExp_Explorer e2;\r
--         Partition_Spliter ps;\r
--         int count = 0;\r
--\r
--         for (e2.Init (shape, TopAbs_SOLID);\r
--            e2.More(); e2.Next())\r
--         {\r
--            count++;\r
--            ps.AddShape (e2.Current());\r
--         }\r
--\r
--         ps.Compute();\r
--         shape = ps.Shape();\r
--\r
--         cout << " before: " << count << " solids" << endl;\r
--\r
--         count = 0;\r
--         for (e2.Init (shape, TopAbs_SOLID);\r
--            e2.More(); e2.Next()) count++;\r
--\r
--            cout << " after : " << count << " solids" << endl;\r
--      }\r
--\r
--      BuildFMap();\r
--\r
--\r
--\r
--      {\r
--         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())\r
--         {\r
--            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());\r
--            if ( BRep_Tool::Degenerated(edge) )\r
--               cout << "degenerated edge at position 8" << endl;\r
--         }\r
--      }\r
--\r
--\r
--      double newsurfacecont = 0;\r
--\r
--\r
--      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())\r
--      {\r
--         TopoDS_Face face = TopoDS::Face(exp0.Current());\r
--         GProp_GProps system;\r
--         BRepGProp::SurfaceProperties(face, system);\r
--         newsurfacecont += system.Mass();\r
--      }\r
--\r
--\r
--      int nnrc = 0, nnrcs = 0,\r
--         nnrso = somap.Extent(),\r
--         nnrsh = shmap.Extent(),\r
--         nnrf = fmap.Extent(),\r
--         nnrw = wmap.Extent(),\r
--         nnre = emap.Extent(),\r
--         nnrv = vmap.Extent();\r
--\r
--      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;\r
--      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;\r
--\r
--      cout << "-----------------------------------" << endl;\r
--      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;\r
--      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;\r
--      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;\r
--      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;\r
--      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;\r
--      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;\r
--      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;\r
--      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;\r
--      cout << endl;\r
--      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;\r
--      cout << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: BuildFMap()\r
--   {\r
--      somap.Clear();\r
--      shmap.Clear();\r
--      fmap.Clear();\r
--      wmap.Clear();\r
--      emap.Clear();\r
--      vmap.Clear();\r
--\r
--      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;\r
--\r
--      for (exp0.Init(shape, TopAbs_COMPOUND);\r
--         exp0.More(); exp0.Next())\r
--      {\r
--         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());\r
--         (*testout) << "compound" << endl;\r
--         int i = 0;\r
--         for (exp1.Init(compound, TopAbs_SHELL);\r
--            exp1.More(); exp1.Next())\r
--         {\r
--            (*testout) << "shell " << ++i << endl;\r
--         }\r
--      }\r
--\r
--      for (exp0.Init(shape, TopAbs_SOLID);\r
--         exp0.More(); exp0.Next())\r
--      {\r
--         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());\r
--\r
--         if (somap.FindIndex(solid) < 1)\r
--         {\r
--            somap.Add (solid);\r
--\r
--            for (exp1.Init(solid, TopAbs_SHELL);\r
--               exp1.More(); exp1.Next())\r
--            {\r
--               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());\r
--               if (shmap.FindIndex(shell) < 1)\r
--               {\r
--                  shmap.Add (shell);\r
--\r
--                  for (exp2.Init(shell, TopAbs_FACE);\r
--                     exp2.More(); exp2.Next())\r
--                  {\r
--                     TopoDS_Face face = TopoDS::Face(exp2.Current());\r
--                     if (fmap.FindIndex(face) < 1)\r
--                     {\r
--                        fmap.Add (face);\r
--                        (*testout) << "face " << fmap.FindIndex(face) << " ";\r
--                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";\r
--                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;\r
--                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);\r
--                           exp3.More(); exp3.Next())\r
--                        {\r
--                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
--                           if (wmap.FindIndex(wire) < 1)\r
--                           {\r
--                              wmap.Add (wire);\r
--\r
--                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);\r
--                                 exp4.More(); exp4.Next())\r
--                              {\r
--                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
--                                 if (emap.FindIndex(edge) < 1)\r
--                                 {\r
--                                    emap.Add (edge);\r
--                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);\r
--                                       exp5.More(); exp5.Next())\r
--                                    {\r
--                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--                                       if (vmap.FindIndex(vertex) < 1)\r
--                                          vmap.Add (vertex);\r
--                                    }\r
--                                 }\r
--                              }\r
--                           }\r
--                        }\r
--                     }\r
--                  }\r
--               }\r
--            }\r
--         }\r
--      }\r
--\r
--      // Free Shells\r
--      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())\r
--      {\r
--         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());\r
--         if (shmap.FindIndex(shell) < 1)\r
--         {\r
--            shmap.Add (shell);\r
--\r
--            (*testout) << "shell " << shmap.FindIndex(shell) << " ";\r
--            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";\r
--            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;\r
--\r
--            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())\r
--            {\r
--               TopoDS_Face face = TopoDS::Face(exp2.Current());\r
--               if (fmap.FindIndex(face) < 1)\r
--               {\r
--                  fmap.Add (face);\r
--\r
--                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())\r
--                  {\r
--                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
--                     if (wmap.FindIndex(wire) < 1)\r
--                     {\r
--                        wmap.Add (wire);\r
--\r
--                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())\r
--                        {\r
--                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
--                           if (emap.FindIndex(edge) < 1)\r
--                           {\r
--                              emap.Add (edge);\r
--                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())\r
--                              {\r
--                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--                                 if (vmap.FindIndex(vertex) < 1)\r
--                                    vmap.Add (vertex);\r
--                              }\r
--                           }\r
--                        }\r
--                     }\r
--                  }\r
--               }\r
--            }\r
--         }\r
--      }\r
--\r
--\r
--      // Free Faces\r
--\r
--      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())\r
--      {\r
--         TopoDS_Face face = TopoDS::Face(exp2.Current());\r
--         if (fmap.FindIndex(face) < 1)\r
--         {\r
--            fmap.Add (face);\r
--\r
--            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())\r
--            {\r
--               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
--               if (wmap.FindIndex(wire) < 1)\r
--               {\r
--                  wmap.Add (wire);\r
--\r
--                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())\r
--                  {\r
--                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
--                     if (emap.FindIndex(edge) < 1)\r
--                     {\r
--                        emap.Add (edge);\r
--                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
--                        {\r
--                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--                           if (vmap.FindIndex(vertex) < 1)\r
--                              vmap.Add (vertex);\r
--                        }\r
--                     }\r
--                  }\r
--               }\r
--            }\r
--         }\r
--      }\r
--\r
--\r
--      // Free Wires\r
--\r
--      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())\r
--      {\r
--         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());\r
--         if (wmap.FindIndex(wire) < 1)\r
--         {\r
--            wmap.Add (wire);\r
--\r
--            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())\r
--            {\r
--               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
--               if (emap.FindIndex(edge) < 1)\r
--               {\r
--                  emap.Add (edge);\r
--                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
--                  {\r
--                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--                     if (vmap.FindIndex(vertex) < 1)\r
--                        vmap.Add (vertex);\r
--                  }\r
--               }\r
--            }\r
--         }\r
--      }\r
--\r
--\r
--      // Free Edges\r
--\r
--      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())\r
--      {\r
--         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());\r
--         if (emap.FindIndex(edge) < 1)\r
--         {\r
--            emap.Add (edge);\r
--            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())\r
--            {\r
--               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--               if (vmap.FindIndex(vertex) < 1)\r
--                  vmap.Add (vertex);\r
--            }\r
--         }\r
--      }\r
--\r
--\r
--      // Free Vertices\r
--\r
--      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())\r
--      {\r
--         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());\r
--         if (vmap.FindIndex(vertex) < 1)\r
--            vmap.Add (vertex);\r
--      }\r
--\r
--\r
--\r
--\r
--      facemeshstatus.DeleteAll();\r
--      facemeshstatus.SetSize (fmap.Extent());\r
--      facemeshstatus = 0;\r
--\r
--      // Philippose - 15/01/2009\r
--      face_maxh.DeleteAll();\r
--      face_maxh.SetSize (fmap.Extent());\r
--      face_maxh = mparam.maxh;\r
--\r
--      // Philippose - 15/01/2010      \r
--      face_maxh_modified.DeleteAll();      \r
--      face_maxh_modified.SetSize(fmap.Extent());      \r
--      face_maxh_modified = 0;\r
--      \r
--\r
--      // Philippose - 17/01/2009\r
--      face_sel_status.DeleteAll();\r
--      face_sel_status.SetSize (fmap.Extent());\r
--      face_sel_status = 0;\r
--\r
--      fvispar.SetSize (fmap.Extent());\r
--      evispar.SetSize (emap.Extent());\r
--      vvispar.SetSize (vmap.Extent());\r
--\r
--      fsingular.SetSize (fmap.Extent());\r
--      esingular.SetSize (emap.Extent());\r
--      vsingular.SetSize (vmap.Extent());\r
--\r
--      fsingular = esingular = vsingular = false;\r
--   }\r
--\r
--\r
--\r
--   void OCCGeometry :: SewFaces ()\r
--   {\r
--      (*testout) << "Trying to sew faces ..." << endl;\r
--      cout << "Trying to sew faces ..." << flush;\r
--\r
--      BRepOffsetAPI_Sewing sewedObj(1);\r
-- \r
--      for (int i = 1; i <= fmap.Extent(); i++)\r
--      {\r
--         TopoDS_Face face = TopoDS::Face (fmap(i));\r
--         sewedObj.Add (face);\r
--      }\r
--\r
--      sewedObj.Perform();\r
--\r
--      if (!sewedObj.SewedShape().IsNull())\r
--      {\r
--         shape = sewedObj.SewedShape();\r
--         cout << " done" << endl;\r
--      }\r
--      else\r
--         cout << " not possible";\r
--   }\r
--\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: MakeSolid ()\r
--   {\r
--      TopExp_Explorer exp0;\r
--\r
--      (*testout) << "Trying to build solids ..." << endl;\r
--      cout << "Trying to build solids ..." << flush;\r
--\r
--      BRepBuilderAPI_MakeSolid ms;\r
--      int count = 0;\r
--      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())\r
--      {\r
--         count++;\r
--         ms.Add (TopoDS::Shell(exp0.Current()));\r
--      }\r
--\r
--      if (!count)\r
--      {\r
--         cout << " not possible (no shells)" << endl;\r
--         return;\r
--      }\r
--\r
--      BRepCheck_Analyzer ba(ms);\r
--      if (ba.IsValid ())\r
--      {\r
--         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;\r
--         sfs->Init (ms);\r
--\r
--         sfs->SetPrecision(1e-5);\r
--         sfs->SetMaxTolerance(1e-5);\r
--\r
--         sfs->Perform();\r
--\r
--         shape = sfs->Shape();\r
--\r
--         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())\r
--         {\r
--            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());\r
--            TopoDS_Solid newsolid = solid;\r
--            BRepLib::OrientClosedSolid (newsolid);\r
--            Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--            rebuild->Replace(solid, newsolid, Standard_False);\r
--\r
--            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);\r
--            shape = newshape;\r
--         }\r
--\r
--         cout << " done" << endl;\r
--      }\r
--      else\r
--         cout << " not possible" << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: BuildVisualizationMesh (double deflection)\r
--   {\r
--      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;\r
--\r
--      BRepTools::Clean (shape);\r
--      // BRepMesh_IncrementalMesh::\r
--      BRepMesh_IncrementalMesh (shape, deflection, true);\r
--      cout << "done" << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: CalcBoundingBox ()\r
--   {\r
--      Bnd_Box bb;\r
--      BRepBndLib::Add (shape, bb);\r
--\r
--      double x1,y1,z1,x2,y2,z2;\r
--      bb.Get (x1,y1,z1,x2,y2,z2);\r
--      Point<3> p1 = Point<3> (x1,y1,z1);\r
--      Point<3> p2 = Point<3> (x2,y2,z2);\r
--\r
--      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;\r
--      boundingbox = Box<3> (p1,p2);\r
--      SetCenter();\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: Project (int surfi, Point<3> & p) const\r
--   {\r
--      static int cnt = 0;\r
--      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;\r
--\r
--      gp_Pnt pnt(p(0), p(1), p(2));\r
--\r
--      double u,v;\r
--      Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--      Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );\r
--      gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );\r
--      suval.Coord( u, v);\r
--      pnt = thesurf->Value( u, v );\r
--\r
--\r
--      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());\r
--\r
--   }\r
--\r
--\r
--\r
--\r
--   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const\r
--   {\r
--      gp_Pnt p(ap(0), ap(1), ap(2));\r
--\r
--      Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));\r
--\r
--      gp_Pnt x = surface->Value (u,v);\r
--\r
--      if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;\r
--\r
--      gp_Vec du, dv;\r
--\r
--      surface->D1(u,v,x,du,dv);\r
--\r
--      int count = 0;\r
--\r
--      gp_Pnt xold;\r
--      gp_Vec n;\r
--      double det, lambda, mu;\r
--\r
--      do {\r
--         count++;\r
--\r
--         n = du^dv;\r
--\r
--         det = Det3 (n.X(), du.X(), dv.X(),\r
--            n.Y(), du.Y(), dv.Y(),\r
--            n.Z(), du.Z(), dv.Z());\r
--\r
--         if (det < 1e-15) return false;\r
--\r
--         lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),\r
--            n.Y(), p.Y()-x.Y(), dv.Y(),\r
--            n.Z(), p.Z()-x.Z(), dv.Z())/det;\r
--\r
--         mu     = Det3 (n.X(), du.X(), p.X()-x.X(),\r
--            n.Y(), du.Y(), p.Y()-x.Y(),\r
--            n.Z(), du.Z(), p.Z()-x.Z())/det;\r
--\r
--         u += lambda;\r
--         v += mu;\r
--\r
--         xold = x;\r
--         surface->D1(u,v,x,du,dv);\r
--\r
--      } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);\r
--\r
--      //    (*testout) << "FastProject count: " << count << endl;\r
--\r
--      if (count == 50) return false;\r
--\r
--      ap = Point<3> (x.X(), x.Y(), x.Z());\r
--\r
--      return true;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: WriteOCC_STL(char * filename)\r
--   {\r
--      cout << "writing stl..."; cout.flush();\r
--      StlAPI_Writer writer;\r
--      writer.RelativeMode() = Standard_False;\r
--\r
--      writer.SetDeflection(0.02);\r
--      writer.Write(shape,filename);\r
--\r
--      cout << "done" << endl;\r
--   }\r
--\r
--\r
--\r
--   // Philippose - 23/02/2009\r
--   /* Special IGES File load function including the ability\r
--   to extract individual surface colours via the extended\r
--   OpenCascade XDE and XCAF Feature set.\r
--   */\r
--   OCCGeometry *LoadOCC_IGES(const char *filename)\r
--   {\r
--      OCCGeometry *occgeo;\r
--      occgeo = new OCCGeometry;\r
--\r
--      // Initiate a dummy XCAF Application to handle the IGES XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
--\r
--      // Create an XCAF Document to contain the IGES file itself\r
--      Handle_TDocStd_Document iges_doc;\r
--\r
--      // Check if a IGES File is already open under this handle, if so, close it to prevent\r
--      // Segmentation Faults when trying to create a new document\r
--      if(dummy_app->NbDocuments() > 0)\r
--      {\r
--         dummy_app->GetDocument(1,iges_doc);\r
--         dummy_app->Close(iges_doc);\r
--      }\r
--      dummy_app->NewDocument ("IGES-XCAF",iges_doc);\r
--\r
--      IGESCAFControl_Reader reader;\r
--\r
--      Standard_Integer stat = reader.ReadFile((char*)filename);\r
--\r
--      if(stat != IFSelect_RetDone)\r
--      {\r
--         delete occgeo;\r
--         return NULL;\r
--      }\r
--\r
--      // Enable transfer of colours\r
--      reader.SetColorMode(Standard_True);\r
--\r
--      reader.Transfer(iges_doc);\r
--\r
--      // Read in the shape(s) and the colours present in the IGES File\r
--      Handle_XCAFDoc_ShapeTool iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());\r
--      Handle_XCAFDoc_ColorTool iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());\r
--\r
--      TDF_LabelSequence iges_shapes;\r
--      iges_shape_contents->GetShapes(iges_shapes);\r
--\r
--      // List out the available colours in the IGES File as Colour Names\r
--      TDF_LabelSequence all_colours;\r
--      iges_colour_contents->GetColors(all_colours);\r
--      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());\r
--      for(int i = 1; i <= all_colours.Length(); i++)\r
--      {\r
--         Quantity_Color col;\r
--         stringstream col_rgb;\r
--         iges_colour_contents->GetColor(all_colours.Value(i),col);\r
--         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";\r
--         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());\r
--      }\r
--\r
--\r
--      // For the IGES Reader, all the shapes can be exported as one compund shape \r
--      // using the "OneShape" member\r
--      occgeo->shape = reader.OneShape();\r
--      occgeo->face_colours = iges_colour_contents;\r
--      occgeo->changed = 1;\r
--      occgeo->BuildFMap();\r
--\r
--      occgeo->CalcBoundingBox();\r
--      PrintContents (occgeo);\r
--\r
--      return occgeo;\r
--   }\r
--\r
--\r
--\r
--\r
--\r
--   // Philippose - 29/01/2009\r
--   /* Special STEP File load function including the ability\r
--   to extract individual surface colours via the extended\r
--   OpenCascade XDE and XCAF Feature set.\r
--   */\r
--   OCCGeometry * LoadOCC_STEP (const char * filename)\r
--   {\r
--      OCCGeometry * occgeo;\r
--      occgeo = new OCCGeometry;\r
--\r
--      // Initiate a dummy XCAF Application to handle the STEP XCAF Document\r
--      static Handle_XCAFApp_Application dummy_app = XCAFApp_Application::GetApplication();\r
--\r
--      // Create an XCAF Document to contain the STEP file itself\r
--      Handle_TDocStd_Document step_doc;\r
--\r
--      // Check if a STEP File is already open under this handle, if so, close it to prevent\r
--      // Segmentation Faults when trying to create a new document\r
--      if(dummy_app->NbDocuments() > 0)\r
--      {\r
--         dummy_app->GetDocument(1,step_doc);\r
--         dummy_app->Close(step_doc);\r
--      }\r
--      dummy_app->NewDocument ("STEP-XCAF",step_doc);\r
--\r
--      STEPCAFControl_Reader reader;\r
--\r
--      // Enable transfer of colours\r
--      reader.SetColorMode(Standard_True);\r
--\r
--      Standard_Integer stat = reader.ReadFile((char*)filename);\r
--\r
--      if(stat != IFSelect_RetDone)\r
--      {\r
--         delete occgeo;\r
--         return NULL;\r
--      }\r
--\r
--      reader.Transfer(step_doc);\r
--\r
--      // Read in the shape(s) and the colours present in the STEP File\r
--      Handle_XCAFDoc_ShapeTool step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());\r
--      Handle_XCAFDoc_ColorTool step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());\r
--\r
--      TDF_LabelSequence step_shapes;\r
--      step_shape_contents->GetShapes(step_shapes);\r
--\r
--      // List out the available colours in the STEP File as Colour Names\r
--      TDF_LabelSequence all_colours;\r
--      step_colour_contents->GetColors(all_colours);\r
--      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());\r
--      for(int i = 1; i <= all_colours.Length(); i++)\r
--      {\r
--         Quantity_Color col;\r
--         stringstream col_rgb;\r
--         step_colour_contents->GetColor(all_colours.Value(i),col);\r
--         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";\r
--         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());\r
--      }\r
--\r
--\r
--      // For the STEP File Reader in OCC, the 1st Shape contains the entire \r
--      // compound geometry as one shape\r
--      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));\r
--      occgeo->face_colours = step_colour_contents;\r
--      occgeo->changed = 1;\r
--      occgeo->BuildFMap();\r
--\r
--      occgeo->CalcBoundingBox();\r
--      PrintContents (occgeo);\r
--\r
--      return occgeo;\r
--   }\r
--\r
--\r
--\r
--\r
--   OCCGeometry *LoadOCC_BREP (const char *filename)\r
--   {\r
--      OCCGeometry * occgeo;\r
--      occgeo = new OCCGeometry;\r
--\r
--      BRep_Builder aBuilder;\r
--      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);\r
--\r
--      if(!result)\r
--      {\r
--         delete occgeo;\r
--         return NULL;\r
--      }\r
--\r
--      // Philippose - 23/02/2009\r
--      // Fixed a bug in the OpenCascade XDE Colour handling when \r
--      // opening BREP Files, since BREP Files have no colour data.\r
--      // Hence, the face_colours Handle needs to be created as a NULL handle.\r
--      occgeo->face_colours = Handle_XCAFDoc_ColorTool();\r
--      occgeo->face_colours.Nullify();\r
--      occgeo->changed = 1;\r
--      occgeo->BuildFMap();\r
--\r
--      occgeo->CalcBoundingBox();\r
--      PrintContents (occgeo);\r
--\r
--      return occgeo;\r
--   }\r
--\r
--\r
--  void OCCGeometry :: Save (string sfilename) const\r
--  {\r
--    const char * filename = sfilename.c_str();\r
--    if (strlen(filename) < 4) \r
--      throw NgException ("illegal filename");\r
--    \r
--    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)\r
--      {\r
--      IGESControl_Writer writer("millimeters", 1);\r
--      writer.AddShape (shape);\r
--      writer.Write (filename);\r
--      }\r
--    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)\r
--      {\r
--      STEPControl_Writer writer;\r
--      writer.Transfer (shape, STEPControl_AsIs);\r
--      writer.Write (filename);\r
--      }\r
--    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)\r
--      {\r
--      StlAPI_Writer writer;\r
--      writer.ASCIIMode() = Standard_True;\r
--      writer.Write (shape, filename);\r
--      }\r
--    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)\r
--      {\r
--      StlAPI_Writer writer;\r
--      writer.ASCIIMode() = Standard_False;\r
--      writer.Write (shape, filename);\r
--      }\r
--  }\r
--\r
--\r
--\r
--  const char * shapesname[] =\r
--   {" ", "CompSolids", "Solids", "Shells",\r
--\r
--   "Faces", "Wires", "Edges", "Vertices"};\r
--\r
--  const char * shapename[] =\r
--   {" ", "CompSolid", "Solid", "Shell",\r
--   "Face", "Wire", "Edge", "Vertex"};\r
--\r
--  const char * orientationstring[] =\r
--     {"+", "-"};\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,\r
--      stringstream & str,\r
--      TopAbs_ShapeEnum l,\r
--      bool isfree,\r
--      const char * lname)\r
--   {\r
--      if (l > TopAbs_VERTEX) return;\r
--\r
--      TopExp_Explorer e;\r
--      int count = 0;\r
--      int count2 = 0;\r
--\r
--      if (isfree)\r
--         e.Init(sh, l, TopAbs_ShapeEnum(l-1));\r
--      else\r
--         e.Init(sh, l);\r
--\r
--      for (; e.More(); e.Next())\r
--      {\r
--         count++;\r
--\r
--         stringstream lname2;\r
--         lname2 << lname << "/" << shapename[l] << count;\r
--         str << lname2.str() << " ";\r
--\r
--         switch (e.Current().ShapeType())\r
--         {\r
--         case TopAbs_SOLID:\r
--           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;\r
--         case TopAbs_SHELL:\r
--           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;\r
--         case TopAbs_FACE:\r
--           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;\r
--         case TopAbs_WIRE:\r
--           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;\r
--         case TopAbs_EDGE:\r
--           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;\r
--         case TopAbs_VERTEX:\r
--           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;\r
--         default:\r
--           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;\r
--         }\r
--\r
--         int nrsubshapes = 0;\r
--\r
--         if (l <= TopAbs_WIRE)\r
--         {\r
--            TopExp_Explorer e2;\r
--            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));\r
--               e2.More(); e2.Next())\r
--               nrsubshapes++;\r
--         }\r
--\r
--         str << "{" << shapename[l] << " " << count2;\r
--\r
--         if (l <= TopAbs_EDGE)\r
--         {\r
--            str << " (" << orientationstring[e.Current().Orientation()];\r
--            if (nrsubshapes != 0) str << ", " << nrsubshapes;\r
--            str << ") } ";\r
--         }\r
--         else\r
--            str << " } ";\r
--\r
--         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),\r
--            false, (char*)lname2.str().c_str());\r
--\r
--      }\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: GetTopologyTree (stringstream & str)\r
--   {\r
--      cout << "Building topology tree ... " << flush;\r
--      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");\r
--      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");\r
--      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");\r
--      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");\r
--      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");\r
--      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");\r
--      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");\r
--      str << flush;\r
--      //  cout << "done" << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: CheckIrregularEntities(stringstream & str)\r
--   {\r
--      ShapeAnalysis_CheckSmallFace csm;\r
--\r
--      csm.SetTolerance (1e-6);\r
--\r
--      TopTools_DataMapOfShapeListOfShape mapEdges;\r
--      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;\r
--      TopoDS_Compound theAllVert;\r
--\r
--      int spotfaces = 0;\r
--      int stripsupportfaces = 0;\r
--      int singlestripfaces = 0;\r
--      int stripfaces = 0;\r
--      int facessplitbyvertices = 0;\r
--      int stretchedpinfaces = 0;\r
--      int smoothpinfaces = 0;\r
--      int twistedfaces = 0;\r
--      // int edgessamebutnotidentified = 0;\r
--\r
--      cout << "checking faces ... " << flush;\r
--\r
--      int i;\r
--      for (i = 1; i <= fmap.Extent(); i++)\r
--      {\r
--         TopoDS_Face face = TopoDS::Face (fmap(i));\r
--         TopoDS_Edge e1, e2;\r
--\r
--         if (csm.CheckSpotFace (face))\r
--         {\r
--            if (!spotfaces++)\r
--               str << "SpotFace {Spot face} ";\r
--\r
--            (*testout) << "Face " << i << " is a spot face" << endl;\r
--            str << "SpotFace/Face" << i << " ";\r
--            str << "{Face " << i << " } ";\r
--         }\r
--\r
--         if (csm.IsStripSupport (face))\r
--         {\r
--            if (!stripsupportfaces++)\r
--               str << "StripSupportFace {Strip support face} ";\r
--\r
--            (*testout) << "Face " << i << " has strip support" << endl;\r
--            str << "StripSupportFace/Face" << i << " ";\r
--            str << "{Face " << i << " } ";\r
--         }\r
--\r
--         if (csm.CheckSingleStrip(face, e1, e2))\r
--         {\r
--            if (!singlestripfaces++)\r
--               str << "SingleStripFace {Single strip face} ";\r
--\r
--            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)\r
--               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;\r
--            str << "SingleStripFace/Face" << i << " ";\r
--            str << "{Face " << i << " (edge " << emap.FindIndex(e1)\r
--               << " and edge " << emap.FindIndex(e2) << " are identical)} ";\r
--         }\r
--\r
--         if (csm.CheckStripFace(face, e1, e2))\r
--         {\r
--            if (!stripfaces++)\r
--               str << "StripFace {Strip face} ";\r
--\r
--            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)\r
--               << " and edge " << emap.FindIndex(e2)\r
--               << " are identical)" << endl;\r
--            str << "StripFace/Face" << i << " ";\r
--            str << "{Face " << i << " (edge " << emap.FindIndex(e1)\r
--               << " and edge " << emap.FindIndex(e2) << " are identical)} ";\r
--         }\r
--\r
--         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))\r
--         {\r
--            if (!facessplitbyvertices++)\r
--               str << "FaceSplitByVertices {Face split by vertices} ";\r
--\r
--            (*testout) << "Face " << i << " is split by " << count\r
--               << " vertex/vertices " << endl;\r
--            str << "FaceSplitByVertices/Face" << i << " ";\r
--            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";\r
--         }\r
--\r
--         int whatrow, sens;\r
--         if (int type = csm.CheckPin (face, whatrow, sens))\r
--         {\r
--            if (type == 1)\r
--            {\r
--               if (!smoothpinfaces++)\r
--                  str << "SmoothPinFace {Smooth pin face} ";\r
--\r
--               (*testout) << "Face " << i << " is a smooth pin" << endl;\r
--               str << "SmoothPinFace/Face" << i << " ";\r
--               str << "{Face " << i << " } ";\r
--            }\r
--            else\r
--            {\r
--               if (!stretchedpinfaces++)\r
--                  str << "StretchedPinFace {Stretched pin face} ";\r
--\r
--               (*testout) << "Face " << i << " is a streched pin" << endl;\r
--               str << "StretchedPinFace/Face" << i << " ";\r
--               str << "{Face " << i << " } ";\r
--            }\r
--         }\r
--\r
--         double paramu, paramv;\r
--         if (csm.CheckTwisted (face, paramu, paramv))\r
--         {\r
--            if (!twistedfaces++)\r
--               str << "TwistedFace {Twisted face} ";\r
--\r
--            (*testout) << "Face " << i << " is twisted" << endl;\r
--            str << "TwistedFace/Face" << i << " ";\r
--            str << "{Face " << i << " } ";\r
--         }\r
--      }\r
--\r
--      cout << "done" << endl;\r
--      cout << "checking edges ... " << flush;\r
--\r
--      // double dmax;\r
--      // int cnt = 0;\r
--      Array <double> edgeLengths;\r
--      Array <int> order;\r
--      edgeLengths.SetSize (emap.Extent());\r
--      order.SetSize (emap.Extent());\r
--\r
--      for (i = 1; i <= emap.Extent(); i++)\r
--      {\r
--         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));\r
--         GProp_GProps system;\r
--         BRepGProp::LinearProperties(edge1, system);\r
--         edgeLengths[i-1] = system.Mass();\r
--      }\r
--\r
--      Sort (edgeLengths, order);\r
--\r
--      str << "ShortestEdges {Shortest edges} ";\r
--      for (i = 1; i <= min(20, emap.Extent()); i++)\r
--      {\r
--         str << "ShortestEdges/Edge" << i;\r
--         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";\r
--      }\r
--\r
--      str << flush;\r
--\r
--      cout << "done" << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)\r
--   {\r
--      for (int i = 1; i <= fmap.Extent(); i++)\r
--      {\r
--         if (facemeshstatus[i-1] == -1)\r
--            str << "Face" << i << " {Face " << i << " } ";\r
--      }\r
--      str << flush;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)\r
--   {\r
--      for (int i = 1; i <= fmap.Extent(); i++)\r
--      {\r
--         if (!fvispar[i-1].IsDrawable())\r
--            str << "Face" << i << " {Face " << i << " } ";\r
--      }\r
--      str << flush;\r
--   }\r
--\r
--\r
--\r
--\r
--   bool OCCGeometry :: ErrorInSurfaceMeshing ()\r
--   {\r
--      for (int i = 1; i <= fmap.Extent(); i++)\r
--         if (facemeshstatus[i-1] == -1)\r
--            return true;\r
--\r
--      return false;\r
--   }\r
--\r
--\r
--\r
--\r
--  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,\r
--      int perfstepsstart, int perfstepsend)\r
--   {\r
--     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);\r
--   }\r
--\r
--\r
--\r
--\r
--   const Refinement & OCCGeometry :: GetRefinement () const\r
--   {\r
--      return * new OCCRefinementSurfaces (*this);\r
--   }\r
--\r
--\r
--\r
--\r
--   OCCParameters :: OCCParameters()\r
--   {\r
--      resthcloseedgefac = 1;\r
--      resthcloseedgeenable = 1;\r
--        resthminedgelen = 0.001;\r
--        resthminedgelenenable = 1;\r
--   }\r
--\r
--\r
--\r
--\r
--   void OCCParameters :: Print(ostream & ost) const\r
--   {\r
--      ost << "OCC Parameters:" << endl\r
--         << "close edges: " << resthcloseedgeenable\r
--         << ", fac = " << resthcloseedgefac << endl\r
--               << "minimum edge length: " << resthminedgelenenable\r
--               << ", min len = " << resthminedgelen << endl;\r
--   }\r
--\r
--\r
--\r
--\r
--   OCCParameters occparam;\r
--\r
--}\r
--\r
--\r
--#endif\r
-+
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <occgeom.hpp>
-+#include "ShapeAnalysis_ShapeTolerance.hxx"
-+#include "ShapeAnalysis_ShapeContents.hxx"
-+#include "ShapeAnalysis_CheckSmallFace.hxx"
-+#include "ShapeAnalysis_DataMapOfShapeListOfReal.hxx"
-+#include "ShapeAnalysis_Surface.hxx"
-+#include <BRepTopAdaptor_FClass2d.hxx> // -- to optimize Project() and FastProject()
-+#include <TopAbs_State.hxx>
-+#include "BRepAlgoAPI_Fuse.hxx"
-+#include "BRepCheck_Analyzer.hxx"
-+#include "BRepLib.hxx"
-+#include "ShapeBuild_ReShape.hxx"
-+#include "ShapeFix.hxx"
-+#include "ShapeFix_FixSmallFace.hxx"
-+#include "Partition_Spliter.hxx"
-+
-+namespace netgen
-+{
-+  // free data used to optimize Project() and FastProject()
-+  OCCGeometry::~OCCGeometry()
-+  {
-+    NCollection_DataMap<int,BRepTopAdaptor_FClass2d*>::Iterator it(fclsmap);
-+    for (; it.More(); it.Next())
-+      delete it.Value();
-+  }
-+
-+   void OCCGeometry :: PrintNrShapes ()
-+   {
-+      TopExp_Explorer e;
-+      int count = 0;
-+      for (e.Init(shape, TopAbs_COMPSOLID); e.More(); e.Next()) count++;
-+      cout << "CompSolids: " << count << endl;
-+
-+      cout << "Solids    : " << somap.Extent() << endl;
-+      cout << "Shells    : " << shmap.Extent() << endl;
-+      cout << "Faces     : " << fmap.Extent() << endl;
-+      cout << "Edges     : " << emap.Extent() << endl;
-+      cout << "Vertices  : " << vmap.Extent() << endl;
-+   }
-+
-+
-+
-+
-+   void PrintContents (OCCGeometry * geom)
-+   {
-+      ShapeAnalysis_ShapeContents cont;
-+      cont.Clear();
-+      cont.Perform(geom->shape);
-+
-+      (*testout) << "OCC CONTENTS" << endl;
-+      (*testout) << "============" << endl;
-+      (*testout) << "SOLIDS   : " << cont.NbSolids() << endl;
-+      (*testout) << "SHELLS   : " << cont.NbShells() << endl;
-+      (*testout) << "FACES    : " << cont.NbFaces() << endl;
-+      (*testout) << "WIRES    : " << cont.NbWires() << endl;
-+      (*testout) << "EDGES    : " << cont.NbEdges() << endl;
-+      (*testout) << "VERTICES : " << cont.NbVertices() << endl;
-+
-+      TopExp_Explorer e;
-+      int count = 0;
-+      for (e.Init(geom->shape, TopAbs_COMPOUND); e.More(); e.Next())
-+         count++;
-+      (*testout) << "Compounds: " << count << endl;
-+
-+      count = 0;
-+      for (e.Init(geom->shape, TopAbs_COMPSOLID); e.More(); e.Next())
-+         count++;
-+      (*testout) << "CompSolids: " << count << endl;
-+
-+      (*testout) << endl;
-+
-+      cout << "Highest entry in topology hierarchy: " << endl;
-+      if (count)
-+         cout << count << " composite solid(s)" << endl;
-+      else
-+         if (geom->somap.Extent())
-+            cout << geom->somap.Extent() << " solid(s)" << endl;
-+         else
-+            if (geom->shmap.Extent())
-+               cout << geom->shmap.Extent() << " shells(s)" << endl;
-+            else
-+               if (geom->fmap.Extent())
-+                  cout << geom->fmap.Extent() << " face(s)" << endl;
-+               else
-+                  if (geom->wmap.Extent())
-+                     cout << geom->wmap.Extent() << " wire(s)" << endl;
-+                  else
-+                     if (geom->emap.Extent())
-+                        cout << geom->emap.Extent() << " edge(s)" << endl;
-+                     else
-+                        if (geom->vmap.Extent())
-+                           cout << geom->vmap.Extent() << " vertices(s)" << endl;
-+                        else
-+                           cout << "no entities" << endl;
-+
-+   }
-+
-+
-+
-+   void OCCGeometry :: HealGeometry ()
-+   {
-+      int nrc = 0, nrcs = 0,
-+         nrso = somap.Extent(),
-+         nrsh = shmap.Extent(),
-+         nrf = fmap.Extent(),
-+         nrw = wmap.Extent(),
-+         nre = emap.Extent(),
-+         nrv = vmap.Extent();
-+
-+      TopExp_Explorer exp0;
-+      TopExp_Explorer exp1;
-+
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nrc++;
-+      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nrcs++;
-+
-+      double surfacecont = 0;
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+      BuildFMap();
-+
-+
-+      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp0.Current());
-+
-+         GProp_GProps system;
-+         BRepGProp::SurfaceProperties(face, system);
-+         surfacecont += system.Mass();
-+      }
-+
-+
-+      cout << "Starting geometry healing procedure (tolerance: " << tolerance << ")" << endl
-+         << "-----------------------------------" << endl;
-+
-+      {
-+         cout << endl << "- repairing faces" << endl;
-+
-+         Handle(ShapeFix_Face) sff;
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            // Variable to hold the colour (if there exists one) of 
-+            // the current face being processed
-+            Quantity_Color face_colour;
-+
-+            TopoDS_Face face = TopoDS::Face (exp0.Current());
-+
-+            if(face_colours.IsNull()
-+               || (!(face_colours->GetColor(face,XCAFDoc_ColorSurf,face_colour))))
-+            {
-+               // Set the default face colour to green (Netgen Standard)
-+               // if no colour has been defined for the face
-+               face_colour = Quantity_Color(0.0,1.0,0.0,Quantity_TOC_RGB);
-+            }
-+
-+            sff = new ShapeFix_Face (face);
-+            sff->FixAddNaturalBoundMode() = Standard_True;
-+            sff->FixSmallAreaWireMode() = Standard_True;
-+            sff->Perform();
-+
-+            if(sff->Status(ShapeExtend_DONE1) ||
-+               sff->Status(ShapeExtend_DONE2) ||
-+               sff->Status(ShapeExtend_DONE3) ||
-+               sff->Status(ShapeExtend_DONE4) ||
-+               sff->Status(ShapeExtend_DONE5))
-+            {
-+               cout << "repaired face " << fmap.FindIndex(face) << " ";
-+               if(sff->Status(ShapeExtend_DONE1))
-+                  cout << "(some wires are fixed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE2))
-+                  cout << "(orientation of wires fixed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE3))
-+                  cout << "(missing seam added)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE4))
-+                  cout << "(small area wire removed)" <<endl;
-+               else if(sff->Status(ShapeExtend_DONE5))
-+                  cout << "(natural bounds added)" <<endl;
-+               TopoDS_Face newface = sff->Face();
-+
-+               rebuild->Replace(face, newface);
-+            }
-+
-+            // Set the original colour of the face to the newly created 
-+            // face (after the healing process)
-+            face = TopoDS::Face (exp0.Current());
-+            face_colours->SetColor(face,face_colour,XCAFDoc_ColorSurf);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      if (fixsmalledges)
-+      {
-+         cout << endl << "- fixing small edges" << endl;
-+
-+         Handle(ShapeFix_Wire) sfw;
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face(exp0.Current());
-+
-+            for (exp1.Init (face, TopAbs_WIRE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Wire oldwire = TopoDS::Wire(exp1.Current());
-+               sfw = new ShapeFix_Wire (oldwire, face ,tolerance);
-+               sfw->ModifyTopologyMode() = Standard_True;
-+
-+               sfw->ClosedWireMode() = Standard_True;
-+
-+               bool replace = false;
-+
-+               replace = sfw->FixReorder() || replace;
-+
-+               replace = sfw->FixConnected() || replace;
-+
-+
-+
-+               if (sfw->FixSmall (Standard_False, tolerance) && ! (sfw->StatusSmall(ShapeExtend_FAIL1) ||
-+                  sfw->StatusSmall(ShapeExtend_FAIL2) ||
-+                  sfw->StatusSmall(ShapeExtend_FAIL3)))
-+               {
-+                  cout << "Fixed small edge in wire " << wmap.FindIndex (oldwire) << endl;
-+                  replace = true;
-+
-+               }
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL1))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", edge cannot be checked (no 3d curve and no pcurve)" << endl;
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL2))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", edge is null-length and has different vertives at begin and end, and lockvtx is True or ModifiyTopologyMode is False" << endl;
-+               else if (sfw->StatusSmall(ShapeExtend_FAIL3))
-+                  cerr << "Failed to fix small edge in wire " << wmap.FindIndex (oldwire)
-+                  << ", CheckConnected has failed" << endl;
-+
-+               replace = sfw->FixEdgeCurves() || replace;
-+
-+               replace = sfw->FixDegenerated() || replace;
-+
-+               replace = sfw->FixSelfIntersection() || replace;
-+
-+               replace = sfw->FixLacking(Standard_True) || replace;
-+
-+               if(replace)
-+               {
-+                  TopoDS_Wire newwire = sfw->Wire();
-+                  rebuild->Replace(oldwire, newwire);
-+               }
-+
-+               //delete sfw; sfw = NULL;
-+
-+            }
-+         }
-+
-+         shape = rebuild->Apply(shape);
-+
-+
-+
-+         {
-+            BuildFMap();
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Apply(shape);
-+
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if (vmap.FindIndex(TopExp::FirstVertex (edge)) ==
-+                  vmap.FindIndex(TopExp::LastVertex (edge)))
-+               {
-+                  GProp_GProps system;
-+                  BRepGProp::LinearProperties(edge, system);
-+                  if (system.Mass() < tolerance)
-+                  {
-+                     cout << "removing degenerated edge " << emap.FindIndex(edge)
-+                        << " from vertex " << vmap.FindIndex(TopExp::FirstVertex (edge))
-+                        << " to vertex " << vmap.FindIndex(TopExp::LastVertex (edge)) << endl;
-+                     rebuild->Remove(edge);
-+                  }
-+               }
-+            }
-+            shape = rebuild->Apply(shape);
-+
-+            //delete rebuild; rebuild = NULL;
-+         }
-+
-+
-+
-+         {
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Apply(shape);
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if ( BRep_Tool::Degenerated(edge) )
-+                  rebuild->Remove(edge);
-+            }
-+            shape = rebuild->Apply(shape);
-+         }
-+
-+
-+
-+
-+         Handle(ShapeFix_Wireframe) sfwf = new ShapeFix_Wireframe;
-+         sfwf->SetPrecision(tolerance);
-+         sfwf->Load (shape);
-+         sfwf->ModeDropSmallEdges() = Standard_True;
-+
-+         sfwf->SetPrecision(boundingbox.Diam());
-+
-+         if (sfwf->FixWireGaps())
-+         {
-+            cout << endl << "- fixing wire gaps" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_OK)) cout << "no gaps found" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_DONE1)) cout << "some 2D gaps fixed" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_DONE2)) cout << "some 3D gaps fixed" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_FAIL1)) cout << "failed to fix some 2D gaps" << endl;
-+            if (sfwf->StatusWireGaps(ShapeExtend_FAIL2)) cout << "failed to fix some 3D gaps" << endl;
-+         }
-+
-+         sfwf->SetPrecision(tolerance);
-+
-+
-+         {
-+            for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+               if ( BRep_Tool::Degenerated(edge) )
-+                  cout << "degenerated edge at position 4" << endl;
-+            }
-+         }
-+
-+
-+
-+         if (sfwf->FixSmallEdges())
-+         {
-+            cout << endl << "- fixing wire frames" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_OK)) cout << "no small edges found" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_DONE1)) cout << "some small edges fixed" << endl;
-+            if (sfwf->StatusSmallEdges(ShapeExtend_FAIL1)) cout << "failed to fix some small edges" << endl;
-+         }
-+
-+
-+
-+         shape = sfwf->Shape();
-+
-+         //delete sfwf; sfwf = NULL;
-+         //delete rebuild; rebuild = NULL;
-+
-+      }
-+
-+
-+
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 5" << endl;
-+         }
-+      }
-+
-+
-+
-+
-+      if (fixspotstripfaces)
-+      {
-+
-+         cout << endl << "- fixing spot and strip faces" << endl;
-+         Handle(ShapeFix_FixSmallFace) sffsm = new ShapeFix_FixSmallFace();
-+         sffsm -> Init (shape);
-+         sffsm -> SetPrecision (tolerance);
-+         sffsm -> Perform();
-+
-+         shape = sffsm -> FixShape();
-+         //delete sffsm; sffsm = NULL;
-+      }
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 6" << endl;
-+         }
-+      }
-+
-+
-+
-+      if (sewfaces)
-+      {
-+         cout << endl << "- sewing faces" << endl;
-+
-+         BRepOffsetAPI_Sewing sewedObj(tolerance);
-+
-+         for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Face face = TopoDS::Face (exp0.Current());
-+            sewedObj.Add (face);
-+         }
-+
-+         sewedObj.Perform();
-+
-+         if (!sewedObj.SewedShape().IsNull())
-+            shape = sewedObj.SewedShape();
-+         else
-+            cout << " not possible";
-+      }
-+
-+
-+
-+      {
-+         Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+         rebuild->Apply(shape);
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               rebuild->Remove(edge);
-+         }
-+         shape = rebuild->Apply(shape);
-+      }
-+
-+
-+      if (makesolids)
-+      {
-+         cout << endl << "- making solids" << endl;
-+
-+         BRepBuilderAPI_MakeSolid ms;
-+         int count = 0;
-+         for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
-+         {
-+            count++;
-+            ms.Add (TopoDS::Shell(exp0.Current()));
-+         }
-+
-+         if (!count)
-+         {
-+            cout << " not possible (no shells)" << endl;
-+         }
-+         else
-+         {
-+            BRepCheck_Analyzer ba(ms);
-+            if (ba.IsValid ())
-+            {
-+               Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
-+               sfs->Init (ms);
-+               sfs->SetPrecision(tolerance);
-+               sfs->SetMaxTolerance(tolerance);
-+               sfs->Perform();
-+               shape = sfs->Shape();
-+
-+               for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+               {
-+                  TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
-+                  TopoDS_Solid newsolid = solid;
-+                  BRepLib::OrientClosedSolid (newsolid);
-+                  Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+                  //            rebuild->Apply(shape);
-+                  rebuild->Replace(solid, newsolid);
-+                  TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_COMPSOLID);//, 1);
-+                  //            TopoDS_Shape newshape = rebuild->Apply(shape);
-+                  shape = newshape;
-+               }
-+
-+               //delete sfs; sfs = NULL;
-+            }
-+            else
-+               cout << " not possible" << endl;
-+         }
-+      }
-+
-+
-+
-+      if (splitpartitions)
-+      {
-+         cout << "- running SALOME partition splitter" << endl;
-+
-+         TopExp_Explorer e2;
-+         Partition_Spliter ps;
-+         int count = 0;
-+
-+         for (e2.Init (shape, TopAbs_SOLID);
-+            e2.More(); e2.Next())
-+         {
-+            count++;
-+            ps.AddShape (e2.Current());
-+         }
-+
-+         ps.Compute();
-+         shape = ps.Shape();
-+
-+         cout << " before: " << count << " solids" << endl;
-+
-+         count = 0;
-+         for (e2.Init (shape, TopAbs_SOLID);
-+            e2.More(); e2.Next()) count++;
-+
-+            cout << " after : " << count << " solids" << endl;
-+      }
-+
-+      BuildFMap();
-+
-+
-+
-+      {
-+         for (exp1.Init (shape, TopAbs_EDGE); exp1.More(); exp1.Next())
-+         {
-+            TopoDS_Edge edge = TopoDS::Edge(exp1.Current());
-+            if ( BRep_Tool::Degenerated(edge) )
-+               cout << "degenerated edge at position 8" << endl;
-+         }
-+      }
-+
-+
-+      double newsurfacecont = 0;
-+
-+
-+      for (exp0.Init (shape, TopAbs_FACE); exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp0.Current());
-+         GProp_GProps system;
-+         BRepGProp::SurfaceProperties(face, system);
-+         newsurfacecont += system.Mass();
-+      }
-+
-+
-+      int nnrc = 0, nnrcs = 0,
-+         nnrso = somap.Extent(),
-+         nnrsh = shmap.Extent(),
-+         nnrf = fmap.Extent(),
-+         nnrw = wmap.Extent(),
-+         nnre = emap.Extent(),
-+         nnrv = vmap.Extent();
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND); exp0.More(); exp0.Next()) nnrc++;
-+      for (exp0.Init(shape, TopAbs_COMPSOLID); exp0.More(); exp0.Next()) nnrcs++;
-+
-+      cout << "-----------------------------------" << endl;
-+      cout << "Compounds       : " << nnrc << " (" << nrc << ")" << endl;
-+      cout << "Composite solids: " << nnrcs << " (" << nrcs << ")" << endl;
-+      cout << "Solids          : " << nnrso << " (" << nrso << ")" << endl;
-+      cout << "Shells          : " << nnrsh << " (" << nrsh << ")" << endl;
-+      cout << "Wires           : " << nnrw << " (" << nrw << ")" << endl;
-+      cout << "Faces           : " << nnrf << " (" << nrf << ")" << endl;
-+      cout << "Edges           : " << nnre << " (" << nre << ")" << endl;
-+      cout << "Vertices        : " << nnrv << " (" << nrv << ")" << endl;
-+      cout << endl;
-+      cout << "Totol surface area : " << newsurfacecont << " (" << surfacecont << ")" << endl;
-+      cout << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: BuildFMap()
-+   {
-+      somap.Clear();
-+      shmap.Clear();
-+      fmap.Clear();
-+      wmap.Clear();
-+      emap.Clear();
-+      vmap.Clear();
-+
-+      TopExp_Explorer exp0, exp1, exp2, exp3, exp4, exp5;
-+
-+      for (exp0.Init(shape, TopAbs_COMPOUND);
-+         exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Compound compound = TopoDS::Compound (exp0.Current());
-+         (*testout) << "compound" << endl;
-+         int i = 0;
-+         for (exp1.Init(compound, TopAbs_SHELL);
-+            exp1.More(); exp1.Next())
-+         {
-+            (*testout) << "shell " << ++i << endl;
-+         }
-+      }
-+
-+      for (exp0.Init(shape, TopAbs_SOLID);
-+         exp0.More(); exp0.Next())
-+      {
-+         TopoDS_Solid solid = TopoDS::Solid (exp0.Current());
-+
-+         if (somap.FindIndex(solid) < 1)
-+         {
-+            somap.Add (solid);
-+
-+            for (exp1.Init(solid, TopAbs_SHELL);
-+               exp1.More(); exp1.Next())
-+            {
-+               TopoDS_Shell shell = TopoDS::Shell (exp1.Current());
-+               if (shmap.FindIndex(shell) < 1)
-+               {
-+                  shmap.Add (shell);
-+
-+                  for (exp2.Init(shell, TopAbs_FACE);
-+                     exp2.More(); exp2.Next())
-+                  {
-+                     TopoDS_Face face = TopoDS::Face(exp2.Current());
-+                     if (fmap.FindIndex(face) < 1)
-+                     {
-+                        fmap.Add (face);
-+                        (*testout) << "face " << fmap.FindIndex(face) << " ";
-+                        (*testout) << ((face.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
-+                        (*testout) << ((exp2.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
-+                        for (exp3.Init(exp2.Current(), TopAbs_WIRE);
-+                           exp3.More(); exp3.Next())
-+                        {
-+                           TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+                           if (wmap.FindIndex(wire) < 1)
-+                           {
-+                              wmap.Add (wire);
-+
-+                              for (exp4.Init(exp3.Current(), TopAbs_EDGE);
-+                                 exp4.More(); exp4.Next())
-+                              {
-+                                 TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                                 if (emap.FindIndex(edge) < 1)
-+                                 {
-+                                    emap.Add (edge);
-+                                    for (exp5.Init(exp4.Current(), TopAbs_VERTEX);
-+                                       exp5.More(); exp5.Next())
-+                                    {
-+                                       TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                                       if (vmap.FindIndex(vertex) < 1)
-+                                          vmap.Add (vertex);
-+                                    }
-+                                 }
-+                              }
-+                           }
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+      // Free Shells
-+      for (exp1.Init(shape, TopAbs_SHELL, TopAbs_SOLID); exp1.More(); exp1.Next())
-+      {
-+         TopoDS_Shell shell = TopoDS::Shell(exp1.Current());
-+         if (shmap.FindIndex(shell) < 1)
-+         {
-+            shmap.Add (shell);
-+
-+            (*testout) << "shell " << shmap.FindIndex(shell) << " ";
-+            (*testout) << ((shell.Orientation() == TopAbs_REVERSED) ? "-" : "+") << ", ";
-+            (*testout) << ((exp1.Current().Orientation() == TopAbs_REVERSED) ? "-" : "+") << endl;
-+
-+            for (exp2.Init(shell, TopAbs_FACE); exp2.More(); exp2.Next())
-+            {
-+               TopoDS_Face face = TopoDS::Face(exp2.Current());
-+               if (fmap.FindIndex(face) < 1)
-+               {
-+                  fmap.Add (face);
-+
-+                  for (exp3.Init(face, TopAbs_WIRE); exp3.More(); exp3.Next())
-+                  {
-+                     TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+                     if (wmap.FindIndex(wire) < 1)
-+                     {
-+                        wmap.Add (wire);
-+
-+                        for (exp4.Init(wire, TopAbs_EDGE); exp4.More(); exp4.Next())
-+                        {
-+                           TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                           if (emap.FindIndex(edge) < 1)
-+                           {
-+                              emap.Add (edge);
-+                              for (exp5.Init(edge, TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                              {
-+                                 TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                                 if (vmap.FindIndex(vertex) < 1)
-+                                    vmap.Add (vertex);
-+                              }
-+                           }
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Faces
-+
-+      for (exp2.Init(shape, TopAbs_FACE, TopAbs_SHELL); exp2.More(); exp2.Next())
-+      {
-+         TopoDS_Face face = TopoDS::Face(exp2.Current());
-+         if (fmap.FindIndex(face) < 1)
-+         {
-+            fmap.Add (face);
-+
-+            for (exp3.Init(exp2.Current(), TopAbs_WIRE); exp3.More(); exp3.Next())
-+            {
-+               TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+               if (wmap.FindIndex(wire) < 1)
-+               {
-+                  wmap.Add (wire);
-+
-+                  for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
-+                  {
-+                     TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+                     if (emap.FindIndex(edge) < 1)
-+                     {
-+                        emap.Add (edge);
-+                        for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                        {
-+                           TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                           if (vmap.FindIndex(vertex) < 1)
-+                              vmap.Add (vertex);
-+                        }
-+                     }
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Wires
-+
-+      for (exp3.Init(shape, TopAbs_WIRE, TopAbs_FACE); exp3.More(); exp3.Next())
-+      {
-+         TopoDS_Wire wire = TopoDS::Wire (exp3.Current());
-+         if (wmap.FindIndex(wire) < 1)
-+         {
-+            wmap.Add (wire);
-+
-+            for (exp4.Init(exp3.Current(), TopAbs_EDGE); exp4.More(); exp4.Next())
-+            {
-+               TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+               if (emap.FindIndex(edge) < 1)
-+               {
-+                  emap.Add (edge);
-+                  for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+                  {
-+                     TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+                     if (vmap.FindIndex(vertex) < 1)
-+                        vmap.Add (vertex);
-+                  }
-+               }
-+            }
-+         }
-+      }
-+
-+
-+      // Free Edges
-+
-+      for (exp4.Init(shape, TopAbs_EDGE, TopAbs_WIRE); exp4.More(); exp4.Next())
-+      {
-+         TopoDS_Edge edge = TopoDS::Edge(exp4.Current());
-+         if (emap.FindIndex(edge) < 1)
-+         {
-+            emap.Add (edge);
-+            for (exp5.Init(exp4.Current(), TopAbs_VERTEX); exp5.More(); exp5.Next())
-+            {
-+               TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+               if (vmap.FindIndex(vertex) < 1)
-+                  vmap.Add (vertex);
-+            }
-+         }
-+      }
-+
-+
-+      // Free Vertices
-+
-+      for (exp5.Init(shape, TopAbs_VERTEX, TopAbs_EDGE); exp5.More(); exp5.Next())
-+      {
-+         TopoDS_Vertex vertex = TopoDS::Vertex(exp5.Current());
-+         if (vmap.FindIndex(vertex) < 1)
-+            vmap.Add (vertex);
-+      }
-+
-+
-+
-+
-+      facemeshstatus.DeleteAll();
-+      facemeshstatus.SetSize (fmap.Extent());
-+      facemeshstatus = 0;
-+
-+      // Philippose - 15/01/2009
-+      face_maxh.DeleteAll();
-+      face_maxh.SetSize (fmap.Extent());
-+      face_maxh = mparam.maxh;
-+
-+      // Philippose - 15/01/2010      
-+      face_maxh_modified.DeleteAll();      
-+      face_maxh_modified.SetSize(fmap.Extent());      
-+      face_maxh_modified = 0;
-+      
-+
-+      // Philippose - 17/01/2009
-+      face_sel_status.DeleteAll();
-+      face_sel_status.SetSize (fmap.Extent());
-+      face_sel_status = 0;
-+
-+      fvispar.SetSize (fmap.Extent());
-+      evispar.SetSize (emap.Extent());
-+      vvispar.SetSize (vmap.Extent());
-+
-+      fsingular.SetSize (fmap.Extent());
-+      esingular.SetSize (emap.Extent());
-+      vsingular.SetSize (vmap.Extent());
-+
-+      fsingular = esingular = vsingular = false;
-+   }
-+
-+
-+
-+   void OCCGeometry :: SewFaces ()
-+   {
-+      (*testout) << "Trying to sew faces ..." << endl;
-+      cout << "Trying to sew faces ..." << flush;
-+
-+      BRepOffsetAPI_Sewing sewedObj(1);
-+ 
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         TopoDS_Face face = TopoDS::Face (fmap(i));
-+         sewedObj.Add (face);
-+      }
-+
-+      sewedObj.Perform();
-+
-+      if (!sewedObj.SewedShape().IsNull())
-+      {
-+         shape = sewedObj.SewedShape();
-+         cout << " done" << endl;
-+      }
-+      else
-+         cout << " not possible";
-+   }
-+
-+
-+
-+
-+
-+   void OCCGeometry :: MakeSolid ()
-+   {
-+      TopExp_Explorer exp0;
-+
-+      (*testout) << "Trying to build solids ..." << endl;
-+      cout << "Trying to build solids ..." << flush;
-+
-+      BRepBuilderAPI_MakeSolid ms;
-+      int count = 0;
-+      for (exp0.Init(shape, TopAbs_SHELL); exp0.More(); exp0.Next())
-+      {
-+         count++;
-+         ms.Add (TopoDS::Shell(exp0.Current()));
-+      }
-+
-+      if (!count)
-+      {
-+         cout << " not possible (no shells)" << endl;
-+         return;
-+      }
-+
-+      BRepCheck_Analyzer ba(ms);
-+      if (ba.IsValid ())
-+      {
-+         Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape;
-+         sfs->Init (ms);
-+
-+         sfs->SetPrecision(1e-5);
-+         sfs->SetMaxTolerance(1e-5);
-+
-+         sfs->Perform();
-+
-+         shape = sfs->Shape();
-+
-+         for (exp0.Init(shape, TopAbs_SOLID); exp0.More(); exp0.Next())
-+         {
-+            TopoDS_Solid solid = TopoDS::Solid(exp0.Current());
-+            TopoDS_Solid newsolid = solid;
-+            BRepLib::OrientClosedSolid (newsolid);
-+            Handle(ShapeBuild_ReShape) rebuild = new ShapeBuild_ReShape;
-+            rebuild->Replace(solid, newsolid);
-+
-+            TopoDS_Shape newshape = rebuild->Apply(shape, TopAbs_SHAPE, 1);
-+            shape = newshape;
-+         }
-+
-+         cout << " done" << endl;
-+      }
-+      else
-+         cout << " not possible" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: BuildVisualizationMesh (double deflection)
-+   {
-+      cout << "Preparing visualization (deflection = " << deflection << ") ... " << flush;
-+
-+      BRepTools::Clean (shape);
-+      // BRepMesh_IncrementalMesh::
-+      BRepMesh_IncrementalMesh (shape, deflection, true);
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: CalcBoundingBox ()
-+   {
-+      Bnd_Box bb;
-+      BRepBndLib::Add (shape, bb);
-+
-+      double x1,y1,z1,x2,y2,z2;
-+      bb.Get (x1,y1,z1,x2,y2,z2);
-+      Point<3> p1 = Point<3> (x1,y1,z1);
-+      Point<3> p2 = Point<3> (x2,y2,z2);
-+
-+      (*testout) << "Bounding Box = [" << p1 << " - " << p2 << "]" << endl;
-+      boundingbox = Box<3> (p1,p2);
-+      SetCenter();
-+   }
-+
-+
-+   // returns a projector and a classifier for the given surface
-+   void OCCGeometry::GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                                  BRepTopAdaptor_FClass2d*& cls) const
-+   {
-+     //MSV: organize caching projector in the map
-+     if (fprjmap.IsBound(surfi))
-+     {
-+       proj = fprjmap.Find(surfi);
-+       cls = fclsmap.Find(surfi);
-+     }
-+     else
-+     {
-+       const TopoDS_Face& aFace = TopoDS::Face(fmap(surfi));
-+       Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
-+       proj = new ShapeAnalysis_Surface(aSurf);
-+       fprjmap.Bind(surfi, proj);
-+       cls = new BRepTopAdaptor_FClass2d(aFace,Precision::Confusion());
-+       fclsmap.Bind(surfi, cls);
-+     }
-+   }
-+
-+   // void OCCGeometry :: Project (int surfi, Point<3> & p) const
-+   bool OCCGeometry :: Project (int surfi, Point<3> & p, double& u, double& v) const
-+   {
-+      static int cnt = 0;
-+      if (++cnt % 1000 == 0) cout << "Project cnt = " << cnt << endl;
-+
-+      gp_Pnt pnt(p(0), p(1), p(2));
-+
-+      // -- Optimization: use cached projector and classifier
-+      // double u,v;
-+      // Handle( Geom_Surface ) thesurf = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // Handle( ShapeAnalysis_Surface ) su = new ShapeAnalysis_Surface( thesurf );
-+      // gp_Pnt2d suval = su->ValueOfUV ( pnt, BRep_Tool::Tolerance( TopoDS::Face(fmap(surfi)) ) );
-+      // suval.Coord( u, v);
-+      // pnt = thesurf->Value( u, v );  
-+
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+
-+      gp_Pnt2d p2d = proj->ValueOfUV(pnt, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        return false;
-+      }
-+      pnt = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+
-+      p = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-+
-+      return true;
-+   }
-+
-+
-+
-+
-+   bool OCCGeometry :: FastProject (int surfi, Point<3> & ap, double& u, double& v) const
-+   {
-+      gp_Pnt p(ap(0), ap(1), ap(2));
-+
-+      // -- Optimization: use cached projector and classifier
-+      // Handle(Geom_Surface) surface = BRep_Tool::Surface(TopoDS::Face(fmap(surfi)));
-+      // 
-+      // gp_Pnt x = surface->Value (u,v);
-+      // 
-+      // if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return true;
-+      // 
-+      // gp_Vec du, dv;
-+      // 
-+      // surface->D1(u,v,x,du,dv);
-+      // 
-+      // int count = 0;
-+      // 
-+      // gp_Pnt xold;
-+      // gp_Vec n;
-+      // double det, lambda, mu;
-+      // 
-+      // do {
-+      //    count++;
-+      // 
-+      //    n = du^dv;
-+      // 
-+      //    det = Det3 (n.X(), du.X(), dv.X(),
-+      //       n.Y(), du.Y(), dv.Y(),
-+      //       n.Z(), du.Z(), dv.Z());
-+      // 
-+      //    if (det < 1e-15) return false;
-+      // 
-+      //    lambda = Det3 (n.X(), p.X()-x.X(), dv.X(),
-+      //       n.Y(), p.Y()-x.Y(), dv.Y(),
-+      //       n.Z(), p.Z()-x.Z(), dv.Z())/det;
-+      // 
-+      //    mu     = Det3 (n.X(), du.X(), p.X()-x.X(),
-+      //       n.Y(), du.Y(), p.Y()-x.Y(),
-+      //       n.Z(), du.Z(), p.Z()-x.Z())/det;
-+      // 
-+      //    u += lambda;
-+      //    v += mu;
-+      // 
-+      //    xold = x;
-+      //    surface->D1(u,v,x,du,dv);
-+      // 
-+      // } while (xold.SquareDistance(x) > sqr(PROJECTION_TOLERANCE) && count < 50);
-+      // 
-+      // //    (*testout) << "FastProject count: " << count << endl;
-+      // 
-+      // if (count == 50) return false;
-+      // 
-+      // ap = Point<3> (x.X(), x.Y(), x.Z());
-+      Handle(ShapeAnalysis_Surface) proj;
-+      BRepTopAdaptor_FClass2d *cls;
-+      GetFaceTools(surfi, proj, cls);
-+
-+      gp_Pnt2d p2d = proj->NextValueOfUV(gp_Pnt2d(u,v), p, Precision::Confusion());
-+      if (cls->Perform(p2d) == TopAbs_OUT)
-+      {
-+        //cout << "Projection fails" << endl;
-+        return false;
-+      }
-+
-+      p = proj->Value(p2d);
-+      p2d.Coord(u, v);
-+      ap = Point<3> (p.X(), p.Y(), p.Z());
-+
-+      return true;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: WriteOCC_STL(char * filename)
-+   {
-+      cout << "writing stl..."; cout.flush();
-+      StlAPI_Writer writer;
-+      //writer.RelativeMode() = Standard_False;
-+
-+      //writer.SetDeflection(0.02);
-+      writer.Write(shape,filename);
-+
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+   // Philippose - 23/02/2009
-+   /* Special IGES File load function including the ability
-+   to extract individual surface colours via the extended
-+   OpenCascade XDE and XCAF Feature set.
-+   */
-+   OCCGeometry *LoadOCC_IGES(const char *filename)
-+   {
-+      OCCGeometry *occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      // Initiate a dummy XCAF Application to handle the IGES XCAF Document
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
-+
-+      // Create an XCAF Document to contain the IGES file itself
-+      Handle(TDocStd_Document) iges_doc;
-+
-+      // Check if a IGES File is already open under this handle, if so, close it to prevent
-+      // Segmentation Faults when trying to create a new document
-+      if(dummy_app->NbDocuments() > 0)
-+      {
-+         dummy_app->GetDocument(1,iges_doc);
-+         dummy_app->Close(iges_doc);
-+      }
-+      dummy_app->NewDocument ("IGES-XCAF",iges_doc);
-+
-+      IGESCAFControl_Reader reader;
-+
-+      Standard_Integer stat = reader.ReadFile((char*)filename);
-+
-+      if(stat != IFSelect_RetDone)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      // Enable transfer of colours
-+      reader.SetColorMode(Standard_True);
-+
-+      reader.Transfer(iges_doc);
-+
-+      // Read in the shape(s) and the colours present in the IGES File
-+      Handle(XCAFDoc_ShapeTool) iges_shape_contents = XCAFDoc_DocumentTool::ShapeTool(iges_doc->Main());
-+      Handle(XCAFDoc_ColorTool) iges_colour_contents = XCAFDoc_DocumentTool::ColorTool(iges_doc->Main());
-+
-+      TDF_LabelSequence iges_shapes;
-+      iges_shape_contents->GetShapes(iges_shapes);
-+
-+      // List out the available colours in the IGES File as Colour Names
-+      TDF_LabelSequence all_colours;
-+      iges_colour_contents->GetColors(all_colours);
-+      PrintMessage(1,"Number of colours in IGES File: ",all_colours.Length());
-+      for(int i = 1; i <= all_colours.Length(); i++)
-+      {
-+         Quantity_Color col;
-+         stringstream col_rgb;
-+         iges_colour_contents->GetColor(all_colours.Value(i),col);
-+         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
-+         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
-+      }
-+
-+
-+      // For the IGES Reader, all the shapes can be exported as one compund shape 
-+      // using the "OneShape" member
-+      occgeo->shape = reader.OneShape();
-+      occgeo->face_colours = iges_colour_contents;
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+
-+
-+
-+   // Philippose - 29/01/2009
-+   /* Special STEP File load function including the ability
-+   to extract individual surface colours via the extended
-+   OpenCascade XDE and XCAF Feature set.
-+   */
-+   OCCGeometry * LoadOCC_STEP (const char * filename)
-+   {
-+      OCCGeometry * occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      // Initiate a dummy XCAF Application to handle the STEP XCAF Document
-+      static Handle(XCAFApp_Application) dummy_app = XCAFApp_Application::GetApplication();
-+
-+      // Create an XCAF Document to contain the STEP file itself
-+      Handle(TDocStd_Document) step_doc;
-+
-+      // Check if a STEP File is already open under this handle, if so, close it to prevent
-+      // Segmentation Faults when trying to create a new document
-+      if(dummy_app->NbDocuments() > 0)
-+      {
-+         dummy_app->GetDocument(1,step_doc);
-+         dummy_app->Close(step_doc);
-+      }
-+      dummy_app->NewDocument ("STEP-XCAF",step_doc);
-+
-+      STEPCAFControl_Reader reader;
-+
-+      // Enable transfer of colours
-+      reader.SetColorMode(Standard_True);
-+
-+      Standard_Integer stat = reader.ReadFile((char*)filename);
-+
-+      if(stat != IFSelect_RetDone)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      reader.Transfer(step_doc);
-+
-+      // Read in the shape(s) and the colours present in the STEP File
-+      Handle(XCAFDoc_ShapeTool) step_shape_contents = XCAFDoc_DocumentTool::ShapeTool(step_doc->Main());
-+      Handle(XCAFDoc_ColorTool) step_colour_contents = XCAFDoc_DocumentTool::ColorTool(step_doc->Main());
-+
-+      TDF_LabelSequence step_shapes;
-+      step_shape_contents->GetShapes(step_shapes);
-+
-+      // List out the available colours in the STEP File as Colour Names
-+      TDF_LabelSequence all_colours;
-+      step_colour_contents->GetColors(all_colours);
-+      PrintMessage(1,"Number of colours in STEP File: ",all_colours.Length());
-+      for(int i = 1; i <= all_colours.Length(); i++)
-+      {
-+         Quantity_Color col;
-+         stringstream col_rgb;
-+         step_colour_contents->GetColor(all_colours.Value(i),col);
-+         col_rgb << " : (" << col.Red() << "," << col.Green() << "," << col.Blue() << ")";
-+         PrintMessage(1, "Colour [", i, "] = ",col.StringName(col.Name()),col_rgb.str());
-+      }
-+
-+
-+      // For the STEP File Reader in OCC, the 1st Shape contains the entire 
-+      // compound geometry as one shape
-+      occgeo->shape = step_shape_contents->GetShape(step_shapes.Value(1));
-+      occgeo->face_colours = step_colour_contents;
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+
-+
-+   OCCGeometry *LoadOCC_BREP (const char *filename)
-+   {
-+      OCCGeometry * occgeo;
-+      occgeo = new OCCGeometry;
-+
-+      BRep_Builder aBuilder;
-+      Standard_Boolean result = BRepTools::Read(occgeo->shape, const_cast<char*> (filename),aBuilder);
-+
-+      if(!result)
-+      {
-+         delete occgeo;
-+         return NULL;
-+      }
-+
-+      // Philippose - 23/02/2009
-+      // Fixed a bug in the OpenCascade XDE Colour handling when 
-+      // opening BREP Files, since BREP Files have no colour data.
-+      // Hence, the face_colours Handle needs to be created as a NULL handle.
-+      occgeo->face_colours = Handle(XCAFDoc_ColorTool)();
-+      occgeo->face_colours.Nullify();
-+      occgeo->changed = 1;
-+      occgeo->BuildFMap();
-+
-+      occgeo->CalcBoundingBox();
-+      PrintContents (occgeo);
-+
-+      return occgeo;
-+   }
-+
-+
-+  void OCCGeometry :: Save (string sfilename) const
-+  {
-+    const char * filename = sfilename.c_str();
-+    if (strlen(filename) < 4) 
-+      throw NgException ("illegal filename");
-+    
-+    if (strcmp (&filename[strlen(filename)-3], "igs") == 0)
-+      {
-+      IGESControl_Writer writer("millimeters", 1);
-+      writer.AddShape (shape);
-+      writer.Write (filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-3], "stp") == 0)
-+      {
-+      STEPControl_Writer writer;
-+      writer.Transfer (shape, STEPControl_AsIs);
-+      writer.Write (filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-3], "stl") == 0)
-+      {
-+      StlAPI_Writer writer;
-+      writer.ASCIIMode() = Standard_True;
-+      writer.Write (shape, filename);
-+      }
-+    else if (strcmp (&filename[strlen(filename)-4], "stlb") == 0)
-+      {
-+      StlAPI_Writer writer;
-+      writer.ASCIIMode() = Standard_False;
-+      writer.Write (shape, filename);
-+      }
-+  }
-+
-+
-+
-+  const char * shapesname[] =
-+   {" ", "CompSolids", "Solids", "Shells",
-+
-+   "Faces", "Wires", "Edges", "Vertices"};
-+
-+  const char * shapename[] =
-+   {" ", "CompSolid", "Solid", "Shell",
-+   "Face", "Wire", "Edge", "Vertex"};
-+
-+  const char * orientationstring[] =
-+     {"+", "-"};
-+
-+
-+
-+
-+   void OCCGeometry :: RecursiveTopologyTree (const TopoDS_Shape & sh,
-+      stringstream & str,
-+      TopAbs_ShapeEnum l,
-+      bool isfree,
-+      const char * lname)
-+   {
-+      if (l > TopAbs_VERTEX) return;
-+
-+      TopExp_Explorer e;
-+      int count = 0;
-+      int count2 = 0;
-+
-+      if (isfree)
-+         e.Init(sh, l, TopAbs_ShapeEnum(l-1));
-+      else
-+         e.Init(sh, l);
-+
-+      for (; e.More(); e.Next())
-+      {
-+         count++;
-+
-+         stringstream lname2;
-+         lname2 << lname << "/" << shapename[l] << count;
-+         str << lname2.str() << " ";
-+
-+         switch (e.Current().ShapeType())
-+         {
-+         case TopAbs_SOLID:
-+           count2 = somap.FindIndex(TopoDS::Solid(e.Current())); break;
-+         case TopAbs_SHELL:
-+           count2 = shmap.FindIndex(TopoDS::Shell(e.Current())); break;
-+         case TopAbs_FACE:
-+           count2 = fmap.FindIndex(TopoDS::Face(e.Current())); break;
-+         case TopAbs_WIRE:
-+           count2 = wmap.FindIndex(TopoDS::Wire(e.Current())); break;
-+         case TopAbs_EDGE:
-+           count2 = emap.FindIndex(TopoDS::Edge(e.Current())); break;
-+         case TopAbs_VERTEX:
-+           count2 = vmap.FindIndex(TopoDS::Vertex(e.Current())); break;
-+         default:
-+           cout << "RecursiveTopologyTree: Case " << e.Current().ShapeType() << " not handeled" << endl;
-+         }
-+
-+         int nrsubshapes = 0;
-+
-+         if (l <= TopAbs_WIRE)
-+         {
-+            TopExp_Explorer e2;
-+            for (e2.Init (e.Current(), TopAbs_ShapeEnum (l+1));
-+               e2.More(); e2.Next())
-+               nrsubshapes++;
-+         }
-+
-+         str << "{" << shapename[l] << " " << count2;
-+
-+         if (l <= TopAbs_EDGE)
-+         {
-+            str << " (" << orientationstring[e.Current().Orientation()];
-+            if (nrsubshapes != 0) str << ", " << nrsubshapes;
-+            str << ") } ";
-+         }
-+         else
-+            str << " } ";
-+
-+         RecursiveTopologyTree (e.Current(), str, TopAbs_ShapeEnum (l+1),
-+            false, (char*)lname2.str().c_str());
-+
-+      }
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetTopologyTree (stringstream & str)
-+   {
-+      cout << "Building topology tree ... " << flush;
-+      RecursiveTopologyTree (shape, str, TopAbs_COMPSOLID, false, "CompSolids");
-+      RecursiveTopologyTree (shape, str, TopAbs_SOLID, true, "FreeSolids");
-+      RecursiveTopologyTree (shape, str, TopAbs_SHELL, true, "FreeShells");
-+      RecursiveTopologyTree (shape, str, TopAbs_FACE, true, "FreeFaces");
-+      RecursiveTopologyTree (shape, str, TopAbs_WIRE, true, "FreeWires");
-+      RecursiveTopologyTree (shape, str, TopAbs_EDGE, true, "FreeEdges");
-+      RecursiveTopologyTree (shape, str, TopAbs_VERTEX, true, "FreeVertices");
-+      str << flush;
-+      //  cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: CheckIrregularEntities(stringstream & str)
-+   {
-+      ShapeAnalysis_CheckSmallFace csm;
-+
-+      csm.SetTolerance (1e-6);
-+
-+      TopTools_DataMapOfShapeListOfShape mapEdges;
-+      ShapeAnalysis_DataMapOfShapeListOfReal mapParam;
-+      TopoDS_Compound theAllVert;
-+
-+      int spotfaces = 0;
-+      int stripsupportfaces = 0;
-+      int singlestripfaces = 0;
-+      int stripfaces = 0;
-+      int facessplitbyvertices = 0;
-+      int stretchedpinfaces = 0;
-+      int smoothpinfaces = 0;
-+      int twistedfaces = 0;
-+      // int edgessamebutnotidentified = 0;
-+
-+      cout << "checking faces ... " << flush;
-+
-+      int i;
-+      for (i = 1; i <= fmap.Extent(); i++)
-+      {
-+         TopoDS_Face face = TopoDS::Face (fmap(i));
-+         TopoDS_Edge e1, e2;
-+
-+         if (csm.CheckSpotFace (face))
-+         {
-+            if (!spotfaces++)
-+               str << "SpotFace {Spot face} ";
-+
-+            (*testout) << "Face " << i << " is a spot face" << endl;
-+            str << "SpotFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+
-+         if (csm.IsStripSupport (face))
-+         {
-+            if (!stripsupportfaces++)
-+               str << "StripSupportFace {Strip support face} ";
-+
-+            (*testout) << "Face " << i << " has strip support" << endl;
-+            str << "StripSupportFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+
-+         if (csm.CheckSingleStrip(face, e1, e2))
-+         {
-+            if (!singlestripfaces++)
-+               str << "SingleStripFace {Single strip face} ";
-+
-+            (*testout) << "Face " << i << " is a single strip (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)" << endl;
-+            str << "SingleStripFace/Face" << i << " ";
-+            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
-+         }
-+
-+         if (csm.CheckStripFace(face, e1, e2))
-+         {
-+            if (!stripfaces++)
-+               str << "StripFace {Strip face} ";
-+
-+            (*testout) << "Face " << i << " is a strip (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2)
-+               << " are identical)" << endl;
-+            str << "StripFace/Face" << i << " ";
-+            str << "{Face " << i << " (edge " << emap.FindIndex(e1)
-+               << " and edge " << emap.FindIndex(e2) << " are identical)} ";
-+         }
-+
-+         if (int count = csm.CheckSplittingVertices(face, mapEdges, mapParam, theAllVert))
-+         {
-+            if (!facessplitbyvertices++)
-+               str << "FaceSplitByVertices {Face split by vertices} ";
-+
-+            (*testout) << "Face " << i << " is split by " << count
-+               << " vertex/vertices " << endl;
-+            str << "FaceSplitByVertices/Face" << i << " ";
-+            str << "{Face " << i << " (split by " << count << "vertex/vertices)} ";
-+         }
-+
-+         int whatrow, sens;
-+         if (int type = csm.CheckPin (face, whatrow, sens))
-+         {
-+            if (type == 1)
-+            {
-+               if (!smoothpinfaces++)
-+                  str << "SmoothPinFace {Smooth pin face} ";
-+
-+               (*testout) << "Face " << i << " is a smooth pin" << endl;
-+               str << "SmoothPinFace/Face" << i << " ";
-+               str << "{Face " << i << " } ";
-+            }
-+            else
-+            {
-+               if (!stretchedpinfaces++)
-+                  str << "StretchedPinFace {Stretched pin face} ";
-+
-+               (*testout) << "Face " << i << " is a streched pin" << endl;
-+               str << "StretchedPinFace/Face" << i << " ";
-+               str << "{Face " << i << " } ";
-+            }
-+         }
-+
-+         double paramu, paramv;
-+         if (csm.CheckTwisted (face, paramu, paramv))
-+         {
-+            if (!twistedfaces++)
-+               str << "TwistedFace {Twisted face} ";
-+
-+            (*testout) << "Face " << i << " is twisted" << endl;
-+            str << "TwistedFace/Face" << i << " ";
-+            str << "{Face " << i << " } ";
-+         }
-+      }
-+
-+      cout << "done" << endl;
-+      cout << "checking edges ... " << flush;
-+
-+      // double dmax;
-+      // int cnt = 0;
-+      Array <double> edgeLengths;
-+      Array <int> order;
-+      edgeLengths.SetSize (emap.Extent());
-+      order.SetSize (emap.Extent());
-+
-+      for (i = 1; i <= emap.Extent(); i++)
-+      {
-+         TopoDS_Edge edge1 = TopoDS::Edge (emap(i));
-+         GProp_GProps system;
-+         BRepGProp::LinearProperties(edge1, system);
-+         edgeLengths[i-1] = system.Mass();
-+      }
-+
-+      Sort (edgeLengths, order);
-+
-+      str << "ShortestEdges {Shortest edges} ";
-+      for (i = 1; i <= min(20, emap.Extent()); i++)
-+      {
-+         str << "ShortestEdges/Edge" << i;
-+         str << " {Edge " << order[i-1] << " (L=" << edgeLengths[order[i-1]-1] << ")} ";
-+      }
-+
-+      str << flush;
-+
-+      cout << "done" << endl;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetUnmeshedFaceInfo (stringstream & str)
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         if (facemeshstatus[i-1] == -1)
-+            str << "Face" << i << " {Face " << i << " } ";
-+      }
-+      str << flush;
-+   }
-+
-+
-+
-+
-+   void OCCGeometry :: GetNotDrawableFaces (stringstream & str)
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+      {
-+         if (!fvispar[i-1].IsDrawable())
-+            str << "Face" << i << " {Face " << i << " } ";
-+      }
-+      str << flush;
-+   }
-+
-+
-+
-+
-+   bool OCCGeometry :: ErrorInSurfaceMeshing ()
-+   {
-+      for (int i = 1; i <= fmap.Extent(); i++)
-+         if (facemeshstatus[i-1] == -1)
-+            return true;
-+
-+      return false;
-+   }
-+
-+
-+
-+
-+  int OCCGeometry :: GenerateMesh (Mesh*& mesh, MeshingParameters & mparam,
-+      int perfstepsstart, int perfstepsend)
-+   {
-+     return OCCGenerateMesh (*this, mesh, mparam, perfstepsstart, perfstepsend);
-+   }
-+
-+
-+
-+
-+   const Refinement & OCCGeometry :: GetRefinement () const
-+   {
-+      return * new OCCRefinementSurfaces (*this);
-+   }
-+
-+
-+
-+
-+   OCCParameters :: OCCParameters()
-+   {
-+      resthcloseedgefac = 1;
-+      resthcloseedgeenable = 1;
-+        resthminedgelen = 0.001;
-+        resthminedgelenenable = 1;
-+   }
-+
-+
-+
-+
-+   void OCCParameters :: Print(ostream & ost) const
-+   {
-+      ost << "OCC Parameters:" << endl
-+         << "close edges: " << resthcloseedgeenable
-+         << ", fac = " << resthcloseedgefac << endl
-+               << "minimum edge length: " << resthminedgelenenable
-+               << ", min len = " << resthminedgelen << endl;
-+   }
-+
-+
-+
-+
-+   OCCParameters occparam;
-+
-+}
-+
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occgeom.hpp       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occgeom.hpp      2019-11-14 16:56:23.322426671 +0300
-@@ -1,457 +1,475 @@
--#ifndef FILE_OCCGEOM\r
--#define FILE_OCCGEOM\r
--\r
--/* *************************************************************************/\r
--/* File:   occgeom.hpp                                                     */\r
--/* Author: Robert Gaisbauer                                                */\r
--/* Date:   26. May  03                                                     */\r
--/* *************************************************************************/\r
--\r
--#ifdef OCCGEOMETRY\r
--\r
--#include <meshing.hpp>\r
--\r
--#include "BRep_Tool.hxx"\r
--#include "Geom_Curve.hxx"\r
--#include "Geom2d_Curve.hxx"\r
--#include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
--#include "BRepTools.hxx"\r
--#include "TopExp.hxx"\r
--#include "BRepBuilderAPI_MakeVertex.hxx"\r
--#include "BRepBuilderAPI_MakeShell.hxx"\r
--#include "BRepBuilderAPI_MakeSolid.hxx"\r
--#include "BRepOffsetAPI_Sewing.hxx"\r
--#include "BRepLProp_SLProps.hxx"\r
--#include "BRepAdaptor_Surface.hxx"\r
--#include "Poly_Triangulation.hxx"\r
--#include "Poly_Array1OfTriangle.hxx"\r
--#include "TColgp_Array1OfPnt2d.hxx"\r
--#include "Poly_Triangle.hxx"\r
--#include "GProp_GProps.hxx"\r
--#include "BRepGProp.hxx"\r
--#include "Geom_Surface.hxx"\r
--#include "TopExp.hxx"\r
--#include "gp_Pnt.hxx"\r
--#include "TopoDS.hxx"\r
--#include "TopoDS_Solid.hxx"\r
--#include "TopExp_Explorer.hxx"\r
--#include "TopTools_ListIteratorOfListOfShape.hxx"\r
--#include "BRep_Tool.hxx"\r
--#include "Geom_Curve.hxx"\r
--#include "Geom2d_Curve.hxx"\r
--#include "Geom_Surface.hxx"\r
--#include "GeomAPI_ProjectPointOnSurf.hxx"\r
--#include "GeomAPI_ProjectPointOnCurve.hxx"\r
--#include "TopoDS_Wire.hxx"\r
--#include "BRepTools_WireExplorer.hxx"\r
--#include "BRepTools.hxx"\r
--#include "TopTools_IndexedMapOfShape.hxx"\r
--#include "TopExp.hxx"\r
--#include "BRepBuilderAPI_MakeVertex.hxx"\r
--#include "BRepBuilderAPI_MakeShell.hxx"\r
--#include "BRepBuilderAPI_MakeSolid.hxx"\r
--#include "BRepOffsetAPI_Sewing.hxx"\r
--#include "BRepLProp_CLProps.hxx"\r
--#include "BRepLProp_SLProps.hxx"\r
--#include "BRepAdaptor_Surface.hxx"\r
--#include "BRepAdaptor_Curve.hxx"\r
--#include "Poly_Triangulation.hxx"\r
--#include "Poly_Array1OfTriangle.hxx"\r
--#include "TColgp_Array1OfPnt2d.hxx"\r
--#include "Poly_Triangle.hxx"\r
--#include "GProp_GProps.hxx"\r
--#include "BRepGProp.hxx"\r
--#include "TopoDS_Shape.hxx"\r
--#include "TopoDS_Face.hxx"\r
--#include "IGESToBRep_Reader.hxx"\r
--#include "Interface_Static.hxx"\r
--#include "GeomAPI_ExtremaCurveCurve.hxx"\r
--#include "Standard_ErrorHandler.hxx"\r
--#include "Standard_Failure.hxx"\r
--#include "ShapeUpgrade_ShellSewing.hxx"\r
--#include "ShapeFix_Shape.hxx"\r
--#include "ShapeFix_Wireframe.hxx"\r
--#include "BRepMesh.hxx"\r
--#include "BRepMesh_IncrementalMesh.hxx"\r
--#include "BRepBndLib.hxx"\r
--#include "Bnd_Box.hxx"\r
--#include "ShapeAnalysis.hxx"\r
--#include "ShapeBuild_ReShape.hxx"\r
--\r
--\r
--// Philippose - 29/01/2009\r
--// OpenCascade XDE Support\r
--// Include support for OpenCascade XDE Features\r
--#include "TDocStd_Document.hxx"\r
--#include "Quantity_Color.hxx"\r
--#include "XCAFApp_Application.hxx"\r
--#include "XCAFDoc_ShapeTool.hxx"\r
--#include "XCAFDoc_Color.hxx"\r
--#include "XCAFDoc_ColorTool.hxx"\r
--#include "XCAFDoc_ColorType.hxx"\r
--#include "XCAFDoc_LayerTool.hxx"\r
--#include "XCAFDoc_DimTolTool.hxx"\r
--#include "XCAFDoc_MaterialTool.hxx"\r
--#include "XCAFDoc_DocumentTool.hxx"\r
--#include "TDF_Label.hxx"\r
--#include "TDF_LabelSequence.hxx"\r
--#include "STEPCAFControl_Reader.hxx"\r
--#include "STEPCAFControl_Writer.hxx"\r
--#include "IGESCAFControl_Reader.hxx"\r
--#include "IGESCAFControl_Writer.hxx"\r
--\r
--#include "IGESControl_Reader.hxx"\r
--#include "STEPControl_Reader.hxx"\r
--#include "IGESControl_Writer.hxx"\r
--#include "STEPControl_Writer.hxx"\r
--\r
--#include "StlAPI_Writer.hxx"\r
--#include "STEPControl_StepModelType.hxx"\r
--\r
--namespace netgen\r
--{\r
--#include "occmeshsurf.hpp"\r
--\r
--  extern DLL_HEADER MeshingParameters mparam;\r
--\r
--#define PROJECTION_TOLERANCE 1e-10\r
--\r
--#define ENTITYISVISIBLE 1\r
--#define ENTITYISHIGHLIGHTED 2\r
--#define ENTITYISDRAWABLE 4\r
--\r
--#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0\r
--#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw\r
--#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw\r
--\r
--\r
--\r
--   class EntityVisualizationCode\r
--   {\r
--      int code;\r
--\r
--   public:\r
--\r
--      EntityVisualizationCode()\r
--      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}\r
--\r
--      int IsVisible ()\r
--      {  return code & ENTITYISVISIBLE;}\r
--\r
--      int IsHighlighted ()\r
--      {  return code & ENTITYISHIGHLIGHTED;}\r
--\r
--      int IsDrawable ()\r
--      {  return code & ENTITYISDRAWABLE;}\r
--\r
--      void Show ()\r
--      {  code |= ENTITYISVISIBLE;}\r
--\r
--      void Hide ()\r
--      {  code &= ~ENTITYISVISIBLE;}\r
--\r
--      void Highlight ()\r
--      {  code |= ENTITYISHIGHLIGHTED;}\r
--\r
--      void Lowlight ()\r
--      {  code &= ~ENTITYISHIGHLIGHTED;}\r
--\r
--      void SetDrawable ()\r
--      {  code |= ENTITYISDRAWABLE;}\r
--\r
--      void SetNotDrawable ()\r
--      {  code &= ~ENTITYISDRAWABLE;}\r
--   };\r
--\r
--\r
--\r
--   class Line\r
--   {\r
--   public:\r
--      Point<3> p0, p1;\r
--\r
--      double Dist (Line l);\r
--\r
--      double Length ();\r
--   };\r
--\r
--\r
--\r
--   inline double Det3 (double a00, double a01, double a02,\r
--      double a10, double a11, double a12,\r
--      double a20, double a21, double a22)\r
--   {\r
--      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;\r
--   }\r
--\r
--\r
--\r
--\r
--   class OCCGeometry : public NetgenGeometry\r
--   {\r
--      Point<3> center;\r
--\r
--   public:\r
--      TopoDS_Shape shape;\r
--      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;\r
--      Array<bool> fsingular, esingular, vsingular;\r
--      Box<3> boundingbox;\r
--\r
--      // Philippose - 29/01/2009\r
--      // OpenCascade XDE Support\r
--      // XCAF Handle to make the face colours available to the rest of\r
--      // the system\r
--      Handle_XCAFDoc_ColorTool face_colours;\r
--\r
--     mutable int changed;\r
--      Array<int> facemeshstatus;\r
--\r
--      // Philippose - 15/01/2009\r
--      // Maximum mesh size for a given face\r
--      // (Used to explicitly define mesh size limits on individual faces)\r
--      Array<double> face_maxh;\r
--      \r
--      // Philippose - 14/01/2010\r
--      // Boolean array to detect whether a face has been explicitly modified \r
--      // by the user or not\r
--      Array<bool> face_maxh_modified;\r
--\r
--      // Philippose - 15/01/2009\r
--      // Indicates which faces have been selected by the user in geometry mode\r
--      // (Currently handles only selection of one face at a time, but an array would\r
--      //  help to extend this to multiple faces)\r
--      Array<bool> face_sel_status;\r
--\r
--      Array<EntityVisualizationCode> fvispar, evispar, vvispar;\r
--\r
--      double tolerance;\r
--      bool fixsmalledges;\r
--      bool fixspotstripfaces;\r
--      bool sewfaces;\r
--      bool makesolids;\r
--      bool splitpartitions;\r
--\r
--      OCCGeometry()\r
--      {\r
--         somap.Clear();\r
--         shmap.Clear();\r
--         fmap.Clear();\r
--         wmap.Clear();\r
--         emap.Clear();\r
--         vmap.Clear();\r
--      }\r
--\r
--\r
--     virtual void Save (string filename) const;\r
--\r
--\r
--      void BuildFMap();\r
--\r
--      Box<3> GetBoundingBox()\r
--      {  return boundingbox;}\r
--\r
--      int NrSolids()\r
--      {  return somap.Extent();}\r
--\r
--      // Philippose - 17/01/2009\r
--      // Total number of faces in the geometry\r
--      int NrFaces()\r
--      {  return fmap.Extent();}\r
--\r
--      void SetCenter()\r
--      {  center = boundingbox.Center();}\r
--\r
--      Point<3> Center()\r
--      {  return center;}\r
--\r
--      void Project (int surfi, Point<3> & p) const;\r
--      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;\r
--\r
--      OCCSurface GetSurface (int surfi)\r
--      {\r
--         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;\r
--         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);\r
--      }\r
--\r
--      void CalcBoundingBox ();\r
--      void BuildVisualizationMesh (double deflection);\r
--\r
--      void RecursiveTopologyTree (const TopoDS_Shape & sh,\r
--         stringstream & str,\r
--         TopAbs_ShapeEnum l,\r
--         bool free,\r
--         const char * lname);\r
--\r
--      void GetTopologyTree (stringstream & str);\r
--\r
--      void PrintNrShapes ();\r
--\r
--      void CheckIrregularEntities (stringstream & str);\r
--\r
--      void SewFaces();\r
--\r
--      void MakeSolid();\r
--\r
--      void HealGeometry();\r
--\r
--      // Philippose - 15/01/2009\r
--      // Sets the maximum mesh size for a given face\r
--      // (Note: Local mesh size limited by the global max mesh size)\r
--      void SetFaceMaxH(int facenr, double faceh)\r
--      {\r
--         if((facenr> 0) && (facenr <= fmap.Extent()))\r
--         {\r
--         face_maxh[facenr-1] = min(mparam.maxh,faceh);\r
--            \r
--            // Philippose - 14/01/2010\r
--            // If the face maxh is greater than or equal to the \r
--            // current global maximum, then identify the face as \r
--            // not explicitly controlled by the user any more\r
--            if(faceh >= mparam.maxh)\r
--            {\r
--               face_maxh_modified[facenr-1] = 0;\r
--            }\r
--            else\r
--            {\r
--               face_maxh_modified[facenr-1] = 1;\r
--            }\r
--         }\r
--      }\r
--\r
--      // Philippose - 15/01/2009\r
--      // Returns the local mesh size of a given face\r
--      double GetFaceMaxH(int facenr)\r
--      {\r
--         if((facenr> 0) && (facenr <= fmap.Extent()))\r
--         {\r
--            return face_maxh[facenr-1];\r
--         }\r
--         else\r
--         {\r
--            return 0.0;\r
--         }\r
--      }\r
--      \r
--      // Philippose - 14/01/2010\r
--      // Returns the flag whether the given face \r
--      // has a mesh size controlled by the user or not\r
--      bool GetFaceMaxhModified(int facenr)\r
--      {\r
--         return face_maxh_modified[facenr-1];\r
--      }\r
--      \r
--      // Philippose - 17/01/2009\r
--      // Returns the index of the currently selected face\r
--      int SelectedFace()\r
--      {\r
--         int i;\r
--\r
--         for(i = 1; i <= fmap.Extent(); i++)\r
--         {\r
--            if(face_sel_status[i-1])\r
--            {\r
--               return i;\r
--            }\r
--         }\r
--\r
--         return 0;\r
--      }\r
--\r
--      // Philippose - 17/01/2009\r
--      // Sets the currently selected face\r
--      void SetSelectedFace(int facenr)\r
--      {\r
--         face_sel_status = 0;\r
--\r
--         if((facenr >= 1) && (facenr <= fmap.Extent()))\r
--         {\r
--            face_sel_status[facenr-1] = 1;\r
--         }\r
--      }\r
--\r
--      void LowLightAll()\r
--      {\r
--         for (int i = 1; i <= fmap.Extent(); i++)\r
--            fvispar[i-1].Lowlight();\r
--         for (int i = 1; i <= emap.Extent(); i++)\r
--            evispar[i-1].Lowlight();\r
--         for (int i = 1; i <= vmap.Extent(); i++)\r
--            vvispar[i-1].Lowlight();\r
--      }\r
--\r
--      void GetUnmeshedFaceInfo (stringstream & str);\r
--      void GetNotDrawableFaces (stringstream & str);\r
--      bool ErrorInSurfaceMeshing ();\r
--\r
--     void WriteOCC_STL(char * filename);\r
--\r
--     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam, \r
--         int perfstepsstart, int perfstepsend);\r
--\r
--      virtual const Refinement & GetRefinement () const;\r
--   };\r
--\r
--\r
--\r
--   class OCCParameters\r
--   {\r
--   public:\r
--\r
--      /// Factor for meshing close edges \r
--      double resthcloseedgefac;\r
--\r
--\r
--      /// Enable / Disable detection of close edges\r
--      int resthcloseedgeenable;\r
--\r
--\r
--        /// Minimum edge length to be used for dividing edges to mesh points\r
--        double resthminedgelen;\r
--\r
--\r
--        /// Enable / Disable use of the minimum edge length (by default use 1e-4)\r
--        int resthminedgelenenable;\r
--\r
--      /*!\r
--         Default Constructor for the OpenCascade\r
--         Mesh generation parameter set\r
--      */\r
--      OCCParameters();\r
--\r
--\r
--      /*!\r
--         Dump all the OpenCascade specific meshing parameters \r
--         to console\r
--      */\r
--      void Print (ostream & ost) const;\r
--   };\r
--   \r
--\r
--   void PrintContents (OCCGeometry * geom);\r
--\r
--   OCCGeometry * LoadOCC_IGES (const char * filename);\r
--   OCCGeometry * LoadOCC_STEP (const char * filename);\r
--   OCCGeometry * LoadOCC_BREP (const char * filename);\r
--\r
--   extern OCCParameters occparam;\r
--\r
--\r
--   // Philippose - 31.09.2009\r
--   // External access to the mesh generation functions within the OCC\r
--   // subsystem (Not sure if this is the best way to implement this....!!)\r
--   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,\r
--                             MeshingParameters & mparam,\r
--                             int perfstepsstart, int perfstepsend);\r
--\r
--  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);\r
--\r
--   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);\r
--\r
--   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);\r
--}\r
--\r
--#endif\r
--\r
--#endif\r
-+#ifndef FILE_OCCGEOM
-+#define FILE_OCCGEOM
-+
-+/* *************************************************************************/
-+/* File:   occgeom.hpp                                                     */
-+/* Author: Robert Gaisbauer                                                */
-+/* Date:   26. May  03                                                     */
-+/* *************************************************************************/
-+
-+#ifdef OCCGEOMETRY
-+
-+#include <meshing.hpp>
-+
-+#include "BRep_Tool.hxx"
-+#include "Geom_Curve.hxx"
-+#include "Geom2d_Curve.hxx"
-+#include "Geom_Surface.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
-+#include "BRepTools.hxx"
-+#include "TopExp.hxx"
-+#include "BRepBuilderAPI_MakeVertex.hxx"
-+#include "BRepBuilderAPI_MakeShell.hxx"
-+#include "BRepBuilderAPI_MakeSolid.hxx"
-+#include "BRepOffsetAPI_Sewing.hxx"
-+#include "BRepLProp_SLProps.hxx"
-+#include "BRepAdaptor_Surface.hxx"
-+#include "Poly_Triangulation.hxx"
-+#include "Poly_Array1OfTriangle.hxx"
-+#include "TColgp_Array1OfPnt2d.hxx"
-+#include "Poly_Triangle.hxx"
-+#include "GProp_GProps.hxx"
-+#include "BRepGProp.hxx"
-+#include "Geom_Surface.hxx"
-+#include "TopExp.hxx"
-+#include "gp_Pnt.hxx"
-+#include "TopoDS.hxx"
-+#include "TopoDS_Solid.hxx"
-+#include "TopExp_Explorer.hxx"
-+#include "TopTools_ListIteratorOfListOfShape.hxx"
-+#include "BRep_Tool.hxx"
-+#include "Geom_Curve.hxx"
-+#include "Geom2d_Curve.hxx"
-+#include "Geom_Surface.hxx"
-+// #include "GeomAPI_ProjectPointOnSurf.hxx"
-+// #include "GeomAPI_ProjectPointOnCurve.hxx"
-+#include "TopoDS_Wire.hxx"
-+#include "BRepTools_WireExplorer.hxx"
-+#include "BRepTools.hxx"
-+#include "TopTools_IndexedMapOfShape.hxx"
-+#include "TopExp.hxx"
-+#include "BRepBuilderAPI_MakeVertex.hxx"
-+#include "BRepBuilderAPI_MakeShell.hxx"
-+#include "BRepBuilderAPI_MakeSolid.hxx"
-+#include "BRepOffsetAPI_Sewing.hxx"
-+#include "BRepLProp_CLProps.hxx"
-+#include "BRepLProp_SLProps.hxx"
-+#include "BRepAdaptor_Surface.hxx"
-+#include "BRepAdaptor_Curve.hxx"
-+#include "Poly_Triangulation.hxx"
-+#include "Poly_Array1OfTriangle.hxx"
-+#include "TColgp_Array1OfPnt2d.hxx"
-+#include "Poly_Triangle.hxx"
-+#include "GProp_GProps.hxx"
-+#include "BRepGProp.hxx"
-+#include "TopoDS_Shape.hxx"
-+#include "TopoDS_Face.hxx"
-+#include "IGESToBRep_Reader.hxx"
-+#include "Interface_Static.hxx"
-+#include "GeomAPI_ExtremaCurveCurve.hxx"
-+//#include "Standard_ErrorHandler.hxx"
-+#include "Standard_Failure.hxx"
-+#include "ShapeUpgrade_ShellSewing.hxx"
-+#include "ShapeFix_Shape.hxx"
-+#include "ShapeFix_Wireframe.hxx"
-+#include <Standard_Version.hxx>
-+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) <= 0x060702
-+// porting to OCCT6.7.3
-+#include "BRepMesh.hxx"
-+#endif
-+#include "BRepMesh_IncrementalMesh.hxx"
-+#include "BRepBndLib.hxx"
-+#include "Bnd_Box.hxx"
-+#include "ShapeAnalysis.hxx"
-+#include "ShapeBuild_ReShape.hxx"
-+
-+// -- Optimization: to use cached projector and classifier
-+#include <NCollection_DataMap.hxx>
-+class ShapeAnalysis_Surface;
-+class BRepTopAdaptor_FClass2d;
-+
-+// Philippose - 29/01/2009
-+// OpenCascade XDE Support
-+// Include support for OpenCascade XDE Features
-+#include "TDocStd_Document.hxx"
-+#include "Quantity_Color.hxx"
-+#include "XCAFApp_Application.hxx"
-+#include "XCAFDoc_ShapeTool.hxx"
-+#include "XCAFDoc_Color.hxx"
-+#include "XCAFDoc_ColorTool.hxx"
-+#include "XCAFDoc_ColorType.hxx"
-+#include "XCAFDoc_LayerTool.hxx"
-+#include "XCAFDoc_DimTolTool.hxx"
-+#include "XCAFDoc_MaterialTool.hxx"
-+#include "XCAFDoc_DocumentTool.hxx"
-+#include "TDF_Label.hxx"
-+#include "TDF_LabelSequence.hxx"
-+#include "STEPCAFControl_Reader.hxx"
-+#include "STEPCAFControl_Writer.hxx"
-+#include "IGESCAFControl_Reader.hxx"
-+#include "IGESCAFControl_Writer.hxx"
-+
-+#include "IGESControl_Reader.hxx"
-+#include "STEPControl_Reader.hxx"
-+#include "IGESControl_Writer.hxx"
-+#include "STEPControl_Writer.hxx"
-+
-+#include "StlAPI_Writer.hxx"
-+#include "STEPControl_StepModelType.hxx"
-+
-+namespace netgen
-+{
-+#include "occmeshsurf.hpp"
-+
-+  extern DLL_HEADER MeshingParameters mparam;
-+
-+#define PROJECTION_TOLERANCE 1e-10
-+
-+#define ENTITYISVISIBLE 1
-+#define ENTITYISHIGHLIGHTED 2
-+#define ENTITYISDRAWABLE 4
-+
-+#define OCCGEOMETRYVISUALIZATIONNOCHANGE   0
-+#define OCCGEOMETRYVISUALIZATIONFULLCHANGE 1  // Compute transformation matrices and redraw
-+#define OCCGEOMETRYVISUALIZATIONHALFCHANGE 2  // Redraw
-+
-+
-+
-+   class EntityVisualizationCode
-+   {
-+      int code;
-+
-+   public:
-+
-+      EntityVisualizationCode()
-+      {  code = ENTITYISVISIBLE + !ENTITYISHIGHLIGHTED + ENTITYISDRAWABLE;}
-+
-+      int IsVisible ()
-+      {  return code & ENTITYISVISIBLE;}
-+
-+      int IsHighlighted ()
-+      {  return code & ENTITYISHIGHLIGHTED;}
-+
-+      int IsDrawable ()
-+      {  return code & ENTITYISDRAWABLE;}
-+
-+      void Show ()
-+      {  code |= ENTITYISVISIBLE;}
-+
-+      void Hide ()
-+      {  code &= ~ENTITYISVISIBLE;}
-+
-+      void Highlight ()
-+      {  code |= ENTITYISHIGHLIGHTED;}
-+
-+      void Lowlight ()
-+      {  code &= ~ENTITYISHIGHLIGHTED;}
-+
-+      void SetDrawable ()
-+      {  code |= ENTITYISDRAWABLE;}
-+
-+      void SetNotDrawable ()
-+      {  code &= ~ENTITYISDRAWABLE;}
-+   };
-+
-+
-+
-+   class Line
-+   {
-+   public:
-+      Point<3> p0, p1;
-+
-+      double Dist (Line l);
-+
-+      double Length ();
-+   };
-+
-+
-+
-+   inline double Det3 (double a00, double a01, double a02,
-+      double a10, double a11, double a12,
-+      double a20, double a21, double a22)
-+   {
-+      return a00*a11*a22 + a01*a12*a20 + a10*a21*a02 - a20*a11*a02 - a10*a01*a22 - a21*a12*a00;
-+   }
-+
-+
-+
-+
-+   class OCCGeometry : public NetgenGeometry
-+   {
-+      Point<3> center;
-+      // -- Optimization: to use cached projector and classifier
-+      mutable NCollection_DataMap<int,Handle(ShapeAnalysis_Surface)> fprjmap;
-+      mutable NCollection_DataMap<int,BRepTopAdaptor_FClass2d*> fclsmap;
-+
-+   public:
-+      TopoDS_Shape shape;
-+      TopTools_IndexedMapOfShape fmap, emap, vmap, somap, shmap, wmap;
-+      Array<bool> fsingular, esingular, vsingular;
-+      Box<3> boundingbox;
-+
-+      // Philippose - 29/01/2009
-+      // OpenCascade XDE Support
-+      // XCAF Handle to make the face colours available to the rest of
-+      // the system
-+      Handle(XCAFDoc_ColorTool) face_colours;
-+
-+     mutable int changed;
-+      Array<int> facemeshstatus;
-+
-+      // Philippose - 15/01/2009
-+      // Maximum mesh size for a given face
-+      // (Used to explicitly define mesh size limits on individual faces)
-+      Array<double> face_maxh;
-+      
-+      // Philippose - 14/01/2010
-+      // Boolean array to detect whether a face has been explicitly modified 
-+      // by the user or not
-+      Array<bool> face_maxh_modified;
-+
-+      // Philippose - 15/01/2009
-+      // Indicates which faces have been selected by the user in geometry mode
-+      // (Currently handles only selection of one face at a time, but an array would
-+      //  help to extend this to multiple faces)
-+      Array<bool> face_sel_status;
-+
-+      Array<EntityVisualizationCode> fvispar, evispar, vvispar;
-+
-+      double tolerance;
-+      bool fixsmalledges;
-+      bool fixspotstripfaces;
-+      bool sewfaces;
-+      bool makesolids;
-+      bool splitpartitions;
-+
-+      OCCGeometry()
-+      {
-+         somap.Clear();
-+         shmap.Clear();
-+         fmap.Clear();
-+         wmap.Clear();
-+         emap.Clear();
-+         vmap.Clear();
-+      }
-+
-+
-+     virtual void Save (string filename) const;
-+
-+
-+      ~OCCGeometry();      // -- to free cached projector and classifier
-+
-+      void BuildFMap();
-+
-+      Box<3> GetBoundingBox()
-+      {  return boundingbox;}
-+
-+      int NrSolids()
-+      {  return somap.Extent();}
-+
-+      // Philippose - 17/01/2009
-+      // Total number of faces in the geometry
-+      int NrFaces()
-+      {  return fmap.Extent();}
-+
-+      void SetCenter()
-+      {  center = boundingbox.Center();}
-+
-+      Point<3> Center()
-+      {  return center;}
-+
-+      // void Project (int surfi, Point<3> & p) const; -- optimization
-+      bool Project (int surfi, Point<3> & p, double& u, double& v) const;
-+      bool FastProject (int surfi, Point<3> & ap, double& u, double& v) const;
-+
-+      // -- Optimization: to use cached projector and classifier
-+      void GetFaceTools(int surfi, Handle(ShapeAnalysis_Surface)& proj,
-+                        BRepTopAdaptor_FClass2d*& cls) const;
-+
-+      OCCSurface GetSurface (int surfi)
-+      {
-+         cout << "OCCGeometry::GetSurface using PLANESPACE" << endl;
-+         return OCCSurface (TopoDS::Face(fmap(surfi)), PLANESPACE);
-+      }
-+
-+      void CalcBoundingBox ();
-+      void BuildVisualizationMesh (double deflection);
-+
-+      void RecursiveTopologyTree (const TopoDS_Shape & sh,
-+         stringstream & str,
-+         TopAbs_ShapeEnum l,
-+         bool free,
-+         const char * lname);
-+
-+      void GetTopologyTree (stringstream & str);
-+
-+      void PrintNrShapes ();
-+
-+      void CheckIrregularEntities (stringstream & str);
-+
-+      void SewFaces();
-+
-+      void MakeSolid();
-+
-+      void HealGeometry();
-+
-+      // Philippose - 15/01/2009
-+      // Sets the maximum mesh size for a given face
-+      // (Note: Local mesh size limited by the global max mesh size)
-+      void SetFaceMaxH(int facenr, double faceh)
-+      {
-+         if((facenr> 0) && (facenr <= fmap.Extent()))
-+         {
-+         face_maxh[facenr-1] = min(mparam.maxh,faceh);
-+            
-+            // Philippose - 14/01/2010
-+            // If the face maxh is greater than or equal to the 
-+            // current global maximum, then identify the face as 
-+            // not explicitly controlled by the user any more
-+            if(faceh >= mparam.maxh)
-+            {
-+               face_maxh_modified[facenr-1] = 0;
-+            }
-+            else
-+            {
-+               face_maxh_modified[facenr-1] = 1;
-+            }
-+         }
-+      }
-+
-+      // Philippose - 15/01/2009
-+      // Returns the local mesh size of a given face
-+      double GetFaceMaxH(int facenr)
-+      {
-+         if((facenr> 0) && (facenr <= fmap.Extent()))
-+         {
-+            return face_maxh[facenr-1];
-+         }
-+         else
-+         {
-+            return 0.0;
-+         }
-+      }
-+      
-+      // Philippose - 14/01/2010
-+      // Returns the flag whether the given face 
-+      // has a mesh size controlled by the user or not
-+      bool GetFaceMaxhModified(int facenr)
-+      {
-+         return face_maxh_modified[facenr-1];
-+      }
-+      
-+      // Philippose - 17/01/2009
-+      // Returns the index of the currently selected face
-+      int SelectedFace()
-+      {
-+         int i;
-+
-+         for(i = 1; i <= fmap.Extent(); i++)
-+         {
-+            if(face_sel_status[i-1])
-+            {
-+               return i;
-+            }
-+         }
-+
-+         return 0;
-+      }
-+
-+      // Philippose - 17/01/2009
-+      // Sets the currently selected face
-+      void SetSelectedFace(int facenr)
-+      {
-+         face_sel_status = 0;
-+
-+         if((facenr >= 1) && (facenr <= fmap.Extent()))
-+         {
-+            face_sel_status[facenr-1] = 1;
-+         }
-+      }
-+
-+      void LowLightAll()
-+      {
-+         for (int i = 1; i <= fmap.Extent(); i++)
-+            fvispar[i-1].Lowlight();
-+         for (int i = 1; i <= emap.Extent(); i++)
-+            evispar[i-1].Lowlight();
-+         for (int i = 1; i <= vmap.Extent(); i++)
-+            vvispar[i-1].Lowlight();
-+      }
-+
-+      void GetUnmeshedFaceInfo (stringstream & str);
-+      void GetNotDrawableFaces (stringstream & str);
-+      bool ErrorInSurfaceMeshing ();
-+
-+     void WriteOCC_STL(char * filename);
-+
-+     virtual int GenerateMesh (Mesh*& mesh, MeshingParameters & mparam, 
-+         int perfstepsstart, int perfstepsend);
-+
-+      virtual const Refinement & GetRefinement () const;
-+   };
-+
-+
-+
-+   class OCCParameters
-+   {
-+   public:
-+
-+      /// Factor for meshing close edges 
-+      double resthcloseedgefac;
-+
-+
-+      /// Enable / Disable detection of close edges
-+      int resthcloseedgeenable;
-+
-+
-+        /// Minimum edge length to be used for dividing edges to mesh points
-+        double resthminedgelen;
-+
-+
-+        /// Enable / Disable use of the minimum edge length (by default use 1e-4)
-+        int resthminedgelenenable;
-+
-+      /*!
-+         Default Constructor for the OpenCascade
-+         Mesh generation parameter set
-+      */
-+      OCCParameters();
-+
-+
-+      /*!
-+         Dump all the OpenCascade specific meshing parameters 
-+         to console
-+      */
-+      void Print (ostream & ost) const;
-+   };
-+   
-+
-+   void PrintContents (OCCGeometry * geom);
-+
-+   OCCGeometry * LoadOCC_IGES (const char * filename);
-+   OCCGeometry * LoadOCC_STEP (const char * filename);
-+   OCCGeometry * LoadOCC_BREP (const char * filename);
-+
-+   extern OCCParameters occparam;
-+
-+
-+   // Philippose - 31.09.2009
-+   // External access to the mesh generation functions within the OCC
-+   // subsystem (Not sure if this is the best way to implement this....!!)
-+   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
-+                             MeshingParameters & mparam,
-+                             int perfstepsstart, int perfstepsend);
-+
-+  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
-+
-+   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
-+
-+   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
-+}
-+
-+#endif
-+
-+#endif
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occmeshsurf.cpp   2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occmeshsurf.cpp  2019-11-14 16:56:24.270400136 +0300
-@@ -6,6 +6,7 @@
- #include <meshing.hpp>
- #include <GeomLProp_SLProps.hxx>
- #include <ShapeAnalysis_Surface.hxx>
-+#include <GeomAPI_ProjectPointOnCurve.hxx> // -- moved here from occgeom.hpp
- namespace netgen
-@@ -96,13 +97,16 @@
-       n.Normalize();
-       }
--    else
-+    else if ( lprop.IsNormalDefined() )
-       {
-       n(0)=lprop.Normal().X();
-       n(1)=lprop.Normal().Y();
-       n(2)=lprop.Normal().Z();
-       }
--
-+    else
-+      {
-+        n = 0;
-+      }
-     if(glob_testout)
-       {
-       (*testout) << "u " << geominfo.u << " v " << geominfo.v 
-@@ -434,23 +438,33 @@
-   void MeshOptimize2dOCCSurfaces :: ProjectPoint (INDEX surfind, Point<3> & p) const
-   {
--    geometry.Project (surfind, p);
-+    // geometry.Project (surfind, p); -- signature of Project() changed for optimization
-+    double u, v;
-+    geometry.Project (surfind, p, u, v);
-   }
-   int MeshOptimize2dOCCSurfaces :: ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
-   {
--    double u = gi.u;
--    double v = gi.v;
-+    //double u = gi.u;
-+    //double v = gi.v;
-     Point<3> hp = p;
--    if (geometry.FastProject (surfind, hp, u, v))
--      {
-+    // -- u and v are computed by FastProject() and Project(), no need to call CalcPointGeomInfo()
-+    // if (geometry.FastProject (surfind, hp, u, v))
-+    //   {
-+    //    p = hp;
-+    //    return 1;
-+    //   }
-+    // ProjectPoint (surfind, p); 
-+    // return CalcPointGeomInfo (surfind, gi, p); 
-+    bool ok;
-+    if (gi.trignum > 0)
-+      ok = geometry.FastProject (surfind, hp, gi.u, gi.v);
-+    else
-+      ok = geometry.Project (surfind, hp, gi.u, gi.v);
-       p = hp;
--      return 1;
--      }
--    ProjectPoint (surfind, p); 
--    return CalcPointGeomInfo (surfind, gi, p); 
-+    return ok;
-   }
-@@ -680,7 +694,8 @@
-       if (!geometry.FastProject (surfi, hnewp, u, v))
-         {
-         //  cout << "Fast projection to surface fails! Using OCC projection" << endl;
--          geometry.Project (surfi, hnewp);
-+          // geometry.Project (surfi, hnewp); -- Project() changed for optimization
-+          geometry.Project (surfi, hnewp, u, v);
-         }
-       newgi.trignum = 1;
-@@ -689,7 +704,7 @@
-       }
-   
-     newp = hnewp;
--  }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: 
-@@ -708,14 +723,18 @@
-     hnewp = Point<3> (pnt.X(), pnt.Y(), pnt.Z());
-     newp = hnewp;
-     newgi = ap1;
--  };
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi) const
-   {
-     if (surfi > 0)
--      geometry.Project (surfi, p);
--  };
-+      //geometry.Project (surfi, p);
-+    {
-+      double u, v;
-+      geometry.Project (surfi, p, u, v);
-+    }
-+  }//; -- to compile with -Wall -pedantic
-   void OCCRefinementSurfaces :: ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi) const
-   {
-@@ -723,9 +742,10 @@
-       if (!geometry.FastProject (surfi, p, gi.u, gi.v))
-       {
-         cout << "Fast projection to surface fails! Using OCC projection" << endl;
--        geometry.Project (surfi, p);
-+          double u, v;
-+        geometry.Project (surfi, p, u, v);
-+      }
-       }
--  };
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp
---- netgen-5.3.1_SRC_orig/libsrc/occ/occpkg.cpp        2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/occpkg.cpp       2019-11-14 16:56:23.554420177 +0300
-@@ -1,1024 +1,1024 @@
--#ifdef OCCGEOMETRY\r
--\r
--#include <mystdlib.h>\r
--#include <myadt.hpp>\r
--#include <linalg.hpp>\r
--#include <csg.hpp>\r
--#include <occgeom.hpp>\r
--\r
--\r
--#include <incvis.hpp>\r
--#include <visual.hpp>\r
--\r
--#include "../meshing/bcfunctions.hpp"\r
--\r
--#include "vsocc.hpp"\r
--\r
--\r
--extern "C" int Ng_occ_Init (Tcl_Interp * interp);\r
--\r
--\r
--\r
--namespace netgen\r
--{\r
--  extern AutoPtr<NetgenGeometry> ng_geometry;\r
--  extern AutoPtr<Mesh> mesh;\r
-- \r
--  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";\r
--  extern char * err_needsmesh;\r
--  extern char * err_jobrunning;\r
--\r
--\r
--\r
--                          \r
--  class OCCGeometryRegister : public GeometryRegister\r
--  {\r
--  public:\r
--    virtual NetgenGeometry * Load (string filename) const;\r
--    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;\r
--\r
--    virtual void SetParameters (Tcl_Interp * interp) \r
--    {\r
--      occparam.resthcloseedgefac =\r
--      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));\r
--      occparam.resthcloseedgeenable =\r
--      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));\r
--        occparam.resthminedgelen = \r
--      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));\r
--        occparam.resthminedgelenenable = \r
--      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));\r
--    }\r
--  };\r
--\r
--\r
--\r
--\r
--  int Ng_SetOCCVisParameters  (ClientData clientData,\r
--                             Tcl_Interp * interp,\r
--                             int argc, tcl_const char *argv[])\r
--  {\r
--#ifdef OCCGEOMETRY\r
--    int showvolume;\r
--      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
--\r
--    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));\r
--\r
--    if (occgeometry)\r
--      if (showvolume != vispar.occshowvolumenr)\r
--      {\r
--        if (showvolume < 0 || showvolume > occgeometry->NrSolids())\r
--          {\r
--            char buf[20];\r
--            sprintf (buf, "%5i", vispar.occshowvolumenr);\r
--            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);\r
--          }\r
--        else\r
--          {\r
--            vispar.occshowvolumenr = showvolume;\r
--            if (occgeometry)\r
--              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--          }\r
--      }\r
--    \r
--    int temp;\r
--\r
--    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));\r
--\r
--    if ((bool) temp != vispar.occvisproblemfaces)\r
--      {\r
--      vispar.occvisproblemfaces = temp;\r
--      if (occgeometry)\r
--        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--      }\r
--\r
--    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));\r
--    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));\r
--    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));\r
--    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));\r
--\r
--#endif\r
--\r
--\r
--\r
--\r
--\r
--#ifdef ACIS\r
--    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));\r
--    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));\r
--    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));\r
--    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));\r
--\r
--#endif\r
--\r
--\r
--\r
--    return TCL_OK;\r
--  }  \r
--\r
--\r
--\r
--\r
--  int Ng_GetOCCData (ClientData clientData,\r
--                   Tcl_Interp * interp,\r
--                   int argc, tcl_const char *argv[])\r
--  {\r
--#ifdef OCCGEOMETRY\r
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
--\r
--    static char buf[1000];\r
--    buf[0] = 0;\r
--    stringstream str;\r
--\r
--    if (argc >= 2)\r
--      {\r
--      if (strcmp (argv[1], "getentities") == 0)\r
--        {\r
--          if (occgeometry)\r
--            {\r
--              occgeometry->GetTopologyTree(str);\r
--            }\r
--        }\r
--      }\r
--\r
--    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
--\r
--#endif\r
--    return TCL_OK;\r
--  }\r
--\r
--  \r
--\r
--  int Ng_OCCCommand (ClientData clientData,\r
--                   Tcl_Interp * interp,\r
--                   int argc, tcl_const char *argv[])\r
--  {\r
--#ifdef OCCGEOMETRY\r
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
--\r
--    stringstream str;\r
--    if (argc >= 2)\r
--      {\r
--      if (strcmp (argv[1], "isoccgeometryloaded") == 0)\r
--        {\r
--          if (occgeometry)\r
--            str << "1 " << flush;\r
--          else str << "0 " << flush;\r
--\r
--          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
--        }\r
--      if (occgeometry)\r
--        {\r
--          if (strcmp (argv[1], "buildvisualizationmesh") == 0)\r
--            {\r
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--            }\r
--          if (strcmp (argv[1], "mesherror") == 0)\r
--            {\r
--              if (occgeometry->ErrorInSurfaceMeshing())\r
--                str << 1;\r
--              else\r
--                str << 0;\r
--            }\r
--          if (strcmp (argv[1], "sewfaces") == 0)\r
--            {\r
--              cout << "Before operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->SewFaces();\r
--              occgeometry->BuildFMap();\r
--              cout << endl << "After operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--            }\r
--          if (strcmp (argv[1], "makesolid") == 0)\r
--            {\r
--              cout << "Before operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->MakeSolid();\r
--              occgeometry->BuildFMap();\r
--              cout << endl << "After operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--            }\r
--          if (strcmp (argv[1], "upgradetopology") == 0)\r
--            {\r
--              cout << "Before operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->SewFaces();\r
--              occgeometry->MakeSolid();\r
--              occgeometry->BuildFMap();\r
--              cout << endl << "After operation:" << endl;\r
--              occgeometry->PrintNrShapes();\r
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--            }\r
--          if (strcmp (argv[1], "shapehealing") == 0)\r
--            {\r
--              occgeometry->tolerance =\r
--                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));\r
--              occgeometry->fixsmalledges =\r
--                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));\r
--              occgeometry->fixspotstripfaces =\r
--                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));\r
--              occgeometry->sewfaces =\r
--                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));\r
--              occgeometry->makesolids =\r
--                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));\r
--              occgeometry->splitpartitions =\r
--                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));\r
--\r
--              //            cout << "Before operation:" << endl;\r
--              //            occgeometry->PrintNrShapes();\r
--              occgeometry->HealGeometry();\r
--              occgeometry->BuildFMap();\r
--              //            cout << endl << "After operation:" << endl;\r
--              //            occgeometry->PrintNrShapes();\r
--              occgeometry->BuildVisualizationMesh(vispar.occdeflection);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--            }\r
--\r
--\r
--          if (strcmp (argv[1], "highlightentity") == 0)\r
--            {\r
--              if (strcmp (argv[2], "Face") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  occgeometry->fvispar[nr-1].Highlight();\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--              if (strcmp (argv[2], "Shell") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Highlight();\r
--                    }\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--              if (strcmp (argv[2], "Solid") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Highlight();\r
--                    }\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--              /*\r
--                if (strcmp (argv[2], "CompSolid") == 0)\r
--                {\r
--                int nr = atoi (argv[3]);\r
--                occgeometry->LowLightAll();\r
--\r
--                TopExp_Explorer exp;\r
--                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);\r
--                exp.More(); exp.Next())\r
--                {\r
--                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                occgeometry->fvispar[i-1].Highlight();\r
--                }\r
--                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--              */\r
--\r
--              if (strcmp (argv[2], "Edge") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  occgeometry->evispar[nr-1].Highlight();\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--              if (strcmp (argv[2], "Wire") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
--                      occgeometry->evispar[i-1].Highlight();\r
--                    }\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--\r
--              if (strcmp (argv[2], "Vertex") == 0)\r
--                {\r
--                  int nr = atoi (argv[3]);\r
--                  occgeometry->LowLightAll();\r
--\r
--                  occgeometry->vvispar[nr-1].Highlight();\r
--                  if (vispar.occzoomtohighlightedentity)\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;\r
--                  else\r
--                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--                }\r
--\r
--            }\r
--\r
--\r
--\r
--          if (strcmp (argv[1], "show") == 0)\r
--            {\r
--              int nr = atoi (argv[3]);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--\r
--              if (strcmp (argv[2], "Face") == 0)\r
--                {\r
--                  occgeometry->fvispar[nr-1].Show();\r
--                }\r
--              if (strcmp (argv[2], "Shell") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Show();\r
--                    }\r
--                }\r
--              if (strcmp (argv[2], "Solid") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Show();\r
--                    }\r
--                }\r
--              if (strcmp (argv[2], "Edge") == 0)\r
--                {\r
--                  occgeometry->evispar[nr-1].Show();\r
--                }\r
--              if (strcmp (argv[2], "Wire") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
--                      occgeometry->evispar[i-1].Show();\r
--                    }\r
--                }\r
--            }\r
--\r
--\r
--          if (strcmp (argv[1], "hide") == 0)\r
--            {\r
--              int nr = atoi (argv[3]);\r
--              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--\r
--              if (strcmp (argv[2], "Face") == 0)\r
--                {\r
--                  occgeometry->fvispar[nr-1].Hide();\r
--                }\r
--              if (strcmp (argv[2], "Shell") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Hide();\r
--                    }\r
--                }\r
--              if (strcmp (argv[2], "Solid") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));\r
--                      occgeometry->fvispar[i-1].Hide();\r
--                    }\r
--                }\r
--              if (strcmp (argv[2], "Edge") == 0)\r
--                {\r
--                  occgeometry->evispar[nr-1].Hide();\r
--                }\r
--              if (strcmp (argv[2], "Wire") == 0)\r
--                {\r
--                  TopExp_Explorer exp;\r
--                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);\r
--                       exp.More(); exp.Next())\r
--                    {\r
--                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));\r
--                      occgeometry->evispar[i-1].Hide();\r
--                    }\r
--                }\r
--            }\r
--\r
--\r
--\r
--          if (strcmp (argv[1], "findsmallentities") == 0)\r
--            {\r
--              stringstream str("");\r
--              occgeometry->CheckIrregularEntities(str);\r
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
--            }\r
--          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)\r
--            {\r
--              occgeometry->GetUnmeshedFaceInfo(str);\r
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
--            }\r
--          if (strcmp (argv[1], "getnotdrawablefaces") == 0)\r
--            {\r
--              occgeometry->GetNotDrawableFaces(str);\r
--              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);\r
--            }\r
--          if (strcmp (argv[1], "redrawstatus") == 0)\r
--            {\r
--              int i = atoi (argv[2]);\r
--              occgeometry->changed = i;\r
--            }\r
--          if (strcmp (argv[1], "swaporientation") == 0)\r
--            {\r
--              IGESControl_Writer writer("millimeters", 1);\r
--              writer.AddShape (occgeometry->shape);\r
--              writer.Write ("1.igs");\r
--              /*\r
--                int nr = atoi (argv[3]);\r
--\r
--                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();\r
--\r
--                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;\r
--                rebuild->Apply(occgeometry->shape);\r
--\r
--                TopoDS_Shape sh;\r
--\r
--                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);\r
--                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);\r
--                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);\r
--                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);\r
--                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);\r
--                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);\r
--\r
--                rebuild->Replace(sh, sh.Reversed(), Standard_False);\r
--\r
--                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);\r
--                occgeometry->shape = newshape;\r
--\r
--                occgeometry->BuildFMap();\r
--                occgeometry->BuildVisualizationMesh();\r
--                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--              */\r
--            }\r
--          if (strcmp (argv[1], "marksingular") == 0)\r
--            {\r
--              int nr = atoi (argv[3]);\r
--              cout << "marking " << argv[2] << " " << nr << endl;\r
--              char buf[2]; buf[0] = '0'; buf[1] = 0;\r
--              bool sing = false;\r
--              if (strcmp (argv[2], "Face") == 0)\r
--                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];\r
--              if (strcmp (argv[2], "Edge") == 0)\r
--                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];\r
--              if (strcmp (argv[2], "Vertex") == 0)\r
--                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];\r
--\r
--              if (sing) buf[0] = '1';\r
--\r
--                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);\r
--\r
--              stringstream str;\r
--              occgeometry->GetTopologyTree (str);\r
--\r
--              char* cstr = (char*)str.str().c_str();\r
--\r
--              (*testout) << cstr << endl;\r
--\r
--              char helpstr[1000];\r
--\r
--              while (strchr (cstr, '}'))\r
--                {\r
--                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));\r
--                  (*testout) << "***" << cstr << "***" << endl;\r
--                  cstr = strchr (cstr, '}');\r
--                } \r
--            }\r
--        }\r
--      }\r
--\r
--#endif\r
--    return TCL_OK;\r
--  }\r
--\r
--\r
--\r
--#ifdef OCCGEOMETRY\r
--  /*\r
--  void OCCConstructGeometry (OCCGeometry & geom);\r
--\r
--  int Ng_OCCConstruction (ClientData clientData,\r
--                        Tcl_Interp * interp,\r
--                        int argc, tcl_const char *argv[])\r
--  {\r
--    if (occgeometry)\r
--      OCCConstructGeometry (*occgeometry);\r
--    return TCL_OK;\r
--  }\r
--  */\r
--#endif\r
--\r
--\r
--\r
--\r
--  // Philippose - 30/01/2009\r
--  // TCL interface function for the Local Face Mesh size\r
--  // definition functionality\r
--  int Ng_SurfaceMeshSize (ClientData clientData,\r
--                                  Tcl_Interp * interp,\r
--                                  int argc, tcl_const char *argv[])\r
--  {\r
--#ifdef OCCGEOMETRY\r
--\r
--    static char buf[100];\r
--\r
--    if (argc < 2)\r
--    {\r
--         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);\r
--         return TCL_ERROR;\r
--    }\r
--\r
--    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
--    if (!occgeometry)\r
--    {\r
--      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);\r
--         return TCL_ERROR;\r
--    }\r
--\r
--    // Update the face mesh sizes to reflect the global maximum mesh size\r
--    for(int i = 1; i <= occgeometry->NrFaces(); i++)\r
--    {\r
--           if(!occgeometry->GetFaceMaxhModified(i))\r
--           {\r
--              occgeometry->SetFaceMaxH(i, mparam.maxh);\r
--           }   \r
--    }\r
--\r
--    if (strcmp (argv[1], "setsurfms") == 0)\r
--    {\r
--         int facenr = atoi (argv[2]);\r
--         double surfms = atof (argv[3]);\r
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
--           occgeometry->SetFaceMaxH(facenr, surfms);\r
--\r
--    }\r
--\r
--    if (strcmp (argv[1], "setall") == 0)\r
--    {\r
--         double surfms = atof (argv[2]);\r
--         if (occgeometry)\r
--         {\r
--           int nrFaces = occgeometry->NrFaces();\r
--           for (int i = 1; i <= nrFaces; i++)\r
--            occgeometry->SetFaceMaxH(i, surfms);\r
--         }\r
--    }\r
--\r
--    if (strcmp (argv[1], "getsurfms") == 0)\r
--    {\r
--         int facenr = atoi (argv[2]);\r
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
--         {\r
--           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));\r
--         }\r
--         else\r
--         {\r
--           sprintf (buf, "%5.2f", mparam.maxh);\r
--         }\r
--         Tcl_SetResult (interp, buf, TCL_STATIC);\r
--    }\r
--\r
--    if (strcmp (argv[1], "getactive") == 0)\r
--    {\r
--         sprintf (buf, "%d", occgeometry->SelectedFace());\r
--         Tcl_SetResult (interp, buf, TCL_STATIC);\r
--    }\r
--\r
--    if (strcmp (argv[1], "setactive") == 0)\r
--    {\r
--         int facenr = atoi (argv[2]);\r
--         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())\r
--         {\r
--           occgeometry->SetSelectedFace (facenr);\r
--\r
--        occgeometry->LowLightAll();\r
--        occgeometry->fvispar[facenr-1].Highlight();\r
--        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;\r
--         }\r
--    }\r
--\r
--    if (strcmp (argv[1], "getnfd") == 0)\r
--    {\r
--         if (occgeometry)\r
--           sprintf (buf, "%d", occgeometry->NrFaces());\r
--         else\r
--           sprintf (buf, "0");\r
--         Tcl_SetResult (interp, buf, TCL_STATIC);\r
--    }\r
--    return TCL_OK;\r
--#else // No OCCGEOMETRY \r
--\r
--    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);\r
--    return TCL_ERROR;\r
--    \r
--#endif // OCCGEOMETRY\r
--  }\r
--\r
--\r
--\r
--  // Philippose - 25/07/2010\r
--  // TCL interface function for extracting and eventually \r
--  // setting or editing the current colours present in the mesh\r
--  int Ng_CurrentFaceColours (ClientData clientData,\r
--                             Tcl_Interp * interp,\r
--                             int argc, tcl_const char *argv[])\r
--  {\r
--     if(argc < 1)\r
--     {\r
--        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);\r
--        return TCL_ERROR;\r
--     }\r
--\r
--     if(!mesh.Ptr())\r
--     {\r
--        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);\r
--           return TCL_ERROR;\r
--     }\r
--\r
--     if(strcmp(argv[1], "getcolours") == 0)\r
--     {\r
--        stringstream outVar;\r
--        Array<Vec3d> face_colours;\r
--        GetFaceColours(*mesh, face_colours);\r
--\r
--        for(int i = 0; i < face_colours.Size();i++)\r
--        {\r
--           outVar << "{ " << face_colours[i].X(1)\r
--                  << " "  << face_colours[i].X(2)\r
--                  << " "  << face_colours[i].X(3)\r
--                  << " } ";\r
--        }\r
--\r
--        tcl_const char * valuevar = argv[2];\r
--        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);\r
--     }\r
--\r
--     if(strcmp(argv[1], "showalso") == 0)\r
--     {\r
--        Array<Vec3d> face_colours;\r
--        GetFaceColours(*mesh,face_colours);\r
--\r
--        int colourind = atoi (argv[2]);\r
--\r
--        for(int i = 1; i <= mesh->GetNFD(); i++)\r
--        {\r
--           Array<SurfaceElementIndex> surfElems;\r
--           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
--\r
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
--              }\r
--           }\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     if(strcmp(argv[1], "hidealso") == 0)\r
--     {\r
--        Array<Vec3d> face_colours;\r
--        GetFaceColours(*mesh,face_colours);\r
--\r
--        int colourind = atoi (argv[2]);\r
--\r
--        for(int i = 1; i <= mesh->GetNFD(); i++)\r
--        {\r
--           Array<SurfaceElementIndex> surfElems;\r
--           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
--\r
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
--              }\r
--           }\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     if(strcmp(argv[1], "showonly") == 0)\r
--     {\r
--        Array<Vec3d> face_colours;\r
--        GetFaceColours(*mesh,face_colours);\r
--\r
--        int colourind = atoi (argv[2]);\r
--\r
--        for(int i = 1; i <= mesh->GetNFD(); i++)\r
--        {\r
--           Array<SurfaceElementIndex> surfElems;\r
--           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
--\r
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
--              }\r
--           }\r
--           else\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
--              }\r
--           }\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     if(strcmp(argv[1], "hideonly") == 0)\r
--     {\r
--        Array<Vec3d> face_colours;\r
--        GetFaceColours(*mesh,face_colours);\r
--\r
--        int colourind = atoi (argv[2]);\r
--\r
--        for(int i = 1; i <= mesh->GetNFD(); i++)\r
--        {\r
--           Array<SurfaceElementIndex> surfElems;\r
--           mesh->GetSurfaceElementsOfFace(i,surfElems);\r
--\r
--           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(0);\r
--              }\r
--           }\r
--           else\r
--           {\r
--              for(int j = 0; j < surfElems.Size(); j++)\r
--              {\r
--                 mesh->SurfaceElement(surfElems[j]).Visible(1);\r
--              }\r
--           }\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     if(strcmp(argv[1], "showall") == 0)\r
--     {\r
--        for(int i = 1; i <= mesh->GetNSE(); i++)\r
--        {\r
--           mesh->SurfaceElement(i).Visible(1);\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     if(strcmp(argv[1], "hideall") == 0)\r
--     {\r
--        for(int i = 1; i <= mesh->GetNSE(); i++)\r
--        {\r
--           mesh->SurfaceElement(i).Visible(0);\r
--        }\r
--\r
--        mesh->SetNextTimeStamp();\r
--     }\r
--\r
--     return TCL_OK;\r
--  }\r
--\r
--\r
--\r
--\r
--  // Philippose - 10/03/2009\r
--  // TCL interface function for the Automatic Colour-based\r
--  // definition of boundary conditions for OCC Geometry\r
--  int Ng_AutoColourBcProps (ClientData clientData,\r
--                                    Tcl_Interp * interp,\r
--                                    int argc, tcl_const char *argv[])\r
--  {\r
--     if(argc < 1)\r
--     {\r
--        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);\r
--        return TCL_ERROR;\r
--     }\r
--\r
--     if(!mesh.Ptr())\r
--     {\r
--        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);\r
--           return TCL_ERROR;\r
--     }\r
--\r
--     if(strcmp(argv[1], "auto") == 0)\r
--     {\r
--        AutoColourBcProps(*mesh, 0);\r
--     }\r
--\r
--     if(strcmp(argv[1], "profile") == 0)\r
--     {\r
--        AutoColourBcProps(*mesh, argv[2]);\r
--     }\r
--\r
--     return TCL_OK;\r
--  }\r
--\r
--\r
--  int Ng_SetOCCParameters  (ClientData clientData,\r
--                          Tcl_Interp * interp,\r
--                          int argc, tcl_const char *argv[])\r
--  {\r
--    OCCGeometryRegister reg;\r
--    reg.SetParameters (interp);\r
--    /*\r
--    occparam.resthcloseedgefac =\r
--      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));\r
--\r
--    occparam.resthcloseedgeenable =\r
--      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));\r
--    */\r
--    return TCL_OK;\r
--  }\r
--\r
--\r
--\r
--\r
--  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const\r
--  {\r
--    const char * lgfilename = filename.c_str();\r
--\r
--\r
--    /*\r
--    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)\r
--      {\r
--      PrintMessage (1, "Load OCCG geometry file ", cfilename);\r
--      \r
--      extern OCCGeometry * ParseOCCG (istream & istr);\r
--\r
--      ifstream infile(cfilename);\r
--\r
--      OCCGeometry * hgeom = ParseOCCG (infile);\r
--      if (!hgeom)\r
--        throw NgException ("geo-file should start with 'algebraic3d'");\r
--\r
--      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize()); \r
--      return hgeom;\r
--      }\r
--    */\r
--\r
--\r
--    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||\r
--      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||\r
--      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||\r
--      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))\r
--      {\r
--      PrintMessage (1, "Load IGES geometry file ", lgfilename);\r
--      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);\r
--      return occgeometry;\r
--      }\r
--\r
--    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||\r
--                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||\r
--                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||\r
--                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))\r
--      {\r
--      PrintMessage (1, "Load STEP geometry file ", lgfilename);\r
--      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);\r
--      return occgeometry;    \r
--      }\r
--    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||\r
--           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||\r
--           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))\r
--      {\r
--      PrintMessage (1, "Load BREP geometry file ", lgfilename);\r
--      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);\r
--      return occgeometry;\r
--      }\r
--    \r
--    return NULL;\r
--  }\r
--\r
--\r
--  static VisualSceneOCCGeometry vsoccgeom;\r
--\r
--  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const\r
--  {\r
--    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());\r
--    if (geometry)\r
--      {\r
--      vsoccgeom.SetGeometry (geometry);\r
--      return &vsoccgeom;\r
--      }\r
--    return NULL;\r
--  }\r
--\r
--\r
--\r
--}\r
--\r
--\r
--\r
--using namespace netgen;\r
--\r
--int Ng_occ_Init (Tcl_Interp * interp)\r
--{\r
--  geometryregister.Append (new OCCGeometryRegister);\r
--\r
--\r
--    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",\r
--                     Ng_SetOCCVisParameters,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--    Tcl_CreateCommand (interp, "Ng_GetOCCData",\r
--                     Ng_GetOCCData,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--    /*\r
--#ifdef OCCGEOMETRY\r
--    Tcl_CreateCommand (interp, "Ng_OCCConstruction",\r
--                     Ng_OCCConstruction,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--#endif\r
--    */\r
--\r
--    Tcl_CreateCommand (interp, "Ng_OCCCommand",\r
--                     Ng_OCCCommand,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--\r
--    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--\r
--\r
--    // Philippose - 30/01/2009\r
--    // Register the TCL Interface Command for local face mesh size\r
--    // definition\r
--    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,\r
--                     (ClientData)NULL,\r
--                     (Tcl_CmdDeleteProc*) NULL);\r
--\r
--    // Philippose - 25/07/2010\r
--    // Register the TCL Interface Command for handling the face colours \r
--    // present in the mesh\r
--    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,\r
--                      (ClientData)NULL,\r
--                      (Tcl_CmdDeleteProc*) NULL);\r
--\r
--\r
--  return TCL_OK;\r
--}\r
--\r
--#endif\r
--\r
-+#ifdef OCCGEOMETRY
-+
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <occgeom.hpp>
-+
-+
-+#include <incvis.hpp>
-+#include <visual.hpp>
-+
-+#include "../meshing/bcfunctions.hpp"
-+
-+#include "vsocc.hpp"
-+
-+
-+extern "C" int Ng_occ_Init (Tcl_Interp * interp);
-+
-+
-+
-+namespace netgen
-+{
-+  extern AutoPtr<NetgenGeometry> ng_geometry;
-+  extern AutoPtr<Mesh> mesh;
-+ 
-+  char * err_needsoccgeometry = (char*) "This operation needs an OCC geometry";
-+  extern char * err_needsmesh;
-+  extern char * err_jobrunning;
-+
-+
-+
-+                          
-+  class OCCGeometryRegister : public GeometryRegister
-+  {
-+  public:
-+    virtual NetgenGeometry * Load (string filename) const;
-+    virtual VisualScene * GetVisualScene (const NetgenGeometry * geom) const;
-+
-+    virtual void SetParameters (Tcl_Interp * interp) 
-+    {
-+      occparam.resthcloseedgefac =
-+      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
-+      occparam.resthcloseedgeenable =
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
-+        occparam.resthminedgelen = 
-+      atof (Tcl_GetVar (interp, "::stloptions.resthminedgelen", 0));
-+        occparam.resthminedgelenenable = 
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthminedgelenenable", 0));
-+    }
-+  };
-+
-+
-+
-+
-+  int Ng_SetOCCVisParameters  (ClientData clientData,
-+                             Tcl_Interp * interp,
-+                             int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    int showvolume;
-+      OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    showvolume = atoi (Tcl_GetVar (interp, "::occoptions.showvolumenr", 0));
-+
-+    if (occgeometry)
-+      if (showvolume != vispar.occshowvolumenr)
-+      {
-+        if (showvolume < 0 || showvolume > occgeometry->NrSolids())
-+          {
-+            char buf[20];
-+            sprintf (buf, "%5i", vispar.occshowvolumenr);
-+            Tcl_SetVar (interp, "::occoptions.showvolumenr", buf, 0);
-+          }
-+        else
-+          {
-+            vispar.occshowvolumenr = showvolume;
-+            if (occgeometry)
-+              occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+          }
-+      }
-+    
-+    int temp;
-+
-+    temp = atoi (Tcl_GetVar (interp, "::occoptions.visproblemfaces", 0));
-+
-+    if ((bool) temp != vispar.occvisproblemfaces)
-+      {
-+      vispar.occvisproblemfaces = temp;
-+      if (occgeometry)
-+        occgeometry -> changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+      }
-+
-+    vispar.occshowsurfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
-+    vispar.occshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
-+    vispar.occzoomtohighlightedentity = atoi (Tcl_GetVar (interp, "::occoptions.zoomtohighlightedentity", 0));
-+    vispar.occdeflection = pow(10.0,-1-atof (Tcl_GetVar (interp, "::occoptions.deflection", 0)));
-+
-+#endif
-+
-+
-+
-+
-+
-+#ifdef ACIS
-+    vispar.ACISshowfaces = atoi (Tcl_GetVar (interp, "::occoptions.showsurfaces", 0));
-+    vispar.ACISshowedges = atoi (Tcl_GetVar (interp, "::occoptions.showedges", 0));
-+    vispar.ACISshowsolidnr = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr", 0));
-+    vispar.ACISshowsolidnr2 = atoi (Tcl_GetVar (interp, "::occoptions.showsolidnr2", 0));
-+
-+#endif
-+
-+
-+
-+    return TCL_OK;
-+  }  
-+
-+
-+
-+
-+  int Ng_GetOCCData (ClientData clientData,
-+                   Tcl_Interp * interp,
-+                   int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    static char buf[1000];
-+    buf[0] = 0;
-+    stringstream str;
-+
-+    if (argc >= 2)
-+      {
-+      if (strcmp (argv[1], "getentities") == 0)
-+        {
-+          if (occgeometry)
-+            {
-+              occgeometry->GetTopologyTree(str);
-+            }
-+        }
-+      }
-+
-+    Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+
-+#endif
-+    return TCL_OK;
-+  }
-+
-+  
-+
-+  int Ng_OCCCommand (ClientData clientData,
-+                   Tcl_Interp * interp,
-+                   int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+
-+    stringstream str;
-+    if (argc >= 2)
-+      {
-+      if (strcmp (argv[1], "isoccgeometryloaded") == 0)
-+        {
-+          if (occgeometry)
-+            str << "1 " << flush;
-+          else str << "0 " << flush;
-+
-+          Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+        }
-+      if (occgeometry)
-+        {
-+          if (strcmp (argv[1], "buildvisualizationmesh") == 0)
-+            {
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "mesherror") == 0)
-+            {
-+              if (occgeometry->ErrorInSurfaceMeshing())
-+                str << 1;
-+              else
-+                str << 0;
-+            }
-+          if (strcmp (argv[1], "sewfaces") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->SewFaces();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "makesolid") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->MakeSolid();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "upgradetopology") == 0)
-+            {
-+              cout << "Before operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->SewFaces();
-+              occgeometry->MakeSolid();
-+              occgeometry->BuildFMap();
-+              cout << endl << "After operation:" << endl;
-+              occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+          if (strcmp (argv[1], "shapehealing") == 0)
-+            {
-+              occgeometry->tolerance =
-+                atof (Tcl_GetVar (interp, "::occoptions.tolerance", 0));
-+              occgeometry->fixsmalledges =
-+                atoi (Tcl_GetVar (interp, "::occoptions.fixsmalledges", 0));
-+              occgeometry->fixspotstripfaces =
-+                atoi (Tcl_GetVar (interp, "::occoptions.fixspotstripfaces", 0));
-+              occgeometry->sewfaces =
-+                atoi (Tcl_GetVar (interp, "::occoptions.sewfaces", 0));
-+              occgeometry->makesolids =
-+                atoi (Tcl_GetVar (interp, "::occoptions.makesolids", 0));
-+              occgeometry->splitpartitions =
-+                atoi (Tcl_GetVar (interp, "::occoptions.splitpartitions", 0));
-+
-+              //            cout << "Before operation:" << endl;
-+              //            occgeometry->PrintNrShapes();
-+              occgeometry->HealGeometry();
-+              occgeometry->BuildFMap();
-+              //            cout << endl << "After operation:" << endl;
-+              //            occgeometry->PrintNrShapes();
-+              occgeometry->BuildVisualizationMesh(vispar.occdeflection);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+            }
-+
-+
-+          if (strcmp (argv[1], "highlightentity") == 0)
-+            {
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->fvispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              /*
-+                if (strcmp (argv[2], "CompSolid") == 0)
-+                {
-+                int nr = atoi (argv[3]);
-+                occgeometry->LowLightAll();
-+
-+                TopExp_Explorer exp;
-+                for (exp.Init (occgeometry->cmap(nr), TopAbs_FACE);
-+                exp.More(); exp.Next())
-+                {
-+                int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                occgeometry->fvispar[i-1].Highlight();
-+                }
-+                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              */
-+
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->evispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Highlight();
-+                    }
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+
-+              if (strcmp (argv[2], "Vertex") == 0)
-+                {
-+                  int nr = atoi (argv[3]);
-+                  occgeometry->LowLightAll();
-+
-+                  occgeometry->vvispar[nr-1].Highlight();
-+                  if (vispar.occzoomtohighlightedentity)
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONFULLCHANGE;
-+                  else
-+                    occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+                }
-+
-+            }
-+
-+
-+
-+          if (strcmp (argv[1], "show") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  occgeometry->fvispar[nr-1].Show();
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Show();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Show();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  occgeometry->evispar[nr-1].Show();
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Show();
-+                    }
-+                }
-+            }
-+
-+
-+          if (strcmp (argv[1], "hide") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+
-+              if (strcmp (argv[2], "Face") == 0)
-+                {
-+                  occgeometry->fvispar[nr-1].Hide();
-+                }
-+              if (strcmp (argv[2], "Shell") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->shmap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Hide();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Solid") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->somap(nr), TopAbs_FACE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->fmap.FindIndex (TopoDS::Face(exp.Current()));
-+                      occgeometry->fvispar[i-1].Hide();
-+                    }
-+                }
-+              if (strcmp (argv[2], "Edge") == 0)
-+                {
-+                  occgeometry->evispar[nr-1].Hide();
-+                }
-+              if (strcmp (argv[2], "Wire") == 0)
-+                {
-+                  TopExp_Explorer exp;
-+                  for (exp.Init (occgeometry->wmap(nr), TopAbs_EDGE);
-+                       exp.More(); exp.Next())
-+                    {
-+                      int i = occgeometry->emap.FindIndex (TopoDS::Edge(exp.Current()));
-+                      occgeometry->evispar[i-1].Hide();
-+                    }
-+                }
-+            }
-+
-+
-+
-+          if (strcmp (argv[1], "findsmallentities") == 0)
-+            {
-+              stringstream str("");
-+              occgeometry->CheckIrregularEntities(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "getunmeshedfaceinfo") == 0)
-+            {
-+              occgeometry->GetUnmeshedFaceInfo(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "getnotdrawablefaces") == 0)
-+            {
-+              occgeometry->GetNotDrawableFaces(str);
-+              Tcl_SetResult (interp, (char*)str.str().c_str(), TCL_VOLATILE);
-+            }
-+          if (strcmp (argv[1], "redrawstatus") == 0)
-+            {
-+              int i = atoi (argv[2]);
-+              occgeometry->changed = i;
-+            }
-+          if (strcmp (argv[1], "swaporientation") == 0)
-+            {
-+              IGESControl_Writer writer("millimeters", 1);
-+              writer.AddShape (occgeometry->shape);
-+              writer.Write ("1.igs");
-+              /*
-+                int nr = atoi (argv[3]);
-+
-+                //          const_cast<TopoDS_Shape&> (occgeometry->fmap(nr)).Reverse();
-+
-+                Handle_ShapeBuild_ReShape rebuild = new ShapeBuild_ReShape;
-+                rebuild->Apply(occgeometry->shape);
-+
-+                TopoDS_Shape sh;
-+
-+                //          if (strcmp (argv[2], "CompSolid") == 0) sh = occgeometry->cmap(nr);
-+                if (strcmp (argv[2], "Solid") == 0) sh = occgeometry->somap(nr);
-+                if (strcmp (argv[2], "Shell") == 0) sh = occgeometry->shmap(nr);
-+                if (strcmp (argv[2], "Face") == 0) sh = occgeometry->fmap(nr);
-+                if (strcmp (argv[2], "Wire") == 0) sh = occgeometry->wmap(nr);
-+                if (strcmp (argv[2], "Edge") == 0) sh = occgeometry->emap(nr);
-+
-+                rebuild->Replace(sh, sh.Reversed());
-+
-+                TopoDS_Shape newshape = rebuild->Apply(occgeometry->shape, TopAbs_SHELL, 1);
-+                occgeometry->shape = newshape;
-+
-+                occgeometry->BuildFMap();
-+                occgeometry->BuildVisualizationMesh();
-+                occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+              */
-+            }
-+          if (strcmp (argv[1], "marksingular") == 0)
-+            {
-+              int nr = atoi (argv[3]);
-+              cout << "marking " << argv[2] << " " << nr << endl;
-+              char buf[2]; buf[0] = '0'; buf[1] = 0;
-+              bool sing = false;
-+              if (strcmp (argv[2], "Face") == 0)
-+                sing = occgeometry->fsingular[nr-1] = !occgeometry->fsingular[nr-1];
-+              if (strcmp (argv[2], "Edge") == 0)
-+                sing = occgeometry->esingular[nr-1] = !occgeometry->esingular[nr-1];
-+              if (strcmp (argv[2], "Vertex") == 0)
-+                sing = occgeometry->vsingular[nr-1] = !occgeometry->vsingular[nr-1];
-+
-+              if (sing) buf[0] = '1';
-+
-+                Tcl_SetVar (interp, "::ismarkedsingular", buf, 0);
-+
-+              stringstream str;
-+              occgeometry->GetTopologyTree (str);
-+
-+              char* cstr = (char*)str.str().c_str();
-+
-+              (*testout) << cstr << endl;
-+
-+              char helpstr[1000];
-+
-+              while (strchr (cstr, '}'))
-+                {
-+                  strncpy (helpstr, cstr+2, strlen(strchr(cstr+2, '}')));
-+                  (*testout) << "***" << cstr << "***" << endl;
-+                  cstr = strchr (cstr, '}');
-+                } 
-+            }
-+        }
-+      }
-+
-+#endif
-+    return TCL_OK;
-+  }
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+  /*
-+  void OCCConstructGeometry (OCCGeometry & geom);
-+
-+  int Ng_OCCConstruction (ClientData clientData,
-+                        Tcl_Interp * interp,
-+                        int argc, tcl_const char *argv[])
-+  {
-+    if (occgeometry)
-+      OCCConstructGeometry (*occgeometry);
-+    return TCL_OK;
-+  }
-+  */
-+#endif
-+
-+
-+
-+
-+  // Philippose - 30/01/2009
-+  // TCL interface function for the Local Face Mesh size
-+  // definition functionality
-+  int Ng_SurfaceMeshSize (ClientData clientData,
-+                                  Tcl_Interp * interp,
-+                                  int argc, tcl_const char *argv[])
-+  {
-+#ifdef OCCGEOMETRY
-+
-+    static char buf[100];
-+
-+    if (argc < 2)
-+    {
-+         Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize needs arguments", TCL_STATIC);
-+         return TCL_ERROR;
-+    }
-+
-+    OCCGeometry * occgeometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+    if (!occgeometry)
-+    {
-+      Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
-+         return TCL_ERROR;
-+    }
-+
-+    // Update the face mesh sizes to reflect the global maximum mesh size
-+    for(int i = 1; i <= occgeometry->NrFaces(); i++)
-+    {
-+           if(!occgeometry->GetFaceMaxhModified(i))
-+           {
-+              occgeometry->SetFaceMaxH(i, mparam.maxh);
-+           }   
-+    }
-+
-+    if (strcmp (argv[1], "setsurfms") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         double surfms = atof (argv[3]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+           occgeometry->SetFaceMaxH(facenr, surfms);
-+
-+    }
-+
-+    if (strcmp (argv[1], "setall") == 0)
-+    {
-+         double surfms = atof (argv[2]);
-+         if (occgeometry)
-+         {
-+           int nrFaces = occgeometry->NrFaces();
-+           for (int i = 1; i <= nrFaces; i++)
-+            occgeometry->SetFaceMaxH(i, surfms);
-+         }
-+    }
-+
-+    if (strcmp (argv[1], "getsurfms") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+         {
-+           sprintf (buf, "%5.2f", occgeometry->GetFaceMaxH(facenr));
-+         }
-+         else
-+         {
-+           sprintf (buf, "%5.2f", mparam.maxh);
-+         }
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+
-+    if (strcmp (argv[1], "getactive") == 0)
-+    {
-+         sprintf (buf, "%d", occgeometry->SelectedFace());
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+
-+    if (strcmp (argv[1], "setactive") == 0)
-+    {
-+         int facenr = atoi (argv[2]);
-+         if (occgeometry && facenr >= 1 && facenr <= occgeometry->NrFaces())
-+         {
-+           occgeometry->SetSelectedFace (facenr);
-+
-+        occgeometry->LowLightAll();
-+        occgeometry->fvispar[facenr-1].Highlight();
-+        occgeometry->changed = OCCGEOMETRYVISUALIZATIONHALFCHANGE;
-+         }
-+    }
-+
-+    if (strcmp (argv[1], "getnfd") == 0)
-+    {
-+         if (occgeometry)
-+           sprintf (buf, "%d", occgeometry->NrFaces());
-+         else
-+           sprintf (buf, "0");
-+         Tcl_SetResult (interp, buf, TCL_STATIC);
-+    }
-+    return TCL_OK;
-+#else // No OCCGEOMETRY 
-+
-+    Tcl_SetResult (interp, (char *)"Ng_SurfaceMeshSize currently supports only OCC (STEP/IGES) Files", TCL_STATIC);
-+    return TCL_ERROR;
-+    
-+#endif // OCCGEOMETRY
-+  }
-+
-+
-+
-+  // Philippose - 25/07/2010
-+  // TCL interface function for extracting and eventually 
-+  // setting or editing the current colours present in the mesh
-+  int Ng_CurrentFaceColours (ClientData clientData,
-+                             Tcl_Interp * interp,
-+                             int argc, tcl_const char *argv[])
-+  {
-+     if(argc < 1)
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours needs arguments", TCL_STATIC);
-+        return TCL_ERROR;
-+     }
-+
-+     if(!mesh.Ptr())
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_GetCurrentFaceColours: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
-+           return TCL_ERROR;
-+     }
-+
-+     if(strcmp(argv[1], "getcolours") == 0)
-+     {
-+        stringstream outVar;
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh, face_colours);
-+
-+        for(int i = 0; i < face_colours.Size();i++)
-+        {
-+           outVar << "{ " << face_colours[i].X(1)
-+                  << " "  << face_colours[i].X(2)
-+                  << " "  << face_colours[i].X(3)
-+                  << " } ";
-+        }
-+
-+        tcl_const char * valuevar = argv[2];
-+        Tcl_SetVar  (interp, valuevar, (char*)outVar.str().c_str(), 0);
-+     }
-+
-+     if(strcmp(argv[1], "showalso") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hidealso") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "showonly") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+           else
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hideonly") == 0)
-+     {
-+        Array<Vec3d> face_colours;
-+        GetFaceColours(*mesh,face_colours);
-+
-+        int colourind = atoi (argv[2]);
-+
-+        for(int i = 1; i <= mesh->GetNFD(); i++)
-+        {
-+           Array<SurfaceElementIndex> surfElems;
-+           mesh->GetSurfaceElementsOfFace(i,surfElems);
-+
-+           if(ColourMatch(face_colours[colourind],mesh->GetFaceDescriptor(i).SurfColour()))
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(0);
-+              }
-+           }
-+           else
-+           {
-+              for(int j = 0; j < surfElems.Size(); j++)
-+              {
-+                 mesh->SurfaceElement(surfElems[j]).Visible(1);
-+              }
-+           }
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "showall") == 0)
-+     {
-+        for(int i = 1; i <= mesh->GetNSE(); i++)
-+        {
-+           mesh->SurfaceElement(i).Visible(1);
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     if(strcmp(argv[1], "hideall") == 0)
-+     {
-+        for(int i = 1; i <= mesh->GetNSE(); i++)
-+        {
-+           mesh->SurfaceElement(i).Visible(0);
-+        }
-+
-+        mesh->SetNextTimeStamp();
-+     }
-+
-+     return TCL_OK;
-+  }
-+
-+
-+
-+
-+  // Philippose - 10/03/2009
-+  // TCL interface function for the Automatic Colour-based
-+  // definition of boundary conditions for OCC Geometry
-+  int Ng_AutoColourBcProps (ClientData clientData,
-+                                    Tcl_Interp * interp,
-+                                    int argc, tcl_const char *argv[])
-+  {
-+     if(argc < 1)
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps needs arguments", TCL_STATIC);
-+        return TCL_ERROR;
-+     }
-+
-+     if(!mesh.Ptr())
-+     {
-+        Tcl_SetResult (interp, (char *)"Ng_AutoColourBcProps: Valid netgen mesh required...please mesh the Geometry first", TCL_STATIC);
-+           return TCL_ERROR;
-+     }
-+
-+     if(strcmp(argv[1], "auto") == 0)
-+     {
-+        AutoColourBcProps(*mesh, 0);
-+     }
-+
-+     if(strcmp(argv[1], "profile") == 0)
-+     {
-+        AutoColourBcProps(*mesh, argv[2]);
-+     }
-+
-+     return TCL_OK;
-+  }
-+
-+
-+  int Ng_SetOCCParameters  (ClientData clientData,
-+                          Tcl_Interp * interp,
-+                          int argc, tcl_const char *argv[])
-+  {
-+    OCCGeometryRegister reg;
-+    reg.SetParameters (interp);
-+    /*
-+    occparam.resthcloseedgefac =
-+      atof (Tcl_GetVar (interp, "::stloptions.resthcloseedgefac", 0));
-+
-+    occparam.resthcloseedgeenable =
-+      atoi (Tcl_GetVar (interp, "::stloptions.resthcloseedgeenable", 0));
-+    */
-+    return TCL_OK;
-+  }
-+
-+
-+
-+
-+  NetgenGeometry *  OCCGeometryRegister :: Load (string filename) const
-+  {
-+    const char * lgfilename = filename.c_str();
-+
-+
-+    /*
-+    if (strcmp (&cfilename[strlen(cfilename)-3], "geo") == 0)
-+      {
-+      PrintMessage (1, "Load OCCG geometry file ", cfilename);
-+      
-+      extern OCCGeometry * ParseOCCG (istream & istr);
-+
-+      ifstream infile(cfilename);
-+
-+      OCCGeometry * hgeom = ParseOCCG (infile);
-+      if (!hgeom)
-+        throw NgException ("geo-file should start with 'algebraic3d'");
-+
-+      hgeom -> FindIdenticSurfaces(1e-8 * hgeom->MaxSize()); 
-+      return hgeom;
-+      }
-+    */
-+
-+
-+    if ((strcmp (&lgfilename[strlen(lgfilename)-4], "iges") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-3], "igs") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-3], "IGS") == 0) ||
-+      (strcmp (&lgfilename[strlen(lgfilename)-4], "IGES") == 0))
-+      {
-+      PrintMessage (1, "Load IGES geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_IGES (lgfilename);
-+      return occgeometry;
-+      }
-+
-+    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "step") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-3], "stp") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-3], "STP") == 0) ||
-+                   (strcmp (&lgfilename[strlen(lgfilename)-4], "STEP") == 0))
-+      {
-+      PrintMessage (1, "Load STEP geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_STEP (lgfilename);
-+      return occgeometry;    
-+      }
-+    else if ((strcmp (&lgfilename[strlen(lgfilename)-4], "brep") == 0) ||
-+           (strcmp (&lgfilename[strlen(lgfilename)-4], "Brep") == 0) ||
-+           (strcmp (&lgfilename[strlen(lgfilename)-4], "BREP") == 0))
-+      {
-+      PrintMessage (1, "Load BREP geometry file ", lgfilename);
-+      OCCGeometry * occgeometry = LoadOCC_BREP (lgfilename);
-+      return occgeometry;
-+      }
-+    
-+    return NULL;
-+  }
-+
-+
-+  static VisualSceneOCCGeometry vsoccgeom;
-+
-+  VisualScene * OCCGeometryRegister :: GetVisualScene (const NetgenGeometry * geom) const
-+  {
-+    OCCGeometry * geometry = dynamic_cast<OCCGeometry*> (ng_geometry.Ptr());
-+    if (geometry)
-+      {
-+      vsoccgeom.SetGeometry (geometry);
-+      return &vsoccgeom;
-+      }
-+    return NULL;
-+  }
-+
-+
-+
-+}
-+
-+
-+
-+using namespace netgen;
-+
-+int Ng_occ_Init (Tcl_Interp * interp)
-+{
-+  geometryregister.Append (new OCCGeometryRegister);
-+
-+
-+    Tcl_CreateCommand (interp, "Ng_SetOCCVisParameters",
-+                     Ng_SetOCCVisParameters,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    Tcl_CreateCommand (interp, "Ng_GetOCCData",
-+                     Ng_GetOCCData,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    /*
-+#ifdef OCCGEOMETRY
-+    Tcl_CreateCommand (interp, "Ng_OCCConstruction",
-+                     Ng_OCCConstruction,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+#endif
-+    */
-+
-+    Tcl_CreateCommand (interp, "Ng_OCCCommand",
-+                     Ng_OCCCommand,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+    Tcl_CreateCommand (interp, "Ng_SetOCCParameters", Ng_SetOCCParameters,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+
-+    // Philippose - 30/01/2009
-+    // Register the TCL Interface Command for local face mesh size
-+    // definition
-+    Tcl_CreateCommand (interp, "Ng_SurfaceMeshSize", Ng_SurfaceMeshSize,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    Tcl_CreateCommand (interp, "Ng_AutoColourBcProps", Ng_AutoColourBcProps,
-+                     (ClientData)NULL,
-+                     (Tcl_CmdDeleteProc*) NULL);
-+
-+    // Philippose - 25/07/2010
-+    // Register the TCL Interface Command for handling the face colours 
-+    // present in the mesh
-+    Tcl_CreateCommand(interp, "Ng_CurrentFaceColours", Ng_CurrentFaceColours,
-+                      (ClientData)NULL,
-+                      (Tcl_CmdDeleteProc*) NULL);
-+
-+
-+  return TCL_OK;
-+}
-+
-+#endif
-+
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h
---- netgen-5.3.1_SRC_orig/libsrc/occ/utilities.h       2014-08-29 13:54:03.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/occ/utilities.h      2019-11-14 16:56:23.394424656 +0300
-@@ -33,6 +33,7 @@
- #include <string>
- #include <iostream>
-+#include <iomanip>
- #include <cstdlib>
- // #include "SALOME_Log.hxx"
-diff -Naur netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am
---- netgen-5.3.1_SRC_orig/libsrc/stlgeom/Makefile.am   2014-08-29 13:54:05.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/libsrc/stlgeom/Makefile.am  2019-11-14 16:56:21.230485226 +0300
-@@ -4,10 +4,10 @@
- AM_CPPFLAGS = -I$(top_srcdir)/libsrc/include $(TCL_INCLUDES)
- METASOURCES = AUTO
--lib_LTLIBRARIES = libstl.la 
-+noinst_LTLIBRARIES = libstl.la 
- if NGGUI
--lib_LTLIBRARIES += libstlvis.la 
-+lib_LTLIBRARIES = libstlvis.la 
- endif
- libstl_la_SOURCES = meshstlsurface.cpp stlgeom.cpp stlgeomchart.cpp \
-@@ -16,6 +16,5 @@
- libstlvis_la_SOURCES = stlpkg.cpp vsstl.cpp
- libstlvis_la_LIBADD = libstl.la
--libstl_la_LIBADD =  $(top_builddir)/libsrc/meshing/libmesh.la
- # libstlvis_la_LIBADD = libstl.la $(top_builddir)/libsrc/linalg/libla.la 
-diff -Naur netgen-5.3.1_SRC_orig/ng/menustat.tcl netgen-5.3.1_SRC_modif/ng/menustat.tcl
---- netgen-5.3.1_SRC_orig/ng/menustat.tcl      2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/menustat.tcl     2019-11-14 16:56:26.574335643 +0300
-@@ -1,1123 +1,1123 @@
--# netgen menus:\r
--\r
--menu .ngmenu -tearoff 0  -relief raised -bd 2\r
--. configure -menu .ngmenu\r
--\r
--.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0\r
--.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0\r
--.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0\r
--.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0\r
--.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5\r
--\r
--if { $userlevel == 3} {\r
--    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3\r
--}\r
--\r
--.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu File                                     #\r
--#                                                   #\r
--#####################################################\r
--\r
--menu .ngmenu.file\r
--\r
--.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \\r
--    -command { \r
--      set types {\r
--          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }\r
--          {"IGES Geometry"    {.igs .iges} }\r
--          {"BREP OpenCascade Geometry"    {.brep} }\r
--          {"STL Geometry"        {.stl} }\r
--          {"Binary STL Geometry"    {.stlb} }\r
--          {"STEP Geometry"    {.step .stp} }\r
--          {"Geometry file"       {.geo} }\r
--          {"2D Geometry"   {.in2d } } \r
--      } \r
--\r
--      set ACISavailable [Ng_ACISCommand isACISavailable]\r
--      if {$ACISavailable == "yes" } {\r
--          lappend types {"ACIS Geometry" {.sat} }\r
--      }\r
--\r
--      if {[catch {\r
--          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]\r
--      }]} {\r
--          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]\r
--      }\r
--\r
--      if {$file != ""} {\r
--          AddRecentFile $file\r
--          Ng_LoadGeometry $file \r
--          Ng_ParseGeometry\r
--#         if { [Ng_STLInfo status]=="ERROR" } {\r
--#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok\r
--#         }\r
--          set selectvisual geometry\r
--          Ng_SetVisParameters\r
--          redraw\r
--          wm title . [concat "$progname - " $file]\r
--          set dirname [file dirname $file]\r
--          set basefilename [file tail [file rootname $file]]\r
--\r
--          if { $hasocc == "yes" } {\r
--              rebuildoccdialog\r
--          }\r
--      }\r
--    }\r
--\r
--\r
--\r
--.ngmenu.file add command -label "Save Geometry..." \\r
--    -command { \r
--      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]\r
--      puts $occgeometryloaded\r
--      if {$occgeometryloaded == 1 } {\r
--          set types {\r
--              {"IGES Geometry file"   {.igs} } \r
--              {"STEP Geometry file"   {.stp} } \r
--              {"STL Geometry file"   {.stl} } \r
--              {"STL BIN Geometry file"   {.stlb} } \r
--          }\r
--      } {\r
--          set types {\r
--              {"STL Geometry file"   {.stl} } \r
--              {"STL BIN Geometry file"   {.stlb} } \r
--          }\r
--      }\r
--\r
--      set ACISavailable [Ng_ACISCommand isACISavailable]\r
--      puts $ACISavailable\r
--      if {$ACISavailable == "yes" } {\r
--          lappend types {"ACIS Geometry" {.sat} }\r
--      }\r
--\r
--      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]\r
--      if {$file != ""} {\r
--          Ng_SaveGeometry $file \r
--      }\r
--    }\r
-- \r
--\r
--\r
--.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent \r
--menu .ngmenu.file.recent\r
--\r
--\r
--proc AddRecentFile { filename } {\r
--    global progname\r
--    global dirname\r
--    catch { [.ngmenu.file.recent delete $filename] }\r
--    .ngmenu.file.recent insert 0 command -label $filename \\r
--      -command "AddRecentFile {$filename}; \r
--                  Ng_LoadGeometry {$filename}; \r
--                Ng_ParseGeometry;\r
--                set selectvisual geometry;\r
--                Ng_SetVisParameters;\r
--                redraw;\r
--                wm title . [concat \" $progname - $filename \"];\r
--                  set dirname {[file dirname $filename]};\r
--                  set basefilename {[file tail [file rootname $filename]]};\r
--                rebuildoccdialog;"\r
--\r
--    \r
--    if { [.ngmenu.file.recent index last] >= 6 } {\r
--      .ngmenu.file.recent delete last }\r
--    \r
--    saveinifile;\r
--    }\r
--loadinifile;\r
--\r
--.ngmenu.file add separator\r
--\r
--\r
--.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \\r
--    -command {\r
--      set types {\r
--          {"Mesh file"   {.vol .vol.gz}       } }\r
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]\r
--      if {$file != ""} {\r
--          AddRecentMeshFile $file;\r
--          Ng_LoadMesh $file; \r
--          set selectvisual mesh\r
--          Ng_SetVisParameters\r
--          redraw\r
--          Ng_ReadStatus; \r
--#         Ng_MeshSizeFromSurfaceMesh\r
--          wm title . [concat "$progname - " $file] \r
--          set dirname [file dirname $file]\r
--          set basefilename [file tail [file rootname $file]]\r
--      }\r
--    }\r
--\r
--\r
--\r
--# astrid\r
--.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh \r
--menu .ngmenu.file.recentmesh\r
--\r
--\r
--proc AddRecentMeshFile { filename } {\r
--    global progname\r
--    global dirname\r
--    catch { [.ngmenu.file.recentmesh delete $filename] }\r
--    .ngmenu.file.recentmesh insert 0 command -label $filename \\r
--      -command "AddRecentMeshFile {$filename}; \r
--                  Ng_LoadMesh {$filename};\r
--                set selectvisual mesh;\r
--                Ng_SetVisParameters;\r
--                redraw;\r
--                wm title . [concat \" $progname - $filename \"];\r
--                  set dirname {[file dirname $filename]};\r
--                  set basefilename {[file tail [file rootname $filename]]};\r
--                  rebuildoccdialog;"\r
--    \r
--    if { [.ngmenu.file.recentmesh index last] >= 6 } {\r
--      .ngmenu.file.recentmesh delete last }\r
--   \r
--    savemeshinifile;\r
--    }\r
--loadmeshinifile;\r
--\r
--# astrid ende\r
--\r
--\r
--.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \\r
--    -command {\r
--      set types {\r
--          {"Mesh file"   {.vol .vol.gz}       } }\r
--\r
--      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]\r
--      if {$file != ""} {\r
--          Ng_SaveMesh $file }\r
--      AddRecentMeshFile $file;\r
--\r
--    }\r
--\r
--.ngmenu.file add command -label "Merge Mesh..." \\r
--    -command {\r
--      set types {\r
--          {"Mesh file"   {.vol}       } }\r
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]\r
--      if {$file != ""} {\r
--          Ng_MergeMesh $file; \r
--          set selectvisual mesh\r
--          Ng_SetVisParameters\r
--          redraw\r
--          Ng_ReadStatus; \r
--      }\r
--    }\r
--\r
--\r
--\r
--\r
--\r
--.ngmenu.file add command -label "Import Mesh..." \\r
--    -command { \r
--      set types {\r
--          {"Neutral format"  {.mesh .emt} }\r
--          {"Surface mesh format"  {.surf} }\r
--          {"Universal format"  {.unv} }\r
--          {"Olaf format"  {.emt} }\r
--          {"TET format" {.tet} }\r
--          {"Pro/ENGINEER neutral format" {.fnf} }\r
--                }\r
--      set file [tk_getOpenFile -filetypes $types ]\r
--      if {$file != ""} {\r
--          Ng_ImportMesh $file \r
--          set selectvisual mesh\r
--          Ng_SetVisParameters\r
--          redraw\r
--          Ng_ReadStatus; \r
--      }\r
--    }\r
--\r
--\r
--.ngmenu.file add command -label "Export Mesh..." \\r
--    -command {\r
--\r
--#     global meshexportformats\r
--      foreach exportformat $meshexportformats {\r
--          if { [lindex $exportformat 0] == $exportfiletype } {\r
--              set extension [lindex $exportformat 1]\r
--          }\r
--      }\r
--\r
--      if { $exportfiletype == "Elmer Format"} {\r
--          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]\r
--        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {\r
--          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]\r
--        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {\r
--          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]\r
--        } else {\r
--#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]\r
--          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]\r
--      }\r
--\r
--      if {$file != ""} {\r
--          Ng_ExportMesh $file $exportfiletype \r
--      }\r
--    }\r
--\r
--.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype \r
--\r
--menu .ngmenu.file.filetype \r
--\r
--\r
--.ngmenu.file add separator\r
--\r
--\r
--.ngmenu.file add command -label "Save Solution..." \\r
--    -command { \r
--      set types { \r
--            {"Solution File"  {.sol} } \r
--            {"VTK File"  {.vtk} } \r
--        }\r
--      set file [tk_getSaveFile -filetypes $types ]\r
--      if {$file != ""} {\r
--          Ng_SaveSolution $file \r
--      }\r
--    }\r
--#-defaultextension ".sol"  ]\r
--\r
--.ngmenu.file add command -label "Import Solution..." \\r
--    -command { \r
--      set types { {"Solution File"  {.sol} } }\r
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]\r
--      if {$file != ""} {\r
--          Ng_ImportSolution $file \r
--          set selectvisual solution\r
--          Ng_SetVisParameters\r
--          redraw\r
--      }\r
--    }\r
--\r
--\r
--\r
--\r
--\r
--\r
--set demostarttime [clock clicks -millisecond]\r
--set stopdemo 0\r
--proc demoredraw { } {\r
--    global demostarttime\r
--    global stopdemo\r
--    set curtime [clock clicks -millisecond]\r
--    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]\r
--    redraw\r
--    global videoactive\r
--    if { $videoactive == 1 } {\r
--        puts "addframe"\r
--        .ndraw Ng_VideoClip addframe\r
--    }\r
--    if { $result == 0 && $stopdemo == 0 } {\r
--      after 1 { demoredraw }\r
--    }\r
--}\r
--.ngmenu.file add command -label "Show Demo..." \\r
--    -command {\r
--      set types { {"Demo File"  {.dem} } }\r
--      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]\r
--      if {$file != ""} {\r
--          Ng_ShowDemo $file \r
--          set demostarttime [clock clicks -millisecond]\r
--          set stopdemo 0\r
--          demoredraw\r
--      }\r
--     }\r
--\r
--\r
--\r
--\r
--.ngmenu.file add separator\r
--\r
--.ngmenu.file add command -label "Snapshot..." \\r
--    -command { \r
--      set types { \r
--          {"JPG file" {.jpg} } \r
--          {"GIF file" {.gif} } \r
--          {"PPM file" {.ppm} } \r
--      }\r
--      set file [tk_getSaveFile -filetypes $types]\r
--#  -defaultextension ".ppm"]\r
--      if {$file != ""} {\r
--          .ndraw Ng_SnapShot $file }\r
--    }\r
--\r
--\r
--.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video\r
--menu .ngmenu.file.video\r
--\r
--set videoactive 0\r
--.ngmenu.file.video add command -label "start..." \\r
--    -command { \r
--      set types { \r
--          {"MPG file" {.mpg} } \r
--      }\r
--      set file [tk_getSaveFile -filetypes $types]\r
--      if {$file != ""} {\r
--          .ndraw Ng_VideoClip init $file \r
--            global videoactive\r
--            set videoactive 1\r
--        }\r
--     }\r
--\r
--.ngmenu.file.video add command -label "add frame..." \\r
--    -command {.ndraw Ng_VideoClip addframe }\r
--\r
--.ngmenu.file.video add command -label "one cycle" \\r
--    -command {\r
--      set visoptions.redrawperiodic 1\r
--      for { set j 0 } { $j < 100 } { incr j } {\r
--          puts "j =  $j"\r
--          Ng_Vis_Set time [expr (1000 * $j / 100)]\r
--          redraw\r
--          .ndraw Ng_VideoClip addframe \r
--          after 200\r
--      }\r
--    }\r
--\r
--.ngmenu.file.video add command -label "finalize..." \\r
--    -command {\r
--        .ndraw Ng_VideoClip finalize \r
--        global videoactive\r
--        set videoactive 0\r
--    }\r
--\r
--\r
--\r
--.ngmenu.file add command -label "Save Options" \\r
--    -command { saveoptions }\r
--\r
--\r
--    \r
--\r
--.ngmenu.file add separator\r
--\r
--\r
--## herbert tcl load menue\r
--# .ngmenu.file add command -label "Run tests ..." \\r
--\#    -command { runtestdialog }\r
--##\r
--# .ngmenu.file add separator\r
--\r
--.ngmenu.file add command -label "Quit" -accelerator "<q>" \\r
--    -command { \r
--        puts "Thank you for using $progname"; \r
--\r
--        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {\r
--            # puts "cannot unload ngsolve" \r
--            # puts "error: $result"\r
--        } \r
--\r
--        Ng_Exit; \r
--        destroy . \r
--    }\r
--# exit\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu Mesh                                     #\r
--#                                                   #\r
--#####################################################\r
--\r
--menu .ngmenu.mesh\r
--.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \\r
--    -command { \r
--      set selectvisual mesh\r
--      Ng_SetVisParameters\r
--      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}\r
--      Ng_ReadStatus\r
--      redraw\r
--    }\r
--\r
--.ngmenu.mesh add command -label "Stop Meshing" \\r
--    -command { Ng_StopMeshing }\r
--\r
--.ngmenu.mesh add command -label "Meshing Options..." \\r
--    -command meshingoptionsdialog\r
--\r
--\r
--.ngmenu.mesh add separator\r
--\r
--.ngmenu.mesh add command -label "Delete Mesh" \\r
--    -command { Ng_New mesh; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.mesh add command -label "Delete Vol Mesh" \\r
--    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }\r
--\r
--\r
--.ngmenu.mesh add command -label "Mesh Info" \\r
--    -command {\r
--      set dim [Ng_MeshInfo dim]\r
--      set np [Ng_MeshInfo np]\r
--      set ne [Ng_MeshInfo ne]\r
--      set nse [Ng_MeshInfo nse]\r
--      set nseg [Ng_MeshInfo nseg]\r
--      set bbox [Ng_MeshInfo bbox]\r
--      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"\r
--    }\r
--\r
--\r
--.ngmenu.mesh add command -label "Mesh Quality" \\r
--    -command {\r
--      set inplanemin 0\r
--      set inplanemax 0\r
--      set betplanemin 0\r
--      set betplanemax 0\r
--      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax\r
--      puts "Triangle angles : $inplanemin - $inplanemax"\r
--      puts "Tet angles      : $betplanemin - $betplanemax"\r
--      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"\r
--    }\r
--\r
--# .ngmenu.mesh add command -label "Quality Plot" \\r
--#    -command { qualityviewdialog 1 }\r
--\r
--\r
--\r
--\r
--.ngmenu.mesh add command -label "Check Surface Mesh" \\r
--    -command { Ng_CheckSurfaceMesh }\r
--.ngmenu.mesh add command -label "Check Volume Mesh" \\r
--    -command { Ng_CheckVolumeMesh }\r
--\r
--.ngmenu.mesh add command -label "Edit Boundary Conditions..." \\r
--    -command { bcpropdialog }\r
--\r
--if { $userlevel == 3 } {\r
--    .ngmenu.mesh add command -label "Mesh Doctor..." \\r
--      -command { meshdoctordialog }\r
--}\r
--\r
--.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \\r
--      -command { METISdialog }\r
--\r
--.ngmenu.mesh add separator\r
--\r
--.ngmenu.mesh add command -label "Analyze Geometry" \\r
--    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }\r
--.ngmenu.mesh add command -label "Mesh Edges" \\r
--    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }\r
--.ngmenu.mesh add command -label "Mesh Surface" \\r
--    -command { set selectvisual mesh; Ng_SetVisParameters; \\r
--                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.mesh add command -label "Optimize Surface" \\r
--    -command { Ng_GenerateMesh os os cmsmSm; redraw }\r
--\r
--.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep \r
--\r
--menu .ngmenu.mesh.surfoptstep \r
--.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \\r
--    -command { Ng_GenerateMesh os os m; redraw}\r
--.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \\r
--    -command { Ng_GenerateMesh os os s; redraw}\r
--.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \\r
--    -command { Ng_GenerateMesh os os S; redraw}\r
--.ngmenu.mesh.surfoptstep add command -label "Combine points" \\r
--    -command { Ng_GenerateMesh os os c; redraw}\r
--\r
--\r
--.ngmenu.mesh add separator\r
--.ngmenu.mesh add command -label "Mesh Volume" \\r
--    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }\r
--.ngmenu.mesh add command -label "Optimize Volume" \\r
--    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }\r
--.ngmenu.mesh add command -label "Smooth Opt Volume" \\r
--    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }\r
--.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \\r
--    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu Geometry                                 #\r
--#                                                   #\r
--#####################################################\r
--\r
--menu .ngmenu.geometry\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu View                                     #\r
--#                                                   #\r
--#####################################################\r
--\r
--menu .ngmenu.view\r
--.ngmenu.view add command -label "Zoom all" \\r
--    -command { Ng_ZoomAll; redraw }\r
--.ngmenu.view add command -label "Center" \\r
--    -command { Ng_Center; redraw }\r
--\r
--.ngmenu.view add command -label "x-y plane" \\r
--    -command { Ng_StandardRotation xy; redraw }\r
--.ngmenu.view add command -label "y-x plane" \\r
--    -command { Ng_StandardRotation yx; redraw }\r
--.ngmenu.view add command -label "x-z plane" \\r
--    -command { Ng_StandardRotation xz; redraw }\r
--.ngmenu.view add command -label "z-x plane" \\r
--    -command { Ng_StandardRotation zx; redraw }\r
--.ngmenu.view add command -label "y-z plane" \\r
--    -command { Ng_StandardRotation yz; redraw }\r
--.ngmenu.view add command -label "z-y plane" \\r
--    -command { Ng_StandardRotation zy; redraw }\r
--\r
--.ngmenu.view add command -label "Viewing Options..." \\r
--    -command { viewingoptionsdialog; redraw }\r
--.ngmenu.view add command -label "Clipping Plane..." \\r
--    -command { clippingdialog; redraw }\r
--.ngmenu.view add command -label "Solution Data..." \\r
--    -command { visual_dialog; redraw }\r
--.ngmenu.view add checkbutton -variable viewqualityplot \\r
--    -label "Quality Plot" \\r
--    -command { qualityviewdialog $viewqualityplot }\r
--.ngmenu.view add checkbutton -variable memuseplot \\r
--    -label "Memory Usage" \\r
--    -command { memusedialog $memuseplot }\r
--\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu Refinement                               #\r
--#                                                   #\r
--#####################################################\r
--#\r
--# Mesh size menu\r
--#\r
--menu .ngmenu.meshsize\r
--.ngmenu.meshsize add command -label "Refine uniform" \\r
--    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.meshsize add command -label "Second Order" \\r
--    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.meshsize add command -label "Validate Second Order" \\r
--    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.meshsize add command -label "High Order" \\r
--    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.meshsize add separator\r
--\r
--.ngmenu.meshsize add command -label "Refinement Dialog..." \\r
--    -command { refinementdialog }\r
--.ngmenu.meshsize add command -label "Load Meshsize..." \\r
--    -command {\r
--      set types {\r
--          {"Meshsize file"   {.msz}   } }\r
--      set file [tk_getOpenFile -filetypes $types]\r
--      if {$file != ""} {\r
--          Ng_LoadMeshSize $file; \r
--      }\r
--    }\r
--.ngmenu.meshsize add command -label "MS from Surf Mesh" \\r
--    -command { Ng_MeshSizeFromSurfaceMesh }\r
--\r
--\r
--if { $userlevel == 3 } {\r
--.ngmenu.meshsize add command -label "Singular point ms" \\r
--    -command { Ng_SingularPointMS; }\r
--\r
--.ngmenu.meshsize add command -label "Singular edge ms" \\r
--    -command { Ng_SingularEdgeMS; }\r
--\r
--.ngmenu.meshsize add separator\r
--\r
--set bisectfilename "";\r
--\r
--.ngmenu.meshsize add command -label "Bisection" \\r
--    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np; \r
--#     Ng_BisectCopyMesh; \r
--#     Ng_Split2Tets;\r
--      Ng_ReadStatus;\r
--      \r
--      while { $oldnp < $newnp } {\r
--#         if { $level == 0 } {\r
--#             Ng_ExportMesh feppmesh.vol fepp;\r
--#         } {\r
--#             Ng_ExportMesh feppmesh$level feppml \r
--#         }\r
--          set level [expr $level+1]\r
--          if { $bisectfilename == ""} {\r
--              Ng_Bisect;\r
--          } else {\r
--              Ng_Bisect $bisectfilename;\r
--          }\r
--#         Ng_HighOrder ${options.elementorder} "noparallel"\r
--#         Ng_Split2Tets;\r
--          Ng_ReadStatus;\r
--          redraw; \r
--          \r
--          if { $bisectfilename == ""} {\r
--              set oldnp $newnp;\r
--              set newnp $status_np;\r
--              puts "oldnp $oldnp newnp $newnp";\r
--          } else {\r
--              set oldnp $newnp;\r
--          }\r
--      }\r
--    }\r
--#    -command { Ng_Bisect; Ng_ReadStatus; redraw }\r
--#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }\r
--\r
--}\r
--\r
--.ngmenu.meshsize add command -label "Load Refinement Info..." \\r
--    -command {\r
--      set types {\r
--          {"Refinement info" {.refine} }}\r
--      set bisectfilename [tk_getOpenFile -filetypes $types]\r
--    }\r
--\r
--.ngmenu.meshsize add command -label "Z-Refinement" \\r
--    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }\r
--\r
--\r
--# .ngmenu.meshsize add command -label "hp-Refinement" \\r
--\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }\r
--\r
--.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref\r
--menu .ngmenu.meshsize.hpref\r
--.ngmenu.meshsize.hpref add command -label "1 Level" \\r
--    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "2 Levels" \\r
--    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "3 Levels" \\r
--    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "4 Levels" \\r
--    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "5 Levels" \\r
--    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "6 Levels" \\r
--    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "7 Levels" \\r
--    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "8 Levels" \\r
--    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "9 Levels" \\r
--    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }\r
--.ngmenu.meshsize.hpref add command -label "10 Levels" \\r
--    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }\r
--\r
--\r
--.ngmenu.meshsize add command -label "Split to Tets" \\r
--    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }\r
--\r
--\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu Special                                  #\r
--#                                                   #\r
--#####################################################\r
--\r
--menu .ngmenu.special\r
--.ngmenu.special add command -label "Prismatic Boundary Layer" \\r
--    -command { Ng_GenerateBoundaryLayer; redraw }\r
--.ngmenu.special add command -label "Insert virtual boundary layer" \\r
--    -command { Ng_InsertVirtualBL; redraw }\r
--.ngmenu.special add command -label "Cut off and combine with other" \\r
--    -command { \r
--      set types { {"Mesh file"   {.vol}       } }\r
--      set file [tk_getOpenFile -filetypes $types]\r
--      if {$file != ""} {\r
--          Ng_CutOffAndCombine $file;  }\r
--      redraw \r
--    }\r
--.ngmenu.special add command -label "Helmholtz Mesh grading" \\r
--    -command { Ng_HelmholtzMesh; }\r
--.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond\r
--\r
--menu .ngmenu.special.colbndcond \r
-- .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \\r
--    -command { currmeshcoloursdialog }\r
--    \r
-- .ngmenu.special.colbndcond add separator     \r
--    \r
-- .ngmenu.special.colbndcond add command -label "Automatic Assignment" \\r
--    -command { Ng_AutoColourBcProps auto; redraw }\r
--      \r
-- .ngmenu.special.colbndcond add separator     \r
--\r
-- set ocffile [file join ${ngdir} netgen.ocf];\r
-- \r
-- .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \\r
--    -command {\r
--      set types { {"Colour Profile file"   {.ocf}   } }\r
--      set ocffile [tk_getOpenFile -filetypes $types]\r
--      if {$ocffile == ""} {\r
--          set ocffile [file join ${ngdir} netgen.ocf]; }\r
--      } \r
-- .ngmenu.special.colbndcond add command -label "Profile based Assignment" \\r
--      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }\r
--\r
--\r
--# menu .mbar.stl.menu\r
--# .mbar.stl.menu add command -label "STL options" \\r
--#     -command { stloptionsdialog; }\r
--#.mbar.stl.menu add command -label "STL Doctor" \\r
--#    -command { stldoctordialog; }\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Menu Help                                     #\r
--#                                                   #\r
--#####################################################\r
--\r
--\r
--\r
--\r
--menu .ngmenu.help\r
--# .ngmenu.help add command -label "Ng Help..." \\r
--\#    -command { help_main }\r
--# .ngmenu.view add checkbutton -variable showsensitivehelp \\r
--#     -label "Sensitve Help" \\r
--#     -command { sensitivehelpdialog $showsensitivehelp }\r
--.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \\r
--      -command {\r
--    if { $showhelpline == 1} {\r
--      pack .helpline -before .statbar -side bottom -fill x -padx 3p\r
--    } {\r
--      pack forget .helpline \r
--    }\r
--} \r
--\r
--.ngmenu.help add command -label "About..." \\r
--    -command {\r
--tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"\r
--}\r
--\r
--# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help\r
--# focus .mbar\r
--\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Button bar                                    #\r
--#                                                   #\r
--#####################################################\r
--\r
--frame .bubar -relief raised -bd 2\r
--pack .bubar -side top -fill x\r
--\r
--button .bubar.testb -text "Test" -command { Ng_SaveGeometry }\r
--button .bubar.surfm -text "Generate Mesh" -command \\r
--    { \r
--      .ngmenu.mesh invoke "Generate Mesh"; \r
--#     set selectvisual mesh; \r
--#     Ng_SetVisParameters;\r
--#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}\r
--#     redraw \r
--    }\r
--button .bubar.stopm -text "Stop" -command \\r
--    { \r
--      # Ng_StopMeshing;  \r
--      set multithread_terminate 1;\r
--      set stopdemo 1;\r
--    }\r
--button .bubar.exitb -text "Quit" \\r
--    -command { \r
--         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]\r
--         if { $ans == "yes" } {\r
--           .ngmenu.file invoke "Quit"; \r
--         }     \r
--      }\r
--pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left\r
--\r
--#button .bubar.scan -text "Scan" \\r
--#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }\r
--\r
--button .bubar.zoomall -text "Zoom All" \\r
--    -command { Ng_ZoomAll; redraw }\r
--\r
--button .bubar.center -text "Center" \\r
--    -command { Ng_Center; redraw }\r
--\r
--# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "\r
--tixOptionMenu .bubar.modesel \\r
--    -options {\r
--      label.width  0\r
--      label.anchor e\r
--      menubutton.width 6\r
--    } \\r
--    -variable drawmode\r
--\r
--.bubar.modesel add command rotate -label Rotate\r
--.bubar.modesel add command move -label Move\r
--.bubar.modesel add command zoom -label Zoom\r
--\r
--\r
--\r
--set viewvals { geometry specpoints mesh solution}\r
--if { $userlevel == 3} {\r
--    set viewvals { geometry mesh specpoints surfmeshing modelview solution}\r
--}\r
--\r
--set viewvallabs(cross)     "Cross" \r
--set viewvallabs(geometry)  "Geometry" \r
--set viewvallabs(mesh)      "Mesh" \r
--set viewvallabs(specpoints) "Edges" \r
--set viewvallabs(surfmeshing) "Mesh Gen" \r
--set viewvallabs(modelview)     "Modeller" \r
--set viewvallabs(solution)     "Solution" \r
--\r
--tixOptionMenu .bubar.selview \\r
--    -options {\r
--      label.width  0\r
--      label.anchor e\r
--      menubutton.width 10\r
--    } \\r
--\r
--foreach viewv $viewvals {\r
--    .bubar.selview add command $viewv -label $viewvallabs($viewv)\r
--}\r
--\r
--\r
--\r
--.bubar.selview config -variable selectvisual\r
--.bubar.selview config -command { Ng_SetVisParameters; redraw }\r
--\r
--\r
--pack .bubar.modesel -side right\r
--pack forget .bubar.modesel\r
--pack .bubar.center .bubar.zoomall .bubar.selview -side right\r
--\r
--.ngmenu.view add checkbutton -variable viewrotatebutton \\r
--    -label "Enable LeftButton Selection" \\r
--    -command { \r
--      if { $viewrotatebutton } {\r
--          pack .bubar.modesel -side right\r
--      } {\r
--          pack forget .bubar.modesel\r
--      }\r
--    }\r
--\r
--\r
--\r
--\r
--#####################################################\r
--#                                                   #\r
--#     Status bar                                    #\r
--#                                                   #\r
--#####################################################\r
--\r
--label .helpline -text "None"\r
--pack forget .helpline -side bottom -fill x\r
--\r
--frame .statbar -relief flat -bd 2\r
--pack .statbar -side bottom -fill x\r
--\r
--label .statbar.ptslabel -text "Points: "\r
--label .statbar.ptsval -textvariable status_np\r
--label .statbar.elslabel -text "   Elements: "\r
--label .statbar.elsval -textvariable status_ne\r
--label .statbar.selslabel -text "   Surf Elements: "\r
--label .statbar.selsval -textvariable status_nse\r
--# label .statbar.memlabel -text "   Mem: "\r
--# label .statbar.memval -textvariable mem_moveable\r
--label .statbar.task -textvariable status_task\r
--\r
--pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p \r
--pack .statbar.elslabel .statbar.elsval -side left -ipady 3p \r
--pack .statbar.selslabel .statbar.selsval -side left -ipady 3p\r
--\r
--# if { $userlevel == 3 } {\r
--#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p\r
--# }\r
--\r
--\r
--tixMeter .statbar.per -value 0 -text 0%\r
--.statbar.per configure -fillcolor blue\r
--\r
--pack .statbar.per -side right\r
--pack .statbar.task -side right -ipady 4\r
--\r
--set qualbaraxis(0) 0\r
--set qualbar(0) 0\r
--set qualbarnull(0) 0\r
--\r
--\r
--\r
--proc timer2 { } {\r
--    global status_np\r
--    global status_ne\r
--    global status_nse\r
--    global multithread_running\r
--    global multithread_redraw\r
--    global status_working\r
--    global status_task\r
--    global status_percent\r
--    global status_tetqualclasses\r
--    \r
--\r
--    Ng_ReadStatus \r
--\r
--    if { $multithread_redraw == 1 } {\r
--      set multithread_redraw 0;\r
--      redraw;\r
--        \r
--        global videoactive\r
--        if { $videoactive == 1 } {\r
--            puts "addframe"\r
--            .ndraw Ng_VideoClip addframe\r
--        }\r
--    }\r
--\r
--    # global mem_moveable\r
--    # set mem_moveable [Ng_MemInfo moveable]\r
--\r
--\r
--    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%\r
--\r
--\r
--    if { $multithread_running } {\r
--      pack .statbar.per -side right -before .statbar.task -padx 6\r
--    } { \r
--      pack forget .statbar.per\r
--    }\r
--      \r
--\r
--\r
--    # tet quality\r
--    if {[winfo exists .qualityview_dlg] == 1} {\r
--      \r
--      global qualbar\r
--      global qualbarnull\r
--      global qualbaraxis\r
--\r
--      set maxval 0\r
--      for {set i 0} {$i < 20} {incr i} {\r
--          if {[lindex $status_tetqualclasses $i] > $maxval} {\r
--              set maxval [lindex $status_tetqualclasses $i]\r
--          }\r
--      } \r
--\r
--      set ubound 1\r
--      while { $ubound < $maxval } {\r
--          set ubound [expr {10 * $ubound}]\r
--      }\r
--      if { $ubound/5 > $maxval } {\r
--          set ubound [expr $ubound/5]\r
--      }\r
--      if { $ubound/2 > $maxval } {\r
--          set ubound [expr $ubound/2]\r
--      }\r
--\r
--\r
--      \r
--      for {set i 1} {$i <= 5} {incr i} {\r
--          # global qualbaraxis($i)\r
--\r
--          set value [expr { $i * $ubound / 5 }]\r
--          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end\r
--          .qualityview_dlg.c insert $qualbaraxis($i) end $value  \r
--      }\r
--\r
--      \r
--      for {set i 0} {$i < 20} {incr i} {\r
--          set x1 [expr {100 + ($i*15) + 2}]\r
--          set x2 [expr {$x1+10}]\r
--          \r
--          set nbrs [lindex $status_tetqualclasses $i]\r
--          set y [expr (249 - (200 * $nbrs / $ubound ) )]\r
--          \r
--          # global qualbar($i)\r
--          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y\r
--\r
--#         global qualbarnull($i)\r
--          if { $nbrs == 0 } {\r
--              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0\r
--          } {\r
--              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text "" \r
--          }           \r
--      }\r
--      \r
--    }\r
--\r
--\r
--    if {[winfo exists .memuse_dlg] == 1} {    \r
--      \r
--      global memmark\r
--      set usemb [Ng_MemInfo usedmb]\r
--      for {set i 0} {$i < [string length $usemb] } {incr i} {\r
--          if { [string index $usemb $i] == 0 } {\r
--              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70\r
--          } {\r
--              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70\r
--          }\r
--      }\r
--\r
--    }\r
--    after 30 { timer2 }\r
--}\r
--# after 1000 { timer2 }\r
--timer2\r
--\r
--\r
--\r
--\r
--proc bgerror { error } {\r
--    global errorInfo userlevel\r
--    if { $userlevel == 3} {\r
--      puts "ERROR: $error" \r
--      puts "errinfo: $errorInfo"\r
--    }\r
--    tk_messageBox -title "Error Message" -message $error -type ok \r
--}\r
--\r
--\r
--\r
--\r
--\r
--\r
--proc smh2 { menuitem } {\r
--    if {[catch {$menuitem entrycget active -label} name]} {\r
--      set name "    "\r
--    } \r
--    show_menu_help $name \r
--    update idletasks\r
--}\r
--\r
--bind .ngmenu <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.file <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.view <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.special <<MenuSelect>> { smh2 %W }\r
--bind .ngmenu.help <<MenuSelect>> { smh2 %W }\r
--\r
--\r
--# command bindings  \r
--bind . <q> { .ngmenu.file invoke "Quit" }\r
--bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ; \r
--bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;\r
--bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;\r
--bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;\r
--bind . <n><p> { newprimitivedialog }      ; # \r
--bind . <e><p> { editprimitivedialog }\r
--bind . <e><s> { newsoliddialog }\r
--bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;\r
--\r
--\r
--\r
--\r
--\r
-+# netgen menus:
-+
-+menu .ngmenu -tearoff 0  -relief raised -bd 2
-+. configure -menu .ngmenu
-+
-+.ngmenu add cascade -label "File" -menu .ngmenu.file -underline 0
-+.ngmenu add cascade -label "Geometry" -menu .ngmenu.geometry -underline 0
-+.ngmenu add cascade -label "Mesh" -menu .ngmenu.mesh -underline 0
-+.ngmenu add cascade -label "View" -menu .ngmenu.view -underline 0
-+.ngmenu add cascade -label "Refinement" -menu .ngmenu.meshsize -underline 5
-+
-+if { $userlevel == 3} {
-+    .ngmenu add cascade -label "Special" -menu .ngmenu.special -underline 3
-+}
-+
-+.ngmenu add cascade -label "Help" -menu .ngmenu.help -underline 0
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu File                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.file
-+
-+.ngmenu.file add command -label "Load Geometry..." -accelerator "<l><g>" \
-+    -command { 
-+      set types {
-+          {"All Geometry types"   { .stl .stlb .step .stp .geo .in2d .igs .iges .brep .sat} }
-+          {"IGES Geometry"    {.igs .iges} }
-+          {"BREP OpenCascade Geometry"    {.brep} }
-+          {"STL Geometry"        {.stl} }
-+          {"Binary STL Geometry"    {.stlb} }
-+          {"STEP Geometry"    {.step .stp} }
-+          {"Geometry file"       {.geo} }
-+          {"2D Geometry"   {.in2d } } 
-+      } 
-+
-+      set ACISavailable [Ng_ACISCommand isACISavailable]
-+      if {$ACISavailable == "yes" } {
-+          lappend types {"ACIS Geometry" {.sat} }
-+      }
-+
-+      if {[catch {
-+          set file [tk_getOpenFile -filetypes $types -initialdir $dirname -typevariable loadgeomtypevar]
-+      }]} {
-+          set file [tk_getOpenFile -filetypes $types -initialdir $dirname]
-+      }
-+
-+      if {$file != ""} {
-+          AddRecentFile $file
-+          Ng_LoadGeometry $file 
-+          Ng_ParseGeometry
-+#         if { [Ng_STLInfo status]=="ERROR" } {
-+#             tk_messageBox -message  "STL ERROR: \n [Ng_STLInfo statustext]" -type ok
-+#         }
-+          set selectvisual geometry
-+          Ng_SetVisParameters
-+          redraw
-+          wm title . [concat "$progname - " $file]
-+          set dirname [file dirname $file]
-+          set basefilename [file tail [file rootname $file]]
-+
-+          if { $hasocc == "yes" } {
-+              rebuildoccdialog
-+          }
-+      }
-+    }
-+
-+
-+
-+.ngmenu.file add command -label "Save Geometry..." \
-+    -command { 
-+      set occgeometryloaded [Ng_OCCCommand isoccgeometryloaded]
-+      puts $occgeometryloaded
-+      if {$occgeometryloaded == 1 } {
-+          set types {
-+              {"IGES Geometry file"   {.igs} } 
-+              {"STEP Geometry file"   {.stp} } 
-+              {"STL Geometry file"   {.stl} } 
-+              {"STL BIN Geometry file"   {.stlb} } 
-+          }
-+      } {
-+          set types {
-+              {"STL Geometry file"   {.stl} } 
-+              {"STL BIN Geometry file"   {.stlb} } 
-+          }
-+      }
-+
-+      set ACISavailable [Ng_ACISCommand isACISavailable]
-+      puts $ACISavailable
-+      if {$ACISavailable == "yes" } {
-+          lappend types {"ACIS Geometry" {.sat} }
-+      }
-+
-+      set file [tk_getSaveFile -filetypes $types -initialdir $dirname -initialfile $basefilename ]
-+      if {$file != ""} {
-+          Ng_SaveGeometry $file 
-+      }
-+    }
-+ 
-+
-+
-+.ngmenu.file add cascade -label "Recent Files" -menu .ngmenu.file.recent 
-+menu .ngmenu.file.recent
-+
-+
-+proc AddRecentFile { filename } {
-+    global progname
-+    global dirname
-+    catch { [.ngmenu.file.recent delete $filename] }
-+    .ngmenu.file.recent insert 0 command -label $filename \
-+      -command "AddRecentFile {$filename}; 
-+                  Ng_LoadGeometry {$filename}; 
-+                Ng_ParseGeometry;
-+                set selectvisual geometry;
-+                Ng_SetVisParameters;
-+                redraw;
-+                wm title . [concat \" $progname - $filename \"];
-+                  set dirname {[file dirname $filename]};
-+                  set basefilename {[file tail [file rootname $filename]]};
-+                rebuildoccdialog;"
-+
-+    
-+    if { [.ngmenu.file.recent index last] >= 6 } {
-+      .ngmenu.file.recent delete last }
-+    
-+    saveinifile;
-+    }
-+loadinifile;
-+
-+.ngmenu.file add separator
-+
-+
-+.ngmenu.file add command -label "Load Mesh..." -accelerator "<l><m>" \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol .vol.gz}       } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
-+      if {$file != ""} {
-+          AddRecentMeshFile $file;
-+          Ng_LoadMesh $file; 
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus; 
-+#         Ng_MeshSizeFromSurfaceMesh
-+          wm title . [concat "$progname - " $file] 
-+          set dirname [file dirname $file]
-+          set basefilename [file tail [file rootname $file]]
-+      }
-+    }
-+
-+
-+
-+# astrid
-+.ngmenu.file add cascade -label "Recent Meshes" -menu .ngmenu.file.recentmesh 
-+menu .ngmenu.file.recentmesh
-+
-+
-+proc AddRecentMeshFile { filename } {
-+    global progname
-+    global dirname
-+    catch { [.ngmenu.file.recentmesh delete $filename] }
-+    .ngmenu.file.recentmesh insert 0 command -label $filename \
-+      -command "AddRecentMeshFile {$filename}; 
-+                  Ng_LoadMesh {$filename};
-+                set selectvisual mesh;
-+                Ng_SetVisParameters;
-+                redraw;
-+                wm title . [concat \" $progname - $filename \"];
-+                  set dirname {[file dirname $filename]};
-+                  set basefilename {[file tail [file rootname $filename]]};
-+                  rebuildoccdialog;"
-+    
-+    if { [.ngmenu.file.recentmesh index last] >= 6 } {
-+      .ngmenu.file.recentmesh delete last }
-+   
-+    savemeshinifile;
-+    }
-+loadmeshinifile;
-+
-+# astrid ende
-+
-+
-+.ngmenu.file add command -label "Save Mesh..." -accelerator "<s><m>" \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol .vol.gz}       } }
-+
-+      set file [tk_getSaveFile -filetypes $types -defaultextension ".vol.gz" -initialfile $basefilename -initialdir $dirname ]
-+      if {$file != ""} {
-+          Ng_SaveMesh $file }
-+      AddRecentMeshFile $file;
-+
-+    }
-+
-+.ngmenu.file add command -label "Merge Mesh..." \
-+    -command {
-+      set types {
-+          {"Mesh file"   {.vol}       } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".vol"]
-+      if {$file != ""} {
-+          Ng_MergeMesh $file; 
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus; 
-+      }
-+    }
-+
-+
-+
-+
-+
-+.ngmenu.file add command -label "Import Mesh..." \
-+    -command { 
-+      set types {
-+          {"Neutral format"  {.mesh .emt} }
-+          {"Surface mesh format"  {.surf} }
-+          {"Universal format"  {.unv} }
-+          {"Olaf format"  {.emt} }
-+          {"TET format" {.tet} }
-+          {"Pro/ENGINEER neutral format" {.fnf} }
-+                }
-+      set file [tk_getOpenFile -filetypes $types ]
-+      if {$file != ""} {
-+          Ng_ImportMesh $file 
-+          set selectvisual mesh
-+          Ng_SetVisParameters
-+          redraw
-+          Ng_ReadStatus; 
-+      }
-+    }
-+
-+
-+.ngmenu.file add command -label "Export Mesh..." \
-+    -command {
-+
-+#     global meshexportformats
-+      foreach exportformat $meshexportformats {
-+          if { [lindex $exportformat 0] == $exportfiletype } {
-+              set extension [lindex $exportformat 1]
-+          }
-+      }
-+
-+      if { $exportfiletype == "Elmer Format"} {
-+          set file [file nativename [tk_chooseDirectory -title "Elmer Mesh Export - Select Directory"]]
-+        } elseif { $exportfiletype == "OpenFOAM 1.5+ Format"} {
-+          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
-+        } elseif { $exportfiletype == "OpenFOAM 1.5+ Compressed"} {
-+          set file [file nativename [tk_chooseDirectory -title "OpenFOAM 1.5+ Mesh Export - Select Case Directory"]]
-+        } else {
-+#         set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {$extension} }" ]
-+          set file [tk_getSaveFile  -filetypes "{ \"$exportfiletype\" {*}}" ]
-+      }
-+
-+      if {$file != ""} {
-+          Ng_ExportMesh $file $exportfiletype 
-+      }
-+    }
-+
-+.ngmenu.file add cascade -label "Export Filetype" -menu .ngmenu.file.filetype 
-+
-+menu .ngmenu.file.filetype 
-+
-+
-+.ngmenu.file add separator
-+
-+
-+.ngmenu.file add command -label "Save Solution..." \
-+    -command { 
-+      set types { 
-+            {"Solution File"  {.sol} } 
-+            {"VTK File"  {.vtk} } 
-+        }
-+      set file [tk_getSaveFile -filetypes $types ]
-+      if {$file != ""} {
-+          Ng_SaveSolution $file 
-+      }
-+    }
-+#-defaultextension ".sol"  ]
-+
-+.ngmenu.file add command -label "Import Solution..." \
-+    -command { 
-+      set types { {"Solution File"  {.sol} } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".sol"  ]
-+      if {$file != ""} {
-+          Ng_ImportSolution $file 
-+          set selectvisual solution
-+          Ng_SetVisParameters
-+          redraw
-+      }
-+    }
-+
-+
-+
-+
-+
-+
-+set demostarttime [clock clicks -millisecond]
-+set stopdemo 0
-+proc demoredraw { } {
-+    global demostarttime
-+    global stopdemo
-+    set curtime [clock clicks -millisecond]
-+    set result [ Ng_DemoSetTime [expr $curtime - $demostarttime] ]
-+    redraw
-+    global videoactive
-+    if { $videoactive == 1 } {
-+        puts "addframe"
-+        .ndraw Ng_VideoClip addframe
-+    }
-+    if { $result == 0 && $stopdemo == 0 } {
-+      after 1 { demoredraw }
-+    }
-+}
-+.ngmenu.file add command -label "Show Demo..." \
-+    -command {
-+      set types { {"Demo File"  {.dem} } }
-+      set file [tk_getOpenFile -filetypes $types -defaultextension ".dem"  ]
-+      if {$file != ""} {
-+          Ng_ShowDemo $file 
-+          set demostarttime [clock clicks -millisecond]
-+          set stopdemo 0
-+          demoredraw
-+      }
-+     }
-+
-+
-+
-+
-+.ngmenu.file add separator
-+
-+.ngmenu.file add command -label "Snapshot..." \
-+    -command { 
-+      set types { 
-+          {"JPG file" {.jpg} } 
-+          {"GIF file" {.gif} } 
-+          {"PPM file" {.ppm} } 
-+      }
-+      set file [tk_getSaveFile -filetypes $types]
-+#  -defaultextension ".ppm"]
-+      if {$file != ""} {
-+          .ndraw Ng_SnapShot $file }
-+    }
-+
-+
-+.ngmenu.file add cascade -label "Video clip" -menu .ngmenu.file.video
-+menu .ngmenu.file.video
-+
-+set videoactive 0
-+.ngmenu.file.video add command -label "start..." \
-+    -command { 
-+      set types { 
-+          {"MPG file" {.mpg} } 
-+      }
-+      set file [tk_getSaveFile -filetypes $types]
-+      if {$file != ""} {
-+          .ndraw Ng_VideoClip init $file 
-+            global videoactive
-+            set videoactive 1
-+        }
-+     }
-+
-+.ngmenu.file.video add command -label "add frame..." \
-+    -command {.ndraw Ng_VideoClip addframe }
-+
-+.ngmenu.file.video add command -label "one cycle" \
-+    -command {
-+      set visoptions.redrawperiodic 1
-+      for { set j 0 } { $j < 100 } { incr j } {
-+          puts "j =  $j"
-+          Ng_Vis_Set time [expr (1000 * $j / 100)]
-+          redraw
-+          .ndraw Ng_VideoClip addframe 
-+          after 200
-+      }
-+    }
-+
-+.ngmenu.file.video add command -label "finalize..." \
-+    -command {
-+        .ndraw Ng_VideoClip finalize 
-+        global videoactive
-+        set videoactive 0
-+    }
-+
-+
-+
-+.ngmenu.file add command -label "Save Options" \
-+    -command { saveoptions }
-+
-+
-+    
-+
-+.ngmenu.file add separator
-+
-+
-+## herbert tcl load menue
-+# .ngmenu.file add command -label "Run tests ..." \
-+\#    -command { runtestdialog }
-+##
-+# .ngmenu.file add separator
-+
-+.ngmenu.file add command -label "Quit" -accelerator "<q>" \
-+    -command { 
-+        puts "Thank you for using $progname"; 
-+
-+        if { [catch { unload libngsolve[info sharedlibextension] ngsolve } result ] } {
-+            # puts "cannot unload ngsolve" 
-+            # puts "error: $result"
-+        } 
-+
-+        Ng_Exit; 
-+        destroy . 
-+    }
-+# exit
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Mesh                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.mesh
-+.ngmenu.mesh add command -label "Generate Mesh" -accelerator "<g><m>" \
-+    -command { 
-+      set selectvisual mesh
-+      Ng_SetVisParameters
-+      Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
-+      Ng_ReadStatus
-+      redraw
-+    }
-+
-+.ngmenu.mesh add command -label "Stop Meshing" \
-+    -command { Ng_StopMeshing }
-+
-+.ngmenu.mesh add command -label "Meshing Options..." \
-+    -command meshingoptionsdialog
-+
-+
-+.ngmenu.mesh add separator
-+
-+.ngmenu.mesh add command -label "Delete Mesh" \
-+    -command { Ng_New mesh; Ng_ReadStatus; redraw }
-+
-+.ngmenu.mesh add command -label "Delete Vol Mesh" \
-+    -command { Ng_DeleteVolMesh; Ng_ReadStatus; redraw }
-+
-+
-+.ngmenu.mesh add command -label "Mesh Info" \
-+    -command {
-+      set dim [Ng_MeshInfo dim]
-+      set np [Ng_MeshInfo np]
-+      set ne [Ng_MeshInfo ne]
-+      set nse [Ng_MeshInfo nse]
-+      set nseg [Ng_MeshInfo nseg]
-+      set bbox [Ng_MeshInfo bbox]
-+      tk_messageBox -message  "Dimension: $dim\nPoints: $np\nElements: $ne\nSurface Els: $nse\nSegments: $nseg\nxmin [lindex $bbox 0] xmax [lindex $bbox 1]\nymin [lindex $bbox 2] ymax [lindex $bbox 3]\nzmin [lindex $bbox 4] zmax [lindex $bbox 5]"
-+    }
-+
-+
-+.ngmenu.mesh add command -label "Mesh Quality" \
-+    -command {
-+      set inplanemin 0
-+      set inplanemax 0
-+      set betplanemin 0
-+      set betplanemax 0
-+      Ng_MeshQuality inplanemin inplanemax betplanemin betplanemax
-+      puts "Triangle angles : $inplanemin - $inplanemax"
-+      puts "Tet angles      : $betplanemin - $betplanemax"
-+      tk_messageBox -message  "Triangle angles : $inplanemin - $inplanemax \n Tet angles      : $betplanemin - $betplanemax"
-+    }
-+
-+# .ngmenu.mesh add command -label "Quality Plot" \
-+#    -command { qualityviewdialog 1 }
-+
-+
-+
-+
-+.ngmenu.mesh add command -label "Check Surface Mesh" \
-+    -command { Ng_CheckSurfaceMesh }
-+.ngmenu.mesh add command -label "Check Volume Mesh" \
-+    -command { Ng_CheckVolumeMesh }
-+
-+.ngmenu.mesh add command -label "Edit Boundary Conditions..." \
-+    -command { bcpropdialog }
-+
-+if { $userlevel == 3 } {
-+    .ngmenu.mesh add command -label "Mesh Doctor..." \
-+      -command { meshdoctordialog }
-+}
-+
-+.ngmenu.mesh add command -label "METIS Mesh Partitioning..." \
-+      -command { METISdialog }
-+
-+.ngmenu.mesh add separator
-+
-+.ngmenu.mesh add command -label "Analyze Geometry" \
-+    -command { Ng_GenerateMesh ag ag; Ng_ReadStatus; redraw }
-+.ngmenu.mesh add command -label "Mesh Edges" \
-+    -command { Ng_GenerateMesh me me; Ng_ReadStatus; redraw }
-+.ngmenu.mesh add command -label "Mesh Surface" \
-+    -command { set selectvisual mesh; Ng_SetVisParameters; \
-+                 Ng_GenerateMesh ms ms; Ng_ReadStatus; redraw }
-+
-+.ngmenu.mesh add command -label "Optimize Surface" \
-+    -command { Ng_GenerateMesh os os cmsmSm; redraw }
-+
-+.ngmenu.mesh add cascade -label "Surface Optim. Step" -menu .ngmenu.mesh.surfoptstep 
-+
-+menu .ngmenu.mesh.surfoptstep 
-+.ngmenu.mesh.surfoptstep add command -label "Mesh Smoothing" \
-+    -command { Ng_GenerateMesh os os m; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Edge swapping (topologic)" \
-+    -command { Ng_GenerateMesh os os s; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Edge swapping (metric)" \
-+    -command { Ng_GenerateMesh os os S; redraw}
-+.ngmenu.mesh.surfoptstep add command -label "Combine points" \
-+    -command { Ng_GenerateMesh os os c; redraw}
-+
-+
-+.ngmenu.mesh add separator
-+.ngmenu.mesh add command -label "Mesh Volume" \
-+    -command { Ng_GenerateMesh mv mv; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Optimize Volume" \
-+    -command { Ng_GenerateMesh ov ov; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Smooth Opt Volume" \
-+    -command { Ng_GenerateMesh ov ov m; Ng_ReadStatus }
-+.ngmenu.mesh add command -label "Smooth Opt Volume Jacobian" \
-+    -command { Ng_GenerateMesh ov ov j; Ng_ReadStatus }
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Geometry                                 #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.geometry
-+
-+
-+
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu View                                     #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.view
-+.ngmenu.view add command -label "Zoom all" \
-+    -command { Ng_ZoomAll; redraw }
-+.ngmenu.view add command -label "Center" \
-+    -command { Ng_Center; redraw }
-+
-+.ngmenu.view add command -label "x-y plane" \
-+    -command { Ng_StandardRotation xy; redraw }
-+.ngmenu.view add command -label "y-x plane" \
-+    -command { Ng_StandardRotation yx; redraw }
-+.ngmenu.view add command -label "x-z plane" \
-+    -command { Ng_StandardRotation xz; redraw }
-+.ngmenu.view add command -label "z-x plane" \
-+    -command { Ng_StandardRotation zx; redraw }
-+.ngmenu.view add command -label "y-z plane" \
-+    -command { Ng_StandardRotation yz; redraw }
-+.ngmenu.view add command -label "z-y plane" \
-+    -command { Ng_StandardRotation zy; redraw }
-+
-+.ngmenu.view add command -label "Viewing Options..." \
-+    -command { viewingoptionsdialog; redraw }
-+.ngmenu.view add command -label "Clipping Plane..." \
-+    -command { clippingdialog; redraw }
-+.ngmenu.view add command -label "Solution Data..." \
-+    -command { visual_dialog; redraw }
-+.ngmenu.view add checkbutton -variable viewqualityplot \
-+    -label "Quality Plot" \
-+    -command { qualityviewdialog $viewqualityplot }
-+.ngmenu.view add checkbutton -variable memuseplot \
-+    -label "Memory Usage" \
-+    -command { memusedialog $memuseplot }
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Refinement                               #
-+#                                                   #
-+#####################################################
-+#
-+# Mesh size menu
-+#
-+menu .ngmenu.meshsize
-+.ngmenu.meshsize add command -label "Refine uniform" \
-+    -command { Ng_Refine; Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "Second Order" \
-+    -command { Ng_SecondOrder; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "Validate Second Order" \
-+    -command { Ng_ValidateSecondOrder; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add command -label "High Order" \
-+    -command { Ng_HighOrder ${options.elementorder}; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add separator
-+
-+.ngmenu.meshsize add command -label "Refinement Dialog..." \
-+    -command { refinementdialog }
-+.ngmenu.meshsize add command -label "Load Meshsize..." \
-+    -command {
-+      set types {
-+          {"Meshsize file"   {.msz}   } }
-+      set file [tk_getOpenFile -filetypes $types]
-+      if {$file != ""} {
-+          Ng_LoadMeshSize $file; 
-+      }
-+    }
-+.ngmenu.meshsize add command -label "MS from Surf Mesh" \
-+    -command { Ng_MeshSizeFromSurfaceMesh }
-+
-+
-+if { $userlevel == 3 } {
-+.ngmenu.meshsize add command -label "Singular point ms" \
-+    -command { Ng_SingularPointMS; }
-+
-+.ngmenu.meshsize add command -label "Singular edge ms" \
-+    -command { Ng_SingularEdgeMS; }
-+
-+.ngmenu.meshsize add separator
-+
-+set bisectfilename "";
-+
-+.ngmenu.meshsize add command -label "Bisection" \
-+    -command { Ng_ReadStatus; set oldnp 0; set newnp $status_np; 
-+#     Ng_BisectCopyMesh; 
-+#     Ng_Split2Tets;
-+      Ng_ReadStatus;
-+      
-+      while { $oldnp < $newnp } {
-+#         if { $level == 0 } {
-+#             Ng_ExportMesh feppmesh.vol fepp;
-+#         } {
-+#             Ng_ExportMesh feppmesh$level feppml 
-+#         }
-+          set level [expr $level+1]
-+          if { $bisectfilename == ""} {
-+              Ng_Bisect;
-+          } else {
-+              Ng_Bisect $bisectfilename;
-+          }
-+#         Ng_HighOrder ${options.elementorder} "noparallel"
-+#         Ng_Split2Tets;
-+          Ng_ReadStatus;
-+          redraw; 
-+          
-+          if { $bisectfilename == ""} {
-+              set oldnp $newnp;
-+              set newnp $status_np;
-+              puts "oldnp $oldnp newnp $newnp";
-+          } else {
-+              set oldnp $newnp;
-+          }
-+      }
-+    }
-+#    -command { Ng_Bisect; Ng_ReadStatus; redraw }
-+#    -command { exec netgen abc >outfile 2>errfile; Ng_ReadStatus; redraw }
-+
-+}
-+
-+.ngmenu.meshsize add command -label "Load Refinement Info..." \
-+    -command {
-+      set types {
-+          {"Refinement info" {.refine} }}
-+      set bisectfilename [tk_getOpenFile -filetypes $types]
-+    }
-+
-+.ngmenu.meshsize add command -label "Z-Refinement" \
-+    -command { Ng_ZRefinement 2; Ng_ReadStatus; redraw }
-+
-+
-+# .ngmenu.meshsize add command -label "hp-Refinement" \
-+\#    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
-+
-+.ngmenu.meshsize add cascade -label "hp-Refinement" -menu .ngmenu.meshsize.hpref
-+menu .ngmenu.meshsize.hpref
-+.ngmenu.meshsize.hpref add command -label "1 Level" \
-+    -command { Ng_HPRefinement 1; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "2 Levels" \
-+    -command { Ng_HPRefinement 2; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "3 Levels" \
-+    -command { Ng_HPRefinement 3; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "4 Levels" \
-+    -command { Ng_HPRefinement 4; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "5 Levels" \
-+    -command { Ng_HPRefinement 5; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "6 Levels" \
-+    -command { Ng_HPRefinement 6; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "7 Levels" \
-+    -command { Ng_HPRefinement 7; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "8 Levels" \
-+    -command { Ng_HPRefinement 8; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "9 Levels" \
-+    -command { Ng_HPRefinement 9; Ng_ReadStatus; redraw }
-+.ngmenu.meshsize.hpref add command -label "10 Levels" \
-+    -command { Ng_HPRefinement 10; Ng_ReadStatus; redraw }
-+
-+
-+.ngmenu.meshsize add command -label "Split to Tets" \
-+    -command { Ng_Split2Tets; Ng_ReadStatus; redraw }
-+
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Special                                  #
-+#                                                   #
-+#####################################################
-+
-+menu .ngmenu.special
-+.ngmenu.special add command -label "Prismatic Boundary Layer" \
-+    -command { Ng_GenerateBoundaryLayer; redraw }
-+.ngmenu.special add command -label "Insert virtual boundary layer" \
-+    -command { Ng_InsertVirtualBL; redraw }
-+.ngmenu.special add command -label "Cut off and combine with other" \
-+    -command { 
-+      set types { {"Mesh file"   {.vol}       } }
-+      set file [tk_getOpenFile -filetypes $types]
-+      if {$file != ""} {
-+          Ng_CutOffAndCombine $file;  }
-+      redraw 
-+    }
-+.ngmenu.special add command -label "Helmholtz Mesh grading" \
-+    -command { Ng_HelmholtzMesh; }
-+.ngmenu.special add cascade -label "Colour-based boundary conditions" -menu .ngmenu.special.colbndcond
-+
-+menu .ngmenu.special.colbndcond 
-+ .ngmenu.special.colbndcond add command -label "Inspect Colours in mesh" \
-+    -command { currmeshcoloursdialog }
-+    
-+ .ngmenu.special.colbndcond add separator     
-+    
-+ .ngmenu.special.colbndcond add command -label "Automatic Assignment" \
-+    -command { Ng_AutoColourBcProps auto; redraw }
-+      
-+ .ngmenu.special.colbndcond add separator     
-+
-+ set ocffile [file join ${ngdir} netgen.ocf];
-+ 
-+ .ngmenu.special.colbndcond add command -label "Select Colour Profile file" \
-+    -command {
-+      set types { {"Colour Profile file"   {.ocf}   } }
-+      set ocffile [tk_getOpenFile -filetypes $types]
-+      if {$ocffile == ""} {
-+          set ocffile [file join ${ngdir} netgen.ocf]; }
-+      } 
-+ .ngmenu.special.colbndcond add command -label "Profile based Assignment" \
-+      -command { Ng_AutoColourBcProps profile ${ocffile}; redraw }
-+
-+
-+# menu .mbar.stl.menu
-+# .mbar.stl.menu add command -label "STL options" \
-+#     -command { stloptionsdialog; }
-+#.mbar.stl.menu add command -label "STL Doctor" \
-+#    -command { stldoctordialog; }
-+
-+
-+#####################################################
-+#                                                   #
-+#     Menu Help                                     #
-+#                                                   #
-+#####################################################
-+
-+
-+
-+
-+menu .ngmenu.help
-+# .ngmenu.help add command -label "Ng Help..." \
-+\#    -command { help_main }
-+# .ngmenu.view add checkbutton -variable showsensitivehelp \
-+#     -label "Sensitve Help" \
-+#     -command { sensitivehelpdialog $showsensitivehelp }
-+.ngmenu.view add checkbutton -label "Help Line" -variable showhelpline \
-+      -command {
-+    if { $showhelpline == 1} {
-+      pack .helpline -before .statbar -side bottom -fill x -padx 3p
-+    } {
-+      pack forget .helpline 
-+    }
-+} 
-+
-+.ngmenu.help add command -label "About..." \
-+    -command {
-+tk_messageBox -message "This is NETGEN \nmainly written by \nJoachim Schoeberl \nthanks to \nRobert Gaisbauer, Johannes Gerstmayr, Philippose Rajan"
-+}
-+
-+# tk_menuBar .mbar .mbar.file .mbar.mesh .mbar.test .mbar.help
-+# focus .mbar
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Button bar                                    #
-+#                                                   #
-+#####################################################
-+
-+frame .bubar -relief raised -bd 2
-+pack .bubar -side top -fill x
-+
-+button .bubar.testb -text "Test" -command { Ng_SaveGeometry }
-+button .bubar.surfm -text "Generate Mesh" -command \
-+    { 
-+      .ngmenu.mesh invoke "Generate Mesh"; 
-+#     set selectvisual mesh; 
-+#     Ng_SetVisParameters;
-+#     Ng_GenerateMesh ${meshoptions.firststep} ${meshoptions.laststep}
-+#     redraw 
-+    }
-+button .bubar.stopm -text "Stop" -command \
-+    { 
-+      # Ng_StopMeshing;  
-+      set multithread_terminate 1;
-+      set stopdemo 1;
-+    }
-+button .bubar.exitb -text "Quit" \
-+    -command { 
-+         set ans [tk_messageBox -title "Quit Netgen?" -message "Do you really want to quit Netgen?" -type yesno -default "no" -icon question]
-+         if { $ans == "yes" } {
-+           .ngmenu.file invoke "Quit"; 
-+         }     
-+      }
-+pack  .bubar.exitb .bubar.surfm .bubar.stopm -side left
-+
-+#button .bubar.scan -text "Scan" \
-+#    -command { Ng_ParseGeometry; set selectvisual geometry; Ng_SetVisParameters; redraw }
-+
-+button .bubar.zoomall -text "Zoom All" \
-+    -command { Ng_ZoomAll; redraw }
-+
-+button .bubar.center -text "Center" \
-+    -command { Ng_Center; redraw }
-+
-+# tk_optionMenu .bubar.modesel drawmode "rotate" "move  " "zoom  "
-+tixOptionMenu .bubar.modesel \
-+    -options {
-+      label.width  0
-+      label.anchor e
-+      menubutton.width 6
-+    } \
-+    -variable drawmode
-+
-+.bubar.modesel add command rotate -label Rotate
-+.bubar.modesel add command move -label Move
-+.bubar.modesel add command zoom -label Zoom
-+
-+
-+
-+set viewvals { geometry specpoints mesh solution}
-+if { $userlevel == 3} {
-+    set viewvals { geometry mesh specpoints surfmeshing modelview solution}
-+}
-+
-+set viewvallabs(cross)     "Cross" 
-+set viewvallabs(geometry)  "Geometry" 
-+set viewvallabs(mesh)      "Mesh" 
-+set viewvallabs(specpoints) "Edges" 
-+set viewvallabs(surfmeshing) "Mesh Gen" 
-+set viewvallabs(modelview)     "Modeller" 
-+set viewvallabs(solution)     "Solution" 
-+
-+tixOptionMenu .bubar.selview \
-+    -options {
-+      label.width  0
-+      label.anchor e
-+      menubutton.width 10
-+    } \
-+
-+foreach viewv $viewvals {
-+    .bubar.selview add command $viewv -label $viewvallabs($viewv)
-+}
-+
-+
-+
-+.bubar.selview config -variable selectvisual
-+.bubar.selview config -command { Ng_SetVisParameters; redraw }
-+
-+
-+pack .bubar.modesel -side right
-+pack forget .bubar.modesel
-+pack .bubar.center .bubar.zoomall .bubar.selview -side right
-+
-+.ngmenu.view add checkbutton -variable viewrotatebutton \
-+    -label "Enable LeftButton Selection" \
-+    -command { 
-+      if { $viewrotatebutton } {
-+          pack .bubar.modesel -side right
-+      } {
-+          pack forget .bubar.modesel
-+      }
-+    }
-+
-+
-+
-+
-+#####################################################
-+#                                                   #
-+#     Status bar                                    #
-+#                                                   #
-+#####################################################
-+
-+label .helpline -text "None"
-+pack forget .helpline -side bottom -fill x
-+
-+frame .statbar -relief flat -bd 2
-+pack .statbar -side bottom -fill x
-+
-+label .statbar.ptslabel -text "Points: "
-+label .statbar.ptsval -textvariable status_np
-+label .statbar.elslabel -text "   Elements: "
-+label .statbar.elsval -textvariable status_ne
-+label .statbar.selslabel -text "   Surf Elements: "
-+label .statbar.selsval -textvariable status_nse
-+# label .statbar.memlabel -text "   Mem: "
-+# label .statbar.memval -textvariable mem_moveable
-+label .statbar.task -textvariable status_task
-+
-+pack .statbar.ptslabel .statbar.ptsval -side left -ipady 3p 
-+pack .statbar.elslabel .statbar.elsval -side left -ipady 3p 
-+pack .statbar.selslabel .statbar.selsval -side left -ipady 3p
-+
-+# if { $userlevel == 3 } {
-+#    pack .statbar.memlabel .statbar.memval -side left -ipady 3p
-+# }
-+
-+
-+tixMeter .statbar.per -value 0 -text 0%
-+.statbar.per configure -fillcolor blue
-+
-+pack .statbar.per -side right
-+pack .statbar.task -side right -ipady 4
-+
-+set qualbaraxis(0) 0
-+set qualbar(0) 0
-+set qualbarnull(0) 0
-+
-+
-+
-+proc timer2 { } {
-+    global status_np
-+    global status_ne
-+    global status_nse
-+    global multithread_running
-+    global multithread_redraw
-+    global status_working
-+    global status_task
-+    global status_percent
-+    global status_tetqualclasses
-+    
-+
-+    Ng_ReadStatus 
-+
-+    if { $multithread_redraw == 1 } {
-+      set multithread_redraw 0;
-+      redraw;
-+        
-+        global videoactive
-+        if { $videoactive == 1 } {
-+            puts "addframe"
-+            .ndraw Ng_VideoClip addframe
-+        }
-+    }
-+
-+    # global mem_moveable
-+    # set mem_moveable [Ng_MemInfo moveable]
-+
-+
-+    .statbar.per config -value [expr $status_percent/100] -text [format %2.1f [expr 0.1*int(10*$status_percent)]]%
-+
-+
-+    if { $multithread_running } {
-+      pack .statbar.per -side right -before .statbar.task -padx 6
-+    } { 
-+      pack forget .statbar.per
-+    }
-+      
-+
-+
-+    # tet quality
-+    if {[winfo exists .qualityview_dlg] == 1} {
-+      
-+      global qualbar
-+      global qualbarnull
-+      global qualbaraxis
-+
-+      set maxval 0
-+      for {set i 0} {$i < 20} {incr i} {
-+          if {[lindex $status_tetqualclasses $i] > $maxval} {
-+              set maxval [lindex $status_tetqualclasses $i]
-+          }
-+      } 
-+
-+      set ubound 1
-+      while { $ubound < $maxval } {
-+          set ubound [expr {10 * $ubound}]
-+      }
-+      if { $ubound/5 > $maxval } {
-+          set ubound [expr $ubound/5]
-+      }
-+      if { $ubound/2 > $maxval } {
-+          set ubound [expr $ubound/2]
-+      }
-+
-+
-+      
-+      for {set i 1} {$i <= 5} {incr i} {
-+          # global qualbaraxis($i)
-+
-+          set value [expr { $i * $ubound / 5 }]
-+          .qualityview_dlg.c dchars $qualbaraxis($i) 0 end
-+          .qualityview_dlg.c insert $qualbaraxis($i) end $value  
-+      }
-+
-+      
-+      for {set i 0} {$i < 20} {incr i} {
-+          set x1 [expr {100 + ($i*15) + 2}]
-+          set x2 [expr {$x1+10}]
-+          
-+          set nbrs [lindex $status_tetqualclasses $i]
-+          set y [expr (249 - (200 * $nbrs / $ubound ) )]
-+          
-+          # global qualbar($i)
-+          .qualityview_dlg.c coords $qualbar($i) $x1 250 $x2 $y
-+
-+#         global qualbarnull($i)
-+          if { $nbrs == 0 } {
-+              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text 0
-+          } {
-+              .qualityview_dlg.c itemconfigure $qualbarnull($i) -text "" 
-+          }           
-+      }
-+      
-+    }
-+
-+
-+    if {[winfo exists .memuse_dlg] == 1} {    
-+      
-+      global memmark
-+      set usemb [Ng_MemInfo usedmb]
-+      for {set i 0} {$i < [string length $usemb] } {incr i} {
-+          if { [string index $usemb $i] == 0 } {
-+              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 68 [expr 50+$i] 70
-+          } {
-+              .memuse_dlg.c coords $memmark($i)  [expr 50+$i] 50 [expr 50+$i] 70
-+          }
-+      }
-+
-+    }
-+    after 30 { timer2 }
-+}
-+# after 1000 { timer2 }
-+timer2
-+
-+
-+
-+
-+proc bgerror { error } {
-+    global errorInfo userlevel
-+    if { $userlevel == 3} {
-+      puts "ERROR: $error" 
-+      puts "errinfo: $errorInfo"
-+    }
-+    tk_messageBox -title "Error Message" -message $error -type ok 
-+}
-+
-+
-+
-+
-+
-+
-+proc smh2 { menuitem } {
-+    if {[catch {$menuitem entrycget active -label} name]} {
-+      set name "    "
-+    } 
-+    show_menu_help $name 
-+    update idletasks
-+}
-+
-+bind .ngmenu <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.file <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.geometry <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.mesh <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.view <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.meshsize <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.special <<MenuSelect>> { smh2 %W }
-+bind .ngmenu.help <<MenuSelect>> { smh2 %W }
-+
-+
-+# command bindings  
-+bind . <q> { .ngmenu.file invoke "Quit" }
-+bind . <l><g> { .ngmenu.file invoke "Load Geometry..." }  ; 
-+bind . <l><m> { .ngmenu.file invoke "Load Mesh..." }  ;
-+bind . <s><m> { .ngmenu.file invoke "Save Mesh..." }  ;
-+bind . <r><f> { .ngmenu.file activate "Recent Files" }  ;
-+bind . <n><p> { newprimitivedialog }      ; # 
-+bind . <e><p> { editprimitivedialog }
-+bind . <e><s> { newsoliddialog }
-+bind . <g><m> { .ngmenu.mesh invoke "Generate Mesh" }  ;
-+
-+
-+
-+
-+
-diff -Naur netgen-5.3.1_SRC_orig/ng/netgen.ocf netgen-5.3.1_SRC_modif/ng/netgen.ocf
---- netgen-5.3.1_SRC_orig/ng/netgen.ocf        2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/netgen.ocf       2019-11-14 16:56:26.630334076 +0300
-@@ -1,32 +1,32 @@
--# Netgen Mesher\r
--# Boundary Condition Colour Profile\r
--#\r
--# Name: netgen.ocf\r
--#\r
--# Description: Netgen default colour \r
--# profile file for colour based automatic \r
--# assignment of boundary condition numbers\r
--#\r
--# Format: \r
--# [boundary_colours] (mandatory keyword)\r
--# <num of entries>\r
--# <bc_num1> <R> <G> <B>\r
--# <bc_num2> <R> <G> <B>\r
--# ....\r
--# ....\r
--# NOTE: \r
--# * Currently, the default Boundary \r
--# Condition number assigned to faces without \r
--# any colour defined is "1"\r
--# * Boundary Condition number "0" is invalid, \r
--# and should not be used\r
--\r
--boundary_colours\r
--7\r
--2     0.0000  0.0000  0.0000\r
--3     1.0000  0.0000  0.0000\r
--4     0.0000  0.0000  1.0000\r
--5     1.0000  1.0000  0.0000\r
--6     0.0000  1.0000  1.0000\r
--7     1.0000  0.0000  1.0000\r
--8     1.0000  1.0000  1.0000\r
-+# Netgen Mesher
-+# Boundary Condition Colour Profile
-+#
-+# Name: netgen.ocf
-+#
-+# Description: Netgen default colour 
-+# profile file for colour based automatic 
-+# assignment of boundary condition numbers
-+#
-+# Format: 
-+# [boundary_colours] (mandatory keyword)
-+# <num of entries>
-+# <bc_num1> <R> <G> <B>
-+# <bc_num2> <R> <G> <B>
-+# ....
-+# ....
-+# NOTE: 
-+# * Currently, the default Boundary 
-+# Condition number assigned to faces without 
-+# any colour defined is "1"
-+# * Boundary Condition number "0" is invalid, 
-+# and should not be used
-+
-+boundary_colours
-+7
-+2     0.0000  0.0000  0.0000
-+3     1.0000  0.0000  0.0000
-+4     0.0000  0.0000  1.0000
-+5     1.0000  1.0000  0.0000
-+6     0.0000  1.0000  1.0000
-+7     1.0000  0.0000  1.0000
-+8     1.0000  1.0000  1.0000
-diff -Naur netgen-5.3.1_SRC_orig/ng/parameters.tcl netgen-5.3.1_SRC_modif/ng/parameters.tcl
---- netgen-5.3.1_SRC_orig/ng/parameters.tcl    2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/parameters.tcl   2019-11-14 16:56:26.658333292 +0300
-@@ -1,50 +1,50 @@
--proc setgranularity { gran } {\r
--#\r
--#    puts "set granularity $gran"\r
--#\r
--    if {$gran == 6} { return }\r
--    set gran [expr $gran - 1]\r
--#\r
--    global options.curvaturesafety\r
--    set surfcurvlist { 1 1.5 2 3 5 }\r
--    set options.curvaturesafety [lindex $surfcurvlist $gran]\r
--\r
--    global options.segmentsperedge\r
--    set spelist { 0.3 0.5 1 2 3 }\r
--    set options.segmentsperedge [lindex $spelist $gran]\r
--    \r
--    global stloptions.resthsurfcurvfac\r
--    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }\r
--    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]\r
--\r
--    global stloptions.resthchartdistfac\r
--    set chartdistfaclist { 0.8 1 1.5 2 5 }\r
--    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]\r
--\r
--    global stloptions.resthlinelengthfac\r
--    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }\r
--    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]\r
--\r
--    global stloptions.resthcloseedgefac\r
--    set closeedgefaclist { 0.5 1 2 3.5 5 }\r
--    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]\r
--\r
--      global stloptions.resthminedgelen\r
--    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }\r
--    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]\r
--      \r
--    global stloptions.resthedgeanglefac\r
--    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }\r
--    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]\r
--\r
--\r
--    global stloptions.resthsurfmeshcurvfac \r
--    set surfmeshcurvlist { 1 1.5 2 3 5 }\r
--    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]\r
--\r
--\r
--    global options.grading\r
--    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }\r
--    set options.grading [lindex $gradinglist $gran]\r
--    \r
--}\r
-+proc setgranularity { gran } {
-+#
-+#    puts "set granularity $gran"
-+#
-+    if {$gran == 6} { return }
-+    set gran [expr $gran - 1]
-+#
-+    global options.curvaturesafety
-+    set surfcurvlist { 1 1.5 2 3 5 }
-+    set options.curvaturesafety [lindex $surfcurvlist $gran]
-+
-+    global options.segmentsperedge
-+    set spelist { 0.3 0.5 1 2 3 }
-+    set options.segmentsperedge [lindex $spelist $gran]
-+    
-+    global stloptions.resthsurfcurvfac
-+    set surfcurvfaclist { 0.25 0.5 1 1.5 3 }
-+    set stloptions.resthsurfcurvfac [lindex $surfcurvfaclist $gran]
-+
-+    global stloptions.resthchartdistfac
-+    set chartdistfaclist { 0.8 1 1.5 2 5 }
-+    set stloptions.resthchartdistfac [lindex $chartdistfaclist $gran]
-+
-+    global stloptions.resthlinelengthfac
-+    set linelengthfaclist { 0.2 0.35 0.5 1.5 3 }
-+    set stloptions.resthlinelengthfac [lindex $linelengthfaclist $gran]
-+
-+    global stloptions.resthcloseedgefac
-+    set closeedgefaclist { 0.5 1 2 3.5 5 }
-+    set stloptions.resthcloseedgefac [lindex $closeedgefaclist $gran]
-+
-+      global stloptions.resthminedgelen
-+    set minedgelenlist { 0.002 0.02 0.2 1.0 2.0 5.0 10.0 }
-+    set stloptions.resthminedgelen [lindex $minedgelenlist $gran]
-+      
-+    global stloptions.resthedgeanglefac
-+    set edgeanglefaclist { 0.25 0.5 1 1.5 3 }
-+    set stloptions.resthedgeanglefac [lindex $edgeanglefaclist $gran]
-+
-+
-+    global stloptions.resthsurfmeshcurvfac 
-+    set surfmeshcurvlist { 1 1.5 2 3 5 }
-+    set stloptions.resthsurfmeshcurvfac [lindex $surfmeshcurvlist $gran]
-+
-+
-+    global options.grading
-+    set gradinglist { 0.7 0.5 0.3 0.2 0.1 }
-+    set options.grading [lindex $gradinglist $gran]
-+    
-+}
-diff -Naur netgen-5.3.1_SRC_orig/ng/variables.tcl netgen-5.3.1_SRC_modif/ng/variables.tcl
---- netgen-5.3.1_SRC_orig/ng/variables.tcl     2014-08-29 13:54:01.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/ng/variables.tcl    2019-11-14 16:56:26.674332844 +0300
-@@ -1,706 +1,706 @@
--# netgen global tcl-variables\r
--\r
--set drawmode rotate\r
--set selectvisual geometry\r
--\r
--set dirname .\r
--set loadgeomtypevar "All Geometry types"\r
--\r
--set basefilename filename\r
--\r
--set meshoptions.fineness 3\r
--set meshoptions.firststep ag\r
--set meshoptions.laststep ov\r
--set options.memory 0\r
--\r
--set options.localh 1\r
--set options.delaunay 1\r
--set options.checkoverlap 1\r
--set options.checkoverlappingboundary 0\r
--set options.checkchartboundary 1\r
--set options.startinsurface 0\r
--set options.blockfill 1\r
--set options.debugmode 0\r
--set options.dooptimize 1\r
--set options.parthread 1\r
--set options.elsizeweight 0.2\r
--set options.secondorder 0\r
--set options.elementorder 1\r
--set options.quad 0\r
--set options.inverttets 0\r
--set options.inverttrigs 0\r
--set options.autozrefine 0\r
--\r
--\r
--set options.meshsize 1000\r
--set options.minmeshsize 0\r
--\r
--set options.curvaturesafety 2\r
--set options.segmentsperedge 2\r
--set options.meshsizefilename ""\r
--set options.badellimit 175\r
--set options.optsteps2d 3\r
--set options.optsteps3d 5\r
--set options.opterrpow 2\r
--\r
--set options.grading 0.5\r
--set options.printmsg 2\r
--\r
--set debug.slowchecks 0\r
--set debug.debugoutput 0\r
--set debug.haltexistingline 0\r
--set debug.haltoverlap 0\r
--set debug.haltsuccess 0\r
--set debug.haltnosuccess 0\r
--set debug.haltlargequalclass 0\r
--set debug.haltsegment 0\r
--set debug.haltnode 0\r
--set debug.haltface 0\r
--set debug.haltfacenr 0\r
--set debug.haltsegmentp1 0\r
--set debug.haltsegmentp2 0\r
--\r
--set geooptions.drawcsg 1\r
--set geooptions.detail 0.001\r
--set geooptions.accuracy 1e-6\r
--set geooptions.facets 20\r
--set geooptions.minx -1000\r
--set geooptions.miny -1000\r
--set geooptions.minz -1000\r
--set geooptions.maxx 1000\r
--set geooptions.maxy 1000\r
--set geooptions.maxz 1000\r
--\r
--set viewqualityplot 0\r
--set memuseplot 0\r
--set viewrotatebutton 0\r
--set showsensitivehelp 0\r
--set showhelpline 0\r
--\r
--set viewoptions.specpointvlen 0.3\r
--set viewoptions.light.amb 0.3\r
--set viewoptions.light.diff 0.7\r
--set viewoptions.light.spec 1\r
--set viewoptions.light.locviewer 0\r
--set viewoptions.mat.shininess 50\r
--set viewoptions.mat.transp 0.3\r
--set viewoptions.colormeshsize 0\r
--set viewoptions.whitebackground 1\r
--set viewoptions.drawcoordinatecross 1\r
--set viewoptions.drawcolorbar 1\r
--set viewoptions.drawnetgenlogo 1\r
--set viewoptions.stereo 0\r
--set viewoptions.shrink 1\r
--\r
--set viewoptions.drawfilledtrigs 1\r
--set viewoptions.drawedges 0\r
--set viewoptions.drawbadels 0\r
--set viewoptions.centerpoint 0\r
--set viewoptions.drawelement 0\r
--set viewoptions.drawoutline 1\r
--set viewoptions.drawtets 0\r
--set viewoptions.drawtetsdomain 0\r
--set viewoptions.drawprisms 0\r
--set viewoptions.drawpyramids 0\r
--set viewoptions.drawhexes 0\r
--set viewoptions.drawidentified 0\r
--set viewoptions.drawpointnumbers 0\r
--set viewoptions.drawedgenumbers 0\r
--set viewoptions.drawfacenumbers 0\r
--set viewoptions.drawelementnumbers 0\r
--set viewoptions.drawdomainsurf 0\r
--\r
--set viewoptions.drawededges 1\r
--set viewoptions.drawedpoints 1\r
--set viewoptions.drawedpointnrs 0\r
--set viewoptions.drawedtangents 0\r
--set viewoptions.drawededgenrs 0\r
--set viewoptions.drawmetispartition 0\r
--\r
--set viewoptions.drawcurveproj 0\r
--set viewoptions.drawcurveprojedge 1\r
--\r
--set viewoptions.clipping.nx 0\r
--set viewoptions.clipping.ny 1\r
--set viewoptions.clipping.nz 0\r
--set viewoptions.clipping.dist 0\r
--set viewoptions.clipping.dist2 0\r
--set viewoptions.clipping.enable 0\r
--set viewoptions.clipping.onlydomain 0\r
--set viewoptions.clipping.notdomain 0\r
--\r
--set viewoptions.usecentercoords 0\r
--set viewoptions.centerx 0\r
--set viewoptions.centery 0\r
--set viewoptions.centerz 0\r
--\r
--set viewoptions.drawspecpoint 0\r
--set viewoptions.specpointx 0\r
--set viewoptions.specpointy 0\r
--set viewoptions.specpointz 0\r
--\r
--\r
--set stloptions.showtrias 0\r
--set stloptions.showfilledtrias 1\r
--set stloptions.showedges 1\r
--set stloptions.showmarktrias 0\r
--set stloptions.showactivechart 0\r
--set stloptions.yangle 30\r
--set stloptions.contyangle 20\r
--set stloptions.edgecornerangle 60\r
--set stloptions.chartangle 15\r
--set stloptions.outerchartangle 70\r
--set stloptions.usesearchtree 0\r
--set stloptions.chartnumber 1\r
--set stloptions.charttrignumber 1\r
--set stloptions.chartnumberoffset 0\r
--\r
--set stloptions.atlasminh 0.1\r
--set stloptions.resthsurfcurvfac 2\r
--set stloptions.resthsurfcurvenable 0\r
--set stloptions.resthatlasfac 2\r
--set stloptions.resthatlasenable 1\r
--set stloptions.resthchartdistfac 1.2\r
--set stloptions.resthchartdistenable 1\r
--set stloptions.resthlinelengthfac 0.5\r
--set stloptions.resthlinelengthenable 1\r
--set stloptions.resthcloseedgefac 1\r
--set stloptions.resthcloseedgeenable 1\r
--set stloptions.resthminedgelen 0.01\r
--set stloptions.resthminedgelenenable 1\r
--set stloptions.resthedgeanglefac 1\r
--set stloptions.resthedgeangleenable 0\r
--set stloptions.resthsurfmeshcurvfac 1\r
--set stloptions.resthsurfmeshcurvenable 0\r
--set stloptions.recalchopt 1\r
--\r
--set stldoctor.drawmeshededges 1\r
--set stldoctor.geom_tol_fact 0.000001\r
--set stldoctor.useexternaledges 0\r
--set stldoctor.showfaces 0\r
--set stldoctor.conecheck 1\r
--set stldoctor.spiralcheck 1\r
--set stldoctor.selecttrig 0\r
--set stldoctor.selectmode 1\r
--set stldoctor.longlinefact 0\r
--set stldoctor.showexcluded 1\r
--set stldoctor.edgeselectmode 0\r
--set stldoctor.nodeofseltrig 1\r
--set stldoctor.showtouchedtrigchart 0\r
--set stldoctor.showedgecornerpoints 0\r
--set stldoctor.showmarkedtrigs 1\r
--set stldoctor.dirtytrigfact 0.01\r
--set stldoctor.smoothangle 90\r
--set stldoctor.selectwithmouse 1\r
--set stldoctor.showvicinity 0\r
--set stldoctor.vicinity 50\r
--set stldoctor.smoothnormalsweight 0.2\r
--\r
--set occoptions.showvolumenr 0\r
--set occoptions.showsurfaces 1\r
--set occoptions.showedges 1\r
--set occoptions.showsolidnr 0\r
--set occoptions.showsolidnr2 0\r
--set occoptions.visproblemfaces 0\r
--set occoptions.zoomtohighlightedentity 0\r
--set occoptions.deflection 1\r
--set occoptions.tolerance 1e-3\r
--set occoptions.fixsmalledges 1\r
--set occoptions.fixspotstripfaces 1\r
--set occoptions.sewfaces 1\r
--set occoptions.makesolids 1\r
--set occoptions.splitpartitions 0\r
--\r
--set meshdoctor.active 0\r
--set meshdoctor.markedgedist 1\r
--\r
--\r
--# variablenname mit punkt problematisch!\r
--set status_np 0\r
--set status_ne 0\r
--set status_nse 0\r
--set status_working " "\r
--set status_task " "\r
--set status_percent 0\r
--set status_filename 0\r
--set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"\r
--\r
--set exportfiletype "Neutral Format"\r
--\r
--set preproc.facenr 0\r
--set preproc.selectmode query\r
--set preproc.numtrig 0\r
--\r
--set mem_moveable 0\r
--\r
--\r
--set multithread_pause 0\r
--set multithread_testmode 0\r
--set multithread_redraw 0\r
--set multithread_drawing 0\r
--set multithread_terminate 0\r
--set multithread_running 0\r
--\r
--set level 0\r
--\r
--\r
--set tablesforoutput {}\r
--\r
--\r
--\r
--set optlist {\r
--    options.localh \r
--    options.delaunay \r
--    options.checkoverlap \r
--    options.startinsurface \r
--    options.blockfill \r
--    options.dooptimize \r
--    options.elsizeweight \r
--    options.meshsize \r
--    options.minmeshsize \r
--    options.curvaturesafety \r
--    options.optsteps2d \r
--    options.optsteps3d \r
--    options.secondorder\r
--}\r
--\r
--\r
--set visoptions.usetexture 1\r
--set visoptions.invcolor 0\r
--set visoptions.imaginary 0\r
--set visoptions.lineartexture 0\r
--set visoptions.numtexturecols 16\r
--set visoptions.showclipsolution 1\r
--set visoptions.showsurfacesolution 0\r
--set visoptions.drawfieldlines 0\r
--set visoptions.drawpointcurves 1\r
--set visoptions.numfieldlines 100\r
--set visoptions.fieldlinesrandomstart 0\r
--set visoptions.fieldlinesstartarea box\r
--set visoptions.fieldlinesstartareap1x 1\r
--set visoptions.fieldlinesstartareap1y 1\r
--set visoptions.fieldlinesstartareap1z 1\r
--set visoptions.fieldlinesstartareap2x 0\r
--set visoptions.fieldlinesstartareap2y 0\r
--set visoptions.fieldlinesstartareap2z 0\r
--set visoptions.fieldlinesstartface -1\r
--set visoptions.fieldlinesfilename none\r
--set visoptions.fieldlinestolerance 0.0005\r
--set visoptions.fieldlinesrktype crungekutta\r
--set visoptions.fieldlineslength 0.5\r
--set visoptions.fieldlinesmaxpoints 500\r
--set visoptions.fieldlinesthickness 0.0015\r
--set visoptions.fieldlinesvecfunction none\r
--set visoptions.fieldlinesphase 0\r
--set visoptions.fieldlinesonlyonephase 1\r
--\r
--\r
--set visoptions.lineplotfile empty\r
--set visoptions.lineplotsource file\r
--set visoptions.lineplotusingx 0\r
--set visoptions.lineplotusingy 1\r
--set visoptions.lineplotautoscale 1\r
--set visoptions.lineplotxmin 0\r
--set visoptions.lineplotxmax 1\r
--set visoptions.lineplotymin 0\r
--set visoptions.lineplotymax 1\r
--set visoptions.lineplotcurrentnum -1\r
--set visoptions.lineplotinfos ""\r
--set visoptions.lineplotselected none\r
--set visoptions.lineplotselector ""\r
--set visoptions.lineplotcolor red\r
--set visoptions.lineplotsizex 500\r
--set visoptions.lineplotsizey 400\r
--set visoptions.lineplotselectedeval 0\r
--set visoptions.lineplotdatadescr "column1 column2 column3"\r
--set visoptions.lineplotxcoordselector ""\r
--set visoptions.lineplotycoordselector ""\r
--set visoptions.evaluatefilenames none\r
--set visoptions.evaluatefiledescriptions none\r
--\r
--\r
--set visoptions.clipsolution none\r
--set visoptions.scalfunction none\r
--set visoptions.vecfunction none\r
--set visoptions.evaluate abs\r
--set visoptions.gridsize 20\r
--set visoptions.xoffset 0\r
--set visoptions.yoffset 0\r
--set visoptions.autoscale 1\r
--set visoptions.redrawperiodic 0\r
--set visoptions.logscale 0\r
--set visoptions.mminval 0\r
--set visoptions.mmaxval 1\r
--set visoptions.isolines 0\r
--set visoptions.isosurf 0\r
--set visoptions.subdivisions 1\r
--set visoptions.numiso 10\r
--set visoptions.autoredraw 0\r
--set visoptions.autoredrawtime 2\r
--set visoptions.simulationtime 0\r
--set visoptions.multidimcomponent 0\r
--\r
--# deform by vector function\r
--set visoptions.deformation 0\r
--set visoptions.scaledeform1 1\r
--set visoptions.scaledeform2 1\r
--\r
--set parallel_netgen 0\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--\r
--set optfilename [file join $nguserdir ng.opt]\r
--set inifilename [file join $nguserdir ng.ini]\r
--set meshinifilename [file join $nguserdir ngmesh.ini]\r
--\r
--global env\r
--if { [llength [array names env NG_OPT]] == 1 } {\r
--    if { [string length $env(NG_OPT)] > 0 } {\r
--      set optfilename $env(NG_OPT) \r
--    }\r
--}\r
--\r
--if { [file exists $optfilename] == 1 } {\r
--    set datei [open $optfilename r]\r
--    while { [gets $datei line] >= 0 } {\r
--      set [lindex $line 0] [lindex $line 1]\r
--    }\r
--    close $datei\r
--} {\r
--    puts "optfile $optfilename does not exist - using default values"\r
--}\r
--\r
--\r
--\r
--\r
--proc saveoptions { } {\r
--    uplevel 1  {\r
--      set file $optfilename\r
--      \r
--      if {$file != ""} {\r
--          set datei [open $file w]\r
--          puts $datei "dirname  ${dirname}"\r
--          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""\r
--          puts $datei "exportfiletype  \"${exportfiletype}\""\r
--          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"\r
--          puts $datei "meshoptions.firststep ${meshoptions.firststep}"\r
--          puts $datei "meshoptions.laststep  ${meshoptions.laststep}" \r
--          puts $datei "options.localh  ${options.localh}"\r
--          puts $datei "options.delaunay  ${options.delaunay}"\r
--          puts $datei "options.checkoverlap  ${options.checkoverlap}"\r
--          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"\r
--          puts $datei "options.startinsurface  ${options.startinsurface}" \r
--          puts $datei "options.blockfill  ${options.blockfill}" \r
--          puts $datei "options.debugmode  ${options.debugmode}" \r
--          puts $datei "options.dooptimize ${options.dooptimize}" \r
--          puts $datei "options.parthread  ${options.parthread}"  \r
--          puts $datei "options.elsizeweight  ${options.elsizeweight}" \r
--          puts $datei "options.secondorder  ${options.secondorder}" \r
--          puts $datei "options.elementorder  ${options.elementorder}" \r
--#         puts $datei "options.memory  ${options.memory}" \r
--          puts $datei "options.quad  ${options.quad}" \r
--          puts $datei "options.inverttets  ${options.inverttets}" \r
--          puts $datei "options.inverttrigs  ${options.inverttrigs}" \r
--          puts $datei "options.autozrefine ${options.autozrefine}" \r
--          puts $datei "options.meshsize  ${options.meshsize}" \r
--          puts $datei "options.minmeshsize  ${options.minmeshsize}" \r
--          puts $datei "options.curvaturesafety  ${options.curvaturesafety}" \r
--          puts $datei "options.segmentsperedge  ${options.segmentsperedge}" \r
--          puts $datei "options.meshsizefilename  ${options.meshsizefilename}" \r
--          puts $datei "options.badellimit  ${options.badellimit}" \r
--          puts $datei "options.optsteps2d  ${options.optsteps2d}" \r
--          puts $datei "options.optsteps3d  ${options.optsteps3d}" \r
--          puts $datei "options.opterrpow  ${options.opterrpow}" \r
--          puts $datei "options.grading  ${options.grading}" \r
--          puts $datei "options.printmsg  ${options.printmsg}" \r
--          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}" \r
--          puts $datei "geooptions.detail  ${geooptions.detail}" \r
--          puts $datei "geooptions.accuracy  ${geooptions.accuracy}" \r
--          puts $datei "geooptions.facets  ${geooptions.facets}" \r
--          puts $datei "geooptions.minx  ${geooptions.minx}" \r
--          puts $datei "geooptions.miny  ${geooptions.miny}" \r
--          puts $datei "geooptions.minz  ${geooptions.minz}" \r
--          puts $datei "geooptions.maxx  ${geooptions.maxx}" \r
--          puts $datei "geooptions.maxy  ${geooptions.maxy}" \r
--          puts $datei "geooptions.maxz  ${geooptions.maxz}" \r
--          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}" \r
--          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}" \r
--          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"\r
--          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"\r
--          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"\r
--          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}" \r
--          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}" \r
--          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"\r
--          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}" \r
--          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}" \r
--          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}" \r
--          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}" \r
--          puts $datei "viewoptions.stereo  ${viewoptions.stereo}" \r
--          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}" \r
--          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}" \r
--          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}" \r
--          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}" \r
--          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}" \r
--          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}" \r
--          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"\r
--          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"\r
--          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}" \r
--          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}" \r
--          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}" \r
--          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}" \r
--          \r
--          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}" \r
--          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}" \r
--          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}" \r
--          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}" \r
--          puts $datei "viewoptions.shrink  ${viewoptions.shrink}" \r
--          \r
--          puts $datei "stloptions.showtrias  ${stloptions.showtrias}" \r
--          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}" \r
--          puts $datei "stloptions.showedges  ${stloptions.showedges}" \r
--          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}" \r
--          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}" \r
--          puts $datei "stloptions.yangle  ${stloptions.yangle}" \r
--          puts $datei "stloptions.contyangle  ${stloptions.contyangle}" \r
--          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}" \r
--          puts $datei "stloptions.chartangle  ${stloptions.chartangle}" \r
--          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}" \r
--          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}" \r
--          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}" \r
--          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}" \r
--          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}" \r
--          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}" \r
--          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}" \r
--          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}" \r
--          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}" \r
--          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}" \r
--          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}" \r
--          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}" \r
--          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}" \r
--          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}" \r
--              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"\r
--              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"\r
--          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}" \r
--          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}" \r
--          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}" \r
--          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}" \r
--          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}" \r
--          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}" \r
--          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}" \r
--          \r
--          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"\r
--          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"\r
--          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"\r
--\r
--\r
--          # trafo options   \r
--          # if exist trafooptions then ...\r
--          if { [info exists trafooptions.solver] == 1 } {\r
--              puts $datei "trafooptions.solver ${trafooptions.solver}" \r
--              puts $datei "trafooptions.levels ${trafooptions.levels}" \r
--              puts $datei "trafooptions.linits ${trafooptions.linits}" \r
--              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}" \r
--              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}" \r
--              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}" \r
--              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}" \r
--              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}" \r
--              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}" \r
--              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}" \r
--              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}" \r
--              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}" \r
--\r
--              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}" \r
--              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}" \r
--              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}" \r
--              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}" \r
--              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}" \r
--              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}" \r
--              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}" \r
--          }\r
--\r
--          if { [info exists smalltrafomodell.tankheight] == 1 } {\r
--              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"\r
--              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"\r
--              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"\r
--              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"\r
--              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"\r
--              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"\r
--              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"\r
--              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"\r
--              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"\r
--              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"\r
--              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"\r
--              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"\r
--              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"\r
--              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"\r
--              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"\r
--              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"\r
--              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"\r
--              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"\r
--              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"\r
--              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"\r
--              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"\r
--              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"\r
--              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"\r
--              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"\r
--              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"\r
--              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"\r
--              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"\r
--              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"\r
--              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"\r
--              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"\r
--              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"\r
--              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"\r
--              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"\r
--              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"\r
--              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"\r
--              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"\r
--              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"\r
--              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"\r
--              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"\r
--              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"\r
--              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"\r
--              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"\r
--              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"\r
--              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"\r
--              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"\r
--              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"\r
--              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"\r
--              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"\r
--              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"\r
--              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"\r
--              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"\r
--              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"\r
--              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"\r
--              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"\r
--              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"\r
--              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"\r
--              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"\r
--              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"\r
--              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"\r
--              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"\r
--              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"\r
--              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"\r
--              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"\r
--              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"\r
--              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"\r
--              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"\r
--              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"\r
--              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"\r
--              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"\r
--              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"\r
--              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"\r
--              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"\r
--              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"\r
--              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"\r
--              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"\r
--              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"\r
--              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"\r
--              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"\r
--              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"\r
--              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"\r
--              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"\r
--              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"\r
--              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"\r
--              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"\r
--              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"\r
--              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"\r
--              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"\r
--              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"\r
--              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"\r
--              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"\r
--              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"\r
--              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"\r
--              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"\r
--              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"\r
--          }\r
--          \r
--          \r
--          close $datei\r
--      }\r
--    }\r
--}\r
--\r
--\r
--\r
--\r
--# the ini file is saved on demand :\r
--proc saveinifile { } {\r
--    global inifilename\r
--    if {[catch { set datei [open $inifilename w] } result ]} {\r
--      puts "cannot write file $inifilename"\r
--    } {\r
--      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {\r
--          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""\r
--      }\r
--      close $datei\r
--    }    \r
--}\r
--\r
--\r
--proc savemeshinifile { } {\r
--    global meshinifilename \r
--    if {[catch { set datei [open $meshinifilename w] } result ]} {\r
--      puts "cannot write file $meshinifilename"\r
--    } {\r
--      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {\r
--          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""\r
--      }\r
--      close $datei\r
--    }    \r
--}\r
--\r
--\r
--\r
--proc loadinifile { } { \r
--    global inifilename\r
--    if { [file exists $inifilename] == 1 } {\r
--      set datei [open $inifilename r]\r
--      while { [gets $datei line] >= 0 } {\r
--          if {[lindex $line 0] == "recentfile"} {\r
--                  set filename [lindex $line 1]\r
--                  if { [file exists $filename] == 1 } {\r
--                      AddRecentFile $filename\r
--                  }   \r
--          }\r
--      }\r
--      close $datei\r
--    }\r
--}\r
--\r
--\r
--proc loadmeshinifile { } {\r
--    global meshinifilename\r
--    if { [file exists $meshinifilename] == 1 } {\r
--      set datei [open $meshinifilename r]\r
--      while { [gets $datei line] >= 0 } {\r
--          if {[lindex $line 0] == "recentfile"} {\r
--              set filename [lindex $line 1]\r
--              if { [file exists $filename] == 1 } {\r
--                  AddRecentMeshFile $filename\r
--              }       \r
--          }\r
--      }\r
--      close $datei\r
--    }\r
-- }\r
--\r
--\r
--\r
--\r
--\r
--set cmdindex {}\r
--set hlpindex {}\r
--set secindex {}\r
-+# netgen global tcl-variables
-+
-+set drawmode rotate
-+set selectvisual geometry
-+
-+set dirname .
-+set loadgeomtypevar "All Geometry types"
-+
-+set basefilename filename
-+
-+set meshoptions.fineness 3
-+set meshoptions.firststep ag
-+set meshoptions.laststep ov
-+set options.memory 0
-+
-+set options.localh 1
-+set options.delaunay 1
-+set options.checkoverlap 1
-+set options.checkoverlappingboundary 0
-+set options.checkchartboundary 1
-+set options.startinsurface 0
-+set options.blockfill 1
-+set options.debugmode 0
-+set options.dooptimize 1
-+set options.parthread 1
-+set options.elsizeweight 0.2
-+set options.secondorder 0
-+set options.elementorder 1
-+set options.quad 0
-+set options.inverttets 0
-+set options.inverttrigs 0
-+set options.autozrefine 0
-+
-+
-+set options.meshsize 1000
-+set options.minmeshsize 0
-+
-+set options.curvaturesafety 2
-+set options.segmentsperedge 2
-+set options.meshsizefilename ""
-+set options.badellimit 175
-+set options.optsteps2d 3
-+set options.optsteps3d 5
-+set options.opterrpow 2
-+
-+set options.grading 0.5
-+set options.printmsg 2
-+
-+set debug.slowchecks 0
-+set debug.debugoutput 0
-+set debug.haltexistingline 0
-+set debug.haltoverlap 0
-+set debug.haltsuccess 0
-+set debug.haltnosuccess 0
-+set debug.haltlargequalclass 0
-+set debug.haltsegment 0
-+set debug.haltnode 0
-+set debug.haltface 0
-+set debug.haltfacenr 0
-+set debug.haltsegmentp1 0
-+set debug.haltsegmentp2 0
-+
-+set geooptions.drawcsg 1
-+set geooptions.detail 0.001
-+set geooptions.accuracy 1e-6
-+set geooptions.facets 20
-+set geooptions.minx -1000
-+set geooptions.miny -1000
-+set geooptions.minz -1000
-+set geooptions.maxx 1000
-+set geooptions.maxy 1000
-+set geooptions.maxz 1000
-+
-+set viewqualityplot 0
-+set memuseplot 0
-+set viewrotatebutton 0
-+set showsensitivehelp 0
-+set showhelpline 0
-+
-+set viewoptions.specpointvlen 0.3
-+set viewoptions.light.amb 0.3
-+set viewoptions.light.diff 0.7
-+set viewoptions.light.spec 1
-+set viewoptions.light.locviewer 0
-+set viewoptions.mat.shininess 50
-+set viewoptions.mat.transp 0.3
-+set viewoptions.colormeshsize 0
-+set viewoptions.whitebackground 1
-+set viewoptions.drawcoordinatecross 1
-+set viewoptions.drawcolorbar 1
-+set viewoptions.drawnetgenlogo 1
-+set viewoptions.stereo 0
-+set viewoptions.shrink 1
-+
-+set viewoptions.drawfilledtrigs 1
-+set viewoptions.drawedges 0
-+set viewoptions.drawbadels 0
-+set viewoptions.centerpoint 0
-+set viewoptions.drawelement 0
-+set viewoptions.drawoutline 1
-+set viewoptions.drawtets 0
-+set viewoptions.drawtetsdomain 0
-+set viewoptions.drawprisms 0
-+set viewoptions.drawpyramids 0
-+set viewoptions.drawhexes 0
-+set viewoptions.drawidentified 0
-+set viewoptions.drawpointnumbers 0
-+set viewoptions.drawedgenumbers 0
-+set viewoptions.drawfacenumbers 0
-+set viewoptions.drawelementnumbers 0
-+set viewoptions.drawdomainsurf 0
-+
-+set viewoptions.drawededges 1
-+set viewoptions.drawedpoints 1
-+set viewoptions.drawedpointnrs 0
-+set viewoptions.drawedtangents 0
-+set viewoptions.drawededgenrs 0
-+set viewoptions.drawmetispartition 0
-+
-+set viewoptions.drawcurveproj 0
-+set viewoptions.drawcurveprojedge 1
-+
-+set viewoptions.clipping.nx 0
-+set viewoptions.clipping.ny 1
-+set viewoptions.clipping.nz 0
-+set viewoptions.clipping.dist 0
-+set viewoptions.clipping.dist2 0
-+set viewoptions.clipping.enable 0
-+set viewoptions.clipping.onlydomain 0
-+set viewoptions.clipping.notdomain 0
-+
-+set viewoptions.usecentercoords 0
-+set viewoptions.centerx 0
-+set viewoptions.centery 0
-+set viewoptions.centerz 0
-+
-+set viewoptions.drawspecpoint 0
-+set viewoptions.specpointx 0
-+set viewoptions.specpointy 0
-+set viewoptions.specpointz 0
-+
-+
-+set stloptions.showtrias 0
-+set stloptions.showfilledtrias 1
-+set stloptions.showedges 1
-+set stloptions.showmarktrias 0
-+set stloptions.showactivechart 0
-+set stloptions.yangle 30
-+set stloptions.contyangle 20
-+set stloptions.edgecornerangle 60
-+set stloptions.chartangle 15
-+set stloptions.outerchartangle 70
-+set stloptions.usesearchtree 0
-+set stloptions.chartnumber 1
-+set stloptions.charttrignumber 1
-+set stloptions.chartnumberoffset 0
-+
-+set stloptions.atlasminh 0.1
-+set stloptions.resthsurfcurvfac 2
-+set stloptions.resthsurfcurvenable 0
-+set stloptions.resthatlasfac 2
-+set stloptions.resthatlasenable 1
-+set stloptions.resthchartdistfac 1.2
-+set stloptions.resthchartdistenable 1
-+set stloptions.resthlinelengthfac 0.5
-+set stloptions.resthlinelengthenable 1
-+set stloptions.resthcloseedgefac 1
-+set stloptions.resthcloseedgeenable 1
-+set stloptions.resthminedgelen 0.01
-+set stloptions.resthminedgelenenable 1
-+set stloptions.resthedgeanglefac 1
-+set stloptions.resthedgeangleenable 0
-+set stloptions.resthsurfmeshcurvfac 1
-+set stloptions.resthsurfmeshcurvenable 0
-+set stloptions.recalchopt 1
-+
-+set stldoctor.drawmeshededges 1
-+set stldoctor.geom_tol_fact 0.000001
-+set stldoctor.useexternaledges 0
-+set stldoctor.showfaces 0
-+set stldoctor.conecheck 1
-+set stldoctor.spiralcheck 1
-+set stldoctor.selecttrig 0
-+set stldoctor.selectmode 1
-+set stldoctor.longlinefact 0
-+set stldoctor.showexcluded 1
-+set stldoctor.edgeselectmode 0
-+set stldoctor.nodeofseltrig 1
-+set stldoctor.showtouchedtrigchart 0
-+set stldoctor.showedgecornerpoints 0
-+set stldoctor.showmarkedtrigs 1
-+set stldoctor.dirtytrigfact 0.01
-+set stldoctor.smoothangle 90
-+set stldoctor.selectwithmouse 1
-+set stldoctor.showvicinity 0
-+set stldoctor.vicinity 50
-+set stldoctor.smoothnormalsweight 0.2
-+
-+set occoptions.showvolumenr 0
-+set occoptions.showsurfaces 1
-+set occoptions.showedges 1
-+set occoptions.showsolidnr 0
-+set occoptions.showsolidnr2 0
-+set occoptions.visproblemfaces 0
-+set occoptions.zoomtohighlightedentity 0
-+set occoptions.deflection 1
-+set occoptions.tolerance 1e-3
-+set occoptions.fixsmalledges 1
-+set occoptions.fixspotstripfaces 1
-+set occoptions.sewfaces 1
-+set occoptions.makesolids 1
-+set occoptions.splitpartitions 0
-+
-+set meshdoctor.active 0
-+set meshdoctor.markedgedist 1
-+
-+
-+# variablenname mit punkt problematisch!
-+set status_np 0
-+set status_ne 0
-+set status_nse 0
-+set status_working " "
-+set status_task " "
-+set status_percent 0
-+set status_filename 0
-+set status_tetqualclasses "10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40 10 20 30 40"
-+
-+set exportfiletype "Neutral Format"
-+
-+set preproc.facenr 0
-+set preproc.selectmode query
-+set preproc.numtrig 0
-+
-+set mem_moveable 0
-+
-+
-+set multithread_pause 0
-+set multithread_testmode 0
-+set multithread_redraw 0
-+set multithread_drawing 0
-+set multithread_terminate 0
-+set multithread_running 0
-+
-+set level 0
-+
-+
-+set tablesforoutput {}
-+
-+
-+
-+set optlist {
-+    options.localh 
-+    options.delaunay 
-+    options.checkoverlap 
-+    options.startinsurface 
-+    options.blockfill 
-+    options.dooptimize 
-+    options.elsizeweight 
-+    options.meshsize 
-+    options.minmeshsize 
-+    options.curvaturesafety 
-+    options.optsteps2d 
-+    options.optsteps3d 
-+    options.secondorder
-+}
-+
-+
-+set visoptions.usetexture 1
-+set visoptions.invcolor 0
-+set visoptions.imaginary 0
-+set visoptions.lineartexture 0
-+set visoptions.numtexturecols 16
-+set visoptions.showclipsolution 1
-+set visoptions.showsurfacesolution 0
-+set visoptions.drawfieldlines 0
-+set visoptions.drawpointcurves 1
-+set visoptions.numfieldlines 100
-+set visoptions.fieldlinesrandomstart 0
-+set visoptions.fieldlinesstartarea box
-+set visoptions.fieldlinesstartareap1x 1
-+set visoptions.fieldlinesstartareap1y 1
-+set visoptions.fieldlinesstartareap1z 1
-+set visoptions.fieldlinesstartareap2x 0
-+set visoptions.fieldlinesstartareap2y 0
-+set visoptions.fieldlinesstartareap2z 0
-+set visoptions.fieldlinesstartface -1
-+set visoptions.fieldlinesfilename none
-+set visoptions.fieldlinestolerance 0.0005
-+set visoptions.fieldlinesrktype crungekutta
-+set visoptions.fieldlineslength 0.5
-+set visoptions.fieldlinesmaxpoints 500
-+set visoptions.fieldlinesthickness 0.0015
-+set visoptions.fieldlinesvecfunction none
-+set visoptions.fieldlinesphase 0
-+set visoptions.fieldlinesonlyonephase 1
-+
-+
-+set visoptions.lineplotfile empty
-+set visoptions.lineplotsource file
-+set visoptions.lineplotusingx 0
-+set visoptions.lineplotusingy 1
-+set visoptions.lineplotautoscale 1
-+set visoptions.lineplotxmin 0
-+set visoptions.lineplotxmax 1
-+set visoptions.lineplotymin 0
-+set visoptions.lineplotymax 1
-+set visoptions.lineplotcurrentnum -1
-+set visoptions.lineplotinfos ""
-+set visoptions.lineplotselected none
-+set visoptions.lineplotselector ""
-+set visoptions.lineplotcolor red
-+set visoptions.lineplotsizex 500
-+set visoptions.lineplotsizey 400
-+set visoptions.lineplotselectedeval 0
-+set visoptions.lineplotdatadescr "column1 column2 column3"
-+set visoptions.lineplotxcoordselector ""
-+set visoptions.lineplotycoordselector ""
-+set visoptions.evaluatefilenames none
-+set visoptions.evaluatefiledescriptions none
-+
-+
-+set visoptions.clipsolution none
-+set visoptions.scalfunction none
-+set visoptions.vecfunction none
-+set visoptions.evaluate abs
-+set visoptions.gridsize 20
-+set visoptions.xoffset 0
-+set visoptions.yoffset 0
-+set visoptions.autoscale 1
-+set visoptions.redrawperiodic 0
-+set visoptions.logscale 0
-+set visoptions.mminval 0
-+set visoptions.mmaxval 1
-+set visoptions.isolines 0
-+set visoptions.isosurf 0
-+set visoptions.subdivisions 1
-+set visoptions.numiso 10
-+set visoptions.autoredraw 0
-+set visoptions.autoredrawtime 2
-+set visoptions.simulationtime 0
-+set visoptions.multidimcomponent 0
-+
-+# deform by vector function
-+set visoptions.deformation 0
-+set visoptions.scaledeform1 1
-+set visoptions.scaledeform2 1
-+
-+set parallel_netgen 0
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+set optfilename [file join $nguserdir ng.opt]
-+set inifilename [file join $nguserdir ng.ini]
-+set meshinifilename [file join $nguserdir ngmesh.ini]
-+
-+global env
-+if { [llength [array names env NG_OPT]] == 1 } {
-+    if { [string length $env(NG_OPT)] > 0 } {
-+      set optfilename $env(NG_OPT) 
-+    }
-+}
-+
-+if { [file exists $optfilename] == 1 } {
-+    set datei [open $optfilename r]
-+    while { [gets $datei line] >= 0 } {
-+      set [lindex $line 0] [lindex $line 1]
-+    }
-+    close $datei
-+} {
-+    puts "optfile $optfilename does not exist - using default values"
-+}
-+
-+
-+
-+
-+proc saveoptions { } {
-+    uplevel 1  {
-+      set file $optfilename
-+      
-+      if {$file != ""} {
-+          set datei [open $file w]
-+          puts $datei "dirname  ${dirname}"
-+          puts $datei "loadgeomtypevar  \"${loadgeomtypevar}\""
-+          puts $datei "exportfiletype  \"${exportfiletype}\""
-+          puts $datei "meshoptions.fineness  ${meshoptions.fineness}"
-+          puts $datei "meshoptions.firststep ${meshoptions.firststep}"
-+          puts $datei "meshoptions.laststep  ${meshoptions.laststep}" 
-+          puts $datei "options.localh  ${options.localh}"
-+          puts $datei "options.delaunay  ${options.delaunay}"
-+          puts $datei "options.checkoverlap  ${options.checkoverlap}"
-+          puts $datei "options.checkchartboundary  ${options.checkchartboundary}"
-+          puts $datei "options.startinsurface  ${options.startinsurface}" 
-+          puts $datei "options.blockfill  ${options.blockfill}" 
-+          puts $datei "options.debugmode  ${options.debugmode}" 
-+          puts $datei "options.dooptimize ${options.dooptimize}" 
-+          puts $datei "options.parthread  ${options.parthread}"  
-+          puts $datei "options.elsizeweight  ${options.elsizeweight}" 
-+          puts $datei "options.secondorder  ${options.secondorder}" 
-+          puts $datei "options.elementorder  ${options.elementorder}" 
-+#         puts $datei "options.memory  ${options.memory}" 
-+          puts $datei "options.quad  ${options.quad}" 
-+          puts $datei "options.inverttets  ${options.inverttets}" 
-+          puts $datei "options.inverttrigs  ${options.inverttrigs}" 
-+          puts $datei "options.autozrefine ${options.autozrefine}" 
-+          puts $datei "options.meshsize  ${options.meshsize}" 
-+          puts $datei "options.minmeshsize  ${options.minmeshsize}" 
-+          puts $datei "options.curvaturesafety  ${options.curvaturesafety}" 
-+          puts $datei "options.segmentsperedge  ${options.segmentsperedge}" 
-+          puts $datei "options.meshsizefilename  ${options.meshsizefilename}" 
-+          puts $datei "options.badellimit  ${options.badellimit}" 
-+          puts $datei "options.optsteps2d  ${options.optsteps2d}" 
-+          puts $datei "options.optsteps3d  ${options.optsteps3d}" 
-+          puts $datei "options.opterrpow  ${options.opterrpow}" 
-+          puts $datei "options.grading  ${options.grading}" 
-+          puts $datei "options.printmsg  ${options.printmsg}" 
-+          puts $datei "geooptions.drawcsg  ${geooptions.drawcsg}" 
-+          puts $datei "geooptions.detail  ${geooptions.detail}" 
-+          puts $datei "geooptions.accuracy  ${geooptions.accuracy}" 
-+          puts $datei "geooptions.facets  ${geooptions.facets}" 
-+          puts $datei "geooptions.minx  ${geooptions.minx}" 
-+          puts $datei "geooptions.miny  ${geooptions.miny}" 
-+          puts $datei "geooptions.minz  ${geooptions.minz}" 
-+          puts $datei "geooptions.maxx  ${geooptions.maxx}" 
-+          puts $datei "geooptions.maxy  ${geooptions.maxy}" 
-+          puts $datei "geooptions.maxz  ${geooptions.maxz}" 
-+          puts $datei "viewoptions.specpointvlen  ${viewoptions.specpointvlen}" 
-+          puts $datei "viewoptions.light.amb  ${viewoptions.light.amb}" 
-+          puts $datei "viewoptions.light.diff ${viewoptions.light.diff}"
-+          puts $datei "viewoptions.light.spec ${viewoptions.light.spec}"
-+          puts $datei "viewoptions.light.locviewer ${viewoptions.light.locviewer}"
-+          puts $datei "viewoptions.mat.shininess  ${viewoptions.mat.shininess}" 
-+          puts $datei "viewoptions.mat.transp  ${viewoptions.mat.transp}" 
-+          puts $datei "viewoptions.colormeshsize ${viewoptions.colormeshsize}"
-+          puts $datei "viewoptions.whitebackground  ${viewoptions.whitebackground}" 
-+          puts $datei "viewoptions.drawcolorbar  ${viewoptions.drawcolorbar}" 
-+          puts $datei "viewoptions.drawcoordinatecross  ${viewoptions.drawcoordinatecross}" 
-+          puts $datei "viewoptions.drawnetgenlogo  ${viewoptions.drawnetgenlogo}" 
-+          puts $datei "viewoptions.stereo  ${viewoptions.stereo}" 
-+          puts $datei "viewoptions.drawfilledtrigs  ${viewoptions.drawfilledtrigs}" 
-+          puts $datei "viewoptions.drawedges  ${viewoptions.drawedges}" 
-+          puts $datei "viewoptions.drawbadels  ${viewoptions.drawbadels}" 
-+          puts $datei "viewoptions.centerpoint  ${viewoptions.centerpoint}" 
-+          puts $datei "viewoptions.drawelement  ${viewoptions.drawelement}" 
-+          puts $datei "viewoptions.drawoutline  ${viewoptions.drawoutline}" 
-+          puts $datei "viewoptions.drawtets  ${viewoptions.drawtets}"
-+          puts $datei "viewoptions.drawprisms  ${viewoptions.drawprisms}"
-+          puts $datei "viewoptions.drawpyramids  ${viewoptions.drawpyramids}" 
-+          puts $datei "viewoptions.drawhexes  ${viewoptions.drawhexes}" 
-+          puts $datei "viewoptions.drawidentified  ${viewoptions.drawidentified}" 
-+          puts $datei "viewoptions.drawpointnumbers  ${viewoptions.drawpointnumbers}" 
-+          
-+          puts $datei "viewoptions.drawededges  ${viewoptions.drawededges}" 
-+          puts $datei "viewoptions.drawedpoints  ${viewoptions.drawedpoints}" 
-+          puts $datei "viewoptions.drawedpointnrs  ${viewoptions.drawedpointnrs}" 
-+          puts $datei "viewoptions.drawedtangents  ${viewoptions.drawedtangents}" 
-+          puts $datei "viewoptions.shrink  ${viewoptions.shrink}" 
-+          
-+          puts $datei "stloptions.showtrias  ${stloptions.showtrias}" 
-+          puts $datei "stloptions.showfilledtrias  ${stloptions.showfilledtrias}" 
-+          puts $datei "stloptions.showedges  ${stloptions.showedges}" 
-+          puts $datei "stloptions.showmarktrias  ${stloptions.showmarktrias}" 
-+          puts $datei "stloptions.showactivechart  ${stloptions.showactivechart}" 
-+          puts $datei "stloptions.yangle  ${stloptions.yangle}" 
-+          puts $datei "stloptions.contyangle  ${stloptions.contyangle}" 
-+          puts $datei "stloptions.edgecornerangle  ${stloptions.edgecornerangle}" 
-+          puts $datei "stloptions.chartangle  ${stloptions.chartangle}" 
-+          puts $datei "stloptions.outerchartangle  ${stloptions.outerchartangle}" 
-+          puts $datei "stloptions.usesearchtree  ${stloptions.usesearchtree}" 
-+          puts $datei "stloptions.chartnumber  ${stloptions.chartnumber}" 
-+          puts $datei "stloptions.charttrignumber  ${stloptions.charttrignumber}" 
-+          puts $datei "stloptions.chartnumberoffset  ${stloptions.chartnumberoffset}" 
-+          puts $datei "stloptions.atlasminh  ${stloptions.atlasminh}" 
-+          puts $datei "stloptions.resthsurfcurvfac  ${stloptions.resthsurfcurvfac}" 
-+          puts $datei "stloptions.resthsurfcurvenable  ${stloptions.resthsurfcurvenable}" 
-+          puts $datei "stloptions.resthatlasfac  ${stloptions.resthatlasfac}" 
-+          puts $datei "stloptions.resthatlasenable  ${stloptions.resthatlasenable}" 
-+          puts $datei "stloptions.resthchartdistfac  ${stloptions.resthchartdistfac}" 
-+          puts $datei "stloptions.resthchartdistenable  ${stloptions.resthchartdistenable}" 
-+          puts $datei "stloptions.resthlinelengthfac  ${stloptions.resthlinelengthfac}" 
-+          puts $datei "stloptions.resthlinelengthenable  ${stloptions.resthlinelengthenable}" 
-+              puts $datei "stloptions.resthminedgelen ${stloptions.resthminedgelen}"
-+              puts $datei "stloptions.resthminedgelenenable ${stloptions.resthminedgelenenable}"
-+          puts $datei "stloptions.resthcloseedgefac  ${stloptions.resthcloseedgefac}" 
-+          puts $datei "stloptions.resthcloseedgeenable  ${stloptions.resthcloseedgeenable}" 
-+          puts $datei "stloptions.resthedgeanglefac  ${stloptions.resthedgeanglefac}" 
-+          puts $datei "stloptions.resthedgeangleenable  ${stloptions.resthedgeangleenable}" 
-+          puts $datei "stloptions.resthsurfmeshcurvfac  ${stloptions.resthsurfmeshcurvfac}" 
-+          puts $datei "stloptions.resthsurfmeshcurvenable  ${stloptions.resthsurfmeshcurvenable}" 
-+          puts $datei "stloptions.recalchopt  ${stloptions.recalchopt}" 
-+          
-+          puts $datei "visoptions.subdivisions ${visoptions.subdivisions}"
-+          puts $datei "visoptions.autoredraw ${visoptions.autoredraw}"
-+          puts $datei "visoptions.autoredrawtime ${visoptions.autoredrawtime}"
-+
-+
-+          # trafo options   
-+          # if exist trafooptions then ...
-+          if { [info exists trafooptions.solver] == 1 } {
-+              puts $datei "trafooptions.solver ${trafooptions.solver}" 
-+              puts $datei "trafooptions.levels ${trafooptions.levels}" 
-+              puts $datei "trafooptions.linits ${trafooptions.linits}" 
-+              puts $datei "trafooptions.nonlinits ${trafooptions.nonlinits}" 
-+              puts $datei "trafooptions.stabcurrent ${trafooptions.stabcurrent}" 
-+              puts $datei "trafooptions.checkcond ${trafooptions.checkcond}" 
-+              puts $datei "trafooptions.maxdirect ${trafooptions.maxdirect}" 
-+              puts $datei "trafooptions.secondorder ${trafooptions.secondorder}" 
-+              puts $datei "trafooptions.homogenizedcore ${trafooptions.homogenizedcore}" 
-+              puts $datei "trafooptions.ordercore ${trafooptions.ordercore}" 
-+              puts $datei "trafooptions.simplecurrents ${trafooptions.simplecurrents}" 
-+              puts $datei "trafooptions.assemblecomplexmatrix ${trafooptions.assemblecomplexmatrix}" 
-+
-+              puts $datei "trafooptions.meshcasing  ${trafooptions.meshcasing}" 
-+              puts $datei "trafooptions.meshcore    ${trafooptions.meshcore}" 
-+              puts $datei "trafooptions.meshclumps  ${trafooptions.meshclumps}" 
-+              puts $datei "trafooptions.meshshields ${trafooptions.meshshields}" 
-+              puts $datei "trafooptions.meshcoils   ${trafooptions.meshcoils}" 
-+              puts $datei "trafooptions.bcmdirectory  ${trafooptions.bcmdirectory}" 
-+              puts $datei "trafooptions.lossdensityfile  ${trafooptions.lossdensityfile}" 
-+          }
-+
-+          if { [info exists smalltrafomodell.tankheight] == 1 } {
-+              puts $datei "smalltrafomodell.tankheight ${smalltrafomodell.tankheight}"
-+              puts $datei "smalltrafomodell.tankwidth ${smalltrafomodell.tankwidth}"
-+              puts $datei "smalltrafomodell.tanklength ${smalltrafomodell.tanklength}"
-+              puts $datei "smalltrafomodell.corewidth ${smalltrafomodell.corewidth}"
-+              puts $datei "smalltrafomodell.windowheight ${smalltrafomodell.windowheight}"
-+              puts $datei "smalltrafomodell.limbdistance ${smalltrafomodell.limbdistance}"
-+              puts $datei "smalltrafomodell.xposcore ${smalltrafomodell.xposcore}"
-+              puts $datei "smalltrafomodell.yposcore ${smalltrafomodell.yposcore}"
-+              puts $datei "smalltrafomodell.zposcore ${smalltrafomodell.zposcore}"
-+              puts $datei "smalltrafomodell.leakagefluxguidethickness ${smalltrafomodell.leakagefluxguidethickness}"
-+              puts $datei "smalltrafomodell.leakagefluxguidewidth ${smalltrafomodell.leakagefluxguidewidth}"
-+              puts $datei "smalltrafomodell.leakagefluxguidezposition ${smalltrafomodell.leakagefluxguidezposition}"
-+              puts $datei "smalltrafomodell.limbcoil.1 ${smalltrafomodell.limbcoil.1}"
-+              puts $datei "smalltrafomodell.ricoil.1 ${smalltrafomodell.ricoil.1}"
-+              puts $datei "smalltrafomodell.rocoil.1 ${smalltrafomodell.rocoil.1}"
-+              puts $datei "smalltrafomodell.zposcoil.1 ${smalltrafomodell.zposcoil.1}"
-+              puts $datei "smalltrafomodell.heightcoil.1 ${smalltrafomodell.heightcoil.1}"
-+              puts $datei "smalltrafomodell.currentcoil.1 ${smalltrafomodell.currentcoil.1}"
-+              puts $datei "smalltrafomodell.nturnscoil.1 ${smalltrafomodell.nturnscoil.1}"
-+              puts $datei "smalltrafomodell.limbcoil.2 ${smalltrafomodell.limbcoil.2}"
-+              puts $datei "smalltrafomodell.ricoil.2 ${smalltrafomodell.ricoil.2}"
-+              puts $datei "smalltrafomodell.rocoil.2 ${smalltrafomodell.rocoil.2}"
-+              puts $datei "smalltrafomodell.zposcoil.2 ${smalltrafomodell.zposcoil.2}"
-+              puts $datei "smalltrafomodell.heightcoil.2 ${smalltrafomodell.heightcoil.2}"
-+              puts $datei "smalltrafomodell.currentcoil.2 ${smalltrafomodell.currentcoil.2}"
-+              puts $datei "smalltrafomodell.nturnscoil.2 ${smalltrafomodell.nturnscoil.2}"
-+              puts $datei "smalltrafomodell.limbcoil.3 ${smalltrafomodell.limbcoil.3}"
-+              puts $datei "smalltrafomodell.ricoil.3 ${smalltrafomodell.ricoil.3}"
-+              puts $datei "smalltrafomodell.rocoil.3 ${smalltrafomodell.rocoil.3}"
-+              puts $datei "smalltrafomodell.zposcoil.3 ${smalltrafomodell.zposcoil.3}"
-+              puts $datei "smalltrafomodell.heightcoil.3 ${smalltrafomodell.heightcoil.3}"
-+              puts $datei "smalltrafomodell.currentcoil.3 ${smalltrafomodell.currentcoil.3}"
-+              puts $datei "smalltrafomodell.nturnscoil.3 ${smalltrafomodell.nturnscoil.3}"
-+              puts $datei "smalltrafomodell.limbcoil.4 ${smalltrafomodell.limbcoil.4}"
-+              puts $datei "smalltrafomodell.ricoil.4 ${smalltrafomodell.ricoil.4}"
-+              puts $datei "smalltrafomodell.rocoil.4 ${smalltrafomodell.rocoil.4}"
-+              puts $datei "smalltrafomodell.zposcoil.4 ${smalltrafomodell.zposcoil.4}"
-+              puts $datei "smalltrafomodell.heightcoil.4 ${smalltrafomodell.heightcoil.4}"
-+              puts $datei "smalltrafomodell.currentcoil.4 ${smalltrafomodell.currentcoil.4}"
-+              puts $datei "smalltrafomodell.nturnscoil.4 ${smalltrafomodell.nturnscoil.4}"
-+              puts $datei "smalltrafomodell.limbcoil.5 ${smalltrafomodell.limbcoil.5}"
-+              puts $datei "smalltrafomodell.ricoil.5 ${smalltrafomodell.ricoil.5}"
-+              puts $datei "smalltrafomodell.rocoil.5 ${smalltrafomodell.rocoil.5}"
-+              puts $datei "smalltrafomodell.zposcoil.5 ${smalltrafomodell.zposcoil.5}"
-+              puts $datei "smalltrafomodell.heightcoil.5 ${smalltrafomodell.heightcoil.5}"
-+              puts $datei "smalltrafomodell.currentcoil.5 ${smalltrafomodell.currentcoil.5}"
-+              puts $datei "smalltrafomodell.nturnscoil.5 ${smalltrafomodell.nturnscoil.5}"
-+              puts $datei "smalltrafomodell.limbcoil.6 ${smalltrafomodell.limbcoil.6}"
-+              puts $datei "smalltrafomodell.ricoil.6 ${smalltrafomodell.ricoil.6}"
-+              puts $datei "smalltrafomodell.rocoil.6 ${smalltrafomodell.rocoil.6}"
-+              puts $datei "smalltrafomodell.zposcoil.6 ${smalltrafomodell.zposcoil.6}"
-+              puts $datei "smalltrafomodell.heightcoil.6 ${smalltrafomodell.heightcoil.6}"
-+              puts $datei "smalltrafomodell.currentcoil.6 ${smalltrafomodell.currentcoil.6}"
-+              puts $datei "smalltrafomodell.nturnscoil.6 ${smalltrafomodell.nturnscoil.6}"
-+              puts $datei "smalltrafomodell.limbtest.1 ${smalltrafomodell.limbtest.1}"
-+              puts $datei "smalltrafomodell.heighttest.1 ${smalltrafomodell.heighttest.1}"
-+              puts $datei "smalltrafomodell.widthtest.1 ${smalltrafomodell.widthtest.1}"
-+              puts $datei "smalltrafomodell.rtest.1 ${smalltrafomodell.rtest.1}"
-+              puts $datei "smalltrafomodell.zpostest.1 ${smalltrafomodell.zpostest.1}"
-+              puts $datei "smalltrafomodell.edgeradiustest.1 ${smalltrafomodell.edgeradiustest.1}"
-+              puts $datei "smalltrafomodell.finetest.1 ${smalltrafomodell.finetest.1}"
-+              puts $datei "smalltrafomodell.conductivetest.1 ${smalltrafomodell.conductivetest.1}"
-+              puts $datei "smalltrafomodell.limbtest.2 ${smalltrafomodell.limbtest.2}"
-+              puts $datei "smalltrafomodell.heighttest.2 ${smalltrafomodell.heighttest.2}"
-+              puts $datei "smalltrafomodell.widthtest.2 ${smalltrafomodell.widthtest.2}"
-+              puts $datei "smalltrafomodell.rtest.2 ${smalltrafomodell.rtest.2}"
-+              puts $datei "smalltrafomodell.zpostest.2 ${smalltrafomodell.zpostest.2}"
-+              puts $datei "smalltrafomodell.edgeradiustest.2 ${smalltrafomodell.edgeradiustest.2}"
-+              puts $datei "smalltrafomodell.finetest.2 ${smalltrafomodell.finetest.2}"
-+              puts $datei "smalltrafomodell.conductivetest.2 ${smalltrafomodell.conductivetest.2}"
-+              puts $datei "smalltrafomodell.limbtest.3 ${smalltrafomodell.limbtest.3}"
-+              puts $datei "smalltrafomodell.heighttest.3 ${smalltrafomodell.heighttest.3}"
-+              puts $datei "smalltrafomodell.widthtest.3 ${smalltrafomodell.widthtest.3}"
-+              puts $datei "smalltrafomodell.rtest.3 ${smalltrafomodell.rtest.3}"
-+              puts $datei "smalltrafomodell.zpostest.3 ${smalltrafomodell.zpostest.3}"
-+              puts $datei "smalltrafomodell.edgeradiustest.3 ${smalltrafomodell.edgeradiustest.3}"
-+              puts $datei "smalltrafomodell.finetest.3 ${smalltrafomodell.finetest.3}"
-+              puts $datei "smalltrafomodell.conductivetest.3 ${smalltrafomodell.conductivetest.3}"
-+              puts $datei "smalltrafomodell.limbtest.4 ${smalltrafomodell.limbtest.4}"
-+              puts $datei "smalltrafomodell.heighttest.4 ${smalltrafomodell.heighttest.4}"
-+              puts $datei "smalltrafomodell.widthtest.4 ${smalltrafomodell.widthtest.4}"
-+              puts $datei "smalltrafomodell.rtest.4 ${smalltrafomodell.rtest.4}"
-+              puts $datei "smalltrafomodell.zpostest.4 ${smalltrafomodell.zpostest.4}"
-+              puts $datei "smalltrafomodell.edgeradiustest.4 ${smalltrafomodell.edgeradiustest.4}"
-+              puts $datei "smalltrafomodell.finetest.4 ${smalltrafomodell.finetest.4}"
-+              puts $datei "smalltrafomodell.conductivetest.4 ${smalltrafomodell.conductivetest.4}"
-+              puts $datei "smalltrafomodell.nperitest ${smalltrafomodell.nperitest}"
-+              puts $datei "smalltrafomodell.filename ${smalltrafomodell.filename}"
-+              puts $datei "smalltrafomodell.murlfguide ${smalltrafomodell.murlfguide}"
-+              puts $datei "smalltrafomodell.murtestwire ${smalltrafomodell.murtestwire}"
-+              puts $datei "smalltrafomodell.murcore ${smalltrafomodell.murcore}"
-+              puts $datei "smalltrafomodell.kappalfguide ${smalltrafomodell.kappalfguide}"
-+              puts $datei "smalltrafomodell.kappatestwire ${smalltrafomodell.kappatestwire}"
-+              puts $datei "smalltrafomodell.kappacore ${smalltrafomodell.kappacore}"
-+          }
-+          
-+          
-+          close $datei
-+      }
-+    }
-+}
-+
-+
-+
-+
-+# the ini file is saved on demand :
-+proc saveinifile { } {
-+    global inifilename
-+    if {[catch { set datei [open $inifilename w] } result ]} {
-+      puts "cannot write file $inifilename"
-+    } {
-+      for { set i [.ngmenu.file.recent index last] } { $i >= 1 } { incr i -1 } {
-+          puts $datei "recentfile \"[.ngmenu.file.recent entrycget $i -label]\""
-+      }
-+      close $datei
-+    }    
-+}
-+
-+
-+proc savemeshinifile { } {
-+    global meshinifilename 
-+    if {[catch { set datei [open $meshinifilename w] } result ]} {
-+      puts "cannot write file $meshinifilename"
-+    } {
-+      for { set i [.ngmenu.file.recentmesh index last] } { $i >= 1 } { incr i -1 } {
-+          puts $datei "recentfile \"[.ngmenu.file.recentmesh entrycget $i -label]\""
-+      }
-+      close $datei
-+    }    
-+}
-+
-+
-+
-+proc loadinifile { } { 
-+    global inifilename
-+    if { [file exists $inifilename] == 1 } {
-+      set datei [open $inifilename r]
-+      while { [gets $datei line] >= 0 } {
-+          if {[lindex $line 0] == "recentfile"} {
-+                  set filename [lindex $line 1]
-+                  if { [file exists $filename] == 1 } {
-+                      AddRecentFile $filename
-+                  }   
-+          }
-+      }
-+      close $datei
-+    }
-+}
-+
-+
-+proc loadmeshinifile { } {
-+    global meshinifilename
-+    if { [file exists $meshinifilename] == 1 } {
-+      set datei [open $meshinifilename r]
-+      while { [gets $datei line] >= 0 } {
-+          if {[lindex $line 0] == "recentfile"} {
-+              set filename [lindex $line 1]
-+              if { [file exists $filename] == 1 } {
-+                  AddRecentMeshFile $filename
-+              }       
-+          }
-+      }
-+      close $datei
-+    }
-+ }
-+
-+
-+
-+
-+
-+set cmdindex {}
-+set hlpindex {}
-+set secindex {}
-diff -Naur netgen-5.3.1_SRC_orig/nglib/Makefile.am netgen-5.3.1_SRC_modif/nglib/Makefile.am
---- netgen-5.3.1_SRC_orig/nglib/Makefile.am    2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/Makefile.am   2019-11-14 16:56:25.398368562 +0300
-@@ -14,6 +14,9 @@
-       $(top_builddir)/libsrc/stlgeom/libstl.la \
-       $(top_builddir)/libsrc/occ/libocc.la \
-       $(top_builddir)/libsrc/meshing/libmesh.la \
-+      $(top_builddir)/libsrc/general/libgen.la \
-+      $(top_builddir)/libsrc/gprim/libgprim.la \
-+      $(top_builddir)/libsrc/linalg/libla.la
-       $(OCCLIBS) $(MPI_LIBS)
- libnglib_la_LDFLAGS = -avoid-version
-diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.cpp netgen-5.3.1_SRC_modif/nglib/nglib.cpp
---- netgen-5.3.1_SRC_orig/nglib/nglib.cpp      2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/nglib.cpp     2019-11-14 16:56:25.386368898 +0300
-@@ -1,1242 +1,1242 @@
--/**************************************************************************/\r
--/* File:   nglib.cpp                                                      */\r
--/* Author: Joachim Schoeberl                                              */\r
--/* Date:   7. May. 2000                                                   */\r
--/**************************************************************************/\r
--\r
--/*\r
--  \r
--  Interface to the netgen meshing kernel\r
--  \r
--*/\r
--#include <mystdlib.h>\r
--#include <myadt.hpp>\r
--\r
--#include <linalg.hpp>\r
--#include <csg.hpp>\r
--#include <stlgeom.hpp>\r
--#include <geometry2d.hpp>\r
--#include <meshing.hpp>\r
--#include <../visualization/soldata.hpp>\r
--\r
--#ifdef OCCGEOMETRY\r
--#include <occgeom.hpp>\r
--#endif\r
--\r
--#include <nginterface.h>\r
--\r
--\r
--namespace netgen {\r
--   extern void MeshFromSpline2D (SplineGeometry2d & geometry,\r
--                                 Mesh *& mesh, \r
--                                 MeshingParameters & mp);\r
--}\r
--\r
--\r
--\r
--#ifdef PARALLEL\r
--#include <mpi.h>\r
--\r
--namespace netgen\r
--{\r
--  // int id = 0, ntasks = 1;\r
--  MPI_Comm mesh_comm;\r
--}\r
--#endif\r
--\r
--\r
--namespace netgen\r
--{\r
--  int id = 0, ntasks = 1;\r
--}\r
--\r
--\r
--\r
--/*\r
--// should not be needed (occ currently requires it)\r
--namespace netgen {\r
--#include "../libsrc/visualization/vispar.hpp"\r
--  VisualizationParameters vispar;\r
--  VisualizationParameters :: VisualizationParameters() { ; }\r
--}\r
--*/\r
--\r
--\r
--namespace nglib {\r
--#include "nglib.h"\r
--}\r
--\r
--using namespace netgen;\r
--\r
--// constants and types:\r
--\r
--namespace nglib\r
--{\r
--   // initialize, deconstruct Netgen library:\r
--   DLL_HEADER void Ng_Init ()\r
--   {\r
--      mycout = &cout;\r
--      myerr = &cerr;\r
--      // netgen::testout->SetOutStream (new ofstream ("test.out"));\r
--      testout = new ofstream ("test.out");\r
--   }\r
--\r
--\r
--\r
--\r
--   // Clean-up functions before ending usage of nglib\r
--   DLL_HEADER void Ng_Exit ()\r
--   {\r
--      ;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Create a new netgen mesh object\r
--   DLL_HEADER Ng_Mesh * Ng_NewMesh ()\r
--   {\r
--      Mesh * mesh = new Mesh;  \r
--      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));\r
--      return (Ng_Mesh*)(void*)mesh;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Delete an existing netgen mesh object\r
--   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)\r
--   {\r
--      if(mesh != NULL)\r
--      {\r
--         // Delete the Mesh structures\r
--         ((Mesh*)mesh)->DeleteMesh();\r
--\r
--         // Now delete the Mesh class itself\r
--         delete (Mesh*)mesh;\r
--\r
--         // Set the Ng_Mesh pointer to NULL\r
--         mesh = NULL;\r
--      }\r
--   }\r
--\r
--\r
--\r
--\r
--   // Save a netgen mesh in the native VOL format \r
--   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)\r
--   {\r
--      ((Mesh*)mesh)->Save(filename);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Load a netgen native VOL mesh from a given file\r
--   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)\r
--   {\r
--      Mesh * mesh = new Mesh;\r
--      mesh->Load(filename);\r
--      return ( (Ng_Mesh*)mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--   // Merge another mesh file into the currently loaded one\r
--   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)\r
--   {\r
--      Ng_Result status = NG_OK;\r
--\r
--      ifstream infile(filename);\r
--      Mesh * m = (Mesh*)mesh;\r
--\r
--      if(!infile.good())\r
--      {\r
--         status = NG_FILE_NOT_FOUND;\r
--      }\r
--\r
--      if(!m)\r
--      {\r
--         status = NG_ERROR;\r
--      }\r
--\r
--      if(status == NG_OK)\r
--      {\r
--         const int num_pts = m->GetNP();\r
--         const int face_offset = m->GetNFD();\r
--\r
--         m->Merge(infile, face_offset);\r
--\r
--         if(m->GetNP() > num_pts)\r
--         {\r
--            status = NG_OK;\r
--         }\r
--         else\r
--         {\r
--            status = NG_ERROR;\r
--         }\r
--      }\r
--\r
--      return status;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Merge another mesh file into the currently loaded one\r
--   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)\r
--   {\r
--      return NG_ERROR;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Manually add a point to an existing mesh object\r
--   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      m->AddPoint (Point3d (x[0], x[1], x[2]));\r
--   }\r
--\r
--\r
--\r
--\r
--   // Manually add a surface element of a given type to an existing mesh object\r
--   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,\r
--                                         int * pi)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      Element2d el (3);\r
--      el.SetIndex (1);\r
--      el.PNum(1) = pi[0];\r
--      el.PNum(2) = pi[1];\r
--      el.PNum(3) = pi[2];\r
--      m->AddSurfaceElement (el);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Manually add a volume element of a given type to an existing mesh object\r
--   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,\r
--                                        int * pi)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      Element el (4);\r
--      el.SetIndex (1);\r
--      el.PNum(1) = pi[0];\r
--      el.PNum(2) = pi[1];\r
--      el.PNum(3) = pi[2];\r
--      el.PNum(4) = pi[3];\r
--      m->AddVolumeElement (el);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Obtain the number of points in the mesh\r
--   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)\r
--   {\r
--      return ((Mesh*)mesh) -> GetNP();\r
--   }\r
--\r
--\r
--\r
--\r
--   // Obtain the number of surface elements in the mesh\r
--   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)\r
--   {\r
--      return ((Mesh*)mesh) -> GetNSE();\r
--   }\r
--\r
--\r
--\r
--\r
--   // Obtain the number of volume elements in the mesh\r
--   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)\r
--   {\r
--      return ((Mesh*)mesh) -> GetNE();\r
--   }\r
--\r
--\r
--\r
--\r
--   //  Return point coordinates of a given point index in the mesh\r
--   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)\r
--   {\r
--      const Point3d & p = ((Mesh*)mesh)->Point(num);\r
--      x[0] = p.X();\r
--      x[1] = p.Y();\r
--      x[2] = p.Z();\r
--   }\r
--\r
--\r
--\r
--\r
--   // Return the surface element at a given index "pi"\r
--   DLL_HEADER Ng_Surface_Element_Type \r
--      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)\r
--   {\r
--      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);\r
--      for (int i = 1; i <= el.GetNP(); i++)\r
--         pi[i-1] = el.PNum(i);\r
--      Ng_Surface_Element_Type et;\r
--      switch (el.GetNP())\r
--      {\r
--      case 3: et = NG_TRIG; break;\r
--      case 4: et = NG_QUAD; break;\r
--      case 6: \r
--         switch (el.GetNV())\r
--         {\r
--         case 3: et = NG_TRIG6; break;\r
--         case 4: et = NG_QUAD6; break;\r
--         default:\r
--            et = NG_TRIG6; break;\r
--         }\r
--         break;\r
--      case 8: et = NG_QUAD8; break;\r
--      default:\r
--         et = NG_TRIG; break; // for the compiler\r
--      }\r
--      return et;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Return the volume element at a given index "pi"\r
--   DLL_HEADER Ng_Volume_Element_Type\r
--      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)\r
--   {\r
--      const Element & el = ((Mesh*)mesh)->VolumeElement(num);\r
--      for (int i = 1; i <= el.GetNP(); i++)\r
--         pi[i-1] = el.PNum(i);\r
--      Ng_Volume_Element_Type et;\r
--      switch (el.GetNP())\r
--      {\r
--      case 4: et = NG_TET; break;\r
--      case 5: et = NG_PYRAMID; break;\r
--      case 6: et = NG_PRISM; break;\r
--      case 10: et = NG_TET10; break;\r
--      default:\r
--         et = NG_TET; break; // for the compiler\r
--      }\r
--      return et;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Set a global limit on the maximum mesh size allowed\r
--   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)\r
--   {\r
--      ((Mesh*)mesh) -> SetGlobalH (h);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Set a local limit on the maximum mesh size allowed around the given point\r
--   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)\r
--   {\r
--      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Set a local limit on the maximum mesh size allowed within a given box region\r
--   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)\r
--   {\r
--      for (double x = pmin[0]; x < pmax[0]; x += h)\r
--         for (double y = pmin[1]; y < pmax[1]; y += h)\r
--            for (double z = pmin[2]; z < pmax[2]; z += h)\r
--               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Generates volume mesh from an existing surface mesh\r
--   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--\r
--      // Philippose - 30/08/2009\r
--      // Do not locally re-define "mparam" here... "mparam" is a global \r
--      // object \r
--      //MeshingParameters mparam;\r
--      mp->Transfer_Parameters();\r
--\r
--      m->CalcLocalH(mparam.grading);\r
--\r
--      MeshVolume (mparam, *m);\r
--      RemoveIllegalElements (*m);\r
--      OptimizeVolume (mparam, *m);\r
--\r
--      return NG_OK;\r
--   }\r
--\r
--\r
--\r
--\r
--   /* ------------------ 2D Meshing Functions ------------------------- */\r
--   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--\r
--      m->AddPoint (Point3d (x[0], x[1], 0));\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--\r
--      Segment seg;\r
--      seg[0] = pi1;\r
--      seg[1] = pi2;\r
--      m->AddSegment (seg);\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      return m->GetNP();\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      return m->GetNSE();\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--      return m->GetNSeg();\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)\r
--   {\r
--      Mesh * m = (Mesh*)mesh;\r
--\r
--      Point<3> & p = m->Point(num);\r
--      x[0] = p(0);\r
--      x[1] = p(1);\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER Ng_Surface_Element_Type\r
--      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)\r
--   {\r
--      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);\r
--      for (int i = 1; i <= el.GetNP(); i++)\r
--         pi[i-1] = el.PNum(i);\r
--\r
--      Ng_Surface_Element_Type et;\r
--      switch (el.GetNP())\r
--      {\r
--      case 3: et = NG_TRIG; break;\r
--      case 4: et = NG_QUAD; break;\r
--      case 6: \r
--         switch (el.GetNV())\r
--         {\r
--         case 3: et = NG_TRIG6; break;\r
--         case 4: et = NG_QUAD6; break;\r
--         default:\r
--            et = NG_TRIG6; break;\r
--         }\r
--         break;\r
--      case 8: et = NG_QUAD8; break;\r
--      default:\r
--         et = NG_TRIG; break; // for the compiler\r
--      }\r
--\r
--      if (matnum)\r
--         *matnum = el.GetIndex();\r
--\r
--      return et;\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)\r
--   {\r
--      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);\r
--      pi[0] = seg[0];\r
--      pi[1] = seg[1];\r
--\r
--      if (matnum)\r
--         *matnum = seg.edgenr;\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)\r
--   {\r
--      SplineGeometry2d * geom = new SplineGeometry2d();\r
--      geom -> Load (filename);\r
--      return (Ng_Geometry_2D *)geom;\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,\r
--                                            Ng_Mesh ** mesh,\r
--                                            Ng_Meshing_Parameters * mp)\r
--   {\r
--      // use global variable mparam\r
--      //  MeshingParameters mparam;  \r
--      mp->Transfer_Parameters();\r
--\r
--      Mesh * m;\r
--      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);\r
--\r
--      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;\r
--\r
--      *mesh = (Ng_Mesh*)m;\r
--      return NG_OK;\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
--      Ng_Mesh * mesh,\r
--      int levels)\r
--   {\r
--      Refinement2d ref(*(SplineGeometry2d*)geom);\r
--      HPRefinement (*(Mesh*)mesh, &ref, levels);\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
--      Ng_Mesh * mesh,\r
--      int levels, double parameter)\r
--   {\r
--      Refinement2d ref(*(SplineGeometry2d*)geom);\r
--      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);\r
--   }\r
--\r
--\r
--\r
--\r
--   Array<STLReadTriangle> readtrias; //only before initstlgeometry\r
--   Array<Point<3> > readedges; //only before init stlgeometry\r
--\r
--   // loads geometry from STL file\r
--   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)\r
--   {\r
--      int i;\r
--      STLGeometry geom;\r
--      STLGeometry* geo;\r
--      ifstream ist(filename);\r
--\r
--      if (binary)\r
--      {\r
--         geo = geom.LoadBinary(ist);\r
--      }\r
--      else\r
--      {\r
--         geo = geom.Load(ist);\r
--      }\r
--\r
--      readtrias.SetSize(0);\r
--      readedges.SetSize(0);\r
--\r
--      Point3d p;\r
--      Vec3d normal;\r
--      double p1[3];\r
--      double p2[3];\r
--      double p3[3];\r
--      double n[3];\r
--\r
--      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();\r
--\r
--      for (i = 1; i <= geo->GetNT(); i++)\r
--      {\r
--         const STLTriangle& t = geo->GetTriangle(i);\r
--         p = geo->GetPoint(t.PNum(1));\r
--         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z(); \r
--         p = geo->GetPoint(t.PNum(2));\r
--         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z(); \r
--         p = geo->GetPoint(t.PNum(3));\r
--         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();\r
--         normal = t.Normal();\r
--         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();\r
--\r
--         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);\r
--      }\r
--\r
--      return geo2;\r
--   }\r
--\r
--\r
--\r
--\r
--   // generate new STL Geometry\r
--   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()\r
--   {\r
--      return (Ng_STL_Geometry*)(void*)new STLGeometry;\r
--   } \r
--\r
--\r
--\r
--\r
--   // after adding triangles (and edges) initialize\r
--   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)\r
--   {\r
--      STLGeometry* geo = (STLGeometry*)geom;\r
--      geo->InitSTLGeometry(readtrias);\r
--      readtrias.SetSize(0);\r
--\r
--      if (readedges.Size() != 0)\r
--      {\r
--         /*\r
--         for (int i = 1; i <= readedges.Size(); i+=2)\r
--         {\r
--         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;\r
--         }\r
--         */\r
--         geo->AddEdges(readedges);\r
--      }\r
--\r
--      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;\r
--      return NG_SURFACE_INPUT_ERROR;\r
--   }\r
--\r
--\r
--\r
--\r
--   // automatically generates edges:\r
--   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,\r
--                                          Ng_Mesh* mesh,\r
--                                          Ng_Meshing_Parameters * mp)\r
--   {\r
--      STLGeometry* stlgeometry = (STLGeometry*)geom;\r
--      Mesh* me = (Mesh*)mesh;\r
--\r
--      // Philippose - 27/07/2009\r
--      // Do not locally re-define "mparam" here... "mparam" is a global \r
--      // object \r
--      //MeshingParameters mparam;\r
--      mp->Transfer_Parameters();\r
--\r
--      me -> SetGlobalH (mparam.maxh);\r
--      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),\r
--                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),\r
--                       0.3);\r
--\r
--      me -> LoadLocalMeshSize (mp->meshsize_filename);\r
--      /*\r
--      if (mp->meshsize_filename)\r
--      {\r
--      ifstream infile (mp->meshsize_filename);\r
--      if (!infile.good()) return NG_FILE_NOT_FOUND;\r
--      me -> LoadLocalMeshSize (infile);\r
--      }\r
--      */\r
--\r
--      STLMeshing (*stlgeometry, *me);\r
--\r
--      stlgeometry->edgesfound = 1;\r
--      stlgeometry->surfacemeshed = 0;\r
--      stlgeometry->surfaceoptimized = 0;\r
--      stlgeometry->volumemeshed = 0;\r
--\r
--      return NG_OK;\r
--   }\r
--\r
--\r
--\r
--\r
--   // generates mesh, empty mesh be already created.\r
--   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,\r
--                                                    Ng_Mesh* mesh,\r
--                                                    Ng_Meshing_Parameters * mp)\r
--   {\r
--      STLGeometry* stlgeometry = (STLGeometry*)geom;\r
--      Mesh* me = (Mesh*)mesh;\r
--\r
--      // Philippose - 27/07/2009\r
--      // Do not locally re-define "mparam" here... "mparam" is a global \r
--      // object\r
--      //MeshingParameters mparam;\r
--      mp->Transfer_Parameters();\r
--\r
--\r
--      /*\r
--      me -> SetGlobalH (mparam.maxh);\r
--      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),\r
--      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),\r
--      0.3);\r
--      */\r
--      /*\r
--      STLMeshing (*stlgeometry, *me);\r
--\r
--      stlgeometry->edgesfound = 1;\r
--      stlgeometry->surfacemeshed = 0;\r
--      stlgeometry->surfaceoptimized = 0;\r
--      stlgeometry->volumemeshed = 0;\r
--      */  \r
--      int retval = STLSurfaceMeshing (*stlgeometry, *me);\r
--      if (retval == MESHING3_OK)\r
--      {\r
--         (*mycout) << "Success !!!!" << endl;\r
--         stlgeometry->surfacemeshed = 1;\r
--         stlgeometry->surfaceoptimized = 0;\r
--         stlgeometry->volumemeshed = 0;\r
--      } \r
--      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)\r
--      {\r
--         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;\r
--      }\r
--      else if (retval == MESHING3_TERMINATE)\r
--      {\r
--         (*mycout) << "Meshing Stopped!" << endl;\r
--      }\r
--      else\r
--      {\r
--         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;\r
--      }\r
--\r
--\r
--      STLSurfaceOptimization (*stlgeometry, *me, mparam);\r
--\r
--      return NG_OK;\r
--   }\r
--\r
--\r
--\r
--\r
--   // fills STL Geometry\r
--   // positive orientation\r
--   // normal vector may be null-pointer\r
--   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, \r
--                                       double * p1, double * p2, double * p3, \r
--                                       double * nv)\r
--   {\r
--      Point<3> apts[3];\r
--      apts[0] = Point<3>(p1[0],p1[1],p1[2]);\r
--      apts[1] = Point<3>(p2[0],p2[1],p2[2]);\r
--      apts[2] = Point<3>(p3[0],p3[1],p3[2]);\r
--\r
--      Vec<3> n;\r
--      if (!nv)\r
--         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);\r
--      else\r
--         n = Vec<3>(nv[0],nv[1],nv[2]);\r
--\r
--      readtrias.Append(STLReadTriangle(apts,n));\r
--   }\r
--\r
--   // add (optional) edges:\r
--   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, \r
--      double * p1, double * p2)\r
--   {\r
--      readedges.Append(Point3d(p1[0],p1[1],p1[2]));\r
--      readedges.Append(Point3d(p2[0],p2[1],p2[2]));\r
--   }\r
--\r
--\r
--\r
--\r
--#ifdef OCCGEOMETRY\r
--   // --------------------- OCC Geometry / Meshing Utility Functions -------------------\r
--   // Create new OCC Geometry Object\r
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()\r
--   {\r
--      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;\r
--   } \r
--\r
--\r
--\r
--\r
--   // Delete the OCC Geometry Object\r
--   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)\r
--   {\r
--      if (geom != NULL)\r
--      {\r
--         delete (OCCGeometry*)geom;\r
--         geom = NULL;\r
--         return NG_OK;\r
--      }\r
--      \r
--      return NG_ERROR;\r
--   }\r
--\r
--\r
--\r
--   \r
--   // Loads geometry from STEP File\r
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)\r
--   {\r
--      // Call the STEP File Load function. Note.. the geometry class \r
--      // is created and instantiated within the load function\r
--      OCCGeometry * occgeo = LoadOCC_STEP(filename);\r
--\r
--      return ((Ng_OCC_Geometry *)occgeo);\r
--   }\r
--\r
--\r
--\r
--   \r
--   // Loads geometry from IGES File\r
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)\r
--   {\r
--      // Call the IGES File Load function. Note.. the geometry class \r
--      // is created and instantiated within the load function\r
--      OCCGeometry * occgeo = LoadOCC_IGES(filename);\r
--\r
--      return ((Ng_OCC_Geometry *)occgeo);\r
--   }\r
--\r
--\r
--\r
--   \r
--   // Loads geometry from BREP File\r
--   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)\r
--   {\r
--      // Call the BREP File Load function. Note.. the geometry class \r
--      // is created and instantiated within the load function\r
--      OCCGeometry * occgeo = LoadOCC_BREP(filename);\r
--\r
--      return ((Ng_OCC_Geometry *)occgeo);\r
--   }\r
--\r
--\r
--\r
--\r
--   // Locally limit the size of the mesh to be generated at various points \r
--   // based on the topology of the geometry\r
--   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,\r
--                                                 Ng_Mesh * mesh,\r
--                                                 Ng_Meshing_Parameters * mp)\r
--   {\r
--      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
--      Mesh * me = (Mesh*)mesh;\r
--\r
--      me->geomtype = Mesh::GEOM_OCC;\r
--\r
--      mp->Transfer_Parameters();\r
--      \r
--      occparam.resthcloseedgeenable = mp->closeedgeenable;\r
--      occparam.resthcloseedgefac = mp->closeedgefact;\r
--\r
--      // Delete the mesh structures in order to start with a clean \r
--      // slate\r
--      me->DeleteMesh();\r
--\r
--      OCCSetLocalMeshSize(*occgeom, *me);\r
--\r
--      return(NG_OK);\r
--   }\r
--\r
--\r
--\r
--   \r
--   // Mesh the edges and add Face descriptors to prepare for surface meshing\r
--   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,\r
--                                                 Ng_Mesh * mesh,\r
--                                                 Ng_Meshing_Parameters * mp)\r
--   {\r
--      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
--      Mesh * me = (Mesh*)mesh;\r
--\r
--      mp->Transfer_Parameters();\r
--\r
--      OCCFindEdges(*occgeom, *me);\r
--\r
--      if((me->GetNP()) && (me->GetNFD()))\r
--      {\r
--         return NG_OK;\r
--      }\r
--      else\r
--      {\r
--         return NG_ERROR;\r
--      }\r
--   }\r
--\r
--\r
--\r
--   \r
--   // Mesh the edges and add Face descriptors to prepare for surface meshing\r
--   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,\r
--                                                    Ng_Mesh * mesh,\r
--                                                    Ng_Meshing_Parameters * mp)\r
--   {\r
--      int numpoints = 0;\r
--\r
--      OCCGeometry * occgeom = (OCCGeometry*)geom;\r
--      Mesh * me = (Mesh*)mesh;\r
--\r
--      // Set the internal meshing parameters structure from the nglib meshing \r
--      // parameters structure\r
--      mp->Transfer_Parameters();\r
--\r
--\r
--      // Only go into surface meshing if the face descriptors have already been added\r
--      if(!me->GetNFD())\r
--         return NG_ERROR;\r
--\r
--      numpoints = me->GetNP();\r
--\r
--      // Initially set up only for surface meshing without any optimisation\r
--      int perfstepsend = MESHCONST_MESHSURFACE;\r
--\r
--      // Check and if required, enable surface mesh optimisation step\r
--      if(mp->optsurfmeshenable)\r
--      {\r
--         perfstepsend = MESHCONST_OPTSURFACE;\r
--      }\r
--\r
--      OCCMeshSurface(*occgeom, *me, perfstepsend);\r
--\r
--      me->CalcSurfacesOfNode();\r
--      \r
--      if(me->GetNP() <= numpoints)\r
--         return NG_ERROR;\r
--\r
--      if(me->GetNSE() <= 0)\r
--         return NG_ERROR;\r
--\r
--      return NG_OK;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Extract the face map from the OCC geometry\r
--   // The face map basically gives an index to each face in the geometry, \r
--   // which can be used to access a specific face\r
--   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, \r
--                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)\r
--   {\r
--      OCCGeometry* occgeom = (OCCGeometry*)geom;\r
--      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;\r
--\r
--      // Copy the face map from the geometry to the given variable\r
--      occfmap->Assign(occgeom->fmap);\r
--\r
--      if(occfmap->Extent())\r
--      {\r
--         return NG_OK;\r
--      }\r
--      else\r
--      {\r
--         return NG_ERROR;\r
--      }\r
--   }\r
--\r
--   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------\r
--#endif\r
--\r
--\r
--\r
--\r
--   // ------------------ Begin - Meshing Parameters related functions ------------------\r
--   // Constructor for the local nglib meshing parameters class\r
--   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()\r
--   {\r
--      uselocalh = 1;\r
--\r
--      maxh = 1000;\r
--      minh = 0.0;\r
--\r
--      fineness = 0.5;\r
--      grading = 0.3;\r
--\r
--      elementsperedge = 2.0;\r
--      elementspercurve = 2.0;\r
--\r
--      closeedgeenable = 0;\r
--      closeedgefact = 2.0;\r
--\r
--        minedgelenenable = 0;\r
--        minedgelen = 1e-4;\r
--\r
--      second_order = 0;\r
--      quad_dominated = 0;\r
--\r
--      meshsize_filename = 0;\r
--\r
--      optsurfmeshenable = 1;\r
--      optvolmeshenable = 1;\r
--\r
--      optsteps_2d = 3;\r
--      optsteps_3d = 3;\r
--\r
--      invert_tets = 0;\r
--      invert_trigs = 0;\r
--\r
--      check_overlap = 1;\r
--      check_overlapping_boundary = 1;\r
--   }\r
--\r
--\r
--\r
--\r
--   // Reset the local meshing parameters to the default values\r
--   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()\r
--   {\r
--      uselocalh = 1;\r
--\r
--      maxh = 1000;\r
--      minh = 0;\r
--\r
--      fineness = 0.5;\r
--      grading = 0.3;\r
--\r
--      elementsperedge = 2.0;\r
--      elementspercurve = 2.0;\r
--\r
--      closeedgeenable = 0;\r
--      closeedgefact = 2.0;\r
--\r
--        minedgelenenable = 0;\r
--        minedgelen = 1e-4;\r
--\r
--      second_order = 0;\r
--      quad_dominated = 0;\r
--\r
--      meshsize_filename = 0;\r
--\r
--      optsurfmeshenable = 1;\r
--      optvolmeshenable = 1;\r
--\r
--      optsteps_2d = 3;\r
--      optsteps_3d = 3;\r
--\r
--      invert_tets = 0;\r
--      invert_trigs = 0;\r
--\r
--      check_overlap = 1;\r
--      check_overlapping_boundary = 1;\r
--   }\r
--\r
--\r
--\r
--\r
--   // \r
--   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()\r
--   {\r
--      mparam.uselocalh = uselocalh;\r
--      \r
--      mparam.maxh = maxh;\r
--      mparam.minh = minh;\r
--\r
--      mparam.grading = grading;\r
--      mparam.curvaturesafety = elementspercurve;\r
--      mparam.segmentsperedge = elementsperedge;\r
--\r
--      mparam.secondorder = second_order;\r
--      mparam.quad = quad_dominated;\r
--\r
--      mparam.meshsizefilename = meshsize_filename;\r
--\r
--      mparam.optsteps2d = optsteps_2d;\r
--      mparam.optsteps3d = optsteps_3d;\r
--\r
--      mparam.inverttets = invert_tets;\r
--      mparam.inverttrigs = invert_trigs;\r
--\r
--      mparam.checkoverlap = check_overlap;\r
--      mparam.checkoverlappingboundary = check_overlapping_boundary;\r
--   }\r
--   // ------------------ End - Meshing Parameters related functions --------------------\r
--\r
--\r
--\r
--\r
--   // ------------------ Begin - Second Order Mesh generation functions ----------------\r
--   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)\r
--   {\r
--      Refinement ref;\r
--      ref.MakeSecondOrder(*(Mesh*) mesh);\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,\r
--                                        Ng_Mesh * mesh)\r
--   {\r
--      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,\r
--                                         Ng_Mesh * mesh)\r
--   {\r
--      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,\r
--                                         Ng_Mesh * mesh)\r
--   {\r
--      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
--   }\r
--\r
--\r
--\r
--\r
--#ifdef OCCGEOMETRY\r
--   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,\r
--                  Ng_Mesh * mesh)\r
--   {\r
--      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);\r
--   }\r
--#endif\r
--   // ------------------ End - Second Order Mesh generation functions ------------------\r
--\r
--\r
--\r
--\r
--   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------\r
--   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)\r
--   {\r
--      Refinement ref;\r
--      ref.Refine ( * (Mesh*) mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,\r
--      Ng_Mesh * mesh)\r
--   {\r
--      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,\r
--      Ng_Mesh * mesh)\r
--   {\r
--      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,\r
--      Ng_Mesh * mesh)\r
--   {\r
--      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
--   }\r
--\r
--\r
--\r
--\r
--#ifdef OCCGEOMETRY\r
--   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,\r
--      Ng_Mesh * mesh)\r
--   {\r
--      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );\r
--   }\r
--#endif\r
--   // ------------------ End - Uniform Mesh Refinement functions -----------------------\r
--} // End of namespace nglib\r
--\r
--\r
--\r
--\r
--// compatibility functions:\r
--namespace netgen \r
--{\r
--   char geomfilename[255];\r
--\r
--   DLL_HEADER void MyError (const char * ch)\r
--   {\r
--      cerr << ch;\r
--   }\r
--\r
--\r
--\r
--\r
--   //Destination for messages, errors, ...\r
--   DLL_HEADER void Ng_PrintDest(const char * s)\r
--   {\r
--#ifdef PARALLEL\r
--     int id = 0;\r
--     MPI_Comm_rank(MPI_COMM_WORLD, &id);\r
--     if (id != 0) return;\r
--#endif\r
--     (*mycout) << s << flush;\r
--   }\r
--\r
--\r
--\r
--\r
--   DLL_HEADER double GetTime ()\r
--   {\r
--      return 0;\r
--   }\r
--\r
--\r
--\r
--\r
--   void ResetTime ()\r
--   {\r
--      ;\r
--   }\r
--\r
--\r
--\r
--\r
--   void MyBeep (int i)\r
--   {\r
--      ;\r
--   }\r
--\r
--\r
--\r
--\r
--   void Render()\r
--   {\r
--      ; \r
--   }\r
--} // End of namespace netgen\r
--\r
--\r
--\r
--\r
--void Ng_Redraw () { ; }\r
--void Ng_ClearSolutionData () { ; }\r
--void Ng_SetSolutionData (Ng_SolutionData * soldata) \r
--{ \r
--  delete soldata->solclass;\r
--}\r
--void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }\r
--\r
--\r
-+/**************************************************************************/
-+/* File:   nglib.cpp                                                      */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   7. May. 2000                                                   */
-+/**************************************************************************/
-+
-+/*
-+  
-+  Interface to the netgen meshing kernel
-+  
-+*/
-+#include <mystdlib.h>
-+#include <myadt.hpp>
-+
-+#include <linalg.hpp>
-+#include <csg.hpp>
-+#include <stlgeom.hpp>
-+#include <geometry2d.hpp>
-+#include <meshing.hpp>
-+#include <../visualization/soldata.hpp>
-+
-+#ifdef OCCGEOMETRY
-+#include <occgeom.hpp>
-+#endif
-+
-+#include <nginterface.h>
-+
-+
-+namespace netgen {
-+   extern void MeshFromSpline2D (SplineGeometry2d & geometry,
-+                                 Mesh *& mesh, 
-+                                 MeshingParameters & mp);
-+}
-+
-+
-+
-+#ifdef PARALLEL
-+#include <mpi.h>
-+
-+namespace netgen
-+{
-+  // int id = 0, ntasks = 1;
-+  MPI_Comm mesh_comm;
-+}
-+#endif
-+
-+
-+namespace netgen
-+{
-+  int id = 0, ntasks = 1;
-+}
-+
-+
-+
-+/*
-+// should not be needed (occ currently requires it)
-+namespace netgen {
-+#include "../libsrc/visualization/vispar.hpp"
-+  VisualizationParameters vispar;
-+  VisualizationParameters :: VisualizationParameters() { ; }
-+}
-+*/
-+
-+
-+namespace nglib {
-+#include "nglib.h"
-+}
-+
-+using namespace netgen;
-+
-+// constants and types:
-+
-+namespace nglib
-+{
-+   // initialize, deconstruct Netgen library:
-+   DLL_HEADER void Ng_Init ()
-+   {
-+      mycout = &cout;
-+      myerr = &cerr;
-+      // netgen::testout->SetOutStream (new ofstream ("test.out"));
-+      testout = new ofstream ("test.out");
-+   }
-+
-+
-+
-+
-+   // Clean-up functions before ending usage of nglib
-+   DLL_HEADER void Ng_Exit ()
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   // Create a new netgen mesh object
-+   DLL_HEADER Ng_Mesh * Ng_NewMesh ()
-+   {
-+      Mesh * mesh = new Mesh;  
-+      mesh->AddFaceDescriptor (FaceDescriptor (1, 1, 0, 1));
-+      return (Ng_Mesh*)(void*)mesh;
-+   }
-+
-+
-+
-+
-+   // Delete an existing netgen mesh object
-+   DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh)
-+   {
-+      if(mesh != NULL)
-+      {
-+         // Delete the Mesh structures
-+         ((Mesh*)mesh)->DeleteMesh();
-+
-+         // Now delete the Mesh class itself
-+         delete (Mesh*)mesh;
-+
-+         // Set the Ng_Mesh pointer to NULL
-+         mesh = NULL;
-+      }
-+   }
-+
-+
-+
-+
-+   // Save a netgen mesh in the native VOL format 
-+   DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename)
-+   {
-+      ((Mesh*)mesh)->Save(filename);
-+   }
-+
-+
-+
-+
-+   // Load a netgen native VOL mesh from a given file
-+   DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename)
-+   {
-+      Mesh * mesh = new Mesh;
-+      mesh->Load(filename);
-+      return ( (Ng_Mesh*)mesh );
-+   }
-+
-+
-+
-+
-+   // Merge another mesh file into the currently loaded one
-+   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh, const char* filename)
-+   {
-+      Ng_Result status = NG_OK;
-+
-+      ifstream infile(filename);
-+      Mesh * m = (Mesh*)mesh;
-+
-+      if(!infile.good())
-+      {
-+         status = NG_FILE_NOT_FOUND;
-+      }
-+
-+      if(!m)
-+      {
-+         status = NG_ERROR;
-+      }
-+
-+      if(status == NG_OK)
-+      {
-+         const int num_pts = m->GetNP();
-+         const int face_offset = m->GetNFD();
-+
-+         m->Merge(infile, face_offset);
-+
-+         if(m->GetNP() > num_pts)
-+         {
-+            status = NG_OK;
-+         }
-+         else
-+         {
-+            status = NG_ERROR;
-+         }
-+      }
-+
-+      return status;
-+   }
-+
-+
-+
-+
-+   // Merge another mesh file into the currently loaded one
-+   DLL_HEADER Ng_Result Ng_MergeMesh( Ng_Mesh* mesh1, Ng_Mesh* mesh2)
-+   {
-+      return NG_ERROR;
-+   }
-+
-+
-+
-+
-+   // Manually add a point to an existing mesh object
-+   DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      m->AddPoint (Point3d (x[0], x[1], x[2]));
-+   }
-+
-+
-+
-+
-+   // Manually add a surface element of a given type to an existing mesh object
-+   DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et,
-+                                         int * pi)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      Element2d el (3);
-+      el.SetIndex (1);
-+      el.PNum(1) = pi[0];
-+      el.PNum(2) = pi[1];
-+      el.PNum(3) = pi[2];
-+      m->AddSurfaceElement (el);
-+   }
-+
-+
-+
-+
-+   // Manually add a volume element of a given type to an existing mesh object
-+   DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et,
-+                                        int * pi)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      Element el (4);
-+      el.SetIndex (1);
-+      el.PNum(1) = pi[0];
-+      el.PNum(2) = pi[1];
-+      el.PNum(3) = pi[2];
-+      el.PNum(4) = pi[3];
-+      m->AddVolumeElement (el);
-+   }
-+
-+
-+
-+
-+   // Obtain the number of points in the mesh
-+   DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNP();
-+   }
-+
-+
-+
-+
-+   // Obtain the number of surface elements in the mesh
-+   DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNSE();
-+   }
-+
-+
-+
-+
-+   // Obtain the number of volume elements in the mesh
-+   DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh)
-+   {
-+      return ((Mesh*)mesh) -> GetNE();
-+   }
-+
-+
-+
-+
-+   //  Return point coordinates of a given point index in the mesh
-+   DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x)
-+   {
-+      const Point3d & p = ((Mesh*)mesh)->Point(num);
-+      x[0] = p.X();
-+      x[1] = p.Y();
-+      x[2] = p.Z();
-+   }
-+
-+
-+
-+
-+   // Return the surface element at a given index "pi"
-+   DLL_HEADER Ng_Surface_Element_Type 
-+      Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi)
-+   {
-+      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+      Ng_Surface_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 3: et = NG_TRIG; break;
-+      case 4: et = NG_QUAD; break;
-+      case 6: 
-+         switch (el.GetNV())
-+         {
-+         case 3: et = NG_TRIG6; break;
-+         case 4: et = NG_QUAD6; break;
-+         default:
-+            et = NG_TRIG6; break;
-+         }
-+         break;
-+      case 8: et = NG_QUAD8; break;
-+      default:
-+         et = NG_TRIG; break; // for the compiler
-+      }
-+      return et;
-+   }
-+
-+
-+
-+
-+   // Return the volume element at a given index "pi"
-+   DLL_HEADER Ng_Volume_Element_Type
-+      Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi)
-+   {
-+      const Element & el = ((Mesh*)mesh)->VolumeElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+      Ng_Volume_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 4: et = NG_TET; break;
-+      case 5: et = NG_PYRAMID; break;
-+      case 6: et = NG_PRISM; break;
-+      case 10: et = NG_TET10; break;
-+      default:
-+         et = NG_TET; break; // for the compiler
-+      }
-+      return et;
-+   }
-+
-+
-+
-+
-+   // Set a global limit on the maximum mesh size allowed
-+   DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h)
-+   {
-+      ((Mesh*)mesh) -> SetGlobalH (h);
-+   }
-+
-+
-+
-+
-+   // Set a local limit on the maximum mesh size allowed around the given point
-+   DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h)
-+   {
-+      ((Mesh*)mesh) -> RestrictLocalH (Point3d (p[0], p[1], p[2]), h);
-+   }
-+
-+
-+
-+
-+   // Set a local limit on the maximum mesh size allowed within a given box region
-+   DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h)
-+   {
-+      for (double x = pmin[0]; x < pmax[0]; x += h)
-+         for (double y = pmin[1]; y < pmax[1]; y += h)
-+            for (double z = pmin[2]; z < pmax[2]; z += h)
-+               ((Mesh*)mesh) -> RestrictLocalH (Point3d (x, y, z), h);
-+   }
-+
-+
-+
-+
-+   // Generates volume mesh from an existing surface mesh
-+   DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      // Philippose - 30/08/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global 
-+      // object 
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+      m->CalcLocalH(mparam.grading);
-+
-+      MeshVolume (mparam, *m);
-+      RemoveIllegalElements (*m);
-+      OptimizeVolume (mparam, *m);
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   /* ------------------ 2D Meshing Functions ------------------------- */
-+   DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      m->AddPoint (Point3d (x[0], x[1], 0));
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      Segment seg;
-+      seg[0] = pi1;
-+      seg[1] = pi2;
-+      m->AddSegment (seg);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNP();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNSE();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+      return m->GetNSeg();
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x)
-+   {
-+      Mesh * m = (Mesh*)mesh;
-+
-+      Point<3> & p = m->Point(num);
-+      x[0] = p(0);
-+      x[1] = p(1);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Surface_Element_Type
-+      Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
-+   {
-+      const Element2d & el = ((Mesh*)mesh)->SurfaceElement(num);
-+      for (int i = 1; i <= el.GetNP(); i++)
-+         pi[i-1] = el.PNum(i);
-+
-+      Ng_Surface_Element_Type et;
-+      switch (el.GetNP())
-+      {
-+      case 3: et = NG_TRIG; break;
-+      case 4: et = NG_QUAD; break;
-+      case 6: 
-+         switch (el.GetNV())
-+         {
-+         case 3: et = NG_TRIG6; break;
-+         case 4: et = NG_QUAD6; break;
-+         default:
-+            et = NG_TRIG6; break;
-+         }
-+         break;
-+      case 8: et = NG_QUAD8; break;
-+      default:
-+         et = NG_TRIG; break; // for the compiler
-+      }
-+
-+      if (matnum)
-+         *matnum = el.GetIndex();
-+
-+      return et;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum)
-+   {
-+      const Segment & seg = ((Mesh*)mesh)->LineSegment(num);
-+      pi[0] = seg[0];
-+      pi[1] = seg[1];
-+
-+      if (matnum)
-+         *matnum = seg.edgenr;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename)
-+   {
-+      SplineGeometry2d * geom = new SplineGeometry2d();
-+      geom -> Load (filename);
-+      return (Ng_Geometry_2D *)geom;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
-+                                            Ng_Mesh ** mesh,
-+                                            Ng_Meshing_Parameters * mp)
-+   {
-+      // use global variable mparam
-+      //  MeshingParameters mparam;  
-+      mp->Transfer_Parameters();
-+
-+      Mesh * m;
-+      MeshFromSpline2D (*(SplineGeometry2d*)geom, m, mparam);
-+
-+      cout << m->GetNSE() << " elements, " << m->GetNP() << " points" << endl;
-+
-+      *mesh = (Ng_Mesh*)m;
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh,
-+      int levels)
-+   {
-+      Refinement2d ref(*(SplineGeometry2d*)geom);
-+      HPRefinement (*(Mesh*)mesh, &ref, levels);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh,
-+      int levels, double parameter)
-+   {
-+      Refinement2d ref(*(SplineGeometry2d*)geom);
-+      HPRefinement (*(Mesh*)mesh, &ref, levels, parameter);
-+   }
-+
-+
-+
-+
-+   Array<STLReadTriangle> readtrias; //only before initstlgeometry
-+   Array<Point<3> > readedges; //only before init stlgeometry
-+
-+   // loads geometry from STL file
-+   DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)
-+   {
-+      int i;
-+      STLGeometry geom;
-+      STLGeometry* geo;
-+      ifstream ist(filename);
-+
-+      if (binary)
-+      {
-+         geo = geom.LoadBinary(ist);
-+      }
-+      else
-+      {
-+         geo = geom.Load(ist);
-+      }
-+
-+      readtrias.SetSize(0);
-+      readedges.SetSize(0);
-+
-+      Point3d p;
-+      Vec3d normal;
-+      double p1[3];
-+      double p2[3];
-+      double p3[3];
-+      double n[3];
-+
-+      Ng_STL_Geometry * geo2 = Ng_STL_NewGeometry();
-+
-+      for (i = 1; i <= geo->GetNT(); i++)
-+      {
-+         const STLTriangle& t = geo->GetTriangle(i);
-+         p = geo->GetPoint(t.PNum(1));
-+         p1[0] = p.X(); p1[1] = p.Y(); p1[2] = p.Z(); 
-+         p = geo->GetPoint(t.PNum(2));
-+         p2[0] = p.X(); p2[1] = p.Y(); p2[2] = p.Z(); 
-+         p = geo->GetPoint(t.PNum(3));
-+         p3[0] = p.X(); p3[1] = p.Y(); p3[2] = p.Z();
-+         normal = t.Normal();
-+         n[0] = normal.X(); n[1] = normal.Y(); n[2] = normal.Z();
-+
-+         Ng_STL_AddTriangle(geo2, p1, p2, p3, n);
-+      }
-+
-+      return geo2;
-+   }
-+
-+
-+
-+
-+   // generate new STL Geometry
-+   DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ()
-+   {
-+      return (Ng_STL_Geometry*)(void*)new STLGeometry;
-+   } 
-+
-+
-+
-+
-+   // after adding triangles (and edges) initialize
-+   DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom)
-+   {
-+      STLGeometry* geo = (STLGeometry*)geom;
-+      geo->InitSTLGeometry(readtrias);
-+      readtrias.SetSize(0);
-+
-+      if (readedges.Size() != 0)
-+      {
-+         /*
-+         for (int i = 1; i <= readedges.Size(); i+=2)
-+         {
-+         cout << "e(" << readedges.Get(i) << "," << readedges.Get(i+1) << ")" << endl;
-+         }
-+         */
-+         geo->AddEdges(readedges);
-+      }
-+
-+      if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK;
-+      return NG_SURFACE_INPUT_ERROR;
-+   }
-+
-+
-+
-+
-+   // automatically generates edges:
-+   DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
-+                                          Ng_Mesh* mesh,
-+                                          Ng_Meshing_Parameters * mp)
-+   {
-+      STLGeometry* stlgeometry = (STLGeometry*)geom;
-+      Mesh* me = (Mesh*)mesh;
-+
-+      // Philippose - 27/07/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global 
-+      // object 
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+      me -> SetGlobalH (mparam.maxh);
-+      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
-+                       stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
-+                       0.3);
-+
-+      me -> LoadLocalMeshSize (mp->meshsize_filename);
-+      /*
-+      if (mp->meshsize_filename)
-+      {
-+      ifstream infile (mp->meshsize_filename);
-+      if (!infile.good()) return NG_FILE_NOT_FOUND;
-+      me -> LoadLocalMeshSize (infile);
-+      }
-+      */
-+
-+      STLMeshing (*stlgeometry, *me);
-+
-+      stlgeometry->edgesfound = 1;
-+      stlgeometry->surfacemeshed = 0;
-+      stlgeometry->surfaceoptimized = 0;
-+      stlgeometry->volumemeshed = 0;
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // generates mesh, empty mesh be already created.
-+   DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
-+                                                    Ng_Mesh* mesh,
-+                                                    Ng_Meshing_Parameters * mp)
-+   {
-+      STLGeometry* stlgeometry = (STLGeometry*)geom;
-+      Mesh* me = (Mesh*)mesh;
-+
-+      // Philippose - 27/07/2009
-+      // Do not locally re-define "mparam" here... "mparam" is a global 
-+      // object
-+      //MeshingParameters mparam;
-+      mp->Transfer_Parameters();
-+
-+
-+      /*
-+      me -> SetGlobalH (mparam.maxh);
-+      me -> SetLocalH (stlgeometry->GetBoundingBox().PMin() - Vec3d(10, 10, 10),
-+      stlgeometry->GetBoundingBox().PMax() + Vec3d(10, 10, 10),
-+      0.3);
-+      */
-+      /*
-+      STLMeshing (*stlgeometry, *me);
-+
-+      stlgeometry->edgesfound = 1;
-+      stlgeometry->surfacemeshed = 0;
-+      stlgeometry->surfaceoptimized = 0;
-+      stlgeometry->volumemeshed = 0;
-+      */  
-+      int retval = STLSurfaceMeshing (*stlgeometry, *me);
-+      if (retval == MESHING3_OK)
-+      {
-+         (*mycout) << "Success !!!!" << endl;
-+         stlgeometry->surfacemeshed = 1;
-+         stlgeometry->surfaceoptimized = 0;
-+         stlgeometry->volumemeshed = 0;
-+      } 
-+      else if (retval == MESHING3_OUTERSTEPSEXCEEDED)
-+      {
-+         (*mycout) << "ERROR: Give up because of too many trials. Meshing aborted!" << endl;
-+      }
-+      else if (retval == MESHING3_TERMINATE)
-+      {
-+         (*mycout) << "Meshing Stopped!" << endl;
-+      }
-+      else
-+      {
-+         (*mycout) << "ERROR: Surface meshing not successful. Meshing aborted!" << endl;
-+      }
-+
-+
-+      STLSurfaceOptimization (*stlgeometry, *me, mparam);
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // fills STL Geometry
-+   // positive orientation
-+   // normal vector may be null-pointer
-+   DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
-+                                       double * p1, double * p2, double * p3, 
-+                                       double * nv)
-+   {
-+      Point<3> apts[3];
-+      apts[0] = Point<3>(p1[0],p1[1],p1[2]);
-+      apts[1] = Point<3>(p2[0],p2[1],p2[2]);
-+      apts[2] = Point<3>(p3[0],p3[1],p3[2]);
-+
-+      Vec<3> n;
-+      if (!nv)
-+         n = Cross (apts[0]-apts[1], apts[0]-apts[2]);
-+      else
-+         n = Vec<3>(nv[0],nv[1],nv[2]);
-+
-+      readtrias.Append(STLReadTriangle(apts,n));
-+   }
-+
-+   // add (optional) edges:
-+   DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
-+      double * p1, double * p2)
-+   {
-+      readedges.Append(Point3d(p1[0],p1[1],p1[2]));
-+      readedges.Append(Point3d(p2[0],p2[1],p2[2]));
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   // --------------------- OCC Geometry / Meshing Utility Functions -------------------
-+   // Create new OCC Geometry Object
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ()
-+   {
-+      return (Ng_OCC_Geometry*)(void*)new OCCGeometry;
-+   } 
-+
-+
-+
-+
-+   // Delete the OCC Geometry Object
-+   DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry(Ng_OCC_Geometry * geom)
-+   {
-+      if (geom != NULL)
-+      {
-+         delete (OCCGeometry*)geom;
-+         geom = NULL;
-+         return NG_OK;
-+      }
-+      
-+      return NG_ERROR;
-+   }
-+
-+
-+
-+   
-+   // Loads geometry from STEP File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename)
-+   {
-+      // Call the STEP File Load function. Note.. the geometry class 
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_STEP(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+   
-+   // Loads geometry from IGES File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename)
-+   {
-+      // Call the IGES File Load function. Note.. the geometry class 
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_IGES(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+   
-+   // Loads geometry from BREP File
-+   DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename)
-+   {
-+      // Call the BREP File Load function. Note.. the geometry class 
-+      // is created and instantiated within the load function
-+      OCCGeometry * occgeo = LoadOCC_BREP(filename);
-+
-+      return ((Ng_OCC_Geometry *)occgeo);
-+   }
-+
-+
-+
-+
-+   // Locally limit the size of the mesh to be generated at various points 
-+   // based on the topology of the geometry
-+   DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp)
-+   {
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      me->geomtype = Mesh::GEOM_OCC;
-+
-+      mp->Transfer_Parameters();
-+      
-+      occparam.resthcloseedgeenable = mp->closeedgeenable;
-+      occparam.resthcloseedgefac = mp->closeedgefact;
-+
-+      // Delete the mesh structures in order to start with a clean 
-+      // slate
-+      me->DeleteMesh();
-+
-+      OCCSetLocalMeshSize(*occgeom, *me);
-+
-+      return(NG_OK);
-+   }
-+
-+
-+
-+   
-+   // Mesh the edges and add Face descriptors to prepare for surface meshing
-+   DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp)
-+   {
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      mp->Transfer_Parameters();
-+
-+      OCCFindEdges(*occgeom, *me);
-+
-+      if((me->GetNP()) && (me->GetNFD()))
-+      {
-+         return NG_OK;
-+      }
-+      else
-+      {
-+         return NG_ERROR;
-+      }
-+   }
-+
-+
-+
-+   
-+   // Mesh the edges and add Face descriptors to prepare for surface meshing
-+   DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
-+                                                    Ng_Mesh * mesh,
-+                                                    Ng_Meshing_Parameters * mp)
-+   {
-+      int numpoints = 0;
-+
-+      OCCGeometry * occgeom = (OCCGeometry*)geom;
-+      Mesh * me = (Mesh*)mesh;
-+
-+      // Set the internal meshing parameters structure from the nglib meshing 
-+      // parameters structure
-+      mp->Transfer_Parameters();
-+
-+
-+      // Only go into surface meshing if the face descriptors have already been added
-+      if(!me->GetNFD())
-+         return NG_ERROR;
-+
-+      numpoints = me->GetNP();
-+
-+      // Initially set up only for surface meshing without any optimisation
-+      int perfstepsend = MESHCONST_MESHSURFACE;
-+
-+      // Check and if required, enable surface mesh optimisation step
-+      if(mp->optsurfmeshenable)
-+      {
-+         perfstepsend = MESHCONST_OPTSURFACE;
-+      }
-+
-+      OCCMeshSurface(*occgeom, *me, perfstepsend);
-+
-+      me->CalcSurfacesOfNode();
-+      
-+      if(me->GetNP() <= numpoints)
-+         return NG_ERROR;
-+
-+      if(me->GetNSE() <= 0)
-+         return NG_ERROR;
-+
-+      return NG_OK;
-+   }
-+
-+
-+
-+
-+   // Extract the face map from the OCC geometry
-+   // The face map basically gives an index to each face in the geometry, 
-+   // which can be used to access a specific face
-+   DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
-+                                       Ng_OCC_TopTools_IndexedMapOfShape * FMap)
-+   {
-+      OCCGeometry* occgeom = (OCCGeometry*)geom;
-+      TopTools_IndexedMapOfShape *occfmap = (TopTools_IndexedMapOfShape *)FMap;
-+
-+      // Copy the face map from the geometry to the given variable
-+      occfmap->Assign(occgeom->fmap);
-+
-+      if(occfmap->Extent())
-+      {
-+         return NG_OK;
-+      }
-+      else
-+      {
-+         return NG_ERROR;
-+      }
-+   }
-+
-+   // ------------------ End - OCC Geometry / Meshing Utility Functions ----------------
-+#endif
-+
-+
-+
-+
-+   // ------------------ Begin - Meshing Parameters related functions ------------------
-+   // Constructor for the local nglib meshing parameters class
-+   DLL_HEADER Ng_Meshing_Parameters :: Ng_Meshing_Parameters()
-+   {
-+      uselocalh = 1;
-+
-+      maxh = 1000;
-+      minh = 0.0;
-+
-+      fineness = 0.5;
-+      grading = 0.3;
-+
-+      elementsperedge = 2.0;
-+      elementspercurve = 2.0;
-+
-+      closeedgeenable = 0;
-+      closeedgefact = 2.0;
-+
-+        minedgelenenable = 0;
-+        minedgelen = 1e-4;
-+
-+      second_order = 0;
-+      quad_dominated = 0;
-+
-+      meshsize_filename = 0;
-+
-+      optsurfmeshenable = 1;
-+      optvolmeshenable = 1;
-+
-+      optsteps_2d = 3;
-+      optsteps_3d = 3;
-+
-+      invert_tets = 0;
-+      invert_trigs = 0;
-+
-+      check_overlap = 1;
-+      check_overlapping_boundary = 1;
-+   }
-+
-+
-+
-+
-+   // Reset the local meshing parameters to the default values
-+   DLL_HEADER void Ng_Meshing_Parameters :: Reset_Parameters()
-+   {
-+      uselocalh = 1;
-+
-+      maxh = 1000;
-+      minh = 0;
-+
-+      fineness = 0.5;
-+      grading = 0.3;
-+
-+      elementsperedge = 2.0;
-+      elementspercurve = 2.0;
-+
-+      closeedgeenable = 0;
-+      closeedgefact = 2.0;
-+
-+        minedgelenenable = 0;
-+        minedgelen = 1e-4;
-+
-+      second_order = 0;
-+      quad_dominated = 0;
-+
-+      meshsize_filename = 0;
-+
-+      optsurfmeshenable = 1;
-+      optvolmeshenable = 1;
-+
-+      optsteps_2d = 3;
-+      optsteps_3d = 3;
-+
-+      invert_tets = 0;
-+      invert_trigs = 0;
-+
-+      check_overlap = 1;
-+      check_overlapping_boundary = 1;
-+   }
-+
-+
-+
-+
-+   // 
-+   DLL_HEADER void Ng_Meshing_Parameters :: Transfer_Parameters()
-+   {
-+      mparam.uselocalh = uselocalh;
-+      
-+      mparam.maxh = maxh;
-+      mparam.minh = minh;
-+
-+      mparam.grading = grading;
-+      mparam.curvaturesafety = elementspercurve;
-+      mparam.segmentsperedge = elementsperedge;
-+
-+      mparam.secondorder = second_order;
-+      mparam.quad = quad_dominated;
-+
-+      mparam.meshsizefilename = meshsize_filename;
-+
-+      mparam.optsteps2d = optsteps_2d;
-+      mparam.optsteps3d = optsteps_3d;
-+
-+      mparam.inverttets = invert_tets;
-+      mparam.inverttrigs = invert_trigs;
-+
-+      mparam.checkoverlap = check_overlap;
-+      mparam.checkoverlappingboundary = check_overlapping_boundary;
-+   }
-+   // ------------------ End - Meshing Parameters related functions --------------------
-+
-+
-+
-+
-+   // ------------------ Begin - Second Order Mesh generation functions ----------------
-+   DLL_HEADER void Ng_Generate_SecondOrder(Ng_Mesh * mesh)
-+   {
-+      Refinement ref;
-+      ref.MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_2D_Generate_SecondOrder(Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh)
-+   {
-+      ( (SplineGeometry2d*)geom ) -> GetRefinement().MakeSecondOrder( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_STL_Generate_SecondOrder(Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh)
-+   {
-+      ((STLGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh)
-+   {
-+      ((CSGeometry*)geom)->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
-+                  Ng_Mesh * mesh)
-+   {
-+      ((OCCGeometry*)geom )->GetRefinement().MakeSecondOrder(*(Mesh*) mesh);
-+   }
-+#endif
-+   // ------------------ End - Second Order Mesh generation functions ------------------
-+
-+
-+
-+
-+   // ------------------ Begin - Uniform Mesh Refinement functions ---------------------
-+   DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh)
-+   {
-+      Refinement ref;
-+      ref.Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (SplineGeometry2d*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (STLGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+   DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (CSGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+   DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
-+      Ng_Mesh * mesh)
-+   {
-+      ( (OCCGeometry*)geom ) -> GetRefinement().Refine ( * (Mesh*) mesh );
-+   }
-+#endif
-+   // ------------------ End - Uniform Mesh Refinement functions -----------------------
-+} // End of namespace nglib
-+
-+
-+
-+
-+// compatibility functions:
-+namespace netgen 
-+{
-+   char geomfilename[255];
-+
-+   DLL_HEADER void MyError (const char * ch)
-+   {
-+      cerr << ch;
-+   }
-+
-+
-+
-+
-+   //Destination for messages, errors, ...
-+   DLL_HEADER void Ng_PrintDest(const char * s)
-+   {
-+#ifdef PARALLEL
-+     int id = 0;
-+     MPI_Comm_rank(MPI_COMM_WORLD, &id);
-+     if (id != 0) return;
-+#endif
-+     (*mycout) << s << flush;
-+   }
-+
-+
-+
-+
-+   DLL_HEADER double GetTime ()
-+   {
-+      return 0;
-+   }
-+
-+
-+
-+
-+   void ResetTime ()
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   void MyBeep (int i)
-+   {
-+      ;
-+   }
-+
-+
-+
-+
-+   void Render()
-+   {
-+      ; 
-+   }
-+} // End of namespace netgen
-+
-+
-+
-+
-+void Ng_Redraw () { ; }
-+void Ng_ClearSolutionData () { ; }
-+void Ng_SetSolutionData (Ng_SolutionData * soldata) 
-+{ 
-+  delete soldata->solclass;
-+}
-+void Ng_InitSolutionData (Ng_SolutionData * soldata) { ; }
-+
-+
-diff -Naur netgen-5.3.1_SRC_orig/nglib/nglib.h netgen-5.3.1_SRC_modif/nglib/nglib.h
---- netgen-5.3.1_SRC_orig/nglib/nglib.h        2014-08-29 13:54:00.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/nglib/nglib.h       2019-11-14 16:56:25.350369905 +0300
-@@ -1,747 +1,747 @@
--#ifndef NGLIB\r
--#define NGLIB\r
--\r
--/**************************************************************************/\r
--/* File:   nglib.h                                                        */\r
--/* Author: Joachim Schoeberl                                              */\r
--/* Date:   7. May. 2000                                                   */\r
--/**************************************************************************/\r
--\r
--/*!\r
--   \file nglib.h\r
--   \brief Library interface to the netgen meshing kernel\r
--   \author Joachim Schoeberl\r
--   \date 7. May 2000\r
--\r
--   This header file provides access to the core functionality of the Netgen \r
--   Mesher via a library interface, without an interactive User Interface.\r
--\r
--   The intention of providing these set of functions is to allow system \r
--   developers to integrate Netgen into top-level code, to act as the low \r
--   level mesh generation / optimisation kernel.  \r
--*/\r
--\r
--// Philippose - 14.02.2009\r
--// Modifications for creating a DLL in Windows\r
--#ifdef WIN32\r
--   #ifdef NGLIB_EXPORTS || nglib_EXPORTS\r
--      #define DLL_HEADER   __declspec(dllexport)\r
--   #else\r
--      #define DLL_HEADER   __declspec(dllimport)\r
--   #endif\r
--#else\r
--   #define DLL_HEADER \r
--#endif\r
--\r
--\r
--\r
--// ** Constants used within Netgen *********************\r
--/// Maximum allowed number of nodes per volume element\r
--#define NG_VOLUME_ELEMENT_MAXPOINTS 10\r
--\r
--/// Maximum allowed number of nodes per surface element\r
--#define NG_SURFACE_ELEMENT_MAXPOINTS 8\r
--\r
--\r
--\r
--// *** Data-types for accessing Netgen functionality ***\r
--/// Data type for NETGEN mesh\r
--typedef void * Ng_Mesh;\r
--\r
--/// Data type for NETGEN CSG geometry\r
--typedef void * Ng_CSG_Geometry;\r
--\r
--/// Data type for NETGEN 2D geometry\r
--typedef void * Ng_Geometry_2D;\r
--\r
--/// Data type for NETGEN STL geometry\r
--typedef void * Ng_STL_Geometry;\r
--\r
--#ifdef OCCGEOMETRY\r
--/// Data type for NETGEN OpenCascade geometry\r
--typedef void * Ng_OCC_Geometry;\r
--typedef void * Ng_OCC_TopTools_IndexedMapOfShape;\r
--#endif\r
--\r
--\r
--// *** Special Enum types used within Netgen ***********\r
--/// Currently implemented surface element types\r
--enum Ng_Surface_Element_Type \r
--   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };\r
--\r
--/// Currently implemented volume element types\r
--enum Ng_Volume_Element_Type \r
--   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };\r
--\r
--/// Values returned by Netgen functions\r
--enum Ng_Result \r
--   { \r
--     NG_ERROR               = -1,   \r
--     NG_OK                  = 0, \r
--     NG_SURFACE_INPUT_ERROR = 1,\r
--     NG_VOLUME_FAILURE      = 2, \r
--     NG_STL_INPUT_ERROR     = 3,\r
--     NG_SURFACE_FAILURE     = 4,\r
--     NG_FILE_NOT_FOUND      = 5 \r
--   };\r
--\r
--\r
--\r
--// *** Classes required for use within Netgen **********\r
--/// Netgen Meshing Parameters class\r
--class Ng_Meshing_Parameters \r
--{\r
--public:\r
--   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers\r
--\r
--   double maxh;                        //!< Maximum global mesh size allowed\r
--   double minh;                        //!< Minimum global mesh size allowed\r
--\r
--   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)\r
--   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)\r
--\r
--   double elementsperedge;             //!< Number of elements to generate per edge of the geometry\r
--   double elementspercurve;            //!< Elements to generate per curvature radius\r
--\r
--   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges\r
--   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)\r
--\r
--   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision\r
--   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)\r
--\r
--   int second_order;                   //!< Generate second-order surface and volume elements\r
--   int quad_dominated;                 //!< Creates a Quad-dominated mesh \r
--\r
--   char * meshsize_filename;           //!< Optional external mesh size file \r
--\r
--   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization\r
--   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization\r
--\r
--   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization\r
--   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization\r
--\r
--   // Philippose - 13/09/2010\r
--   // Added a couple more parameters into the meshing parameters list \r
--   // from Netgen into Nglib\r
--   int invert_tets;                    //!< Invert all the volume elements\r
--   int invert_trigs;                   //!< Invert all the surface triangle elements\r
--\r
--   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing\r
--   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing\r
--\r
--\r
--   /*!\r
--      Default constructor for the Mesh Parameters class\r
--\r
--      Note: This constructor initialises the variables in the \r
--      class with the following default values\r
--      - #uselocalh: 1\r
--      - #maxh: 1000.0\r
--      - #fineness: 0.5\r
--      - #grading: 0.3\r
--      - #elementsperedge: 2.0\r
--      - #elementspercurve: 2.0\r
--      - #closeedgeenable: 0\r
--      - #closeedgefact: 2.0\r
--      - #secondorder: 0\r
--      - #meshsize_filename: null\r
--      - #quad_dominated: 0\r
--      - #optsurfmeshenable: 1\r
--      - #optvolmeshenable: 1\r
--      - #optsteps_2d: 3\r
--      - #optsteps_3d: 3\r
--      - #invert_tets: 0\r
--      - #invert_trigs:0 \r
--      - #check_overlap: 1\r
--      - #check_overlapping_boundary: 1\r
--   */\r
--   DLL_HEADER Ng_Meshing_Parameters();\r
--\r
--\r
--\r
--   /*!\r
--       Reset the meshing parameters to their defaults\r
--\r
--       This member function resets all the meshing parameters \r
--       of the object to the default values\r
--   */\r
--   DLL_HEADER void Reset_Parameters();\r
--\r
--\r
--\r
--   /*!\r
--       Transfer local meshing parameters to internal meshing parameters\r
--\r
--       This member function transfers all the meshing parameters \r
--       defined in the local meshing parameters structure of nglib into \r
--       the internal meshing parameters structure used by the Netgen core\r
--   */\r
--   DLL_HEADER void Transfer_Parameters();\r
--};\r
--\r
--\r
--\r
--\r
--// *** Functions Exported by this Library *************\r
--\r
--// ------------------------------------------------------------------\r
--// Netgen library initialisation / destruction functions\r
--\r
--/*! \brief Initialise the Netgen library and prepare for use\r
--\r
--    This function needs to be called by the third-party \r
--    program before beginning to use the other Netgen \r
--    specific functions.\r
--*/\r
--DLL_HEADER void Ng_Init ();\r
--\r
--\r
--/*! \brief Exit the Netgen meshing kernel in a clean manner\r
--\r
--    Use this function to exit the meshing sub-system in \r
--    a clean and orderly manner.\r
--*/\r
--DLL_HEADER void Ng_Exit ();\r
--  \r
--\r
--/*! \brief Create a new (and empty) Netgen Mesh Structure\r
--\r
--    This function creates a new Netgen Mesh, initialises \r
--    it, and returns a pointer to the created mesh structure. \r
--\r
--    Use the returned pointer for subsequent operations \r
--    which involve mesh operations.\r
--\r
--    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh\r
--*/\r
--DLL_HEADER  Ng_Mesh * Ng_NewMesh ();\r
--\r
--\r
--/*! \brief Delete an existing Netgen Mesh Structure\r
--\r
--    Use this function to delete an existing Netgen mesh \r
--    structure and release the used memory. \r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure \r
--                of type #Ng_Mesh\r
--*/\r
--DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);\r
--\r
--\r
--/*! \brief Save a Netgen Mesh to disk\r
--\r
--    This function allows a generated mesh structure to be saved \r
--    to disk.\r
--\r
--    A Mesh saved using this function, will be written to disk \r
--    in the Netgen VOL file format.\r
--\r
--    \param mesh    Pointer to an existing Netgen Mesh structure \r
--                   of type #Ng_Mesh\r
--    \param filename Pointer to a character array containing the \r
--                    name of the file to which the mesh should \r
--                    be saved\r
--*/\r
--DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);\r
--\r
--\r
--/*! \brief Load a Netgen VOL Mesh from disk into memory\r
--\r
--    A Netgen mesh saved in the internal VOL format can be loaded \r
--    into a Netgen Mesh structure using this function. \r
--\r
--    \param filename Pointer to a character array containing the \r
--                    name of the file to load\r
--    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing \r
--                    the mesh loaded from disk\r
--*/\r
--DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);\r
--\r
--\r
--/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory\r
--\r
--    A Netgen mesh saved in the internal VOL format can be merged \r
--    into an existing Netgen Mesh structure using this function. \r
--\r
--    \param mesh       Name of the Mesh structure already existent in memory\r
--    \param filename   Pointer to a character array containing the \r
--                      name of the file to load\r
--    \return Ng_Result Status of the merge operation\r
--*/\r
--DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);\r
--\r
--\r
--/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case \r
--    when both are already in memory\r
--\r
--    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)\r
--\r
--    This function can be used to merge two Netgen meshes already present \r
--    in memory.\r
--\r
--    \param mesh1      Parent Mesh structure into which the second mesh \r
--                      will be merged\r
--    \param mesh2      Child mesh structure which will get merged into \r
--                      the parent mesh\r
--    \return Ng_Result Status of the merge operation\r
--*/\r
--DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);\r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--// ------------------------------------------------------------------\r
--// Basic Meshing functions for manually adding points, surface elements \r
--// and volume elements to a Netgen Mesh structure\r
--\r
--/*! \brief Add a point to a given Netgen Mesh Structure\r
--\r
--    This function allows points to be directly added to a Netgen \r
--    mesh structure by providing the co-ordinates.\r
--\r
--    Each call to the function allows only one point to be added.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param x    Pointer to an array of type double containing the co-ordinates \r
--                of the point to be added in the form: \n\r
--                - x[0] = X co-ordinate\r
--                - x[1] = Y co-ordinate\r
--                - x[2] = Z co-ordinate\r
--*/\r
--DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);\r
--\r
--\r
--/*! \brief Add a surface element to a given Netgen Mesh Structure\r
--\r
--    This function allows the top-level code to directly add individual \r
--    Surface Elements to a Netgen Mesh Structure by providing the type of \r
--    element to be added and the indices of the points which constitute the \r
--    element.\r
--\r
--    <i>Note:</i> \r
--    - The points referred to by the surface elements must have been\r
--      added prior to calling this function. \r
--    - Currently only triangular elements are supported, and the Surface Element \r
--      Type argument is not used.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param et   Surface Element type provided via the enumerated type \r
--                #Ng_Surface_Element_Type \r
--    \param pi   Pointer to an array of integers containing the indices of the \r
--                points which constitute the surface element being added\r
--*/\r
--DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);\r
--\r
--\r
--/*! \brief Add a volume element to a given Netgen Mesh Structure\r
--\r
--    This function allows the top-level code to directly add individual \r
--    Volume Elements to a Netgen Mesh Structure by providing the type of \r
--    element to be added and the indices of the points which constitute the \r
--    element.\r
--\r
--    <i>Note:</i> \r
--    - The points referred to by the volume elements must have been\r
--      added prior to calling this function. \r
--    - Currently only tetrahedral elements are supported, and the Volume Element \r
--      Type argument is not used.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param et   Volume Element type provided via the enumerated type \r
--                #Ng_Volume_Element_Type \r
--    \param pi   Pointer to an array of integers containing the indices of the \r
--                points which constitute the volume element being added\r
--\r
--*/\r
--DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);\r
--  \r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--// ------------------------------------------------------------------\r
--// Local Mesh Size restriction / limiting utilities\r
--\r
--/*! \brief Apply a global restriction on mesh element size\r
--\r
--    This utility allows the user to apply a global mesh element \r
--    size limitation. \r
--\r
--    During mesh creation, in the absence of an explicit local \r
--    size restriction around the neighbourhood of a point within \r
--    the meshing domain, this global size restriction will be \r
--    utilised.\r
--\r
--    <b>Note</b>: This function only limits the <b>Maximum</b> \r
--    size of an element within the mesh.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param h    Variable of type <i>double</i>, specifying the maximum\r
--                allowable mesh size\r
--*/\r
--DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);\r
--\r
--\r
--/*! \brief Locally restrict the mesh element size at the given point\r
--\r
--    Unlike the function #Ng_RestrictMeshSizeGlobal, this function \r
--    allows the user to locally restrict the maximum allowable mesh \r
--    size at a given point.\r
--\r
--    The point is specified via its three cartesian co-ordinates.\r
--\r
--    <b>Note</b>: This function only limits the <b>Maximum</b> size \r
--    of the elements around the specified point.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param p    Pointer to an Array of type <i>double</i>, containing \r
--                the three co-ordinates of the point in the form: \n\r
--                - p[0] = X co-ordinate\r
--                - p[1] = Y co-ordinate\r
--                - p[2] = Z co-ordinate\r
--    \param h    Variable of type <i>double</i>, specifying the maximum\r
--                allowable mesh size at that point\r
--*/\r
--DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);\r
--\r
--\r
--/*! \brief Locally restrict the mesh element size within a specified box\r
--\r
--    Similar to the function #Ng_RestrictMeshSizePoint, this function \r
--    allows the size of elements within a mesh to be locally limited.\r
--\r
--    However, rather than limit the mesh size at a single point, this \r
--    utility restricts the local mesh size within a 3D Box region, specified \r
--    via the co-ordinates of the two diagonally opposite points of a cuboid.\r
--\r
--    <b>Note</b>: This function only limits the <b>Maximum</b> size \r
--    of the elements within the specified region.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param pmin Pointer to an Array of type <i>double</i>, containing \r
--                the three co-ordinates of the first point of the cuboid: \n\r
--                - pmin[0] = X co-ordinate\r
--                - pmin[1] = Y co-ordinate\r
--                - pmin[2] = Z co-ordinate\r
--    \param pmax Pointer to an Array of type <i>double</i>, containing \r
--                the three co-ordinates of the opposite point of the \r
--                cuboid: \n\r
--                - pmax[0] = X co-ordinate\r
--                - pmax[1] = Y co-ordinate\r
--                - pmax[2] = Z co-ordinate\r
--    \param h    Variable of type <i>double</i>, specifying the maximum\r
--                allowable mesh size at that point\r
--*/\r
--DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);\r
--\r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--// ------------------------------------------------------------------\r
--// 3D Mesh Generation functions\r
--\r
--/*! \brief Create a 3D Volume Mesh given a Surface Mesh\r
--\r
--    After creating a surface mesh, this function can be utilised \r
--    to automatically generate the corresponding 3D Volume Mesh.\r
--\r
--    Mesh generation parameters (such as grading, maximum element size, \r
--    etc.) are specified via the meshing parameters class which also \r
--    needs to be passed to this function.\r
--\r
--    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume \r
--    meshes.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \param mp   Pointer to a copy of the Meshing Parameters class\r
--                (#Ng_Meshing_Parameters), filled up with the \r
--                required values\r
--\r
--    \return Ng_Result Status of the Mesh Generation routine. More \r
--                      details regarding the return value can be \r
--                      found in the description of #Ng_Result\r
--*/\r
--DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);\r
--\r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--// ------------------------------------------------------------------\r
--// Basic Mesh information functions\r
--\r
--/*! \brief Returns the Number of Points present in the specified Mesh\r
--\r
--    Given an already existent Netgen Mesh Structure, this function \r
--    returns the number of points currently present within the Mesh.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \return \r
--                Integer Data-type with the number of points in the Mesh\r
--*/\r
--DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);\r
--\r
--\r
--/*! \brief Returns the Number of Surface Elements present in the specified Mesh\r
--\r
--    Given an already existent Netgen Mesh Structure, this function \r
--    returns the number of surface elements currently present within \r
--    the Mesh.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \return \r
--                Integer Data-type with the number of surface elements in the Mesh\r
--*/\r
--DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);\r
--\r
--\r
--/*! \brief Returns the Number of Volume Elements present in the specified Mesh\r
--\r
--    Given an already existent Netgen Mesh Structure, this function \r
--    returns the number of volume elements currently present within \r
--    the Mesh.\r
--\r
--    \param mesh Pointer to an existing Netgen Mesh structure of \r
--                type #Ng_Mesh\r
--    \return \r
--                Integer Data-type with the number of volume elements in the Mesh\r
--*/\r
--DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);\r
--\r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--// ------------------------------------------------------------------\r
--// Mesh Topology functions\r
--// Use these functions to extract points, surface / volume elements, \r
--// perform topological searches, etc..etc...\r
--  \r
--//  Return the Point Coordinates of a specified Point\r
--// The x, y and z co-ordinates are returned in the array pointer as \r
--// x[0] = x ; x[1] = y ; x[2] = z\r
--DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);\r
--\r
--\r
--\r
--// return surface and volume element in pi\r
--DLL_HEADER Ng_Surface_Element_Type \r
--Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);\r
--\r
--DLL_HEADER Ng_Volume_Element_Type\r
--Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);\r
--\r
--// ------------------------------------------------------------------\r
--\r
--\r
--\r
--\r
--// **********************************************************\r
--// **   2D Meshing                                         **\r
--// **********************************************************\r
--\r
--\r
--// feeds points and boundary to mesh\r
--\r
--DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);\r
--DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);\r
--  \r
--// ask for number of points, elements and boundary segments\r
--DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);\r
--DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);\r
--DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);\r
--  \r
--//  return point coordinates\r
--DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);\r
--\r
--// return 2d elements\r
--DLL_HEADER Ng_Surface_Element_Type \r
--Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);\r
--\r
--// return 2d boundary segment\r
--DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);\r
--\r
--\r
--// load 2d netgen spline geometry\r
--DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);\r
--\r
--// generate 2d mesh, mesh is allocated by function\r
--DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,\r
--                                         Ng_Mesh ** mesh,\r
--                                         Ng_Meshing_Parameters * mp);\r
--  \r
--DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,\r
--                                  Ng_Mesh * mesh,\r
--                                  int levels);\r
--  \r
--\r
--\r
--\r
--\r
--// **********************************************************\r
--// **   STL Meshing                                        **\r
--// **********************************************************\r
--\r
--\r
--// loads geometry from STL file\r
--DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);\r
--\r
--\r
--// generate new STL Geometry\r
--DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();\r
--  \r
--\r
--// fills STL Geometry\r
--// positive orientation\r
--// normal vector may be null-pointer\r
--DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, \r
--                         double * p1, double * p2, double * p3, \r
--                         double * nv = NULL);\r
--\r
--// add (optional) edges :\r
--DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, \r
--                     double * p1, double * p2);\r
--\r
--// after adding triangles (and edges) initialize\r
--DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);\r
--\r
--// automatically generates edges:\r
--DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,\r
--                            Ng_Mesh* mesh,\r
--                            Ng_Meshing_Parameters * mp);\r
--\r
--\r
--// generates mesh, empty mesh must be already created.\r
--DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,\r
--                                                 Ng_Mesh * mesh,\r
--                                                 Ng_Meshing_Parameters * mp);\r
--\r
--\r
--#ifdef ACIS\r
--\r
--// **********************************************************\r
--// **   ACIS Meshing                                       **\r
--// **********************************************************\r
--\r
--/// Data type for NETGEN STL geomty\r
--typedef void * Ng_ACIS_Geometry;\r
--\r
--// loads geometry from STL file\r
--DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);\r
--  \r
--// generates mesh, empty mesh must be already created.\r
--DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,\r
--                                                  Ng_Mesh * mesh,\r
--                                                  Ng_Meshing_Parameters * mp);\r
--\r
--\r
--#endif\r
--\r
--\r
--\r
--#ifdef OCCGEOMETRY\r
--\r
--// **********************************************************\r
--// **   OpenCascade Geometry / Meshing Utilities           **\r
--// **********************************************************\r
--\r
--// Create new OCC Geometry Object\r
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();\r
--\r
--// Delete an OCC Geometry Object\r
--DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);\r
--\r
--// Loads geometry from STEP file\r
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);\r
--\r
--// Loads geometry from IGES file\r
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);\r
--\r
--// Loads geometry from BREP file\r
--DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);\r
--\r
--// Set the local mesh size based on geometry / topology\r
--DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,\r
--                                              Ng_Mesh * mesh,\r
--                                              Ng_Meshing_Parameters * mp);\r
--\r
--// Mesh the edges and add Face descriptors to prepare for surface meshing\r
--DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,\r
--                                              Ng_Mesh * mesh,\r
--                                              Ng_Meshing_Parameters * mp);\r
--\r
--// Mesh the surfaces of an OCC geometry\r
--DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,\r
--                                                 Ng_Mesh * mesh,\r
--                                                 Ng_Meshing_Parameters * mp); \r
--\r
--// Get the face map of an already loaded OCC geometry\r
--DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, \r
--                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);\r
--\r
--#endif // OCCGEOMETRY\r
--\r
--\r
--\r
--// **********************************************************\r
--// **   Mesh refinement algorithms                         **\r
--// **********************************************************\r
--\r
--// uniform mesh refinement\r
--DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);\r
--\r
--\r
--// uniform mesh refinement with geometry adaption:\r
--\r
--DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,\r
--                                        Ng_Mesh * mesh);\r
--\r
--DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--\r
--DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--\r
--#ifdef OCCGEOMETRY\r
--DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--#endif\r
--\r
--\r
--\r
--// **********************************************************\r
--// **   Second Order mesh algorithms                       **\r
--// **********************************************************\r
--\r
--// convert mesh to second order\r
--DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);\r
--\r
--\r
--// convert mesh to second order with geometry adaption:\r
--\r
--DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,\r
--                                        Ng_Mesh * mesh);\r
--\r
--DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--\r
--DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--\r
--#ifdef OCCGEOMETRY\r
--DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,\r
--                                         Ng_Mesh * mesh);\r
--#endif\r
--\r
--\r
--#endif // NGLIB\r
-+#ifndef NGLIB
-+#define NGLIB
-+
-+/**************************************************************************/
-+/* File:   nglib.h                                                        */
-+/* Author: Joachim Schoeberl                                              */
-+/* Date:   7. May. 2000                                                   */
-+/**************************************************************************/
-+
-+/*!
-+   \file nglib.h
-+   \brief Library interface to the netgen meshing kernel
-+   \author Joachim Schoeberl
-+   \date 7. May 2000
-+
-+   This header file provides access to the core functionality of the Netgen 
-+   Mesher via a library interface, without an interactive User Interface.
-+
-+   The intention of providing these set of functions is to allow system 
-+   developers to integrate Netgen into top-level code, to act as the low 
-+   level mesh generation / optimisation kernel.  
-+*/
-+
-+// Philippose - 14.02.2009
-+// Modifications for creating a DLL in Windows
-+#ifdef WIN32
-+   #if defined NGLIB_EXPORTS || defined nglib_EXPORTS
-+      #define DLL_HEADER   __declspec(dllexport)
-+   #else
-+      #define DLL_HEADER   __declspec(dllimport)
-+   #endif
-+#else
-+   #define DLL_HEADER 
-+#endif
-+
-+
-+
-+// ** Constants used within Netgen *********************
-+/// Maximum allowed number of nodes per volume element
-+#define NG_VOLUME_ELEMENT_MAXPOINTS 10
-+
-+/// Maximum allowed number of nodes per surface element
-+#define NG_SURFACE_ELEMENT_MAXPOINTS 8
-+
-+
-+
-+// *** Data-types for accessing Netgen functionality ***
-+/// Data type for NETGEN mesh
-+typedef void * Ng_Mesh;
-+
-+/// Data type for NETGEN CSG geometry
-+typedef void * Ng_CSG_Geometry;
-+
-+/// Data type for NETGEN 2D geometry
-+typedef void * Ng_Geometry_2D;
-+
-+/// Data type for NETGEN STL geometry
-+typedef void * Ng_STL_Geometry;
-+
-+#ifdef OCCGEOMETRY
-+/// Data type for NETGEN OpenCascade geometry
-+typedef void * Ng_OCC_Geometry;
-+typedef void * Ng_OCC_TopTools_IndexedMapOfShape;
-+#endif
-+
-+
-+// *** Special Enum types used within Netgen ***********
-+/// Currently implemented surface element types
-+enum Ng_Surface_Element_Type 
-+   { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3, NG_QUAD6 = 4, NG_QUAD8 = 5 };
-+
-+/// Currently implemented volume element types
-+enum Ng_Volume_Element_Type 
-+   { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 };
-+
-+/// Values returned by Netgen functions
-+enum Ng_Result 
-+   { 
-+     NG_ERROR               = -1,   
-+     NG_OK                  = 0, 
-+     NG_SURFACE_INPUT_ERROR = 1,
-+     NG_VOLUME_FAILURE      = 2, 
-+     NG_STL_INPUT_ERROR     = 3,
-+     NG_SURFACE_FAILURE     = 4,
-+     NG_FILE_NOT_FOUND      = 5 
-+   };
-+
-+
-+
-+// *** Classes required for use within Netgen **********
-+/// Netgen Meshing Parameters class
-+class Ng_Meshing_Parameters 
-+{
-+public:
-+   int uselocalh;                      //!< Switch to enable / disable usage of local mesh size modifiers
-+
-+   double maxh;                        //!< Maximum global mesh size allowed
-+   double minh;                        //!< Minimum global mesh size allowed
-+
-+   double fineness;                    //!< Mesh density: 0...1 (0 => coarse; 1 => fine)
-+   double grading;                     //!< Mesh grading: 0...1 (0 => uniform mesh; 1 => aggressive local grading)
-+
-+   double elementsperedge;             //!< Number of elements to generate per edge of the geometry
-+   double elementspercurve;            //!< Elements to generate per curvature radius
-+
-+   int closeedgeenable;                //!< Enable / Disable mesh refinement at close edges
-+   double closeedgefact;               //!< Factor to use for refinement at close edges (larger => finer)
-+
-+   int minedgelenenable;                         //!< Enable / Disable user defined minimum edge length for edge subdivision
-+   double minedgelen;                  //!< Minimum edge length to use while subdividing the edges (default = 1e-4)
-+
-+   int second_order;                   //!< Generate second-order surface and volume elements
-+   int quad_dominated;                 //!< Creates a Quad-dominated mesh 
-+
-+   char * meshsize_filename;           //!< Optional external mesh size file 
-+
-+   int optsurfmeshenable;              //!< Enable / Disable automatic surface mesh optimization
-+   int optvolmeshenable;               //!< Enable / Disable automatic volume mesh optimization
-+
-+   int optsteps_3d;                     //!< Number of optimize steps to use for 3-D mesh optimization
-+   int optsteps_2d;                     //!< Number of optimize steps to use for 2-D mesh optimization
-+
-+   // Philippose - 13/09/2010
-+   // Added a couple more parameters into the meshing parameters list 
-+   // from Netgen into Nglib
-+   int invert_tets;                    //!< Invert all the volume elements
-+   int invert_trigs;                   //!< Invert all the surface triangle elements
-+
-+   int check_overlap;                  //!< Check for overlapping surfaces during Surface meshing
-+   int check_overlapping_boundary;     //!< Check for overlapping surface elements before volume meshing
-+
-+
-+   /*!
-+      Default constructor for the Mesh Parameters class
-+
-+      Note: This constructor initialises the variables in the 
-+      class with the following default values
-+      - #uselocalh: 1
-+      - #maxh: 1000.0
-+      - #fineness: 0.5
-+      - #grading: 0.3
-+      - #elementsperedge: 2.0
-+      - #elementspercurve: 2.0
-+      - #closeedgeenable: 0
-+      - #closeedgefact: 2.0
-+      - #secondorder: 0
-+      - #meshsize_filename: null
-+      - #quad_dominated: 0
-+      - #optsurfmeshenable: 1
-+      - #optvolmeshenable: 1
-+      - #optsteps_2d: 3
-+      - #optsteps_3d: 3
-+      - #invert_tets: 0
-+      - #invert_trigs:0 
-+      - #check_overlap: 1
-+      - #check_overlapping_boundary: 1
-+   */
-+   DLL_HEADER Ng_Meshing_Parameters();
-+
-+
-+
-+   /*!
-+       Reset the meshing parameters to their defaults
-+
-+       This member function resets all the meshing parameters 
-+       of the object to the default values
-+   */
-+   DLL_HEADER void Reset_Parameters();
-+
-+
-+
-+   /*!
-+       Transfer local meshing parameters to internal meshing parameters
-+
-+       This member function transfers all the meshing parameters 
-+       defined in the local meshing parameters structure of nglib into 
-+       the internal meshing parameters structure used by the Netgen core
-+   */
-+   DLL_HEADER void Transfer_Parameters();
-+};
-+
-+
-+
-+
-+// *** Functions Exported by this Library *************
-+
-+// ------------------------------------------------------------------
-+// Netgen library initialisation / destruction functions
-+
-+/*! \brief Initialise the Netgen library and prepare for use
-+
-+    This function needs to be called by the third-party 
-+    program before beginning to use the other Netgen 
-+    specific functions.
-+*/
-+DLL_HEADER void Ng_Init ();
-+
-+
-+/*! \brief Exit the Netgen meshing kernel in a clean manner
-+
-+    Use this function to exit the meshing sub-system in 
-+    a clean and orderly manner.
-+*/
-+DLL_HEADER void Ng_Exit ();
-+  
-+
-+/*! \brief Create a new (and empty) Netgen Mesh Structure
-+
-+    This function creates a new Netgen Mesh, initialises 
-+    it, and returns a pointer to the created mesh structure. 
-+
-+    Use the returned pointer for subsequent operations 
-+    which involve mesh operations.
-+
-+    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh
-+*/
-+DLL_HEADER  Ng_Mesh * Ng_NewMesh ();
-+
-+
-+/*! \brief Delete an existing Netgen Mesh Structure
-+
-+    Use this function to delete an existing Netgen mesh 
-+    structure and release the used memory. 
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure 
-+                of type #Ng_Mesh
-+*/
-+DLL_HEADER void Ng_DeleteMesh (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Save a Netgen Mesh to disk
-+
-+    This function allows a generated mesh structure to be saved 
-+    to disk.
-+
-+    A Mesh saved using this function, will be written to disk 
-+    in the Netgen VOL file format.
-+
-+    \param mesh    Pointer to an existing Netgen Mesh structure 
-+                   of type #Ng_Mesh
-+    \param filename Pointer to a character array containing the 
-+                    name of the file to which the mesh should 
-+                    be saved
-+*/
-+DLL_HEADER void Ng_SaveMesh(Ng_Mesh * mesh, const char* filename);
-+
-+
-+/*! \brief Load a Netgen VOL Mesh from disk into memory
-+
-+    A Netgen mesh saved in the internal VOL format can be loaded 
-+    into a Netgen Mesh structure using this function. 
-+
-+    \param filename Pointer to a character array containing the 
-+                    name of the file to load
-+    \return Ng_Mesh Pointer to a Netgen Mesh type #Ng_Mesh containing 
-+                    the mesh loaded from disk
-+*/
-+DLL_HEADER Ng_Mesh * Ng_LoadMesh(const char* filename);
-+
-+
-+/*! \brief Merge a Netgen VOL Mesh from disk into an existing mesh in memory
-+
-+    A Netgen mesh saved in the internal VOL format can be merged 
-+    into an existing Netgen Mesh structure using this function. 
-+
-+    \param mesh       Name of the Mesh structure already existent in memory
-+    \param filename   Pointer to a character array containing the 
-+                      name of the file to load
-+    \return Ng_Result Status of the merge operation
-+*/
-+DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh, const char* filename);
-+
-+
-+/*! \brief Merge one Netgen Mesh into another Netgen Mesh in the case 
-+    when both are already in memory
-+
-+    (NOTE: FUNCTION STILL WORK IN PROGRESS!!!)
-+
-+    This function can be used to merge two Netgen meshes already present 
-+    in memory.
-+
-+    \param mesh1      Parent Mesh structure into which the second mesh 
-+                      will be merged
-+    \param mesh2      Child mesh structure which will get merged into 
-+                      the parent mesh
-+    \return Ng_Result Status of the merge operation
-+*/
-+DLL_HEADER Ng_Result Ng_MergeMesh(Ng_Mesh * mesh1, Ng_Mesh * mesh2);
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Basic Meshing functions for manually adding points, surface elements 
-+// and volume elements to a Netgen Mesh structure
-+
-+/*! \brief Add a point to a given Netgen Mesh Structure
-+
-+    This function allows points to be directly added to a Netgen 
-+    mesh structure by providing the co-ordinates.
-+
-+    Each call to the function allows only one point to be added.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param x    Pointer to an array of type double containing the co-ordinates 
-+                of the point to be added in the form: \n
-+                - x[0] = X co-ordinate
-+                - x[1] = Y co-ordinate
-+                - x[2] = Z co-ordinate
-+*/
-+DLL_HEADER void Ng_AddPoint (Ng_Mesh * mesh, double * x);
-+
-+
-+/*! \brief Add a surface element to a given Netgen Mesh Structure
-+
-+    This function allows the top-level code to directly add individual 
-+    Surface Elements to a Netgen Mesh Structure by providing the type of 
-+    element to be added and the indices of the points which constitute the 
-+    element.
-+
-+    <i>Note:</i> 
-+    - The points referred to by the surface elements must have been
-+      added prior to calling this function. 
-+    - Currently only triangular elements are supported, and the Surface Element 
-+      Type argument is not used.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param et   Surface Element type provided via the enumerated type 
-+                #Ng_Surface_Element_Type 
-+    \param pi   Pointer to an array of integers containing the indices of the 
-+                points which constitute the surface element being added
-+*/
-+DLL_HEADER void Ng_AddSurfaceElement (Ng_Mesh * mesh, Ng_Surface_Element_Type et, int * pi);
-+
-+
-+/*! \brief Add a volume element to a given Netgen Mesh Structure
-+
-+    This function allows the top-level code to directly add individual 
-+    Volume Elements to a Netgen Mesh Structure by providing the type of 
-+    element to be added and the indices of the points which constitute the 
-+    element.
-+
-+    <i>Note:</i> 
-+    - The points referred to by the volume elements must have been
-+      added prior to calling this function. 
-+    - Currently only tetrahedral elements are supported, and the Volume Element 
-+      Type argument is not used.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param et   Volume Element type provided via the enumerated type 
-+                #Ng_Volume_Element_Type 
-+    \param pi   Pointer to an array of integers containing the indices of the 
-+                points which constitute the volume element being added
-+
-+*/
-+DLL_HEADER void Ng_AddVolumeElement (Ng_Mesh * mesh, Ng_Volume_Element_Type et, int * pi);
-+  
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Local Mesh Size restriction / limiting utilities
-+
-+/*! \brief Apply a global restriction on mesh element size
-+
-+    This utility allows the user to apply a global mesh element 
-+    size limitation. 
-+
-+    During mesh creation, in the absence of an explicit local 
-+    size restriction around the neighbourhood of a point within 
-+    the meshing domain, this global size restriction will be 
-+    utilised.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b> 
-+    size of an element within the mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizeGlobal (Ng_Mesh * mesh, double h);
-+
-+
-+/*! \brief Locally restrict the mesh element size at the given point
-+
-+    Unlike the function #Ng_RestrictMeshSizeGlobal, this function 
-+    allows the user to locally restrict the maximum allowable mesh 
-+    size at a given point.
-+
-+    The point is specified via its three cartesian co-ordinates.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b> size 
-+    of the elements around the specified point.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param p    Pointer to an Array of type <i>double</i>, containing 
-+                the three co-ordinates of the point in the form: \n
-+                - p[0] = X co-ordinate
-+                - p[1] = Y co-ordinate
-+                - p[2] = Z co-ordinate
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size at that point
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizePoint (Ng_Mesh * mesh, double * p, double h);
-+
-+
-+/*! \brief Locally restrict the mesh element size within a specified box
-+
-+    Similar to the function #Ng_RestrictMeshSizePoint, this function 
-+    allows the size of elements within a mesh to be locally limited.
-+
-+    However, rather than limit the mesh size at a single point, this 
-+    utility restricts the local mesh size within a 3D Box region, specified 
-+    via the co-ordinates of the two diagonally opposite points of a cuboid.
-+
-+    <b>Note</b>: This function only limits the <b>Maximum</b> size 
-+    of the elements within the specified region.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param pmin Pointer to an Array of type <i>double</i>, containing 
-+                the three co-ordinates of the first point of the cuboid: \n
-+                - pmin[0] = X co-ordinate
-+                - pmin[1] = Y co-ordinate
-+                - pmin[2] = Z co-ordinate
-+    \param pmax Pointer to an Array of type <i>double</i>, containing 
-+                the three co-ordinates of the opposite point of the 
-+                cuboid: \n
-+                - pmax[0] = X co-ordinate
-+                - pmax[1] = Y co-ordinate
-+                - pmax[2] = Z co-ordinate
-+    \param h    Variable of type <i>double</i>, specifying the maximum
-+                allowable mesh size at that point
-+*/
-+DLL_HEADER void Ng_RestrictMeshSizeBox (Ng_Mesh * mesh, double * pmin, double * pmax, double h);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// 3D Mesh Generation functions
-+
-+/*! \brief Create a 3D Volume Mesh given a Surface Mesh
-+
-+    After creating a surface mesh, this function can be utilised 
-+    to automatically generate the corresponding 3D Volume Mesh.
-+
-+    Mesh generation parameters (such as grading, maximum element size, 
-+    etc.) are specified via the meshing parameters class which also 
-+    needs to be passed to this function.
-+
-+    <b>Note</b>: Currently, Netgen generates pure tetrahedral volume 
-+    meshes.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \param mp   Pointer to a copy of the Meshing Parameters class
-+                (#Ng_Meshing_Parameters), filled up with the 
-+                required values
-+
-+    \return Ng_Result Status of the Mesh Generation routine. More 
-+                      details regarding the return value can be 
-+                      found in the description of #Ng_Result
-+*/
-+DLL_HEADER Ng_Result Ng_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Basic Mesh information functions
-+
-+/*! \brief Returns the Number of Points present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function 
-+    returns the number of points currently present within the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \return 
-+                Integer Data-type with the number of points in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNP (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Returns the Number of Surface Elements present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function 
-+    returns the number of surface elements currently present within 
-+    the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \return 
-+                Integer Data-type with the number of surface elements in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNSE (Ng_Mesh * mesh);
-+
-+
-+/*! \brief Returns the Number of Volume Elements present in the specified Mesh
-+
-+    Given an already existent Netgen Mesh Structure, this function 
-+    returns the number of volume elements currently present within 
-+    the Mesh.
-+
-+    \param mesh Pointer to an existing Netgen Mesh structure of 
-+                type #Ng_Mesh
-+    \return 
-+                Integer Data-type with the number of volume elements in the Mesh
-+*/
-+DLL_HEADER int Ng_GetNE (Ng_Mesh * mesh);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+// ------------------------------------------------------------------
-+// Mesh Topology functions
-+// Use these functions to extract points, surface / volume elements, 
-+// perform topological searches, etc..etc...
-+  
-+//  Return the Point Coordinates of a specified Point
-+// The x, y and z co-ordinates are returned in the array pointer as 
-+// x[0] = x ; x[1] = y ; x[2] = z
-+DLL_HEADER void Ng_GetPoint (Ng_Mesh * mesh, int num, double * x);
-+
-+
-+
-+// return surface and volume element in pi
-+DLL_HEADER Ng_Surface_Element_Type 
-+Ng_GetSurfaceElement (Ng_Mesh * mesh, int num, int * pi);
-+
-+DLL_HEADER Ng_Volume_Element_Type
-+Ng_GetVolumeElement (Ng_Mesh * mesh, int num, int * pi);
-+
-+// ------------------------------------------------------------------
-+
-+
-+
-+
-+// **********************************************************
-+// **   2D Meshing                                         **
-+// **********************************************************
-+
-+
-+// feeds points and boundary to mesh
-+
-+DLL_HEADER void Ng_AddPoint_2D (Ng_Mesh * mesh, double * x);
-+DLL_HEADER void Ng_AddBoundarySeg_2D (Ng_Mesh * mesh, int pi1, int pi2);
-+  
-+// ask for number of points, elements and boundary segments
-+DLL_HEADER int Ng_GetNP_2D (Ng_Mesh * mesh);
-+DLL_HEADER int Ng_GetNE_2D (Ng_Mesh * mesh);
-+DLL_HEADER int Ng_GetNSeg_2D (Ng_Mesh * mesh);
-+  
-+//  return point coordinates
-+DLL_HEADER void Ng_GetPoint_2D (Ng_Mesh * mesh, int num, double * x);
-+
-+// return 2d elements
-+DLL_HEADER Ng_Surface_Element_Type 
-+Ng_GetElement_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
-+
-+// return 2d boundary segment
-+DLL_HEADER void Ng_GetSegment_2D (Ng_Mesh * mesh, int num, int * pi, int * matnum = NULL);
-+
-+
-+// load 2d netgen spline geometry
-+DLL_HEADER Ng_Geometry_2D * Ng_LoadGeometry_2D (const char * filename);
-+
-+// generate 2d mesh, mesh is allocated by function
-+DLL_HEADER Ng_Result Ng_GenerateMesh_2D (Ng_Geometry_2D * geom,
-+                                         Ng_Mesh ** mesh,
-+                                         Ng_Meshing_Parameters * mp);
-+  
-+DLL_HEADER void Ng_HP_Refinement (Ng_Geometry_2D * geom,
-+                                  Ng_Mesh * mesh,
-+                                  int levels);
-+  
-+
-+
-+
-+
-+// **********************************************************
-+// **   STL Meshing                                        **
-+// **********************************************************
-+
-+
-+// loads geometry from STL file
-+DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary = 0);
-+
-+
-+// generate new STL Geometry
-+DLL_HEADER Ng_STL_Geometry * Ng_STL_NewGeometry ();
-+  
-+
-+// fills STL Geometry
-+// positive orientation
-+// normal vector may be null-pointer
-+DLL_HEADER void Ng_STL_AddTriangle (Ng_STL_Geometry * geom, 
-+                         double * p1, double * p2, double * p3, 
-+                         double * nv = NULL);
-+
-+// add (optional) edges :
-+DLL_HEADER void Ng_STL_AddEdge (Ng_STL_Geometry * geom, 
-+                     double * p1, double * p2);
-+
-+// after adding triangles (and edges) initialize
-+DLL_HEADER Ng_Result Ng_STL_InitSTLGeometry (Ng_STL_Geometry * geom);
-+
-+// automatically generates edges:
-+DLL_HEADER Ng_Result Ng_STL_MakeEdges (Ng_STL_Geometry * geom,
-+                            Ng_Mesh* mesh,
-+                            Ng_Meshing_Parameters * mp);
-+
-+
-+// generates mesh, empty mesh must be already created.
-+DLL_HEADER Ng_Result Ng_STL_GenerateSurfaceMesh (Ng_STL_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp);
-+
-+
-+#ifdef ACIS
-+
-+// **********************************************************
-+// **   ACIS Meshing                                       **
-+// **********************************************************
-+
-+/// Data type for NETGEN STL geomty
-+typedef void * Ng_ACIS_Geometry;
-+
-+// loads geometry from STL file
-+DLL_HEADER Ng_ACIS_Geometry * Ng_ACIS_LoadGeometry (const char * filename);
-+  
-+// generates mesh, empty mesh must be already created.
-+DLL_HEADER Ng_Result Ng_ACIS_GenerateSurfaceMesh (Ng_ACIS_Geometry * geom,
-+                                                  Ng_Mesh * mesh,
-+                                                  Ng_Meshing_Parameters * mp);
-+
-+
-+#endif
-+
-+
-+
-+#ifdef OCCGEOMETRY
-+
-+// **********************************************************
-+// **   OpenCascade Geometry / Meshing Utilities           **
-+// **********************************************************
-+
-+// Create new OCC Geometry Object
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_NewGeometry ();
-+
-+// Delete an OCC Geometry Object
-+DLL_HEADER Ng_Result Ng_OCC_DeleteGeometry (Ng_OCC_Geometry * geom);
-+
-+// Loads geometry from STEP file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_STEP (const char * filename);
-+
-+// Loads geometry from IGES file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_IGES (const char * filename);
-+
-+// Loads geometry from BREP file
-+DLL_HEADER Ng_OCC_Geometry * Ng_OCC_Load_BREP (const char * filename);
-+
-+// Set the local mesh size based on geometry / topology
-+DLL_HEADER Ng_Result Ng_OCC_SetLocalMeshSize (Ng_OCC_Geometry * geom,
-+                                              Ng_Mesh * mesh,
-+                                              Ng_Meshing_Parameters * mp);
-+
-+// Mesh the edges and add Face descriptors to prepare for surface meshing
-+DLL_HEADER Ng_Result Ng_OCC_GenerateEdgeMesh (Ng_OCC_Geometry * geom,
-+                                              Ng_Mesh * mesh,
-+                                              Ng_Meshing_Parameters * mp);
-+
-+// Mesh the surfaces of an OCC geometry
-+DLL_HEADER Ng_Result Ng_OCC_GenerateSurfaceMesh (Ng_OCC_Geometry * geom,
-+                                                 Ng_Mesh * mesh,
-+                                                 Ng_Meshing_Parameters * mp); 
-+
-+// Get the face map of an already loaded OCC geometry
-+DLL_HEADER Ng_Result Ng_OCC_GetFMap(Ng_OCC_Geometry * geom, 
-+                                    Ng_OCC_TopTools_IndexedMapOfShape * FMap);
-+
-+#endif // OCCGEOMETRY
-+
-+
-+
-+// **********************************************************
-+// **   Mesh refinement algorithms                         **
-+// **********************************************************
-+
-+// uniform mesh refinement
-+DLL_HEADER void Ng_Uniform_Refinement (Ng_Mesh * mesh);
-+
-+
-+// uniform mesh refinement with geometry adaption:
-+
-+DLL_HEADER void Ng_2D_Uniform_Refinement (Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_STL_Uniform_Refinement (Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_CSG_Uniform_Refinement (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+#ifdef OCCGEOMETRY
-+DLL_HEADER void Ng_OCC_Uniform_Refinement (Ng_OCC_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+#endif
-+
-+
-+
-+// **********************************************************
-+// **   Second Order mesh algorithms                       **
-+// **********************************************************
-+
-+// convert mesh to second order
-+DLL_HEADER void Ng_Generate_SecondOrder (Ng_Mesh * mesh);
-+
-+
-+// convert mesh to second order with geometry adaption:
-+
-+DLL_HEADER void Ng_2D_Generate_SecondOrder (Ng_Geometry_2D * geom,
-+                                        Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_STL_Generate_SecondOrder (Ng_STL_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+DLL_HEADER void Ng_CSG_Generate_SecondOrder (Ng_CSG_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+
-+#ifdef OCCGEOMETRY
-+DLL_HEADER void Ng_OCC_Generate_SecondOrder (Ng_OCC_Geometry * geom,
-+                                         Ng_Mesh * mesh);
-+#endif
-+
-+
-+#endif // NGLIB
-diff -Naur netgen-5.3.1_SRC_orig/tutorials/frame.step netgen-5.3.1_SRC_modif/tutorials/frame.step
---- netgen-5.3.1_SRC_orig/tutorials/frame.step 2014-08-29 13:53:58.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/tutorials/frame.step        2019-11-14 16:56:25.702360052 +0300
-@@ -1,11683 +1,11683 @@
--ISO-10303-21;\r
--HEADER;\r
--FILE_DESCRIPTION((''),'2;1');\r
--FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),\r
--'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',\r
--'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');\r
--FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));\r
--ENDSEC;\r
--DATA;\r
--#1=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2=VECTOR('',#1,1.693725393319E1);\r
--#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
--#4=LINE('',#3,#2);\r
--#5=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6=VECTOR('',#5,9.E0);\r
--#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));\r
--#8=LINE('',#7,#6);\r
--#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));\r
--#10=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);\r
--#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));\r
--#15=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#16=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);\r
--#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));\r
--#20=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#21=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);\r
--#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));\r
--#25=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#26=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);\r
--#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));\r
--#30=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#31=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);\r
--#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));\r
--#35=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#36=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);\r
--#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));\r
--#40=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#41=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);\r
--#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));\r
--#45=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#46=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);\r
--#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));\r
--#50=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#51=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);\r
--#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));\r
--#55=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#56=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);\r
--#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));\r
--#60=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#61=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);\r
--#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));\r
--#65=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#66=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);\r
--#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));\r
--#70=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#71=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);\r
--#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));\r
--#75=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#76=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);\r
--#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));\r
--#80=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#81=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);\r
--#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));\r
--#85=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#86=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);\r
--#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));\r
--#90=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#91=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);\r
--#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));\r
--#95=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#96=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);\r
--#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));\r
--#100=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#101=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);\r
--#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));\r
--#105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#106=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);\r
--#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));\r
--#110=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#111=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);\r
--#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));\r
--#115=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#116=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);\r
--#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));\r
--#120=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#121=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);\r
--#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));\r
--#125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#126=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);\r
--#129=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#130=VECTOR('',#129,1.E0);\r
--#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
--#132=LINE('',#131,#130);\r
--#133=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#134=VECTOR('',#133,3.E0);\r
--#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
--#136=LINE('',#135,#134);\r
--#137=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#138=VECTOR('',#137,1.6E1);\r
--#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
--#140=LINE('',#139,#138);\r
--#141=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#142=VECTOR('',#141,3.E0);\r
--#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
--#144=LINE('',#143,#142);\r
--#145=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#146=VECTOR('',#145,1.E0);\r
--#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));\r
--#148=LINE('',#147,#146);\r
--#149=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#150=VECTOR('',#149,3.75E0);\r
--#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
--#152=LINE('',#151,#150);\r
--#153=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#154=VECTOR('',#153,5.E-1);\r
--#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
--#156=LINE('',#155,#154);\r
--#157=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#158=VECTOR('',#157,1.475E1);\r
--#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
--#160=LINE('',#159,#158);\r
--#161=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#162=VECTOR('',#161,1.6E1);\r
--#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
--#164=LINE('',#163,#162);\r
--#165=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#166=VECTOR('',#165,1.475E1);\r
--#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
--#168=LINE('',#167,#166);\r
--#169=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#170=VECTOR('',#169,5.E-1);\r
--#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
--#172=LINE('',#171,#170);\r
--#173=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#174=VECTOR('',#173,3.75E0);\r
--#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));\r
--#176=LINE('',#175,#174);\r
--#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));\r
--#178=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#179=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);\r
--#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));\r
--#183=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#184=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);\r
--#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));\r
--#188=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#189=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);\r
--#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));\r
--#193=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#194=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);\r
--#197=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#198=VECTOR('',#197,1.3E1);\r
--#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));\r
--#200=LINE('',#199,#198);\r
--#201=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#202=VECTOR('',#201,2.5625E0);\r
--#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));\r
--#204=LINE('',#203,#202);\r
--#205=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#206=VECTOR('',#205,9.E0);\r
--#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));\r
--#208=LINE('',#207,#206);\r
--#209=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#210=VECTOR('',#209,2.5625E0);\r
--#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));\r
--#212=LINE('',#211,#210);\r
--#213=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#214=VECTOR('',#213,8.125E-1);\r
--#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));\r
--#216=LINE('',#215,#214);\r
--#217=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#218=VECTOR('',#217,1.3E1);\r
--#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));\r
--#220=LINE('',#219,#218);\r
--#221=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#222=VECTOR('',#221,8.125E-1);\r
--#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));\r
--#224=LINE('',#223,#222);\r
--#225=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#226=VECTOR('',#225,1.E0);\r
--#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));\r
--#228=LINE('',#227,#226);\r
--#229=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#230=VECTOR('',#229,7.5E-1);\r
--#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
--#232=LINE('',#231,#230);\r
--#233=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#234=VECTOR('',#233,1.2E1);\r
--#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));\r
--#236=LINE('',#235,#234);\r
--#237=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#238=VECTOR('',#237,7.5E-1);\r
--#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
--#240=LINE('',#239,#238);\r
--#241=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#242=VECTOR('',#241,1.E0);\r
--#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
--#244=LINE('',#243,#242);\r
--#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));\r
--#246=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#247=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);\r
--#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));\r
--#251=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#252=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);\r
--#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));\r
--#256=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#257=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);\r
--#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));\r
--#261=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#262=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);\r
--#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));\r
--#266=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#267=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);\r
--#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));\r
--#271=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);\r
--#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));\r
--#276=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#277=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);\r
--#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));\r
--#281=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#282=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);\r
--#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));\r
--#286=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#287=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);\r
--#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));\r
--#291=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#292=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);\r
--#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));\r
--#296=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#297=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);\r
--#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));\r
--#301=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#302=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);\r
--#305=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#306=VECTOR('',#305,3.E0);\r
--#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
--#308=LINE('',#307,#306);\r
--#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));\r
--#310=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#311=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);\r
--#314=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#315=VECTOR('',#314,3.E0);\r
--#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
--#317=LINE('',#316,#315);\r
--#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));\r
--#319=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#320=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);\r
--#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));\r
--#324=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);\r
--#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#329=VECTOR('',#328,4.263248410977E0);\r
--#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
--#331=LINE('',#330,#329);\r
--#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));\r
--#333=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);\r
--#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
--#338=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);\r
--#342=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#343=VECTOR('',#342,3.15E-1);\r
--#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));\r
--#345=LINE('',#344,#343);\r
--#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));\r
--#347=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#348=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);\r
--#351=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#352=VECTOR('',#351,3.15E-1);\r
--#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
--#354=LINE('',#353,#352);\r
--#355=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#356=VECTOR('',#355,7.5E-1);\r
--#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));\r
--#358=LINE('',#357,#356);\r
--#359=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#360=VECTOR('',#359,8.1E-1);\r
--#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
--#362=LINE('',#361,#360);\r
--#363=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#364=VECTOR('',#363,3.875E0);\r
--#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
--#366=LINE('',#365,#364);\r
--#367=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#368=VECTOR('',#367,8.1E-1);\r
--#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
--#370=LINE('',#369,#368);\r
--#371=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#372=VECTOR('',#371,2.525E-1);\r
--#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
--#374=LINE('',#373,#372);\r
--#375=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#376=VECTOR('',#375,3.E0);\r
--#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
--#378=LINE('',#377,#376);\r
--#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));\r
--#380=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#381=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);\r
--#384=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#385=VECTOR('',#384,3.E0);\r
--#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
--#387=LINE('',#386,#385);\r
--#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));\r
--#389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#390=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);\r
--#393=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#394=VECTOR('',#393,3.E0);\r
--#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
--#396=LINE('',#395,#394);\r
--#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));\r
--#398=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#399=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);\r
--#402=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#403=VECTOR('',#402,3.E0);\r
--#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
--#405=LINE('',#404,#403);\r
--#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));\r
--#407=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#408=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);\r
--#411=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#412=VECTOR('',#411,3.E0);\r
--#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
--#414=LINE('',#413,#412);\r
--#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));\r
--#416=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#417=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);\r
--#420=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#421=VECTOR('',#420,3.E0);\r
--#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
--#423=LINE('',#422,#421);\r
--#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));\r
--#425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#426=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);\r
--#429=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#430=VECTOR('',#429,3.E0);\r
--#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
--#432=LINE('',#431,#430);\r
--#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));\r
--#434=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#435=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);\r
--#438=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#439=VECTOR('',#438,3.E0);\r
--#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
--#441=LINE('',#440,#439);\r
--#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));\r
--#443=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#444=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);\r
--#447=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#448=VECTOR('',#447,3.E0);\r
--#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
--#450=LINE('',#449,#448);\r
--#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));\r
--#452=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#453=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);\r
--#456=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#457=VECTOR('',#456,3.E0);\r
--#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
--#459=LINE('',#458,#457);\r
--#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));\r
--#461=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#462=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);\r
--#465=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#466=VECTOR('',#465,3.E0);\r
--#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
--#468=LINE('',#467,#466);\r
--#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));\r
--#470=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#471=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);\r
--#474=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#475=VECTOR('',#474,3.E0);\r
--#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
--#477=LINE('',#476,#475);\r
--#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));\r
--#479=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#480=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);\r
--#483=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#484=VECTOR('',#483,3.E0);\r
--#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
--#486=LINE('',#485,#484);\r
--#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));\r
--#488=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#489=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);\r
--#492=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#493=VECTOR('',#492,3.E0);\r
--#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
--#495=LINE('',#494,#493);\r
--#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));\r
--#497=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#498=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);\r
--#501=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#502=VECTOR('',#501,3.E0);\r
--#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
--#504=LINE('',#503,#502);\r
--#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));\r
--#506=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#507=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);\r
--#510=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#511=VECTOR('',#510,3.E0);\r
--#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
--#513=LINE('',#512,#511);\r
--#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));\r
--#515=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#516=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);\r
--#519=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#520=VECTOR('',#519,3.E0);\r
--#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
--#522=LINE('',#521,#520);\r
--#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));\r
--#524=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#525=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);\r
--#528=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#529=VECTOR('',#528,3.E0);\r
--#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
--#531=LINE('',#530,#529);\r
--#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));\r
--#533=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#534=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);\r
--#537=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#538=VECTOR('',#537,3.E0);\r
--#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
--#540=LINE('',#539,#538);\r
--#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));\r
--#542=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#543=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);\r
--#546=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#547=VECTOR('',#546,3.E0);\r
--#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
--#549=LINE('',#548,#547);\r
--#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));\r
--#551=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#552=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);\r
--#555=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#556=VECTOR('',#555,3.E0);\r
--#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
--#558=LINE('',#557,#556);\r
--#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));\r
--#560=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#561=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);\r
--#564=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#565=VECTOR('',#564,3.E0);\r
--#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
--#567=LINE('',#566,#565);\r
--#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));\r
--#569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#570=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);\r
--#573=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#574=VECTOR('',#573,3.1E-1);\r
--#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
--#576=LINE('',#575,#574);\r
--#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));\r
--#578=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));\r
--#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);\r
--#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));\r
--#583=VECTOR('',#582,3.1E-1);\r
--#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
--#585=LINE('',#584,#583);\r
--#586=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#587=VECTOR('',#586,2.425E-1);\r
--#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));\r
--#589=LINE('',#588,#587);\r
--#590=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#591=VECTOR('',#590,8.E-1);\r
--#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));\r
--#593=LINE('',#592,#591);\r
--#594=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#595=VECTOR('',#594,3.865E0);\r
--#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));\r
--#597=LINE('',#596,#595);\r
--#598=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#599=VECTOR('',#598,8.E-1);\r
--#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));\r
--#601=LINE('',#600,#599);\r
--#602=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#603=VECTOR('',#602,7.4E-1);\r
--#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
--#605=LINE('',#604,#603);\r
--#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#607=VECTOR('',#606,4.263248410977E0);\r
--#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
--#609=LINE('',#608,#607);\r
--#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));\r
--#611=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);\r
--#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
--#616=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);\r
--#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));\r
--#621=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));\r
--#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);\r
--#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#626=VECTOR('',#625,4.263248410977E0);\r
--#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
--#628=LINE('',#627,#626);\r
--#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));\r
--#630=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);\r
--#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
--#635=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);\r
--#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));\r
--#640=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);\r
--#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));\r
--#645=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);\r
--#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#650=VECTOR('',#649,4.263248410977E0);\r
--#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
--#652=LINE('',#651,#650);\r
--#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));\r
--#654=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));\r
--#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);\r
--#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
--#659=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);\r
--#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
--#664=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#665=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);\r
--#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
--#669=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#670=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);\r
--#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
--#674=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#675=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);\r
--#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
--#679=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#680=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);\r
--#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
--#684=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#685=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);\r
--#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
--#689=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#690=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);\r
--#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
--#694=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#695=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);\r
--#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
--#699=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#700=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);\r
--#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
--#704=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#705=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);\r
--#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
--#709=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#710=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);\r
--#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
--#714=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#715=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);\r
--#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
--#719=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#720=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);\r
--#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
--#724=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#725=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);\r
--#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
--#729=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#730=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);\r
--#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
--#734=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#735=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);\r
--#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
--#739=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#740=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);\r
--#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#744=VECTOR('',#743,1.029563014099E1);\r
--#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
--#746=LINE('',#745,#744);\r
--#747=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#748=VECTOR('',#747,2.E0);\r
--#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
--#750=LINE('',#749,#748);\r
--#751=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#752=VECTOR('',#751,2.E0);\r
--#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
--#754=LINE('',#753,#752);\r
--#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#756=VECTOR('',#755,1.029563014099E1);\r
--#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
--#758=LINE('',#757,#756);\r
--#759=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#760=VECTOR('',#759,3.895172754280E0);\r
--#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
--#762=LINE('',#761,#760);\r
--#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#764=VECTOR('',#763,6.863753427325E0);\r
--#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
--#766=LINE('',#765,#764);\r
--#767=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#768=VECTOR('',#767,5.618394209466E-1);\r
--#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
--#770=LINE('',#769,#768);\r
--#771=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#772=VECTOR('',#771,6.E0);\r
--#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
--#774=LINE('',#773,#772);\r
--#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#776=VECTOR('',#775,6.863753427325E0);\r
--#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));\r
--#778=LINE('',#777,#776);\r
--#779=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#780=VECTOR('',#779,3.895172754280E0);\r
--#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));\r
--#782=LINE('',#781,#780);\r
--#783=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#784=VECTOR('',#783,6.E0);\r
--#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));\r
--#786=LINE('',#785,#784);\r
--#787=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#788=VECTOR('',#787,5.618394209466E-1);\r
--#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));\r
--#790=LINE('',#789,#788);\r
--#791=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#792=VECTOR('',#791,2.5E-1);\r
--#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));\r
--#794=LINE('',#793,#792);\r
--#795=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#796=VECTOR('',#795,2.5E-1);\r
--#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));\r
--#798=LINE('',#797,#796);\r
--#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
--#800=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#801=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);\r
--#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
--#805=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#806=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);\r
--#809=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#810=VECTOR('',#809,2.E0);\r
--#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));\r
--#812=LINE('',#811,#810);\r
--#813=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#814=VECTOR('',#813,2.E0);\r
--#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));\r
--#816=LINE('',#815,#814);\r
--#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));\r
--#818=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#819=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);\r
--#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));\r
--#823=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#824=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);\r
--#827=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#828=VECTOR('',#827,5.E0);\r
--#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
--#830=LINE('',#829,#828);\r
--#831=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#832=VECTOR('',#831,1.75E0);\r
--#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
--#834=LINE('',#833,#832);\r
--#835=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#836=VECTOR('',#835,5.E0);\r
--#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));\r
--#838=LINE('',#837,#836);\r
--#839=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#840=VECTOR('',#839,1.E1);\r
--#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
--#842=LINE('',#841,#840);\r
--#843=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#844=VECTOR('',#843,2.E0);\r
--#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));\r
--#846=LINE('',#845,#844);\r
--#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#848=VECTOR('',#847,1.029563014099E1);\r
--#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));\r
--#850=LINE('',#849,#848);\r
--#851=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#852=VECTOR('',#851,1.E0);\r
--#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));\r
--#854=LINE('',#853,#852);\r
--#855=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#856=VECTOR('',#855,1.972007605460E-1);\r
--#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));\r
--#858=LINE('',#857,#856);\r
--#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#860=VECTOR('',#859,2.059126028197E0);\r
--#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));\r
--#862=LINE('',#861,#860);\r
--#863=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#864=VECTOR('',#863,1.197200760546E0);\r
--#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));\r
--#866=LINE('',#865,#864);\r
--#867=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#868=VECTOR('',#867,6.8E0);\r
--#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));\r
--#870=LINE('',#869,#868);\r
--#871=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#872=VECTOR('',#871,1.3E0);\r
--#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));\r
--#874=LINE('',#873,#872);\r
--#875=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#876=VECTOR('',#875,4.3E0);\r
--#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
--#878=LINE('',#877,#876);\r
--#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#880=VECTOR('',#879,5.773502691896E0);\r
--#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
--#882=LINE('',#881,#880);\r
--#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));\r
--#884=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#885=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);\r
--#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));\r
--#889=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#890=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);\r
--#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));\r
--#894=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#895=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);\r
--#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));\r
--#899=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#900=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);\r
--#903=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#904=VECTOR('',#903,4.531373033403E0);\r
--#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));\r
--#906=LINE('',#905,#904);\r
--#907=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#908=VECTOR('',#907,9.E0);\r
--#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
--#910=LINE('',#909,#908);\r
--#911=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#912=VECTOR('',#911,4.531373033403E0);\r
--#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
--#914=LINE('',#913,#912);\r
--#915=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#916=VECTOR('',#915,3.E0);\r
--#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
--#918=LINE('',#917,#916);\r
--#919=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#920=VECTOR('',#919,1.6E1);\r
--#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
--#922=LINE('',#921,#920);\r
--#923=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#924=VECTOR('',#923,3.E0);\r
--#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));\r
--#926=LINE('',#925,#924);\r
--#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));\r
--#928=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#929=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);\r
--#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));\r
--#933=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#934=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);\r
--#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));\r
--#938=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#939=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);\r
--#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));\r
--#943=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#944=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);\r
--#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#948=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#949=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);\r
--#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#954=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);\r
--#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#958=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#959=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);\r
--#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#963=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#964=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);\r
--#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#968=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#969=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);\r
--#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#973=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#974=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);\r
--#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#978=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#979=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);\r
--#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#983=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#984=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);\r
--#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#988=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#989=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);\r
--#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#993=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#994=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);\r
--#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#998=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#999=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);\r
--#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#1003=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1004=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);\r
--#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#1008=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1009=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);\r
--#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#1013=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1014=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);\r
--#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#1018=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1019=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);\r
--#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#1023=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1024=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);\r
--#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#1028=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1029=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);\r
--#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#1033=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1034=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);\r
--#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#1038=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1039=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);\r
--#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#1043=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1044=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);\r
--#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#1048=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1049=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);\r
--#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#1053=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1054=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);\r
--#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#1058=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1059=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);\r
--#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#1063=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1064=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);\r
--#1067=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1068=VECTOR('',#1067,2.5625E0);\r
--#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
--#1070=LINE('',#1069,#1068);\r
--#1071=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1072=VECTOR('',#1071,1.3E1);\r
--#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
--#1074=LINE('',#1073,#1072);\r
--#1075=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1076=VECTOR('',#1075,2.5625E0);\r
--#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
--#1078=LINE('',#1077,#1076);\r
--#1079=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1080=VECTOR('',#1079,9.E0);\r
--#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
--#1082=LINE('',#1081,#1080);\r
--#1083=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1084=VECTOR('',#1083,1.3E1);\r
--#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
--#1086=LINE('',#1085,#1084);\r
--#1087=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1088=VECTOR('',#1087,8.125E-1);\r
--#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
--#1090=LINE('',#1089,#1088);\r
--#1091=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1092=VECTOR('',#1091,1.E0);\r
--#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));\r
--#1094=LINE('',#1093,#1092);\r
--#1095=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1096=VECTOR('',#1095,7.5E-1);\r
--#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
--#1098=LINE('',#1097,#1096);\r
--#1099=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1100=VECTOR('',#1099,7.5E-1);\r
--#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
--#1102=LINE('',#1101,#1100);\r
--#1103=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1104=VECTOR('',#1103,1.E0);\r
--#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
--#1106=LINE('',#1105,#1104);\r
--#1107=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1108=VECTOR('',#1107,8.125E-1);\r
--#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
--#1110=LINE('',#1109,#1108);\r
--#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#1112=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1113=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);\r
--#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#1117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1118=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);\r
--#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#1122=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1123=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);\r
--#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#1127=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1128=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);\r
--#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#1132=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1133=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);\r
--#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#1137=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1138=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);\r
--#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#1142=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1143=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);\r
--#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#1147=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);\r
--#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#1152=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1153=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);\r
--#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#1157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1158=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);\r
--#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#1162=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1163=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);\r
--#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#1167=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1168=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);\r
--#1171=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1172=VECTOR('',#1171,2.886751345948E0);\r
--#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
--#1174=LINE('',#1173,#1172);\r
--#1175=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1176=VECTOR('',#1175,2.25E0);\r
--#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
--#1178=LINE('',#1177,#1176);\r
--#1179=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1180=VECTOR('',#1179,1.75E0);\r
--#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));\r
--#1182=LINE('',#1181,#1180);\r
--#1183=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1184=VECTOR('',#1183,5.E-1);\r
--#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
--#1186=LINE('',#1185,#1184);\r
--#1187=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1188=VECTOR('',#1187,1.475E1);\r
--#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
--#1190=LINE('',#1189,#1188);\r
--#1191=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1192=VECTOR('',#1191,1.6E1);\r
--#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
--#1194=LINE('',#1193,#1192);\r
--#1195=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1196=VECTOR('',#1195,1.475E1);\r
--#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));\r
--#1198=LINE('',#1197,#1196);\r
--#1199=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1200=VECTOR('',#1199,5.E-1);\r
--#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
--#1202=LINE('',#1201,#1200);\r
--#1203=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1204=VECTOR('',#1203,1.75E0);\r
--#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
--#1206=LINE('',#1205,#1204);\r
--#1207=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1208=VECTOR('',#1207,2.25E0);\r
--#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
--#1210=LINE('',#1209,#1208);\r
--#1211=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1212=VECTOR('',#1211,2.886751345948E0);\r
--#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
--#1214=LINE('',#1213,#1212);\r
--#1215=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1216=VECTOR('',#1215,1.75E0);\r
--#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
--#1218=LINE('',#1217,#1216);\r
--#1219=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1220=VECTOR('',#1219,2.886751345948E0);\r
--#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));\r
--#1222=LINE('',#1221,#1220);\r
--#1223=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1224=VECTOR('',#1223,3.E0);\r
--#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
--#1226=LINE('',#1225,#1224);\r
--#1227=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1228=VECTOR('',#1227,1.4E1);\r
--#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
--#1230=LINE('',#1229,#1228);\r
--#1231=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1232=VECTOR('',#1231,3.E0);\r
--#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
--#1234=LINE('',#1233,#1232);\r
--#1235=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1236=VECTOR('',#1235,2.886751345948E0);\r
--#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));\r
--#1238=LINE('',#1237,#1236);\r
--#1239=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1240=VECTOR('',#1239,1.75E0);\r
--#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
--#1242=LINE('',#1241,#1240);\r
--#1243=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1244=VECTOR('',#1243,2.5E-1);\r
--#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));\r
--#1246=LINE('',#1245,#1244);\r
--#1247=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1248=VECTOR('',#1247,2.5E-1);\r
--#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));\r
--#1250=LINE('',#1249,#1248);\r
--#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
--#1252=VECTOR('',#1251,1.154700538379E-1);\r
--#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
--#1254=LINE('',#1253,#1252);\r
--#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));\r
--#1256=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1257=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);\r
--#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
--#1261=VECTOR('',#1260,1.154700538379E-1);\r
--#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
--#1263=LINE('',#1262,#1261);\r
--#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));\r
--#1265=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1266=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);\r
--#1269=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1270=VECTOR('',#1269,2.5E-1);\r
--#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));\r
--#1272=LINE('',#1271,#1270);\r
--#1273=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1274=VECTOR('',#1273,2.5E-1);\r
--#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));\r
--#1276=LINE('',#1275,#1274);\r
--#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
--#1278=VECTOR('',#1277,1.154700538379E-1);\r
--#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
--#1280=LINE('',#1279,#1278);\r
--#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));\r
--#1282=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1283=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);\r
--#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
--#1287=VECTOR('',#1286,1.154700538379E-1);\r
--#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
--#1289=LINE('',#1288,#1287);\r
--#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));\r
--#1291=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1292=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);\r
--#1295=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1296=VECTOR('',#1295,1.5E0);\r
--#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
--#1298=LINE('',#1297,#1296);\r
--#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));\r
--#1300=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1301=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);\r
--#1304=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1305=VECTOR('',#1304,1.5E0);\r
--#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));\r
--#1307=LINE('',#1306,#1305);\r
--#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));\r
--#1309=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));\r
--#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);\r
--#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
--#1314=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));\r
--#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);\r
--#1318=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1319=VECTOR('',#1318,1.5E0);\r
--#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
--#1321=LINE('',#1320,#1319);\r
--#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));\r
--#1323=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1324=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);\r
--#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));\r
--#1328=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));\r
--#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);\r
--#1332=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1333=VECTOR('',#1332,1.5E0);\r
--#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));\r
--#1335=LINE('',#1334,#1333);\r
--#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
--#1337=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1338=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);\r
--#1341=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1342=VECTOR('',#1341,1.5E0);\r
--#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
--#1344=LINE('',#1343,#1342);\r
--#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));\r
--#1346=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1347=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);\r
--#1350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1351=VECTOR('',#1350,1.5E0);\r
--#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));\r
--#1353=LINE('',#1352,#1351);\r
--#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));\r
--#1355=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));\r
--#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);\r
--#1359=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1360=VECTOR('',#1359,1.5E0);\r
--#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));\r
--#1362=LINE('',#1361,#1360);\r
--#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));\r
--#1364=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1365=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);\r
--#1368=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1369=VECTOR('',#1368,1.5E0);\r
--#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));\r
--#1371=LINE('',#1370,#1369);\r
--#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));\r
--#1373=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1374=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);\r
--#1377=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1378=VECTOR('',#1377,1.5E0);\r
--#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
--#1380=LINE('',#1379,#1378);\r
--#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));\r
--#1382=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1383=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);\r
--#1386=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1387=VECTOR('',#1386,1.5E0);\r
--#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));\r
--#1389=LINE('',#1388,#1387);\r
--#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));\r
--#1391=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1392=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);\r
--#1395=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1396=VECTOR('',#1395,1.5E0);\r
--#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
--#1398=LINE('',#1397,#1396);\r
--#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));\r
--#1400=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1401=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);\r
--#1404=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1405=VECTOR('',#1404,1.5E0);\r
--#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
--#1407=LINE('',#1406,#1405);\r
--#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));\r
--#1409=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1410=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);\r
--#1413=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1414=VECTOR('',#1413,1.5E0);\r
--#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
--#1416=LINE('',#1415,#1414);\r
--#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));\r
--#1418=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1419=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);\r
--#1422=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1423=VECTOR('',#1422,1.5E0);\r
--#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
--#1425=LINE('',#1424,#1423);\r
--#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));\r
--#1427=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1428=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);\r
--#1431=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1432=VECTOR('',#1431,1.5E0);\r
--#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));\r
--#1434=LINE('',#1433,#1432);\r
--#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));\r
--#1436=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1437=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);\r
--#1440=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1441=VECTOR('',#1440,1.5E0);\r
--#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));\r
--#1443=LINE('',#1442,#1441);\r
--#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));\r
--#1445=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1446=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);\r
--#1449=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1450=VECTOR('',#1449,1.5E0);\r
--#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
--#1452=LINE('',#1451,#1450);\r
--#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));\r
--#1454=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1455=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);\r
--#1458=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1459=VECTOR('',#1458,1.5E0);\r
--#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));\r
--#1461=LINE('',#1460,#1459);\r
--#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
--#1463=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1464=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);\r
--#1467=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1468=VECTOR('',#1467,1.5E0);\r
--#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
--#1470=LINE('',#1469,#1468);\r
--#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));\r
--#1472=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1473=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);\r
--#1476=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1477=VECTOR('',#1476,1.5E0);\r
--#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));\r
--#1479=LINE('',#1478,#1477);\r
--#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
--#1481=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1482=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);\r
--#1485=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1486=VECTOR('',#1485,1.5E0);\r
--#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
--#1488=LINE('',#1487,#1486);\r
--#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));\r
--#1490=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1491=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);\r
--#1494=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1495=VECTOR('',#1494,1.5E0);\r
--#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
--#1497=LINE('',#1496,#1495);\r
--#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));\r
--#1499=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1500=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);\r
--#1503=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1504=VECTOR('',#1503,1.5E0);\r
--#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));\r
--#1506=LINE('',#1505,#1504);\r
--#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));\r
--#1508=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1509=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);\r
--#1512=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1513=VECTOR('',#1512,1.5E0);\r
--#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));\r
--#1515=LINE('',#1514,#1513);\r
--#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));\r
--#1517=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1518=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);\r
--#1521=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1522=VECTOR('',#1521,1.5E0);\r
--#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));\r
--#1524=LINE('',#1523,#1522);\r
--#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));\r
--#1526=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1527=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);\r
--#1530=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1531=VECTOR('',#1530,1.5E0);\r
--#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
--#1533=LINE('',#1532,#1531);\r
--#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));\r
--#1535=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1536=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);\r
--#1539=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1540=VECTOR('',#1539,1.5E0);\r
--#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));\r
--#1542=LINE('',#1541,#1540);\r
--#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));\r
--#1544=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1545=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);\r
--#1548=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1549=VECTOR('',#1548,1.5E0);\r
--#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));\r
--#1551=LINE('',#1550,#1549);\r
--#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));\r
--#1553=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1554=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);\r
--#1557=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1558=VECTOR('',#1557,1.5E0);\r
--#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
--#1560=LINE('',#1559,#1558);\r
--#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1562=VECTOR('',#1561,5.656854249492E0);\r
--#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
--#1564=LINE('',#1563,#1562);\r
--#1565=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1566=VECTOR('',#1565,1.5E0);\r
--#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));\r
--#1568=LINE('',#1567,#1566);\r
--#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1570=VECTOR('',#1569,5.656854249492E0);\r
--#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
--#1572=LINE('',#1571,#1570);\r
--#1573=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1574=VECTOR('',#1573,1.5E0);\r
--#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
--#1576=LINE('',#1575,#1574);\r
--#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1578=VECTOR('',#1577,5.656854249492E0);\r
--#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
--#1580=LINE('',#1579,#1578);\r
--#1581=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1582=VECTOR('',#1581,1.5E0);\r
--#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));\r
--#1584=LINE('',#1583,#1582);\r
--#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1586=VECTOR('',#1585,5.656854249492E0);\r
--#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
--#1588=LINE('',#1587,#1586);\r
--#1589=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1590=VECTOR('',#1589,1.5E0);\r
--#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
--#1592=LINE('',#1591,#1590);\r
--#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));\r
--#1594=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1595=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);\r
--#1598=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1599=VECTOR('',#1598,1.5E0);\r
--#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
--#1601=LINE('',#1600,#1599);\r
--#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));\r
--#1603=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1604=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);\r
--#1607=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1608=VECTOR('',#1607,1.5E0);\r
--#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
--#1610=LINE('',#1609,#1608);\r
--#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1612=VECTOR('',#1611,5.656854249492E0);\r
--#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
--#1614=LINE('',#1613,#1612);\r
--#1615=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1616=VECTOR('',#1615,1.5E0);\r
--#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));\r
--#1618=LINE('',#1617,#1616);\r
--#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1620=VECTOR('',#1619,5.656854249492E0);\r
--#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
--#1622=LINE('',#1621,#1620);\r
--#1623=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1624=VECTOR('',#1623,1.5E0);\r
--#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
--#1626=LINE('',#1625,#1624);\r
--#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1628=VECTOR('',#1627,5.656854249492E0);\r
--#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
--#1630=LINE('',#1629,#1628);\r
--#1631=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1632=VECTOR('',#1631,1.5E0);\r
--#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));\r
--#1634=LINE('',#1633,#1632);\r
--#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1636=VECTOR('',#1635,5.656854249492E0);\r
--#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
--#1638=LINE('',#1637,#1636);\r
--#1639=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1640=VECTOR('',#1639,1.5E0);\r
--#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
--#1642=LINE('',#1641,#1640);\r
--#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1644=VECTOR('',#1643,7.071067811865E-1);\r
--#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
--#1646=LINE('',#1645,#1644);\r
--#1647=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1648=VECTOR('',#1647,1.5E0);\r
--#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));\r
--#1650=LINE('',#1649,#1648);\r
--#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1652=VECTOR('',#1651,7.071067811865E-1);\r
--#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
--#1654=LINE('',#1653,#1652);\r
--#1655=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1656=VECTOR('',#1655,2.5E0);\r
--#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
--#1658=LINE('',#1657,#1656);\r
--#1659=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1660=VECTOR('',#1659,2.E0);\r
--#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
--#1662=LINE('',#1661,#1660);\r
--#1663=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1664=VECTOR('',#1663,2.E0);\r
--#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
--#1666=LINE('',#1665,#1664);\r
--#1667=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1668=VECTOR('',#1667,2.E0);\r
--#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
--#1670=LINE('',#1669,#1668);\r
--#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
--#1672=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1673=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);\r
--#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
--#1677=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1678=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);\r
--#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
--#1682=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1683=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);\r
--#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
--#1687=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1688=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);\r
--#1691=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1692=VECTOR('',#1691,2.E0);\r
--#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
--#1694=LINE('',#1693,#1692);\r
--#1695=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1696=VECTOR('',#1695,1.E1);\r
--#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
--#1698=LINE('',#1697,#1696);\r
--#1699=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1700=VECTOR('',#1699,1.5E0);\r
--#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));\r
--#1702=LINE('',#1701,#1700);\r
--#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));\r
--#1704=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1705=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);\r
--#1708=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1709=VECTOR('',#1708,1.5E0);\r
--#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));\r
--#1711=LINE('',#1710,#1709);\r
--#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));\r
--#1713=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1714=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);\r
--#1717=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1718=VECTOR('',#1717,1.2E1);\r
--#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
--#1720=LINE('',#1719,#1718);\r
--#1721=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1722=VECTOR('',#1721,1.5E0);\r
--#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));\r
--#1724=LINE('',#1723,#1722);\r
--#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));\r
--#1726=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1727=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);\r
--#1730=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1731=VECTOR('',#1730,1.5E0);\r
--#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
--#1733=LINE('',#1732,#1731);\r
--#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));\r
--#1735=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1736=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);\r
--#1739=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1740=VECTOR('',#1739,2.E0);\r
--#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
--#1742=LINE('',#1741,#1740);\r
--#1743=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1744=VECTOR('',#1743,1.E1);\r
--#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
--#1746=LINE('',#1745,#1744);\r
--#1747=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1748=VECTOR('',#1747,1.5E0);\r
--#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
--#1750=LINE('',#1749,#1748);\r
--#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1752=VECTOR('',#1751,7.071067811865E-1);\r
--#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
--#1754=LINE('',#1753,#1752);\r
--#1755=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1756=VECTOR('',#1755,1.5E0);\r
--#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));\r
--#1758=LINE('',#1757,#1756);\r
--#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#1760=VECTOR('',#1759,7.071067811865E-1);\r
--#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
--#1762=LINE('',#1761,#1760);\r
--#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));\r
--#1764=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1765=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);\r
--#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));\r
--#1769=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1770=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);\r
--#1773=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1774=VECTOR('',#1773,5.E0);\r
--#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));\r
--#1776=LINE('',#1775,#1774);\r
--#1777=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1778=VECTOR('',#1777,1.E0);\r
--#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));\r
--#1780=LINE('',#1779,#1778);\r
--#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#1782=VECTOR('',#1781,1.029563014099E1);\r
--#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));\r
--#1784=LINE('',#1783,#1782);\r
--#1785=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1786=VECTOR('',#1785,2.E0);\r
--#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));\r
--#1788=LINE('',#1787,#1786);\r
--#1789=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1790=VECTOR('',#1789,1.E1);\r
--#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
--#1792=LINE('',#1791,#1790);\r
--#1793=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1794=VECTOR('',#1793,5.E0);\r
--#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
--#1796=LINE('',#1795,#1794);\r
--#1797=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1798=VECTOR('',#1797,1.75E0);\r
--#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
--#1800=LINE('',#1799,#1798);\r
--#1801=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1802=VECTOR('',#1801,4.3E0);\r
--#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));\r
--#1804=LINE('',#1803,#1802);\r
--#1805=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1806=VECTOR('',#1805,1.3E0);\r
--#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
--#1808=LINE('',#1807,#1806);\r
--#1809=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1810=VECTOR('',#1809,6.8E0);\r
--#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
--#1812=LINE('',#1811,#1810);\r
--#1813=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1814=VECTOR('',#1813,1.197200760546E0);\r
--#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
--#1816=LINE('',#1815,#1814);\r
--#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#1818=VECTOR('',#1817,2.059126028197E0);\r
--#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
--#1820=LINE('',#1819,#1818);\r
--#1821=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1822=VECTOR('',#1821,1.972007605460E-1);\r
--#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
--#1824=LINE('',#1823,#1822);\r
--#1825=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1826=VECTOR('',#1825,2.E0);\r
--#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));\r
--#1828=LINE('',#1827,#1826);\r
--#1829=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1830=VECTOR('',#1829,2.E0);\r
--#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));\r
--#1832=LINE('',#1831,#1830);\r
--#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#1834=VECTOR('',#1833,5.773502691896E0);\r
--#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
--#1836=LINE('',#1835,#1834);\r
--#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));\r
--#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));\r
--#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));\r
--#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));\r
--#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));\r
--#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));\r
--#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));\r
--#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));\r
--#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
--#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
--#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));\r
--#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));\r
--#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));\r
--#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));\r
--#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));\r
--#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));\r
--#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));\r
--#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));\r
--#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#1858=VECTOR('',#1857,5.773502691896E0);\r
--#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));\r
--#1860=LINE('',#1859,#1858);\r
--#1861=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1862=VECTOR('',#1861,2.035898384862E0);\r
--#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));\r
--#1864=LINE('',#1863,#1862);\r
--#1865=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1866=VECTOR('',#1865,2.035898384862E0);\r
--#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));\r
--#1868=LINE('',#1867,#1866);\r
--#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
--#1870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1871=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);\r
--#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
--#1875=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1876=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);\r
--#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
--#1880=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1881=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);\r
--#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
--#1885=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1886=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);\r
--#1889=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1890=VECTOR('',#1889,1.E0);\r
--#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));\r
--#1892=LINE('',#1891,#1890);\r
--#1893=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1894=VECTOR('',#1893,1.E0);\r
--#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));\r
--#1896=LINE('',#1895,#1894);\r
--#1897=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1898=VECTOR('',#1897,2.5E0);\r
--#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
--#1900=LINE('',#1899,#1898);\r
--#1901=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1902=VECTOR('',#1901,2.E0);\r
--#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
--#1904=LINE('',#1903,#1902);\r
--#1905=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1906=VECTOR('',#1905,1.5E0);\r
--#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
--#1908=LINE('',#1907,#1906);\r
--#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1910=VECTOR('',#1909,7.071067811865E-1);\r
--#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
--#1912=LINE('',#1911,#1910);\r
--#1913=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#1914=VECTOR('',#1913,1.5E0);\r
--#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));\r
--#1916=LINE('',#1915,#1914);\r
--#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#1918=VECTOR('',#1917,7.071067811865E-1);\r
--#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
--#1920=LINE('',#1919,#1918);\r
--#1921=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1922=VECTOR('',#1921,2.E0);\r
--#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
--#1924=LINE('',#1923,#1922);\r
--#1925=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1926=VECTOR('',#1925,2.E0);\r
--#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
--#1928=LINE('',#1927,#1926);\r
--#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
--#1930=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1931=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);\r
--#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
--#1935=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1936=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);\r
--#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
--#1940=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1941=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);\r
--#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
--#1945=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1946=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);\r
--#1949=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1950=VECTOR('',#1949,3.75E-1);\r
--#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));\r
--#1952=LINE('',#1951,#1950);\r
--#1953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1954=VECTOR('',#1953,3.75E-1);\r
--#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));\r
--#1956=LINE('',#1955,#1954);\r
--#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
--#1958=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1959=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);\r
--#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
--#1963=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1964=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);\r
--#1967=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1968=VECTOR('',#1967,2.5E-1);\r
--#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));\r
--#1970=LINE('',#1969,#1968);\r
--#1971=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1972=VECTOR('',#1971,2.5E-1);\r
--#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));\r
--#1974=LINE('',#1973,#1972);\r
--#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
--#1976=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1977=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);\r
--#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
--#1981=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#1982=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);\r
--#1985=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1986=VECTOR('',#1985,5.E-1);\r
--#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
--#1988=LINE('',#1987,#1986);\r
--#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));\r
--#1990=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1991=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);\r
--#1994=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#1995=VECTOR('',#1994,5.E-1);\r
--#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));\r
--#1997=LINE('',#1996,#1995);\r
--#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));\r
--#1999=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2000=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);\r
--#2003=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2004=VECTOR('',#2003,4.3E0);\r
--#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
--#2006=LINE('',#2005,#2004);\r
--#2007=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2008=VECTOR('',#2007,1.972007605460E-1);\r
--#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));\r
--#2010=LINE('',#2009,#2008);\r
--#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#2012=VECTOR('',#2011,2.059126028197E0);\r
--#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));\r
--#2014=LINE('',#2013,#2012);\r
--#2015=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2016=VECTOR('',#2015,1.197200760546E0);\r
--#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));\r
--#2018=LINE('',#2017,#2016);\r
--#2019=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2020=VECTOR('',#2019,6.8E0);\r
--#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));\r
--#2022=LINE('',#2021,#2020);\r
--#2023=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2024=VECTOR('',#2023,1.3E0);\r
--#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));\r
--#2026=LINE('',#2025,#2024);\r
--#2027=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2028=VECTOR('',#2027,5.E-1);\r
--#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
--#2030=LINE('',#2029,#2028);\r
--#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));\r
--#2032=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2033=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);\r
--#2036=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2037=VECTOR('',#2036,5.E-1);\r
--#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));\r
--#2039=LINE('',#2038,#2037);\r
--#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));\r
--#2041=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);\r
--#2045=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2046=VECTOR('',#2045,5.E-1);\r
--#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
--#2048=LINE('',#2047,#2046);\r
--#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));\r
--#2050=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);\r
--#2054=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2055=VECTOR('',#2054,5.E-1);\r
--#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));\r
--#2057=LINE('',#2056,#2055);\r
--#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));\r
--#2059=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2060=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);\r
--#2063=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2064=VECTOR('',#2063,5.E-1);\r
--#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
--#2066=LINE('',#2065,#2064);\r
--#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));\r
--#2068=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2069=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);\r
--#2072=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2073=VECTOR('',#2072,5.E-1);\r
--#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));\r
--#2075=LINE('',#2074,#2073);\r
--#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));\r
--#2077=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2078=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);\r
--#2081=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2082=VECTOR('',#2081,5.E-1);\r
--#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
--#2084=LINE('',#2083,#2082);\r
--#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));\r
--#2086=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2087=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);\r
--#2090=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2091=VECTOR('',#2090,5.E-1);\r
--#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));\r
--#2093=LINE('',#2092,#2091);\r
--#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));\r
--#2095=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2096=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);\r
--#2099=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2100=VECTOR('',#2099,5.E-1);\r
--#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
--#2102=LINE('',#2101,#2100);\r
--#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));\r
--#2104=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);\r
--#2108=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2109=VECTOR('',#2108,5.E-1);\r
--#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));\r
--#2111=LINE('',#2110,#2109);\r
--#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));\r
--#2113=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2114=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);\r
--#2117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2118=VECTOR('',#2117,1.5E0);\r
--#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
--#2120=LINE('',#2119,#2118);\r
--#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#2122=VECTOR('',#2121,7.071067811865E-1);\r
--#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
--#2124=LINE('',#2123,#2122);\r
--#2125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2126=VECTOR('',#2125,1.5E0);\r
--#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));\r
--#2128=LINE('',#2127,#2126);\r
--#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#2130=VECTOR('',#2129,7.071067811865E-1);\r
--#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
--#2132=LINE('',#2131,#2130);\r
--#2133=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2134=VECTOR('',#2133,3.75E-1);\r
--#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));\r
--#2136=LINE('',#2135,#2134);\r
--#2137=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2138=VECTOR('',#2137,3.75E-1);\r
--#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));\r
--#2140=LINE('',#2139,#2138);\r
--#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
--#2142=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2143=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);\r
--#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
--#2147=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2148=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);\r
--#2151=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2152=VECTOR('',#2151,2.5E-1);\r
--#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));\r
--#2154=LINE('',#2153,#2152);\r
--#2155=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2156=VECTOR('',#2155,2.5E-1);\r
--#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));\r
--#2158=LINE('',#2157,#2156);\r
--#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
--#2160=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2161=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);\r
--#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
--#2165=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2166=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);\r
--#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));\r
--#2170=VECTOR('',#2169,2.5E-1);\r
--#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));\r
--#2172=LINE('',#2171,#2170);\r
--#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));\r
--#2174=VECTOR('',#2173,2.5E-1);\r
--#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));\r
--#2176=LINE('',#2175,#2174);\r
--#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
--#2178=VECTOR('',#2177,1.154700538379E-1);\r
--#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
--#2180=LINE('',#2179,#2178);\r
--#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
--#2182=VECTOR('',#2181,1.154700538379E-1);\r
--#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
--#2184=LINE('',#2183,#2182);\r
--#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));\r
--#2186=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2187=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);\r
--#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));\r
--#2191=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2192=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);\r
--#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));\r
--#2196=VECTOR('',#2195,2.5E-1);\r
--#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));\r
--#2198=LINE('',#2197,#2196);\r
--#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));\r
--#2200=VECTOR('',#2199,2.5E-1);\r
--#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));\r
--#2202=LINE('',#2201,#2200);\r
--#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));\r
--#2204=VECTOR('',#2203,1.154700538379E-1);\r
--#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
--#2206=LINE('',#2205,#2204);\r
--#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));\r
--#2208=VECTOR('',#2207,1.154700538379E-1);\r
--#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
--#2210=LINE('',#2209,#2208);\r
--#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));\r
--#2212=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2213=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);\r
--#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));\r
--#2217=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2218=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);\r
--#2221=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2222=VECTOR('',#2221,5.E-1);\r
--#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));\r
--#2224=LINE('',#2223,#2222);\r
--#2225=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2226=VECTOR('',#2225,5.E-1);\r
--#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));\r
--#2228=LINE('',#2227,#2226);\r
--#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
--#2230=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2231=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);\r
--#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
--#2235=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2236=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);\r
--#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
--#2240=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2241=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);\r
--#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
--#2245=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2246=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);\r
--#2249=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2250=VECTOR('',#2249,1.E0);\r
--#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));\r
--#2252=LINE('',#2251,#2250);\r
--#2253=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2254=VECTOR('',#2253,1.E0);\r
--#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));\r
--#2256=LINE('',#2255,#2254);\r
--#2257=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2258=VECTOR('',#2257,5.E-1);\r
--#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));\r
--#2260=LINE('',#2259,#2258);\r
--#2261=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2262=VECTOR('',#2261,5.E-1);\r
--#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));\r
--#2264=LINE('',#2263,#2262);\r
--#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
--#2266=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2267=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);\r
--#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
--#2271=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);\r
--#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
--#2276=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2277=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);\r
--#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
--#2281=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2282=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);\r
--#2285=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2286=VECTOR('',#2285,1.E0);\r
--#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));\r
--#2288=LINE('',#2287,#2286);\r
--#2289=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2290=VECTOR('',#2289,1.E0);\r
--#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));\r
--#2292=LINE('',#2291,#2290);\r
--#2293=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2294=VECTOR('',#2293,5.E-1);\r
--#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));\r
--#2296=LINE('',#2295,#2294);\r
--#2297=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2298=VECTOR('',#2297,5.E-1);\r
--#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));\r
--#2300=LINE('',#2299,#2298);\r
--#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
--#2302=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2303=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);\r
--#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
--#2307=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2308=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);\r
--#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
--#2312=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2313=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);\r
--#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
--#2317=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2318=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);\r
--#2321=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2322=VECTOR('',#2321,1.E0);\r
--#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));\r
--#2324=LINE('',#2323,#2322);\r
--#2325=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2326=VECTOR('',#2325,1.E0);\r
--#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));\r
--#2328=LINE('',#2327,#2326);\r
--#2329=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2330=VECTOR('',#2329,5.E-1);\r
--#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));\r
--#2332=LINE('',#2331,#2330);\r
--#2333=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2334=VECTOR('',#2333,5.E-1);\r
--#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));\r
--#2336=LINE('',#2335,#2334);\r
--#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
--#2338=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2339=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);\r
--#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
--#2343=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2344=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);\r
--#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
--#2348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2349=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);\r
--#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
--#2353=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2354=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);\r
--#2357=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2358=VECTOR('',#2357,1.E0);\r
--#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));\r
--#2360=LINE('',#2359,#2358);\r
--#2361=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2362=VECTOR('',#2361,1.E0);\r
--#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));\r
--#2364=LINE('',#2363,#2362);\r
--#2365=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2366=VECTOR('',#2365,5.E-1);\r
--#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));\r
--#2368=LINE('',#2367,#2366);\r
--#2369=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2370=VECTOR('',#2369,5.E-1);\r
--#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));\r
--#2372=LINE('',#2371,#2370);\r
--#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
--#2374=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2375=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);\r
--#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
--#2379=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2380=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);\r
--#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
--#2384=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2385=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);\r
--#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
--#2389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2390=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);\r
--#2393=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2394=VECTOR('',#2393,1.E0);\r
--#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));\r
--#2396=LINE('',#2395,#2394);\r
--#2397=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2398=VECTOR('',#2397,1.E0);\r
--#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));\r
--#2400=LINE('',#2399,#2398);\r
--#2401=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2402=VECTOR('',#2401,5.E-1);\r
--#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));\r
--#2404=LINE('',#2403,#2402);\r
--#2405=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2406=VECTOR('',#2405,5.E-1);\r
--#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));\r
--#2408=LINE('',#2407,#2406);\r
--#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
--#2410=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2411=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);\r
--#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
--#2415=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2416=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);\r
--#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
--#2420=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2421=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);\r
--#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
--#2425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2426=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);\r
--#2429=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2430=VECTOR('',#2429,1.E0);\r
--#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));\r
--#2432=LINE('',#2431,#2430);\r
--#2433=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2434=VECTOR('',#2433,1.E0);\r
--#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));\r
--#2436=LINE('',#2435,#2434);\r
--#2437=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2438=VECTOR('',#2437,5.E-1);\r
--#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));\r
--#2440=LINE('',#2439,#2438);\r
--#2441=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2442=VECTOR('',#2441,5.E-1);\r
--#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));\r
--#2444=LINE('',#2443,#2442);\r
--#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
--#2446=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2447=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);\r
--#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
--#2451=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2452=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);\r
--#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
--#2456=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2457=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);\r
--#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
--#2461=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2462=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);\r
--#2465=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2466=VECTOR('',#2465,1.E0);\r
--#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));\r
--#2468=LINE('',#2467,#2466);\r
--#2469=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2470=VECTOR('',#2469,1.E0);\r
--#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));\r
--#2472=LINE('',#2471,#2470);\r
--#2473=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2474=VECTOR('',#2473,5.E-1);\r
--#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));\r
--#2476=LINE('',#2475,#2474);\r
--#2477=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2478=VECTOR('',#2477,5.E-1);\r
--#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));\r
--#2480=LINE('',#2479,#2478);\r
--#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
--#2482=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2483=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);\r
--#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
--#2487=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2488=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);\r
--#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
--#2492=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2493=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);\r
--#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
--#2497=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2498=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);\r
--#2501=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2502=VECTOR('',#2501,1.E0);\r
--#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));\r
--#2504=LINE('',#2503,#2502);\r
--#2505=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2506=VECTOR('',#2505,1.E0);\r
--#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));\r
--#2508=LINE('',#2507,#2506);\r
--#2509=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2510=VECTOR('',#2509,5.E-1);\r
--#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));\r
--#2512=LINE('',#2511,#2510);\r
--#2513=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2514=VECTOR('',#2513,5.E-1);\r
--#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));\r
--#2516=LINE('',#2515,#2514);\r
--#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
--#2518=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2519=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);\r
--#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
--#2523=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2524=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);\r
--#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
--#2528=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2529=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);\r
--#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
--#2533=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2534=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);\r
--#2537=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2538=VECTOR('',#2537,1.E0);\r
--#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));\r
--#2540=LINE('',#2539,#2538);\r
--#2541=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2542=VECTOR('',#2541,1.E0);\r
--#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));\r
--#2544=LINE('',#2543,#2542);\r
--#2545=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2546=VECTOR('',#2545,5.E-1);\r
--#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));\r
--#2548=LINE('',#2547,#2546);\r
--#2549=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2550=VECTOR('',#2549,5.E-1);\r
--#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));\r
--#2552=LINE('',#2551,#2550);\r
--#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
--#2554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2555=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);\r
--#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
--#2559=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2560=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);\r
--#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
--#2564=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2565=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);\r
--#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
--#2569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2570=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);\r
--#2573=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2574=VECTOR('',#2573,1.E0);\r
--#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));\r
--#2576=LINE('',#2575,#2574);\r
--#2577=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2578=VECTOR('',#2577,1.E0);\r
--#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));\r
--#2580=LINE('',#2579,#2578);\r
--#2581=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2582=VECTOR('',#2581,5.E-1);\r
--#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));\r
--#2584=LINE('',#2583,#2582);\r
--#2585=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2586=VECTOR('',#2585,5.E-1);\r
--#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));\r
--#2588=LINE('',#2587,#2586);\r
--#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
--#2590=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2591=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);\r
--#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
--#2595=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2596=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);\r
--#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
--#2600=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2601=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);\r
--#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
--#2605=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2606=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);\r
--#2609=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2610=VECTOR('',#2609,1.E0);\r
--#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));\r
--#2612=LINE('',#2611,#2610);\r
--#2613=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2614=VECTOR('',#2613,1.E0);\r
--#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));\r
--#2616=LINE('',#2615,#2614);\r
--#2617=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2618=VECTOR('',#2617,5.E-1);\r
--#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));\r
--#2620=LINE('',#2619,#2618);\r
--#2621=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2622=VECTOR('',#2621,5.E-1);\r
--#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));\r
--#2624=LINE('',#2623,#2622);\r
--#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
--#2626=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2627=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);\r
--#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
--#2631=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2632=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);\r
--#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
--#2636=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2637=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);\r
--#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
--#2641=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2642=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);\r
--#2645=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2646=VECTOR('',#2645,1.E0);\r
--#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));\r
--#2648=LINE('',#2647,#2646);\r
--#2649=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2650=VECTOR('',#2649,1.E0);\r
--#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));\r
--#2652=LINE('',#2651,#2650);\r
--#2653=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2654=VECTOR('',#2653,5.E-1);\r
--#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));\r
--#2656=LINE('',#2655,#2654);\r
--#2657=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2658=VECTOR('',#2657,5.E-1);\r
--#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));\r
--#2660=LINE('',#2659,#2658);\r
--#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
--#2662=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2663=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);\r
--#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
--#2667=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2668=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);\r
--#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
--#2672=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2673=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);\r
--#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
--#2677=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2678=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);\r
--#2681=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2682=VECTOR('',#2681,1.E0);\r
--#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));\r
--#2684=LINE('',#2683,#2682);\r
--#2685=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2686=VECTOR('',#2685,1.E0);\r
--#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));\r
--#2688=LINE('',#2687,#2686);\r
--#2689=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2690=VECTOR('',#2689,5.E-1);\r
--#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));\r
--#2692=LINE('',#2691,#2690);\r
--#2693=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2694=VECTOR('',#2693,5.E-1);\r
--#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));\r
--#2696=LINE('',#2695,#2694);\r
--#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
--#2698=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2699=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);\r
--#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
--#2703=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2704=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);\r
--#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
--#2708=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2709=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);\r
--#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
--#2713=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2714=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);\r
--#2717=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2718=VECTOR('',#2717,1.E0);\r
--#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));\r
--#2720=LINE('',#2719,#2718);\r
--#2721=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2722=VECTOR('',#2721,1.E0);\r
--#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));\r
--#2724=LINE('',#2723,#2722);\r
--#2725=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2726=VECTOR('',#2725,5.E-1);\r
--#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));\r
--#2728=LINE('',#2727,#2726);\r
--#2729=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2730=VECTOR('',#2729,5.E-1);\r
--#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));\r
--#2732=LINE('',#2731,#2730);\r
--#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
--#2734=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2735=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);\r
--#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
--#2739=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2740=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);\r
--#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
--#2744=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2745=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);\r
--#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
--#2749=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2750=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);\r
--#2753=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2754=VECTOR('',#2753,1.E0);\r
--#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));\r
--#2756=LINE('',#2755,#2754);\r
--#2757=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2758=VECTOR('',#2757,1.E0);\r
--#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));\r
--#2760=LINE('',#2759,#2758);\r
--#2761=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2762=VECTOR('',#2761,5.E-1);\r
--#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));\r
--#2764=LINE('',#2763,#2762);\r
--#2765=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2766=VECTOR('',#2765,5.E-1);\r
--#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));\r
--#2768=LINE('',#2767,#2766);\r
--#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
--#2770=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2771=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);\r
--#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
--#2775=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2776=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);\r
--#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
--#2780=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2781=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);\r
--#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
--#2785=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2786=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);\r
--#2789=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2790=VECTOR('',#2789,1.E0);\r
--#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));\r
--#2792=LINE('',#2791,#2790);\r
--#2793=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2794=VECTOR('',#2793,1.E0);\r
--#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));\r
--#2796=LINE('',#2795,#2794);\r
--#2797=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2798=VECTOR('',#2797,5.E-1);\r
--#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));\r
--#2800=LINE('',#2799,#2798);\r
--#2801=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2802=VECTOR('',#2801,5.E-1);\r
--#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));\r
--#2804=LINE('',#2803,#2802);\r
--#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
--#2806=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2807=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);\r
--#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
--#2811=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2812=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);\r
--#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
--#2816=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2817=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);\r
--#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
--#2821=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2822=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);\r
--#2825=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2826=VECTOR('',#2825,1.E0);\r
--#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));\r
--#2828=LINE('',#2827,#2826);\r
--#2829=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2830=VECTOR('',#2829,1.E0);\r
--#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));\r
--#2832=LINE('',#2831,#2830);\r
--#2833=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2834=VECTOR('',#2833,5.E-1);\r
--#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));\r
--#2836=LINE('',#2835,#2834);\r
--#2837=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2838=VECTOR('',#2837,5.E-1);\r
--#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));\r
--#2840=LINE('',#2839,#2838);\r
--#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
--#2842=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2843=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);\r
--#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
--#2847=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2848=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);\r
--#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
--#2852=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2853=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);\r
--#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
--#2857=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2858=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);\r
--#2861=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2862=VECTOR('',#2861,1.E0);\r
--#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));\r
--#2864=LINE('',#2863,#2862);\r
--#2865=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2866=VECTOR('',#2865,1.E0);\r
--#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));\r
--#2868=LINE('',#2867,#2866);\r
--#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#2870=VECTOR('',#2869,5.773502691896E0);\r
--#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));\r
--#2872=LINE('',#2871,#2870);\r
--#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
--#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));\r
--#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));\r
--#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));\r
--#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));\r
--#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));\r
--#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));\r
--#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));\r
--#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));\r
--#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));\r
--#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));\r
--#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));\r
--#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));\r
--#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));\r
--#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));\r
--#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));\r
--#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));\r
--#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
--#2893=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#2894=VECTOR('',#2893,2.035898384862E0);\r
--#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));\r
--#2896=LINE('',#2895,#2894);\r
--#2897=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2898=VECTOR('',#2897,2.035898384862E0);\r
--#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));\r
--#2900=LINE('',#2899,#2898);\r
--#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
--#2902=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2903=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);\r
--#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
--#2907=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2908=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);\r
--#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
--#2912=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2913=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);\r
--#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
--#2917=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2918=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);\r
--#2921=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2922=VECTOR('',#2921,1.E0);\r
--#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));\r
--#2924=LINE('',#2923,#2922);\r
--#2925=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2926=VECTOR('',#2925,1.E0);\r
--#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));\r
--#2928=LINE('',#2927,#2926);\r
--#2929=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2930=VECTOR('',#2929,5.E-1);\r
--#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
--#2932=LINE('',#2931,#2930);\r
--#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));\r
--#2934=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2935=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);\r
--#2938=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2939=VECTOR('',#2938,5.E-1);\r
--#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));\r
--#2941=LINE('',#2940,#2939);\r
--#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));\r
--#2943=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));\r
--#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);\r
--#2947=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2948=VECTOR('',#2947,5.E-1);\r
--#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
--#2950=LINE('',#2949,#2948);\r
--#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));\r
--#2952=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2953=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);\r
--#2956=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2957=VECTOR('',#2956,5.E-1);\r
--#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));\r
--#2959=LINE('',#2958,#2957);\r
--#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));\r
--#2961=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2962=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);\r
--#2965=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2966=VECTOR('',#2965,5.E-1);\r
--#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
--#2968=LINE('',#2967,#2966);\r
--#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));\r
--#2970=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2971=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);\r
--#2974=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2975=VECTOR('',#2974,5.E-1);\r
--#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));\r
--#2977=LINE('',#2976,#2975);\r
--#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));\r
--#2979=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));\r
--#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);\r
--#2983=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2984=VECTOR('',#2983,5.E-1);\r
--#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
--#2986=LINE('',#2985,#2984);\r
--#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));\r
--#2988=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));\r
--#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);\r
--#2992=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#2993=VECTOR('',#2992,5.E-1);\r
--#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));\r
--#2995=LINE('',#2994,#2993);\r
--#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));\r
--#2997=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#2998=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);\r
--#3001=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3002=VECTOR('',#3001,5.E-1);\r
--#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
--#3004=LINE('',#3003,#3002);\r
--#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));\r
--#3006=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);\r
--#3010=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3011=VECTOR('',#3010,5.E-1);\r
--#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));\r
--#3013=LINE('',#3012,#3011);\r
--#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));\r
--#3015=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3016=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);\r
--#3019=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3020=VECTOR('',#3019,5.E-1);\r
--#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
--#3022=LINE('',#3021,#3020);\r
--#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));\r
--#3024=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3025=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);\r
--#3028=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3029=VECTOR('',#3028,5.E-1);\r
--#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));\r
--#3031=LINE('',#3030,#3029);\r
--#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));\r
--#3033=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);\r
--#3037=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3038=VECTOR('',#3037,1.972007605460E-1);\r
--#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
--#3040=LINE('',#3039,#3038);\r
--#3041=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3042=VECTOR('',#3041,4.3E0);\r
--#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));\r
--#3044=LINE('',#3043,#3042);\r
--#3045=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3046=VECTOR('',#3045,1.3E0);\r
--#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
--#3048=LINE('',#3047,#3046);\r
--#3049=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3050=VECTOR('',#3049,6.8E0);\r
--#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
--#3052=LINE('',#3051,#3050);\r
--#3053=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3054=VECTOR('',#3053,1.197200760546E0);\r
--#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
--#3056=LINE('',#3055,#3054);\r
--#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#3058=VECTOR('',#3057,2.059126028197E0);\r
--#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
--#3060=LINE('',#3059,#3058);\r
--#3061=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3062=VECTOR('',#3061,2.5E-1);\r
--#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));\r
--#3064=LINE('',#3063,#3062);\r
--#3065=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3066=VECTOR('',#3065,2.5E-1);\r
--#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));\r
--#3068=LINE('',#3067,#3066);\r
--#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
--#3070=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3071=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);\r
--#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
--#3075=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3076=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);\r
--#3079=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3080=VECTOR('',#3079,2.5E-1);\r
--#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));\r
--#3082=LINE('',#3081,#3080);\r
--#3083=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3084=VECTOR('',#3083,2.5E-1);\r
--#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));\r
--#3086=LINE('',#3085,#3084);\r
--#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
--#3088=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3089=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);\r
--#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
--#3093=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3094=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);\r
--#3097=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3098=VECTOR('',#3097,2.5E-1);\r
--#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));\r
--#3100=LINE('',#3099,#3098);\r
--#3101=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3102=VECTOR('',#3101,2.5E-1);\r
--#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));\r
--#3104=LINE('',#3103,#3102);\r
--#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
--#3106=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3107=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);\r
--#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
--#3111=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3112=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);\r
--#3115=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3116=VECTOR('',#3115,2.5E-1);\r
--#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));\r
--#3118=LINE('',#3117,#3116);\r
--#3119=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3120=VECTOR('',#3119,2.5E-1);\r
--#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));\r
--#3122=LINE('',#3121,#3120);\r
--#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
--#3124=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3125=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);\r
--#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
--#3129=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3130=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);\r
--#3133=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3134=VECTOR('',#3133,2.5E-1);\r
--#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));\r
--#3136=LINE('',#3135,#3134);\r
--#3137=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3138=VECTOR('',#3137,2.5E-1);\r
--#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));\r
--#3140=LINE('',#3139,#3138);\r
--#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
--#3142=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3143=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);\r
--#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
--#3147=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);\r
--#3151=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3152=VECTOR('',#3151,5.E-1);\r
--#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
--#3154=LINE('',#3153,#3152);\r
--#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));\r
--#3156=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);\r
--#3160=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3161=VECTOR('',#3160,5.E-1);\r
--#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));\r
--#3163=LINE('',#3162,#3161);\r
--#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));\r
--#3165=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3166=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);\r
--#3169=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3170=VECTOR('',#3169,5.E-1);\r
--#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
--#3172=LINE('',#3171,#3170);\r
--#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));\r
--#3174=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3175=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);\r
--#3178=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3179=VECTOR('',#3178,5.E-1);\r
--#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));\r
--#3181=LINE('',#3180,#3179);\r
--#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));\r
--#3183=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3184=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);\r
--#3187=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3188=VECTOR('',#3187,5.E-1);\r
--#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
--#3190=LINE('',#3189,#3188);\r
--#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));\r
--#3192=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3193=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);\r
--#3196=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3197=VECTOR('',#3196,5.E-1);\r
--#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));\r
--#3199=LINE('',#3198,#3197);\r
--#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));\r
--#3201=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);\r
--#3205=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3206=VECTOR('',#3205,5.E-1);\r
--#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
--#3208=LINE('',#3207,#3206);\r
--#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));\r
--#3210=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);\r
--#3214=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3215=VECTOR('',#3214,5.E-1);\r
--#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));\r
--#3217=LINE('',#3216,#3215);\r
--#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));\r
--#3219=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);\r
--#3223=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3224=VECTOR('',#3223,6.E0);\r
--#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));\r
--#3226=LINE('',#3225,#3224);\r
--#3227=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3228=VECTOR('',#3227,5.618394209466E-1);\r
--#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));\r
--#3230=LINE('',#3229,#3228);\r
--#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#3232=VECTOR('',#3231,6.863753427325E0);\r
--#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));\r
--#3234=LINE('',#3233,#3232);\r
--#3235=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3236=VECTOR('',#3235,3.895172754280E0);\r
--#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));\r
--#3238=LINE('',#3237,#3236);\r
--#3239=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3240=VECTOR('',#3239,5.E-1);\r
--#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
--#3242=LINE('',#3241,#3240);\r
--#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));\r
--#3244=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);\r
--#3248=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3249=VECTOR('',#3248,5.E-1);\r
--#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));\r
--#3251=LINE('',#3250,#3249);\r
--#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));\r
--#3253=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3254=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);\r
--#3257=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3258=VECTOR('',#3257,3.895172754280E0);\r
--#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
--#3260=LINE('',#3259,#3258);\r
--#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#3262=VECTOR('',#3261,6.863753427325E0);\r
--#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
--#3264=LINE('',#3263,#3262);\r
--#3265=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3266=VECTOR('',#3265,5.618394209466E-1);\r
--#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
--#3268=LINE('',#3267,#3266);\r
--#3269=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3270=VECTOR('',#3269,6.E0);\r
--#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
--#3272=LINE('',#3271,#3270);\r
--#3273=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3274=VECTOR('',#3273,5.E-1);\r
--#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
--#3276=LINE('',#3275,#3274);\r
--#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));\r
--#3278=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3279=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);\r
--#3282=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3283=VECTOR('',#3282,5.E-1);\r
--#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));\r
--#3285=LINE('',#3284,#3283);\r
--#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));\r
--#3287=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3288=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);\r
--#3291=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3292=VECTOR('',#3291,5.E-1);\r
--#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
--#3294=LINE('',#3293,#3292);\r
--#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));\r
--#3296=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3297=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);\r
--#3300=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3301=VECTOR('',#3300,5.E-1);\r
--#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));\r
--#3303=LINE('',#3302,#3301);\r
--#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));\r
--#3305=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3306=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);\r
--#3309=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3310=VECTOR('',#3309,5.E-1);\r
--#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
--#3312=LINE('',#3311,#3310);\r
--#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));\r
--#3314=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3315=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);\r
--#3318=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3319=VECTOR('',#3318,5.E-1);\r
--#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));\r
--#3321=LINE('',#3320,#3319);\r
--#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));\r
--#3323=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);\r
--#3327=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3328=VECTOR('',#3327,6.875E-1);\r
--#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
--#3330=LINE('',#3329,#3328);\r
--#3331=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3332=VECTOR('',#3331,6.875E-1);\r
--#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));\r
--#3334=LINE('',#3333,#3332);\r
--#3335=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3336=VECTOR('',#3335,6.875E-1);\r
--#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
--#3338=LINE('',#3337,#3336);\r
--#3339=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3340=VECTOR('',#3339,6.875E-1);\r
--#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));\r
--#3342=LINE('',#3341,#3340);\r
--#3343=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3344=VECTOR('',#3343,3.E0);\r
--#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));\r
--#3346=LINE('',#3345,#3344);\r
--#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));\r
--#3348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3349=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);\r
--#3352=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3353=VECTOR('',#3352,3.E0);\r
--#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));\r
--#3355=LINE('',#3354,#3353);\r
--#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));\r
--#3357=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3358=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);\r
--#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));\r
--#3362=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);\r
--#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));\r
--#3367=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));\r
--#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);\r
--#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));\r
--#3372=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);\r
--#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3377=VECTOR('',#3376,4.263248410977E0);\r
--#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));\r
--#3379=LINE('',#3378,#3377);\r
--#3380=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3381=VECTOR('',#3380,6.875E-1);\r
--#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
--#3383=LINE('',#3382,#3381);\r
--#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));\r
--#3385=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);\r
--#3389=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3390=VECTOR('',#3389,6.875E-1);\r
--#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));\r
--#3392=LINE('',#3391,#3390);\r
--#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));\r
--#3394=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));\r
--#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);\r
--#3398=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3399=VECTOR('',#3398,6.875E-1);\r
--#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));\r
--#3401=LINE('',#3400,#3399);\r
--#3402=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3403=VECTOR('',#3402,6.875E-1);\r
--#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));\r
--#3405=LINE('',#3404,#3403);\r
--#3406=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3407=VECTOR('',#3406,6.875E-1);\r
--#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));\r
--#3409=LINE('',#3408,#3407);\r
--#3410=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3411=VECTOR('',#3410,6.875E-1);\r
--#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
--#3413=LINE('',#3412,#3411);\r
--#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));\r
--#3415=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3416=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);\r
--#3419=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3420=VECTOR('',#3419,6.875E-1);\r
--#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));\r
--#3422=LINE('',#3421,#3420);\r
--#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));\r
--#3424=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3425=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);\r
--#3428=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3429=VECTOR('',#3428,7.5E-1);\r
--#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
--#3431=LINE('',#3430,#3429);\r
--#3432=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3433=VECTOR('',#3432,3.15E-1);\r
--#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));\r
--#3435=LINE('',#3434,#3433);\r
--#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));\r
--#3437=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3438=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);\r
--#3441=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3442=VECTOR('',#3441,3.15E-1);\r
--#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
--#3444=LINE('',#3443,#3442);\r
--#3445=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3446=VECTOR('',#3445,2.525E-1);\r
--#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));\r
--#3448=LINE('',#3447,#3446);\r
--#3449=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3450=VECTOR('',#3449,8.1E-1);\r
--#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));\r
--#3452=LINE('',#3451,#3450);\r
--#3453=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3454=VECTOR('',#3453,3.875E0);\r
--#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));\r
--#3456=LINE('',#3455,#3454);\r
--#3457=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3458=VECTOR('',#3457,8.1E-1);\r
--#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));\r
--#3460=LINE('',#3459,#3458);\r
--#3461=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3462=VECTOR('',#3461,6.875E-1);\r
--#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
--#3464=LINE('',#3463,#3462);\r
--#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));\r
--#3466=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3467=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);\r
--#3470=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3471=VECTOR('',#3470,6.875E-1);\r
--#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));\r
--#3473=LINE('',#3472,#3471);\r
--#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));\r
--#3475=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3476=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);\r
--#3479=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3480=VECTOR('',#3479,6.875E-1);\r
--#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
--#3482=LINE('',#3481,#3480);\r
--#3483=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3484=VECTOR('',#3483,6.875E-1);\r
--#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));\r
--#3486=LINE('',#3485,#3484);\r
--#3487=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3488=VECTOR('',#3487,6.875E-1);\r
--#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
--#3490=LINE('',#3489,#3488);\r
--#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));\r
--#3492=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3493=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);\r
--#3496=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3497=VECTOR('',#3496,6.875E-1);\r
--#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));\r
--#3499=LINE('',#3498,#3497);\r
--#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));\r
--#3501=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3502=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);\r
--#3505=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3506=VECTOR('',#3505,6.875E-1);\r
--#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
--#3508=LINE('',#3507,#3506);\r
--#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));\r
--#3510=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3511=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);\r
--#3514=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3515=VECTOR('',#3514,6.875E-1);\r
--#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));\r
--#3517=LINE('',#3516,#3515);\r
--#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));\r
--#3519=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3520=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);\r
--#3523=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3524=VECTOR('',#3523,6.875E-1);\r
--#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
--#3526=LINE('',#3525,#3524);\r
--#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));\r
--#3528=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3529=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);\r
--#3532=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3533=VECTOR('',#3532,6.875E-1);\r
--#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));\r
--#3535=LINE('',#3534,#3533);\r
--#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));\r
--#3537=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3538=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);\r
--#3541=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3542=VECTOR('',#3541,6.875E-1);\r
--#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
--#3544=LINE('',#3543,#3542);\r
--#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));\r
--#3546=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3547=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);\r
--#3550=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3551=VECTOR('',#3550,6.875E-1);\r
--#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));\r
--#3553=LINE('',#3552,#3551);\r
--#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));\r
--#3555=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3556=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);\r
--#3559=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3560=VECTOR('',#3559,6.875E-1);\r
--#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
--#3562=LINE('',#3561,#3560);\r
--#3563=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3564=VECTOR('',#3563,6.875E-1);\r
--#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));\r
--#3566=LINE('',#3565,#3564);\r
--#3567=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3568=VECTOR('',#3567,6.875E-1);\r
--#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
--#3570=LINE('',#3569,#3568);\r
--#3571=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3572=VECTOR('',#3571,6.875E-1);\r
--#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));\r
--#3574=LINE('',#3573,#3572);\r
--#3575=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3576=VECTOR('',#3575,3.E0);\r
--#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));\r
--#3578=LINE('',#3577,#3576);\r
--#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));\r
--#3580=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3581=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);\r
--#3584=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3585=VECTOR('',#3584,3.E0);\r
--#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));\r
--#3587=LINE('',#3586,#3585);\r
--#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));\r
--#3589=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3590=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);\r
--#3593=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3594=VECTOR('',#3593,6.875E-1);\r
--#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
--#3596=LINE('',#3595,#3594);\r
--#3597=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3598=VECTOR('',#3597,6.875E-1);\r
--#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));\r
--#3600=LINE('',#3599,#3598);\r
--#3601=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3602=VECTOR('',#3601,6.875E-1);\r
--#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
--#3604=LINE('',#3603,#3602);\r
--#3605=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3606=VECTOR('',#3605,6.875E-1);\r
--#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));\r
--#3608=LINE('',#3607,#3606);\r
--#3609=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3610=VECTOR('',#3609,3.E0);\r
--#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));\r
--#3612=LINE('',#3611,#3610);\r
--#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));\r
--#3614=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3615=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);\r
--#3618=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3619=VECTOR('',#3618,3.E0);\r
--#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));\r
--#3621=LINE('',#3620,#3619);\r
--#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));\r
--#3623=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3624=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);\r
--#3627=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3628=VECTOR('',#3627,6.875E-1);\r
--#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
--#3630=LINE('',#3629,#3628);\r
--#3631=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3632=VECTOR('',#3631,6.875E-1);\r
--#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));\r
--#3634=LINE('',#3633,#3632);\r
--#3635=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3636=VECTOR('',#3635,6.875E-1);\r
--#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
--#3638=LINE('',#3637,#3636);\r
--#3639=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3640=VECTOR('',#3639,6.875E-1);\r
--#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));\r
--#3642=LINE('',#3641,#3640);\r
--#3643=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3644=VECTOR('',#3643,3.E0);\r
--#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));\r
--#3646=LINE('',#3645,#3644);\r
--#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));\r
--#3648=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3649=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);\r
--#3652=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3653=VECTOR('',#3652,3.E0);\r
--#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));\r
--#3655=LINE('',#3654,#3653);\r
--#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));\r
--#3657=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3658=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);\r
--#3661=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3662=VECTOR('',#3661,6.875E-1);\r
--#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
--#3664=LINE('',#3663,#3662);\r
--#3665=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3666=VECTOR('',#3665,6.875E-1);\r
--#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));\r
--#3668=LINE('',#3667,#3666);\r
--#3669=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3670=VECTOR('',#3669,6.875E-1);\r
--#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
--#3672=LINE('',#3671,#3670);\r
--#3673=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3674=VECTOR('',#3673,6.875E-1);\r
--#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));\r
--#3676=LINE('',#3675,#3674);\r
--#3677=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3678=VECTOR('',#3677,3.E0);\r
--#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));\r
--#3680=LINE('',#3679,#3678);\r
--#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));\r
--#3682=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3683=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);\r
--#3686=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3687=VECTOR('',#3686,3.E0);\r
--#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));\r
--#3689=LINE('',#3688,#3687);\r
--#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));\r
--#3691=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3692=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);\r
--#3695=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3696=VECTOR('',#3695,6.875E-1);\r
--#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
--#3698=LINE('',#3697,#3696);\r
--#3699=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3700=VECTOR('',#3699,6.875E-1);\r
--#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));\r
--#3702=LINE('',#3701,#3700);\r
--#3703=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3704=VECTOR('',#3703,6.875E-1);\r
--#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
--#3706=LINE('',#3705,#3704);\r
--#3707=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3708=VECTOR('',#3707,6.875E-1);\r
--#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));\r
--#3710=LINE('',#3709,#3708);\r
--#3711=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3712=VECTOR('',#3711,3.E0);\r
--#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));\r
--#3714=LINE('',#3713,#3712);\r
--#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));\r
--#3716=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3717=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);\r
--#3720=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3721=VECTOR('',#3720,3.E0);\r
--#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));\r
--#3723=LINE('',#3722,#3721);\r
--#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));\r
--#3725=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3726=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);\r
--#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#3730=VECTOR('',#3729,4.263248410977E0);\r
--#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));\r
--#3732=LINE('',#3731,#3730);\r
--#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));\r
--#3734=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);\r
--#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));\r
--#3739=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));\r
--#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);\r
--#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));\r
--#3744=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);\r
--#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));\r
--#3749=VECTOR('',#3748,6.875E-1);\r
--#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));\r
--#3751=LINE('',#3750,#3749);\r
--#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));\r
--#3753=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));\r
--#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);\r
--#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
--#3758=VECTOR('',#3757,6.875E-1);\r
--#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
--#3760=LINE('',#3759,#3758);\r
--#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));\r
--#3762=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));\r
--#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);\r
--#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
--#3767=VECTOR('',#3766,6.875E-1);\r
--#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));\r
--#3769=LINE('',#3768,#3767);\r
--#3770=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3771=VECTOR('',#3770,6.875E-1);\r
--#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));\r
--#3773=LINE('',#3772,#3771);\r
--#3774=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3775=VECTOR('',#3774,6.875E-1);\r
--#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));\r
--#3777=LINE('',#3776,#3775);\r
--#3778=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3779=VECTOR('',#3778,6.875E-1);\r
--#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
--#3781=LINE('',#3780,#3779);\r
--#3782=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3783=VECTOR('',#3782,6.875E-1);\r
--#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));\r
--#3785=LINE('',#3784,#3783);\r
--#3786=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3787=VECTOR('',#3786,6.875E-1);\r
--#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
--#3789=LINE('',#3788,#3787);\r
--#3790=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3791=VECTOR('',#3790,6.875E-1);\r
--#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));\r
--#3793=LINE('',#3792,#3791);\r
--#3794=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3795=VECTOR('',#3794,3.E0);\r
--#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));\r
--#3797=LINE('',#3796,#3795);\r
--#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));\r
--#3799=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3800=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);\r
--#3803=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3804=VECTOR('',#3803,3.E0);\r
--#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));\r
--#3806=LINE('',#3805,#3804);\r
--#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));\r
--#3808=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3809=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);\r
--#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3813=VECTOR('',#3812,4.263248410977E0);\r
--#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));\r
--#3815=LINE('',#3814,#3813);\r
--#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));\r
--#3817=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);\r
--#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));\r
--#3822=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));\r
--#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);\r
--#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));\r
--#3827=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));\r
--#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);\r
--#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));\r
--#3832=VECTOR('',#3831,6.875E-1);\r
--#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));\r
--#3834=LINE('',#3833,#3832);\r
--#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));\r
--#3836=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));\r
--#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);\r
--#3840=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3841=VECTOR('',#3840,6.875E-1);\r
--#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
--#3843=LINE('',#3842,#3841);\r
--#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));\r
--#3845=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);\r
--#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));\r
--#3850=VECTOR('',#3849,6.875E-1);\r
--#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));\r
--#3852=LINE('',#3851,#3850);\r
--#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));\r
--#3854=VECTOR('',#3853,6.875E-1);\r
--#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));\r
--#3856=LINE('',#3855,#3854);\r
--#3857=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3858=VECTOR('',#3857,6.875E-1);\r
--#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));\r
--#3860=LINE('',#3859,#3858);\r
--#3861=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3862=VECTOR('',#3861,6.875E-1);\r
--#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
--#3864=LINE('',#3863,#3862);\r
--#3865=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3866=VECTOR('',#3865,6.875E-1);\r
--#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));\r
--#3868=LINE('',#3867,#3866);\r
--#3869=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3870=VECTOR('',#3869,6.875E-1);\r
--#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
--#3872=LINE('',#3871,#3870);\r
--#3873=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3874=VECTOR('',#3873,6.875E-1);\r
--#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));\r
--#3876=LINE('',#3875,#3874);\r
--#3877=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3878=VECTOR('',#3877,3.E0);\r
--#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));\r
--#3880=LINE('',#3879,#3878);\r
--#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));\r
--#3882=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3883=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);\r
--#3886=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3887=VECTOR('',#3886,3.E0);\r
--#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));\r
--#3889=LINE('',#3888,#3887);\r
--#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));\r
--#3891=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3892=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);\r
--#3895=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3896=VECTOR('',#3895,6.875E-1);\r
--#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
--#3898=LINE('',#3897,#3896);\r
--#3899=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3900=VECTOR('',#3899,6.875E-1);\r
--#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));\r
--#3902=LINE('',#3901,#3900);\r
--#3903=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3904=VECTOR('',#3903,6.875E-1);\r
--#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
--#3906=LINE('',#3905,#3904);\r
--#3907=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3908=VECTOR('',#3907,6.875E-1);\r
--#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));\r
--#3910=LINE('',#3909,#3908);\r
--#3911=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3912=VECTOR('',#3911,3.E0);\r
--#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));\r
--#3914=LINE('',#3913,#3912);\r
--#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));\r
--#3916=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3917=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);\r
--#3920=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3921=VECTOR('',#3920,3.E0);\r
--#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));\r
--#3923=LINE('',#3922,#3921);\r
--#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));\r
--#3925=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3926=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);\r
--#3929=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3930=VECTOR('',#3929,6.875E-1);\r
--#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
--#3932=LINE('',#3931,#3930);\r
--#3933=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3934=VECTOR('',#3933,6.875E-1);\r
--#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));\r
--#3936=LINE('',#3935,#3934);\r
--#3937=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3938=VECTOR('',#3937,6.875E-1);\r
--#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
--#3940=LINE('',#3939,#3938);\r
--#3941=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3942=VECTOR('',#3941,6.875E-1);\r
--#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));\r
--#3944=LINE('',#3943,#3942);\r
--#3945=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3946=VECTOR('',#3945,3.E0);\r
--#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));\r
--#3948=LINE('',#3947,#3946);\r
--#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));\r
--#3950=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3951=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);\r
--#3954=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3955=VECTOR('',#3954,3.E0);\r
--#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));\r
--#3957=LINE('',#3956,#3955);\r
--#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));\r
--#3959=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3960=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);\r
--#3963=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3964=VECTOR('',#3963,6.875E-1);\r
--#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
--#3966=LINE('',#3965,#3964);\r
--#3967=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3968=VECTOR('',#3967,6.875E-1);\r
--#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));\r
--#3970=LINE('',#3969,#3968);\r
--#3971=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3972=VECTOR('',#3971,6.875E-1);\r
--#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
--#3974=LINE('',#3973,#3972);\r
--#3975=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3976=VECTOR('',#3975,6.875E-1);\r
--#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));\r
--#3978=LINE('',#3977,#3976);\r
--#3979=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#3980=VECTOR('',#3979,3.E0);\r
--#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));\r
--#3982=LINE('',#3981,#3980);\r
--#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));\r
--#3984=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3985=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);\r
--#3988=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#3989=VECTOR('',#3988,3.E0);\r
--#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));\r
--#3991=LINE('',#3990,#3989);\r
--#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));\r
--#3993=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3994=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);\r
--#3997=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#3998=VECTOR('',#3997,6.875E-1);\r
--#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
--#4000=LINE('',#3999,#3998);\r
--#4001=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4002=VECTOR('',#4001,6.875E-1);\r
--#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));\r
--#4004=LINE('',#4003,#4002);\r
--#4005=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4006=VECTOR('',#4005,6.875E-1);\r
--#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
--#4008=LINE('',#4007,#4006);\r
--#4009=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4010=VECTOR('',#4009,6.875E-1);\r
--#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));\r
--#4012=LINE('',#4011,#4010);\r
--#4013=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4014=VECTOR('',#4013,3.E0);\r
--#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));\r
--#4016=LINE('',#4015,#4014);\r
--#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));\r
--#4018=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4019=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);\r
--#4022=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4023=VECTOR('',#4022,3.E0);\r
--#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));\r
--#4025=LINE('',#4024,#4023);\r
--#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));\r
--#4027=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4028=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);\r
--#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));\r
--#4032=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));\r
--#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);\r
--#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));\r
--#4037=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));\r
--#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);\r
--#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));\r
--#4042=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);\r
--#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#4047=VECTOR('',#4046,4.263248410977E0);\r
--#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));\r
--#4049=LINE('',#4048,#4047);\r
--#4050=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4051=VECTOR('',#4050,6.875E-1);\r
--#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
--#4053=LINE('',#4052,#4051);\r
--#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));\r
--#4055=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);\r
--#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));\r
--#4060=VECTOR('',#4059,6.875E-1);\r
--#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));\r
--#4062=LINE('',#4061,#4060);\r
--#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));\r
--#4064=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));\r
--#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);\r
--#4068=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4069=VECTOR('',#4068,6.875E-1);\r
--#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));\r
--#4071=LINE('',#4070,#4069);\r
--#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));\r
--#4073=VECTOR('',#4072,6.875E-1);\r
--#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));\r
--#4075=LINE('',#4074,#4073);\r
--#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));\r
--#4077=VECTOR('',#4076,6.875E-1);\r
--#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));\r
--#4079=LINE('',#4078,#4077);\r
--#4080=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4081=VECTOR('',#4080,6.875E-1);\r
--#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
--#4083=LINE('',#4082,#4081);\r
--#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));\r
--#4085=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4086=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);\r
--#4089=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4090=VECTOR('',#4089,6.875E-1);\r
--#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));\r
--#4092=LINE('',#4091,#4090);\r
--#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));\r
--#4094=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4095=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);\r
--#4098=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4099=VECTOR('',#4098,6.875E-1);\r
--#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
--#4101=LINE('',#4100,#4099);\r
--#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));\r
--#4103=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4104=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);\r
--#4107=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4108=VECTOR('',#4107,6.875E-1);\r
--#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));\r
--#4110=LINE('',#4109,#4108);\r
--#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));\r
--#4112=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4113=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);\r
--#4116=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4117=VECTOR('',#4116,6.875E-1);\r
--#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
--#4119=LINE('',#4118,#4117);\r
--#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));\r
--#4121=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4122=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);\r
--#4125=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4126=VECTOR('',#4125,6.875E-1);\r
--#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));\r
--#4128=LINE('',#4127,#4126);\r
--#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));\r
--#4130=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4131=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);\r
--#4134=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4135=VECTOR('',#4134,6.875E-1);\r
--#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
--#4137=LINE('',#4136,#4135);\r
--#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));\r
--#4139=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4140=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);\r
--#4143=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4144=VECTOR('',#4143,6.875E-1);\r
--#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));\r
--#4146=LINE('',#4145,#4144);\r
--#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));\r
--#4148=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4149=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);\r
--#4152=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4153=VECTOR('',#4152,6.875E-1);\r
--#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
--#4155=LINE('',#4154,#4153);\r
--#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));\r
--#4157=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4158=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);\r
--#4161=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4162=VECTOR('',#4161,6.875E-1);\r
--#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));\r
--#4164=LINE('',#4163,#4162);\r
--#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));\r
--#4166=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4167=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);\r
--#4170=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4171=VECTOR('',#4170,6.875E-1);\r
--#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
--#4173=LINE('',#4172,#4171);\r
--#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));\r
--#4175=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4176=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);\r
--#4179=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4180=VECTOR('',#4179,6.875E-1);\r
--#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));\r
--#4182=LINE('',#4181,#4180);\r
--#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));\r
--#4184=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#4185=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);\r
--#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));\r
--#4189=VECTOR('',#4188,6.875E-1);\r
--#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));\r
--#4191=LINE('',#4190,#4189);\r
--#4192=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4193=VECTOR('',#4192,6.875E-1);\r
--#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
--#4195=LINE('',#4194,#4193);\r
--#4196=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4197=VECTOR('',#4196,2.425E-1);\r
--#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
--#4199=LINE('',#4198,#4197);\r
--#4200=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#4201=VECTOR('',#4200,3.1E-1);\r
--#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));\r
--#4203=LINE('',#4202,#4201);\r
--#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));\r
--#4205=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#4206=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);\r
--#4209=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4210=VECTOR('',#4209,3.1E-1);\r
--#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));\r
--#4212=LINE('',#4211,#4210);\r
--#4213=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#4214=VECTOR('',#4213,7.4E-1);\r
--#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));\r
--#4216=LINE('',#4215,#4214);\r
--#4217=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#4218=VECTOR('',#4217,8.E-1);\r
--#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
--#4220=LINE('',#4219,#4218);\r
--#4221=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#4222=VECTOR('',#4221,3.865E0);\r
--#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
--#4224=LINE('',#4223,#4222);\r
--#4225=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#4226=VECTOR('',#4225,8.E-1);\r
--#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
--#4228=LINE('',#4227,#4226);\r
--#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
--#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));\r
--#4231=VERTEX_POINT('',#4229);\r
--#4232=VERTEX_POINT('',#4230);\r
--#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));\r
--#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));\r
--#4235=VERTEX_POINT('',#4233);\r
--#4236=VERTEX_POINT('',#4234);\r
--#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
--#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));\r
--#4239=VERTEX_POINT('',#4237);\r
--#4240=VERTEX_POINT('',#4238);\r
--#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));\r
--#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));\r
--#4243=VERTEX_POINT('',#4241);\r
--#4244=VERTEX_POINT('',#4242);\r
--#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
--#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));\r
--#4247=VERTEX_POINT('',#4245);\r
--#4248=VERTEX_POINT('',#4246);\r
--#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));\r
--#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));\r
--#4251=VERTEX_POINT('',#4249);\r
--#4252=VERTEX_POINT('',#4250);\r
--#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
--#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));\r
--#4255=VERTEX_POINT('',#4253);\r
--#4256=VERTEX_POINT('',#4254);\r
--#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));\r
--#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));\r
--#4259=VERTEX_POINT('',#4257);\r
--#4260=VERTEX_POINT('',#4258);\r
--#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));\r
--#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));\r
--#4263=VERTEX_POINT('',#4261);\r
--#4264=VERTEX_POINT('',#4262);\r
--#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));\r
--#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));\r
--#4267=VERTEX_POINT('',#4265);\r
--#4268=VERTEX_POINT('',#4266);\r
--#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));\r
--#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));\r
--#4271=VERTEX_POINT('',#4269);\r
--#4272=VERTEX_POINT('',#4270);\r
--#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));\r
--#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));\r
--#4275=VERTEX_POINT('',#4273);\r
--#4276=VERTEX_POINT('',#4274);\r
--#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));\r
--#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));\r
--#4279=VERTEX_POINT('',#4277);\r
--#4280=VERTEX_POINT('',#4278);\r
--#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));\r
--#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));\r
--#4283=VERTEX_POINT('',#4281);\r
--#4284=VERTEX_POINT('',#4282);\r
--#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
--#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
--#4287=VERTEX_POINT('',#4285);\r
--#4288=VERTEX_POINT('',#4286);\r
--#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
--#4290=VERTEX_POINT('',#4289);\r
--#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));\r
--#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));\r
--#4293=VERTEX_POINT('',#4291);\r
--#4294=VERTEX_POINT('',#4292);\r
--#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));\r
--#4296=VERTEX_POINT('',#4295);\r
--#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));\r
--#4298=VERTEX_POINT('',#4297);\r
--#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));\r
--#4300=VERTEX_POINT('',#4299);\r
--#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));\r
--#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));\r
--#4303=VERTEX_POINT('',#4301);\r
--#4304=VERTEX_POINT('',#4302);\r
--#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));\r
--#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));\r
--#4307=VERTEX_POINT('',#4305);\r
--#4308=VERTEX_POINT('',#4306);\r
--#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));\r
--#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));\r
--#4311=VERTEX_POINT('',#4309);\r
--#4312=VERTEX_POINT('',#4310);\r
--#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));\r
--#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));\r
--#4315=VERTEX_POINT('',#4313);\r
--#4316=VERTEX_POINT('',#4314);\r
--#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));\r
--#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));\r
--#4319=VERTEX_POINT('',#4317);\r
--#4320=VERTEX_POINT('',#4318);\r
--#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));\r
--#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));\r
--#4323=VERTEX_POINT('',#4321);\r
--#4324=VERTEX_POINT('',#4322);\r
--#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));\r
--#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));\r
--#4327=VERTEX_POINT('',#4325);\r
--#4328=VERTEX_POINT('',#4326);\r
--#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));\r
--#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));\r
--#4331=VERTEX_POINT('',#4329);\r
--#4332=VERTEX_POINT('',#4330);\r
--#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
--#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));\r
--#4335=VERTEX_POINT('',#4333);\r
--#4336=VERTEX_POINT('',#4334);\r
--#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));\r
--#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));\r
--#4339=VERTEX_POINT('',#4337);\r
--#4340=VERTEX_POINT('',#4338);\r
--#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
--#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));\r
--#4343=VERTEX_POINT('',#4341);\r
--#4344=VERTEX_POINT('',#4342);\r
--#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));\r
--#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));\r
--#4347=VERTEX_POINT('',#4345);\r
--#4348=VERTEX_POINT('',#4346);\r
--#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));\r
--#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));\r
--#4351=VERTEX_POINT('',#4349);\r
--#4352=VERTEX_POINT('',#4350);\r
--#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));\r
--#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));\r
--#4355=VERTEX_POINT('',#4353);\r
--#4356=VERTEX_POINT('',#4354);\r
--#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));\r
--#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));\r
--#4359=VERTEX_POINT('',#4357);\r
--#4360=VERTEX_POINT('',#4358);\r
--#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));\r
--#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));\r
--#4363=VERTEX_POINT('',#4361);\r
--#4364=VERTEX_POINT('',#4362);\r
--#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));\r
--#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));\r
--#4367=VERTEX_POINT('',#4365);\r
--#4368=VERTEX_POINT('',#4366);\r
--#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));\r
--#4370=VERTEX_POINT('',#4369);\r
--#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));\r
--#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));\r
--#4373=VERTEX_POINT('',#4371);\r
--#4374=VERTEX_POINT('',#4372);\r
--#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));\r
--#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));\r
--#4377=VERTEX_POINT('',#4375);\r
--#4378=VERTEX_POINT('',#4376);\r
--#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));\r
--#4380=VERTEX_POINT('',#4379);\r
--#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));\r
--#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));\r
--#4383=VERTEX_POINT('',#4381);\r
--#4384=VERTEX_POINT('',#4382);\r
--#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
--#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
--#4387=VERTEX_POINT('',#4385);\r
--#4388=VERTEX_POINT('',#4386);\r
--#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
--#4390=VERTEX_POINT('',#4389);\r
--#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));\r
--#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));\r
--#4393=VERTEX_POINT('',#4391);\r
--#4394=VERTEX_POINT('',#4392);\r
--#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));\r
--#4396=VERTEX_POINT('',#4395);\r
--#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));\r
--#4398=VERTEX_POINT('',#4397);\r
--#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));\r
--#4400=VERTEX_POINT('',#4399);\r
--#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));\r
--#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));\r
--#4403=VERTEX_POINT('',#4401);\r
--#4404=VERTEX_POINT('',#4402);\r
--#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));\r
--#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));\r
--#4407=VERTEX_POINT('',#4405);\r
--#4408=VERTEX_POINT('',#4406);\r
--#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));\r
--#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));\r
--#4411=VERTEX_POINT('',#4409);\r
--#4412=VERTEX_POINT('',#4410);\r
--#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));\r
--#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));\r
--#4415=VERTEX_POINT('',#4413);\r
--#4416=VERTEX_POINT('',#4414);\r
--#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));\r
--#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));\r
--#4419=VERTEX_POINT('',#4417);\r
--#4420=VERTEX_POINT('',#4418);\r
--#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));\r
--#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));\r
--#4423=VERTEX_POINT('',#4421);\r
--#4424=VERTEX_POINT('',#4422);\r
--#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));\r
--#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));\r
--#4427=VERTEX_POINT('',#4425);\r
--#4428=VERTEX_POINT('',#4426);\r
--#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));\r
--#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));\r
--#4431=VERTEX_POINT('',#4429);\r
--#4432=VERTEX_POINT('',#4430);\r
--#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
--#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));\r
--#4435=VERTEX_POINT('',#4433);\r
--#4436=VERTEX_POINT('',#4434);\r
--#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));\r
--#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));\r
--#4439=VERTEX_POINT('',#4437);\r
--#4440=VERTEX_POINT('',#4438);\r
--#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
--#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));\r
--#4443=VERTEX_POINT('',#4441);\r
--#4444=VERTEX_POINT('',#4442);\r
--#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));\r
--#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));\r
--#4447=VERTEX_POINT('',#4445);\r
--#4448=VERTEX_POINT('',#4446);\r
--#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));\r
--#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));\r
--#4451=VERTEX_POINT('',#4449);\r
--#4452=VERTEX_POINT('',#4450);\r
--#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));\r
--#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));\r
--#4455=VERTEX_POINT('',#4453);\r
--#4456=VERTEX_POINT('',#4454);\r
--#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));\r
--#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));\r
--#4459=VERTEX_POINT('',#4457);\r
--#4460=VERTEX_POINT('',#4458);\r
--#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));\r
--#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));\r
--#4463=VERTEX_POINT('',#4461);\r
--#4464=VERTEX_POINT('',#4462);\r
--#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));\r
--#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));\r
--#4467=VERTEX_POINT('',#4465);\r
--#4468=VERTEX_POINT('',#4466);\r
--#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));\r
--#4470=VERTEX_POINT('',#4469);\r
--#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));\r
--#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));\r
--#4473=VERTEX_POINT('',#4471);\r
--#4474=VERTEX_POINT('',#4472);\r
--#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));\r
--#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));\r
--#4477=VERTEX_POINT('',#4475);\r
--#4478=VERTEX_POINT('',#4476);\r
--#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));\r
--#4480=VERTEX_POINT('',#4479);\r
--#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));\r
--#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));\r
--#4483=VERTEX_POINT('',#4481);\r
--#4484=VERTEX_POINT('',#4482);\r
--#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));\r
--#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));\r
--#4487=VERTEX_POINT('',#4485);\r
--#4488=VERTEX_POINT('',#4486);\r
--#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));\r
--#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));\r
--#4491=VERTEX_POINT('',#4489);\r
--#4492=VERTEX_POINT('',#4490);\r
--#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));\r
--#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));\r
--#4495=VERTEX_POINT('',#4493);\r
--#4496=VERTEX_POINT('',#4494);\r
--#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));\r
--#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));\r
--#4499=VERTEX_POINT('',#4497);\r
--#4500=VERTEX_POINT('',#4498);\r
--#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));\r
--#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));\r
--#4503=VERTEX_POINT('',#4501);\r
--#4504=VERTEX_POINT('',#4502);\r
--#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));\r
--#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));\r
--#4507=VERTEX_POINT('',#4505);\r
--#4508=VERTEX_POINT('',#4506);\r
--#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));\r
--#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));\r
--#4511=VERTEX_POINT('',#4509);\r
--#4512=VERTEX_POINT('',#4510);\r
--#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));\r
--#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));\r
--#4515=VERTEX_POINT('',#4513);\r
--#4516=VERTEX_POINT('',#4514);\r
--#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));\r
--#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));\r
--#4519=VERTEX_POINT('',#4517);\r
--#4520=VERTEX_POINT('',#4518);\r
--#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));\r
--#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));\r
--#4523=VERTEX_POINT('',#4521);\r
--#4524=VERTEX_POINT('',#4522);\r
--#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));\r
--#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));\r
--#4527=VERTEX_POINT('',#4525);\r
--#4528=VERTEX_POINT('',#4526);\r
--#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));\r
--#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));\r
--#4531=VERTEX_POINT('',#4529);\r
--#4532=VERTEX_POINT('',#4530);\r
--#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));\r
--#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));\r
--#4535=VERTEX_POINT('',#4533);\r
--#4536=VERTEX_POINT('',#4534);\r
--#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));\r
--#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));\r
--#4539=VERTEX_POINT('',#4537);\r
--#4540=VERTEX_POINT('',#4538);\r
--#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));\r
--#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));\r
--#4543=VERTEX_POINT('',#4541);\r
--#4544=VERTEX_POINT('',#4542);\r
--#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));\r
--#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));\r
--#4547=VERTEX_POINT('',#4545);\r
--#4548=VERTEX_POINT('',#4546);\r
--#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));\r
--#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));\r
--#4551=VERTEX_POINT('',#4549);\r
--#4552=VERTEX_POINT('',#4550);\r
--#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));\r
--#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));\r
--#4555=VERTEX_POINT('',#4553);\r
--#4556=VERTEX_POINT('',#4554);\r
--#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));\r
--#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));\r
--#4559=VERTEX_POINT('',#4557);\r
--#4560=VERTEX_POINT('',#4558);\r
--#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));\r
--#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));\r
--#4563=VERTEX_POINT('',#4561);\r
--#4564=VERTEX_POINT('',#4562);\r
--#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));\r
--#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));\r
--#4567=VERTEX_POINT('',#4565);\r
--#4568=VERTEX_POINT('',#4566);\r
--#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));\r
--#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));\r
--#4571=VERTEX_POINT('',#4569);\r
--#4572=VERTEX_POINT('',#4570);\r
--#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));\r
--#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));\r
--#4575=VERTEX_POINT('',#4573);\r
--#4576=VERTEX_POINT('',#4574);\r
--#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));\r
--#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));\r
--#4579=VERTEX_POINT('',#4577);\r
--#4580=VERTEX_POINT('',#4578);\r
--#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));\r
--#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));\r
--#4583=VERTEX_POINT('',#4581);\r
--#4584=VERTEX_POINT('',#4582);\r
--#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));\r
--#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));\r
--#4587=VERTEX_POINT('',#4585);\r
--#4588=VERTEX_POINT('',#4586);\r
--#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));\r
--#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));\r
--#4591=VERTEX_POINT('',#4589);\r
--#4592=VERTEX_POINT('',#4590);\r
--#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));\r
--#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));\r
--#4595=VERTEX_POINT('',#4593);\r
--#4596=VERTEX_POINT('',#4594);\r
--#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));\r
--#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));\r
--#4599=VERTEX_POINT('',#4597);\r
--#4600=VERTEX_POINT('',#4598);\r
--#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));\r
--#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));\r
--#4603=VERTEX_POINT('',#4601);\r
--#4604=VERTEX_POINT('',#4602);\r
--#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));\r
--#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));\r
--#4607=VERTEX_POINT('',#4605);\r
--#4608=VERTEX_POINT('',#4606);\r
--#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));\r
--#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));\r
--#4611=VERTEX_POINT('',#4609);\r
--#4612=VERTEX_POINT('',#4610);\r
--#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));\r
--#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));\r
--#4615=VERTEX_POINT('',#4613);\r
--#4616=VERTEX_POINT('',#4614);\r
--#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));\r
--#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));\r
--#4619=VERTEX_POINT('',#4617);\r
--#4620=VERTEX_POINT('',#4618);\r
--#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));\r
--#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));\r
--#4623=VERTEX_POINT('',#4621);\r
--#4624=VERTEX_POINT('',#4622);\r
--#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));\r
--#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));\r
--#4627=VERTEX_POINT('',#4625);\r
--#4628=VERTEX_POINT('',#4626);\r
--#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));\r
--#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));\r
--#4631=VERTEX_POINT('',#4629);\r
--#4632=VERTEX_POINT('',#4630);\r
--#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));\r
--#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));\r
--#4635=VERTEX_POINT('',#4633);\r
--#4636=VERTEX_POINT('',#4634);\r
--#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));\r
--#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));\r
--#4639=VERTEX_POINT('',#4637);\r
--#4640=VERTEX_POINT('',#4638);\r
--#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));\r
--#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));\r
--#4643=VERTEX_POINT('',#4641);\r
--#4644=VERTEX_POINT('',#4642);\r
--#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));\r
--#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));\r
--#4647=VERTEX_POINT('',#4645);\r
--#4648=VERTEX_POINT('',#4646);\r
--#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));\r
--#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));\r
--#4651=VERTEX_POINT('',#4649);\r
--#4652=VERTEX_POINT('',#4650);\r
--#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));\r
--#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));\r
--#4655=VERTEX_POINT('',#4653);\r
--#4656=VERTEX_POINT('',#4654);\r
--#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));\r
--#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));\r
--#4659=VERTEX_POINT('',#4657);\r
--#4660=VERTEX_POINT('',#4658);\r
--#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));\r
--#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));\r
--#4663=VERTEX_POINT('',#4661);\r
--#4664=VERTEX_POINT('',#4662);\r
--#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));\r
--#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));\r
--#4667=VERTEX_POINT('',#4665);\r
--#4668=VERTEX_POINT('',#4666);\r
--#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));\r
--#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));\r
--#4671=VERTEX_POINT('',#4669);\r
--#4672=VERTEX_POINT('',#4670);\r
--#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));\r
--#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));\r
--#4675=VERTEX_POINT('',#4673);\r
--#4676=VERTEX_POINT('',#4674);\r
--#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));\r
--#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));\r
--#4679=VERTEX_POINT('',#4677);\r
--#4680=VERTEX_POINT('',#4678);\r
--#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));\r
--#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));\r
--#4683=VERTEX_POINT('',#4681);\r
--#4684=VERTEX_POINT('',#4682);\r
--#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));\r
--#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));\r
--#4687=VERTEX_POINT('',#4685);\r
--#4688=VERTEX_POINT('',#4686);\r
--#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));\r
--#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));\r
--#4691=VERTEX_POINT('',#4689);\r
--#4692=VERTEX_POINT('',#4690);\r
--#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));\r
--#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));\r
--#4695=VERTEX_POINT('',#4693);\r
--#4696=VERTEX_POINT('',#4694);\r
--#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));\r
--#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));\r
--#4699=VERTEX_POINT('',#4697);\r
--#4700=VERTEX_POINT('',#4698);\r
--#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));\r
--#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));\r
--#4703=VERTEX_POINT('',#4701);\r
--#4704=VERTEX_POINT('',#4702);\r
--#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));\r
--#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));\r
--#4707=VERTEX_POINT('',#4705);\r
--#4708=VERTEX_POINT('',#4706);\r
--#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));\r
--#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));\r
--#4711=VERTEX_POINT('',#4709);\r
--#4712=VERTEX_POINT('',#4710);\r
--#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));\r
--#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));\r
--#4715=VERTEX_POINT('',#4713);\r
--#4716=VERTEX_POINT('',#4714);\r
--#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));\r
--#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));\r
--#4719=VERTEX_POINT('',#4717);\r
--#4720=VERTEX_POINT('',#4718);\r
--#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));\r
--#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));\r
--#4723=VERTEX_POINT('',#4721);\r
--#4724=VERTEX_POINT('',#4722);\r
--#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));\r
--#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));\r
--#4727=VERTEX_POINT('',#4725);\r
--#4728=VERTEX_POINT('',#4726);\r
--#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));\r
--#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));\r
--#4731=VERTEX_POINT('',#4729);\r
--#4732=VERTEX_POINT('',#4730);\r
--#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));\r
--#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));\r
--#4735=VERTEX_POINT('',#4733);\r
--#4736=VERTEX_POINT('',#4734);\r
--#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));\r
--#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));\r
--#4739=VERTEX_POINT('',#4737);\r
--#4740=VERTEX_POINT('',#4738);\r
--#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));\r
--#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));\r
--#4743=VERTEX_POINT('',#4741);\r
--#4744=VERTEX_POINT('',#4742);\r
--#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));\r
--#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));\r
--#4747=VERTEX_POINT('',#4745);\r
--#4748=VERTEX_POINT('',#4746);\r
--#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));\r
--#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));\r
--#4751=VERTEX_POINT('',#4749);\r
--#4752=VERTEX_POINT('',#4750);\r
--#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));\r
--#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));\r
--#4755=VERTEX_POINT('',#4753);\r
--#4756=VERTEX_POINT('',#4754);\r
--#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));\r
--#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));\r
--#4759=VERTEX_POINT('',#4757);\r
--#4760=VERTEX_POINT('',#4758);\r
--#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));\r
--#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));\r
--#4763=VERTEX_POINT('',#4761);\r
--#4764=VERTEX_POINT('',#4762);\r
--#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
--#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
--#4767=VERTEX_POINT('',#4765);\r
--#4768=VERTEX_POINT('',#4766);\r
--#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));\r
--#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));\r
--#4771=VERTEX_POINT('',#4769);\r
--#4772=VERTEX_POINT('',#4770);\r
--#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));\r
--#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));\r
--#4775=VERTEX_POINT('',#4773);\r
--#4776=VERTEX_POINT('',#4774);\r
--#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));\r
--#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));\r
--#4779=VERTEX_POINT('',#4777);\r
--#4780=VERTEX_POINT('',#4778);\r
--#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));\r
--#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));\r
--#4783=VERTEX_POINT('',#4781);\r
--#4784=VERTEX_POINT('',#4782);\r
--#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
--#4786=VERTEX_POINT('',#4785);\r
--#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));\r
--#4788=VERTEX_POINT('',#4787);\r
--#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));\r
--#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));\r
--#4791=VERTEX_POINT('',#4789);\r
--#4792=VERTEX_POINT('',#4790);\r
--#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));\r
--#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));\r
--#4795=VERTEX_POINT('',#4793);\r
--#4796=VERTEX_POINT('',#4794);\r
--#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));\r
--#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));\r
--#4799=VERTEX_POINT('',#4797);\r
--#4800=VERTEX_POINT('',#4798);\r
--#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));\r
--#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));\r
--#4803=VERTEX_POINT('',#4801);\r
--#4804=VERTEX_POINT('',#4802);\r
--#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));\r
--#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));\r
--#4807=VERTEX_POINT('',#4805);\r
--#4808=VERTEX_POINT('',#4806);\r
--#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));\r
--#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));\r
--#4811=VERTEX_POINT('',#4809);\r
--#4812=VERTEX_POINT('',#4810);\r
--#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));\r
--#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));\r
--#4815=VERTEX_POINT('',#4813);\r
--#4816=VERTEX_POINT('',#4814);\r
--#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));\r
--#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));\r
--#4819=VERTEX_POINT('',#4817);\r
--#4820=VERTEX_POINT('',#4818);\r
--#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));\r
--#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));\r
--#4823=VERTEX_POINT('',#4821);\r
--#4824=VERTEX_POINT('',#4822);\r
--#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));\r
--#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));\r
--#4827=VERTEX_POINT('',#4825);\r
--#4828=VERTEX_POINT('',#4826);\r
--#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));\r
--#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));\r
--#4831=VERTEX_POINT('',#4829);\r
--#4832=VERTEX_POINT('',#4830);\r
--#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));\r
--#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));\r
--#4835=VERTEX_POINT('',#4833);\r
--#4836=VERTEX_POINT('',#4834);\r
--#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));\r
--#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));\r
--#4839=VERTEX_POINT('',#4837);\r
--#4840=VERTEX_POINT('',#4838);\r
--#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));\r
--#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));\r
--#4843=VERTEX_POINT('',#4841);\r
--#4844=VERTEX_POINT('',#4842);\r
--#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));\r
--#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));\r
--#4847=VERTEX_POINT('',#4845);\r
--#4848=VERTEX_POINT('',#4846);\r
--#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));\r
--#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));\r
--#4851=VERTEX_POINT('',#4849);\r
--#4852=VERTEX_POINT('',#4850);\r
--#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));\r
--#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));\r
--#4855=VERTEX_POINT('',#4853);\r
--#4856=VERTEX_POINT('',#4854);\r
--#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));\r
--#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));\r
--#4859=VERTEX_POINT('',#4857);\r
--#4860=VERTEX_POINT('',#4858);\r
--#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));\r
--#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));\r
--#4863=VERTEX_POINT('',#4861);\r
--#4864=VERTEX_POINT('',#4862);\r
--#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));\r
--#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));\r
--#4867=VERTEX_POINT('',#4865);\r
--#4868=VERTEX_POINT('',#4866);\r
--#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));\r
--#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));\r
--#4871=VERTEX_POINT('',#4869);\r
--#4872=VERTEX_POINT('',#4870);\r
--#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));\r
--#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));\r
--#4875=VERTEX_POINT('',#4873);\r
--#4876=VERTEX_POINT('',#4874);\r
--#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));\r
--#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));\r
--#4879=VERTEX_POINT('',#4877);\r
--#4880=VERTEX_POINT('',#4878);\r
--#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));\r
--#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));\r
--#4883=VERTEX_POINT('',#4881);\r
--#4884=VERTEX_POINT('',#4882);\r
--#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));\r
--#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));\r
--#4887=VERTEX_POINT('',#4885);\r
--#4888=VERTEX_POINT('',#4886);\r
--#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));\r
--#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));\r
--#4891=VERTEX_POINT('',#4889);\r
--#4892=VERTEX_POINT('',#4890);\r
--#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));\r
--#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));\r
--#4895=VERTEX_POINT('',#4893);\r
--#4896=VERTEX_POINT('',#4894);\r
--#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));\r
--#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));\r
--#4899=VERTEX_POINT('',#4897);\r
--#4900=VERTEX_POINT('',#4898);\r
--#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));\r
--#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));\r
--#4903=VERTEX_POINT('',#4901);\r
--#4904=VERTEX_POINT('',#4902);\r
--#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));\r
--#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));\r
--#4907=VERTEX_POINT('',#4905);\r
--#4908=VERTEX_POINT('',#4906);\r
--#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));\r
--#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));\r
--#4911=VERTEX_POINT('',#4909);\r
--#4912=VERTEX_POINT('',#4910);\r
--#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));\r
--#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));\r
--#4915=VERTEX_POINT('',#4913);\r
--#4916=VERTEX_POINT('',#4914);\r
--#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));\r
--#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));\r
--#4919=VERTEX_POINT('',#4917);\r
--#4920=VERTEX_POINT('',#4918);\r
--#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));\r
--#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));\r
--#4923=VERTEX_POINT('',#4921);\r
--#4924=VERTEX_POINT('',#4922);\r
--#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
--#4926=VERTEX_POINT('',#4925);\r
--#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));\r
--#4928=VERTEX_POINT('',#4927);\r
--#4929=VERTEX_POINT('',#1837);\r
--#4930=VERTEX_POINT('',#1845);\r
--#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));\r
--#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));\r
--#4933=VERTEX_POINT('',#4931);\r
--#4934=VERTEX_POINT('',#4932);\r
--#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));\r
--#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));\r
--#4937=VERTEX_POINT('',#4935);\r
--#4938=VERTEX_POINT('',#4936);\r
--#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
--#4940=VERTEX_POINT('',#4939);\r
--#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));\r
--#4942=VERTEX_POINT('',#4941);\r
--#4943=VERTEX_POINT('',#2873);\r
--#4944=VERTEX_POINT('',#2881);\r
--#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));\r
--#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));\r
--#4947=VERTEX_POINT('',#4945);\r
--#4948=VERTEX_POINT('',#4946);\r
--#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));\r
--#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));\r
--#4951=VERTEX_POINT('',#4949);\r
--#4952=VERTEX_POINT('',#4950);\r
--#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));\r
--#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));\r
--#4955=VERTEX_POINT('',#4953);\r
--#4956=VERTEX_POINT('',#4954);\r
--#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));\r
--#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));\r
--#4959=VERTEX_POINT('',#4957);\r
--#4960=VERTEX_POINT('',#4958);\r
--#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));\r
--#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));\r
--#4963=VERTEX_POINT('',#4961);\r
--#4964=VERTEX_POINT('',#4962);\r
--#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));\r
--#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));\r
--#4967=VERTEX_POINT('',#4965);\r
--#4968=VERTEX_POINT('',#4966);\r
--#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));\r
--#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));\r
--#4971=VERTEX_POINT('',#4969);\r
--#4972=VERTEX_POINT('',#4970);\r
--#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));\r
--#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));\r
--#4975=VERTEX_POINT('',#4973);\r
--#4976=VERTEX_POINT('',#4974);\r
--#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));\r
--#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));\r
--#4979=VERTEX_POINT('',#4977);\r
--#4980=VERTEX_POINT('',#4978);\r
--#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));\r
--#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));\r
--#4983=VERTEX_POINT('',#4981);\r
--#4984=VERTEX_POINT('',#4982);\r
--#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));\r
--#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));\r
--#4987=VERTEX_POINT('',#4985);\r
--#4988=VERTEX_POINT('',#4986);\r
--#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));\r
--#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));\r
--#4991=VERTEX_POINT('',#4989);\r
--#4992=VERTEX_POINT('',#4990);\r
--#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));\r
--#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));\r
--#4995=VERTEX_POINT('',#4993);\r
--#4996=VERTEX_POINT('',#4994);\r
--#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));\r
--#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));\r
--#4999=VERTEX_POINT('',#4997);\r
--#5000=VERTEX_POINT('',#4998);\r
--#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));\r
--#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));\r
--#5003=VERTEX_POINT('',#5001);\r
--#5004=VERTEX_POINT('',#5002);\r
--#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));\r
--#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));\r
--#5007=VERTEX_POINT('',#5005);\r
--#5008=VERTEX_POINT('',#5006);\r
--#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));\r
--#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));\r
--#5011=VERTEX_POINT('',#5009);\r
--#5012=VERTEX_POINT('',#5010);\r
--#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));\r
--#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));\r
--#5015=VERTEX_POINT('',#5013);\r
--#5016=VERTEX_POINT('',#5014);\r
--#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));\r
--#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));\r
--#5019=VERTEX_POINT('',#5017);\r
--#5020=VERTEX_POINT('',#5018);\r
--#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));\r
--#5022=VERTEX_POINT('',#5021);\r
--#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));\r
--#5024=VERTEX_POINT('',#5023);\r
--#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));\r
--#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));\r
--#5027=VERTEX_POINT('',#5025);\r
--#5028=VERTEX_POINT('',#5026);\r
--#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));\r
--#5030=VERTEX_POINT('',#5029);\r
--#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));\r
--#5032=VERTEX_POINT('',#5031);\r
--#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));\r
--#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));\r
--#5035=VERTEX_POINT('',#5033);\r
--#5036=VERTEX_POINT('',#5034);\r
--#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));\r
--#5038=VERTEX_POINT('',#5037);\r
--#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));\r
--#5040=VERTEX_POINT('',#5039);\r
--#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));\r
--#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));\r
--#5043=VERTEX_POINT('',#5041);\r
--#5044=VERTEX_POINT('',#5042);\r
--#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));\r
--#5046=VERTEX_POINT('',#5045);\r
--#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));\r
--#5048=VERTEX_POINT('',#5047);\r
--#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));\r
--#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));\r
--#5051=VERTEX_POINT('',#5049);\r
--#5052=VERTEX_POINT('',#5050);\r
--#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));\r
--#5054=VERTEX_POINT('',#5053);\r
--#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));\r
--#5056=VERTEX_POINT('',#5055);\r
--#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));\r
--#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));\r
--#5059=VERTEX_POINT('',#5057);\r
--#5060=VERTEX_POINT('',#5058);\r
--#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));\r
--#5062=VERTEX_POINT('',#5061);\r
--#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));\r
--#5064=VERTEX_POINT('',#5063);\r
--#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));\r
--#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));\r
--#5067=VERTEX_POINT('',#5065);\r
--#5068=VERTEX_POINT('',#5066);\r
--#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));\r
--#5070=VERTEX_POINT('',#5069);\r
--#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));\r
--#5072=VERTEX_POINT('',#5071);\r
--#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));\r
--#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));\r
--#5075=VERTEX_POINT('',#5073);\r
--#5076=VERTEX_POINT('',#5074);\r
--#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));\r
--#5078=VERTEX_POINT('',#5077);\r
--#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));\r
--#5080=VERTEX_POINT('',#5079);\r
--#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));\r
--#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));\r
--#5083=VERTEX_POINT('',#5081);\r
--#5084=VERTEX_POINT('',#5082);\r
--#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));\r
--#5086=VERTEX_POINT('',#5085);\r
--#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));\r
--#5088=VERTEX_POINT('',#5087);\r
--#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));\r
--#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));\r
--#5091=VERTEX_POINT('',#5089);\r
--#5092=VERTEX_POINT('',#5090);\r
--#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));\r
--#5094=VERTEX_POINT('',#5093);\r
--#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));\r
--#5096=VERTEX_POINT('',#5095);\r
--#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));\r
--#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));\r
--#5099=VERTEX_POINT('',#5097);\r
--#5100=VERTEX_POINT('',#5098);\r
--#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));\r
--#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));\r
--#5103=VERTEX_POINT('',#5101);\r
--#5104=VERTEX_POINT('',#5102);\r
--#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));\r
--#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));\r
--#5107=VERTEX_POINT('',#5105);\r
--#5108=VERTEX_POINT('',#5106);\r
--#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));\r
--#5110=VERTEX_POINT('',#5109);\r
--#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));\r
--#5112=VERTEX_POINT('',#5111);\r
--#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));\r
--#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));\r
--#5115=VERTEX_POINT('',#5113);\r
--#5116=VERTEX_POINT('',#5114);\r
--#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));\r
--#5118=VERTEX_POINT('',#5117);\r
--#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
--#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));\r
--#5121=VERTEX_POINT('',#5119);\r
--#5122=VERTEX_POINT('',#5120);\r
--#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
--#5124=VERTEX_POINT('',#5123);\r
--#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));\r
--#5126=VERTEX_POINT('',#5125);\r
--#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));\r
--#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));\r
--#5129=VERTEX_POINT('',#5127);\r
--#5130=VERTEX_POINT('',#5128);\r
--#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));\r
--#5132=VERTEX_POINT('',#5131);\r
--#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));\r
--#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));\r
--#5135=VERTEX_POINT('',#5133);\r
--#5136=VERTEX_POINT('',#5134);\r
--#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));\r
--#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));\r
--#5139=VERTEX_POINT('',#5137);\r
--#5140=VERTEX_POINT('',#5138);\r
--#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));\r
--#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));\r
--#5143=VERTEX_POINT('',#5141);\r
--#5144=VERTEX_POINT('',#5142);\r
--#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));\r
--#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
--#5147=VERTEX_POINT('',#5145);\r
--#5148=VERTEX_POINT('',#5146);\r
--#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));\r
--#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));\r
--#5151=VERTEX_POINT('',#5149);\r
--#5152=VERTEX_POINT('',#5150);\r
--#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));\r
--#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));\r
--#5155=VERTEX_POINT('',#5153);\r
--#5156=VERTEX_POINT('',#5154);\r
--#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));\r
--#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));\r
--#5159=VERTEX_POINT('',#5157);\r
--#5160=VERTEX_POINT('',#5158);\r
--#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));\r
--#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));\r
--#5163=VERTEX_POINT('',#5161);\r
--#5164=VERTEX_POINT('',#5162);\r
--#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));\r
--#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));\r
--#5167=VERTEX_POINT('',#5165);\r
--#5168=VERTEX_POINT('',#5166);\r
--#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));\r
--#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));\r
--#5171=VERTEX_POINT('',#5169);\r
--#5172=VERTEX_POINT('',#5170);\r
--#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));\r
--#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));\r
--#5175=VERTEX_POINT('',#5173);\r
--#5176=VERTEX_POINT('',#5174);\r
--#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));\r
--#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));\r
--#5179=VERTEX_POINT('',#5177);\r
--#5180=VERTEX_POINT('',#5178);\r
--#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));\r
--#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));\r
--#5183=VERTEX_POINT('',#5181);\r
--#5184=VERTEX_POINT('',#5182);\r
--#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));\r
--#5186=VERTEX_POINT('',#5185);\r
--#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));\r
--#5188=VERTEX_POINT('',#5187);\r
--#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));\r
--#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));\r
--#5191=VERTEX_POINT('',#5189);\r
--#5192=VERTEX_POINT('',#5190);\r
--#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));\r
--#5194=VERTEX_POINT('',#5193);\r
--#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));\r
--#5196=VERTEX_POINT('',#5195);\r
--#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));\r
--#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));\r
--#5199=VERTEX_POINT('',#5197);\r
--#5200=VERTEX_POINT('',#5198);\r
--#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));\r
--#5202=VERTEX_POINT('',#5201);\r
--#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));\r
--#5204=VERTEX_POINT('',#5203);\r
--#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
--#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));\r
--#5207=VERTEX_POINT('',#5205);\r
--#5208=VERTEX_POINT('',#5206);\r
--#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
--#5210=VERTEX_POINT('',#5209);\r
--#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));\r
--#5212=VERTEX_POINT('',#5211);\r
--#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));\r
--#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));\r
--#5215=VERTEX_POINT('',#5213);\r
--#5216=VERTEX_POINT('',#5214);\r
--#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));\r
--#5218=VERTEX_POINT('',#5217);\r
--#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));\r
--#5220=VERTEX_POINT('',#5219);\r
--#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
--#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));\r
--#5223=VERTEX_POINT('',#5221);\r
--#5224=VERTEX_POINT('',#5222);\r
--#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
--#5226=VERTEX_POINT('',#5225);\r
--#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));\r
--#5228=VERTEX_POINT('',#5227);\r
--#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));\r
--#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));\r
--#5231=VERTEX_POINT('',#5229);\r
--#5232=VERTEX_POINT('',#5230);\r
--#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));\r
--#5234=VERTEX_POINT('',#5233);\r
--#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));\r
--#5236=VERTEX_POINT('',#5235);\r
--#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
--#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));\r
--#5239=VERTEX_POINT('',#5237);\r
--#5240=VERTEX_POINT('',#5238);\r
--#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
--#5242=VERTEX_POINT('',#5241);\r
--#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));\r
--#5244=VERTEX_POINT('',#5243);\r
--#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));\r
--#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));\r
--#5247=VERTEX_POINT('',#5245);\r
--#5248=VERTEX_POINT('',#5246);\r
--#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));\r
--#5250=VERTEX_POINT('',#5249);\r
--#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));\r
--#5252=VERTEX_POINT('',#5251);\r
--#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
--#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));\r
--#5255=VERTEX_POINT('',#5253);\r
--#5256=VERTEX_POINT('',#5254);\r
--#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
--#5258=VERTEX_POINT('',#5257);\r
--#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));\r
--#5260=VERTEX_POINT('',#5259);\r
--#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));\r
--#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));\r
--#5263=VERTEX_POINT('',#5261);\r
--#5264=VERTEX_POINT('',#5262);\r
--#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));\r
--#5266=VERTEX_POINT('',#5265);\r
--#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));\r
--#5268=VERTEX_POINT('',#5267);\r
--#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));\r
--#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));\r
--#5271=VERTEX_POINT('',#5269);\r
--#5272=VERTEX_POINT('',#5270);\r
--#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));\r
--#5274=VERTEX_POINT('',#5273);\r
--#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
--#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));\r
--#5277=VERTEX_POINT('',#5275);\r
--#5278=VERTEX_POINT('',#5276);\r
--#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
--#5280=VERTEX_POINT('',#5279);\r
--#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));\r
--#5282=VERTEX_POINT('',#5281);\r
--#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));\r
--#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));\r
--#5285=VERTEX_POINT('',#5283);\r
--#5286=VERTEX_POINT('',#5284);\r
--#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));\r
--#5288=VERTEX_POINT('',#5287);\r
--#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));\r
--#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));\r
--#5291=VERTEX_POINT('',#5289);\r
--#5292=VERTEX_POINT('',#5290);\r
--#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));\r
--#5294=VERTEX_POINT('',#5293);\r
--#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));\r
--#5296=VERTEX_POINT('',#5295);\r
--#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));\r
--#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));\r
--#5299=VERTEX_POINT('',#5297);\r
--#5300=VERTEX_POINT('',#5298);\r
--#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));\r
--#5302=VERTEX_POINT('',#5301);\r
--#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
--#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));\r
--#5305=VERTEX_POINT('',#5303);\r
--#5306=VERTEX_POINT('',#5304);\r
--#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
--#5308=VERTEX_POINT('',#5307);\r
--#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));\r
--#5310=VERTEX_POINT('',#5309);\r
--#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));\r
--#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));\r
--#5313=VERTEX_POINT('',#5311);\r
--#5314=VERTEX_POINT('',#5312);\r
--#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));\r
--#5316=VERTEX_POINT('',#5315);\r
--#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));\r
--#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));\r
--#5319=VERTEX_POINT('',#5317);\r
--#5320=VERTEX_POINT('',#5318);\r
--#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));\r
--#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
--#5323=VERTEX_POINT('',#5321);\r
--#5324=VERTEX_POINT('',#5322);\r
--#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));\r
--#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));\r
--#5327=VERTEX_POINT('',#5325);\r
--#5328=VERTEX_POINT('',#5326);\r
--#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));\r
--#5330=VERTEX_POINT('',#5329);\r
--#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));\r
--#5332=VERTEX_POINT('',#5331);\r
--#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
--#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));\r
--#5335=VERTEX_POINT('',#5333);\r
--#5336=VERTEX_POINT('',#5334);\r
--#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
--#5338=VERTEX_POINT('',#5337);\r
--#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));\r
--#5340=VERTEX_POINT('',#5339);\r
--#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));\r
--#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));\r
--#5343=VERTEX_POINT('',#5341);\r
--#5344=VERTEX_POINT('',#5342);\r
--#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));\r
--#5346=VERTEX_POINT('',#5345);\r
--#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));\r
--#5348=VERTEX_POINT('',#5347);\r
--#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
--#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));\r
--#5351=VERTEX_POINT('',#5349);\r
--#5352=VERTEX_POINT('',#5350);\r
--#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
--#5354=VERTEX_POINT('',#5353);\r
--#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));\r
--#5356=VERTEX_POINT('',#5355);\r
--#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));\r
--#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));\r
--#5359=VERTEX_POINT('',#5357);\r
--#5360=VERTEX_POINT('',#5358);\r
--#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));\r
--#5362=VERTEX_POINT('',#5361);\r
--#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));\r
--#5364=VERTEX_POINT('',#5363);\r
--#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
--#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));\r
--#5367=VERTEX_POINT('',#5365);\r
--#5368=VERTEX_POINT('',#5366);\r
--#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
--#5370=VERTEX_POINT('',#5369);\r
--#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));\r
--#5372=VERTEX_POINT('',#5371);\r
--#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));\r
--#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));\r
--#5375=VERTEX_POINT('',#5373);\r
--#5376=VERTEX_POINT('',#5374);\r
--#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));\r
--#5378=VERTEX_POINT('',#5377);\r
--#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));\r
--#5380=VERTEX_POINT('',#5379);\r
--#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
--#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));\r
--#5383=VERTEX_POINT('',#5381);\r
--#5384=VERTEX_POINT('',#5382);\r
--#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
--#5386=VERTEX_POINT('',#5385);\r
--#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));\r
--#5388=VERTEX_POINT('',#5387);\r
--#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));\r
--#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));\r
--#5391=VERTEX_POINT('',#5389);\r
--#5392=VERTEX_POINT('',#5390);\r
--#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));\r
--#5394=VERTEX_POINT('',#5393);\r
--#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));\r
--#5396=VERTEX_POINT('',#5395);\r
--#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));\r
--#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));\r
--#5399=VERTEX_POINT('',#5397);\r
--#5400=VERTEX_POINT('',#5398);\r
--#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));\r
--#5402=VERTEX_POINT('',#5401);\r
--#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
--#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));\r
--#5405=VERTEX_POINT('',#5403);\r
--#5406=VERTEX_POINT('',#5404);\r
--#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
--#5408=VERTEX_POINT('',#5407);\r
--#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));\r
--#5410=VERTEX_POINT('',#5409);\r
--#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));\r
--#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));\r
--#5413=VERTEX_POINT('',#5411);\r
--#5414=VERTEX_POINT('',#5412);\r
--#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));\r
--#5416=VERTEX_POINT('',#5415);\r
--#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));\r
--#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));\r
--#5419=VERTEX_POINT('',#5417);\r
--#5420=VERTEX_POINT('',#5418);\r
--#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));\r
--#5422=VERTEX_POINT('',#5421);\r
--#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));\r
--#5424=VERTEX_POINT('',#5423);\r
--#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));\r
--#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));\r
--#5427=VERTEX_POINT('',#5425);\r
--#5428=VERTEX_POINT('',#5426);\r
--#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));\r
--#5430=VERTEX_POINT('',#5429);\r
--#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));\r
--#5432=VERTEX_POINT('',#5431);\r
--#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));\r
--#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));\r
--#5435=VERTEX_POINT('',#5433);\r
--#5436=VERTEX_POINT('',#5434);\r
--#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));\r
--#5438=VERTEX_POINT('',#5437);\r
--#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));\r
--#5440=VERTEX_POINT('',#5439);\r
--#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));\r
--#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));\r
--#5443=VERTEX_POINT('',#5441);\r
--#5444=VERTEX_POINT('',#5442);\r
--#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));\r
--#5446=VERTEX_POINT('',#5445);\r
--#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));\r
--#5448=VERTEX_POINT('',#5447);\r
--#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));\r
--#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));\r
--#5451=VERTEX_POINT('',#5449);\r
--#5452=VERTEX_POINT('',#5450);\r
--#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));\r
--#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));\r
--#5455=VERTEX_POINT('',#5453);\r
--#5456=VERTEX_POINT('',#5454);\r
--#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));\r
--#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));\r
--#5459=VERTEX_POINT('',#5457);\r
--#5460=VERTEX_POINT('',#5458);\r
--#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));\r
--#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));\r
--#5463=VERTEX_POINT('',#5461);\r
--#5464=VERTEX_POINT('',#5462);\r
--#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));\r
--#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));\r
--#5467=VERTEX_POINT('',#5465);\r
--#5468=VERTEX_POINT('',#5466);\r
--#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));\r
--#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));\r
--#5471=VERTEX_POINT('',#5469);\r
--#5472=VERTEX_POINT('',#5470);\r
--#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));\r
--#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));\r
--#5475=VERTEX_POINT('',#5473);\r
--#5476=VERTEX_POINT('',#5474);\r
--#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));\r
--#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));\r
--#5479=VERTEX_POINT('',#5477);\r
--#5480=VERTEX_POINT('',#5478);\r
--#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));\r
--#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));\r
--#5483=VERTEX_POINT('',#5481);\r
--#5484=VERTEX_POINT('',#5482);\r
--#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));\r
--#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));\r
--#5487=VERTEX_POINT('',#5485);\r
--#5488=VERTEX_POINT('',#5486);\r
--#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
--#5490=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#5491=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);\r
--#5493=PLANE('',#5492);\r
--#5495=ORIENTED_EDGE('',*,*,#5494,.F.);\r
--#5497=ORIENTED_EDGE('',*,*,#5496,.F.);\r
--#5499=ORIENTED_EDGE('',*,*,#5498,.T.);\r
--#5501=ORIENTED_EDGE('',*,*,#5500,.F.);\r
--#5503=ORIENTED_EDGE('',*,*,#5502,.T.);\r
--#5505=ORIENTED_EDGE('',*,*,#5504,.F.);\r
--#5507=ORIENTED_EDGE('',*,*,#5506,.T.);\r
--#5509=ORIENTED_EDGE('',*,*,#5508,.F.);\r
--#5511=ORIENTED_EDGE('',*,*,#5510,.T.);\r
--#5513=ORIENTED_EDGE('',*,*,#5512,.T.);\r
--#5515=ORIENTED_EDGE('',*,*,#5514,.F.);\r
--#5517=ORIENTED_EDGE('',*,*,#5516,.T.);\r
--#5519=ORIENTED_EDGE('',*,*,#5518,.F.);\r
--#5521=ORIENTED_EDGE('',*,*,#5520,.T.);\r
--#5523=ORIENTED_EDGE('',*,*,#5522,.F.);\r
--#5525=ORIENTED_EDGE('',*,*,#5524,.T.);\r
--#5527=ORIENTED_EDGE('',*,*,#5526,.F.);\r
--#5529=ORIENTED_EDGE('',*,*,#5528,.T.);\r
--#5531=ORIENTED_EDGE('',*,*,#5530,.F.);\r
--#5533=ORIENTED_EDGE('',*,*,#5532,.F.);\r
--#5535=ORIENTED_EDGE('',*,*,#5534,.T.);\r
--#5537=ORIENTED_EDGE('',*,*,#5536,.F.);\r
--#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,\r
--#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));\r
--#5539=FACE_OUTER_BOUND('',#5538,.F.);\r
--#5541=ORIENTED_EDGE('',*,*,#5540,.T.);\r
--#5543=ORIENTED_EDGE('',*,*,#5542,.F.);\r
--#5545=ORIENTED_EDGE('',*,*,#5544,.F.);\r
--#5547=ORIENTED_EDGE('',*,*,#5546,.F.);\r
--#5549=ORIENTED_EDGE('',*,*,#5548,.F.);\r
--#5551=ORIENTED_EDGE('',*,*,#5550,.F.);\r
--#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));\r
--#5553=FACE_BOUND('',#5552,.F.);\r
--#5555=ORIENTED_EDGE('',*,*,#5554,.T.);\r
--#5557=ORIENTED_EDGE('',*,*,#5556,.T.);\r
--#5558=EDGE_LOOP('',(#5555,#5557));\r
--#5559=FACE_BOUND('',#5558,.F.);\r
--#5561=ORIENTED_EDGE('',*,*,#5560,.T.);\r
--#5563=ORIENTED_EDGE('',*,*,#5562,.T.);\r
--#5564=EDGE_LOOP('',(#5561,#5563));\r
--#5565=FACE_BOUND('',#5564,.F.);\r
--#5567=ORIENTED_EDGE('',*,*,#5566,.T.);\r
--#5569=ORIENTED_EDGE('',*,*,#5568,.T.);\r
--#5570=EDGE_LOOP('',(#5567,#5569));\r
--#5571=FACE_BOUND('',#5570,.F.);\r
--#5573=ORIENTED_EDGE('',*,*,#5572,.T.);\r
--#5575=ORIENTED_EDGE('',*,*,#5574,.T.);\r
--#5576=EDGE_LOOP('',(#5573,#5575));\r
--#5577=FACE_BOUND('',#5576,.F.);\r
--#5579=ORIENTED_EDGE('',*,*,#5578,.T.);\r
--#5581=ORIENTED_EDGE('',*,*,#5580,.T.);\r
--#5582=EDGE_LOOP('',(#5579,#5581));\r
--#5583=FACE_BOUND('',#5582,.F.);\r
--#5585=ORIENTED_EDGE('',*,*,#5584,.T.);\r
--#5587=ORIENTED_EDGE('',*,*,#5586,.T.);\r
--#5588=EDGE_LOOP('',(#5585,#5587));\r
--#5589=FACE_BOUND('',#5588,.F.);\r
--#5591=ORIENTED_EDGE('',*,*,#5590,.T.);\r
--#5593=ORIENTED_EDGE('',*,*,#5592,.T.);\r
--#5594=EDGE_LOOP('',(#5591,#5593));\r
--#5595=FACE_BOUND('',#5594,.F.);\r
--#5597=ORIENTED_EDGE('',*,*,#5596,.T.);\r
--#5599=ORIENTED_EDGE('',*,*,#5598,.T.);\r
--#5600=EDGE_LOOP('',(#5597,#5599));\r
--#5601=FACE_BOUND('',#5600,.F.);\r
--#5603=ORIENTED_EDGE('',*,*,#5602,.T.);\r
--#5605=ORIENTED_EDGE('',*,*,#5604,.T.);\r
--#5606=EDGE_LOOP('',(#5603,#5605));\r
--#5607=FACE_BOUND('',#5606,.F.);\r
--#5609=ORIENTED_EDGE('',*,*,#5608,.T.);\r
--#5611=ORIENTED_EDGE('',*,*,#5610,.T.);\r
--#5612=EDGE_LOOP('',(#5609,#5611));\r
--#5613=FACE_BOUND('',#5612,.F.);\r
--#5615=ORIENTED_EDGE('',*,*,#5614,.T.);\r
--#5617=ORIENTED_EDGE('',*,*,#5616,.T.);\r
--#5618=EDGE_LOOP('',(#5615,#5617));\r
--#5619=FACE_BOUND('',#5618,.F.);\r
--#5621=ORIENTED_EDGE('',*,*,#5620,.T.);\r
--#5623=ORIENTED_EDGE('',*,*,#5622,.T.);\r
--#5624=EDGE_LOOP('',(#5621,#5623));\r
--#5625=FACE_BOUND('',#5624,.F.);\r
--#5627=ORIENTED_EDGE('',*,*,#5626,.T.);\r
--#5629=ORIENTED_EDGE('',*,*,#5628,.T.);\r
--#5630=EDGE_LOOP('',(#5627,#5629));\r
--#5631=FACE_BOUND('',#5630,.F.);\r
--#5633=ORIENTED_EDGE('',*,*,#5632,.T.);\r
--#5635=ORIENTED_EDGE('',*,*,#5634,.T.);\r
--#5636=EDGE_LOOP('',(#5633,#5635));\r
--#5637=FACE_BOUND('',#5636,.F.);\r
--#5639=ORIENTED_EDGE('',*,*,#5638,.T.);\r
--#5641=ORIENTED_EDGE('',*,*,#5640,.F.);\r
--#5643=ORIENTED_EDGE('',*,*,#5642,.F.);\r
--#5645=ORIENTED_EDGE('',*,*,#5644,.F.);\r
--#5647=ORIENTED_EDGE('',*,*,#5646,.F.);\r
--#5649=ORIENTED_EDGE('',*,*,#5648,.F.);\r
--#5651=ORIENTED_EDGE('',*,*,#5650,.F.);\r
--#5653=ORIENTED_EDGE('',*,*,#5652,.F.);\r
--#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));\r
--#5655=FACE_BOUND('',#5654,.F.);\r
--#5657=ORIENTED_EDGE('',*,*,#5656,.F.);\r
--#5659=ORIENTED_EDGE('',*,*,#5658,.F.);\r
--#5661=ORIENTED_EDGE('',*,*,#5660,.T.);\r
--#5663=ORIENTED_EDGE('',*,*,#5662,.F.);\r
--#5665=ORIENTED_EDGE('',*,*,#5664,.F.);\r
--#5667=ORIENTED_EDGE('',*,*,#5666,.F.);\r
--#5669=ORIENTED_EDGE('',*,*,#5668,.T.);\r
--#5671=ORIENTED_EDGE('',*,*,#5670,.F.);\r
--#5673=ORIENTED_EDGE('',*,*,#5672,.T.);\r
--#5675=ORIENTED_EDGE('',*,*,#5674,.F.);\r
--#5677=ORIENTED_EDGE('',*,*,#5676,.T.);\r
--#5679=ORIENTED_EDGE('',*,*,#5678,.F.);\r
--#5681=ORIENTED_EDGE('',*,*,#5680,.F.);\r
--#5683=ORIENTED_EDGE('',*,*,#5682,.T.);\r
--#5685=ORIENTED_EDGE('',*,*,#5684,.F.);\r
--#5687=ORIENTED_EDGE('',*,*,#5686,.F.);\r
--#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,\r
--#5677,#5679,#5681,#5683,#5685,#5687));\r
--#5689=FACE_BOUND('',#5688,.F.);\r
--#5691=ORIENTED_EDGE('',*,*,#5690,.T.);\r
--#5693=ORIENTED_EDGE('',*,*,#5692,.T.);\r
--#5694=EDGE_LOOP('',(#5691,#5693));\r
--#5695=FACE_BOUND('',#5694,.F.);\r
--#5697=ORIENTED_EDGE('',*,*,#5696,.T.);\r
--#5699=ORIENTED_EDGE('',*,*,#5698,.T.);\r
--#5700=EDGE_LOOP('',(#5697,#5699));\r
--#5701=FACE_BOUND('',#5700,.F.);\r
--#5703=ORIENTED_EDGE('',*,*,#5702,.T.);\r
--#5705=ORIENTED_EDGE('',*,*,#5704,.T.);\r
--#5706=EDGE_LOOP('',(#5703,#5705));\r
--#5707=FACE_BOUND('',#5706,.F.);\r
--#5709=ORIENTED_EDGE('',*,*,#5708,.T.);\r
--#5711=ORIENTED_EDGE('',*,*,#5710,.T.);\r
--#5712=EDGE_LOOP('',(#5709,#5711));\r
--#5713=FACE_BOUND('',#5712,.F.);\r
--#5715=ORIENTED_EDGE('',*,*,#5714,.T.);\r
--#5717=ORIENTED_EDGE('',*,*,#5716,.T.);\r
--#5718=EDGE_LOOP('',(#5715,#5717));\r
--#5719=FACE_BOUND('',#5718,.F.);\r
--#5721=ORIENTED_EDGE('',*,*,#5720,.T.);\r
--#5723=ORIENTED_EDGE('',*,*,#5722,.T.);\r
--#5724=EDGE_LOOP('',(#5721,#5723));\r
--#5725=FACE_BOUND('',#5724,.F.);\r
--#5727=ORIENTED_EDGE('',*,*,#5726,.T.);\r
--#5729=ORIENTED_EDGE('',*,*,#5728,.T.);\r
--#5731=ORIENTED_EDGE('',*,*,#5730,.T.);\r
--#5733=ORIENTED_EDGE('',*,*,#5732,.T.);\r
--#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));\r
--#5735=FACE_BOUND('',#5734,.F.);\r
--#5737=ORIENTED_EDGE('',*,*,#5736,.T.);\r
--#5739=ORIENTED_EDGE('',*,*,#5738,.F.);\r
--#5741=ORIENTED_EDGE('',*,*,#5740,.T.);\r
--#5743=ORIENTED_EDGE('',*,*,#5742,.T.);\r
--#5745=ORIENTED_EDGE('',*,*,#5744,.F.);\r
--#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));\r
--#5747=FACE_BOUND('',#5746,.F.);\r
--#5749=ORIENTED_EDGE('',*,*,#5748,.F.);\r
--#5751=ORIENTED_EDGE('',*,*,#5750,.T.);\r
--#5753=ORIENTED_EDGE('',*,*,#5752,.T.);\r
--#5755=ORIENTED_EDGE('',*,*,#5754,.T.);\r
--#5757=ORIENTED_EDGE('',*,*,#5756,.F.);\r
--#5759=ORIENTED_EDGE('',*,*,#5758,.T.);\r
--#5761=ORIENTED_EDGE('',*,*,#5760,.F.);\r
--#5763=ORIENTED_EDGE('',*,*,#5762,.T.);\r
--#5765=ORIENTED_EDGE('',*,*,#5764,.F.);\r
--#5767=ORIENTED_EDGE('',*,*,#5766,.T.);\r
--#5769=ORIENTED_EDGE('',*,*,#5768,.F.);\r
--#5771=ORIENTED_EDGE('',*,*,#5770,.T.);\r
--#5773=ORIENTED_EDGE('',*,*,#5772,.F.);\r
--#5775=ORIENTED_EDGE('',*,*,#5774,.T.);\r
--#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,\r
--#5769,#5771,#5773,#5775));\r
--#5777=FACE_BOUND('',#5776,.F.);\r
--#5779=ORIENTED_EDGE('',*,*,#5778,.T.);\r
--#5781=ORIENTED_EDGE('',*,*,#5780,.T.);\r
--#5783=ORIENTED_EDGE('',*,*,#5782,.T.);\r
--#5785=ORIENTED_EDGE('',*,*,#5784,.T.);\r
--#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));\r
--#5787=FACE_BOUND('',#5786,.F.);\r
--#5789=ORIENTED_EDGE('',*,*,#5788,.T.);\r
--#5791=ORIENTED_EDGE('',*,*,#5790,.T.);\r
--#5793=ORIENTED_EDGE('',*,*,#5792,.T.);\r
--#5795=ORIENTED_EDGE('',*,*,#5794,.T.);\r
--#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));\r
--#5797=FACE_BOUND('',#5796,.F.);\r
--#5799=ORIENTED_EDGE('',*,*,#5798,.T.);\r
--#5801=ORIENTED_EDGE('',*,*,#5800,.T.);\r
--#5803=ORIENTED_EDGE('',*,*,#5802,.T.);\r
--#5805=ORIENTED_EDGE('',*,*,#5804,.T.);\r
--#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));\r
--#5807=FACE_BOUND('',#5806,.F.);\r
--#5809=ORIENTED_EDGE('',*,*,#5808,.T.);\r
--#5811=ORIENTED_EDGE('',*,*,#5810,.T.);\r
--#5813=ORIENTED_EDGE('',*,*,#5812,.T.);\r
--#5815=ORIENTED_EDGE('',*,*,#5814,.T.);\r
--#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));\r
--#5817=FACE_BOUND('',#5816,.F.);\r
--#5819=ORIENTED_EDGE('',*,*,#5818,.F.);\r
--#5821=ORIENTED_EDGE('',*,*,#5820,.F.);\r
--#5823=ORIENTED_EDGE('',*,*,#5822,.F.);\r
--#5825=ORIENTED_EDGE('',*,*,#5824,.F.);\r
--#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));\r
--#5827=FACE_BOUND('',#5826,.F.);\r
--#5829=ORIENTED_EDGE('',*,*,#5828,.F.);\r
--#5831=ORIENTED_EDGE('',*,*,#5830,.F.);\r
--#5833=ORIENTED_EDGE('',*,*,#5832,.F.);\r
--#5835=ORIENTED_EDGE('',*,*,#5834,.F.);\r
--#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));\r
--#5837=FACE_BOUND('',#5836,.F.);\r
--#5839=ORIENTED_EDGE('',*,*,#5838,.F.);\r
--#5841=ORIENTED_EDGE('',*,*,#5840,.F.);\r
--#5843=ORIENTED_EDGE('',*,*,#5842,.F.);\r
--#5845=ORIENTED_EDGE('',*,*,#5844,.F.);\r
--#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));\r
--#5847=FACE_BOUND('',#5846,.F.);\r
--#5849=ORIENTED_EDGE('',*,*,#5848,.F.);\r
--#5851=ORIENTED_EDGE('',*,*,#5850,.F.);\r
--#5853=ORIENTED_EDGE('',*,*,#5852,.F.);\r
--#5855=ORIENTED_EDGE('',*,*,#5854,.F.);\r
--#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));\r
--#5857=FACE_BOUND('',#5856,.F.);\r
--#5859=ORIENTED_EDGE('',*,*,#5858,.F.);\r
--#5861=ORIENTED_EDGE('',*,*,#5860,.F.);\r
--#5863=ORIENTED_EDGE('',*,*,#5862,.F.);\r
--#5865=ORIENTED_EDGE('',*,*,#5864,.F.);\r
--#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));\r
--#5867=FACE_BOUND('',#5866,.F.);\r
--#5869=ORIENTED_EDGE('',*,*,#5868,.F.);\r
--#5871=ORIENTED_EDGE('',*,*,#5870,.F.);\r
--#5873=ORIENTED_EDGE('',*,*,#5872,.F.);\r
--#5875=ORIENTED_EDGE('',*,*,#5874,.F.);\r
--#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));\r
--#5877=FACE_BOUND('',#5876,.F.);\r
--#5879=ORIENTED_EDGE('',*,*,#5878,.T.);\r
--#5881=ORIENTED_EDGE('',*,*,#5880,.T.);\r
--#5883=ORIENTED_EDGE('',*,*,#5882,.T.);\r
--#5885=ORIENTED_EDGE('',*,*,#5884,.T.);\r
--#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));\r
--#5887=FACE_BOUND('',#5886,.F.);\r
--#5889=ORIENTED_EDGE('',*,*,#5888,.F.);\r
--#5891=ORIENTED_EDGE('',*,*,#5890,.F.);\r
--#5893=ORIENTED_EDGE('',*,*,#5892,.F.);\r
--#5895=ORIENTED_EDGE('',*,*,#5894,.F.);\r
--#5897=ORIENTED_EDGE('',*,*,#5896,.F.);\r
--#5899=ORIENTED_EDGE('',*,*,#5898,.F.);\r
--#5901=ORIENTED_EDGE('',*,*,#5900,.F.);\r
--#5903=ORIENTED_EDGE('',*,*,#5902,.F.);\r
--#5905=ORIENTED_EDGE('',*,*,#5904,.F.);\r
--#5907=ORIENTED_EDGE('',*,*,#5906,.F.);\r
--#5909=ORIENTED_EDGE('',*,*,#5908,.F.);\r
--#5911=ORIENTED_EDGE('',*,*,#5910,.F.);\r
--#5913=ORIENTED_EDGE('',*,*,#5912,.F.);\r
--#5915=ORIENTED_EDGE('',*,*,#5914,.F.);\r
--#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,\r
--#5909,#5911,#5913,#5915));\r
--#5917=FACE_BOUND('',#5916,.F.);\r
--#5919=ORIENTED_EDGE('',*,*,#5918,.F.);\r
--#5921=ORIENTED_EDGE('',*,*,#5920,.F.);\r
--#5923=ORIENTED_EDGE('',*,*,#5922,.F.);\r
--#5925=ORIENTED_EDGE('',*,*,#5924,.T.);\r
--#5927=ORIENTED_EDGE('',*,*,#5926,.F.);\r
--#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));\r
--#5929=FACE_BOUND('',#5928,.F.);\r
--#5931=ORIENTED_EDGE('',*,*,#5930,.F.);\r
--#5933=ORIENTED_EDGE('',*,*,#5932,.F.);\r
--#5935=ORIENTED_EDGE('',*,*,#5934,.F.);\r
--#5937=ORIENTED_EDGE('',*,*,#5936,.T.);\r
--#5939=ORIENTED_EDGE('',*,*,#5938,.F.);\r
--#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));\r
--#5941=FACE_BOUND('',#5940,.F.);\r
--#5943=ORIENTED_EDGE('',*,*,#5942,.T.);\r
--#5945=ORIENTED_EDGE('',*,*,#5944,.F.);\r
--#5947=ORIENTED_EDGE('',*,*,#5946,.T.);\r
--#5949=ORIENTED_EDGE('',*,*,#5948,.T.);\r
--#5951=ORIENTED_EDGE('',*,*,#5950,.F.);\r
--#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));\r
--#5953=FACE_BOUND('',#5952,.F.);\r
--#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,\r
--#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,\r
--#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,\r
--#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);\r
--#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));\r
--#5956=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#5957=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);\r
--#5959=PLANE('',#5958);\r
--#5960=ORIENTED_EDGE('',*,*,#5540,.F.);\r
--#5962=ORIENTED_EDGE('',*,*,#5961,.T.);\r
--#5964=ORIENTED_EDGE('',*,*,#5963,.F.);\r
--#5966=ORIENTED_EDGE('',*,*,#5965,.F.);\r
--#5967=ORIENTED_EDGE('',*,*,#5494,.T.);\r
--#5969=ORIENTED_EDGE('',*,*,#5968,.F.);\r
--#5971=ORIENTED_EDGE('',*,*,#5970,.F.);\r
--#5973=ORIENTED_EDGE('',*,*,#5972,.T.);\r
--#5975=ORIENTED_EDGE('',*,*,#5974,.F.);\r
--#5977=ORIENTED_EDGE('',*,*,#5976,.F.);\r
--#5979=ORIENTED_EDGE('',*,*,#5978,.F.);\r
--#5981=ORIENTED_EDGE('',*,*,#5980,.T.);\r
--#5983=ORIENTED_EDGE('',*,*,#5982,.T.);\r
--#5985=ORIENTED_EDGE('',*,*,#5984,.F.);\r
--#5986=ORIENTED_EDGE('',*,*,#5510,.F.);\r
--#5988=ORIENTED_EDGE('',*,*,#5987,.F.);\r
--#5990=ORIENTED_EDGE('',*,*,#5989,.F.);\r
--#5992=ORIENTED_EDGE('',*,*,#5991,.T.);\r
--#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,\r
--#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));\r
--#5994=FACE_OUTER_BOUND('',#5993,.F.);\r
--#5996=ORIENTED_EDGE('',*,*,#5995,.T.);\r
--#5998=ORIENTED_EDGE('',*,*,#5997,.T.);\r
--#5999=EDGE_LOOP('',(#5996,#5998));\r
--#6000=FACE_BOUND('',#5999,.F.);\r
--#6002=ORIENTED_EDGE('',*,*,#6001,.T.);\r
--#6004=ORIENTED_EDGE('',*,*,#6003,.T.);\r
--#6005=EDGE_LOOP('',(#6002,#6004));\r
--#6006=FACE_BOUND('',#6005,.F.);\r
--#6008=ORIENTED_EDGE('',*,*,#6007,.T.);\r
--#6010=ORIENTED_EDGE('',*,*,#6009,.T.);\r
--#6011=EDGE_LOOP('',(#6008,#6010));\r
--#6012=FACE_BOUND('',#6011,.F.);\r
--#6014=ORIENTED_EDGE('',*,*,#6013,.T.);\r
--#6016=ORIENTED_EDGE('',*,*,#6015,.T.);\r
--#6017=EDGE_LOOP('',(#6014,#6016));\r
--#6018=FACE_BOUND('',#6017,.F.);\r
--#6020=ORIENTED_EDGE('',*,*,#6019,.F.);\r
--#6022=ORIENTED_EDGE('',*,*,#6021,.F.);\r
--#6023=EDGE_LOOP('',(#6020,#6022));\r
--#6024=FACE_BOUND('',#6023,.F.);\r
--#6026=ORIENTED_EDGE('',*,*,#6025,.F.);\r
--#6028=ORIENTED_EDGE('',*,*,#6027,.F.);\r
--#6029=EDGE_LOOP('',(#6026,#6028));\r
--#6030=FACE_BOUND('',#6029,.F.);\r
--#6032=ORIENTED_EDGE('',*,*,#6031,.F.);\r
--#6034=ORIENTED_EDGE('',*,*,#6033,.F.);\r
--#6035=EDGE_LOOP('',(#6032,#6034));\r
--#6036=FACE_BOUND('',#6035,.F.);\r
--#6038=ORIENTED_EDGE('',*,*,#6037,.F.);\r
--#6040=ORIENTED_EDGE('',*,*,#6039,.F.);\r
--#6041=EDGE_LOOP('',(#6038,#6040));\r
--#6042=FACE_BOUND('',#6041,.F.);\r
--#6044=ORIENTED_EDGE('',*,*,#6043,.T.);\r
--#6046=ORIENTED_EDGE('',*,*,#6045,.F.);\r
--#6048=ORIENTED_EDGE('',*,*,#6047,.T.);\r
--#6050=ORIENTED_EDGE('',*,*,#6049,.F.);\r
--#6052=ORIENTED_EDGE('',*,*,#6051,.T.);\r
--#6054=ORIENTED_EDGE('',*,*,#6053,.F.);\r
--#6056=ORIENTED_EDGE('',*,*,#6055,.T.);\r
--#6058=ORIENTED_EDGE('',*,*,#6057,.F.);\r
--#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));\r
--#6060=FACE_BOUND('',#6059,.F.);\r
--#6062=ORIENTED_EDGE('',*,*,#6061,.F.);\r
--#6064=ORIENTED_EDGE('',*,*,#6063,.F.);\r
--#6066=ORIENTED_EDGE('',*,*,#6065,.F.);\r
--#6068=ORIENTED_EDGE('',*,*,#6067,.F.);\r
--#6070=ORIENTED_EDGE('',*,*,#6069,.F.);\r
--#6072=ORIENTED_EDGE('',*,*,#6071,.F.);\r
--#6074=ORIENTED_EDGE('',*,*,#6073,.F.);\r
--#6076=ORIENTED_EDGE('',*,*,#6075,.F.);\r
--#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));\r
--#6078=FACE_BOUND('',#6077,.F.);\r
--#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,\r
--#6060,#6078),#5959,.F.);\r
--#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
--#6081=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6082=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);\r
--#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);\r
--#6085=ORIENTED_EDGE('',*,*,#5995,.F.);\r
--#6087=ORIENTED_EDGE('',*,*,#6086,.T.);\r
--#6089=ORIENTED_EDGE('',*,*,#6088,.T.);\r
--#6091=ORIENTED_EDGE('',*,*,#6090,.F.);\r
--#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));\r
--#6093=FACE_OUTER_BOUND('',#6092,.F.);\r
--#6094=ADVANCED_FACE('',(#6093),#6084,.F.);\r
--#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));\r
--#6096=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6097=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);\r
--#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);\r
--#6100=ORIENTED_EDGE('',*,*,#5997,.F.);\r
--#6101=ORIENTED_EDGE('',*,*,#6090,.T.);\r
--#6103=ORIENTED_EDGE('',*,*,#6102,.T.);\r
--#6104=ORIENTED_EDGE('',*,*,#6086,.F.);\r
--#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));\r
--#6106=FACE_OUTER_BOUND('',#6105,.F.);\r
--#6107=ADVANCED_FACE('',(#6106),#6099,.F.);\r
--#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));\r
--#6109=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6110=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);\r
--#6112=PLANE('',#6111);\r
--#6113=ORIENTED_EDGE('',*,*,#6088,.F.);\r
--#6114=ORIENTED_EDGE('',*,*,#6102,.F.);\r
--#6115=EDGE_LOOP('',(#6113,#6114));\r
--#6116=FACE_OUTER_BOUND('',#6115,.F.);\r
--#6117=ADVANCED_FACE('',(#6116),#6112,.T.);\r
--#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
--#6119=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6120=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);\r
--#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);\r
--#6123=ORIENTED_EDGE('',*,*,#6001,.F.);\r
--#6125=ORIENTED_EDGE('',*,*,#6124,.T.);\r
--#6127=ORIENTED_EDGE('',*,*,#6126,.T.);\r
--#6129=ORIENTED_EDGE('',*,*,#6128,.F.);\r
--#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));\r
--#6131=FACE_OUTER_BOUND('',#6130,.F.);\r
--#6132=ADVANCED_FACE('',(#6131),#6122,.F.);\r
--#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));\r
--#6134=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6135=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);\r
--#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);\r
--#6138=ORIENTED_EDGE('',*,*,#6003,.F.);\r
--#6139=ORIENTED_EDGE('',*,*,#6128,.T.);\r
--#6141=ORIENTED_EDGE('',*,*,#6140,.T.);\r
--#6142=ORIENTED_EDGE('',*,*,#6124,.F.);\r
--#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));\r
--#6144=FACE_OUTER_BOUND('',#6143,.F.);\r
--#6145=ADVANCED_FACE('',(#6144),#6137,.F.);\r
--#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));\r
--#6147=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6148=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);\r
--#6150=PLANE('',#6149);\r
--#6152=ORIENTED_EDGE('',*,*,#6151,.T.);\r
--#6154=ORIENTED_EDGE('',*,*,#6153,.T.);\r
--#6156=ORIENTED_EDGE('',*,*,#6155,.F.);\r
--#6158=ORIENTED_EDGE('',*,*,#6157,.F.);\r
--#6160=ORIENTED_EDGE('',*,*,#6159,.T.);\r
--#6162=ORIENTED_EDGE('',*,*,#6161,.T.);\r
--#6164=ORIENTED_EDGE('',*,*,#6163,.T.);\r
--#6166=ORIENTED_EDGE('',*,*,#6165,.T.);\r
--#6168=ORIENTED_EDGE('',*,*,#6167,.F.);\r
--#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));\r
--#6170=FACE_OUTER_BOUND('',#6169,.F.);\r
--#6171=ORIENTED_EDGE('',*,*,#6126,.F.);\r
--#6172=ORIENTED_EDGE('',*,*,#6140,.F.);\r
--#6173=EDGE_LOOP('',(#6171,#6172));\r
--#6174=FACE_BOUND('',#6173,.F.);\r
--#6176=ORIENTED_EDGE('',*,*,#6175,.F.);\r
--#6178=ORIENTED_EDGE('',*,*,#6177,.F.);\r
--#6180=ORIENTED_EDGE('',*,*,#6179,.F.);\r
--#6182=ORIENTED_EDGE('',*,*,#6181,.F.);\r
--#6184=ORIENTED_EDGE('',*,*,#6183,.F.);\r
--#6186=ORIENTED_EDGE('',*,*,#6185,.F.);\r
--#6188=ORIENTED_EDGE('',*,*,#6187,.F.);\r
--#6190=ORIENTED_EDGE('',*,*,#6189,.F.);\r
--#6192=ORIENTED_EDGE('',*,*,#6191,.F.);\r
--#6194=ORIENTED_EDGE('',*,*,#6193,.F.);\r
--#6196=ORIENTED_EDGE('',*,*,#6195,.F.);\r
--#6198=ORIENTED_EDGE('',*,*,#6197,.F.);\r
--#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,\r
--#6196,#6198));\r
--#6200=FACE_BOUND('',#6199,.F.);\r
--#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);\r
--#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));\r
--#6203=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6204=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);\r
--#6206=PLANE('',#6205);\r
--#6208=ORIENTED_EDGE('',*,*,#6207,.F.);\r
--#6210=ORIENTED_EDGE('',*,*,#6209,.F.);\r
--#6211=ORIENTED_EDGE('',*,*,#6151,.F.);\r
--#6212=EDGE_LOOP('',(#6208,#6210,#6211));\r
--#6213=FACE_OUTER_BOUND('',#6212,.F.);\r
--#6214=ADVANCED_FACE('',(#6213),#6206,.T.);\r
--#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));\r
--#6216=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6217=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);\r
--#6219=PLANE('',#6218);\r
--#6220=ORIENTED_EDGE('',*,*,#5963,.T.);\r
--#6222=ORIENTED_EDGE('',*,*,#6221,.F.);\r
--#6224=ORIENTED_EDGE('',*,*,#6223,.F.);\r
--#6226=ORIENTED_EDGE('',*,*,#6225,.T.);\r
--#6228=ORIENTED_EDGE('',*,*,#6227,.F.);\r
--#6230=ORIENTED_EDGE('',*,*,#6229,.F.);\r
--#6231=ORIENTED_EDGE('',*,*,#5989,.T.);\r
--#6233=ORIENTED_EDGE('',*,*,#6232,.F.);\r
--#6235=ORIENTED_EDGE('',*,*,#6234,.F.);\r
--#6237=ORIENTED_EDGE('',*,*,#6236,.T.);\r
--#6239=ORIENTED_EDGE('',*,*,#6238,.F.);\r
--#6241=ORIENTED_EDGE('',*,*,#6240,.T.);\r
--#6243=ORIENTED_EDGE('',*,*,#6242,.F.);\r
--#6245=ORIENTED_EDGE('',*,*,#6244,.F.);\r
--#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,\r
--#6239,#6241,#6243,#6245));\r
--#6247=FACE_OUTER_BOUND('',#6246,.F.);\r
--#6249=ORIENTED_EDGE('',*,*,#6248,.F.);\r
--#6251=ORIENTED_EDGE('',*,*,#6250,.F.);\r
--#6252=EDGE_LOOP('',(#6249,#6251));\r
--#6253=FACE_BOUND('',#6252,.F.);\r
--#6255=ORIENTED_EDGE('',*,*,#6254,.F.);\r
--#6257=ORIENTED_EDGE('',*,*,#6256,.F.);\r
--#6258=EDGE_LOOP('',(#6255,#6257));\r
--#6259=FACE_BOUND('',#6258,.F.);\r
--#6261=ORIENTED_EDGE('',*,*,#6260,.F.);\r
--#6263=ORIENTED_EDGE('',*,*,#6262,.F.);\r
--#6264=EDGE_LOOP('',(#6261,#6263));\r
--#6265=FACE_BOUND('',#6264,.F.);\r
--#6267=ORIENTED_EDGE('',*,*,#6266,.F.);\r
--#6269=ORIENTED_EDGE('',*,*,#6268,.F.);\r
--#6270=EDGE_LOOP('',(#6267,#6269));\r
--#6271=FACE_BOUND('',#6270,.F.);\r
--#6273=ORIENTED_EDGE('',*,*,#6272,.F.);\r
--#6275=ORIENTED_EDGE('',*,*,#6274,.F.);\r
--#6276=EDGE_LOOP('',(#6273,#6275));\r
--#6277=FACE_BOUND('',#6276,.F.);\r
--#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);\r
--#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));\r
--#6280=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6281=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);\r
--#6283=PLANE('',#6282);\r
--#6284=ORIENTED_EDGE('',*,*,#6207,.T.);\r
--#6285=ORIENTED_EDGE('',*,*,#6167,.T.);\r
--#6287=ORIENTED_EDGE('',*,*,#6286,.T.);\r
--#6289=ORIENTED_EDGE('',*,*,#6288,.F.);\r
--#6291=ORIENTED_EDGE('',*,*,#6290,.T.);\r
--#6293=ORIENTED_EDGE('',*,*,#6292,.F.);\r
--#6295=ORIENTED_EDGE('',*,*,#6294,.F.);\r
--#6297=ORIENTED_EDGE('',*,*,#6296,.T.);\r
--#6299=ORIENTED_EDGE('',*,*,#6298,.F.);\r
--#6301=ORIENTED_EDGE('',*,*,#6300,.T.);\r
--#6303=ORIENTED_EDGE('',*,*,#6302,.F.);\r
--#6305=ORIENTED_EDGE('',*,*,#6304,.F.);\r
--#6307=ORIENTED_EDGE('',*,*,#6306,.F.);\r
--#6309=ORIENTED_EDGE('',*,*,#6308,.T.);\r
--#6311=ORIENTED_EDGE('',*,*,#6310,.F.);\r
--#6313=ORIENTED_EDGE('',*,*,#6312,.T.);\r
--#6315=ORIENTED_EDGE('',*,*,#6314,.F.);\r
--#6317=ORIENTED_EDGE('',*,*,#6316,.T.);\r
--#6319=ORIENTED_EDGE('',*,*,#6318,.T.);\r
--#6321=ORIENTED_EDGE('',*,*,#6320,.T.);\r
--#6323=ORIENTED_EDGE('',*,*,#6322,.F.);\r
--#6324=ORIENTED_EDGE('',*,*,#5976,.T.);\r
--#6326=ORIENTED_EDGE('',*,*,#6325,.T.);\r
--#6327=ORIENTED_EDGE('',*,*,#6157,.T.);\r
--#6329=ORIENTED_EDGE('',*,*,#6328,.F.);\r
--#6331=ORIENTED_EDGE('',*,*,#6330,.F.);\r
--#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,\r
--#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,\r
--#6327,#6329,#6331));\r
--#6333=FACE_OUTER_BOUND('',#6332,.F.);\r
--#6335=ORIENTED_EDGE('',*,*,#6334,.F.);\r
--#6337=ORIENTED_EDGE('',*,*,#6336,.F.);\r
--#6338=EDGE_LOOP('',(#6335,#6337));\r
--#6339=FACE_BOUND('',#6338,.F.);\r
--#6341=ORIENTED_EDGE('',*,*,#6340,.F.);\r
--#6343=ORIENTED_EDGE('',*,*,#6342,.F.);\r
--#6344=EDGE_LOOP('',(#6341,#6343));\r
--#6345=FACE_BOUND('',#6344,.F.);\r
--#6347=ORIENTED_EDGE('',*,*,#6346,.T.);\r
--#6349=ORIENTED_EDGE('',*,*,#6348,.T.);\r
--#6350=EDGE_LOOP('',(#6347,#6349));\r
--#6351=FACE_BOUND('',#6350,.F.);\r
--#6353=ORIENTED_EDGE('',*,*,#6352,.T.);\r
--#6355=ORIENTED_EDGE('',*,*,#6354,.T.);\r
--#6356=EDGE_LOOP('',(#6353,#6355));\r
--#6357=FACE_BOUND('',#6356,.F.);\r
--#6359=ORIENTED_EDGE('',*,*,#6358,.F.);\r
--#6361=ORIENTED_EDGE('',*,*,#6360,.F.);\r
--#6362=EDGE_LOOP('',(#6359,#6361));\r
--#6363=FACE_BOUND('',#6362,.F.);\r
--#6365=ORIENTED_EDGE('',*,*,#6364,.F.);\r
--#6367=ORIENTED_EDGE('',*,*,#6366,.F.);\r
--#6368=EDGE_LOOP('',(#6365,#6367));\r
--#6369=FACE_BOUND('',#6368,.F.);\r
--#6371=ORIENTED_EDGE('',*,*,#6370,.F.);\r
--#6373=ORIENTED_EDGE('',*,*,#6372,.F.);\r
--#6374=EDGE_LOOP('',(#6371,#6373));\r
--#6375=FACE_BOUND('',#6374,.F.);\r
--#6377=ORIENTED_EDGE('',*,*,#6376,.F.);\r
--#6379=ORIENTED_EDGE('',*,*,#6378,.F.);\r
--#6380=EDGE_LOOP('',(#6377,#6379));\r
--#6381=FACE_BOUND('',#6380,.F.);\r
--#6383=ORIENTED_EDGE('',*,*,#6382,.F.);\r
--#6385=ORIENTED_EDGE('',*,*,#6384,.F.);\r
--#6386=EDGE_LOOP('',(#6383,#6385));\r
--#6387=FACE_BOUND('',#6386,.F.);\r
--#6389=ORIENTED_EDGE('',*,*,#6388,.F.);\r
--#6391=ORIENTED_EDGE('',*,*,#6390,.F.);\r
--#6392=EDGE_LOOP('',(#6389,#6391));\r
--#6393=FACE_BOUND('',#6392,.F.);\r
--#6395=ORIENTED_EDGE('',*,*,#6394,.F.);\r
--#6397=ORIENTED_EDGE('',*,*,#6396,.F.);\r
--#6398=EDGE_LOOP('',(#6395,#6397));\r
--#6399=FACE_BOUND('',#6398,.F.);\r
--#6401=ORIENTED_EDGE('',*,*,#6400,.T.);\r
--#6403=ORIENTED_EDGE('',*,*,#6402,.F.);\r
--#6405=ORIENTED_EDGE('',*,*,#6404,.F.);\r
--#6407=ORIENTED_EDGE('',*,*,#6406,.F.);\r
--#6409=ORIENTED_EDGE('',*,*,#6408,.T.);\r
--#6411=ORIENTED_EDGE('',*,*,#6410,.F.);\r
--#6413=ORIENTED_EDGE('',*,*,#6412,.T.);\r
--#6415=ORIENTED_EDGE('',*,*,#6414,.F.);\r
--#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));\r
--#6417=FACE_BOUND('',#6416,.F.);\r
--#6419=ORIENTED_EDGE('',*,*,#6418,.F.);\r
--#6421=ORIENTED_EDGE('',*,*,#6420,.F.);\r
--#6423=ORIENTED_EDGE('',*,*,#6422,.T.);\r
--#6425=ORIENTED_EDGE('',*,*,#6424,.F.);\r
--#6427=ORIENTED_EDGE('',*,*,#6426,.T.);\r
--#6429=ORIENTED_EDGE('',*,*,#6428,.F.);\r
--#6431=ORIENTED_EDGE('',*,*,#6430,.T.);\r
--#6433=ORIENTED_EDGE('',*,*,#6432,.F.);\r
--#6435=ORIENTED_EDGE('',*,*,#6434,.F.);\r
--#6437=ORIENTED_EDGE('',*,*,#6436,.F.);\r
--#6439=ORIENTED_EDGE('',*,*,#6438,.F.);\r
--#6441=ORIENTED_EDGE('',*,*,#6440,.T.);\r
--#6443=ORIENTED_EDGE('',*,*,#6442,.F.);\r
--#6445=ORIENTED_EDGE('',*,*,#6444,.F.);\r
--#6447=ORIENTED_EDGE('',*,*,#6446,.T.);\r
--#6449=ORIENTED_EDGE('',*,*,#6448,.F.);\r
--#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,\r
--#6439,#6441,#6443,#6445,#6447,#6449));\r
--#6451=FACE_BOUND('',#6450,.F.);\r
--#6453=ORIENTED_EDGE('',*,*,#6452,.F.);\r
--#6455=ORIENTED_EDGE('',*,*,#6454,.F.);\r
--#6456=EDGE_LOOP('',(#6453,#6455));\r
--#6457=FACE_BOUND('',#6456,.F.);\r
--#6459=ORIENTED_EDGE('',*,*,#6458,.F.);\r
--#6461=ORIENTED_EDGE('',*,*,#6460,.F.);\r
--#6462=EDGE_LOOP('',(#6459,#6461));\r
--#6463=FACE_BOUND('',#6462,.F.);\r
--#6465=ORIENTED_EDGE('',*,*,#6464,.F.);\r
--#6467=ORIENTED_EDGE('',*,*,#6466,.F.);\r
--#6468=EDGE_LOOP('',(#6465,#6467));\r
--#6469=FACE_BOUND('',#6468,.F.);\r
--#6471=ORIENTED_EDGE('',*,*,#6470,.F.);\r
--#6473=ORIENTED_EDGE('',*,*,#6472,.F.);\r
--#6474=EDGE_LOOP('',(#6471,#6473));\r
--#6475=FACE_BOUND('',#6474,.F.);\r
--#6477=ORIENTED_EDGE('',*,*,#6476,.F.);\r
--#6479=ORIENTED_EDGE('',*,*,#6478,.F.);\r
--#6480=EDGE_LOOP('',(#6477,#6479));\r
--#6481=FACE_BOUND('',#6480,.F.);\r
--#6483=ORIENTED_EDGE('',*,*,#6482,.F.);\r
--#6485=ORIENTED_EDGE('',*,*,#6484,.F.);\r
--#6486=EDGE_LOOP('',(#6483,#6485));\r
--#6487=FACE_BOUND('',#6486,.F.);\r
--#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,\r
--#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);\r
--#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));\r
--#6490=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6491=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);\r
--#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);\r
--#6494=ORIENTED_EDGE('',*,*,#6334,.T.);\r
--#6496=ORIENTED_EDGE('',*,*,#6495,.F.);\r
--#6498=ORIENTED_EDGE('',*,*,#6497,.F.);\r
--#6500=ORIENTED_EDGE('',*,*,#6499,.T.);\r
--#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));\r
--#6502=FACE_OUTER_BOUND('',#6501,.F.);\r
--#6503=ADVANCED_FACE('',(#6502),#6493,.F.);\r
--#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));\r
--#6505=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6506=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);\r
--#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);\r
--#6509=ORIENTED_EDGE('',*,*,#6336,.T.);\r
--#6510=ORIENTED_EDGE('',*,*,#6499,.F.);\r
--#6512=ORIENTED_EDGE('',*,*,#6511,.T.);\r
--#6513=ORIENTED_EDGE('',*,*,#6495,.T.);\r
--#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));\r
--#6515=FACE_OUTER_BOUND('',#6514,.F.);\r
--#6516=ADVANCED_FACE('',(#6515),#6508,.F.);\r
--#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));\r
--#6518=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6519=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);\r
--#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);\r
--#6523=ORIENTED_EDGE('',*,*,#6522,.T.);\r
--#6524=ORIENTED_EDGE('',*,*,#6511,.F.);\r
--#6526=ORIENTED_EDGE('',*,*,#6525,.F.);\r
--#6527=EDGE_LOOP('',(#6523,#6524,#6526));\r
--#6528=FACE_OUTER_BOUND('',#6527,.F.);\r
--#6529=ADVANCED_FACE('',(#6528),#6521,.F.);\r
--#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));\r
--#6531=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6532=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);\r
--#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);\r
--#6535=ORIENTED_EDGE('',*,*,#6522,.F.);\r
--#6536=ORIENTED_EDGE('',*,*,#6525,.T.);\r
--#6537=ORIENTED_EDGE('',*,*,#6497,.T.);\r
--#6538=EDGE_LOOP('',(#6535,#6536,#6537));\r
--#6539=FACE_OUTER_BOUND('',#6538,.F.);\r
--#6540=ADVANCED_FACE('',(#6539),#6534,.F.);\r
--#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));\r
--#6542=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6543=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);\r
--#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);\r
--#6546=ORIENTED_EDGE('',*,*,#6340,.T.);\r
--#6548=ORIENTED_EDGE('',*,*,#6547,.F.);\r
--#6550=ORIENTED_EDGE('',*,*,#6549,.F.);\r
--#6552=ORIENTED_EDGE('',*,*,#6551,.T.);\r
--#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));\r
--#6554=FACE_OUTER_BOUND('',#6553,.F.);\r
--#6555=ADVANCED_FACE('',(#6554),#6545,.F.);\r
--#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));\r
--#6557=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6558=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);\r
--#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);\r
--#6561=ORIENTED_EDGE('',*,*,#6342,.T.);\r
--#6562=ORIENTED_EDGE('',*,*,#6551,.F.);\r
--#6564=ORIENTED_EDGE('',*,*,#6563,.T.);\r
--#6565=ORIENTED_EDGE('',*,*,#6547,.T.);\r
--#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));\r
--#6567=FACE_OUTER_BOUND('',#6566,.F.);\r
--#6568=ADVANCED_FACE('',(#6567),#6560,.F.);\r
--#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));\r
--#6570=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6571=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);\r
--#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);\r
--#6575=ORIENTED_EDGE('',*,*,#6574,.T.);\r
--#6576=ORIENTED_EDGE('',*,*,#6563,.F.);\r
--#6578=ORIENTED_EDGE('',*,*,#6577,.F.);\r
--#6579=EDGE_LOOP('',(#6575,#6576,#6578));\r
--#6580=FACE_OUTER_BOUND('',#6579,.F.);\r
--#6581=ADVANCED_FACE('',(#6580),#6573,.F.);\r
--#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));\r
--#6583=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6584=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);\r
--#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);\r
--#6587=ORIENTED_EDGE('',*,*,#6574,.F.);\r
--#6588=ORIENTED_EDGE('',*,*,#6577,.T.);\r
--#6589=ORIENTED_EDGE('',*,*,#6549,.T.);\r
--#6590=EDGE_LOOP('',(#6587,#6588,#6589));\r
--#6591=FACE_OUTER_BOUND('',#6590,.F.);\r
--#6592=ADVANCED_FACE('',(#6591),#6586,.F.);\r
--#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));\r
--#6594=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6595=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);\r
--#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);\r
--#6598=ORIENTED_EDGE('',*,*,#5961,.F.);\r
--#6599=ORIENTED_EDGE('',*,*,#5550,.T.);\r
--#6601=ORIENTED_EDGE('',*,*,#6600,.T.);\r
--#6602=ORIENTED_EDGE('',*,*,#6221,.T.);\r
--#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));\r
--#6604=FACE_OUTER_BOUND('',#6603,.F.);\r
--#6605=ADVANCED_FACE('',(#6604),#6597,.F.);\r
--#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));\r
--#6607=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6608=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);\r
--#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);\r
--#6611=ORIENTED_EDGE('',*,*,#6600,.F.);\r
--#6612=ORIENTED_EDGE('',*,*,#5548,.T.);\r
--#6614=ORIENTED_EDGE('',*,*,#6613,.F.);\r
--#6615=ORIENTED_EDGE('',*,*,#6223,.T.);\r
--#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));\r
--#6617=FACE_OUTER_BOUND('',#6616,.F.);\r
--#6618=ADVANCED_FACE('',(#6617),#6610,.F.);\r
--#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));\r
--#6620=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6621=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);\r
--#6623=PLANE('',#6622);\r
--#6625=ORIENTED_EDGE('',*,*,#6624,.F.);\r
--#6626=ORIENTED_EDGE('',*,*,#6225,.F.);\r
--#6627=ORIENTED_EDGE('',*,*,#6613,.T.);\r
--#6628=ORIENTED_EDGE('',*,*,#5546,.T.);\r
--#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));\r
--#6630=FACE_OUTER_BOUND('',#6629,.F.);\r
--#6631=ADVANCED_FACE('',(#6630),#6623,.F.);\r
--#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));\r
--#6633=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6634=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);\r
--#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);\r
--#6638=ORIENTED_EDGE('',*,*,#6637,.F.);\r
--#6639=ORIENTED_EDGE('',*,*,#6227,.T.);\r
--#6640=ORIENTED_EDGE('',*,*,#6624,.T.);\r
--#6641=ORIENTED_EDGE('',*,*,#5544,.T.);\r
--#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));\r
--#6643=FACE_OUTER_BOUND('',#6642,.F.);\r
--#6644=ADVANCED_FACE('',(#6643),#6636,.F.);\r
--#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));\r
--#6646=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6647=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);\r
--#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);\r
--#6650=ORIENTED_EDGE('',*,*,#5991,.F.);\r
--#6651=ORIENTED_EDGE('',*,*,#6229,.T.);\r
--#6652=ORIENTED_EDGE('',*,*,#6637,.T.);\r
--#6653=ORIENTED_EDGE('',*,*,#5542,.T.);\r
--#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));\r
--#6655=FACE_OUTER_BOUND('',#6654,.F.);\r
--#6656=ADVANCED_FACE('',(#6655),#6649,.F.);\r
--#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));\r
--#6658=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6659=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);\r
--#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);\r
--#6663=ORIENTED_EDGE('',*,*,#6662,.F.);\r
--#6664=ORIENTED_EDGE('',*,*,#6232,.T.);\r
--#6665=ORIENTED_EDGE('',*,*,#5987,.T.);\r
--#6666=ORIENTED_EDGE('',*,*,#5508,.T.);\r
--#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));\r
--#6668=FACE_OUTER_BOUND('',#6667,.F.);\r
--#6669=ADVANCED_FACE('',(#6668),#6661,.F.);\r
--#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
--#6671=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6672=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);\r
--#6674=PLANE('',#6673);\r
--#6676=ORIENTED_EDGE('',*,*,#6675,.T.);\r
--#6677=ORIENTED_EDGE('',*,*,#6302,.T.);\r
--#6679=ORIENTED_EDGE('',*,*,#6678,.F.);\r
--#6680=ORIENTED_EDGE('',*,*,#5520,.F.);\r
--#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));\r
--#6682=FACE_OUTER_BOUND('',#6681,.F.);\r
--#6683=ADVANCED_FACE('',(#6682),#6674,.T.);\r
--#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));\r
--#6685=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6686=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);\r
--#6688=PLANE('',#6687);\r
--#6689=ORIENTED_EDGE('',*,*,#6662,.T.);\r
--#6690=ORIENTED_EDGE('',*,*,#5506,.F.);\r
--#6692=ORIENTED_EDGE('',*,*,#6691,.T.);\r
--#6693=ORIENTED_EDGE('',*,*,#6234,.T.);\r
--#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));\r
--#6695=FACE_OUTER_BOUND('',#6694,.F.);\r
--#6696=ADVANCED_FACE('',(#6695),#6688,.T.);\r
--#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));\r
--#6698=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6699=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);\r
--#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);\r
--#6702=ORIENTED_EDGE('',*,*,#6675,.F.);\r
--#6703=ORIENTED_EDGE('',*,*,#5518,.T.);\r
--#6705=ORIENTED_EDGE('',*,*,#6704,.T.);\r
--#6706=ORIENTED_EDGE('',*,*,#6304,.T.);\r
--#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));\r
--#6708=FACE_OUTER_BOUND('',#6707,.F.);\r
--#6709=ADVANCED_FACE('',(#6708),#6701,.F.);\r
--#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));\r
--#6711=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6712=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);\r
--#6714=PLANE('',#6713);\r
--#6716=ORIENTED_EDGE('',*,*,#6715,.F.);\r
--#6717=ORIENTED_EDGE('',*,*,#6442,.T.);\r
--#6719=ORIENTED_EDGE('',*,*,#6718,.F.);\r
--#6720=ORIENTED_EDGE('',*,*,#5668,.F.);\r
--#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));\r
--#6722=FACE_OUTER_BOUND('',#6721,.F.);\r
--#6723=ADVANCED_FACE('',(#6722),#6714,.T.);\r
--#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));\r
--#6725=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6726=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);\r
--#6728=PLANE('',#6727);\r
--#6729=ORIENTED_EDGE('',*,*,#6704,.F.);\r
--#6730=ORIENTED_EDGE('',*,*,#5516,.F.);\r
--#6732=ORIENTED_EDGE('',*,*,#6731,.T.);\r
--#6733=ORIENTED_EDGE('',*,*,#6306,.T.);\r
--#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));\r
--#6735=FACE_OUTER_BOUND('',#6734,.F.);\r
--#6736=ADVANCED_FACE('',(#6735),#6728,.T.);\r
--#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));\r
--#6738=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6739=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);\r
--#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);\r
--#6743=ORIENTED_EDGE('',*,*,#6742,.F.);\r
--#6744=ORIENTED_EDGE('',*,*,#6444,.T.);\r
--#6745=ORIENTED_EDGE('',*,*,#6715,.T.);\r
--#6746=ORIENTED_EDGE('',*,*,#5666,.T.);\r
--#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));\r
--#6748=FACE_OUTER_BOUND('',#6747,.F.);\r
--#6749=ADVANCED_FACE('',(#6748),#6741,.F.);\r
--#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));\r
--#6751=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6752=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);\r
--#6754=PLANE('',#6753);\r
--#6756=ORIENTED_EDGE('',*,*,#6755,.T.);\r
--#6757=ORIENTED_EDGE('',*,*,#5650,.T.);\r
--#6759=ORIENTED_EDGE('',*,*,#6758,.F.);\r
--#6760=ORIENTED_EDGE('',*,*,#6408,.F.);\r
--#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));\r
--#6762=FACE_OUTER_BOUND('',#6761,.F.);\r
--#6763=ADVANCED_FACE('',(#6762),#6754,.F.);\r
--#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));\r
--#6765=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6766=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);\r
--#6768=PLANE('',#6767);\r
--#6770=ORIENTED_EDGE('',*,*,#6769,.T.);\r
--#6771=ORIENTED_EDGE('',*,*,#6446,.F.);\r
--#6772=ORIENTED_EDGE('',*,*,#6742,.T.);\r
--#6773=ORIENTED_EDGE('',*,*,#5664,.T.);\r
--#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));\r
--#6775=FACE_OUTER_BOUND('',#6774,.F.);\r
--#6776=ADVANCED_FACE('',(#6775),#6768,.F.);\r
--#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));\r
--#6778=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6779=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);\r
--#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);\r
--#6782=ORIENTED_EDGE('',*,*,#6755,.F.);\r
--#6783=ORIENTED_EDGE('',*,*,#6406,.T.);\r
--#6785=ORIENTED_EDGE('',*,*,#6784,.T.);\r
--#6786=ORIENTED_EDGE('',*,*,#5652,.T.);\r
--#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));\r
--#6788=FACE_OUTER_BOUND('',#6787,.F.);\r
--#6789=ADVANCED_FACE('',(#6788),#6781,.F.);\r
--#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));\r
--#6791=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6792=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);\r
--#6794=PLANE('',#6793);\r
--#6795=ORIENTED_EDGE('',*,*,#6784,.F.);\r
--#6796=ORIENTED_EDGE('',*,*,#6404,.T.);\r
--#6798=ORIENTED_EDGE('',*,*,#6797,.F.);\r
--#6799=ORIENTED_EDGE('',*,*,#5638,.F.);\r
--#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));\r
--#6801=FACE_OUTER_BOUND('',#6800,.F.);\r
--#6802=ADVANCED_FACE('',(#6801),#6794,.T.);\r
--#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));\r
--#6804=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6805=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);\r
--#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);\r
--#6809=ORIENTED_EDGE('',*,*,#6808,.F.);\r
--#6810=ORIENTED_EDGE('',*,*,#5640,.T.);\r
--#6811=ORIENTED_EDGE('',*,*,#6797,.T.);\r
--#6812=ORIENTED_EDGE('',*,*,#6402,.T.);\r
--#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));\r
--#6814=FACE_OUTER_BOUND('',#6813,.F.);\r
--#6815=ADVANCED_FACE('',(#6814),#6807,.F.);\r
--#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));\r
--#6817=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6818=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);\r
--#6820=PLANE('',#6819);\r
--#6821=ORIENTED_EDGE('',*,*,#6808,.T.);\r
--#6822=ORIENTED_EDGE('',*,*,#6400,.F.);\r
--#6824=ORIENTED_EDGE('',*,*,#6823,.T.);\r
--#6825=ORIENTED_EDGE('',*,*,#5642,.T.);\r
--#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));\r
--#6827=FACE_OUTER_BOUND('',#6826,.F.);\r
--#6828=ADVANCED_FACE('',(#6827),#6820,.F.);\r
--#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));\r
--#6830=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6831=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);\r
--#6833=PLANE('',#6832);\r
--#6835=ORIENTED_EDGE('',*,*,#6834,.T.);\r
--#6836=ORIENTED_EDGE('',*,*,#5656,.T.);\r
--#6838=ORIENTED_EDGE('',*,*,#6837,.T.);\r
--#6839=ORIENTED_EDGE('',*,*,#6422,.F.);\r
--#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));\r
--#6841=FACE_OUTER_BOUND('',#6840,.F.);\r
--#6842=ADVANCED_FACE('',(#6841),#6833,.F.);\r
--#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));\r
--#6844=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6845=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);\r
--#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);\r
--#6848=ORIENTED_EDGE('',*,*,#6823,.F.);\r
--#6849=ORIENTED_EDGE('',*,*,#6414,.T.);\r
--#6851=ORIENTED_EDGE('',*,*,#6850,.T.);\r
--#6852=ORIENTED_EDGE('',*,*,#5644,.T.);\r
--#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));\r
--#6854=FACE_OUTER_BOUND('',#6853,.F.);\r
--#6855=ADVANCED_FACE('',(#6854),#6847,.F.);\r
--#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));\r
--#6857=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6858=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);\r
--#6860=PLANE('',#6859);\r
--#6862=ORIENTED_EDGE('',*,*,#6861,.T.);\r
--#6863=ORIENTED_EDGE('',*,*,#5646,.T.);\r
--#6864=ORIENTED_EDGE('',*,*,#6850,.F.);\r
--#6865=ORIENTED_EDGE('',*,*,#6412,.F.);\r
--#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));\r
--#6867=FACE_OUTER_BOUND('',#6866,.F.);\r
--#6868=ADVANCED_FACE('',(#6867),#6860,.F.);\r
--#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));\r
--#6870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6871=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);\r
--#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);\r
--#6874=ORIENTED_EDGE('',*,*,#6861,.F.);\r
--#6875=ORIENTED_EDGE('',*,*,#6410,.T.);\r
--#6876=ORIENTED_EDGE('',*,*,#6758,.T.);\r
--#6877=ORIENTED_EDGE('',*,*,#5648,.T.);\r
--#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));\r
--#6879=FACE_OUTER_BOUND('',#6878,.F.);\r
--#6880=ADVANCED_FACE('',(#6879),#6873,.F.);\r
--#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));\r
--#6882=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6883=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);\r
--#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);\r
--#6886=ORIENTED_EDGE('',*,*,#6834,.F.);\r
--#6887=ORIENTED_EDGE('',*,*,#6420,.T.);\r
--#6889=ORIENTED_EDGE('',*,*,#6888,.T.);\r
--#6890=ORIENTED_EDGE('',*,*,#5658,.T.);\r
--#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));\r
--#6892=FACE_OUTER_BOUND('',#6891,.F.);\r
--#6893=ADVANCED_FACE('',(#6892),#6885,.F.);\r
--#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));\r
--#6895=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6896=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);\r
--#6898=PLANE('',#6897);\r
--#6899=ORIENTED_EDGE('',*,*,#6888,.F.);\r
--#6900=ORIENTED_EDGE('',*,*,#6418,.T.);\r
--#6902=ORIENTED_EDGE('',*,*,#6901,.F.);\r
--#6903=ORIENTED_EDGE('',*,*,#5660,.F.);\r
--#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));\r
--#6905=FACE_OUTER_BOUND('',#6904,.F.);\r
--#6906=ADVANCED_FACE('',(#6905),#6898,.T.);\r
--#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));\r
--#6908=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6909=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);\r
--#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);\r
--#6912=ORIENTED_EDGE('',*,*,#6769,.F.);\r
--#6913=ORIENTED_EDGE('',*,*,#5662,.T.);\r
--#6914=ORIENTED_EDGE('',*,*,#6901,.T.);\r
--#6915=ORIENTED_EDGE('',*,*,#6448,.T.);\r
--#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));\r
--#6917=FACE_OUTER_BOUND('',#6916,.F.);\r
--#6918=ADVANCED_FACE('',(#6917),#6911,.F.);\r
--#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));\r
--#6920=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#6921=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);\r
--#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);\r
--#6924=ORIENTED_EDGE('',*,*,#6837,.F.);\r
--#6925=ORIENTED_EDGE('',*,*,#5686,.T.);\r
--#6927=ORIENTED_EDGE('',*,*,#6926,.T.);\r
--#6928=ORIENTED_EDGE('',*,*,#6424,.T.);\r
--#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));\r
--#6930=FACE_OUTER_BOUND('',#6929,.F.);\r
--#6931=ADVANCED_FACE('',(#6930),#6923,.F.);\r
--#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));\r
--#6933=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6934=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);\r
--#6936=PLANE('',#6935);\r
--#6938=ORIENTED_EDGE('',*,*,#6937,.F.);\r
--#6939=ORIENTED_EDGE('',*,*,#6290,.F.);\r
--#6941=ORIENTED_EDGE('',*,*,#6940,.T.);\r
--#6942=ORIENTED_EDGE('',*,*,#5532,.T.);\r
--#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));\r
--#6944=FACE_OUTER_BOUND('',#6943,.F.);\r
--#6945=ADVANCED_FACE('',(#6944),#6936,.F.);\r
--#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));\r
--#6947=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6948=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);\r
--#6950=PLANE('',#6949);\r
--#6951=ORIENTED_EDGE('',*,*,#6926,.F.);\r
--#6952=ORIENTED_EDGE('',*,*,#5684,.T.);\r
--#6954=ORIENTED_EDGE('',*,*,#6953,.F.);\r
--#6955=ORIENTED_EDGE('',*,*,#6426,.F.);\r
--#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));\r
--#6957=FACE_OUTER_BOUND('',#6956,.F.);\r
--#6958=ADVANCED_FACE('',(#6957),#6950,.F.);\r
--#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));\r
--#6960=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#6961=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);\r
--#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);\r
--#6965=ORIENTED_EDGE('',*,*,#6964,.F.);\r
--#6966=ORIENTED_EDGE('',*,*,#6292,.T.);\r
--#6967=ORIENTED_EDGE('',*,*,#6937,.T.);\r
--#6968=ORIENTED_EDGE('',*,*,#5530,.T.);\r
--#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));\r
--#6970=FACE_OUTER_BOUND('',#6969,.F.);\r
--#6971=ADVANCED_FACE('',(#6970),#6963,.F.);\r
--#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));\r
--#6973=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6974=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);\r
--#6976=PLANE('',#6975);\r
--#6977=ORIENTED_EDGE('',*,*,#6964,.T.);\r
--#6978=ORIENTED_EDGE('',*,*,#5528,.F.);\r
--#6980=ORIENTED_EDGE('',*,*,#6979,.T.);\r
--#6981=ORIENTED_EDGE('',*,*,#6294,.T.);\r
--#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));\r
--#6983=FACE_OUTER_BOUND('',#6982,.F.);\r
--#6984=ADVANCED_FACE('',(#6983),#6976,.T.);\r
--#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));\r
--#6986=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#6987=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);\r
--#6989=PLANE('',#6988);\r
--#6991=ORIENTED_EDGE('',*,*,#6990,.T.);\r
--#6992=ORIENTED_EDGE('',*,*,#6242,.T.);\r
--#6994=ORIENTED_EDGE('',*,*,#6993,.F.);\r
--#6995=ORIENTED_EDGE('',*,*,#5498,.F.);\r
--#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));\r
--#6997=FACE_OUTER_BOUND('',#6996,.F.);\r
--#6998=ADVANCED_FACE('',(#6997),#6989,.T.);\r
--#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));\r
--#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7001=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);\r
--#7003=PLANE('',#7002);\r
--#7004=ORIENTED_EDGE('',*,*,#6979,.F.);\r
--#7005=ORIENTED_EDGE('',*,*,#5526,.T.);\r
--#7007=ORIENTED_EDGE('',*,*,#7006,.T.);\r
--#7008=ORIENTED_EDGE('',*,*,#6296,.F.);\r
--#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));\r
--#7010=FACE_OUTER_BOUND('',#7009,.F.);\r
--#7011=ADVANCED_FACE('',(#7010),#7003,.T.);\r
--#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));\r
--#7013=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7014=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);\r
--#7016=PLANE('',#7015);\r
--#7017=ORIENTED_EDGE('',*,*,#5524,.F.);\r
--#7019=ORIENTED_EDGE('',*,*,#7018,.T.);\r
--#7020=ORIENTED_EDGE('',*,*,#6298,.T.);\r
--#7021=ORIENTED_EDGE('',*,*,#7006,.F.);\r
--#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));\r
--#7023=FACE_OUTER_BOUND('',#7022,.F.);\r
--#7024=ADVANCED_FACE('',(#7023),#7016,.T.);\r
--#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));\r
--#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7027=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);\r
--#7029=PLANE('',#7028);\r
--#7030=ORIENTED_EDGE('',*,*,#7018,.F.);\r
--#7031=ORIENTED_EDGE('',*,*,#5522,.T.);\r
--#7032=ORIENTED_EDGE('',*,*,#6678,.T.);\r
--#7033=ORIENTED_EDGE('',*,*,#6300,.F.);\r
--#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));\r
--#7035=FACE_OUTER_BOUND('',#7034,.F.);\r
--#7036=ADVANCED_FACE('',(#7035),#7029,.T.);\r
--#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));\r
--#7038=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7039=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);\r
--#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);\r
--#7042=ORIENTED_EDGE('',*,*,#6990,.F.);\r
--#7043=ORIENTED_EDGE('',*,*,#5496,.T.);\r
--#7044=ORIENTED_EDGE('',*,*,#5965,.T.);\r
--#7045=ORIENTED_EDGE('',*,*,#6244,.T.);\r
--#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));\r
--#7047=FACE_OUTER_BOUND('',#7046,.F.);\r
--#7048=ADVANCED_FACE('',(#7047),#7041,.F.);\r
--#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));\r
--#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#7051=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);\r
--#7053=PLANE('',#7052);\r
--#7055=ORIENTED_EDGE('',*,*,#7054,.F.);\r
--#7056=ORIENTED_EDGE('',*,*,#5500,.T.);\r
--#7057=ORIENTED_EDGE('',*,*,#6993,.T.);\r
--#7058=ORIENTED_EDGE('',*,*,#6240,.F.);\r
--#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));\r
--#7060=FACE_OUTER_BOUND('',#7059,.F.);\r
--#7061=ADVANCED_FACE('',(#7060),#7053,.T.);\r
--#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));\r
--#7063=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7064=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);\r
--#7066=PLANE('',#7065);\r
--#7067=ORIENTED_EDGE('',*,*,#5502,.F.);\r
--#7068=ORIENTED_EDGE('',*,*,#7054,.T.);\r
--#7069=ORIENTED_EDGE('',*,*,#6238,.T.);\r
--#7071=ORIENTED_EDGE('',*,*,#7070,.F.);\r
--#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));\r
--#7073=FACE_OUTER_BOUND('',#7072,.F.);\r
--#7074=ADVANCED_FACE('',(#7073),#7066,.T.);\r
--#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));\r
--#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#7077=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);\r
--#7079=PLANE('',#7078);\r
--#7080=ORIENTED_EDGE('',*,*,#6691,.F.);\r
--#7081=ORIENTED_EDGE('',*,*,#5504,.T.);\r
--#7082=ORIENTED_EDGE('',*,*,#7070,.T.);\r
--#7083=ORIENTED_EDGE('',*,*,#6236,.F.);\r
--#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));\r
--#7085=FACE_OUTER_BOUND('',#7084,.F.);\r
--#7086=ADVANCED_FACE('',(#7085),#7079,.T.);\r
--#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));\r
--#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7089=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);\r
--#7091=PLANE('',#7090);\r
--#7092=ORIENTED_EDGE('',*,*,#6940,.F.);\r
--#7093=ORIENTED_EDGE('',*,*,#6288,.T.);\r
--#7095=ORIENTED_EDGE('',*,*,#7094,.T.);\r
--#7096=ORIENTED_EDGE('',*,*,#5534,.F.);\r
--#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));\r
--#7098=FACE_OUTER_BOUND('',#7097,.F.);\r
--#7099=ADVANCED_FACE('',(#7098),#7091,.T.);\r
--#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));\r
--#7101=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7102=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);\r
--#7104=PLANE('',#7103);\r
--#7105=ORIENTED_EDGE('',*,*,#5968,.T.);\r
--#7106=ORIENTED_EDGE('',*,*,#5536,.T.);\r
--#7107=ORIENTED_EDGE('',*,*,#7094,.F.);\r
--#7108=ORIENTED_EDGE('',*,*,#6286,.F.);\r
--#7109=ORIENTED_EDGE('',*,*,#6165,.F.);\r
--#7111=ORIENTED_EDGE('',*,*,#7110,.F.);\r
--#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));\r
--#7113=FACE_OUTER_BOUND('',#7112,.F.);\r
--#7114=ADVANCED_FACE('',(#7113),#7104,.F.);\r
--#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));\r
--#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
--#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);\r
--#7119=PLANE('',#7118);\r
--#7120=ORIENTED_EDGE('',*,*,#5970,.T.);\r
--#7121=ORIENTED_EDGE('',*,*,#7110,.T.);\r
--#7122=ORIENTED_EDGE('',*,*,#6163,.F.);\r
--#7124=ORIENTED_EDGE('',*,*,#7123,.F.);\r
--#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));\r
--#7126=FACE_OUTER_BOUND('',#7125,.F.);\r
--#7127=ADVANCED_FACE('',(#7126),#7119,.F.);\r
--#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));\r
--#7129=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7130=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);\r
--#7132=PLANE('',#7131);\r
--#7133=ORIENTED_EDGE('',*,*,#5972,.F.);\r
--#7134=ORIENTED_EDGE('',*,*,#7123,.T.);\r
--#7135=ORIENTED_EDGE('',*,*,#6161,.F.);\r
--#7137=ORIENTED_EDGE('',*,*,#7136,.F.);\r
--#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));\r
--#7139=FACE_OUTER_BOUND('',#7138,.F.);\r
--#7141=ORIENTED_EDGE('',*,*,#7140,.T.);\r
--#7143=ORIENTED_EDGE('',*,*,#7142,.T.);\r
--#7144=EDGE_LOOP('',(#7141,#7143));\r
--#7145=FACE_BOUND('',#7144,.F.);\r
--#7147=ORIENTED_EDGE('',*,*,#7146,.T.);\r
--#7149=ORIENTED_EDGE('',*,*,#7148,.T.);\r
--#7150=EDGE_LOOP('',(#7147,#7149));\r
--#7151=FACE_BOUND('',#7150,.F.);\r
--#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);\r
--#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
--#7154=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7155=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);\r
--#7157=PLANE('',#7156);\r
--#7159=ORIENTED_EDGE('',*,*,#7158,.T.);\r
--#7160=ORIENTED_EDGE('',*,*,#6430,.F.);\r
--#7162=ORIENTED_EDGE('',*,*,#7161,.T.);\r
--#7163=ORIENTED_EDGE('',*,*,#5680,.T.);\r
--#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));\r
--#7165=FACE_OUTER_BOUND('',#7164,.F.);\r
--#7166=ADVANCED_FACE('',(#7165),#7157,.F.);\r
--#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));\r
--#7168=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7169=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);\r
--#7171=PLANE('',#7170);\r
--#7172=ORIENTED_EDGE('',*,*,#6325,.F.);\r
--#7173=ORIENTED_EDGE('',*,*,#5974,.T.);\r
--#7174=ORIENTED_EDGE('',*,*,#7136,.T.);\r
--#7175=ORIENTED_EDGE('',*,*,#6159,.F.);\r
--#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));\r
--#7177=FACE_OUTER_BOUND('',#7176,.F.);\r
--#7178=ADVANCED_FACE('',(#7177),#7171,.F.);\r
--#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));\r
--#7180=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7181=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);\r
--#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);\r
--#7184=ORIENTED_EDGE('',*,*,#7158,.F.);\r
--#7185=ORIENTED_EDGE('',*,*,#5678,.T.);\r
--#7187=ORIENTED_EDGE('',*,*,#7186,.T.);\r
--#7188=ORIENTED_EDGE('',*,*,#6432,.T.);\r
--#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));\r
--#7190=FACE_OUTER_BOUND('',#7189,.F.);\r
--#7191=ADVANCED_FACE('',(#7190),#7183,.F.);\r
--#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));\r
--#7193=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7194=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);\r
--#7196=PLANE('',#7195);\r
--#7198=ORIENTED_EDGE('',*,*,#7197,.F.);\r
--#7199=ORIENTED_EDGE('',*,*,#6434,.T.);\r
--#7200=ORIENTED_EDGE('',*,*,#7186,.F.);\r
--#7201=ORIENTED_EDGE('',*,*,#5676,.F.);\r
--#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));\r
--#7203=FACE_OUTER_BOUND('',#7202,.F.);\r
--#7204=ADVANCED_FACE('',(#7203),#7196,.T.);\r
--#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));\r
--#7206=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7207=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);\r
--#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);\r
--#7211=ORIENTED_EDGE('',*,*,#7210,.F.);\r
--#7212=ORIENTED_EDGE('',*,*,#6436,.T.);\r
--#7213=ORIENTED_EDGE('',*,*,#7197,.T.);\r
--#7214=ORIENTED_EDGE('',*,*,#5674,.T.);\r
--#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));\r
--#7216=FACE_OUTER_BOUND('',#7215,.F.);\r
--#7217=ADVANCED_FACE('',(#7216),#7209,.F.);\r
--#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
--#7219=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7220=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);\r
--#7222=PLANE('',#7221);\r
--#7223=ORIENTED_EDGE('',*,*,#7210,.T.);\r
--#7224=ORIENTED_EDGE('',*,*,#5672,.F.);\r
--#7226=ORIENTED_EDGE('',*,*,#7225,.T.);\r
--#7227=ORIENTED_EDGE('',*,*,#6438,.T.);\r
--#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));\r
--#7229=FACE_OUTER_BOUND('',#7228,.F.);\r
--#7230=ADVANCED_FACE('',(#7229),#7222,.T.);\r
--#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));\r
--#7232=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7233=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);\r
--#7235=PLANE('',#7234);\r
--#7236=ORIENTED_EDGE('',*,*,#6322,.T.);\r
--#7238=ORIENTED_EDGE('',*,*,#7237,.T.);\r
--#7240=ORIENTED_EDGE('',*,*,#7239,.F.);\r
--#7241=ORIENTED_EDGE('',*,*,#5978,.T.);\r
--#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));\r
--#7243=FACE_OUTER_BOUND('',#7242,.F.);\r
--#7244=ADVANCED_FACE('',(#7243),#7235,.T.);\r
--#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));\r
--#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7247=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);\r
--#7249=PLANE('',#7248);\r
--#7250=ORIENTED_EDGE('',*,*,#7225,.F.);\r
--#7251=ORIENTED_EDGE('',*,*,#5670,.T.);\r
--#7252=ORIENTED_EDGE('',*,*,#6718,.T.);\r
--#7253=ORIENTED_EDGE('',*,*,#6440,.F.);\r
--#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));\r
--#7255=FACE_OUTER_BOUND('',#7254,.F.);\r
--#7256=ADVANCED_FACE('',(#7255),#7249,.T.);\r
--#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));\r
--#7258=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7259=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);\r
--#7261=PLANE('',#7260);\r
--#7263=ORIENTED_EDGE('',*,*,#7262,.F.);\r
--#7264=ORIENTED_EDGE('',*,*,#6312,.F.);\r
--#7266=ORIENTED_EDGE('',*,*,#7265,.F.);\r
--#7268=ORIENTED_EDGE('',*,*,#7267,.F.);\r
--#7270=ORIENTED_EDGE('',*,*,#7269,.F.);\r
--#7271=ORIENTED_EDGE('',*,*,#7237,.F.);\r
--#7272=ORIENTED_EDGE('',*,*,#6320,.F.);\r
--#7274=ORIENTED_EDGE('',*,*,#7273,.T.);\r
--#7276=ORIENTED_EDGE('',*,*,#7275,.F.);\r
--#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));\r
--#7278=FACE_OUTER_BOUND('',#7277,.F.);\r
--#7280=ORIENTED_EDGE('',*,*,#7279,.T.);\r
--#7282=ORIENTED_EDGE('',*,*,#7281,.T.);\r
--#7283=EDGE_LOOP('',(#7280,#7282));\r
--#7284=FACE_BOUND('',#7283,.F.);\r
--#7286=ORIENTED_EDGE('',*,*,#7285,.F.);\r
--#7288=ORIENTED_EDGE('',*,*,#7287,.T.);\r
--#7290=ORIENTED_EDGE('',*,*,#7289,.F.);\r
--#7292=ORIENTED_EDGE('',*,*,#7291,.T.);\r
--#7294=ORIENTED_EDGE('',*,*,#7293,.F.);\r
--#7296=ORIENTED_EDGE('',*,*,#7295,.T.);\r
--#7298=ORIENTED_EDGE('',*,*,#7297,.F.);\r
--#7300=ORIENTED_EDGE('',*,*,#7299,.T.);\r
--#7302=ORIENTED_EDGE('',*,*,#7301,.F.);\r
--#7304=ORIENTED_EDGE('',*,*,#7303,.T.);\r
--#7306=ORIENTED_EDGE('',*,*,#7305,.F.);\r
--#7308=ORIENTED_EDGE('',*,*,#7307,.T.);\r
--#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,\r
--#7306,#7308));\r
--#7310=FACE_BOUND('',#7309,.F.);\r
--#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);\r
--#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
--#7313=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7314=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);\r
--#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);\r
--#7317=ORIENTED_EDGE('',*,*,#6031,.T.);\r
--#7319=ORIENTED_EDGE('',*,*,#7318,.T.);\r
--#7320=ORIENTED_EDGE('',*,*,#7279,.F.);\r
--#7322=ORIENTED_EDGE('',*,*,#7321,.F.);\r
--#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));\r
--#7324=FACE_OUTER_BOUND('',#7323,.F.);\r
--#7325=ADVANCED_FACE('',(#7324),#7316,.F.);\r
--#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));\r
--#7327=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7328=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);\r
--#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);\r
--#7331=ORIENTED_EDGE('',*,*,#6033,.T.);\r
--#7332=ORIENTED_EDGE('',*,*,#7321,.T.);\r
--#7333=ORIENTED_EDGE('',*,*,#7281,.F.);\r
--#7334=ORIENTED_EDGE('',*,*,#7318,.F.);\r
--#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));\r
--#7336=FACE_OUTER_BOUND('',#7335,.F.);\r
--#7337=ADVANCED_FACE('',(#7336),#7330,.F.);\r
--#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));\r
--#7339=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7340=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);\r
--#7342=PLANE('',#7341);\r
--#7343=ORIENTED_EDGE('',*,*,#6314,.T.);\r
--#7344=ORIENTED_EDGE('',*,*,#7262,.T.);\r
--#7346=ORIENTED_EDGE('',*,*,#7345,.T.);\r
--#7347=EDGE_LOOP('',(#7343,#7344,#7346));\r
--#7348=FACE_OUTER_BOUND('',#7347,.F.);\r
--#7349=ADVANCED_FACE('',(#7348),#7342,.F.);\r
--#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));\r
--#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));\r
--#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);\r
--#7354=PLANE('',#7353);\r
--#7355=ORIENTED_EDGE('',*,*,#6316,.F.);\r
--#7356=ORIENTED_EDGE('',*,*,#7345,.F.);\r
--#7357=ORIENTED_EDGE('',*,*,#7275,.T.);\r
--#7359=ORIENTED_EDGE('',*,*,#7358,.T.);\r
--#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));\r
--#7361=FACE_OUTER_BOUND('',#7360,.F.);\r
--#7363=ORIENTED_EDGE('',*,*,#7362,.T.);\r
--#7365=ORIENTED_EDGE('',*,*,#7364,.T.);\r
--#7366=EDGE_LOOP('',(#7363,#7365));\r
--#7367=FACE_BOUND('',#7366,.F.);\r
--#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);\r
--#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));\r
--#7370=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7371=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);\r
--#7373=PLANE('',#7372);\r
--#7374=ORIENTED_EDGE('',*,*,#6318,.F.);\r
--#7375=ORIENTED_EDGE('',*,*,#7358,.F.);\r
--#7376=ORIENTED_EDGE('',*,*,#7273,.F.);\r
--#7377=EDGE_LOOP('',(#7374,#7375,#7376));\r
--#7378=FACE_OUTER_BOUND('',#7377,.F.);\r
--#7379=ADVANCED_FACE('',(#7378),#7373,.T.);\r
--#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
--#7381=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7382=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);\r
--#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);\r
--#7386=ORIENTED_EDGE('',*,*,#7385,.F.);\r
--#7387=ORIENTED_EDGE('',*,*,#7362,.F.);\r
--#7389=ORIENTED_EDGE('',*,*,#7388,.F.);\r
--#7391=ORIENTED_EDGE('',*,*,#7390,.F.);\r
--#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));\r
--#7393=FACE_OUTER_BOUND('',#7392,.F.);\r
--#7394=ADVANCED_FACE('',(#7393),#7384,.F.);\r
--#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
--#7396=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7397=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);\r
--#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);\r
--#7400=ORIENTED_EDGE('',*,*,#7388,.T.);\r
--#7401=ORIENTED_EDGE('',*,*,#7364,.F.);\r
--#7402=ORIENTED_EDGE('',*,*,#7385,.T.);\r
--#7404=ORIENTED_EDGE('',*,*,#7403,.F.);\r
--#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));\r
--#7406=FACE_OUTER_BOUND('',#7405,.F.);\r
--#7407=ADVANCED_FACE('',(#7406),#7399,.F.);\r
--#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));\r
--#7409=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7410=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);\r
--#7412=PLANE('',#7411);\r
--#7413=ORIENTED_EDGE('',*,*,#7390,.T.);\r
--#7414=ORIENTED_EDGE('',*,*,#7403,.T.);\r
--#7415=EDGE_LOOP('',(#7413,#7414));\r
--#7416=FACE_OUTER_BOUND('',#7415,.F.);\r
--#7418=ORIENTED_EDGE('',*,*,#7417,.F.);\r
--#7420=ORIENTED_EDGE('',*,*,#7419,.F.);\r
--#7421=EDGE_LOOP('',(#7418,#7420));\r
--#7422=FACE_BOUND('',#7421,.F.);\r
--#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);\r
--#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
--#7425=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7426=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);\r
--#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);\r
--#7429=ORIENTED_EDGE('',*,*,#7417,.T.);\r
--#7431=ORIENTED_EDGE('',*,*,#7430,.T.);\r
--#7432=ORIENTED_EDGE('',*,*,#5620,.F.);\r
--#7434=ORIENTED_EDGE('',*,*,#7433,.F.);\r
--#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));\r
--#7436=FACE_OUTER_BOUND('',#7435,.F.);\r
--#7437=ADVANCED_FACE('',(#7436),#7428,.F.);\r
--#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));\r
--#7439=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7440=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);\r
--#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);\r
--#7443=ORIENTED_EDGE('',*,*,#7419,.T.);\r
--#7444=ORIENTED_EDGE('',*,*,#7433,.T.);\r
--#7445=ORIENTED_EDGE('',*,*,#5622,.F.);\r
--#7446=ORIENTED_EDGE('',*,*,#7430,.F.);\r
--#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));\r
--#7448=FACE_OUTER_BOUND('',#7447,.F.);\r
--#7449=ADVANCED_FACE('',(#7448),#7442,.F.);\r
--#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));\r
--#7451=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7452=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);\r
--#7454=PLANE('',#7453);\r
--#7455=ORIENTED_EDGE('',*,*,#7265,.T.);\r
--#7456=ORIENTED_EDGE('',*,*,#6310,.T.);\r
--#7458=ORIENTED_EDGE('',*,*,#7457,.F.);\r
--#7459=ORIENTED_EDGE('',*,*,#5512,.F.);\r
--#7460=ORIENTED_EDGE('',*,*,#5984,.T.);\r
--#7462=ORIENTED_EDGE('',*,*,#7461,.T.);\r
--#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));\r
--#7464=FACE_OUTER_BOUND('',#7463,.F.);\r
--#7465=ADVANCED_FACE('',(#7464),#7454,.T.);\r
--#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));\r
--#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7468=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);\r
--#7470=PLANE('',#7469);\r
--#7471=ORIENTED_EDGE('',*,*,#6731,.F.);\r
--#7472=ORIENTED_EDGE('',*,*,#5514,.T.);\r
--#7473=ORIENTED_EDGE('',*,*,#7457,.T.);\r
--#7474=ORIENTED_EDGE('',*,*,#6308,.F.);\r
--#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));\r
--#7476=FACE_OUTER_BOUND('',#7475,.F.);\r
--#7477=ADVANCED_FACE('',(#7476),#7470,.T.);\r
--#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));\r
--#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);\r
--#7482=PLANE('',#7481);\r
--#7483=ORIENTED_EDGE('',*,*,#5982,.F.);\r
--#7485=ORIENTED_EDGE('',*,*,#7484,.T.);\r
--#7486=ORIENTED_EDGE('',*,*,#7267,.T.);\r
--#7487=ORIENTED_EDGE('',*,*,#7461,.F.);\r
--#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));\r
--#7489=FACE_OUTER_BOUND('',#7488,.F.);\r
--#7490=ADVANCED_FACE('',(#7489),#7482,.T.);\r
--#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));\r
--#7492=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7493=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);\r
--#7495=PLANE('',#7494);\r
--#7496=ORIENTED_EDGE('',*,*,#5980,.F.);\r
--#7497=ORIENTED_EDGE('',*,*,#7239,.T.);\r
--#7498=ORIENTED_EDGE('',*,*,#7269,.T.);\r
--#7499=ORIENTED_EDGE('',*,*,#7484,.F.);\r
--#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));\r
--#7501=FACE_OUTER_BOUND('',#7500,.F.);\r
--#7503=ORIENTED_EDGE('',*,*,#7502,.F.);\r
--#7505=ORIENTED_EDGE('',*,*,#7504,.F.);\r
--#7506=EDGE_LOOP('',(#7503,#7505));\r
--#7507=FACE_BOUND('',#7506,.F.);\r
--#7509=ORIENTED_EDGE('',*,*,#7508,.F.);\r
--#7511=ORIENTED_EDGE('',*,*,#7510,.F.);\r
--#7512=EDGE_LOOP('',(#7509,#7511));\r
--#7513=FACE_BOUND('',#7512,.F.);\r
--#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);\r
--#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
--#7516=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7517=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);\r
--#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);\r
--#7520=ORIENTED_EDGE('',*,*,#7502,.T.);\r
--#7522=ORIENTED_EDGE('',*,*,#7521,.T.);\r
--#7524=ORIENTED_EDGE('',*,*,#7523,.F.);\r
--#7526=ORIENTED_EDGE('',*,*,#7525,.F.);\r
--#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));\r
--#7528=FACE_OUTER_BOUND('',#7527,.F.);\r
--#7529=ADVANCED_FACE('',(#7528),#7519,.F.);\r
--#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));\r
--#7531=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7532=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);\r
--#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);\r
--#7535=ORIENTED_EDGE('',*,*,#7504,.T.);\r
--#7536=ORIENTED_EDGE('',*,*,#7525,.T.);\r
--#7538=ORIENTED_EDGE('',*,*,#7537,.F.);\r
--#7539=ORIENTED_EDGE('',*,*,#7521,.F.);\r
--#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));\r
--#7541=FACE_OUTER_BOUND('',#7540,.F.);\r
--#7542=ADVANCED_FACE('',(#7541),#7534,.F.);\r
--#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));\r
--#7544=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7545=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);\r
--#7547=PLANE('',#7546);\r
--#7548=ORIENTED_EDGE('',*,*,#7523,.T.);\r
--#7549=ORIENTED_EDGE('',*,*,#7537,.T.);\r
--#7550=EDGE_LOOP('',(#7548,#7549));\r
--#7551=FACE_OUTER_BOUND('',#7550,.F.);\r
--#7552=ADVANCED_FACE('',(#7551),#7547,.F.);\r
--#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
--#7554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7555=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);\r
--#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);\r
--#7558=ORIENTED_EDGE('',*,*,#7508,.T.);\r
--#7560=ORIENTED_EDGE('',*,*,#7559,.T.);\r
--#7562=ORIENTED_EDGE('',*,*,#7561,.F.);\r
--#7564=ORIENTED_EDGE('',*,*,#7563,.F.);\r
--#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));\r
--#7566=FACE_OUTER_BOUND('',#7565,.F.);\r
--#7567=ADVANCED_FACE('',(#7566),#7557,.F.);\r
--#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));\r
--#7569=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7570=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);\r
--#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);\r
--#7573=ORIENTED_EDGE('',*,*,#7510,.T.);\r
--#7574=ORIENTED_EDGE('',*,*,#7563,.T.);\r
--#7576=ORIENTED_EDGE('',*,*,#7575,.F.);\r
--#7577=ORIENTED_EDGE('',*,*,#7559,.F.);\r
--#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));\r
--#7579=FACE_OUTER_BOUND('',#7578,.F.);\r
--#7580=ADVANCED_FACE('',(#7579),#7572,.F.);\r
--#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));\r
--#7582=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7583=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);\r
--#7585=PLANE('',#7584);\r
--#7586=ORIENTED_EDGE('',*,*,#7561,.T.);\r
--#7587=ORIENTED_EDGE('',*,*,#7575,.T.);\r
--#7588=EDGE_LOOP('',(#7586,#7587));\r
--#7589=FACE_OUTER_BOUND('',#7588,.F.);\r
--#7590=ADVANCED_FACE('',(#7589),#7585,.F.);\r
--#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));\r
--#7592=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7593=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);\r
--#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);\r
--#7597=ORIENTED_EDGE('',*,*,#7596,.T.);\r
--#7598=ORIENTED_EDGE('',*,*,#7285,.T.);\r
--#7600=ORIENTED_EDGE('',*,*,#7599,.F.);\r
--#7602=ORIENTED_EDGE('',*,*,#7601,.T.);\r
--#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));\r
--#7604=FACE_OUTER_BOUND('',#7603,.F.);\r
--#7605=ADVANCED_FACE('',(#7604),#7595,.T.);\r
--#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));\r
--#7607=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7608=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);\r
--#7610=PLANE('',#7609);\r
--#7611=ORIENTED_EDGE('',*,*,#7596,.F.);\r
--#7613=ORIENTED_EDGE('',*,*,#7612,.T.);\r
--#7615=ORIENTED_EDGE('',*,*,#7614,.F.);\r
--#7616=ORIENTED_EDGE('',*,*,#7287,.F.);\r
--#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));\r
--#7618=FACE_OUTER_BOUND('',#7617,.F.);\r
--#7619=ADVANCED_FACE('',(#7618),#7610,.F.);\r
--#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));\r
--#7621=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#7622=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);\r
--#7624=PLANE('',#7623);\r
--#7625=ORIENTED_EDGE('',*,*,#7612,.F.);\r
--#7626=ORIENTED_EDGE('',*,*,#7601,.F.);\r
--#7628=ORIENTED_EDGE('',*,*,#7627,.F.);\r
--#7630=ORIENTED_EDGE('',*,*,#7629,.F.);\r
--#7632=ORIENTED_EDGE('',*,*,#7631,.F.);\r
--#7634=ORIENTED_EDGE('',*,*,#7633,.F.);\r
--#7636=ORIENTED_EDGE('',*,*,#7635,.F.);\r
--#7638=ORIENTED_EDGE('',*,*,#7637,.F.);\r
--#7640=ORIENTED_EDGE('',*,*,#7639,.F.);\r
--#7642=ORIENTED_EDGE('',*,*,#7641,.F.);\r
--#7644=ORIENTED_EDGE('',*,*,#7643,.F.);\r
--#7646=ORIENTED_EDGE('',*,*,#7645,.F.);\r
--#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,\r
--#7644,#7646));\r
--#7648=FACE_OUTER_BOUND('',#7647,.F.);\r
--#7649=ADVANCED_FACE('',(#7648),#7624,.T.);\r
--#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));\r
--#7651=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7652=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);\r
--#7654=PLANE('',#7653);\r
--#7655=ORIENTED_EDGE('',*,*,#7599,.T.);\r
--#7656=ORIENTED_EDGE('',*,*,#7307,.F.);\r
--#7658=ORIENTED_EDGE('',*,*,#7657,.T.);\r
--#7659=ORIENTED_EDGE('',*,*,#7627,.T.);\r
--#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));\r
--#7661=FACE_OUTER_BOUND('',#7660,.F.);\r
--#7662=ADVANCED_FACE('',(#7661),#7654,.F.);\r
--#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));\r
--#7664=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7665=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);\r
--#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);\r
--#7668=ORIENTED_EDGE('',*,*,#7657,.F.);\r
--#7669=ORIENTED_EDGE('',*,*,#7305,.T.);\r
--#7671=ORIENTED_EDGE('',*,*,#7670,.T.);\r
--#7672=ORIENTED_EDGE('',*,*,#7629,.T.);\r
--#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));\r
--#7674=FACE_OUTER_BOUND('',#7673,.F.);\r
--#7675=ADVANCED_FACE('',(#7674),#7667,.F.);\r
--#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));\r
--#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);\r
--#7680=PLANE('',#7679);\r
--#7681=ORIENTED_EDGE('',*,*,#7670,.F.);\r
--#7682=ORIENTED_EDGE('',*,*,#7303,.F.);\r
--#7684=ORIENTED_EDGE('',*,*,#7683,.T.);\r
--#7685=ORIENTED_EDGE('',*,*,#7631,.T.);\r
--#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));\r
--#7687=FACE_OUTER_BOUND('',#7686,.F.);\r
--#7688=ADVANCED_FACE('',(#7687),#7680,.F.);\r
--#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));\r
--#7690=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);\r
--#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);\r
--#7694=ORIENTED_EDGE('',*,*,#7683,.F.);\r
--#7695=ORIENTED_EDGE('',*,*,#7301,.T.);\r
--#7697=ORIENTED_EDGE('',*,*,#7696,.T.);\r
--#7698=ORIENTED_EDGE('',*,*,#7633,.T.);\r
--#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));\r
--#7700=FACE_OUTER_BOUND('',#7699,.F.);\r
--#7701=ADVANCED_FACE('',(#7700),#7693,.F.);\r
--#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));\r
--#7703=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7704=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);\r
--#7706=PLANE('',#7705);\r
--#7707=ORIENTED_EDGE('',*,*,#7696,.F.);\r
--#7708=ORIENTED_EDGE('',*,*,#7299,.F.);\r
--#7710=ORIENTED_EDGE('',*,*,#7709,.T.);\r
--#7711=ORIENTED_EDGE('',*,*,#7635,.T.);\r
--#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));\r
--#7713=FACE_OUTER_BOUND('',#7712,.F.);\r
--#7714=ADVANCED_FACE('',(#7713),#7706,.F.);\r
--#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));\r
--#7716=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7717=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);\r
--#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);\r
--#7720=ORIENTED_EDGE('',*,*,#7709,.F.);\r
--#7721=ORIENTED_EDGE('',*,*,#7297,.T.);\r
--#7723=ORIENTED_EDGE('',*,*,#7722,.T.);\r
--#7724=ORIENTED_EDGE('',*,*,#7637,.T.);\r
--#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));\r
--#7726=FACE_OUTER_BOUND('',#7725,.F.);\r
--#7727=ADVANCED_FACE('',(#7726),#7719,.F.);\r
--#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));\r
--#7729=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7730=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);\r
--#7732=PLANE('',#7731);\r
--#7734=ORIENTED_EDGE('',*,*,#7733,.T.);\r
--#7735=ORIENTED_EDGE('',*,*,#7639,.T.);\r
--#7736=ORIENTED_EDGE('',*,*,#7722,.F.);\r
--#7737=ORIENTED_EDGE('',*,*,#7295,.F.);\r
--#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));\r
--#7739=FACE_OUTER_BOUND('',#7738,.F.);\r
--#7740=ADVANCED_FACE('',(#7739),#7732,.F.);\r
--#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));\r
--#7742=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7743=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);\r
--#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);\r
--#7746=ORIENTED_EDGE('',*,*,#7733,.F.);\r
--#7747=ORIENTED_EDGE('',*,*,#7293,.T.);\r
--#7749=ORIENTED_EDGE('',*,*,#7748,.T.);\r
--#7750=ORIENTED_EDGE('',*,*,#7641,.T.);\r
--#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));\r
--#7752=FACE_OUTER_BOUND('',#7751,.F.);\r
--#7753=ADVANCED_FACE('',(#7752),#7745,.F.);\r
--#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));\r
--#7755=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7756=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);\r
--#7758=PLANE('',#7757);\r
--#7760=ORIENTED_EDGE('',*,*,#7759,.T.);\r
--#7761=ORIENTED_EDGE('',*,*,#7643,.T.);\r
--#7762=ORIENTED_EDGE('',*,*,#7748,.F.);\r
--#7763=ORIENTED_EDGE('',*,*,#7291,.F.);\r
--#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));\r
--#7765=FACE_OUTER_BOUND('',#7764,.F.);\r
--#7766=ADVANCED_FACE('',(#7765),#7758,.F.);\r
--#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));\r
--#7768=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#7769=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);\r
--#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);\r
--#7772=ORIENTED_EDGE('',*,*,#7759,.F.);\r
--#7773=ORIENTED_EDGE('',*,*,#7289,.T.);\r
--#7774=ORIENTED_EDGE('',*,*,#7614,.T.);\r
--#7775=ORIENTED_EDGE('',*,*,#7645,.T.);\r
--#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));\r
--#7777=FACE_OUTER_BOUND('',#7776,.F.);\r
--#7778=ADVANCED_FACE('',(#7777),#7771,.F.);\r
--#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));\r
--#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#7781=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);\r
--#7783=PLANE('',#7782);\r
--#7784=ORIENTED_EDGE('',*,*,#7161,.F.);\r
--#7785=ORIENTED_EDGE('',*,*,#6428,.T.);\r
--#7786=ORIENTED_EDGE('',*,*,#6953,.T.);\r
--#7787=ORIENTED_EDGE('',*,*,#5682,.F.);\r
--#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));\r
--#7789=FACE_OUTER_BOUND('',#7788,.F.);\r
--#7790=ADVANCED_FACE('',(#7789),#7783,.T.);\r
--#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
--#7792=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7793=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);\r
--#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);\r
--#7796=ORIENTED_EDGE('',*,*,#7140,.F.);\r
--#7798=ORIENTED_EDGE('',*,*,#7797,.T.);\r
--#7800=ORIENTED_EDGE('',*,*,#7799,.T.);\r
--#7802=ORIENTED_EDGE('',*,*,#7801,.F.);\r
--#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));\r
--#7804=FACE_OUTER_BOUND('',#7803,.F.);\r
--#7805=ADVANCED_FACE('',(#7804),#7795,.F.);\r
--#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));\r
--#7807=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7808=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);\r
--#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);\r
--#7811=ORIENTED_EDGE('',*,*,#7142,.F.);\r
--#7812=ORIENTED_EDGE('',*,*,#7801,.T.);\r
--#7814=ORIENTED_EDGE('',*,*,#7813,.T.);\r
--#7815=ORIENTED_EDGE('',*,*,#7797,.F.);\r
--#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));\r
--#7817=FACE_OUTER_BOUND('',#7816,.F.);\r
--#7818=ADVANCED_FACE('',(#7817),#7810,.F.);\r
--#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));\r
--#7820=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7821=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);\r
--#7823=PLANE('',#7822);\r
--#7824=ORIENTED_EDGE('',*,*,#7799,.F.);\r
--#7825=ORIENTED_EDGE('',*,*,#7813,.F.);\r
--#7826=EDGE_LOOP('',(#7824,#7825));\r
--#7827=FACE_OUTER_BOUND('',#7826,.F.);\r
--#7828=ADVANCED_FACE('',(#7827),#7823,.T.);\r
--#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
--#7830=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7831=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);\r
--#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);\r
--#7834=ORIENTED_EDGE('',*,*,#7146,.F.);\r
--#7836=ORIENTED_EDGE('',*,*,#7835,.T.);\r
--#7838=ORIENTED_EDGE('',*,*,#7837,.T.);\r
--#7840=ORIENTED_EDGE('',*,*,#7839,.F.);\r
--#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));\r
--#7842=FACE_OUTER_BOUND('',#7841,.F.);\r
--#7843=ADVANCED_FACE('',(#7842),#7833,.F.);\r
--#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));\r
--#7845=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7846=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);\r
--#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);\r
--#7849=ORIENTED_EDGE('',*,*,#7148,.F.);\r
--#7850=ORIENTED_EDGE('',*,*,#7839,.T.);\r
--#7852=ORIENTED_EDGE('',*,*,#7851,.T.);\r
--#7853=ORIENTED_EDGE('',*,*,#7835,.F.);\r
--#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));\r
--#7855=FACE_OUTER_BOUND('',#7854,.F.);\r
--#7856=ADVANCED_FACE('',(#7855),#7848,.F.);\r
--#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));\r
--#7858=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7859=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);\r
--#7861=PLANE('',#7860);\r
--#7862=ORIENTED_EDGE('',*,*,#7837,.F.);\r
--#7863=ORIENTED_EDGE('',*,*,#7851,.F.);\r
--#7864=EDGE_LOOP('',(#7862,#7863));\r
--#7865=FACE_OUTER_BOUND('',#7864,.F.);\r
--#7866=ADVANCED_FACE('',(#7865),#7861,.T.);\r
--#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));\r
--#7868=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7869=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);\r
--#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);\r
--#7872=ORIENTED_EDGE('',*,*,#6346,.F.);\r
--#7874=ORIENTED_EDGE('',*,*,#7873,.F.);\r
--#7876=ORIENTED_EDGE('',*,*,#7875,.T.);\r
--#7878=ORIENTED_EDGE('',*,*,#7877,.T.);\r
--#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));\r
--#7880=FACE_OUTER_BOUND('',#7879,.F.);\r
--#7881=ADVANCED_FACE('',(#7880),#7871,.F.);\r
--#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));\r
--#7883=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7884=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);\r
--#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);\r
--#7887=ORIENTED_EDGE('',*,*,#6348,.F.);\r
--#7888=ORIENTED_EDGE('',*,*,#7877,.F.);\r
--#7890=ORIENTED_EDGE('',*,*,#7889,.F.);\r
--#7891=ORIENTED_EDGE('',*,*,#7873,.T.);\r
--#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));\r
--#7893=FACE_OUTER_BOUND('',#7892,.F.);\r
--#7894=ADVANCED_FACE('',(#7893),#7886,.F.);\r
--#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));\r
--#7896=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7897=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);\r
--#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);\r
--#7901=ORIENTED_EDGE('',*,*,#7900,.F.);\r
--#7903=ORIENTED_EDGE('',*,*,#7902,.T.);\r
--#7904=ORIENTED_EDGE('',*,*,#7889,.T.);\r
--#7905=EDGE_LOOP('',(#7901,#7903,#7904));\r
--#7906=FACE_OUTER_BOUND('',#7905,.F.);\r
--#7907=ADVANCED_FACE('',(#7906),#7899,.F.);\r
--#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));\r
--#7909=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7910=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);\r
--#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);\r
--#7913=ORIENTED_EDGE('',*,*,#7900,.T.);\r
--#7914=ORIENTED_EDGE('',*,*,#7875,.F.);\r
--#7915=ORIENTED_EDGE('',*,*,#7902,.F.);\r
--#7916=EDGE_LOOP('',(#7913,#7914,#7915));\r
--#7917=FACE_OUTER_BOUND('',#7916,.F.);\r
--#7918=ADVANCED_FACE('',(#7917),#7912,.F.);\r
--#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));\r
--#7920=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7921=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);\r
--#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);\r
--#7924=ORIENTED_EDGE('',*,*,#6352,.F.);\r
--#7926=ORIENTED_EDGE('',*,*,#7925,.F.);\r
--#7928=ORIENTED_EDGE('',*,*,#7927,.T.);\r
--#7930=ORIENTED_EDGE('',*,*,#7929,.T.);\r
--#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));\r
--#7932=FACE_OUTER_BOUND('',#7931,.F.);\r
--#7933=ADVANCED_FACE('',(#7932),#7923,.F.);\r
--#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));\r
--#7935=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7936=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);\r
--#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);\r
--#7939=ORIENTED_EDGE('',*,*,#6354,.F.);\r
--#7940=ORIENTED_EDGE('',*,*,#7929,.F.);\r
--#7942=ORIENTED_EDGE('',*,*,#7941,.F.);\r
--#7943=ORIENTED_EDGE('',*,*,#7925,.T.);\r
--#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));\r
--#7945=FACE_OUTER_BOUND('',#7944,.F.);\r
--#7946=ADVANCED_FACE('',(#7945),#7938,.F.);\r
--#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));\r
--#7948=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7949=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);\r
--#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);\r
--#7953=ORIENTED_EDGE('',*,*,#7952,.F.);\r
--#7955=ORIENTED_EDGE('',*,*,#7954,.T.);\r
--#7956=ORIENTED_EDGE('',*,*,#7941,.T.);\r
--#7957=EDGE_LOOP('',(#7953,#7955,#7956));\r
--#7958=FACE_OUTER_BOUND('',#7957,.F.);\r
--#7959=ADVANCED_FACE('',(#7958),#7951,.F.);\r
--#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));\r
--#7961=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#7962=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);\r
--#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);\r
--#7965=ORIENTED_EDGE('',*,*,#7952,.T.);\r
--#7966=ORIENTED_EDGE('',*,*,#7927,.F.);\r
--#7967=ORIENTED_EDGE('',*,*,#7954,.F.);\r
--#7968=EDGE_LOOP('',(#7965,#7966,#7967));\r
--#7969=FACE_OUTER_BOUND('',#7968,.F.);\r
--#7970=ADVANCED_FACE('',(#7969),#7964,.F.);\r
--#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#7972=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7973=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);\r
--#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);\r
--#7976=ORIENTED_EDGE('',*,*,#6248,.T.);\r
--#7978=ORIENTED_EDGE('',*,*,#7977,.T.);\r
--#7980=ORIENTED_EDGE('',*,*,#7979,.F.);\r
--#7982=ORIENTED_EDGE('',*,*,#7981,.F.);\r
--#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));\r
--#7984=FACE_OUTER_BOUND('',#7983,.F.);\r
--#7985=ADVANCED_FACE('',(#7984),#7975,.F.);\r
--#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#7987=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#7988=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);\r
--#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);\r
--#7991=ORIENTED_EDGE('',*,*,#6250,.T.);\r
--#7992=ORIENTED_EDGE('',*,*,#7981,.T.);\r
--#7994=ORIENTED_EDGE('',*,*,#7993,.F.);\r
--#7995=ORIENTED_EDGE('',*,*,#7977,.F.);\r
--#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));\r
--#7997=FACE_OUTER_BOUND('',#7996,.F.);\r
--#7998=ADVANCED_FACE('',(#7997),#7990,.F.);\r
--#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));\r
--#8000=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8001=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);\r
--#8003=PLANE('',#8002);\r
--#8004=ORIENTED_EDGE('',*,*,#7979,.T.);\r
--#8005=ORIENTED_EDGE('',*,*,#7993,.T.);\r
--#8006=EDGE_LOOP('',(#8004,#8005));\r
--#8007=FACE_OUTER_BOUND('',#8006,.F.);\r
--#8009=ORIENTED_EDGE('',*,*,#8008,.F.);\r
--#8011=ORIENTED_EDGE('',*,*,#8010,.F.);\r
--#8012=EDGE_LOOP('',(#8009,#8011));\r
--#8013=FACE_BOUND('',#8012,.F.);\r
--#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);\r
--#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#8016=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8017=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);\r
--#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);\r
--#8020=ORIENTED_EDGE('',*,*,#8008,.T.);\r
--#8022=ORIENTED_EDGE('',*,*,#8021,.T.);\r
--#8023=ORIENTED_EDGE('',*,*,#5626,.F.);\r
--#8025=ORIENTED_EDGE('',*,*,#8024,.F.);\r
--#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));\r
--#8027=FACE_OUTER_BOUND('',#8026,.F.);\r
--#8028=ADVANCED_FACE('',(#8027),#8019,.F.);\r
--#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));\r
--#8030=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8031=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);\r
--#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);\r
--#8034=ORIENTED_EDGE('',*,*,#8010,.T.);\r
--#8035=ORIENTED_EDGE('',*,*,#8024,.T.);\r
--#8036=ORIENTED_EDGE('',*,*,#5628,.F.);\r
--#8037=ORIENTED_EDGE('',*,*,#8021,.F.);\r
--#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));\r
--#8039=FACE_OUTER_BOUND('',#8038,.F.);\r
--#8040=ADVANCED_FACE('',(#8039),#8033,.F.);\r
--#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#8042=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8043=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);\r
--#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);\r
--#8046=ORIENTED_EDGE('',*,*,#6358,.T.);\r
--#8048=ORIENTED_EDGE('',*,*,#8047,.T.);\r
--#8050=ORIENTED_EDGE('',*,*,#8049,.F.);\r
--#8052=ORIENTED_EDGE('',*,*,#8051,.F.);\r
--#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));\r
--#8054=FACE_OUTER_BOUND('',#8053,.F.);\r
--#8055=ADVANCED_FACE('',(#8054),#8045,.F.);\r
--#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#8057=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8058=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);\r
--#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);\r
--#8061=ORIENTED_EDGE('',*,*,#6360,.T.);\r
--#8062=ORIENTED_EDGE('',*,*,#8051,.T.);\r
--#8064=ORIENTED_EDGE('',*,*,#8063,.F.);\r
--#8065=ORIENTED_EDGE('',*,*,#8047,.F.);\r
--#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));\r
--#8067=FACE_OUTER_BOUND('',#8066,.F.);\r
--#8068=ADVANCED_FACE('',(#8067),#8060,.F.);\r
--#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));\r
--#8070=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8071=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);\r
--#8073=PLANE('',#8072);\r
--#8074=ORIENTED_EDGE('',*,*,#8049,.T.);\r
--#8075=ORIENTED_EDGE('',*,*,#8063,.T.);\r
--#8076=EDGE_LOOP('',(#8074,#8075));\r
--#8077=FACE_OUTER_BOUND('',#8076,.F.);\r
--#8079=ORIENTED_EDGE('',*,*,#8078,.F.);\r
--#8081=ORIENTED_EDGE('',*,*,#8080,.F.);\r
--#8082=EDGE_LOOP('',(#8079,#8081));\r
--#8083=FACE_BOUND('',#8082,.F.);\r
--#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);\r
--#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#8086=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8087=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);\r
--#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);\r
--#8090=ORIENTED_EDGE('',*,*,#8078,.T.);\r
--#8092=ORIENTED_EDGE('',*,*,#8091,.T.);\r
--#8093=ORIENTED_EDGE('',*,*,#5614,.F.);\r
--#8095=ORIENTED_EDGE('',*,*,#8094,.F.);\r
--#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));\r
--#8097=FACE_OUTER_BOUND('',#8096,.F.);\r
--#8098=ADVANCED_FACE('',(#8097),#8089,.F.);\r
--#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));\r
--#8100=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8101=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);\r
--#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);\r
--#8104=ORIENTED_EDGE('',*,*,#8080,.T.);\r
--#8105=ORIENTED_EDGE('',*,*,#8094,.T.);\r
--#8106=ORIENTED_EDGE('',*,*,#5616,.F.);\r
--#8107=ORIENTED_EDGE('',*,*,#8091,.F.);\r
--#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));\r
--#8109=FACE_OUTER_BOUND('',#8108,.F.);\r
--#8110=ADVANCED_FACE('',(#8109),#8103,.F.);\r
--#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#8112=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8113=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);\r
--#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);\r
--#8116=ORIENTED_EDGE('',*,*,#6364,.T.);\r
--#8118=ORIENTED_EDGE('',*,*,#8117,.T.);\r
--#8120=ORIENTED_EDGE('',*,*,#8119,.F.);\r
--#8122=ORIENTED_EDGE('',*,*,#8121,.F.);\r
--#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));\r
--#8124=FACE_OUTER_BOUND('',#8123,.F.);\r
--#8125=ADVANCED_FACE('',(#8124),#8115,.F.);\r
--#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#8127=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8128=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);\r
--#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);\r
--#8131=ORIENTED_EDGE('',*,*,#6366,.T.);\r
--#8132=ORIENTED_EDGE('',*,*,#8121,.T.);\r
--#8134=ORIENTED_EDGE('',*,*,#8133,.F.);\r
--#8135=ORIENTED_EDGE('',*,*,#8117,.F.);\r
--#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));\r
--#8137=FACE_OUTER_BOUND('',#8136,.F.);\r
--#8138=ADVANCED_FACE('',(#8137),#8130,.F.);\r
--#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));\r
--#8140=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8141=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);\r
--#8143=PLANE('',#8142);\r
--#8144=ORIENTED_EDGE('',*,*,#8119,.T.);\r
--#8145=ORIENTED_EDGE('',*,*,#8133,.T.);\r
--#8146=EDGE_LOOP('',(#8144,#8145));\r
--#8147=FACE_OUTER_BOUND('',#8146,.F.);\r
--#8149=ORIENTED_EDGE('',*,*,#8148,.F.);\r
--#8151=ORIENTED_EDGE('',*,*,#8150,.F.);\r
--#8152=EDGE_LOOP('',(#8149,#8151));\r
--#8153=FACE_BOUND('',#8152,.F.);\r
--#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);\r
--#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#8156=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8157=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);\r
--#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);\r
--#8160=ORIENTED_EDGE('',*,*,#8148,.T.);\r
--#8162=ORIENTED_EDGE('',*,*,#8161,.T.);\r
--#8163=ORIENTED_EDGE('',*,*,#5608,.F.);\r
--#8165=ORIENTED_EDGE('',*,*,#8164,.F.);\r
--#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));\r
--#8167=FACE_OUTER_BOUND('',#8166,.F.);\r
--#8168=ADVANCED_FACE('',(#8167),#8159,.F.);\r
--#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));\r
--#8170=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8171=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);\r
--#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);\r
--#8174=ORIENTED_EDGE('',*,*,#8150,.T.);\r
--#8175=ORIENTED_EDGE('',*,*,#8164,.T.);\r
--#8176=ORIENTED_EDGE('',*,*,#5610,.F.);\r
--#8177=ORIENTED_EDGE('',*,*,#8161,.F.);\r
--#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));\r
--#8179=FACE_OUTER_BOUND('',#8178,.F.);\r
--#8180=ADVANCED_FACE('',(#8179),#8173,.F.);\r
--#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#8182=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8183=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);\r
--#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);\r
--#8186=ORIENTED_EDGE('',*,*,#6254,.T.);\r
--#8188=ORIENTED_EDGE('',*,*,#8187,.T.);\r
--#8190=ORIENTED_EDGE('',*,*,#8189,.F.);\r
--#8192=ORIENTED_EDGE('',*,*,#8191,.F.);\r
--#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));\r
--#8194=FACE_OUTER_BOUND('',#8193,.F.);\r
--#8195=ADVANCED_FACE('',(#8194),#8185,.F.);\r
--#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#8197=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8198=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);\r
--#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);\r
--#8201=ORIENTED_EDGE('',*,*,#6256,.T.);\r
--#8202=ORIENTED_EDGE('',*,*,#8191,.T.);\r
--#8204=ORIENTED_EDGE('',*,*,#8203,.F.);\r
--#8205=ORIENTED_EDGE('',*,*,#8187,.F.);\r
--#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));\r
--#8207=FACE_OUTER_BOUND('',#8206,.F.);\r
--#8208=ADVANCED_FACE('',(#8207),#8200,.F.);\r
--#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));\r
--#8210=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8211=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);\r
--#8213=PLANE('',#8212);\r
--#8214=ORIENTED_EDGE('',*,*,#8189,.T.);\r
--#8215=ORIENTED_EDGE('',*,*,#8203,.T.);\r
--#8216=EDGE_LOOP('',(#8214,#8215));\r
--#8217=FACE_OUTER_BOUND('',#8216,.F.);\r
--#8219=ORIENTED_EDGE('',*,*,#8218,.F.);\r
--#8221=ORIENTED_EDGE('',*,*,#8220,.F.);\r
--#8222=EDGE_LOOP('',(#8219,#8221));\r
--#8223=FACE_BOUND('',#8222,.F.);\r
--#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);\r
--#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#8226=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8227=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);\r
--#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);\r
--#8230=ORIENTED_EDGE('',*,*,#8218,.T.);\r
--#8232=ORIENTED_EDGE('',*,*,#8231,.T.);\r
--#8233=ORIENTED_EDGE('',*,*,#5602,.F.);\r
--#8235=ORIENTED_EDGE('',*,*,#8234,.F.);\r
--#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));\r
--#8237=FACE_OUTER_BOUND('',#8236,.F.);\r
--#8238=ADVANCED_FACE('',(#8237),#8229,.F.);\r
--#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));\r
--#8240=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8241=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);\r
--#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);\r
--#8244=ORIENTED_EDGE('',*,*,#8220,.T.);\r
--#8245=ORIENTED_EDGE('',*,*,#8234,.T.);\r
--#8246=ORIENTED_EDGE('',*,*,#5604,.F.);\r
--#8247=ORIENTED_EDGE('',*,*,#8231,.F.);\r
--#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));\r
--#8249=FACE_OUTER_BOUND('',#8248,.F.);\r
--#8250=ADVANCED_FACE('',(#8249),#8243,.F.);\r
--#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#8252=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8253=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);\r
--#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);\r
--#8256=ORIENTED_EDGE('',*,*,#6370,.T.);\r
--#8258=ORIENTED_EDGE('',*,*,#8257,.T.);\r
--#8260=ORIENTED_EDGE('',*,*,#8259,.F.);\r
--#8262=ORIENTED_EDGE('',*,*,#8261,.F.);\r
--#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));\r
--#8264=FACE_OUTER_BOUND('',#8263,.F.);\r
--#8265=ADVANCED_FACE('',(#8264),#8255,.F.);\r
--#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#8267=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8268=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);\r
--#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);\r
--#8271=ORIENTED_EDGE('',*,*,#6372,.T.);\r
--#8272=ORIENTED_EDGE('',*,*,#8261,.T.);\r
--#8274=ORIENTED_EDGE('',*,*,#8273,.F.);\r
--#8275=ORIENTED_EDGE('',*,*,#8257,.F.);\r
--#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));\r
--#8277=FACE_OUTER_BOUND('',#8276,.F.);\r
--#8278=ADVANCED_FACE('',(#8277),#8270,.F.);\r
--#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));\r
--#8280=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8281=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);\r
--#8283=PLANE('',#8282);\r
--#8284=ORIENTED_EDGE('',*,*,#8259,.T.);\r
--#8285=ORIENTED_EDGE('',*,*,#8273,.T.);\r
--#8286=EDGE_LOOP('',(#8284,#8285));\r
--#8287=FACE_OUTER_BOUND('',#8286,.F.);\r
--#8289=ORIENTED_EDGE('',*,*,#8288,.F.);\r
--#8291=ORIENTED_EDGE('',*,*,#8290,.F.);\r
--#8292=EDGE_LOOP('',(#8289,#8291));\r
--#8293=FACE_BOUND('',#8292,.F.);\r
--#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);\r
--#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#8296=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8297=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);\r
--#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);\r
--#8300=ORIENTED_EDGE('',*,*,#8288,.T.);\r
--#8302=ORIENTED_EDGE('',*,*,#8301,.T.);\r
--#8303=ORIENTED_EDGE('',*,*,#5590,.F.);\r
--#8305=ORIENTED_EDGE('',*,*,#8304,.F.);\r
--#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));\r
--#8307=FACE_OUTER_BOUND('',#8306,.F.);\r
--#8308=ADVANCED_FACE('',(#8307),#8299,.F.);\r
--#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));\r
--#8310=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8311=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);\r
--#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);\r
--#8314=ORIENTED_EDGE('',*,*,#8290,.T.);\r
--#8315=ORIENTED_EDGE('',*,*,#8304,.T.);\r
--#8316=ORIENTED_EDGE('',*,*,#5592,.F.);\r
--#8317=ORIENTED_EDGE('',*,*,#8301,.F.);\r
--#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));\r
--#8319=FACE_OUTER_BOUND('',#8318,.F.);\r
--#8320=ADVANCED_FACE('',(#8319),#8313,.F.);\r
--#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#8322=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8323=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);\r
--#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);\r
--#8326=ORIENTED_EDGE('',*,*,#6376,.T.);\r
--#8328=ORIENTED_EDGE('',*,*,#8327,.T.);\r
--#8330=ORIENTED_EDGE('',*,*,#8329,.F.);\r
--#8332=ORIENTED_EDGE('',*,*,#8331,.F.);\r
--#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));\r
--#8334=FACE_OUTER_BOUND('',#8333,.F.);\r
--#8335=ADVANCED_FACE('',(#8334),#8325,.F.);\r
--#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#8337=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8338=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);\r
--#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);\r
--#8341=ORIENTED_EDGE('',*,*,#6378,.T.);\r
--#8342=ORIENTED_EDGE('',*,*,#8331,.T.);\r
--#8344=ORIENTED_EDGE('',*,*,#8343,.F.);\r
--#8345=ORIENTED_EDGE('',*,*,#8327,.F.);\r
--#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));\r
--#8347=FACE_OUTER_BOUND('',#8346,.F.);\r
--#8348=ADVANCED_FACE('',(#8347),#8340,.F.);\r
--#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));\r
--#8350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8351=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);\r
--#8353=PLANE('',#8352);\r
--#8354=ORIENTED_EDGE('',*,*,#8329,.T.);\r
--#8355=ORIENTED_EDGE('',*,*,#8343,.T.);\r
--#8356=EDGE_LOOP('',(#8354,#8355));\r
--#8357=FACE_OUTER_BOUND('',#8356,.F.);\r
--#8359=ORIENTED_EDGE('',*,*,#8358,.F.);\r
--#8361=ORIENTED_EDGE('',*,*,#8360,.F.);\r
--#8362=EDGE_LOOP('',(#8359,#8361));\r
--#8363=FACE_BOUND('',#8362,.F.);\r
--#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);\r
--#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#8366=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8367=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);\r
--#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);\r
--#8370=ORIENTED_EDGE('',*,*,#8358,.T.);\r
--#8372=ORIENTED_EDGE('',*,*,#8371,.T.);\r
--#8373=ORIENTED_EDGE('',*,*,#5584,.F.);\r
--#8375=ORIENTED_EDGE('',*,*,#8374,.F.);\r
--#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));\r
--#8377=FACE_OUTER_BOUND('',#8376,.F.);\r
--#8378=ADVANCED_FACE('',(#8377),#8369,.F.);\r
--#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));\r
--#8380=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8381=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);\r
--#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);\r
--#8384=ORIENTED_EDGE('',*,*,#8360,.T.);\r
--#8385=ORIENTED_EDGE('',*,*,#8374,.T.);\r
--#8386=ORIENTED_EDGE('',*,*,#5586,.F.);\r
--#8387=ORIENTED_EDGE('',*,*,#8371,.F.);\r
--#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));\r
--#8389=FACE_OUTER_BOUND('',#8388,.F.);\r
--#8390=ADVANCED_FACE('',(#8389),#8383,.F.);\r
--#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#8392=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8393=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);\r
--#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);\r
--#8396=ORIENTED_EDGE('',*,*,#6260,.T.);\r
--#8398=ORIENTED_EDGE('',*,*,#8397,.T.);\r
--#8400=ORIENTED_EDGE('',*,*,#8399,.F.);\r
--#8402=ORIENTED_EDGE('',*,*,#8401,.F.);\r
--#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));\r
--#8404=FACE_OUTER_BOUND('',#8403,.F.);\r
--#8405=ADVANCED_FACE('',(#8404),#8395,.F.);\r
--#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#8407=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8408=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);\r
--#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);\r
--#8411=ORIENTED_EDGE('',*,*,#6262,.T.);\r
--#8412=ORIENTED_EDGE('',*,*,#8401,.T.);\r
--#8414=ORIENTED_EDGE('',*,*,#8413,.F.);\r
--#8415=ORIENTED_EDGE('',*,*,#8397,.F.);\r
--#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));\r
--#8417=FACE_OUTER_BOUND('',#8416,.F.);\r
--#8418=ADVANCED_FACE('',(#8417),#8410,.F.);\r
--#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));\r
--#8420=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8421=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);\r
--#8423=PLANE('',#8422);\r
--#8424=ORIENTED_EDGE('',*,*,#8399,.T.);\r
--#8425=ORIENTED_EDGE('',*,*,#8413,.T.);\r
--#8426=EDGE_LOOP('',(#8424,#8425));\r
--#8427=FACE_OUTER_BOUND('',#8426,.F.);\r
--#8429=ORIENTED_EDGE('',*,*,#8428,.F.);\r
--#8431=ORIENTED_EDGE('',*,*,#8430,.F.);\r
--#8432=EDGE_LOOP('',(#8429,#8431));\r
--#8433=FACE_BOUND('',#8432,.F.);\r
--#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);\r
--#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#8436=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8437=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);\r
--#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);\r
--#8440=ORIENTED_EDGE('',*,*,#8428,.T.);\r
--#8442=ORIENTED_EDGE('',*,*,#8441,.T.);\r
--#8443=ORIENTED_EDGE('',*,*,#5632,.F.);\r
--#8445=ORIENTED_EDGE('',*,*,#8444,.F.);\r
--#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));\r
--#8447=FACE_OUTER_BOUND('',#8446,.F.);\r
--#8448=ADVANCED_FACE('',(#8447),#8439,.F.);\r
--#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));\r
--#8450=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8451=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);\r
--#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);\r
--#8454=ORIENTED_EDGE('',*,*,#8430,.T.);\r
--#8455=ORIENTED_EDGE('',*,*,#8444,.T.);\r
--#8456=ORIENTED_EDGE('',*,*,#5634,.F.);\r
--#8457=ORIENTED_EDGE('',*,*,#8441,.F.);\r
--#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));\r
--#8459=FACE_OUTER_BOUND('',#8458,.F.);\r
--#8460=ADVANCED_FACE('',(#8459),#8453,.F.);\r
--#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#8462=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8463=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);\r
--#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);\r
--#8466=ORIENTED_EDGE('',*,*,#6266,.T.);\r
--#8468=ORIENTED_EDGE('',*,*,#8467,.T.);\r
--#8470=ORIENTED_EDGE('',*,*,#8469,.F.);\r
--#8472=ORIENTED_EDGE('',*,*,#8471,.F.);\r
--#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));\r
--#8474=FACE_OUTER_BOUND('',#8473,.F.);\r
--#8475=ADVANCED_FACE('',(#8474),#8465,.F.);\r
--#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#8477=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8478=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);\r
--#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);\r
--#8481=ORIENTED_EDGE('',*,*,#6268,.T.);\r
--#8482=ORIENTED_EDGE('',*,*,#8471,.T.);\r
--#8484=ORIENTED_EDGE('',*,*,#8483,.F.);\r
--#8485=ORIENTED_EDGE('',*,*,#8467,.F.);\r
--#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));\r
--#8487=FACE_OUTER_BOUND('',#8486,.F.);\r
--#8488=ADVANCED_FACE('',(#8487),#8480,.F.);\r
--#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));\r
--#8490=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8491=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);\r
--#8493=PLANE('',#8492);\r
--#8494=ORIENTED_EDGE('',*,*,#8469,.T.);\r
--#8495=ORIENTED_EDGE('',*,*,#8483,.T.);\r
--#8496=EDGE_LOOP('',(#8494,#8495));\r
--#8497=FACE_OUTER_BOUND('',#8496,.F.);\r
--#8499=ORIENTED_EDGE('',*,*,#8498,.F.);\r
--#8501=ORIENTED_EDGE('',*,*,#8500,.F.);\r
--#8502=EDGE_LOOP('',(#8499,#8501));\r
--#8503=FACE_BOUND('',#8502,.F.);\r
--#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);\r
--#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#8506=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8507=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);\r
--#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);\r
--#8510=ORIENTED_EDGE('',*,*,#8498,.T.);\r
--#8512=ORIENTED_EDGE('',*,*,#8511,.T.);\r
--#8513=ORIENTED_EDGE('',*,*,#5578,.F.);\r
--#8515=ORIENTED_EDGE('',*,*,#8514,.F.);\r
--#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));\r
--#8517=FACE_OUTER_BOUND('',#8516,.F.);\r
--#8518=ADVANCED_FACE('',(#8517),#8509,.F.);\r
--#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));\r
--#8520=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8521=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);\r
--#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);\r
--#8524=ORIENTED_EDGE('',*,*,#8500,.T.);\r
--#8525=ORIENTED_EDGE('',*,*,#8514,.T.);\r
--#8526=ORIENTED_EDGE('',*,*,#5580,.F.);\r
--#8527=ORIENTED_EDGE('',*,*,#8511,.F.);\r
--#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));\r
--#8529=FACE_OUTER_BOUND('',#8528,.F.);\r
--#8530=ADVANCED_FACE('',(#8529),#8523,.F.);\r
--#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#8532=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8533=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);\r
--#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);\r
--#8536=ORIENTED_EDGE('',*,*,#6272,.T.);\r
--#8538=ORIENTED_EDGE('',*,*,#8537,.T.);\r
--#8540=ORIENTED_EDGE('',*,*,#8539,.F.);\r
--#8542=ORIENTED_EDGE('',*,*,#8541,.F.);\r
--#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));\r
--#8544=FACE_OUTER_BOUND('',#8543,.F.);\r
--#8545=ADVANCED_FACE('',(#8544),#8535,.F.);\r
--#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#8547=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8548=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);\r
--#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);\r
--#8551=ORIENTED_EDGE('',*,*,#6274,.T.);\r
--#8552=ORIENTED_EDGE('',*,*,#8541,.T.);\r
--#8554=ORIENTED_EDGE('',*,*,#8553,.F.);\r
--#8555=ORIENTED_EDGE('',*,*,#8537,.F.);\r
--#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));\r
--#8557=FACE_OUTER_BOUND('',#8556,.F.);\r
--#8558=ADVANCED_FACE('',(#8557),#8550,.F.);\r
--#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));\r
--#8560=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8561=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);\r
--#8563=PLANE('',#8562);\r
--#8564=ORIENTED_EDGE('',*,*,#8539,.T.);\r
--#8565=ORIENTED_EDGE('',*,*,#8553,.T.);\r
--#8566=EDGE_LOOP('',(#8564,#8565));\r
--#8567=FACE_OUTER_BOUND('',#8566,.F.);\r
--#8569=ORIENTED_EDGE('',*,*,#8568,.F.);\r
--#8571=ORIENTED_EDGE('',*,*,#8570,.F.);\r
--#8572=EDGE_LOOP('',(#8569,#8571));\r
--#8573=FACE_BOUND('',#8572,.F.);\r
--#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);\r
--#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#8576=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8577=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);\r
--#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);\r
--#8580=ORIENTED_EDGE('',*,*,#8568,.T.);\r
--#8582=ORIENTED_EDGE('',*,*,#8581,.T.);\r
--#8583=ORIENTED_EDGE('',*,*,#5560,.F.);\r
--#8585=ORIENTED_EDGE('',*,*,#8584,.F.);\r
--#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));\r
--#8587=FACE_OUTER_BOUND('',#8586,.F.);\r
--#8588=ADVANCED_FACE('',(#8587),#8579,.F.);\r
--#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));\r
--#8590=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8591=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);\r
--#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);\r
--#8594=ORIENTED_EDGE('',*,*,#8570,.T.);\r
--#8595=ORIENTED_EDGE('',*,*,#8584,.T.);\r
--#8596=ORIENTED_EDGE('',*,*,#5562,.F.);\r
--#8597=ORIENTED_EDGE('',*,*,#8581,.F.);\r
--#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));\r
--#8599=FACE_OUTER_BOUND('',#8598,.F.);\r
--#8600=ADVANCED_FACE('',(#8599),#8593,.F.);\r
--#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#8602=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8603=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);\r
--#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);\r
--#8606=ORIENTED_EDGE('',*,*,#6382,.T.);\r
--#8608=ORIENTED_EDGE('',*,*,#8607,.T.);\r
--#8610=ORIENTED_EDGE('',*,*,#8609,.F.);\r
--#8612=ORIENTED_EDGE('',*,*,#8611,.F.);\r
--#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));\r
--#8614=FACE_OUTER_BOUND('',#8613,.F.);\r
--#8615=ADVANCED_FACE('',(#8614),#8605,.F.);\r
--#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#8617=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8618=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);\r
--#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);\r
--#8621=ORIENTED_EDGE('',*,*,#6384,.T.);\r
--#8622=ORIENTED_EDGE('',*,*,#8611,.T.);\r
--#8624=ORIENTED_EDGE('',*,*,#8623,.F.);\r
--#8625=ORIENTED_EDGE('',*,*,#8607,.F.);\r
--#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));\r
--#8627=FACE_OUTER_BOUND('',#8626,.F.);\r
--#8628=ADVANCED_FACE('',(#8627),#8620,.F.);\r
--#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));\r
--#8630=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8631=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);\r
--#8633=PLANE('',#8632);\r
--#8634=ORIENTED_EDGE('',*,*,#8609,.T.);\r
--#8635=ORIENTED_EDGE('',*,*,#8623,.T.);\r
--#8636=EDGE_LOOP('',(#8634,#8635));\r
--#8637=FACE_OUTER_BOUND('',#8636,.F.);\r
--#8639=ORIENTED_EDGE('',*,*,#8638,.F.);\r
--#8641=ORIENTED_EDGE('',*,*,#8640,.F.);\r
--#8642=EDGE_LOOP('',(#8639,#8641));\r
--#8643=FACE_BOUND('',#8642,.F.);\r
--#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);\r
--#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#8646=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8647=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);\r
--#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);\r
--#8650=ORIENTED_EDGE('',*,*,#8638,.T.);\r
--#8652=ORIENTED_EDGE('',*,*,#8651,.T.);\r
--#8653=ORIENTED_EDGE('',*,*,#5572,.F.);\r
--#8655=ORIENTED_EDGE('',*,*,#8654,.F.);\r
--#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));\r
--#8657=FACE_OUTER_BOUND('',#8656,.F.);\r
--#8658=ADVANCED_FACE('',(#8657),#8649,.F.);\r
--#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));\r
--#8660=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8661=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);\r
--#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);\r
--#8664=ORIENTED_EDGE('',*,*,#8640,.T.);\r
--#8665=ORIENTED_EDGE('',*,*,#8654,.T.);\r
--#8666=ORIENTED_EDGE('',*,*,#5574,.F.);\r
--#8667=ORIENTED_EDGE('',*,*,#8651,.F.);\r
--#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));\r
--#8669=FACE_OUTER_BOUND('',#8668,.F.);\r
--#8670=ADVANCED_FACE('',(#8669),#8663,.F.);\r
--#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#8672=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8673=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);\r
--#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);\r
--#8676=ORIENTED_EDGE('',*,*,#6388,.T.);\r
--#8678=ORIENTED_EDGE('',*,*,#8677,.T.);\r
--#8680=ORIENTED_EDGE('',*,*,#8679,.F.);\r
--#8682=ORIENTED_EDGE('',*,*,#8681,.F.);\r
--#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));\r
--#8684=FACE_OUTER_BOUND('',#8683,.F.);\r
--#8685=ADVANCED_FACE('',(#8684),#8675,.F.);\r
--#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#8687=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8688=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);\r
--#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);\r
--#8691=ORIENTED_EDGE('',*,*,#6390,.T.);\r
--#8692=ORIENTED_EDGE('',*,*,#8681,.T.);\r
--#8694=ORIENTED_EDGE('',*,*,#8693,.F.);\r
--#8695=ORIENTED_EDGE('',*,*,#8677,.F.);\r
--#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));\r
--#8697=FACE_OUTER_BOUND('',#8696,.F.);\r
--#8698=ADVANCED_FACE('',(#8697),#8690,.F.);\r
--#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));\r
--#8700=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8701=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);\r
--#8703=PLANE('',#8702);\r
--#8704=ORIENTED_EDGE('',*,*,#8679,.T.);\r
--#8705=ORIENTED_EDGE('',*,*,#8693,.T.);\r
--#8706=EDGE_LOOP('',(#8704,#8705));\r
--#8707=FACE_OUTER_BOUND('',#8706,.F.);\r
--#8709=ORIENTED_EDGE('',*,*,#8708,.F.);\r
--#8711=ORIENTED_EDGE('',*,*,#8710,.F.);\r
--#8712=EDGE_LOOP('',(#8709,#8711));\r
--#8713=FACE_BOUND('',#8712,.F.);\r
--#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);\r
--#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#8716=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8717=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);\r
--#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);\r
--#8720=ORIENTED_EDGE('',*,*,#8708,.T.);\r
--#8722=ORIENTED_EDGE('',*,*,#8721,.T.);\r
--#8723=ORIENTED_EDGE('',*,*,#5566,.F.);\r
--#8725=ORIENTED_EDGE('',*,*,#8724,.F.);\r
--#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));\r
--#8727=FACE_OUTER_BOUND('',#8726,.F.);\r
--#8728=ADVANCED_FACE('',(#8727),#8719,.F.);\r
--#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));\r
--#8730=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8731=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);\r
--#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);\r
--#8734=ORIENTED_EDGE('',*,*,#8710,.T.);\r
--#8735=ORIENTED_EDGE('',*,*,#8724,.T.);\r
--#8736=ORIENTED_EDGE('',*,*,#5568,.F.);\r
--#8737=ORIENTED_EDGE('',*,*,#8721,.F.);\r
--#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));\r
--#8739=FACE_OUTER_BOUND('',#8738,.F.);\r
--#8740=ADVANCED_FACE('',(#8739),#8733,.F.);\r
--#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#8742=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8743=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);\r
--#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);\r
--#8746=ORIENTED_EDGE('',*,*,#6394,.T.);\r
--#8748=ORIENTED_EDGE('',*,*,#8747,.T.);\r
--#8750=ORIENTED_EDGE('',*,*,#8749,.F.);\r
--#8752=ORIENTED_EDGE('',*,*,#8751,.F.);\r
--#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));\r
--#8754=FACE_OUTER_BOUND('',#8753,.F.);\r
--#8755=ADVANCED_FACE('',(#8754),#8745,.F.);\r
--#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#8757=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8758=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);\r
--#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);\r
--#8761=ORIENTED_EDGE('',*,*,#6396,.T.);\r
--#8762=ORIENTED_EDGE('',*,*,#8751,.T.);\r
--#8764=ORIENTED_EDGE('',*,*,#8763,.F.);\r
--#8765=ORIENTED_EDGE('',*,*,#8747,.F.);\r
--#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));\r
--#8767=FACE_OUTER_BOUND('',#8766,.F.);\r
--#8768=ADVANCED_FACE('',(#8767),#8760,.F.);\r
--#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));\r
--#8770=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8771=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);\r
--#8773=PLANE('',#8772);\r
--#8774=ORIENTED_EDGE('',*,*,#8749,.T.);\r
--#8775=ORIENTED_EDGE('',*,*,#8763,.T.);\r
--#8776=EDGE_LOOP('',(#8774,#8775));\r
--#8777=FACE_OUTER_BOUND('',#8776,.F.);\r
--#8779=ORIENTED_EDGE('',*,*,#8778,.F.);\r
--#8781=ORIENTED_EDGE('',*,*,#8780,.F.);\r
--#8782=EDGE_LOOP('',(#8779,#8781));\r
--#8783=FACE_BOUND('',#8782,.F.);\r
--#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);\r
--#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#8786=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8787=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);\r
--#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);\r
--#8790=ORIENTED_EDGE('',*,*,#8778,.T.);\r
--#8792=ORIENTED_EDGE('',*,*,#8791,.T.);\r
--#8793=ORIENTED_EDGE('',*,*,#5554,.F.);\r
--#8795=ORIENTED_EDGE('',*,*,#8794,.F.);\r
--#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));\r
--#8797=FACE_OUTER_BOUND('',#8796,.F.);\r
--#8798=ADVANCED_FACE('',(#8797),#8789,.F.);\r
--#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));\r
--#8800=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8801=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);\r
--#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);\r
--#8804=ORIENTED_EDGE('',*,*,#8780,.T.);\r
--#8805=ORIENTED_EDGE('',*,*,#8794,.T.);\r
--#8806=ORIENTED_EDGE('',*,*,#5556,.F.);\r
--#8807=ORIENTED_EDGE('',*,*,#8791,.F.);\r
--#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));\r
--#8809=FACE_OUTER_BOUND('',#8808,.F.);\r
--#8810=ADVANCED_FACE('',(#8809),#8803,.F.);\r
--#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#8812=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8813=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);\r
--#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);\r
--#8816=ORIENTED_EDGE('',*,*,#6452,.T.);\r
--#8818=ORIENTED_EDGE('',*,*,#8817,.T.);\r
--#8820=ORIENTED_EDGE('',*,*,#8819,.F.);\r
--#8822=ORIENTED_EDGE('',*,*,#8821,.F.);\r
--#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));\r
--#8824=FACE_OUTER_BOUND('',#8823,.F.);\r
--#8825=ADVANCED_FACE('',(#8824),#8815,.F.);\r
--#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#8827=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8828=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);\r
--#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);\r
--#8831=ORIENTED_EDGE('',*,*,#6454,.T.);\r
--#8832=ORIENTED_EDGE('',*,*,#8821,.T.);\r
--#8834=ORIENTED_EDGE('',*,*,#8833,.F.);\r
--#8835=ORIENTED_EDGE('',*,*,#8817,.F.);\r
--#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));\r
--#8837=FACE_OUTER_BOUND('',#8836,.F.);\r
--#8838=ADVANCED_FACE('',(#8837),#8830,.F.);\r
--#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));\r
--#8840=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8841=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);\r
--#8843=PLANE('',#8842);\r
--#8844=ORIENTED_EDGE('',*,*,#8819,.T.);\r
--#8845=ORIENTED_EDGE('',*,*,#8833,.T.);\r
--#8846=EDGE_LOOP('',(#8844,#8845));\r
--#8847=FACE_OUTER_BOUND('',#8846,.F.);\r
--#8849=ORIENTED_EDGE('',*,*,#8848,.F.);\r
--#8851=ORIENTED_EDGE('',*,*,#8850,.F.);\r
--#8852=EDGE_LOOP('',(#8849,#8851));\r
--#8853=FACE_BOUND('',#8852,.F.);\r
--#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);\r
--#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#8856=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8857=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);\r
--#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);\r
--#8860=ORIENTED_EDGE('',*,*,#8848,.T.);\r
--#8862=ORIENTED_EDGE('',*,*,#8861,.T.);\r
--#8863=ORIENTED_EDGE('',*,*,#5690,.F.);\r
--#8865=ORIENTED_EDGE('',*,*,#8864,.F.);\r
--#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));\r
--#8867=FACE_OUTER_BOUND('',#8866,.F.);\r
--#8868=ADVANCED_FACE('',(#8867),#8859,.F.);\r
--#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));\r
--#8870=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8871=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);\r
--#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);\r
--#8874=ORIENTED_EDGE('',*,*,#8850,.T.);\r
--#8875=ORIENTED_EDGE('',*,*,#8864,.T.);\r
--#8876=ORIENTED_EDGE('',*,*,#5692,.F.);\r
--#8877=ORIENTED_EDGE('',*,*,#8861,.F.);\r
--#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));\r
--#8879=FACE_OUTER_BOUND('',#8878,.F.);\r
--#8880=ADVANCED_FACE('',(#8879),#8873,.F.);\r
--#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#8882=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8883=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);\r
--#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);\r
--#8886=ORIENTED_EDGE('',*,*,#6458,.T.);\r
--#8888=ORIENTED_EDGE('',*,*,#8887,.T.);\r
--#8890=ORIENTED_EDGE('',*,*,#8889,.F.);\r
--#8892=ORIENTED_EDGE('',*,*,#8891,.F.);\r
--#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));\r
--#8894=FACE_OUTER_BOUND('',#8893,.F.);\r
--#8895=ADVANCED_FACE('',(#8894),#8885,.F.);\r
--#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#8897=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8898=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);\r
--#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);\r
--#8901=ORIENTED_EDGE('',*,*,#6460,.T.);\r
--#8902=ORIENTED_EDGE('',*,*,#8891,.T.);\r
--#8904=ORIENTED_EDGE('',*,*,#8903,.F.);\r
--#8905=ORIENTED_EDGE('',*,*,#8887,.F.);\r
--#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));\r
--#8907=FACE_OUTER_BOUND('',#8906,.F.);\r
--#8908=ADVANCED_FACE('',(#8907),#8900,.F.);\r
--#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));\r
--#8910=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8911=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);\r
--#8913=PLANE('',#8912);\r
--#8914=ORIENTED_EDGE('',*,*,#8889,.T.);\r
--#8915=ORIENTED_EDGE('',*,*,#8903,.T.);\r
--#8916=EDGE_LOOP('',(#8914,#8915));\r
--#8917=FACE_OUTER_BOUND('',#8916,.F.);\r
--#8919=ORIENTED_EDGE('',*,*,#8918,.F.);\r
--#8921=ORIENTED_EDGE('',*,*,#8920,.F.);\r
--#8922=EDGE_LOOP('',(#8919,#8921));\r
--#8923=FACE_BOUND('',#8922,.F.);\r
--#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);\r
--#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#8926=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8927=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);\r
--#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);\r
--#8930=ORIENTED_EDGE('',*,*,#8918,.T.);\r
--#8932=ORIENTED_EDGE('',*,*,#8931,.T.);\r
--#8933=ORIENTED_EDGE('',*,*,#5696,.F.);\r
--#8935=ORIENTED_EDGE('',*,*,#8934,.F.);\r
--#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));\r
--#8937=FACE_OUTER_BOUND('',#8936,.F.);\r
--#8938=ADVANCED_FACE('',(#8937),#8929,.F.);\r
--#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));\r
--#8940=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8941=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);\r
--#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);\r
--#8944=ORIENTED_EDGE('',*,*,#8920,.T.);\r
--#8945=ORIENTED_EDGE('',*,*,#8934,.T.);\r
--#8946=ORIENTED_EDGE('',*,*,#5698,.F.);\r
--#8947=ORIENTED_EDGE('',*,*,#8931,.F.);\r
--#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));\r
--#8949=FACE_OUTER_BOUND('',#8948,.F.);\r
--#8950=ADVANCED_FACE('',(#8949),#8943,.F.);\r
--#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#8952=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8953=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);\r
--#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);\r
--#8956=ORIENTED_EDGE('',*,*,#6464,.T.);\r
--#8958=ORIENTED_EDGE('',*,*,#8957,.T.);\r
--#8960=ORIENTED_EDGE('',*,*,#8959,.F.);\r
--#8962=ORIENTED_EDGE('',*,*,#8961,.F.);\r
--#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));\r
--#8964=FACE_OUTER_BOUND('',#8963,.F.);\r
--#8965=ADVANCED_FACE('',(#8964),#8955,.F.);\r
--#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#8967=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8968=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);\r
--#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);\r
--#8971=ORIENTED_EDGE('',*,*,#6466,.T.);\r
--#8972=ORIENTED_EDGE('',*,*,#8961,.T.);\r
--#8974=ORIENTED_EDGE('',*,*,#8973,.F.);\r
--#8975=ORIENTED_EDGE('',*,*,#8957,.F.);\r
--#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));\r
--#8977=FACE_OUTER_BOUND('',#8976,.F.);\r
--#8978=ADVANCED_FACE('',(#8977),#8970,.F.);\r
--#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));\r
--#8980=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8981=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);\r
--#8983=PLANE('',#8982);\r
--#8984=ORIENTED_EDGE('',*,*,#8959,.T.);\r
--#8985=ORIENTED_EDGE('',*,*,#8973,.T.);\r
--#8986=EDGE_LOOP('',(#8984,#8985));\r
--#8987=FACE_OUTER_BOUND('',#8986,.F.);\r
--#8989=ORIENTED_EDGE('',*,*,#8988,.F.);\r
--#8991=ORIENTED_EDGE('',*,*,#8990,.F.);\r
--#8992=EDGE_LOOP('',(#8989,#8991));\r
--#8993=FACE_BOUND('',#8992,.F.);\r
--#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);\r
--#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#8996=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#8997=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);\r
--#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);\r
--#9000=ORIENTED_EDGE('',*,*,#8988,.T.);\r
--#9002=ORIENTED_EDGE('',*,*,#9001,.T.);\r
--#9003=ORIENTED_EDGE('',*,*,#5702,.F.);\r
--#9005=ORIENTED_EDGE('',*,*,#9004,.F.);\r
--#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));\r
--#9007=FACE_OUTER_BOUND('',#9006,.F.);\r
--#9008=ADVANCED_FACE('',(#9007),#8999,.F.);\r
--#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));\r
--#9010=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9011=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);\r
--#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);\r
--#9014=ORIENTED_EDGE('',*,*,#8990,.T.);\r
--#9015=ORIENTED_EDGE('',*,*,#9004,.T.);\r
--#9016=ORIENTED_EDGE('',*,*,#5704,.F.);\r
--#9017=ORIENTED_EDGE('',*,*,#9001,.F.);\r
--#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));\r
--#9019=FACE_OUTER_BOUND('',#9018,.F.);\r
--#9020=ADVANCED_FACE('',(#9019),#9013,.F.);\r
--#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#9022=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9023=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);\r
--#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);\r
--#9026=ORIENTED_EDGE('',*,*,#6470,.T.);\r
--#9028=ORIENTED_EDGE('',*,*,#9027,.T.);\r
--#9030=ORIENTED_EDGE('',*,*,#9029,.F.);\r
--#9032=ORIENTED_EDGE('',*,*,#9031,.F.);\r
--#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));\r
--#9034=FACE_OUTER_BOUND('',#9033,.F.);\r
--#9035=ADVANCED_FACE('',(#9034),#9025,.F.);\r
--#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#9037=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9038=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);\r
--#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);\r
--#9041=ORIENTED_EDGE('',*,*,#6472,.T.);\r
--#9042=ORIENTED_EDGE('',*,*,#9031,.T.);\r
--#9044=ORIENTED_EDGE('',*,*,#9043,.F.);\r
--#9045=ORIENTED_EDGE('',*,*,#9027,.F.);\r
--#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));\r
--#9047=FACE_OUTER_BOUND('',#9046,.F.);\r
--#9048=ADVANCED_FACE('',(#9047),#9040,.F.);\r
--#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));\r
--#9050=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9051=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);\r
--#9053=PLANE('',#9052);\r
--#9054=ORIENTED_EDGE('',*,*,#9029,.T.);\r
--#9055=ORIENTED_EDGE('',*,*,#9043,.T.);\r
--#9056=EDGE_LOOP('',(#9054,#9055));\r
--#9057=FACE_OUTER_BOUND('',#9056,.F.);\r
--#9059=ORIENTED_EDGE('',*,*,#9058,.F.);\r
--#9061=ORIENTED_EDGE('',*,*,#9060,.F.);\r
--#9062=EDGE_LOOP('',(#9059,#9061));\r
--#9063=FACE_BOUND('',#9062,.F.);\r
--#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);\r
--#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#9066=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9067=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);\r
--#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);\r
--#9070=ORIENTED_EDGE('',*,*,#9058,.T.);\r
--#9072=ORIENTED_EDGE('',*,*,#9071,.T.);\r
--#9073=ORIENTED_EDGE('',*,*,#5708,.F.);\r
--#9075=ORIENTED_EDGE('',*,*,#9074,.F.);\r
--#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));\r
--#9077=FACE_OUTER_BOUND('',#9076,.F.);\r
--#9078=ADVANCED_FACE('',(#9077),#9069,.F.);\r
--#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));\r
--#9080=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9081=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);\r
--#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);\r
--#9084=ORIENTED_EDGE('',*,*,#9060,.T.);\r
--#9085=ORIENTED_EDGE('',*,*,#9074,.T.);\r
--#9086=ORIENTED_EDGE('',*,*,#5710,.F.);\r
--#9087=ORIENTED_EDGE('',*,*,#9071,.F.);\r
--#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));\r
--#9089=FACE_OUTER_BOUND('',#9088,.F.);\r
--#9090=ADVANCED_FACE('',(#9089),#9083,.F.);\r
--#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#9092=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9093=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);\r
--#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);\r
--#9096=ORIENTED_EDGE('',*,*,#6476,.T.);\r
--#9098=ORIENTED_EDGE('',*,*,#9097,.T.);\r
--#9100=ORIENTED_EDGE('',*,*,#9099,.F.);\r
--#9102=ORIENTED_EDGE('',*,*,#9101,.F.);\r
--#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));\r
--#9104=FACE_OUTER_BOUND('',#9103,.F.);\r
--#9105=ADVANCED_FACE('',(#9104),#9095,.F.);\r
--#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#9107=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9108=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);\r
--#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);\r
--#9111=ORIENTED_EDGE('',*,*,#6478,.T.);\r
--#9112=ORIENTED_EDGE('',*,*,#9101,.T.);\r
--#9114=ORIENTED_EDGE('',*,*,#9113,.F.);\r
--#9115=ORIENTED_EDGE('',*,*,#9097,.F.);\r
--#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));\r
--#9117=FACE_OUTER_BOUND('',#9116,.F.);\r
--#9118=ADVANCED_FACE('',(#9117),#9110,.F.);\r
--#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));\r
--#9120=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9121=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);\r
--#9123=PLANE('',#9122);\r
--#9124=ORIENTED_EDGE('',*,*,#9099,.T.);\r
--#9125=ORIENTED_EDGE('',*,*,#9113,.T.);\r
--#9126=EDGE_LOOP('',(#9124,#9125));\r
--#9127=FACE_OUTER_BOUND('',#9126,.F.);\r
--#9129=ORIENTED_EDGE('',*,*,#9128,.F.);\r
--#9131=ORIENTED_EDGE('',*,*,#9130,.F.);\r
--#9132=EDGE_LOOP('',(#9129,#9131));\r
--#9133=FACE_BOUND('',#9132,.F.);\r
--#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);\r
--#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#9136=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9137=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);\r
--#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);\r
--#9140=ORIENTED_EDGE('',*,*,#9128,.T.);\r
--#9142=ORIENTED_EDGE('',*,*,#9141,.T.);\r
--#9143=ORIENTED_EDGE('',*,*,#5714,.F.);\r
--#9145=ORIENTED_EDGE('',*,*,#9144,.F.);\r
--#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));\r
--#9147=FACE_OUTER_BOUND('',#9146,.F.);\r
--#9148=ADVANCED_FACE('',(#9147),#9139,.F.);\r
--#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));\r
--#9150=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9151=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);\r
--#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);\r
--#9154=ORIENTED_EDGE('',*,*,#9130,.T.);\r
--#9155=ORIENTED_EDGE('',*,*,#9144,.T.);\r
--#9156=ORIENTED_EDGE('',*,*,#5716,.F.);\r
--#9157=ORIENTED_EDGE('',*,*,#9141,.F.);\r
--#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));\r
--#9159=FACE_OUTER_BOUND('',#9158,.F.);\r
--#9160=ADVANCED_FACE('',(#9159),#9153,.F.);\r
--#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#9162=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9163=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);\r
--#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);\r
--#9166=ORIENTED_EDGE('',*,*,#6482,.T.);\r
--#9168=ORIENTED_EDGE('',*,*,#9167,.T.);\r
--#9170=ORIENTED_EDGE('',*,*,#9169,.F.);\r
--#9172=ORIENTED_EDGE('',*,*,#9171,.F.);\r
--#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));\r
--#9174=FACE_OUTER_BOUND('',#9173,.F.);\r
--#9175=ADVANCED_FACE('',(#9174),#9165,.F.);\r
--#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#9177=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9178=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);\r
--#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);\r
--#9181=ORIENTED_EDGE('',*,*,#6484,.T.);\r
--#9182=ORIENTED_EDGE('',*,*,#9171,.T.);\r
--#9184=ORIENTED_EDGE('',*,*,#9183,.F.);\r
--#9185=ORIENTED_EDGE('',*,*,#9167,.F.);\r
--#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));\r
--#9187=FACE_OUTER_BOUND('',#9186,.F.);\r
--#9188=ADVANCED_FACE('',(#9187),#9180,.F.);\r
--#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));\r
--#9190=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9191=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);\r
--#9193=PLANE('',#9192);\r
--#9194=ORIENTED_EDGE('',*,*,#9169,.T.);\r
--#9195=ORIENTED_EDGE('',*,*,#9183,.T.);\r
--#9196=EDGE_LOOP('',(#9194,#9195));\r
--#9197=FACE_OUTER_BOUND('',#9196,.F.);\r
--#9199=ORIENTED_EDGE('',*,*,#9198,.F.);\r
--#9201=ORIENTED_EDGE('',*,*,#9200,.F.);\r
--#9202=EDGE_LOOP('',(#9199,#9201));\r
--#9203=FACE_BOUND('',#9202,.F.);\r
--#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);\r
--#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#9206=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9207=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);\r
--#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);\r
--#9210=ORIENTED_EDGE('',*,*,#9198,.T.);\r
--#9212=ORIENTED_EDGE('',*,*,#9211,.T.);\r
--#9213=ORIENTED_EDGE('',*,*,#5720,.F.);\r
--#9215=ORIENTED_EDGE('',*,*,#9214,.F.);\r
--#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));\r
--#9217=FACE_OUTER_BOUND('',#9216,.F.);\r
--#9218=ADVANCED_FACE('',(#9217),#9209,.F.);\r
--#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));\r
--#9220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9221=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);\r
--#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);\r
--#9224=ORIENTED_EDGE('',*,*,#9200,.T.);\r
--#9225=ORIENTED_EDGE('',*,*,#9214,.T.);\r
--#9226=ORIENTED_EDGE('',*,*,#5722,.F.);\r
--#9227=ORIENTED_EDGE('',*,*,#9211,.F.);\r
--#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));\r
--#9229=FACE_OUTER_BOUND('',#9228,.F.);\r
--#9230=ADVANCED_FACE('',(#9229),#9223,.F.);\r
--#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));\r
--#9232=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9233=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);\r
--#9235=PLANE('',#9234);\r
--#9236=ORIENTED_EDGE('',*,*,#6328,.T.);\r
--#9237=ORIENTED_EDGE('',*,*,#6155,.T.);\r
--#9239=ORIENTED_EDGE('',*,*,#9238,.T.);\r
--#9240=EDGE_LOOP('',(#9236,#9237,#9239));\r
--#9241=FACE_OUTER_BOUND('',#9240,.F.);\r
--#9242=ADVANCED_FACE('',(#9241),#9235,.F.);\r
--#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));\r
--#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));\r
--#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));\r
--#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);\r
--#9247=PLANE('',#9246);\r
--#9248=ORIENTED_EDGE('',*,*,#6330,.T.);\r
--#9249=ORIENTED_EDGE('',*,*,#9238,.F.);\r
--#9250=ORIENTED_EDGE('',*,*,#6153,.F.);\r
--#9251=ORIENTED_EDGE('',*,*,#6209,.T.);\r
--#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));\r
--#9253=FACE_OUTER_BOUND('',#9252,.F.);\r
--#9255=ORIENTED_EDGE('',*,*,#9254,.F.);\r
--#9257=ORIENTED_EDGE('',*,*,#9256,.F.);\r
--#9258=EDGE_LOOP('',(#9255,#9257));\r
--#9259=FACE_BOUND('',#9258,.F.);\r
--#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);\r
--#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
--#9262=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9263=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);\r
--#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);\r
--#9267=ORIENTED_EDGE('',*,*,#9266,.F.);\r
--#9268=ORIENTED_EDGE('',*,*,#9254,.T.);\r
--#9270=ORIENTED_EDGE('',*,*,#9269,.F.);\r
--#9272=ORIENTED_EDGE('',*,*,#9271,.F.);\r
--#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));\r
--#9274=FACE_OUTER_BOUND('',#9273,.F.);\r
--#9275=ADVANCED_FACE('',(#9274),#9265,.F.);\r
--#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
--#9277=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9278=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);\r
--#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);\r
--#9281=ORIENTED_EDGE('',*,*,#9269,.T.);\r
--#9282=ORIENTED_EDGE('',*,*,#9256,.T.);\r
--#9283=ORIENTED_EDGE('',*,*,#9266,.T.);\r
--#9285=ORIENTED_EDGE('',*,*,#9284,.F.);\r
--#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));\r
--#9287=FACE_OUTER_BOUND('',#9286,.F.);\r
--#9288=ADVANCED_FACE('',(#9287),#9280,.F.);\r
--#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));\r
--#9290=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9291=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);\r
--#9293=PLANE('',#9292);\r
--#9294=ORIENTED_EDGE('',*,*,#9271,.T.);\r
--#9295=ORIENTED_EDGE('',*,*,#9284,.T.);\r
--#9296=EDGE_LOOP('',(#9294,#9295));\r
--#9297=FACE_OUTER_BOUND('',#9296,.F.);\r
--#9299=ORIENTED_EDGE('',*,*,#9298,.F.);\r
--#9301=ORIENTED_EDGE('',*,*,#9300,.F.);\r
--#9302=EDGE_LOOP('',(#9299,#9301));\r
--#9303=FACE_BOUND('',#9302,.F.);\r
--#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);\r
--#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
--#9306=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9307=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);\r
--#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);\r
--#9310=ORIENTED_EDGE('',*,*,#9298,.T.);\r
--#9312=ORIENTED_EDGE('',*,*,#9311,.T.);\r
--#9313=ORIENTED_EDGE('',*,*,#5596,.F.);\r
--#9315=ORIENTED_EDGE('',*,*,#9314,.F.);\r
--#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));\r
--#9317=FACE_OUTER_BOUND('',#9316,.F.);\r
--#9318=ADVANCED_FACE('',(#9317),#9309,.F.);\r
--#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));\r
--#9320=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9321=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);\r
--#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);\r
--#9324=ORIENTED_EDGE('',*,*,#9300,.T.);\r
--#9325=ORIENTED_EDGE('',*,*,#9314,.T.);\r
--#9326=ORIENTED_EDGE('',*,*,#5598,.F.);\r
--#9327=ORIENTED_EDGE('',*,*,#9311,.F.);\r
--#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));\r
--#9329=FACE_OUTER_BOUND('',#9328,.F.);\r
--#9330=ADVANCED_FACE('',(#9329),#9323,.F.);\r
--#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));\r
--#9332=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9333=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);\r
--#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);\r
--#9337=ORIENTED_EDGE('',*,*,#9336,.T.);\r
--#9339=ORIENTED_EDGE('',*,*,#9338,.T.);\r
--#9341=ORIENTED_EDGE('',*,*,#9340,.F.);\r
--#9342=ORIENTED_EDGE('',*,*,#6175,.T.);\r
--#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));\r
--#9344=FACE_OUTER_BOUND('',#9343,.F.);\r
--#9345=ADVANCED_FACE('',(#9344),#9335,.T.);\r
--#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));\r
--#9347=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9348=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);\r
--#9350=PLANE('',#9349);\r
--#9351=ORIENTED_EDGE('',*,*,#9336,.F.);\r
--#9352=ORIENTED_EDGE('',*,*,#6197,.T.);\r
--#9354=ORIENTED_EDGE('',*,*,#9353,.F.);\r
--#9356=ORIENTED_EDGE('',*,*,#9355,.F.);\r
--#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));\r
--#9358=FACE_OUTER_BOUND('',#9357,.F.);\r
--#9359=ADVANCED_FACE('',(#9358),#9350,.T.);\r
--#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));\r
--#9361=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));\r
--#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);\r
--#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);\r
--#9366=ORIENTED_EDGE('',*,*,#9365,.F.);\r
--#9368=ORIENTED_EDGE('',*,*,#9367,.T.);\r
--#9369=ORIENTED_EDGE('',*,*,#9353,.T.);\r
--#9370=ORIENTED_EDGE('',*,*,#6195,.T.);\r
--#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));\r
--#9372=FACE_OUTER_BOUND('',#9371,.F.);\r
--#9373=ADVANCED_FACE('',(#9372),#9364,.F.);\r
--#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));\r
--#9375=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9376=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);\r
--#9378=PLANE('',#9377);\r
--#9379=ORIENTED_EDGE('',*,*,#9365,.T.);\r
--#9380=ORIENTED_EDGE('',*,*,#6193,.T.);\r
--#9382=ORIENTED_EDGE('',*,*,#9381,.F.);\r
--#9384=ORIENTED_EDGE('',*,*,#9383,.F.);\r
--#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));\r
--#9386=FACE_OUTER_BOUND('',#9385,.F.);\r
--#9387=ADVANCED_FACE('',(#9386),#9378,.T.);\r
--#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));\r
--#9389=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9390=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);\r
--#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);\r
--#9394=ORIENTED_EDGE('',*,*,#9393,.F.);\r
--#9396=ORIENTED_EDGE('',*,*,#9395,.T.);\r
--#9397=ORIENTED_EDGE('',*,*,#9381,.T.);\r
--#9398=ORIENTED_EDGE('',*,*,#6191,.T.);\r
--#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));\r
--#9400=FACE_OUTER_BOUND('',#9399,.F.);\r
--#9401=ADVANCED_FACE('',(#9400),#9392,.F.);\r
--#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));\r
--#9403=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9404=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);\r
--#9406=PLANE('',#9405);\r
--#9407=ORIENTED_EDGE('',*,*,#9393,.T.);\r
--#9408=ORIENTED_EDGE('',*,*,#6189,.T.);\r
--#9410=ORIENTED_EDGE('',*,*,#9409,.F.);\r
--#9412=ORIENTED_EDGE('',*,*,#9411,.F.);\r
--#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));\r
--#9414=FACE_OUTER_BOUND('',#9413,.F.);\r
--#9415=ADVANCED_FACE('',(#9414),#9406,.T.);\r
--#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));\r
--#9417=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));\r
--#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);\r
--#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);\r
--#9422=ORIENTED_EDGE('',*,*,#9421,.F.);\r
--#9424=ORIENTED_EDGE('',*,*,#9423,.T.);\r
--#9425=ORIENTED_EDGE('',*,*,#9409,.T.);\r
--#9426=ORIENTED_EDGE('',*,*,#6187,.T.);\r
--#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));\r
--#9428=FACE_OUTER_BOUND('',#9427,.F.);\r
--#9429=ADVANCED_FACE('',(#9428),#9420,.F.);\r
--#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));\r
--#9431=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9432=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);\r
--#9434=PLANE('',#9433);\r
--#9436=ORIENTED_EDGE('',*,*,#9435,.F.);\r
--#9438=ORIENTED_EDGE('',*,*,#9437,.F.);\r
--#9439=ORIENTED_EDGE('',*,*,#9421,.T.);\r
--#9440=ORIENTED_EDGE('',*,*,#6185,.T.);\r
--#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));\r
--#9442=FACE_OUTER_BOUND('',#9441,.F.);\r
--#9443=ADVANCED_FACE('',(#9442),#9434,.T.);\r
--#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));\r
--#9445=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);\r
--#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);\r
--#9450=ORIENTED_EDGE('',*,*,#9449,.F.);\r
--#9452=ORIENTED_EDGE('',*,*,#9451,.T.);\r
--#9453=ORIENTED_EDGE('',*,*,#9435,.T.);\r
--#9454=ORIENTED_EDGE('',*,*,#6183,.T.);\r
--#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));\r
--#9456=FACE_OUTER_BOUND('',#9455,.F.);\r
--#9457=ADVANCED_FACE('',(#9456),#9448,.F.);\r
--#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));\r
--#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
--#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));\r
--#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);\r
--#9462=PLANE('',#9461);\r
--#9464=ORIENTED_EDGE('',*,*,#9463,.F.);\r
--#9466=ORIENTED_EDGE('',*,*,#9465,.F.);\r
--#9467=ORIENTED_EDGE('',*,*,#9449,.T.);\r
--#9468=ORIENTED_EDGE('',*,*,#6181,.T.);\r
--#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));\r
--#9470=FACE_OUTER_BOUND('',#9469,.F.);\r
--#9471=ADVANCED_FACE('',(#9470),#9462,.T.);\r
--#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));\r
--#9473=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9474=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);\r
--#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);\r
--#9478=ORIENTED_EDGE('',*,*,#9477,.F.);\r
--#9480=ORIENTED_EDGE('',*,*,#9479,.T.);\r
--#9481=ORIENTED_EDGE('',*,*,#9463,.T.);\r
--#9482=ORIENTED_EDGE('',*,*,#6179,.T.);\r
--#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));\r
--#9484=FACE_OUTER_BOUND('',#9483,.F.);\r
--#9485=ADVANCED_FACE('',(#9484),#9476,.F.);\r
--#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));\r
--#9487=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9488=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);\r
--#9490=PLANE('',#9489);\r
--#9491=ORIENTED_EDGE('',*,*,#9340,.T.);\r
--#9493=ORIENTED_EDGE('',*,*,#9492,.F.);\r
--#9494=ORIENTED_EDGE('',*,*,#9477,.T.);\r
--#9495=ORIENTED_EDGE('',*,*,#6177,.T.);\r
--#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));\r
--#9497=FACE_OUTER_BOUND('',#9496,.F.);\r
--#9498=ADVANCED_FACE('',(#9497),#9490,.T.);\r
--#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));\r
--#9500=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9501=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);\r
--#9503=PLANE('',#9502);\r
--#9504=ORIENTED_EDGE('',*,*,#9492,.T.);\r
--#9505=ORIENTED_EDGE('',*,*,#9338,.F.);\r
--#9506=ORIENTED_EDGE('',*,*,#9355,.T.);\r
--#9507=ORIENTED_EDGE('',*,*,#9367,.F.);\r
--#9508=ORIENTED_EDGE('',*,*,#9383,.T.);\r
--#9509=ORIENTED_EDGE('',*,*,#9395,.F.);\r
--#9510=ORIENTED_EDGE('',*,*,#9411,.T.);\r
--#9511=ORIENTED_EDGE('',*,*,#9423,.F.);\r
--#9512=ORIENTED_EDGE('',*,*,#9437,.T.);\r
--#9513=ORIENTED_EDGE('',*,*,#9451,.F.);\r
--#9514=ORIENTED_EDGE('',*,*,#9465,.T.);\r
--#9515=ORIENTED_EDGE('',*,*,#9479,.F.);\r
--#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,\r
--#9514,#9515));\r
--#9517=FACE_OUTER_BOUND('',#9516,.F.);\r
--#9518=ADVANCED_FACE('',(#9517),#9503,.F.);\r
--#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
--#9520=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9521=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);\r
--#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);\r
--#9524=ORIENTED_EDGE('',*,*,#6007,.F.);\r
--#9526=ORIENTED_EDGE('',*,*,#9525,.T.);\r
--#9528=ORIENTED_EDGE('',*,*,#9527,.T.);\r
--#9530=ORIENTED_EDGE('',*,*,#9529,.F.);\r
--#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));\r
--#9532=FACE_OUTER_BOUND('',#9531,.F.);\r
--#9533=ADVANCED_FACE('',(#9532),#9523,.F.);\r
--#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));\r
--#9535=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9536=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);\r
--#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);\r
--#9539=ORIENTED_EDGE('',*,*,#6009,.F.);\r
--#9540=ORIENTED_EDGE('',*,*,#9529,.T.);\r
--#9542=ORIENTED_EDGE('',*,*,#9541,.T.);\r
--#9543=ORIENTED_EDGE('',*,*,#9525,.F.);\r
--#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));\r
--#9545=FACE_OUTER_BOUND('',#9544,.F.);\r
--#9546=ADVANCED_FACE('',(#9545),#9538,.F.);\r
--#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));\r
--#9548=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9549=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);\r
--#9551=PLANE('',#9550);\r
--#9552=ORIENTED_EDGE('',*,*,#9527,.F.);\r
--#9553=ORIENTED_EDGE('',*,*,#9541,.F.);\r
--#9554=EDGE_LOOP('',(#9552,#9553));\r
--#9555=FACE_OUTER_BOUND('',#9554,.F.);\r
--#9556=ADVANCED_FACE('',(#9555),#9551,.T.);\r
--#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
--#9558=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9559=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);\r
--#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);\r
--#9562=ORIENTED_EDGE('',*,*,#6013,.F.);\r
--#9564=ORIENTED_EDGE('',*,*,#9563,.T.);\r
--#9566=ORIENTED_EDGE('',*,*,#9565,.T.);\r
--#9568=ORIENTED_EDGE('',*,*,#9567,.F.);\r
--#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));\r
--#9570=FACE_OUTER_BOUND('',#9569,.F.);\r
--#9571=ADVANCED_FACE('',(#9570),#9561,.F.);\r
--#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));\r
--#9573=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9574=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);\r
--#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);\r
--#9577=ORIENTED_EDGE('',*,*,#6015,.F.);\r
--#9578=ORIENTED_EDGE('',*,*,#9567,.T.);\r
--#9580=ORIENTED_EDGE('',*,*,#9579,.T.);\r
--#9581=ORIENTED_EDGE('',*,*,#9563,.F.);\r
--#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));\r
--#9583=FACE_OUTER_BOUND('',#9582,.F.);\r
--#9584=ADVANCED_FACE('',(#9583),#9576,.F.);\r
--#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));\r
--#9586=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9587=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);\r
--#9589=PLANE('',#9588);\r
--#9590=ORIENTED_EDGE('',*,*,#9565,.F.);\r
--#9591=ORIENTED_EDGE('',*,*,#9579,.F.);\r
--#9592=EDGE_LOOP('',(#9590,#9591));\r
--#9593=FACE_OUTER_BOUND('',#9592,.F.);\r
--#9594=ADVANCED_FACE('',(#9593),#9589,.T.);\r
--#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
--#9596=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9597=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);\r
--#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);\r
--#9600=ORIENTED_EDGE('',*,*,#6019,.T.);\r
--#9602=ORIENTED_EDGE('',*,*,#9601,.T.);\r
--#9604=ORIENTED_EDGE('',*,*,#9603,.F.);\r
--#9606=ORIENTED_EDGE('',*,*,#9605,.F.);\r
--#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));\r
--#9608=FACE_OUTER_BOUND('',#9607,.F.);\r
--#9609=ADVANCED_FACE('',(#9608),#9599,.F.);\r
--#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));\r
--#9611=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9612=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);\r
--#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);\r
--#9615=ORIENTED_EDGE('',*,*,#6021,.T.);\r
--#9616=ORIENTED_EDGE('',*,*,#9605,.T.);\r
--#9618=ORIENTED_EDGE('',*,*,#9617,.F.);\r
--#9619=ORIENTED_EDGE('',*,*,#9601,.F.);\r
--#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));\r
--#9621=FACE_OUTER_BOUND('',#9620,.F.);\r
--#9622=ADVANCED_FACE('',(#9621),#9614,.F.);\r
--#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));\r
--#9624=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9625=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);\r
--#9627=PLANE('',#9626);\r
--#9628=ORIENTED_EDGE('',*,*,#9603,.T.);\r
--#9629=ORIENTED_EDGE('',*,*,#9617,.T.);\r
--#9630=EDGE_LOOP('',(#9628,#9629));\r
--#9631=FACE_OUTER_BOUND('',#9630,.F.);\r
--#9632=ADVANCED_FACE('',(#9631),#9627,.F.);\r
--#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
--#9634=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9635=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);\r
--#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);\r
--#9638=ORIENTED_EDGE('',*,*,#6025,.T.);\r
--#9640=ORIENTED_EDGE('',*,*,#9639,.T.);\r
--#9642=ORIENTED_EDGE('',*,*,#9641,.F.);\r
--#9644=ORIENTED_EDGE('',*,*,#9643,.F.);\r
--#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));\r
--#9646=FACE_OUTER_BOUND('',#9645,.F.);\r
--#9647=ADVANCED_FACE('',(#9646),#9637,.F.);\r
--#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));\r
--#9649=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9650=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);\r
--#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);\r
--#9653=ORIENTED_EDGE('',*,*,#6027,.T.);\r
--#9654=ORIENTED_EDGE('',*,*,#9643,.T.);\r
--#9656=ORIENTED_EDGE('',*,*,#9655,.F.);\r
--#9657=ORIENTED_EDGE('',*,*,#9639,.F.);\r
--#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));\r
--#9659=FACE_OUTER_BOUND('',#9658,.F.);\r
--#9660=ADVANCED_FACE('',(#9659),#9652,.F.);\r
--#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));\r
--#9662=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9663=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);\r
--#9665=PLANE('',#9664);\r
--#9666=ORIENTED_EDGE('',*,*,#9641,.T.);\r
--#9667=ORIENTED_EDGE('',*,*,#9655,.T.);\r
--#9668=EDGE_LOOP('',(#9666,#9667));\r
--#9669=FACE_OUTER_BOUND('',#9668,.F.);\r
--#9670=ADVANCED_FACE('',(#9669),#9665,.F.);\r
--#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
--#9672=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9673=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);\r
--#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);\r
--#9676=ORIENTED_EDGE('',*,*,#6037,.T.);\r
--#9678=ORIENTED_EDGE('',*,*,#9677,.T.);\r
--#9680=ORIENTED_EDGE('',*,*,#9679,.F.);\r
--#9682=ORIENTED_EDGE('',*,*,#9681,.F.);\r
--#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));\r
--#9684=FACE_OUTER_BOUND('',#9683,.F.);\r
--#9685=ADVANCED_FACE('',(#9684),#9675,.F.);\r
--#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));\r
--#9687=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9688=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);\r
--#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);\r
--#9691=ORIENTED_EDGE('',*,*,#6039,.T.);\r
--#9692=ORIENTED_EDGE('',*,*,#9681,.T.);\r
--#9694=ORIENTED_EDGE('',*,*,#9693,.F.);\r
--#9695=ORIENTED_EDGE('',*,*,#9677,.F.);\r
--#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));\r
--#9697=FACE_OUTER_BOUND('',#9696,.F.);\r
--#9698=ADVANCED_FACE('',(#9697),#9690,.F.);\r
--#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));\r
--#9700=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9701=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);\r
--#9703=PLANE('',#9702);\r
--#9704=ORIENTED_EDGE('',*,*,#9679,.T.);\r
--#9705=ORIENTED_EDGE('',*,*,#9693,.T.);\r
--#9706=EDGE_LOOP('',(#9704,#9705));\r
--#9707=FACE_OUTER_BOUND('',#9706,.F.);\r
--#9708=ADVANCED_FACE('',(#9707),#9703,.F.);\r
--#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));\r
--#9710=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9711=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);\r
--#9713=PLANE('',#9712);\r
--#9715=ORIENTED_EDGE('',*,*,#9714,.T.);\r
--#9717=ORIENTED_EDGE('',*,*,#9716,.T.);\r
--#9719=ORIENTED_EDGE('',*,*,#9718,.F.);\r
--#9720=ORIENTED_EDGE('',*,*,#6043,.F.);\r
--#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));\r
--#9722=FACE_OUTER_BOUND('',#9721,.F.);\r
--#9723=ADVANCED_FACE('',(#9722),#9713,.F.);\r
--#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));\r
--#9725=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9726=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);\r
--#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);\r
--#9729=ORIENTED_EDGE('',*,*,#9714,.F.);\r
--#9730=ORIENTED_EDGE('',*,*,#6057,.T.);\r
--#9732=ORIENTED_EDGE('',*,*,#9731,.T.);\r
--#9734=ORIENTED_EDGE('',*,*,#9733,.T.);\r
--#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));\r
--#9736=FACE_OUTER_BOUND('',#9735,.F.);\r
--#9737=ADVANCED_FACE('',(#9736),#9728,.F.);\r
--#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));\r
--#9739=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9740=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);\r
--#9742=PLANE('',#9741);\r
--#9743=ORIENTED_EDGE('',*,*,#9731,.F.);\r
--#9744=ORIENTED_EDGE('',*,*,#6055,.F.);\r
--#9746=ORIENTED_EDGE('',*,*,#9745,.T.);\r
--#9748=ORIENTED_EDGE('',*,*,#9747,.T.);\r
--#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));\r
--#9750=FACE_OUTER_BOUND('',#9749,.F.);\r
--#9751=ADVANCED_FACE('',(#9750),#9742,.F.);\r
--#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));\r
--#9753=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9754=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);\r
--#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);\r
--#9757=ORIENTED_EDGE('',*,*,#9745,.F.);\r
--#9758=ORIENTED_EDGE('',*,*,#6053,.T.);\r
--#9760=ORIENTED_EDGE('',*,*,#9759,.T.);\r
--#9762=ORIENTED_EDGE('',*,*,#9761,.T.);\r
--#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));\r
--#9764=FACE_OUTER_BOUND('',#9763,.F.);\r
--#9765=ADVANCED_FACE('',(#9764),#9756,.F.);\r
--#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));\r
--#9767=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9768=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);\r
--#9770=PLANE('',#9769);\r
--#9772=ORIENTED_EDGE('',*,*,#9771,.T.);\r
--#9774=ORIENTED_EDGE('',*,*,#9773,.T.);\r
--#9775=ORIENTED_EDGE('',*,*,#9759,.F.);\r
--#9776=ORIENTED_EDGE('',*,*,#6051,.F.);\r
--#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));\r
--#9778=FACE_OUTER_BOUND('',#9777,.F.);\r
--#9779=ADVANCED_FACE('',(#9778),#9770,.F.);\r
--#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));\r
--#9781=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9782=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);\r
--#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);\r
--#9785=ORIENTED_EDGE('',*,*,#9771,.F.);\r
--#9786=ORIENTED_EDGE('',*,*,#6049,.T.);\r
--#9788=ORIENTED_EDGE('',*,*,#9787,.T.);\r
--#9790=ORIENTED_EDGE('',*,*,#9789,.T.);\r
--#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));\r
--#9792=FACE_OUTER_BOUND('',#9791,.F.);\r
--#9793=ADVANCED_FACE('',(#9792),#9784,.F.);\r
--#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));\r
--#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);\r
--#9798=PLANE('',#9797);\r
--#9800=ORIENTED_EDGE('',*,*,#9799,.T.);\r
--#9802=ORIENTED_EDGE('',*,*,#9801,.T.);\r
--#9803=ORIENTED_EDGE('',*,*,#9787,.F.);\r
--#9804=ORIENTED_EDGE('',*,*,#6047,.F.);\r
--#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));\r
--#9806=FACE_OUTER_BOUND('',#9805,.F.);\r
--#9807=ADVANCED_FACE('',(#9806),#9798,.F.);\r
--#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));\r
--#9809=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);\r
--#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);\r
--#9813=ORIENTED_EDGE('',*,*,#9799,.F.);\r
--#9814=ORIENTED_EDGE('',*,*,#6045,.T.);\r
--#9815=ORIENTED_EDGE('',*,*,#9718,.T.);\r
--#9817=ORIENTED_EDGE('',*,*,#9816,.T.);\r
--#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));\r
--#9819=FACE_OUTER_BOUND('',#9818,.F.);\r
--#9820=ADVANCED_FACE('',(#9819),#9812,.F.);\r
--#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));\r
--#9822=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9823=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);\r
--#9825=PLANE('',#9824);\r
--#9826=ORIENTED_EDGE('',*,*,#9733,.F.);\r
--#9827=ORIENTED_EDGE('',*,*,#9747,.F.);\r
--#9828=ORIENTED_EDGE('',*,*,#9761,.F.);\r
--#9829=ORIENTED_EDGE('',*,*,#9773,.F.);\r
--#9830=ORIENTED_EDGE('',*,*,#9789,.F.);\r
--#9831=ORIENTED_EDGE('',*,*,#9801,.F.);\r
--#9832=ORIENTED_EDGE('',*,*,#9816,.F.);\r
--#9833=ORIENTED_EDGE('',*,*,#9716,.F.);\r
--#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));\r
--#9835=FACE_OUTER_BOUND('',#9834,.F.);\r
--#9836=ADVANCED_FACE('',(#9835),#9825,.T.);\r
--#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));\r
--#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));\r
--#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));\r
--#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);\r
--#9841=PLANE('',#9840);\r
--#9843=ORIENTED_EDGE('',*,*,#9842,.T.);\r
--#9844=ORIENTED_EDGE('',*,*,#6061,.T.);\r
--#9846=ORIENTED_EDGE('',*,*,#9845,.F.);\r
--#9848=ORIENTED_EDGE('',*,*,#9847,.F.);\r
--#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));\r
--#9850=FACE_OUTER_BOUND('',#9849,.F.);\r
--#9851=ADVANCED_FACE('',(#9850),#9841,.T.);\r
--#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));\r
--#9853=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));\r
--#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);\r
--#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);\r
--#9857=ORIENTED_EDGE('',*,*,#9842,.F.);\r
--#9859=ORIENTED_EDGE('',*,*,#9858,.T.);\r
--#9861=ORIENTED_EDGE('',*,*,#9860,.T.);\r
--#9862=ORIENTED_EDGE('',*,*,#6063,.T.);\r
--#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));\r
--#9864=FACE_OUTER_BOUND('',#9863,.F.);\r
--#9865=ADVANCED_FACE('',(#9864),#9856,.F.);\r
--#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));\r
--#9867=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9868=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);\r
--#9870=PLANE('',#9869);\r
--#9872=ORIENTED_EDGE('',*,*,#9871,.F.);\r
--#9874=ORIENTED_EDGE('',*,*,#9873,.T.);\r
--#9875=ORIENTED_EDGE('',*,*,#9858,.F.);\r
--#9876=ORIENTED_EDGE('',*,*,#9847,.T.);\r
--#9878=ORIENTED_EDGE('',*,*,#9877,.F.);\r
--#9880=ORIENTED_EDGE('',*,*,#9879,.T.);\r
--#9882=ORIENTED_EDGE('',*,*,#9881,.F.);\r
--#9884=ORIENTED_EDGE('',*,*,#9883,.T.);\r
--#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));\r
--#9886=FACE_OUTER_BOUND('',#9885,.F.);\r
--#9887=ADVANCED_FACE('',(#9886),#9870,.F.);\r
--#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));\r
--#9889=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9890=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);\r
--#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);\r
--#9894=ORIENTED_EDGE('',*,*,#9893,.F.);\r
--#9895=ORIENTED_EDGE('',*,*,#9871,.T.);\r
--#9897=ORIENTED_EDGE('',*,*,#9896,.T.);\r
--#9898=ORIENTED_EDGE('',*,*,#6067,.T.);\r
--#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));\r
--#9900=FACE_OUTER_BOUND('',#9899,.F.);\r
--#9901=ADVANCED_FACE('',(#9900),#9892,.F.);\r
--#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));\r
--#9903=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9904=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);\r
--#9906=PLANE('',#9905);\r
--#9907=ORIENTED_EDGE('',*,*,#9893,.T.);\r
--#9908=ORIENTED_EDGE('',*,*,#6065,.T.);\r
--#9909=ORIENTED_EDGE('',*,*,#9860,.F.);\r
--#9910=ORIENTED_EDGE('',*,*,#9873,.F.);\r
--#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));\r
--#9912=FACE_OUTER_BOUND('',#9911,.F.);\r
--#9913=ADVANCED_FACE('',(#9912),#9906,.T.);\r
--#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));\r
--#9915=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9916=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);\r
--#9918=PLANE('',#9917);\r
--#9919=ORIENTED_EDGE('',*,*,#9896,.F.);\r
--#9920=ORIENTED_EDGE('',*,*,#9883,.F.);\r
--#9922=ORIENTED_EDGE('',*,*,#9921,.T.);\r
--#9923=ORIENTED_EDGE('',*,*,#6069,.T.);\r
--#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));\r
--#9925=FACE_OUTER_BOUND('',#9924,.F.);\r
--#9926=ADVANCED_FACE('',(#9925),#9918,.T.);\r
--#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));\r
--#9928=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9929=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);\r
--#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);\r
--#9932=ORIENTED_EDGE('',*,*,#9921,.F.);\r
--#9933=ORIENTED_EDGE('',*,*,#9881,.T.);\r
--#9935=ORIENTED_EDGE('',*,*,#9934,.T.);\r
--#9936=ORIENTED_EDGE('',*,*,#6071,.T.);\r
--#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));\r
--#9938=FACE_OUTER_BOUND('',#9937,.F.);\r
--#9939=ADVANCED_FACE('',(#9938),#9931,.F.);\r
--#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));\r
--#9941=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9942=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);\r
--#9944=PLANE('',#9943);\r
--#9946=ORIENTED_EDGE('',*,*,#9945,.T.);\r
--#9947=ORIENTED_EDGE('',*,*,#6073,.T.);\r
--#9948=ORIENTED_EDGE('',*,*,#9934,.F.);\r
--#9949=ORIENTED_EDGE('',*,*,#9879,.F.);\r
--#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));\r
--#9951=FACE_OUTER_BOUND('',#9950,.F.);\r
--#9952=ADVANCED_FACE('',(#9951),#9944,.T.);\r
--#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));\r
--#9954=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9955=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);\r
--#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);\r
--#9958=ORIENTED_EDGE('',*,*,#9945,.F.);\r
--#9959=ORIENTED_EDGE('',*,*,#9877,.T.);\r
--#9960=ORIENTED_EDGE('',*,*,#9845,.T.);\r
--#9961=ORIENTED_EDGE('',*,*,#6075,.T.);\r
--#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));\r
--#9963=FACE_OUTER_BOUND('',#9962,.F.);\r
--#9964=ADVANCED_FACE('',(#9963),#9957,.F.);\r
--#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));\r
--#9966=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#9967=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);\r
--#9969=PLANE('',#9968);\r
--#9970=ORIENTED_EDGE('',*,*,#5726,.F.);\r
--#9972=ORIENTED_EDGE('',*,*,#9971,.T.);\r
--#9974=ORIENTED_EDGE('',*,*,#9973,.T.);\r
--#9976=ORIENTED_EDGE('',*,*,#9975,.F.);\r
--#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));\r
--#9978=FACE_OUTER_BOUND('',#9977,.F.);\r
--#9979=ADVANCED_FACE('',(#9978),#9969,.F.);\r
--#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));\r
--#9981=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#9982=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);\r
--#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);\r
--#9985=ORIENTED_EDGE('',*,*,#5732,.F.);\r
--#9987=ORIENTED_EDGE('',*,*,#9986,.T.);\r
--#9989=ORIENTED_EDGE('',*,*,#9988,.T.);\r
--#9990=ORIENTED_EDGE('',*,*,#9971,.F.);\r
--#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));\r
--#9992=FACE_OUTER_BOUND('',#9991,.F.);\r
--#9993=ADVANCED_FACE('',(#9992),#9984,.F.);\r
--#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));\r
--#9995=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#9996=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);\r
--#9998=PLANE('',#9997);\r
--#9999=ORIENTED_EDGE('',*,*,#5730,.F.);\r
--#10001=ORIENTED_EDGE('',*,*,#10000,.T.);\r
--#10003=ORIENTED_EDGE('',*,*,#10002,.T.);\r
--#10004=ORIENTED_EDGE('',*,*,#9986,.F.);\r
--#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));\r
--#10006=FACE_OUTER_BOUND('',#10005,.F.);\r
--#10007=ADVANCED_FACE('',(#10006),#9998,.F.);\r
--#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));\r
--#10009=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10010=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);\r
--#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);\r
--#10013=ORIENTED_EDGE('',*,*,#5728,.F.);\r
--#10014=ORIENTED_EDGE('',*,*,#9975,.T.);\r
--#10016=ORIENTED_EDGE('',*,*,#10015,.T.);\r
--#10017=ORIENTED_EDGE('',*,*,#10000,.F.);\r
--#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));\r
--#10019=FACE_OUTER_BOUND('',#10018,.F.);\r
--#10020=ADVANCED_FACE('',(#10019),#10012,.F.);\r
--#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10022=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10023=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);\r
--#10025=PLANE('',#10024);\r
--#10026=ORIENTED_EDGE('',*,*,#9973,.F.);\r
--#10027=ORIENTED_EDGE('',*,*,#9988,.F.);\r
--#10028=ORIENTED_EDGE('',*,*,#10002,.F.);\r
--#10029=ORIENTED_EDGE('',*,*,#10015,.F.);\r
--#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));\r
--#10031=FACE_OUTER_BOUND('',#10030,.F.);\r
--#10032=ADVANCED_FACE('',(#10031),#10025,.T.);\r
--#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10034=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10035=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);\r
--#10037=PLANE('',#10036);\r
--#10039=ORIENTED_EDGE('',*,*,#10038,.F.);\r
--#10041=ORIENTED_EDGE('',*,*,#10040,.F.);\r
--#10043=ORIENTED_EDGE('',*,*,#10042,.F.);\r
--#10045=ORIENTED_EDGE('',*,*,#10044,.F.);\r
--#10047=ORIENTED_EDGE('',*,*,#10046,.F.);\r
--#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));\r
--#10049=FACE_OUTER_BOUND('',#10048,.F.);\r
--#10050=ADVANCED_FACE('',(#10049),#10037,.T.);\r
--#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,\r
--4.577195232320E0));\r
--#10052=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);\r
--#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);\r
--#10057=ORIENTED_EDGE('',*,*,#10056,.F.);\r
--#10058=ORIENTED_EDGE('',*,*,#5738,.T.);\r
--#10060=ORIENTED_EDGE('',*,*,#10059,.T.);\r
--#10061=ORIENTED_EDGE('',*,*,#10038,.T.);\r
--#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));\r
--#10063=FACE_OUTER_BOUND('',#10062,.F.);\r
--#10064=ADVANCED_FACE('',(#10063),#10055,.F.);\r
--#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));\r
--#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);\r
--#10069=PLANE('',#10068);\r
--#10070=ORIENTED_EDGE('',*,*,#10056,.T.);\r
--#10071=ORIENTED_EDGE('',*,*,#10046,.T.);\r
--#10073=ORIENTED_EDGE('',*,*,#10072,.F.);\r
--#10074=ORIENTED_EDGE('',*,*,#5740,.F.);\r
--#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));\r
--#10076=FACE_OUTER_BOUND('',#10075,.F.);\r
--#10077=ADVANCED_FACE('',(#10076),#10069,.F.);\r
--#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));\r
--#10079=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10080=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);\r
--#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);\r
--#10083=ORIENTED_EDGE('',*,*,#5742,.F.);\r
--#10084=ORIENTED_EDGE('',*,*,#10072,.T.);\r
--#10085=ORIENTED_EDGE('',*,*,#10044,.T.);\r
--#10087=ORIENTED_EDGE('',*,*,#10086,.F.);\r
--#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));\r
--#10089=FACE_OUTER_BOUND('',#10088,.F.);\r
--#10090=ADVANCED_FACE('',(#10089),#10082,.F.);\r
--#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));\r
--#10092=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10093=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);\r
--#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);\r
--#10096=ORIENTED_EDGE('',*,*,#5744,.T.);\r
--#10097=ORIENTED_EDGE('',*,*,#10086,.T.);\r
--#10098=ORIENTED_EDGE('',*,*,#10042,.T.);\r
--#10100=ORIENTED_EDGE('',*,*,#10099,.F.);\r
--#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));\r
--#10102=FACE_OUTER_BOUND('',#10101,.F.);\r
--#10103=ADVANCED_FACE('',(#10102),#10095,.T.);\r
--#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));\r
--#10105=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10106=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);\r
--#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);\r
--#10109=ORIENTED_EDGE('',*,*,#10059,.F.);\r
--#10110=ORIENTED_EDGE('',*,*,#5736,.F.);\r
--#10111=ORIENTED_EDGE('',*,*,#10099,.T.);\r
--#10112=ORIENTED_EDGE('',*,*,#10040,.T.);\r
--#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));\r
--#10114=FACE_OUTER_BOUND('',#10113,.F.);\r
--#10115=ADVANCED_FACE('',(#10114),#10108,.F.);\r
--#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));\r
--#10117=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10118=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);\r
--#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);\r
--#10122=ORIENTED_EDGE('',*,*,#10121,.T.);\r
--#10123=ORIENTED_EDGE('',*,*,#5748,.T.);\r
--#10125=ORIENTED_EDGE('',*,*,#10124,.F.);\r
--#10127=ORIENTED_EDGE('',*,*,#10126,.T.);\r
--#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));\r
--#10129=FACE_OUTER_BOUND('',#10128,.F.);\r
--#10130=ADVANCED_FACE('',(#10129),#10120,.T.);\r
--#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));\r
--#10132=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10133=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);\r
--#10135=PLANE('',#10134);\r
--#10136=ORIENTED_EDGE('',*,*,#10121,.F.);\r
--#10138=ORIENTED_EDGE('',*,*,#10137,.T.);\r
--#10140=ORIENTED_EDGE('',*,*,#10139,.F.);\r
--#10141=ORIENTED_EDGE('',*,*,#5750,.F.);\r
--#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));\r
--#10143=FACE_OUTER_BOUND('',#10142,.F.);\r
--#10144=ADVANCED_FACE('',(#10143),#10135,.F.);\r
--#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10146=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10147=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);\r
--#10149=PLANE('',#10148);\r
--#10151=ORIENTED_EDGE('',*,*,#10150,.F.);\r
--#10153=ORIENTED_EDGE('',*,*,#10152,.F.);\r
--#10155=ORIENTED_EDGE('',*,*,#10154,.F.);\r
--#10157=ORIENTED_EDGE('',*,*,#10156,.F.);\r
--#10158=ORIENTED_EDGE('',*,*,#10137,.F.);\r
--#10159=ORIENTED_EDGE('',*,*,#10126,.F.);\r
--#10161=ORIENTED_EDGE('',*,*,#10160,.F.);\r
--#10163=ORIENTED_EDGE('',*,*,#10162,.F.);\r
--#10165=ORIENTED_EDGE('',*,*,#10164,.F.);\r
--#10167=ORIENTED_EDGE('',*,*,#10166,.F.);\r
--#10169=ORIENTED_EDGE('',*,*,#10168,.F.);\r
--#10171=ORIENTED_EDGE('',*,*,#10170,.F.);\r
--#10173=ORIENTED_EDGE('',*,*,#10172,.F.);\r
--#10175=ORIENTED_EDGE('',*,*,#10174,.F.);\r
--#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,\r
--#10165,#10167,#10169,#10171,#10173,#10175));\r
--#10177=FACE_OUTER_BOUND('',#10176,.F.);\r
--#10178=ADVANCED_FACE('',(#10177),#10149,.T.);\r
--#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));\r
--#10180=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10181=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);\r
--#10183=PLANE('',#10182);\r
--#10185=ORIENTED_EDGE('',*,*,#10184,.F.);\r
--#10186=ORIENTED_EDGE('',*,*,#10150,.T.);\r
--#10188=ORIENTED_EDGE('',*,*,#10187,.F.);\r
--#10189=ORIENTED_EDGE('',*,*,#5758,.F.);\r
--#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));\r
--#10191=FACE_OUTER_BOUND('',#10190,.F.);\r
--#10192=ADVANCED_FACE('',(#10191),#10183,.F.);\r
--#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));\r
--#10194=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10195=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);\r
--#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);\r
--#10198=ORIENTED_EDGE('',*,*,#10184,.T.);\r
--#10199=ORIENTED_EDGE('',*,*,#5756,.T.);\r
--#10201=ORIENTED_EDGE('',*,*,#10200,.F.);\r
--#10202=ORIENTED_EDGE('',*,*,#10152,.T.);\r
--#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));\r
--#10204=FACE_OUTER_BOUND('',#10203,.F.);\r
--#10205=ADVANCED_FACE('',(#10204),#10197,.T.);\r
--#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));\r
--#10207=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10208=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);\r
--#10210=PLANE('',#10209);\r
--#10211=ORIENTED_EDGE('',*,*,#10200,.T.);\r
--#10212=ORIENTED_EDGE('',*,*,#5754,.F.);\r
--#10214=ORIENTED_EDGE('',*,*,#10213,.T.);\r
--#10215=ORIENTED_EDGE('',*,*,#10154,.T.);\r
--#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));\r
--#10217=FACE_OUTER_BOUND('',#10216,.F.);\r
--#10218=ADVANCED_FACE('',(#10217),#10210,.F.);\r
--#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));\r
--#10220=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10221=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);\r
--#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);\r
--#10224=ORIENTED_EDGE('',*,*,#5752,.F.);\r
--#10225=ORIENTED_EDGE('',*,*,#10139,.T.);\r
--#10226=ORIENTED_EDGE('',*,*,#10156,.T.);\r
--#10227=ORIENTED_EDGE('',*,*,#10213,.F.);\r
--#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));\r
--#10229=FACE_OUTER_BOUND('',#10228,.F.);\r
--#10230=ADVANCED_FACE('',(#10229),#10223,.F.);\r
--#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));\r
--#10232=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10233=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);\r
--#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);\r
--#10237=ORIENTED_EDGE('',*,*,#10236,.F.);\r
--#10238=ORIENTED_EDGE('',*,*,#5760,.T.);\r
--#10239=ORIENTED_EDGE('',*,*,#10187,.T.);\r
--#10240=ORIENTED_EDGE('',*,*,#10174,.T.);\r
--#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));\r
--#10242=FACE_OUTER_BOUND('',#10241,.F.);\r
--#10243=ADVANCED_FACE('',(#10242),#10235,.F.);\r
--#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));\r
--#10245=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10246=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);\r
--#10248=PLANE('',#10247);\r
--#10249=ORIENTED_EDGE('',*,*,#10236,.T.);\r
--#10250=ORIENTED_EDGE('',*,*,#10172,.T.);\r
--#10252=ORIENTED_EDGE('',*,*,#10251,.F.);\r
--#10253=ORIENTED_EDGE('',*,*,#5762,.F.);\r
--#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));\r
--#10255=FACE_OUTER_BOUND('',#10254,.F.);\r
--#10256=ADVANCED_FACE('',(#10255),#10248,.F.);\r
--#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));\r
--#10258=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10259=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);\r
--#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);\r
--#10263=ORIENTED_EDGE('',*,*,#10262,.F.);\r
--#10264=ORIENTED_EDGE('',*,*,#5764,.T.);\r
--#10265=ORIENTED_EDGE('',*,*,#10251,.T.);\r
--#10266=ORIENTED_EDGE('',*,*,#10170,.T.);\r
--#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));\r
--#10268=FACE_OUTER_BOUND('',#10267,.F.);\r
--#10269=ADVANCED_FACE('',(#10268),#10261,.F.);\r
--#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));\r
--#10271=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10272=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);\r
--#10274=PLANE('',#10273);\r
--#10276=ORIENTED_EDGE('',*,*,#10275,.F.);\r
--#10277=ORIENTED_EDGE('',*,*,#5766,.F.);\r
--#10278=ORIENTED_EDGE('',*,*,#10262,.T.);\r
--#10279=ORIENTED_EDGE('',*,*,#10168,.T.);\r
--#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));\r
--#10281=FACE_OUTER_BOUND('',#10280,.F.);\r
--#10282=ADVANCED_FACE('',(#10281),#10274,.F.);\r
--#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));\r
--#10284=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10285=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);\r
--#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);\r
--#10289=ORIENTED_EDGE('',*,*,#10288,.F.);\r
--#10290=ORIENTED_EDGE('',*,*,#5768,.T.);\r
--#10291=ORIENTED_EDGE('',*,*,#10275,.T.);\r
--#10292=ORIENTED_EDGE('',*,*,#10166,.T.);\r
--#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));\r
--#10294=FACE_OUTER_BOUND('',#10293,.F.);\r
--#10295=ADVANCED_FACE('',(#10294),#10287,.F.);\r
--#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));\r
--#10297=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10298=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);\r
--#10300=PLANE('',#10299);\r
--#10301=ORIENTED_EDGE('',*,*,#10288,.T.);\r
--#10302=ORIENTED_EDGE('',*,*,#10164,.T.);\r
--#10304=ORIENTED_EDGE('',*,*,#10303,.F.);\r
--#10305=ORIENTED_EDGE('',*,*,#5770,.F.);\r
--#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));\r
--#10307=FACE_OUTER_BOUND('',#10306,.F.);\r
--#10308=ADVANCED_FACE('',(#10307),#10300,.F.);\r
--#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));\r
--#10310=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10311=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);\r
--#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);\r
--#10315=ORIENTED_EDGE('',*,*,#10314,.F.);\r
--#10316=ORIENTED_EDGE('',*,*,#5772,.T.);\r
--#10317=ORIENTED_EDGE('',*,*,#10303,.T.);\r
--#10318=ORIENTED_EDGE('',*,*,#10162,.T.);\r
--#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));\r
--#10320=FACE_OUTER_BOUND('',#10319,.F.);\r
--#10321=ADVANCED_FACE('',(#10320),#10313,.F.);\r
--#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));\r
--#10323=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10324=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);\r
--#10326=PLANE('',#10325);\r
--#10327=ORIENTED_EDGE('',*,*,#10124,.T.);\r
--#10328=ORIENTED_EDGE('',*,*,#5774,.F.);\r
--#10329=ORIENTED_EDGE('',*,*,#10314,.T.);\r
--#10330=ORIENTED_EDGE('',*,*,#10160,.T.);\r
--#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));\r
--#10332=FACE_OUTER_BOUND('',#10331,.F.);\r
--#10333=ADVANCED_FACE('',(#10332),#10326,.F.);\r
--#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));\r
--#10335=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10336=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);\r
--#10338=PLANE('',#10337);\r
--#10339=ORIENTED_EDGE('',*,*,#5778,.F.);\r
--#10341=ORIENTED_EDGE('',*,*,#10340,.T.);\r
--#10343=ORIENTED_EDGE('',*,*,#10342,.T.);\r
--#10345=ORIENTED_EDGE('',*,*,#10344,.F.);\r
--#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));\r
--#10347=FACE_OUTER_BOUND('',#10346,.F.);\r
--#10348=ADVANCED_FACE('',(#10347),#10338,.F.);\r
--#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));\r
--#10350=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10351=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);\r
--#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);\r
--#10354=ORIENTED_EDGE('',*,*,#5784,.F.);\r
--#10356=ORIENTED_EDGE('',*,*,#10355,.T.);\r
--#10358=ORIENTED_EDGE('',*,*,#10357,.T.);\r
--#10359=ORIENTED_EDGE('',*,*,#10340,.F.);\r
--#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));\r
--#10361=FACE_OUTER_BOUND('',#10360,.F.);\r
--#10362=ADVANCED_FACE('',(#10361),#10353,.F.);\r
--#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));\r
--#10364=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10365=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);\r
--#10367=PLANE('',#10366);\r
--#10368=ORIENTED_EDGE('',*,*,#5782,.F.);\r
--#10370=ORIENTED_EDGE('',*,*,#10369,.T.);\r
--#10372=ORIENTED_EDGE('',*,*,#10371,.T.);\r
--#10373=ORIENTED_EDGE('',*,*,#10355,.F.);\r
--#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));\r
--#10375=FACE_OUTER_BOUND('',#10374,.F.);\r
--#10376=ADVANCED_FACE('',(#10375),#10367,.F.);\r
--#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));\r
--#10378=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10379=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);\r
--#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);\r
--#10382=ORIENTED_EDGE('',*,*,#5780,.F.);\r
--#10383=ORIENTED_EDGE('',*,*,#10344,.T.);\r
--#10385=ORIENTED_EDGE('',*,*,#10384,.T.);\r
--#10386=ORIENTED_EDGE('',*,*,#10369,.F.);\r
--#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));\r
--#10388=FACE_OUTER_BOUND('',#10387,.F.);\r
--#10389=ADVANCED_FACE('',(#10388),#10381,.F.);\r
--#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10391=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10392=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);\r
--#10394=PLANE('',#10393);\r
--#10395=ORIENTED_EDGE('',*,*,#10342,.F.);\r
--#10396=ORIENTED_EDGE('',*,*,#10357,.F.);\r
--#10397=ORIENTED_EDGE('',*,*,#10371,.F.);\r
--#10398=ORIENTED_EDGE('',*,*,#10384,.F.);\r
--#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));\r
--#10400=FACE_OUTER_BOUND('',#10399,.F.);\r
--#10401=ADVANCED_FACE('',(#10400),#10394,.T.);\r
--#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));\r
--#10403=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10404=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);\r
--#10406=PLANE('',#10405);\r
--#10407=ORIENTED_EDGE('',*,*,#5788,.F.);\r
--#10409=ORIENTED_EDGE('',*,*,#10408,.T.);\r
--#10411=ORIENTED_EDGE('',*,*,#10410,.T.);\r
--#10413=ORIENTED_EDGE('',*,*,#10412,.F.);\r
--#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));\r
--#10415=FACE_OUTER_BOUND('',#10414,.F.);\r
--#10416=ADVANCED_FACE('',(#10415),#10406,.F.);\r
--#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));\r
--#10418=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10419=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);\r
--#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);\r
--#10422=ORIENTED_EDGE('',*,*,#5794,.F.);\r
--#10424=ORIENTED_EDGE('',*,*,#10423,.T.);\r
--#10426=ORIENTED_EDGE('',*,*,#10425,.T.);\r
--#10427=ORIENTED_EDGE('',*,*,#10408,.F.);\r
--#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));\r
--#10429=FACE_OUTER_BOUND('',#10428,.F.);\r
--#10430=ADVANCED_FACE('',(#10429),#10421,.F.);\r
--#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));\r
--#10432=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10433=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);\r
--#10435=PLANE('',#10434);\r
--#10436=ORIENTED_EDGE('',*,*,#5792,.F.);\r
--#10438=ORIENTED_EDGE('',*,*,#10437,.T.);\r
--#10440=ORIENTED_EDGE('',*,*,#10439,.T.);\r
--#10441=ORIENTED_EDGE('',*,*,#10423,.F.);\r
--#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));\r
--#10443=FACE_OUTER_BOUND('',#10442,.F.);\r
--#10444=ADVANCED_FACE('',(#10443),#10435,.F.);\r
--#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));\r
--#10446=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10447=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);\r
--#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);\r
--#10450=ORIENTED_EDGE('',*,*,#5790,.F.);\r
--#10451=ORIENTED_EDGE('',*,*,#10412,.T.);\r
--#10453=ORIENTED_EDGE('',*,*,#10452,.T.);\r
--#10454=ORIENTED_EDGE('',*,*,#10437,.F.);\r
--#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));\r
--#10456=FACE_OUTER_BOUND('',#10455,.F.);\r
--#10457=ADVANCED_FACE('',(#10456),#10449,.F.);\r
--#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10459=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10460=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);\r
--#10462=PLANE('',#10461);\r
--#10463=ORIENTED_EDGE('',*,*,#10410,.F.);\r
--#10464=ORIENTED_EDGE('',*,*,#10425,.F.);\r
--#10465=ORIENTED_EDGE('',*,*,#10439,.F.);\r
--#10466=ORIENTED_EDGE('',*,*,#10452,.F.);\r
--#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));\r
--#10468=FACE_OUTER_BOUND('',#10467,.F.);\r
--#10469=ADVANCED_FACE('',(#10468),#10462,.T.);\r
--#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));\r
--#10471=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10472=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);\r
--#10474=PLANE('',#10473);\r
--#10475=ORIENTED_EDGE('',*,*,#5798,.F.);\r
--#10477=ORIENTED_EDGE('',*,*,#10476,.T.);\r
--#10479=ORIENTED_EDGE('',*,*,#10478,.T.);\r
--#10481=ORIENTED_EDGE('',*,*,#10480,.F.);\r
--#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));\r
--#10483=FACE_OUTER_BOUND('',#10482,.F.);\r
--#10484=ADVANCED_FACE('',(#10483),#10474,.F.);\r
--#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));\r
--#10486=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10487=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);\r
--#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);\r
--#10490=ORIENTED_EDGE('',*,*,#5804,.F.);\r
--#10492=ORIENTED_EDGE('',*,*,#10491,.T.);\r
--#10494=ORIENTED_EDGE('',*,*,#10493,.T.);\r
--#10495=ORIENTED_EDGE('',*,*,#10476,.F.);\r
--#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));\r
--#10497=FACE_OUTER_BOUND('',#10496,.F.);\r
--#10498=ADVANCED_FACE('',(#10497),#10489,.F.);\r
--#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));\r
--#10500=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10501=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);\r
--#10503=PLANE('',#10502);\r
--#10504=ORIENTED_EDGE('',*,*,#5802,.F.);\r
--#10506=ORIENTED_EDGE('',*,*,#10505,.T.);\r
--#10508=ORIENTED_EDGE('',*,*,#10507,.T.);\r
--#10509=ORIENTED_EDGE('',*,*,#10491,.F.);\r
--#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));\r
--#10511=FACE_OUTER_BOUND('',#10510,.F.);\r
--#10512=ADVANCED_FACE('',(#10511),#10503,.F.);\r
--#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));\r
--#10514=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10515=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);\r
--#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);\r
--#10518=ORIENTED_EDGE('',*,*,#5800,.F.);\r
--#10519=ORIENTED_EDGE('',*,*,#10480,.T.);\r
--#10521=ORIENTED_EDGE('',*,*,#10520,.T.);\r
--#10522=ORIENTED_EDGE('',*,*,#10505,.F.);\r
--#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));\r
--#10524=FACE_OUTER_BOUND('',#10523,.F.);\r
--#10525=ADVANCED_FACE('',(#10524),#10517,.F.);\r
--#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10527=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10528=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);\r
--#10530=PLANE('',#10529);\r
--#10531=ORIENTED_EDGE('',*,*,#10478,.F.);\r
--#10532=ORIENTED_EDGE('',*,*,#10493,.F.);\r
--#10533=ORIENTED_EDGE('',*,*,#10507,.F.);\r
--#10534=ORIENTED_EDGE('',*,*,#10520,.F.);\r
--#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));\r
--#10536=FACE_OUTER_BOUND('',#10535,.F.);\r
--#10537=ADVANCED_FACE('',(#10536),#10530,.T.);\r
--#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));\r
--#10539=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10540=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);\r
--#10542=PLANE('',#10541);\r
--#10543=ORIENTED_EDGE('',*,*,#5808,.F.);\r
--#10545=ORIENTED_EDGE('',*,*,#10544,.T.);\r
--#10547=ORIENTED_EDGE('',*,*,#10546,.T.);\r
--#10549=ORIENTED_EDGE('',*,*,#10548,.F.);\r
--#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));\r
--#10551=FACE_OUTER_BOUND('',#10550,.F.);\r
--#10552=ADVANCED_FACE('',(#10551),#10542,.F.);\r
--#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));\r
--#10554=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10555=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);\r
--#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);\r
--#10558=ORIENTED_EDGE('',*,*,#5814,.F.);\r
--#10560=ORIENTED_EDGE('',*,*,#10559,.T.);\r
--#10562=ORIENTED_EDGE('',*,*,#10561,.T.);\r
--#10563=ORIENTED_EDGE('',*,*,#10544,.F.);\r
--#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));\r
--#10565=FACE_OUTER_BOUND('',#10564,.F.);\r
--#10566=ADVANCED_FACE('',(#10565),#10557,.F.);\r
--#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));\r
--#10568=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10569=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);\r
--#10571=PLANE('',#10570);\r
--#10572=ORIENTED_EDGE('',*,*,#5812,.F.);\r
--#10574=ORIENTED_EDGE('',*,*,#10573,.T.);\r
--#10576=ORIENTED_EDGE('',*,*,#10575,.T.);\r
--#10577=ORIENTED_EDGE('',*,*,#10559,.F.);\r
--#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));\r
--#10579=FACE_OUTER_BOUND('',#10578,.F.);\r
--#10580=ADVANCED_FACE('',(#10579),#10571,.F.);\r
--#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));\r
--#10582=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10583=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);\r
--#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);\r
--#10586=ORIENTED_EDGE('',*,*,#5810,.F.);\r
--#10587=ORIENTED_EDGE('',*,*,#10548,.T.);\r
--#10589=ORIENTED_EDGE('',*,*,#10588,.T.);\r
--#10590=ORIENTED_EDGE('',*,*,#10573,.F.);\r
--#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));\r
--#10592=FACE_OUTER_BOUND('',#10591,.F.);\r
--#10593=ADVANCED_FACE('',(#10592),#10585,.F.);\r
--#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));\r
--#10595=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#10596=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);\r
--#10598=PLANE('',#10597);\r
--#10599=ORIENTED_EDGE('',*,*,#10546,.F.);\r
--#10600=ORIENTED_EDGE('',*,*,#10561,.F.);\r
--#10601=ORIENTED_EDGE('',*,*,#10575,.F.);\r
--#10602=ORIENTED_EDGE('',*,*,#10588,.F.);\r
--#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));\r
--#10604=FACE_OUTER_BOUND('',#10603,.F.);\r
--#10605=ADVANCED_FACE('',(#10604),#10598,.T.);\r
--#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));\r
--#10607=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10608=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);\r
--#10610=PLANE('',#10609);\r
--#10611=ORIENTED_EDGE('',*,*,#5818,.T.);\r
--#10613=ORIENTED_EDGE('',*,*,#10612,.T.);\r
--#10615=ORIENTED_EDGE('',*,*,#10614,.F.);\r
--#10617=ORIENTED_EDGE('',*,*,#10616,.F.);\r
--#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));\r
--#10619=FACE_OUTER_BOUND('',#10618,.F.);\r
--#10620=ADVANCED_FACE('',(#10619),#10610,.T.);\r
--#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));\r
--#10622=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10623=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);\r
--#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);\r
--#10626=ORIENTED_EDGE('',*,*,#5824,.T.);\r
--#10628=ORIENTED_EDGE('',*,*,#10627,.T.);\r
--#10630=ORIENTED_EDGE('',*,*,#10629,.F.);\r
--#10631=ORIENTED_EDGE('',*,*,#10612,.F.);\r
--#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));\r
--#10633=FACE_OUTER_BOUND('',#10632,.F.);\r
--#10634=ADVANCED_FACE('',(#10633),#10625,.F.);\r
--#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));\r
--#10636=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10637=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);\r
--#10639=PLANE('',#10638);\r
--#10640=ORIENTED_EDGE('',*,*,#5822,.T.);\r
--#10642=ORIENTED_EDGE('',*,*,#10641,.T.);\r
--#10644=ORIENTED_EDGE('',*,*,#10643,.F.);\r
--#10645=ORIENTED_EDGE('',*,*,#10627,.F.);\r
--#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));\r
--#10647=FACE_OUTER_BOUND('',#10646,.F.);\r
--#10648=ADVANCED_FACE('',(#10647),#10639,.T.);\r
--#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));\r
--#10650=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10651=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);\r
--#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);\r
--#10654=ORIENTED_EDGE('',*,*,#5820,.T.);\r
--#10655=ORIENTED_EDGE('',*,*,#10616,.T.);\r
--#10657=ORIENTED_EDGE('',*,*,#10656,.F.);\r
--#10658=ORIENTED_EDGE('',*,*,#10641,.F.);\r
--#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));\r
--#10660=FACE_OUTER_BOUND('',#10659,.F.);\r
--#10661=ADVANCED_FACE('',(#10660),#10653,.F.);\r
--#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));\r
--#10663=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10664=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);\r
--#10666=PLANE('',#10665);\r
--#10667=ORIENTED_EDGE('',*,*,#10614,.T.);\r
--#10668=ORIENTED_EDGE('',*,*,#10629,.T.);\r
--#10669=ORIENTED_EDGE('',*,*,#10643,.T.);\r
--#10670=ORIENTED_EDGE('',*,*,#10656,.T.);\r
--#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));\r
--#10672=FACE_OUTER_BOUND('',#10671,.F.);\r
--#10673=ADVANCED_FACE('',(#10672),#10666,.F.);\r
--#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));\r
--#10675=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10676=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);\r
--#10678=PLANE('',#10677);\r
--#10680=ORIENTED_EDGE('',*,*,#10679,.F.);\r
--#10682=ORIENTED_EDGE('',*,*,#10681,.T.);\r
--#10684=ORIENTED_EDGE('',*,*,#10683,.T.);\r
--#10686=ORIENTED_EDGE('',*,*,#10685,.T.);\r
--#10688=ORIENTED_EDGE('',*,*,#10687,.T.);\r
--#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));\r
--#10690=FACE_OUTER_BOUND('',#10689,.F.);\r
--#10691=ADVANCED_FACE('',(#10690),#10678,.F.);\r
--#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,\r
--2.742280476768E1));\r
--#10693=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));\r
--#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);\r
--#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);\r
--#10698=ORIENTED_EDGE('',*,*,#10697,.F.);\r
--#10699=ORIENTED_EDGE('',*,*,#5932,.T.);\r
--#10701=ORIENTED_EDGE('',*,*,#10700,.T.);\r
--#10702=ORIENTED_EDGE('',*,*,#10679,.T.);\r
--#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));\r
--#10704=FACE_OUTER_BOUND('',#10703,.F.);\r
--#10705=ADVANCED_FACE('',(#10704),#10696,.F.);\r
--#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));\r
--#10707=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10708=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);\r
--#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);\r
--#10711=ORIENTED_EDGE('',*,*,#10697,.T.);\r
--#10712=ORIENTED_EDGE('',*,*,#10687,.F.);\r
--#10714=ORIENTED_EDGE('',*,*,#10713,.F.);\r
--#10715=ORIENTED_EDGE('',*,*,#5934,.T.);\r
--#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));\r
--#10717=FACE_OUTER_BOUND('',#10716,.F.);\r
--#10718=ADVANCED_FACE('',(#10717),#10710,.F.);\r
--#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));\r
--#10720=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10721=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);\r
--#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);\r
--#10724=ORIENTED_EDGE('',*,*,#5936,.F.);\r
--#10725=ORIENTED_EDGE('',*,*,#10713,.T.);\r
--#10726=ORIENTED_EDGE('',*,*,#10685,.F.);\r
--#10728=ORIENTED_EDGE('',*,*,#10727,.F.);\r
--#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));\r
--#10730=FACE_OUTER_BOUND('',#10729,.F.);\r
--#10731=ADVANCED_FACE('',(#10730),#10723,.T.);\r
--#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));\r
--#10733=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10734=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);\r
--#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);\r
--#10737=ORIENTED_EDGE('',*,*,#5938,.T.);\r
--#10738=ORIENTED_EDGE('',*,*,#10727,.T.);\r
--#10739=ORIENTED_EDGE('',*,*,#10683,.F.);\r
--#10741=ORIENTED_EDGE('',*,*,#10740,.F.);\r
--#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));\r
--#10743=FACE_OUTER_BOUND('',#10742,.F.);\r
--#10744=ADVANCED_FACE('',(#10743),#10736,.F.);\r
--#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));\r
--#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);\r
--#10749=PLANE('',#10748);\r
--#10750=ORIENTED_EDGE('',*,*,#10700,.F.);\r
--#10751=ORIENTED_EDGE('',*,*,#5930,.T.);\r
--#10752=ORIENTED_EDGE('',*,*,#10740,.T.);\r
--#10753=ORIENTED_EDGE('',*,*,#10681,.F.);\r
--#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));\r
--#10755=FACE_OUTER_BOUND('',#10754,.F.);\r
--#10756=ADVANCED_FACE('',(#10755),#10749,.T.);\r
--#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));\r
--#10758=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10759=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);\r
--#10761=PLANE('',#10760);\r
--#10762=ORIENTED_EDGE('',*,*,#5828,.T.);\r
--#10764=ORIENTED_EDGE('',*,*,#10763,.T.);\r
--#10766=ORIENTED_EDGE('',*,*,#10765,.F.);\r
--#10768=ORIENTED_EDGE('',*,*,#10767,.F.);\r
--#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));\r
--#10770=FACE_OUTER_BOUND('',#10769,.F.);\r
--#10771=ADVANCED_FACE('',(#10770),#10761,.T.);\r
--#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));\r
--#10773=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10774=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);\r
--#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);\r
--#10777=ORIENTED_EDGE('',*,*,#5834,.T.);\r
--#10779=ORIENTED_EDGE('',*,*,#10778,.T.);\r
--#10781=ORIENTED_EDGE('',*,*,#10780,.F.);\r
--#10782=ORIENTED_EDGE('',*,*,#10763,.F.);\r
--#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));\r
--#10784=FACE_OUTER_BOUND('',#10783,.F.);\r
--#10785=ADVANCED_FACE('',(#10784),#10776,.F.);\r
--#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));\r
--#10787=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10788=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);\r
--#10790=PLANE('',#10789);\r
--#10791=ORIENTED_EDGE('',*,*,#5832,.T.);\r
--#10793=ORIENTED_EDGE('',*,*,#10792,.T.);\r
--#10795=ORIENTED_EDGE('',*,*,#10794,.F.);\r
--#10796=ORIENTED_EDGE('',*,*,#10778,.F.);\r
--#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));\r
--#10798=FACE_OUTER_BOUND('',#10797,.F.);\r
--#10799=ADVANCED_FACE('',(#10798),#10790,.T.);\r
--#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));\r
--#10801=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10802=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);\r
--#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);\r
--#10805=ORIENTED_EDGE('',*,*,#5830,.T.);\r
--#10806=ORIENTED_EDGE('',*,*,#10767,.T.);\r
--#10808=ORIENTED_EDGE('',*,*,#10807,.F.);\r
--#10809=ORIENTED_EDGE('',*,*,#10792,.F.);\r
--#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));\r
--#10811=FACE_OUTER_BOUND('',#10810,.F.);\r
--#10812=ADVANCED_FACE('',(#10811),#10804,.F.);\r
--#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#10814=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10815=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);\r
--#10817=PLANE('',#10816);\r
--#10818=ORIENTED_EDGE('',*,*,#10765,.T.);\r
--#10819=ORIENTED_EDGE('',*,*,#10780,.T.);\r
--#10820=ORIENTED_EDGE('',*,*,#10794,.T.);\r
--#10821=ORIENTED_EDGE('',*,*,#10807,.T.);\r
--#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));\r
--#10823=FACE_OUTER_BOUND('',#10822,.F.);\r
--#10824=ADVANCED_FACE('',(#10823),#10817,.F.);\r
--#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#10826=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10827=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);\r
--#10829=PLANE('',#10828);\r
--#10831=ORIENTED_EDGE('',*,*,#10830,.F.);\r
--#10833=ORIENTED_EDGE('',*,*,#10832,.T.);\r
--#10835=ORIENTED_EDGE('',*,*,#10834,.T.);\r
--#10837=ORIENTED_EDGE('',*,*,#10836,.T.);\r
--#10839=ORIENTED_EDGE('',*,*,#10838,.T.);\r
--#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));\r
--#10841=FACE_OUTER_BOUND('',#10840,.F.);\r
--#10842=ADVANCED_FACE('',(#10841),#10829,.F.);\r
--#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,\r
--4.577195232320E0));\r
--#10844=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));\r
--#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);\r
--#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);\r
--#10849=ORIENTED_EDGE('',*,*,#10848,.F.);\r
--#10850=ORIENTED_EDGE('',*,*,#5920,.T.);\r
--#10852=ORIENTED_EDGE('',*,*,#10851,.T.);\r
--#10853=ORIENTED_EDGE('',*,*,#10830,.T.);\r
--#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));\r
--#10855=FACE_OUTER_BOUND('',#10854,.F.);\r
--#10856=ADVANCED_FACE('',(#10855),#10847,.F.);\r
--#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));\r
--#10858=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10859=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);\r
--#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);\r
--#10862=ORIENTED_EDGE('',*,*,#10848,.T.);\r
--#10863=ORIENTED_EDGE('',*,*,#10838,.F.);\r
--#10865=ORIENTED_EDGE('',*,*,#10864,.F.);\r
--#10866=ORIENTED_EDGE('',*,*,#5922,.T.);\r
--#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));\r
--#10868=FACE_OUTER_BOUND('',#10867,.F.);\r
--#10869=ADVANCED_FACE('',(#10868),#10861,.F.);\r
--#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));\r
--#10871=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10872=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);\r
--#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);\r
--#10875=ORIENTED_EDGE('',*,*,#5924,.F.);\r
--#10876=ORIENTED_EDGE('',*,*,#10864,.T.);\r
--#10877=ORIENTED_EDGE('',*,*,#10836,.F.);\r
--#10879=ORIENTED_EDGE('',*,*,#10878,.F.);\r
--#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));\r
--#10881=FACE_OUTER_BOUND('',#10880,.F.);\r
--#10882=ADVANCED_FACE('',(#10881),#10874,.T.);\r
--#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));\r
--#10884=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10885=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);\r
--#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);\r
--#10888=ORIENTED_EDGE('',*,*,#5926,.T.);\r
--#10889=ORIENTED_EDGE('',*,*,#10878,.T.);\r
--#10890=ORIENTED_EDGE('',*,*,#10834,.F.);\r
--#10892=ORIENTED_EDGE('',*,*,#10891,.F.);\r
--#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));\r
--#10894=FACE_OUTER_BOUND('',#10893,.F.);\r
--#10895=ADVANCED_FACE('',(#10894),#10887,.F.);\r
--#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));\r
--#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));\r
--#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);\r
--#10900=PLANE('',#10899);\r
--#10901=ORIENTED_EDGE('',*,*,#10851,.F.);\r
--#10902=ORIENTED_EDGE('',*,*,#5918,.T.);\r
--#10903=ORIENTED_EDGE('',*,*,#10891,.T.);\r
--#10904=ORIENTED_EDGE('',*,*,#10832,.F.);\r
--#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));\r
--#10906=FACE_OUTER_BOUND('',#10905,.F.);\r
--#10907=ADVANCED_FACE('',(#10906),#10900,.T.);\r
--#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));\r
--#10909=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10910=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);\r
--#10912=PLANE('',#10911);\r
--#10913=ORIENTED_EDGE('',*,*,#5838,.T.);\r
--#10915=ORIENTED_EDGE('',*,*,#10914,.T.);\r
--#10917=ORIENTED_EDGE('',*,*,#10916,.F.);\r
--#10919=ORIENTED_EDGE('',*,*,#10918,.F.);\r
--#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));\r
--#10921=FACE_OUTER_BOUND('',#10920,.F.);\r
--#10922=ADVANCED_FACE('',(#10921),#10912,.T.);\r
--#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));\r
--#10924=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10925=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);\r
--#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);\r
--#10928=ORIENTED_EDGE('',*,*,#5844,.T.);\r
--#10930=ORIENTED_EDGE('',*,*,#10929,.T.);\r
--#10932=ORIENTED_EDGE('',*,*,#10931,.F.);\r
--#10933=ORIENTED_EDGE('',*,*,#10914,.F.);\r
--#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));\r
--#10935=FACE_OUTER_BOUND('',#10934,.F.);\r
--#10936=ADVANCED_FACE('',(#10935),#10927,.F.);\r
--#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));\r
--#10938=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#10939=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);\r
--#10941=PLANE('',#10940);\r
--#10942=ORIENTED_EDGE('',*,*,#5842,.T.);\r
--#10944=ORIENTED_EDGE('',*,*,#10943,.T.);\r
--#10946=ORIENTED_EDGE('',*,*,#10945,.F.);\r
--#10947=ORIENTED_EDGE('',*,*,#10929,.F.);\r
--#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));\r
--#10949=FACE_OUTER_BOUND('',#10948,.F.);\r
--#10950=ADVANCED_FACE('',(#10949),#10941,.T.);\r
--#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));\r
--#10952=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10953=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);\r
--#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);\r
--#10956=ORIENTED_EDGE('',*,*,#5840,.T.);\r
--#10957=ORIENTED_EDGE('',*,*,#10918,.T.);\r
--#10959=ORIENTED_EDGE('',*,*,#10958,.F.);\r
--#10960=ORIENTED_EDGE('',*,*,#10943,.F.);\r
--#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));\r
--#10962=FACE_OUTER_BOUND('',#10961,.F.);\r
--#10963=ADVANCED_FACE('',(#10962),#10955,.F.);\r
--#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#10965=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10966=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);\r
--#10968=PLANE('',#10967);\r
--#10969=ORIENTED_EDGE('',*,*,#10916,.T.);\r
--#10970=ORIENTED_EDGE('',*,*,#10931,.T.);\r
--#10971=ORIENTED_EDGE('',*,*,#10945,.T.);\r
--#10972=ORIENTED_EDGE('',*,*,#10958,.T.);\r
--#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));\r
--#10974=FACE_OUTER_BOUND('',#10973,.F.);\r
--#10975=ADVANCED_FACE('',(#10974),#10968,.F.);\r
--#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));\r
--#10977=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10978=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);\r
--#10980=PLANE('',#10979);\r
--#10981=ORIENTED_EDGE('',*,*,#5848,.T.);\r
--#10983=ORIENTED_EDGE('',*,*,#10982,.T.);\r
--#10985=ORIENTED_EDGE('',*,*,#10984,.F.);\r
--#10987=ORIENTED_EDGE('',*,*,#10986,.F.);\r
--#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));\r
--#10989=FACE_OUTER_BOUND('',#10988,.F.);\r
--#10990=ADVANCED_FACE('',(#10989),#10980,.T.);\r
--#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));\r
--#10992=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#10993=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);\r
--#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);\r
--#10996=ORIENTED_EDGE('',*,*,#5854,.T.);\r
--#10998=ORIENTED_EDGE('',*,*,#10997,.T.);\r
--#11000=ORIENTED_EDGE('',*,*,#10999,.F.);\r
--#11001=ORIENTED_EDGE('',*,*,#10982,.F.);\r
--#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));\r
--#11003=FACE_OUTER_BOUND('',#11002,.F.);\r
--#11004=ADVANCED_FACE('',(#11003),#10995,.F.);\r
--#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));\r
--#11006=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11007=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);\r
--#11009=PLANE('',#11008);\r
--#11010=ORIENTED_EDGE('',*,*,#5852,.T.);\r
--#11012=ORIENTED_EDGE('',*,*,#11011,.T.);\r
--#11014=ORIENTED_EDGE('',*,*,#11013,.F.);\r
--#11015=ORIENTED_EDGE('',*,*,#10997,.F.);\r
--#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));\r
--#11017=FACE_OUTER_BOUND('',#11016,.F.);\r
--#11018=ADVANCED_FACE('',(#11017),#11009,.T.);\r
--#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));\r
--#11020=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11021=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);\r
--#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);\r
--#11024=ORIENTED_EDGE('',*,*,#5850,.T.);\r
--#11025=ORIENTED_EDGE('',*,*,#10986,.T.);\r
--#11027=ORIENTED_EDGE('',*,*,#11026,.F.);\r
--#11028=ORIENTED_EDGE('',*,*,#11011,.F.);\r
--#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));\r
--#11030=FACE_OUTER_BOUND('',#11029,.F.);\r
--#11031=ADVANCED_FACE('',(#11030),#11023,.F.);\r
--#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#11033=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11034=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);\r
--#11036=PLANE('',#11035);\r
--#11037=ORIENTED_EDGE('',*,*,#10984,.T.);\r
--#11038=ORIENTED_EDGE('',*,*,#10999,.T.);\r
--#11039=ORIENTED_EDGE('',*,*,#11013,.T.);\r
--#11040=ORIENTED_EDGE('',*,*,#11026,.T.);\r
--#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));\r
--#11042=FACE_OUTER_BOUND('',#11041,.F.);\r
--#11043=ADVANCED_FACE('',(#11042),#11036,.F.);\r
--#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));\r
--#11045=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11046=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);\r
--#11048=PLANE('',#11047);\r
--#11049=ORIENTED_EDGE('',*,*,#5858,.T.);\r
--#11051=ORIENTED_EDGE('',*,*,#11050,.T.);\r
--#11053=ORIENTED_EDGE('',*,*,#11052,.F.);\r
--#11055=ORIENTED_EDGE('',*,*,#11054,.F.);\r
--#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));\r
--#11057=FACE_OUTER_BOUND('',#11056,.F.);\r
--#11058=ADVANCED_FACE('',(#11057),#11048,.T.);\r
--#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));\r
--#11060=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11061=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);\r
--#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);\r
--#11064=ORIENTED_EDGE('',*,*,#5864,.T.);\r
--#11066=ORIENTED_EDGE('',*,*,#11065,.T.);\r
--#11068=ORIENTED_EDGE('',*,*,#11067,.F.);\r
--#11069=ORIENTED_EDGE('',*,*,#11050,.F.);\r
--#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));\r
--#11071=FACE_OUTER_BOUND('',#11070,.F.);\r
--#11072=ADVANCED_FACE('',(#11071),#11063,.F.);\r
--#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));\r
--#11074=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11075=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);\r
--#11077=PLANE('',#11076);\r
--#11078=ORIENTED_EDGE('',*,*,#5862,.T.);\r
--#11080=ORIENTED_EDGE('',*,*,#11079,.T.);\r
--#11082=ORIENTED_EDGE('',*,*,#11081,.F.);\r
--#11083=ORIENTED_EDGE('',*,*,#11065,.F.);\r
--#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));\r
--#11085=FACE_OUTER_BOUND('',#11084,.F.);\r
--#11086=ADVANCED_FACE('',(#11085),#11077,.T.);\r
--#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));\r
--#11088=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11089=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);\r
--#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);\r
--#11092=ORIENTED_EDGE('',*,*,#5860,.T.);\r
--#11093=ORIENTED_EDGE('',*,*,#11054,.T.);\r
--#11095=ORIENTED_EDGE('',*,*,#11094,.F.);\r
--#11096=ORIENTED_EDGE('',*,*,#11079,.F.);\r
--#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));\r
--#11098=FACE_OUTER_BOUND('',#11097,.F.);\r
--#11099=ADVANCED_FACE('',(#11098),#11091,.F.);\r
--#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#11101=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11102=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);\r
--#11104=PLANE('',#11103);\r
--#11105=ORIENTED_EDGE('',*,*,#11052,.T.);\r
--#11106=ORIENTED_EDGE('',*,*,#11067,.T.);\r
--#11107=ORIENTED_EDGE('',*,*,#11081,.T.);\r
--#11108=ORIENTED_EDGE('',*,*,#11094,.T.);\r
--#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));\r
--#11110=FACE_OUTER_BOUND('',#11109,.F.);\r
--#11111=ADVANCED_FACE('',(#11110),#11104,.F.);\r
--#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));\r
--#11113=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11114=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);\r
--#11116=PLANE('',#11115);\r
--#11117=ORIENTED_EDGE('',*,*,#5868,.T.);\r
--#11119=ORIENTED_EDGE('',*,*,#11118,.T.);\r
--#11121=ORIENTED_EDGE('',*,*,#11120,.F.);\r
--#11123=ORIENTED_EDGE('',*,*,#11122,.F.);\r
--#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));\r
--#11125=FACE_OUTER_BOUND('',#11124,.F.);\r
--#11126=ADVANCED_FACE('',(#11125),#11116,.T.);\r
--#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));\r
--#11128=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11129=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);\r
--#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);\r
--#11132=ORIENTED_EDGE('',*,*,#5874,.T.);\r
--#11134=ORIENTED_EDGE('',*,*,#11133,.T.);\r
--#11136=ORIENTED_EDGE('',*,*,#11135,.F.);\r
--#11137=ORIENTED_EDGE('',*,*,#11118,.F.);\r
--#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));\r
--#11139=FACE_OUTER_BOUND('',#11138,.F.);\r
--#11140=ADVANCED_FACE('',(#11139),#11131,.F.);\r
--#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));\r
--#11142=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11143=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);\r
--#11145=PLANE('',#11144);\r
--#11146=ORIENTED_EDGE('',*,*,#5872,.T.);\r
--#11148=ORIENTED_EDGE('',*,*,#11147,.T.);\r
--#11150=ORIENTED_EDGE('',*,*,#11149,.F.);\r
--#11151=ORIENTED_EDGE('',*,*,#11133,.F.);\r
--#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));\r
--#11153=FACE_OUTER_BOUND('',#11152,.F.);\r
--#11154=ADVANCED_FACE('',(#11153),#11145,.T.);\r
--#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));\r
--#11156=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11157=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);\r
--#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);\r
--#11160=ORIENTED_EDGE('',*,*,#5870,.T.);\r
--#11161=ORIENTED_EDGE('',*,*,#11122,.T.);\r
--#11163=ORIENTED_EDGE('',*,*,#11162,.F.);\r
--#11164=ORIENTED_EDGE('',*,*,#11147,.F.);\r
--#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));\r
--#11166=FACE_OUTER_BOUND('',#11165,.F.);\r
--#11167=ADVANCED_FACE('',(#11166),#11159,.F.);\r
--#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#11169=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11170=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);\r
--#11172=PLANE('',#11171);\r
--#11173=ORIENTED_EDGE('',*,*,#11120,.T.);\r
--#11174=ORIENTED_EDGE('',*,*,#11135,.T.);\r
--#11175=ORIENTED_EDGE('',*,*,#11149,.T.);\r
--#11176=ORIENTED_EDGE('',*,*,#11162,.T.);\r
--#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));\r
--#11178=FACE_OUTER_BOUND('',#11177,.F.);\r
--#11179=ADVANCED_FACE('',(#11178),#11172,.F.);\r
--#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));\r
--#11181=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11182=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);\r
--#11184=PLANE('',#11183);\r
--#11185=ORIENTED_EDGE('',*,*,#5878,.F.);\r
--#11187=ORIENTED_EDGE('',*,*,#11186,.T.);\r
--#11189=ORIENTED_EDGE('',*,*,#11188,.T.);\r
--#11191=ORIENTED_EDGE('',*,*,#11190,.F.);\r
--#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));\r
--#11193=FACE_OUTER_BOUND('',#11192,.F.);\r
--#11194=ADVANCED_FACE('',(#11193),#11184,.F.);\r
--#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));\r
--#11196=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11197=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);\r
--#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);\r
--#11200=ORIENTED_EDGE('',*,*,#5884,.F.);\r
--#11202=ORIENTED_EDGE('',*,*,#11201,.T.);\r
--#11204=ORIENTED_EDGE('',*,*,#11203,.T.);\r
--#11205=ORIENTED_EDGE('',*,*,#11186,.F.);\r
--#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));\r
--#11207=FACE_OUTER_BOUND('',#11206,.F.);\r
--#11208=ADVANCED_FACE('',(#11207),#11199,.F.);\r
--#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));\r
--#11210=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11211=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);\r
--#11213=PLANE('',#11212);\r
--#11214=ORIENTED_EDGE('',*,*,#5882,.F.);\r
--#11216=ORIENTED_EDGE('',*,*,#11215,.T.);\r
--#11218=ORIENTED_EDGE('',*,*,#11217,.T.);\r
--#11219=ORIENTED_EDGE('',*,*,#11201,.F.);\r
--#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));\r
--#11221=FACE_OUTER_BOUND('',#11220,.F.);\r
--#11222=ADVANCED_FACE('',(#11221),#11213,.F.);\r
--#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));\r
--#11224=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11225=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);\r
--#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);\r
--#11228=ORIENTED_EDGE('',*,*,#5880,.F.);\r
--#11229=ORIENTED_EDGE('',*,*,#11190,.T.);\r
--#11231=ORIENTED_EDGE('',*,*,#11230,.T.);\r
--#11232=ORIENTED_EDGE('',*,*,#11215,.F.);\r
--#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));\r
--#11234=FACE_OUTER_BOUND('',#11233,.F.);\r
--#11235=ADVANCED_FACE('',(#11234),#11227,.F.);\r
--#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));\r
--#11237=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11238=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);\r
--#11240=PLANE('',#11239);\r
--#11241=ORIENTED_EDGE('',*,*,#11188,.F.);\r
--#11242=ORIENTED_EDGE('',*,*,#11203,.F.);\r
--#11243=ORIENTED_EDGE('',*,*,#11217,.F.);\r
--#11244=ORIENTED_EDGE('',*,*,#11230,.F.);\r
--#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));\r
--#11246=FACE_OUTER_BOUND('',#11245,.F.);\r
--#11247=ADVANCED_FACE('',(#11246),#11240,.T.);\r
--#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));\r
--#11249=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11250=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);\r
--#11252=PLANE('',#11251);\r
--#11254=ORIENTED_EDGE('',*,*,#11253,.F.);\r
--#11256=ORIENTED_EDGE('',*,*,#11255,.F.);\r
--#11258=ORIENTED_EDGE('',*,*,#11257,.F.);\r
--#11260=ORIENTED_EDGE('',*,*,#11259,.F.);\r
--#11262=ORIENTED_EDGE('',*,*,#11261,.F.);\r
--#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));\r
--#11264=FACE_OUTER_BOUND('',#11263,.F.);\r
--#11265=ADVANCED_FACE('',(#11264),#11252,.T.);\r
--#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,\r
--2.742280476768E1));\r
--#11267=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);\r
--#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);\r
--#11272=ORIENTED_EDGE('',*,*,#11271,.F.);\r
--#11273=ORIENTED_EDGE('',*,*,#5944,.T.);\r
--#11275=ORIENTED_EDGE('',*,*,#11274,.T.);\r
--#11276=ORIENTED_EDGE('',*,*,#11253,.T.);\r
--#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));\r
--#11278=FACE_OUTER_BOUND('',#11277,.F.);\r
--#11279=ADVANCED_FACE('',(#11278),#11270,.F.);\r
--#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));\r
--#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));\r
--#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);\r
--#11284=PLANE('',#11283);\r
--#11285=ORIENTED_EDGE('',*,*,#11271,.T.);\r
--#11286=ORIENTED_EDGE('',*,*,#11261,.T.);\r
--#11288=ORIENTED_EDGE('',*,*,#11287,.F.);\r
--#11289=ORIENTED_EDGE('',*,*,#5946,.F.);\r
--#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));\r
--#11291=FACE_OUTER_BOUND('',#11290,.F.);\r
--#11292=ADVANCED_FACE('',(#11291),#11284,.F.);\r
--#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));\r
--#11294=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11295=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);\r
--#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);\r
--#11298=ORIENTED_EDGE('',*,*,#5948,.F.);\r
--#11299=ORIENTED_EDGE('',*,*,#11287,.T.);\r
--#11300=ORIENTED_EDGE('',*,*,#11259,.T.);\r
--#11302=ORIENTED_EDGE('',*,*,#11301,.F.);\r
--#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));\r
--#11304=FACE_OUTER_BOUND('',#11303,.F.);\r
--#11305=ADVANCED_FACE('',(#11304),#11297,.F.);\r
--#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));\r
--#11307=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11308=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);\r
--#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);\r
--#11311=ORIENTED_EDGE('',*,*,#5950,.T.);\r
--#11312=ORIENTED_EDGE('',*,*,#11301,.T.);\r
--#11313=ORIENTED_EDGE('',*,*,#11257,.T.);\r
--#11315=ORIENTED_EDGE('',*,*,#11314,.F.);\r
--#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));\r
--#11317=FACE_OUTER_BOUND('',#11316,.F.);\r
--#11318=ADVANCED_FACE('',(#11317),#11310,.T.);\r
--#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));\r
--#11320=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11321=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);\r
--#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);\r
--#11324=ORIENTED_EDGE('',*,*,#11274,.F.);\r
--#11325=ORIENTED_EDGE('',*,*,#5942,.F.);\r
--#11326=ORIENTED_EDGE('',*,*,#11314,.T.);\r
--#11327=ORIENTED_EDGE('',*,*,#11255,.T.);\r
--#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));\r
--#11329=FACE_OUTER_BOUND('',#11328,.F.);\r
--#11330=ADVANCED_FACE('',(#11329),#11323,.F.);\r
--#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));\r
--#11332=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11333=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);\r
--#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);\r
--#11337=ORIENTED_EDGE('',*,*,#11336,.T.);\r
--#11339=ORIENTED_EDGE('',*,*,#11338,.T.);\r
--#11341=ORIENTED_EDGE('',*,*,#11340,.F.);\r
--#11342=ORIENTED_EDGE('',*,*,#5888,.T.);\r
--#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));\r
--#11344=FACE_OUTER_BOUND('',#11343,.F.);\r
--#11345=ADVANCED_FACE('',(#11344),#11335,.T.);\r
--#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));\r
--#11347=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11348=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);\r
--#11350=PLANE('',#11349);\r
--#11351=ORIENTED_EDGE('',*,*,#11336,.F.);\r
--#11352=ORIENTED_EDGE('',*,*,#5914,.T.);\r
--#11354=ORIENTED_EDGE('',*,*,#11353,.F.);\r
--#11356=ORIENTED_EDGE('',*,*,#11355,.F.);\r
--#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));\r
--#11358=FACE_OUTER_BOUND('',#11357,.F.);\r
--#11359=ADVANCED_FACE('',(#11358),#11350,.T.);\r
--#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));\r
--#11361=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11362=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);\r
--#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);\r
--#11366=ORIENTED_EDGE('',*,*,#11365,.F.);\r
--#11368=ORIENTED_EDGE('',*,*,#11367,.T.);\r
--#11369=ORIENTED_EDGE('',*,*,#11353,.T.);\r
--#11370=ORIENTED_EDGE('',*,*,#5912,.T.);\r
--#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));\r
--#11372=FACE_OUTER_BOUND('',#11371,.F.);\r
--#11373=ADVANCED_FACE('',(#11372),#11364,.F.);\r
--#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));\r
--#11375=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11376=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);\r
--#11378=PLANE('',#11377);\r
--#11379=ORIENTED_EDGE('',*,*,#11365,.T.);\r
--#11380=ORIENTED_EDGE('',*,*,#5910,.T.);\r
--#11382=ORIENTED_EDGE('',*,*,#11381,.F.);\r
--#11384=ORIENTED_EDGE('',*,*,#11383,.F.);\r
--#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));\r
--#11386=FACE_OUTER_BOUND('',#11385,.F.);\r
--#11387=ADVANCED_FACE('',(#11386),#11378,.T.);\r
--#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));\r
--#11389=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11390=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);\r
--#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);\r
--#11394=ORIENTED_EDGE('',*,*,#11393,.F.);\r
--#11396=ORIENTED_EDGE('',*,*,#11395,.T.);\r
--#11397=ORIENTED_EDGE('',*,*,#11381,.T.);\r
--#11398=ORIENTED_EDGE('',*,*,#5908,.T.);\r
--#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));\r
--#11400=FACE_OUTER_BOUND('',#11399,.F.);\r
--#11401=ADVANCED_FACE('',(#11400),#11392,.F.);\r
--#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));\r
--#11403=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11404=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);\r
--#11406=PLANE('',#11405);\r
--#11407=ORIENTED_EDGE('',*,*,#11393,.T.);\r
--#11408=ORIENTED_EDGE('',*,*,#5906,.T.);\r
--#11410=ORIENTED_EDGE('',*,*,#11409,.F.);\r
--#11412=ORIENTED_EDGE('',*,*,#11411,.F.);\r
--#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));\r
--#11414=FACE_OUTER_BOUND('',#11413,.F.);\r
--#11415=ADVANCED_FACE('',(#11414),#11406,.T.);\r
--#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));\r
--#11417=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11418=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);\r
--#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);\r
--#11422=ORIENTED_EDGE('',*,*,#11421,.F.);\r
--#11424=ORIENTED_EDGE('',*,*,#11423,.T.);\r
--#11425=ORIENTED_EDGE('',*,*,#11409,.T.);\r
--#11426=ORIENTED_EDGE('',*,*,#5904,.T.);\r
--#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));\r
--#11428=FACE_OUTER_BOUND('',#11427,.F.);\r
--#11429=ADVANCED_FACE('',(#11428),#11420,.F.);\r
--#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));\r
--#11431=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11432=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);\r
--#11434=PLANE('',#11433);\r
--#11436=ORIENTED_EDGE('',*,*,#11435,.F.);\r
--#11438=ORIENTED_EDGE('',*,*,#11437,.F.);\r
--#11439=ORIENTED_EDGE('',*,*,#11421,.T.);\r
--#11440=ORIENTED_EDGE('',*,*,#5902,.T.);\r
--#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));\r
--#11442=FACE_OUTER_BOUND('',#11441,.F.);\r
--#11443=ADVANCED_FACE('',(#11442),#11434,.T.);\r
--#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));\r
--#11445=DIRECTION('',(0.E0,-1.E0,0.E0));\r
--#11446=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);\r
--#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);\r
--#11450=ORIENTED_EDGE('',*,*,#11449,.F.);\r
--#11452=ORIENTED_EDGE('',*,*,#11451,.T.);\r
--#11453=ORIENTED_EDGE('',*,*,#11435,.T.);\r
--#11454=ORIENTED_EDGE('',*,*,#5900,.T.);\r
--#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));\r
--#11456=FACE_OUTER_BOUND('',#11455,.F.);\r
--#11457=ADVANCED_FACE('',(#11456),#11448,.F.);\r
--#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));\r
--#11459=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11460=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);\r
--#11462=PLANE('',#11461);\r
--#11464=ORIENTED_EDGE('',*,*,#11463,.T.);\r
--#11466=ORIENTED_EDGE('',*,*,#11465,.F.);\r
--#11467=ORIENTED_EDGE('',*,*,#11449,.T.);\r
--#11468=ORIENTED_EDGE('',*,*,#5898,.T.);\r
--#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));\r
--#11470=FACE_OUTER_BOUND('',#11469,.F.);\r
--#11471=ADVANCED_FACE('',(#11470),#11462,.T.);\r
--#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));\r
--#11473=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11474=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);\r
--#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);\r
--#11478=ORIENTED_EDGE('',*,*,#11477,.T.);\r
--#11480=ORIENTED_EDGE('',*,*,#11479,.T.);\r
--#11481=ORIENTED_EDGE('',*,*,#11463,.F.);\r
--#11482=ORIENTED_EDGE('',*,*,#5896,.T.);\r
--#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));\r
--#11484=FACE_OUTER_BOUND('',#11483,.F.);\r
--#11485=ADVANCED_FACE('',(#11484),#11476,.T.);\r
--#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));\r
--#11487=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11488=DIRECTION('',(0.E0,0.E0,-1.E0));\r
--#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);\r
--#11490=PLANE('',#11489);\r
--#11491=ORIENTED_EDGE('',*,*,#11477,.F.);\r
--#11492=ORIENTED_EDGE('',*,*,#5894,.T.);\r
--#11494=ORIENTED_EDGE('',*,*,#11493,.T.);\r
--#11496=ORIENTED_EDGE('',*,*,#11495,.F.);\r
--#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));\r
--#11498=FACE_OUTER_BOUND('',#11497,.F.);\r
--#11499=ADVANCED_FACE('',(#11498),#11490,.T.);\r
--#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));\r
--#11501=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11502=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);\r
--#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);\r
--#11505=ORIENTED_EDGE('',*,*,#5892,.T.);\r
--#11507=ORIENTED_EDGE('',*,*,#11506,.T.);\r
--#11509=ORIENTED_EDGE('',*,*,#11508,.F.);\r
--#11510=ORIENTED_EDGE('',*,*,#11493,.F.);\r
--#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));\r
--#11512=FACE_OUTER_BOUND('',#11511,.F.);\r
--#11513=ADVANCED_FACE('',(#11512),#11504,.F.);\r
--#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));\r
--#11515=DIRECTION('',(1.E0,0.E0,0.E0));\r
--#11516=DIRECTION('',(0.E0,0.E0,1.E0));\r
--#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);\r
--#11518=PLANE('',#11517);\r
--#11519=ORIENTED_EDGE('',*,*,#11340,.T.);\r
--#11521=ORIENTED_EDGE('',*,*,#11520,.F.);\r
--#11522=ORIENTED_EDGE('',*,*,#11506,.F.);\r
--#11523=ORIENTED_EDGE('',*,*,#5890,.T.);\r
--#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));\r
--#11525=FACE_OUTER_BOUND('',#11524,.F.);\r
--#11526=ADVANCED_FACE('',(#11525),#11518,.T.);\r
--#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));\r
--#11528=DIRECTION('',(0.E0,1.E0,0.E0));\r
--#11529=DIRECTION('',(-1.E0,0.E0,0.E0));\r
--#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);\r
--#11531=PLANE('',#11530);\r
--#11532=ORIENTED_EDGE('',*,*,#11465,.T.);\r
--#11533=ORIENTED_EDGE('',*,*,#11479,.F.);\r
--#11534=ORIENTED_EDGE('',*,*,#11495,.T.);\r
--#11535=ORIENTED_EDGE('',*,*,#11508,.T.);\r
--#11536=ORIENTED_EDGE('',*,*,#11520,.T.);\r
--#11537=ORIENTED_EDGE('',*,*,#11338,.F.);\r
--#11538=ORIENTED_EDGE('',*,*,#11355,.T.);\r
--#11539=ORIENTED_EDGE('',*,*,#11367,.F.);\r
--#11540=ORIENTED_EDGE('',*,*,#11383,.T.);\r
--#11541=ORIENTED_EDGE('',*,*,#11395,.F.);\r
--#11542=ORIENTED_EDGE('',*,*,#11411,.T.);\r
--#11543=ORIENTED_EDGE('',*,*,#11423,.F.);\r
--#11544=ORIENTED_EDGE('',*,*,#11437,.T.);\r
--#11545=ORIENTED_EDGE('',*,*,#11451,.F.);\r
--#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,\r
--#11540,#11541,#11542,#11543,#11544,#11545));\r
--#11547=FACE_OUTER_BOUND('',#11546,.F.);\r
--#11548=ADVANCED_FACE('',(#11547),#11531,.F.);\r
--#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,\r
--#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,\r
--#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,\r
--#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,\r
--#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,\r
--#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,\r
--#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,\r
--#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,\r
--#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,\r
--#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,\r
--#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,\r
--#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,\r
--#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,\r
--#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,\r
--#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,\r
--#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,\r
--#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,\r
--#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,\r
--#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,\r
--#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,\r
--#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,\r
--#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,\r
--#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,\r
--#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,\r
--#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,\r
--#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,\r
--#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,\r
--#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,\r
--#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,\r
--#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,\r
--#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));\r
--#11550=MANIFOLD_SOLID_BREP('',#11549);\r
--#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);\r
--#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));\r
--#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);\r
--#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));\r
--#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);\r
--#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));\r
--#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),\r
--#11556);\r
--#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());\r
--#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());\r
--#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,\r
--'closure',\r
--'Maximum model space distance between geometric entities at asserted connectivities');\r
--#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((\r
--#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));\r
--#11563=APPLICATION_CONTEXT(\r
--'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');\r
--#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',\r
--'config_control_design',1994,#11563);\r
--#11565=DESIGN_CONTEXT('',#11563,'design');\r
--#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');\r
--#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));\r
--#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',\r
--#11567,.MADE.);\r
--#11572=PRODUCT_CATEGORY('part','');\r
--#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));\r
--#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);\r
--#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');\r
--#11576=SECURITY_CLASSIFICATION('','',#11575);\r
--#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));\r
--#11578=APPROVAL_STATUS('approved');\r
--#11579=APPROVAL(#11578,'');\r
--#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));\r
--#11581=CALENDAR_DATE(102,4,11);\r
--#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);\r
--#11583=LOCAL_TIME(14,0,4.8E1,#11582);\r
--#11584=DATE_AND_TIME(#11581,#11583);\r
--#11585=APPROVAL_DATE_TIME(#11584,#11579);\r
--#11586=DATE_TIME_ROLE('creation_date');\r
--#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));\r
--#11588=DATE_TIME_ROLE('classification_date');\r
--#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));\r
--#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);\r
--#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');\r
--#11592=PERSON_AND_ORGANIZATION(#11590,#11591);\r
--#11593=APPROVAL_ROLE('approver');\r
--#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);\r
--#11595=PERSON_AND_ORGANIZATION_ROLE('creator');\r
--#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,\r
--#11569));\r
--#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');\r
--#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));\r
--#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');\r
--#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));\r
--#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');\r
--#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));\r
--#13=CIRCLE('',#12,1.925E-1);\r
--#18=CIRCLE('',#17,1.925E-1);\r
--#23=CIRCLE('',#22,1.925E-1);\r
--#28=CIRCLE('',#27,1.925E-1);\r
--#33=CIRCLE('',#32,1.925E-1);\r
--#38=CIRCLE('',#37,1.925E-1);\r
--#43=CIRCLE('',#42,1.925E-1);\r
--#48=CIRCLE('',#47,1.925E-1);\r
--#53=CIRCLE('',#52,1.925E-1);\r
--#58=CIRCLE('',#57,1.925E-1);\r
--#63=CIRCLE('',#62,1.925E-1);\r
--#68=CIRCLE('',#67,1.925E-1);\r
--#73=CIRCLE('',#72,1.925E-1);\r
--#78=CIRCLE('',#77,1.925E-1);\r
--#83=CIRCLE('',#82,1.925E-1);\r
--#88=CIRCLE('',#87,1.925E-1);\r
--#93=CIRCLE('',#92,1.925E-1);\r
--#98=CIRCLE('',#97,1.925E-1);\r
--#103=CIRCLE('',#102,1.925E-1);\r
--#108=CIRCLE('',#107,1.925E-1);\r
--#113=CIRCLE('',#112,1.925E-1);\r
--#118=CIRCLE('',#117,1.925E-1);\r
--#123=CIRCLE('',#122,1.925E-1);\r
--#128=CIRCLE('',#127,1.925E-1);\r
--#181=CIRCLE('',#180,1.925E-1);\r
--#186=CIRCLE('',#185,1.925E-1);\r
--#191=CIRCLE('',#190,1.925E-1);\r
--#196=CIRCLE('',#195,1.925E-1);\r
--#249=CIRCLE('',#248,1.925E-1);\r
--#254=CIRCLE('',#253,1.925E-1);\r
--#259=CIRCLE('',#258,1.925E-1);\r
--#264=CIRCLE('',#263,1.925E-1);\r
--#269=CIRCLE('',#268,1.925E-1);\r
--#274=CIRCLE('',#273,1.925E-1);\r
--#279=CIRCLE('',#278,1.925E-1);\r
--#284=CIRCLE('',#283,1.925E-1);\r
--#289=CIRCLE('',#288,1.925E-1);\r
--#294=CIRCLE('',#293,1.925E-1);\r
--#299=CIRCLE('',#298,1.925E-1);\r
--#304=CIRCLE('',#303,1.925E-1);\r
--#313=CIRCLE('',#312,5.625E-1);\r
--#322=CIRCLE('',#321,5.625E-1);\r
--#327=CIRCLE('',#326,9.225E-1);\r
--#336=CIRCLE('',#335,8.669989027347E-1);\r
--#341=CIRCLE('',#340,5.6875E0);\r
--#350=CIRCLE('',#349,5.6125E-1);\r
--#383=CIRCLE('',#382,5.625E-1);\r
--#392=CIRCLE('',#391,5.625E-1);\r
--#401=CIRCLE('',#400,5.625E-1);\r
--#410=CIRCLE('',#409,5.625E-1);\r
--#419=CIRCLE('',#418,5.E-1);\r
--#428=CIRCLE('',#427,5.E-1);\r
--#437=CIRCLE('',#436,4.375E-1);\r
--#446=CIRCLE('',#445,4.375E-1);\r
--#455=CIRCLE('',#454,5.625E-1);\r
--#464=CIRCLE('',#463,5.625E-1);\r
--#473=CIRCLE('',#472,5.625E-1);\r
--#482=CIRCLE('',#481,5.625E-1);\r
--#491=CIRCLE('',#490,5.625E-1);\r
--#500=CIRCLE('',#499,5.625E-1);\r
--#509=CIRCLE('',#508,5.625E-1);\r
--#518=CIRCLE('',#517,5.625E-1);\r
--#527=CIRCLE('',#526,5.E-1);\r
--#536=CIRCLE('',#535,5.E-1);\r
--#545=CIRCLE('',#544,4.375E-1);\r
--#554=CIRCLE('',#553,4.375E-1);\r
--#563=CIRCLE('',#562,5.625E-1);\r
--#572=CIRCLE('',#571,5.625E-1);\r
--#581=CIRCLE('',#580,5.6125E-1);\r
--#614=CIRCLE('',#613,9.225E-1);\r
--#619=CIRCLE('',#618,5.6875E0);\r
--#624=CIRCLE('',#623,8.669989027347E-1);\r
--#633=CIRCLE('',#632,9.225E-1);\r
--#638=CIRCLE('',#637,5.6875E0);\r
--#643=CIRCLE('',#642,8.669989027347E-1);\r
--#648=CIRCLE('',#647,9.225E-1);\r
--#657=CIRCLE('',#656,8.669989027347E-1);\r
--#662=CIRCLE('',#661,5.6875E0);\r
--#667=CIRCLE('',#666,9.5E-2);\r
--#672=CIRCLE('',#671,9.5E-2);\r
--#677=CIRCLE('',#676,1.625E-1);\r
--#682=CIRCLE('',#681,1.625E-1);\r
--#687=CIRCLE('',#686,9.5E-2);\r
--#692=CIRCLE('',#691,9.5E-2);\r
--#697=CIRCLE('',#696,9.5E-2);\r
--#702=CIRCLE('',#701,9.5E-2);\r
--#707=CIRCLE('',#706,9.5E-2);\r
--#712=CIRCLE('',#711,9.5E-2);\r
--#717=CIRCLE('',#716,9.5E-2);\r
--#722=CIRCLE('',#721,9.5E-2);\r
--#727=CIRCLE('',#726,1.625E-1);\r
--#732=CIRCLE('',#731,1.625E-1);\r
--#737=CIRCLE('',#736,9.5E-2);\r
--#742=CIRCLE('',#741,9.5E-2);\r
--#803=CIRCLE('',#802,9.5E-2);\r
--#808=CIRCLE('',#807,9.5E-2);\r
--#821=CIRCLE('',#820,1.625E-1);\r
--#826=CIRCLE('',#825,1.625E-1);\r
--#887=CIRCLE('',#886,1.E-1);\r
--#892=CIRCLE('',#891,1.E-1);\r
--#897=CIRCLE('',#896,1.E-1);\r
--#902=CIRCLE('',#901,1.E-1);\r
--#931=CIRCLE('',#930,1.E-1);\r
--#936=CIRCLE('',#935,1.E-1);\r
--#941=CIRCLE('',#940,1.E-1);\r
--#946=CIRCLE('',#945,1.E-1);\r
--#951=CIRCLE('',#950,2.575E-1);\r
--#956=CIRCLE('',#955,2.575E-1);\r
--#961=CIRCLE('',#960,2.575E-1);\r
--#966=CIRCLE('',#965,2.575E-1);\r
--#971=CIRCLE('',#970,2.575E-1);\r
--#976=CIRCLE('',#975,2.575E-1);\r
--#981=CIRCLE('',#980,2.575E-1);\r
--#986=CIRCLE('',#985,2.575E-1);\r
--#991=CIRCLE('',#990,2.575E-1);\r
--#996=CIRCLE('',#995,2.575E-1);\r
--#1001=CIRCLE('',#1000,2.575E-1);\r
--#1006=CIRCLE('',#1005,2.575E-1);\r
--#1011=CIRCLE('',#1010,2.56E-1);\r
--#1016=CIRCLE('',#1015,2.56E-1);\r
--#1021=CIRCLE('',#1020,2.56E-1);\r
--#1026=CIRCLE('',#1025,2.56E-1);\r
--#1031=CIRCLE('',#1030,2.56E-1);\r
--#1036=CIRCLE('',#1035,2.56E-1);\r
--#1041=CIRCLE('',#1040,2.56E-1);\r
--#1046=CIRCLE('',#1045,2.56E-1);\r
--#1051=CIRCLE('',#1050,2.56E-1);\r
--#1056=CIRCLE('',#1055,2.56E-1);\r
--#1061=CIRCLE('',#1060,2.56E-1);\r
--#1066=CIRCLE('',#1065,2.56E-1);\r
--#1115=CIRCLE('',#1114,2.575E-1);\r
--#1120=CIRCLE('',#1119,2.575E-1);\r
--#1125=CIRCLE('',#1124,2.575E-1);\r
--#1130=CIRCLE('',#1129,2.575E-1);\r
--#1135=CIRCLE('',#1134,2.575E-1);\r
--#1140=CIRCLE('',#1139,2.575E-1);\r
--#1145=CIRCLE('',#1144,2.575E-1);\r
--#1150=CIRCLE('',#1149,2.575E-1);\r
--#1155=CIRCLE('',#1154,2.575E-1);\r
--#1160=CIRCLE('',#1159,2.575E-1);\r
--#1165=CIRCLE('',#1164,2.575E-1);\r
--#1170=CIRCLE('',#1169,2.575E-1);\r
--#1259=CIRCLE('',#1258,1.E-1);\r
--#1268=CIRCLE('',#1267,1.E-1);\r
--#1285=CIRCLE('',#1284,1.E-1);\r
--#1294=CIRCLE('',#1293,1.E-1);\r
--#1303=CIRCLE('',#1302,1.E0);\r
--#1312=CIRCLE('',#1311,1.E0);\r
--#1317=CIRCLE('',#1316,5.E0);\r
--#1326=CIRCLE('',#1325,5.E0);\r
--#1331=CIRCLE('',#1330,5.E0);\r
--#1340=CIRCLE('',#1339,5.E0);\r
--#1349=CIRCLE('',#1348,1.E0);\r
--#1358=CIRCLE('',#1357,1.E0);\r
--#1367=CIRCLE('',#1366,1.E0);\r
--#1376=CIRCLE('',#1375,1.E0);\r
--#1385=CIRCLE('',#1384,1.E0);\r
--#1394=CIRCLE('',#1393,1.E0);\r
--#1403=CIRCLE('',#1402,1.E0);\r
--#1412=CIRCLE('',#1411,1.E0);\r
--#1421=CIRCLE('',#1420,3.E0);\r
--#1430=CIRCLE('',#1429,3.E0);\r
--#1439=CIRCLE('',#1438,3.E0);\r
--#1448=CIRCLE('',#1447,3.E0);\r
--#1457=CIRCLE('',#1456,5.E0);\r
--#1466=CIRCLE('',#1465,5.E0);\r
--#1475=CIRCLE('',#1474,5.E0);\r
--#1484=CIRCLE('',#1483,5.E0);\r
--#1493=CIRCLE('',#1492,3.E0);\r
--#1502=CIRCLE('',#1501,3.E0);\r
--#1511=CIRCLE('',#1510,3.E0);\r
--#1520=CIRCLE('',#1519,3.E0);\r
--#1529=CIRCLE('',#1528,1.E0);\r
--#1538=CIRCLE('',#1537,1.E0);\r
--#1547=CIRCLE('',#1546,1.E0);\r
--#1556=CIRCLE('',#1555,1.E0);\r
--#1597=CIRCLE('',#1596,1.E0);\r
--#1606=CIRCLE('',#1605,1.E0);\r
--#1675=CIRCLE('',#1674,9.5E-2);\r
--#1680=CIRCLE('',#1679,9.5E-2);\r
--#1685=CIRCLE('',#1684,6.25E-2);\r
--#1690=CIRCLE('',#1689,6.25E-2);\r
--#1707=CIRCLE('',#1706,1.E0);\r
--#1716=CIRCLE('',#1715,1.E0);\r
--#1729=CIRCLE('',#1728,1.E0);\r
--#1738=CIRCLE('',#1737,1.E0);\r
--#1767=CIRCLE('',#1766,1.625E-1);\r
--#1772=CIRCLE('',#1771,1.625E-1);\r
--#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,\r
--#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
--#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,\r
--#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
--#1873=CIRCLE('',#1872,2.575E-1);\r
--#1878=CIRCLE('',#1877,2.575E-1);\r
--#1883=CIRCLE('',#1882,1.925E-1);\r
--#1888=CIRCLE('',#1887,1.925E-1);\r
--#1933=CIRCLE('',#1932,9.5E-2);\r
--#1938=CIRCLE('',#1937,9.5E-2);\r
--#1943=CIRCLE('',#1942,6.25E-2);\r
--#1948=CIRCLE('',#1947,6.25E-2);\r
--#1961=CIRCLE('',#1960,9.5E-2);\r
--#1966=CIRCLE('',#1965,9.5E-2);\r
--#1979=CIRCLE('',#1978,6.25E-2);\r
--#1984=CIRCLE('',#1983,6.25E-2);\r
--#1993=CIRCLE('',#1992,3.5E-1);\r
--#2002=CIRCLE('',#2001,3.5E-1);\r
--#2035=CIRCLE('',#2034,3.5E-1);\r
--#2044=CIRCLE('',#2043,3.5E-1);\r
--#2053=CIRCLE('',#2052,3.5E-1);\r
--#2062=CIRCLE('',#2061,3.5E-1);\r
--#2071=CIRCLE('',#2070,3.5E-1);\r
--#2080=CIRCLE('',#2079,3.5E-1);\r
--#2089=CIRCLE('',#2088,3.5E-1);\r
--#2098=CIRCLE('',#2097,3.5E-1);\r
--#2107=CIRCLE('',#2106,3.5E-1);\r
--#2116=CIRCLE('',#2115,3.5E-1);\r
--#2145=CIRCLE('',#2144,9.5E-2);\r
--#2150=CIRCLE('',#2149,9.5E-2);\r
--#2163=CIRCLE('',#2162,6.25E-2);\r
--#2168=CIRCLE('',#2167,6.25E-2);\r
--#2189=CIRCLE('',#2188,1.E-1);\r
--#2194=CIRCLE('',#2193,1.E-1);\r
--#2215=CIRCLE('',#2214,1.E-1);\r
--#2220=CIRCLE('',#2219,1.E-1);\r
--#2233=CIRCLE('',#2232,2.575E-1);\r
--#2238=CIRCLE('',#2237,2.575E-1);\r
--#2243=CIRCLE('',#2242,1.925E-1);\r
--#2248=CIRCLE('',#2247,1.925E-1);\r
--#2269=CIRCLE('',#2268,2.575E-1);\r
--#2274=CIRCLE('',#2273,2.575E-1);\r
--#2279=CIRCLE('',#2278,1.925E-1);\r
--#2284=CIRCLE('',#2283,1.925E-1);\r
--#2305=CIRCLE('',#2304,2.575E-1);\r
--#2310=CIRCLE('',#2309,2.575E-1);\r
--#2315=CIRCLE('',#2314,1.925E-1);\r
--#2320=CIRCLE('',#2319,1.925E-1);\r
--#2341=CIRCLE('',#2340,2.575E-1);\r
--#2346=CIRCLE('',#2345,2.575E-1);\r
--#2351=CIRCLE('',#2350,1.925E-1);\r
--#2356=CIRCLE('',#2355,1.925E-1);\r
--#2377=CIRCLE('',#2376,2.575E-1);\r
--#2382=CIRCLE('',#2381,2.575E-1);\r
--#2387=CIRCLE('',#2386,1.925E-1);\r
--#2392=CIRCLE('',#2391,1.925E-1);\r
--#2413=CIRCLE('',#2412,2.575E-1);\r
--#2418=CIRCLE('',#2417,2.575E-1);\r
--#2423=CIRCLE('',#2422,1.925E-1);\r
--#2428=CIRCLE('',#2427,1.925E-1);\r
--#2449=CIRCLE('',#2448,2.56E-1);\r
--#2454=CIRCLE('',#2453,2.56E-1);\r
--#2459=CIRCLE('',#2458,1.925E-1);\r
--#2464=CIRCLE('',#2463,1.925E-1);\r
--#2485=CIRCLE('',#2484,2.56E-1);\r
--#2490=CIRCLE('',#2489,2.56E-1);\r
--#2495=CIRCLE('',#2494,1.925E-1);\r
--#2500=CIRCLE('',#2499,1.925E-1);\r
--#2521=CIRCLE('',#2520,2.56E-1);\r
--#2526=CIRCLE('',#2525,2.56E-1);\r
--#2531=CIRCLE('',#2530,1.925E-1);\r
--#2536=CIRCLE('',#2535,1.925E-1);\r
--#2557=CIRCLE('',#2556,2.56E-1);\r
--#2562=CIRCLE('',#2561,2.56E-1);\r
--#2567=CIRCLE('',#2566,1.925E-1);\r
--#2572=CIRCLE('',#2571,1.925E-1);\r
--#2593=CIRCLE('',#2592,2.56E-1);\r
--#2598=CIRCLE('',#2597,2.56E-1);\r
--#2603=CIRCLE('',#2602,1.925E-1);\r
--#2608=CIRCLE('',#2607,1.925E-1);\r
--#2629=CIRCLE('',#2628,2.56E-1);\r
--#2634=CIRCLE('',#2633,2.56E-1);\r
--#2639=CIRCLE('',#2638,1.925E-1);\r
--#2644=CIRCLE('',#2643,1.925E-1);\r
--#2665=CIRCLE('',#2664,2.575E-1);\r
--#2670=CIRCLE('',#2669,2.575E-1);\r
--#2675=CIRCLE('',#2674,1.925E-1);\r
--#2680=CIRCLE('',#2679,1.925E-1);\r
--#2701=CIRCLE('',#2700,2.575E-1);\r
--#2706=CIRCLE('',#2705,2.575E-1);\r
--#2711=CIRCLE('',#2710,1.925E-1);\r
--#2716=CIRCLE('',#2715,1.925E-1);\r
--#2737=CIRCLE('',#2736,2.575E-1);\r
--#2742=CIRCLE('',#2741,2.575E-1);\r
--#2747=CIRCLE('',#2746,1.925E-1);\r
--#2752=CIRCLE('',#2751,1.925E-1);\r
--#2773=CIRCLE('',#2772,2.575E-1);\r
--#2778=CIRCLE('',#2777,2.575E-1);\r
--#2783=CIRCLE('',#2782,1.925E-1);\r
--#2788=CIRCLE('',#2787,1.925E-1);\r
--#2809=CIRCLE('',#2808,2.575E-1);\r
--#2814=CIRCLE('',#2813,2.575E-1);\r
--#2819=CIRCLE('',#2818,1.925E-1);\r
--#2824=CIRCLE('',#2823,1.925E-1);\r
--#2845=CIRCLE('',#2844,2.575E-1);\r
--#2850=CIRCLE('',#2849,2.575E-1);\r
--#2855=CIRCLE('',#2854,1.925E-1);\r
--#2860=CIRCLE('',#2859,1.925E-1);\r
--#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,\r
--#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
--#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,\r
--#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,\r
--6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);\r
--#2905=CIRCLE('',#2904,2.575E-1);\r
--#2910=CIRCLE('',#2909,2.575E-1);\r
--#2915=CIRCLE('',#2914,1.925E-1);\r
--#2920=CIRCLE('',#2919,1.925E-1);\r
--#2937=CIRCLE('',#2936,3.5E-1);\r
--#2946=CIRCLE('',#2945,3.5E-1);\r
--#2955=CIRCLE('',#2954,3.5E-1);\r
--#2964=CIRCLE('',#2963,3.5E-1);\r
--#2973=CIRCLE('',#2972,3.5E-1);\r
--#2982=CIRCLE('',#2981,3.5E-1);\r
--#2991=CIRCLE('',#2990,3.5E-1);\r
--#3000=CIRCLE('',#2999,3.5E-1);\r
--#3009=CIRCLE('',#3008,3.5E-1);\r
--#3018=CIRCLE('',#3017,3.5E-1);\r
--#3027=CIRCLE('',#3026,3.5E-1);\r
--#3036=CIRCLE('',#3035,3.5E-1);\r
--#3073=CIRCLE('',#3072,9.5E-2);\r
--#3078=CIRCLE('',#3077,9.5E-2);\r
--#3091=CIRCLE('',#3090,9.5E-2);\r
--#3096=CIRCLE('',#3095,9.5E-2);\r
--#3109=CIRCLE('',#3108,9.5E-2);\r
--#3114=CIRCLE('',#3113,9.5E-2);\r
--#3127=CIRCLE('',#3126,9.5E-2);\r
--#3132=CIRCLE('',#3131,9.5E-2);\r
--#3145=CIRCLE('',#3144,9.5E-2);\r
--#3150=CIRCLE('',#3149,9.5E-2);\r
--#3159=CIRCLE('',#3158,7.5E-1);\r
--#3168=CIRCLE('',#3167,7.5E-1);\r
--#3177=CIRCLE('',#3176,7.5E-1);\r
--#3186=CIRCLE('',#3185,7.5E-1);\r
--#3195=CIRCLE('',#3194,7.5E-1);\r
--#3204=CIRCLE('',#3203,7.5E-1);\r
--#3213=CIRCLE('',#3212,7.5E-1);\r
--#3222=CIRCLE('',#3221,7.5E-1);\r
--#3247=CIRCLE('',#3246,7.5E-1);\r
--#3256=CIRCLE('',#3255,7.5E-1);\r
--#3281=CIRCLE('',#3280,7.5E-1);\r
--#3290=CIRCLE('',#3289,7.5E-1);\r
--#3299=CIRCLE('',#3298,7.5E-1);\r
--#3308=CIRCLE('',#3307,7.5E-1);\r
--#3317=CIRCLE('',#3316,7.5E-1);\r
--#3326=CIRCLE('',#3325,7.5E-1);\r
--#3351=CIRCLE('',#3350,5.625E-1);\r
--#3360=CIRCLE('',#3359,5.625E-1);\r
--#3365=CIRCLE('',#3364,9.225E-1);\r
--#3370=CIRCLE('',#3369,5.6875E0);\r
--#3375=CIRCLE('',#3374,8.669989027347E-1);\r
--#3388=CIRCLE('',#3387,7.5E-1);\r
--#3397=CIRCLE('',#3396,7.5E-1);\r
--#3418=CIRCLE('',#3417,8.75E-1);\r
--#3427=CIRCLE('',#3426,8.75E-1);\r
--#3440=CIRCLE('',#3439,5.6125E-1);\r
--#3469=CIRCLE('',#3468,8.75E-1);\r
--#3478=CIRCLE('',#3477,8.75E-1);\r
--#3495=CIRCLE('',#3494,8.75E-1);\r
--#3504=CIRCLE('',#3503,8.75E-1);\r
--#3513=CIRCLE('',#3512,8.75E-1);\r
--#3522=CIRCLE('',#3521,8.75E-1);\r
--#3531=CIRCLE('',#3530,8.75E-1);\r
--#3540=CIRCLE('',#3539,8.75E-1);\r
--#3549=CIRCLE('',#3548,8.75E-1);\r
--#3558=CIRCLE('',#3557,8.75E-1);\r
--#3583=CIRCLE('',#3582,5.625E-1);\r
--#3592=CIRCLE('',#3591,5.625E-1);\r
--#3617=CIRCLE('',#3616,5.625E-1);\r
--#3626=CIRCLE('',#3625,5.625E-1);\r
--#3651=CIRCLE('',#3650,5.E-1);\r
--#3660=CIRCLE('',#3659,5.E-1);\r
--#3685=CIRCLE('',#3684,4.375E-1);\r
--#3694=CIRCLE('',#3693,4.375E-1);\r
--#3719=CIRCLE('',#3718,5.625E-1);\r
--#3728=CIRCLE('',#3727,5.625E-1);\r
--#3737=CIRCLE('',#3736,8.669989027347E-1);\r
--#3742=CIRCLE('',#3741,5.6875E0);\r
--#3747=CIRCLE('',#3746,9.225E-1);\r
--#3756=CIRCLE('',#3755,7.5E-1);\r
--#3765=CIRCLE('',#3764,7.5E-1);\r
--#3802=CIRCLE('',#3801,5.625E-1);\r
--#3811=CIRCLE('',#3810,5.625E-1);\r
--#3820=CIRCLE('',#3819,8.669989027347E-1);\r
--#3825=CIRCLE('',#3824,5.6875E0);\r
--#3830=CIRCLE('',#3829,9.225E-1);\r
--#3839=CIRCLE('',#3838,7.5E-1);\r
--#3848=CIRCLE('',#3847,7.5E-1);\r
--#3885=CIRCLE('',#3884,5.625E-1);\r
--#3894=CIRCLE('',#3893,5.625E-1);\r
--#3919=CIRCLE('',#3918,5.625E-1);\r
--#3928=CIRCLE('',#3927,5.625E-1);\r
--#3953=CIRCLE('',#3952,5.E-1);\r
--#3962=CIRCLE('',#3961,5.E-1);\r
--#3987=CIRCLE('',#3986,4.375E-1);\r
--#3996=CIRCLE('',#3995,4.375E-1);\r
--#4021=CIRCLE('',#4020,5.625E-1);\r
--#4030=CIRCLE('',#4029,5.625E-1);\r
--#4035=CIRCLE('',#4034,9.225E-1);\r
--#4040=CIRCLE('',#4039,5.6875E0);\r
--#4045=CIRCLE('',#4044,8.669989027347E-1);\r
--#4058=CIRCLE('',#4057,7.5E-1);\r
--#4067=CIRCLE('',#4066,7.5E-1);\r
--#4088=CIRCLE('',#4087,8.8E-1);\r
--#4097=CIRCLE('',#4096,8.8E-1);\r
--#4106=CIRCLE('',#4105,8.8E-1);\r
--#4115=CIRCLE('',#4114,8.8E-1);\r
--#4124=CIRCLE('',#4123,8.8E-1);\r
--#4133=CIRCLE('',#4132,8.8E-1);\r
--#4142=CIRCLE('',#4141,8.8E-1);\r
--#4151=CIRCLE('',#4150,8.8E-1);\r
--#4160=CIRCLE('',#4159,8.8E-1);\r
--#4169=CIRCLE('',#4168,8.8E-1);\r
--#4178=CIRCLE('',#4177,8.8E-1);\r
--#4187=CIRCLE('',#4186,8.8E-1);\r
--#4208=CIRCLE('',#4207,5.6125E-1);\r
--#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);\r
--#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);\r
--#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);\r
--#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);\r
--#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);\r
--#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);\r
--#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);\r
--#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);\r
--#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);\r
--#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);\r
--#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);\r
--#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);\r
--#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);\r
--#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);\r
--#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);\r
--#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);\r
--#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);\r
--#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);\r
--#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);\r
--#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);\r
--#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);\r
--#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);\r
--#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);\r
--#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);\r
--#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);\r
--#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);\r
--#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);\r
--#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);\r
--#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);\r
--#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);\r
--#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);\r
--#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);\r
--#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);\r
--#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);\r
--#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);\r
--#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);\r
--#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);\r
--#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);\r
--#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);\r
--#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);\r
--#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);\r
--#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);\r
--#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);\r
--#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);\r
--#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);\r
--#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);\r
--#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);\r
--#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);\r
--#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);\r
--#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);\r
--#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);\r
--#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);\r
--#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);\r
--#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);\r
--#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);\r
--#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);\r
--#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);\r
--#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);\r
--#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);\r
--#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);\r
--#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);\r
--#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);\r
--#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);\r
--#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);\r
--#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);\r
--#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);\r
--#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);\r
--#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);\r
--#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);\r
--#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);\r
--#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);\r
--#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);\r
--#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);\r
--#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);\r
--#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);\r
--#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);\r
--#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);\r
--#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);\r
--#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);\r
--#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);\r
--#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);\r
--#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);\r
--#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);\r
--#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);\r
--#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);\r
--#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);\r
--#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);\r
--#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);\r
--#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);\r
--#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);\r
--#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);\r
--#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);\r
--#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);\r
--#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);\r
--#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);\r
--#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);\r
--#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);\r
--#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);\r
--#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);\r
--#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);\r
--#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);\r
--#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);\r
--#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);\r
--#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);\r
--#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);\r
--#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);\r
--#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);\r
--#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);\r
--#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);\r
--#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);\r
--#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);\r
--#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);\r
--#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);\r
--#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);\r
--#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);\r
--#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);\r
--#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);\r
--#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);\r
--#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);\r
--#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);\r
--#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);\r
--#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);\r
--#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);\r
--#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);\r
--#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);\r
--#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);\r
--#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);\r
--#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);\r
--#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);\r
--#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);\r
--#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);\r
--#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);\r
--#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);\r
--#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);\r
--#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);\r
--#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);\r
--#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);\r
--#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);\r
--#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);\r
--#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);\r
--#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);\r
--#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);\r
--#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);\r
--#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);\r
--#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);\r
--#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);\r
--#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);\r
--#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);\r
--#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);\r
--#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);\r
--#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);\r
--#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);\r
--#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);\r
--#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);\r
--#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);\r
--#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);\r
--#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);\r
--#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);\r
--#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);\r
--#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);\r
--#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);\r
--#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);\r
--#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);\r
--#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);\r
--#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);\r
--#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);\r
--#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);\r
--#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);\r
--#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);\r
--#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);\r
--#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);\r
--#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);\r
--#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);\r
--#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);\r
--#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);\r
--#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);\r
--#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);\r
--#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);\r
--#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);\r
--#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);\r
--#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);\r
--#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);\r
--#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);\r
--#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);\r
--#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);\r
--#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);\r
--#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);\r
--#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);\r
--#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);\r
--#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);\r
--#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);\r
--#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);\r
--#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);\r
--#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);\r
--#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);\r
--#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);\r
--#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);\r
--#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);\r
--#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);\r
--#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);\r
--#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);\r
--#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);\r
--#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);\r
--#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);\r
--#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);\r
--#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);\r
--#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);\r
--#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);\r
--#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);\r
--#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);\r
--#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);\r
--#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);\r
--#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);\r
--#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);\r
--#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);\r
--#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);\r
--#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);\r
--#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);\r
--#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);\r
--#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);\r
--#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);\r
--#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);\r
--#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);\r
--#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);\r
--#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);\r
--#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);\r
--#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);\r
--#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);\r
--#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);\r
--#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);\r
--#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);\r
--#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);\r
--#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);\r
--#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);\r
--#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);\r
--#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);\r
--#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);\r
--#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);\r
--#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);\r
--#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);\r
--#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);\r
--#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);\r
--#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);\r
--#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);\r
--#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);\r
--#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);\r
--#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);\r
--#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);\r
--#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);\r
--#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);\r
--#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);\r
--#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);\r
--#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);\r
--#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);\r
--#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);\r
--#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);\r
--#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);\r
--#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);\r
--#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);\r
--#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);\r
--#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);\r
--#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);\r
--#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);\r
--#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);\r
--#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);\r
--#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);\r
--#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);\r
--#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);\r
--#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);\r
--#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);\r
--#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);\r
--#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);\r
--#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);\r
--#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);\r
--#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);\r
--#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);\r
--#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);\r
--#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);\r
--#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);\r
--#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);\r
--#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);\r
--#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);\r
--#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);\r
--#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);\r
--#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);\r
--#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);\r
--#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);\r
--#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);\r
--#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);\r
--#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);\r
--#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);\r
--#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);\r
--#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);\r
--#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);\r
--#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);\r
--#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);\r
--#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);\r
--#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);\r
--#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);\r
--#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);\r
--#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);\r
--#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);\r
--#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);\r
--#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);\r
--#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);\r
--#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);\r
--#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);\r
--#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);\r
--#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);\r
--#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);\r
--#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);\r
--#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);\r
--#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);\r
--#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);\r
--#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);\r
--#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);\r
--#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);\r
--#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);\r
--#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);\r
--#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);\r
--#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);\r
--#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);\r
--#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);\r
--#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);\r
--#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);\r
--#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);\r
--#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);\r
--#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);\r
--#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);\r
--#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);\r
--#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);\r
--#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);\r
--#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);\r
--#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);\r
--#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);\r
--#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);\r
--#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);\r
--#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);\r
--#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);\r
--#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);\r
--#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);\r
--#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);\r
--#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);\r
--#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);\r
--#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);\r
--#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);\r
--#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);\r
--#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);\r
--#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);\r
--#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);\r
--#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);\r
--#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);\r
--#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);\r
--#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);\r
--#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);\r
--#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);\r
--#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);\r
--#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);\r
--#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);\r
--#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);\r
--#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);\r
--#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);\r
--#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);\r
--#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);\r
--#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);\r
--#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);\r
--#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);\r
--#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);\r
--#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);\r
--#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);\r
--#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);\r
--#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);\r
--#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);\r
--#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);\r
--#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);\r
--#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);\r
--#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);\r
--#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);\r
--#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);\r
--#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);\r
--#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);\r
--#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);\r
--#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);\r
--#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);\r
--#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);\r
--#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);\r
--#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);\r
--#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);\r
--#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);\r
--#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);\r
--#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);\r
--#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);\r
--#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);\r
--#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);\r
--#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);\r
--#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);\r
--#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);\r
--#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);\r
--#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);\r
--#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);\r
--#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);\r
--#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);\r
--#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);\r
--#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);\r
--#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);\r
--#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);\r
--#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);\r
--#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);\r
--#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);\r
--#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);\r
--#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);\r
--#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);\r
--#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);\r
--#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);\r
--#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);\r
--#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);\r
--#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);\r
--#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);\r
--#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);\r
--#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);\r
--#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);\r
--#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);\r
--#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);\r
--#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);\r
--#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);\r
--#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);\r
--#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);\r
--#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);\r
--#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);\r
--#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);\r
--#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);\r
--#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);\r
--#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);\r
--#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);\r
--#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);\r
--#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);\r
--#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);\r
--#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);\r
--#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);\r
--#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);\r
--#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);\r
--#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);\r
--#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);\r
--#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);\r
--#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);\r
--#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);\r
--#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);\r
--#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);\r
--#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);\r
--#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);\r
--#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);\r
--#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);\r
--#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);\r
--#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);\r
--#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);\r
--#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);\r
--#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);\r
--#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);\r
--#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);\r
--#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);\r
--#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);\r
--#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);\r
--#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);\r
--#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);\r
--#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);\r
--#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);\r
--#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);\r
--#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);\r
--#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);\r
--#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);\r
--#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);\r
--#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);\r
--#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);\r
--#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);\r
--#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);\r
--#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);\r
--#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);\r
--#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);\r
--#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);\r
--#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);\r
--#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);\r
--#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);\r
--#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);\r
--#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);\r
--#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);\r
--#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);\r
--#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);\r
--#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);\r
--#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);\r
--#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);\r
--#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);\r
--#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);\r
--#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);\r
--#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);\r
--#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);\r
--#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);\r
--#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);\r
--#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);\r
--#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);\r
--#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);\r
--#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);\r
--#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);\r
--#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);\r
--#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);\r
--#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);\r
--#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);\r
--#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);\r
--#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);\r
--#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);\r
--#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);\r
--#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);\r
--#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);\r
--#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);\r
--#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);\r
--#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);\r
--#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);\r
--#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);\r
--#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);\r
--#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);\r
--#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);\r
--#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);\r
--#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);\r
--#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);\r
--#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);\r
--#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);\r
--#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);\r
--#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);\r
--#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);\r
--#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);\r
--#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);\r
--#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);\r
--#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);\r
--#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);\r
--#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);\r
--#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);\r
--#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);\r
--#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);\r
--#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);\r
--#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);\r
--#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);\r
--#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);\r
--#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);\r
--#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);\r
--#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);\r
--#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);\r
--#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);\r
--#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);\r
--#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);\r
--#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);\r
--#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);\r
--#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);\r
--#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);\r
--#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);\r
--#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);\r
--#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);\r
--#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);\r
--#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);\r
--#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);\r
--#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);\r
--#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);\r
--#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);\r
--#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);\r
--#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);\r
--#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);\r
--#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);\r
--#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);\r
--#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);\r
--#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);\r
--#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);\r
--#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);\r
--#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);\r
--#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);\r
--#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);\r
--#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);\r
--#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);\r
--#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);\r
--#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);\r
--#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);\r
--#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);\r
--#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);\r
--#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);\r
--#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);\r
--#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);\r
--#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);\r
--#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);\r
--#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);\r
--#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);\r
--#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);\r
--#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);\r
--#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);\r
--#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);\r
--#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);\r
--#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);\r
--#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);\r
--#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);\r
--#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);\r
--#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);\r
--#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);\r
--#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);\r
--#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);\r
--#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);\r
--#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);\r
--#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);\r
--#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);\r
--#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);\r
--#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);\r
--#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);\r
--#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);\r
--#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);\r
--#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);\r
--#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);\r
--#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);\r
--#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);\r
--#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);\r
--#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);\r
--#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);\r
--#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);\r
--#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);\r
--#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);\r
--#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);\r
--#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);\r
--#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);\r
--#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);\r
--#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);\r
--#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);\r
--#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);\r
--#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);\r
--#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);\r
--#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);\r
--#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);\r
--#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);\r
--#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);\r
--#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);\r
--#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);\r
--#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);\r
--#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);\r
--#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);\r
--#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);\r
--#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);\r
--#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);\r
--#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);\r
--#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);\r
--#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);\r
--#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);\r
--#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);\r
--#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);\r
--#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);\r
--#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);\r
--#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);\r
--#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);\r
--#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);\r
--#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);\r
--#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);\r
--#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);\r
--#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);\r
--#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);\r
--#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);\r
--#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);\r
--#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);\r
--#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);\r
--#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);\r
--#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);\r
--#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);\r
--#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);\r
--#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);\r
--#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);\r
--#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);\r
--#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);\r
--#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);\r
--#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);\r
--#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);\r
--#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);\r
--#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);\r
--#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);\r
--#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);\r
--#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);\r
--#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);\r
--#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);\r
--#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);\r
--#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);\r
--#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);\r
--#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);\r
--#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);\r
--#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);\r
--#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);\r
--#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);\r
--#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);\r
--#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);\r
--#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);\r
--#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);\r
--#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);\r
--#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);\r
--#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);\r
--#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);\r
--#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);\r
--#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);\r
--#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);\r
--#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);\r
--#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);\r
--#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);\r
--#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);\r
--#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);\r
--#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);\r
--#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);\r
--#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);\r
--#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);\r
--#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);\r
--#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);\r
--#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);\r
--#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);\r
--#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);\r
--#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);\r
--#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);\r
--#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);\r
--#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);\r
--#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);\r
--#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);\r
--#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);\r
--#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);\r
--#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);\r
--#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);\r
--#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);\r
--#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);\r
--#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);\r
--#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);\r
--#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);\r
--#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);\r
--#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);\r
--#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);\r
--#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);\r
--#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);\r
--#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);\r
--#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);\r
--#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);\r
--#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);\r
--#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);\r
--#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);\r
--#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);\r
--#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);\r
--#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);\r
--#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);\r
--#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);\r
--#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);\r
--#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);\r
--#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);\r
--#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);\r
--#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);\r
--#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);\r
--#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);\r
--#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);\r
--#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);\r
--#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);\r
--#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);\r
--#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);\r
--#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);\r
--#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);\r
--#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);\r
--#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);\r
--#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);\r
--#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);\r
--#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);\r
--#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);\r
--#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);\r
--#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);\r
--#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);\r
--#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);\r
--#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);\r
--#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);\r
--#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);\r
--#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);\r
--#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);\r
--#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);\r
--#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);\r
--#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);\r
--#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);\r
--#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);\r
--#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);\r
--#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);\r
--#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);\r
--#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);\r
--#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);\r
--#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);\r
--#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);\r
--#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);\r
--#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);\r
--#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);\r
--#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);\r
--#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);\r
--#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);\r
--#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);\r
--#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);\r
--#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);\r
--#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);\r
--#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);\r
--#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);\r
--#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);\r
--#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);\r
--#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);\r
--#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);\r
--#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);\r
--#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);\r
--#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);\r
--#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);\r
--#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);\r
--#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);\r
--#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);\r
--#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);\r
--#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);\r
--#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);\r
--#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);\r
--#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);\r
--#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);\r
--#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);\r
--#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);\r
--#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);\r
--#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);\r
--#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);\r
--#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);\r
--#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);\r
--#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);\r
--#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);\r
--#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);\r
--#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);\r
--#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);\r
--#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);\r
--#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);\r
--#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);\r
--#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);\r
--#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);\r
--#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);\r
--#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);\r
--#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);\r
--#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);\r
--#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);\r
--#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);\r
--#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);\r
--#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);\r
--#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);\r
--#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);\r
--#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);\r
--#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);\r
--#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);\r
--#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);\r
--#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);\r
--#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);\r
--#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);\r
--#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);\r
--#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);\r
--#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);\r
--#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);\r
--#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);\r
--#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);\r
--#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);\r
--#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);\r
--#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);\r
--#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);\r
--#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);\r
--#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);\r
--#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);\r
--#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);\r
--#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);\r
--#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);\r
--#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);\r
--#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);\r
--#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);\r
--#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);\r
--#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);\r
--#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);\r
--#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);\r
--#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);\r
--#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);\r
--#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);\r
--#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);\r
--#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);\r
--#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);\r
--#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);\r
--#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);\r
--#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);\r
--#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);\r
--#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);\r
--#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);\r
--#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);\r
--#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);\r
--#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);\r
--#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);\r
--#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);\r
--#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);\r
--#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);\r
--#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);\r
--#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);\r
--#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);\r
--#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);\r
--#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);\r
--#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);\r
--#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);\r
--#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);\r
--#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);\r
--#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);\r
--#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);\r
--#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);\r
--#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);\r
--#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);\r
--#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);\r
--#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);\r
--#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);\r
--#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);\r
--#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);\r
--#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);\r
--#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);\r
--#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);\r
--#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);\r
--#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);\r
--#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);\r
--#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);\r
--#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);\r
--#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);\r
--#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);\r
--#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);\r
--#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);\r
--#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);\r
--#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);\r
--#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);\r
--#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);\r
--#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);\r
--#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);\r
--#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);\r
--#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);\r
--#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);\r
--#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);\r
--#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);\r
--#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);\r
--#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);\r
--#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);\r
--#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);\r
--#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);\r
--#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);\r
--#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);\r
--#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);\r
--#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);\r
--#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);\r
--#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);\r
--#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);\r
--#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);\r
--#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);\r
--#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);\r
--#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);\r
--#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);\r
--#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);\r
--#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);\r
--#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);\r
--#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);\r
--#11569=PRODUCT_DEFINITION('design','',#11568,#11565);\r
--#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);\r
--#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);\r
--ENDSEC;\r
--END-ISO-10303-21;\r
-+ISO-10303-21;
-+HEADER;
-+FILE_DESCRIPTION((''),'2;1');
-+FILE_NAME('PROESOURCE','2002-11-04T',('user-01'),(''),
-+'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060',
-+'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 2002060','');
-+FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
-+ENDSEC;
-+DATA;
-+#1=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2=VECTOR('',#1,1.693725393319E1);
-+#3=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#4=LINE('',#3,#2);
-+#5=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6=VECTOR('',#5,9.E0);
-+#7=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
-+#8=LINE('',#7,#6);
-+#9=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
-+#10=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11=DIRECTION('',(1.E0,0.E0,0.E0));
-+#12=AXIS2_PLACEMENT_3D('',#9,#10,#11);
-+#14=CARTESIAN_POINT('',(1.8E1,0.E0,3.075E1));
-+#15=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#16=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#17=AXIS2_PLACEMENT_3D('',#14,#15,#16);
-+#19=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
-+#20=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#21=DIRECTION('',(1.E0,0.E0,0.E0));
-+#22=AXIS2_PLACEMENT_3D('',#19,#20,#21);
-+#24=CARTESIAN_POINT('',(1.8E1,0.E0,1.25E0));
-+#25=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#26=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#27=AXIS2_PLACEMENT_3D('',#24,#25,#26);
-+#29=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
-+#30=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#31=DIRECTION('',(1.E0,0.E0,0.E0));
-+#32=AXIS2_PLACEMENT_3D('',#29,#30,#31);
-+#34=CARTESIAN_POINT('',(1.2E1,0.E0,3.075E1));
-+#35=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#36=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#37=AXIS2_PLACEMENT_3D('',#34,#35,#36);
-+#39=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
-+#40=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#41=DIRECTION('',(1.E0,0.E0,0.E0));
-+#42=AXIS2_PLACEMENT_3D('',#39,#40,#41);
-+#44=CARTESIAN_POINT('',(6.E0,0.E0,3.075E1));
-+#45=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#46=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#47=AXIS2_PLACEMENT_3D('',#44,#45,#46);
-+#49=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
-+#50=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#51=DIRECTION('',(1.E0,0.E0,0.E0));
-+#52=AXIS2_PLACEMENT_3D('',#49,#50,#51);
-+#54=CARTESIAN_POINT('',(1.2E1,0.E0,1.25E0));
-+#55=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#56=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#57=AXIS2_PLACEMENT_3D('',#54,#55,#56);
-+#59=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
-+#60=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#61=DIRECTION('',(1.E0,0.E0,0.E0));
-+#62=AXIS2_PLACEMENT_3D('',#59,#60,#61);
-+#64=CARTESIAN_POINT('',(2.2875E1,0.E0,2.4E1));
-+#65=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#66=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#67=AXIS2_PLACEMENT_3D('',#64,#65,#66);
-+#69=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
-+#70=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#71=DIRECTION('',(1.E0,0.E0,0.E0));
-+#72=AXIS2_PLACEMENT_3D('',#69,#70,#71);
-+#74=CARTESIAN_POINT('',(2.2875E1,0.E0,1.8E1));
-+#75=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#76=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#77=AXIS2_PLACEMENT_3D('',#74,#75,#76);
-+#79=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
-+#80=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#81=DIRECTION('',(1.E0,0.E0,0.E0));
-+#82=AXIS2_PLACEMENT_3D('',#79,#80,#81);
-+#84=CARTESIAN_POINT('',(2.2875E1,0.E0,1.2E1));
-+#85=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#86=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#87=AXIS2_PLACEMENT_3D('',#84,#85,#86);
-+#89=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
-+#90=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#91=DIRECTION('',(1.E0,0.E0,0.E0));
-+#92=AXIS2_PLACEMENT_3D('',#89,#90,#91);
-+#94=CARTESIAN_POINT('',(2.2875E1,0.E0,6.E0));
-+#95=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#96=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#97=AXIS2_PLACEMENT_3D('',#94,#95,#96);
-+#99=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
-+#100=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#101=DIRECTION('',(1.E0,0.E0,0.E0));
-+#102=AXIS2_PLACEMENT_3D('',#99,#100,#101);
-+#104=CARTESIAN_POINT('',(1.125E0,0.E0,2.4E1));
-+#105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#106=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#107=AXIS2_PLACEMENT_3D('',#104,#105,#106);
-+#109=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
-+#110=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#111=DIRECTION('',(1.E0,0.E0,0.E0));
-+#112=AXIS2_PLACEMENT_3D('',#109,#110,#111);
-+#114=CARTESIAN_POINT('',(1.125E0,0.E0,1.8E1));
-+#115=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#116=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#117=AXIS2_PLACEMENT_3D('',#114,#115,#116);
-+#119=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
-+#120=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#121=DIRECTION('',(1.E0,0.E0,0.E0));
-+#122=AXIS2_PLACEMENT_3D('',#119,#120,#121);
-+#124=CARTESIAN_POINT('',(1.125E0,0.E0,1.2E1));
-+#125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#126=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#127=AXIS2_PLACEMENT_3D('',#124,#125,#126);
-+#129=DIRECTION('',(1.E0,0.E0,0.E0));
-+#130=VECTOR('',#129,1.E0);
-+#131=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#132=LINE('',#131,#130);
-+#133=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#134=VECTOR('',#133,3.E0);
-+#135=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#136=LINE('',#135,#134);
-+#137=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#138=VECTOR('',#137,1.6E1);
-+#139=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#140=LINE('',#139,#138);
-+#141=DIRECTION('',(0.E0,0.E0,1.E0));
-+#142=VECTOR('',#141,3.E0);
-+#143=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#144=LINE('',#143,#142);
-+#145=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#146=VECTOR('',#145,1.E0);
-+#147=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
-+#148=LINE('',#147,#146);
-+#149=DIRECTION('',(0.E0,0.E0,1.E0));
-+#150=VECTOR('',#149,3.75E0);
-+#151=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#152=LINE('',#151,#150);
-+#153=DIRECTION('',(1.E0,0.E0,0.E0));
-+#154=VECTOR('',#153,5.E-1);
-+#155=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#156=LINE('',#155,#154);
-+#157=DIRECTION('',(0.E0,0.E0,1.E0));
-+#158=VECTOR('',#157,1.475E1);
-+#159=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#160=LINE('',#159,#158);
-+#161=DIRECTION('',(1.E0,0.E0,0.E0));
-+#162=VECTOR('',#161,1.6E1);
-+#163=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#164=LINE('',#163,#162);
-+#165=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#166=VECTOR('',#165,1.475E1);
-+#167=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#168=LINE('',#167,#166);
-+#169=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#170=VECTOR('',#169,5.E-1);
-+#171=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#172=LINE('',#171,#170);
-+#173=DIRECTION('',(0.E0,0.E0,1.E0));
-+#174=VECTOR('',#173,3.75E0);
-+#175=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
-+#176=LINE('',#175,#174);
-+#177=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
-+#178=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#179=DIRECTION('',(1.E0,0.E0,0.E0));
-+#180=AXIS2_PLACEMENT_3D('',#177,#178,#179);
-+#182=CARTESIAN_POINT('',(1.125E0,0.E0,6.E0));
-+#183=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#184=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#185=AXIS2_PLACEMENT_3D('',#182,#183,#184);
-+#187=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
-+#188=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#189=DIRECTION('',(1.E0,0.E0,0.E0));
-+#190=AXIS2_PLACEMENT_3D('',#187,#188,#189);
-+#192=CARTESIAN_POINT('',(6.E0,0.E0,1.25E0));
-+#193=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#194=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#195=AXIS2_PLACEMENT_3D('',#192,#193,#194);
-+#197=DIRECTION('',(1.E0,0.E0,0.E0));
-+#198=VECTOR('',#197,1.3E1);
-+#199=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
-+#200=LINE('',#199,#198);
-+#201=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#202=VECTOR('',#201,2.5625E0);
-+#203=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
-+#204=LINE('',#203,#202);
-+#205=DIRECTION('',(1.E0,0.E0,0.E0));
-+#206=VECTOR('',#205,9.E0);
-+#207=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
-+#208=LINE('',#207,#206);
-+#209=DIRECTION('',(0.E0,0.E0,1.E0));
-+#210=VECTOR('',#209,2.5625E0);
-+#211=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
-+#212=LINE('',#211,#210);
-+#213=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#214=VECTOR('',#213,8.125E-1);
-+#215=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
-+#216=LINE('',#215,#214);
-+#217=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#218=VECTOR('',#217,1.3E1);
-+#219=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
-+#220=LINE('',#219,#218);
-+#221=DIRECTION('',(0.E0,0.E0,1.E0));
-+#222=VECTOR('',#221,8.125E-1);
-+#223=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
-+#224=LINE('',#223,#222);
-+#225=DIRECTION('',(1.E0,0.E0,0.E0));
-+#226=VECTOR('',#225,1.E0);
-+#227=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
-+#228=LINE('',#227,#226);
-+#229=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#230=VECTOR('',#229,7.5E-1);
-+#231=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#232=LINE('',#231,#230);
-+#233=DIRECTION('',(1.E0,0.E0,0.E0));
-+#234=VECTOR('',#233,1.2E1);
-+#235=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
-+#236=LINE('',#235,#234);
-+#237=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#238=VECTOR('',#237,7.5E-1);
-+#239=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#240=LINE('',#239,#238);
-+#241=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#242=VECTOR('',#241,1.E0);
-+#243=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#244=LINE('',#243,#242);
-+#245=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
-+#246=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#247=DIRECTION('',(1.E0,0.E0,0.E0));
-+#248=AXIS2_PLACEMENT_3D('',#245,#246,#247);
-+#250=CARTESIAN_POINT('',(6.E0,0.E0,9.E0));
-+#251=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#252=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);
-+#255=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
-+#256=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#257=DIRECTION('',(1.E0,0.E0,0.E0));
-+#258=AXIS2_PLACEMENT_3D('',#255,#256,#257);
-+#260=CARTESIAN_POINT('',(1.2E1,0.E0,9.E0));
-+#261=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#262=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#263=AXIS2_PLACEMENT_3D('',#260,#261,#262);
-+#265=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
-+#266=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#267=DIRECTION('',(1.E0,0.E0,0.E0));
-+#268=AXIS2_PLACEMENT_3D('',#265,#266,#267);
-+#270=CARTESIAN_POINT('',(1.8E1,0.E0,9.E0));
-+#271=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);
-+#275=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
-+#276=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#277=DIRECTION('',(1.E0,0.E0,0.E0));
-+#278=AXIS2_PLACEMENT_3D('',#275,#276,#277);
-+#280=CARTESIAN_POINT('',(6.E0,0.E0,1.8E1));
-+#281=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#282=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#283=AXIS2_PLACEMENT_3D('',#280,#281,#282);
-+#285=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
-+#286=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#287=DIRECTION('',(1.E0,0.E0,0.E0));
-+#288=AXIS2_PLACEMENT_3D('',#285,#286,#287);
-+#290=CARTESIAN_POINT('',(1.2E1,0.E0,1.8E1));
-+#291=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#292=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);
-+#295=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
-+#296=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#297=DIRECTION('',(1.E0,0.E0,0.E0));
-+#298=AXIS2_PLACEMENT_3D('',#295,#296,#297);
-+#300=CARTESIAN_POINT('',(1.8E1,0.E0,1.8E1));
-+#301=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#302=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#303=AXIS2_PLACEMENT_3D('',#300,#301,#302);
-+#305=DIRECTION('',(1.E0,0.E0,0.E0));
-+#306=VECTOR('',#305,3.E0);
-+#307=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#308=LINE('',#307,#306);
-+#309=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
-+#310=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#311=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#312=AXIS2_PLACEMENT_3D('',#309,#310,#311);
-+#314=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#315=VECTOR('',#314,3.E0);
-+#316=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#317=LINE('',#316,#315);
-+#318=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
-+#319=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#320=DIRECTION('',(0.E0,0.E0,1.E0));
-+#321=AXIS2_PLACEMENT_3D('',#318,#319,#320);
-+#323=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
-+#324=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#325=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#326=AXIS2_PLACEMENT_3D('',#323,#324,#325);
-+#328=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#329=VECTOR('',#328,4.263248410977E0);
-+#330=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#331=LINE('',#330,#329);
-+#332=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
-+#333=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#334=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#335=AXIS2_PLACEMENT_3D('',#332,#333,#334);
-+#337=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#338=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#339=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#340=AXIS2_PLACEMENT_3D('',#337,#338,#339);
-+#342=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#343=VECTOR('',#342,3.15E-1);
-+#344=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
-+#345=LINE('',#344,#343);
-+#346=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
-+#347=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#348=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#349=AXIS2_PLACEMENT_3D('',#346,#347,#348);
-+#351=DIRECTION('',(0.E0,0.E0,1.E0));
-+#352=VECTOR('',#351,3.15E-1);
-+#353=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#354=LINE('',#353,#352);
-+#355=DIRECTION('',(1.E0,0.E0,0.E0));
-+#356=VECTOR('',#355,7.5E-1);
-+#357=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
-+#358=LINE('',#357,#356);
-+#359=DIRECTION('',(0.E0,0.E0,1.E0));
-+#360=VECTOR('',#359,8.1E-1);
-+#361=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#362=LINE('',#361,#360);
-+#363=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#364=VECTOR('',#363,3.875E0);
-+#365=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#366=LINE('',#365,#364);
-+#367=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#368=VECTOR('',#367,8.1E-1);
-+#369=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#370=LINE('',#369,#368);
-+#371=DIRECTION('',(1.E0,0.E0,0.E0));
-+#372=VECTOR('',#371,2.525E-1);
-+#373=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#374=LINE('',#373,#372);
-+#375=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#376=VECTOR('',#375,3.E0);
-+#377=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#378=LINE('',#377,#376);
-+#379=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
-+#380=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#381=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#382=AXIS2_PLACEMENT_3D('',#379,#380,#381);
-+#384=DIRECTION('',(0.E0,0.E0,1.E0));
-+#385=VECTOR('',#384,3.E0);
-+#386=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#387=LINE('',#386,#385);
-+#388=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
-+#389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#390=DIRECTION('',(1.E0,0.E0,0.E0));
-+#391=AXIS2_PLACEMENT_3D('',#388,#389,#390);
-+#393=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#394=VECTOR('',#393,3.E0);
-+#395=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#396=LINE('',#395,#394);
-+#397=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
-+#398=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#399=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#400=AXIS2_PLACEMENT_3D('',#397,#398,#399);
-+#402=DIRECTION('',(0.E0,0.E0,1.E0));
-+#403=VECTOR('',#402,3.E0);
-+#404=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#405=LINE('',#404,#403);
-+#406=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
-+#407=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#408=DIRECTION('',(1.E0,0.E0,0.E0));
-+#409=AXIS2_PLACEMENT_3D('',#406,#407,#408);
-+#411=DIRECTION('',(1.E0,0.E0,0.E0));
-+#412=VECTOR('',#411,3.E0);
-+#413=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#414=LINE('',#413,#412);
-+#415=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
-+#416=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#417=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#418=AXIS2_PLACEMENT_3D('',#415,#416,#417);
-+#420=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#421=VECTOR('',#420,3.E0);
-+#422=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#423=LINE('',#422,#421);
-+#424=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
-+#425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#426=DIRECTION('',(0.E0,0.E0,1.E0));
-+#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);
-+#429=DIRECTION('',(1.E0,0.E0,0.E0));
-+#430=VECTOR('',#429,3.E0);
-+#431=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#432=LINE('',#431,#430);
-+#433=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
-+#434=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#435=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#436=AXIS2_PLACEMENT_3D('',#433,#434,#435);
-+#438=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#439=VECTOR('',#438,3.E0);
-+#440=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#441=LINE('',#440,#439);
-+#442=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
-+#443=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#444=DIRECTION('',(0.E0,0.E0,1.E0));
-+#445=AXIS2_PLACEMENT_3D('',#442,#443,#444);
-+#447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#448=VECTOR('',#447,3.E0);
-+#449=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#450=LINE('',#449,#448);
-+#451=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
-+#452=DIRECTION('',(0.E0,1.E0,0.E0));
-+#453=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#454=AXIS2_PLACEMENT_3D('',#451,#452,#453);
-+#456=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#457=VECTOR('',#456,3.E0);
-+#458=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#459=LINE('',#458,#457);
-+#460=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
-+#461=DIRECTION('',(0.E0,1.E0,0.E0));
-+#462=DIRECTION('',(0.E0,0.E0,1.E0));
-+#463=AXIS2_PLACEMENT_3D('',#460,#461,#462);
-+#465=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#466=VECTOR('',#465,3.E0);
-+#467=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#468=LINE('',#467,#466);
-+#469=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
-+#470=DIRECTION('',(0.E0,1.E0,0.E0));
-+#471=DIRECTION('',(0.E0,0.E0,1.E0));
-+#472=AXIS2_PLACEMENT_3D('',#469,#470,#471);
-+#474=DIRECTION('',(1.E0,0.E0,0.E0));
-+#475=VECTOR('',#474,3.E0);
-+#476=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#477=LINE('',#476,#475);
-+#478=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
-+#479=DIRECTION('',(0.E0,1.E0,0.E0));
-+#480=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#481=AXIS2_PLACEMENT_3D('',#478,#479,#480);
-+#483=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#484=VECTOR('',#483,3.E0);
-+#485=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#486=LINE('',#485,#484);
-+#487=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
-+#488=DIRECTION('',(0.E0,1.E0,0.E0));
-+#489=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#490=AXIS2_PLACEMENT_3D('',#487,#488,#489);
-+#492=DIRECTION('',(0.E0,0.E0,1.E0));
-+#493=VECTOR('',#492,3.E0);
-+#494=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#495=LINE('',#494,#493);
-+#496=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
-+#497=DIRECTION('',(0.E0,1.E0,0.E0));
-+#498=DIRECTION('',(1.E0,0.E0,0.E0));
-+#499=AXIS2_PLACEMENT_3D('',#496,#497,#498);
-+#501=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#502=VECTOR('',#501,3.E0);
-+#503=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#504=LINE('',#503,#502);
-+#505=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
-+#506=DIRECTION('',(0.E0,1.E0,0.E0));
-+#507=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#508=AXIS2_PLACEMENT_3D('',#505,#506,#507);
-+#510=DIRECTION('',(0.E0,0.E0,1.E0));
-+#511=VECTOR('',#510,3.E0);
-+#512=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#513=LINE('',#512,#511);
-+#514=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
-+#515=DIRECTION('',(0.E0,1.E0,0.E0));
-+#516=DIRECTION('',(1.E0,0.E0,0.E0));
-+#517=AXIS2_PLACEMENT_3D('',#514,#515,#516);
-+#519=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#520=VECTOR('',#519,3.E0);
-+#521=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#522=LINE('',#521,#520);
-+#523=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
-+#524=DIRECTION('',(0.E0,1.E0,0.E0));
-+#525=DIRECTION('',(0.E0,0.E0,1.E0));
-+#526=AXIS2_PLACEMENT_3D('',#523,#524,#525);
-+#528=DIRECTION('',(1.E0,0.E0,0.E0));
-+#529=VECTOR('',#528,3.E0);
-+#530=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#531=LINE('',#530,#529);
-+#532=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
-+#533=DIRECTION('',(0.E0,1.E0,0.E0));
-+#534=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#535=AXIS2_PLACEMENT_3D('',#532,#533,#534);
-+#537=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#538=VECTOR('',#537,3.E0);
-+#539=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#540=LINE('',#539,#538);
-+#541=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
-+#542=DIRECTION('',(0.E0,1.E0,0.E0));
-+#543=DIRECTION('',(0.E0,0.E0,1.E0));
-+#544=AXIS2_PLACEMENT_3D('',#541,#542,#543);
-+#546=DIRECTION('',(1.E0,0.E0,0.E0));
-+#547=VECTOR('',#546,3.E0);
-+#548=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#549=LINE('',#548,#547);
-+#550=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
-+#551=DIRECTION('',(0.E0,1.E0,0.E0));
-+#552=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#553=AXIS2_PLACEMENT_3D('',#550,#551,#552);
-+#555=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#556=VECTOR('',#555,3.E0);
-+#557=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#558=LINE('',#557,#556);
-+#559=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
-+#560=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#561=DIRECTION('',(0.E0,0.E0,1.E0));
-+#562=AXIS2_PLACEMENT_3D('',#559,#560,#561);
-+#564=DIRECTION('',(1.E0,0.E0,0.E0));
-+#565=VECTOR('',#564,3.E0);
-+#566=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#567=LINE('',#566,#565);
-+#568=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
-+#569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#570=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);
-+#573=DIRECTION('',(0.E0,0.E0,1.E0));
-+#574=VECTOR('',#573,3.1E-1);
-+#575=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#576=LINE('',#575,#574);
-+#577=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
-+#578=DIRECTION('',(0.E0,1.E0,0.E0));
-+#579=DIRECTION('',(1.E0,0.E0,-3.956251312695E-14));
-+#580=AXIS2_PLACEMENT_3D('',#577,#578,#579);
-+#582=DIRECTION('',(2.292073341162E-14,0.E0,-1.E0));
-+#583=VECTOR('',#582,3.1E-1);
-+#584=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#585=LINE('',#584,#583);
-+#586=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#587=VECTOR('',#586,2.425E-1);
-+#588=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
-+#589=LINE('',#588,#587);
-+#590=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#591=VECTOR('',#590,8.E-1);
-+#592=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
-+#593=LINE('',#592,#591);
-+#594=DIRECTION('',(1.E0,0.E0,0.E0));
-+#595=VECTOR('',#594,3.865E0);
-+#596=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
-+#597=LINE('',#596,#595);
-+#598=DIRECTION('',(0.E0,0.E0,1.E0));
-+#599=VECTOR('',#598,8.E-1);
-+#600=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
-+#601=LINE('',#600,#599);
-+#602=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#603=VECTOR('',#602,7.4E-1);
-+#604=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#605=LINE('',#604,#603);
-+#606=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#607=VECTOR('',#606,4.263248410977E0);
-+#608=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#609=LINE('',#608,#607);
-+#610=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
-+#611=DIRECTION('',(0.E0,1.E0,0.E0));
-+#612=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#613=AXIS2_PLACEMENT_3D('',#610,#611,#612);
-+#615=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#616=DIRECTION('',(0.E0,1.E0,0.E0));
-+#617=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#618=AXIS2_PLACEMENT_3D('',#615,#616,#617);
-+#620=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
-+#621=DIRECTION('',(0.E0,1.E0,0.E0));
-+#622=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811866E-1));
-+#623=AXIS2_PLACEMENT_3D('',#620,#621,#622);
-+#625=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#626=VECTOR('',#625,4.263248410977E0);
-+#627=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#628=LINE('',#627,#626);
-+#629=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
-+#630=DIRECTION('',(0.E0,1.E0,0.E0));
-+#631=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#632=AXIS2_PLACEMENT_3D('',#629,#630,#631);
-+#634=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#635=DIRECTION('',(0.E0,1.E0,0.E0));
-+#636=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#637=AXIS2_PLACEMENT_3D('',#634,#635,#636);
-+#639=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
-+#640=DIRECTION('',(0.E0,1.E0,0.E0));
-+#641=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#642=AXIS2_PLACEMENT_3D('',#639,#640,#641);
-+#644=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
-+#645=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#646=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#647=AXIS2_PLACEMENT_3D('',#644,#645,#646);
-+#649=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#650=VECTOR('',#649,4.263248410977E0);
-+#651=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#652=LINE('',#651,#650);
-+#653=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
-+#654=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#655=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811866E-1));
-+#656=AXIS2_PLACEMENT_3D('',#653,#654,#655);
-+#658=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#659=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#660=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#661=AXIS2_PLACEMENT_3D('',#658,#659,#660);
-+#663=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#664=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#665=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#666=AXIS2_PLACEMENT_3D('',#663,#664,#665);
-+#668=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#669=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#670=DIRECTION('',(1.E0,0.E0,0.E0));
-+#671=AXIS2_PLACEMENT_3D('',#668,#669,#670);
-+#673=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#674=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#675=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#676=AXIS2_PLACEMENT_3D('',#673,#674,#675);
-+#678=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#679=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#680=DIRECTION('',(1.E0,0.E0,0.E0));
-+#681=AXIS2_PLACEMENT_3D('',#678,#679,#680);
-+#683=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#684=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#685=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#686=AXIS2_PLACEMENT_3D('',#683,#684,#685);
-+#688=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#689=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#690=DIRECTION('',(1.E0,0.E0,0.E0));
-+#691=AXIS2_PLACEMENT_3D('',#688,#689,#690);
-+#693=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#694=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#695=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#696=AXIS2_PLACEMENT_3D('',#693,#694,#695);
-+#698=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#699=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#700=DIRECTION('',(1.E0,0.E0,0.E0));
-+#701=AXIS2_PLACEMENT_3D('',#698,#699,#700);
-+#703=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#704=DIRECTION('',(0.E0,0.E0,1.E0));
-+#705=DIRECTION('',(1.E0,0.E0,0.E0));
-+#706=AXIS2_PLACEMENT_3D('',#703,#704,#705);
-+#708=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#709=DIRECTION('',(0.E0,0.E0,1.E0));
-+#710=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#711=AXIS2_PLACEMENT_3D('',#708,#709,#710);
-+#713=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#714=DIRECTION('',(0.E0,0.E0,1.E0));
-+#715=DIRECTION('',(1.E0,0.E0,0.E0));
-+#716=AXIS2_PLACEMENT_3D('',#713,#714,#715);
-+#718=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#719=DIRECTION('',(0.E0,0.E0,1.E0));
-+#720=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#721=AXIS2_PLACEMENT_3D('',#718,#719,#720);
-+#723=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#724=DIRECTION('',(0.E0,0.E0,1.E0));
-+#725=DIRECTION('',(1.E0,0.E0,0.E0));
-+#726=AXIS2_PLACEMENT_3D('',#723,#724,#725);
-+#728=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#729=DIRECTION('',(0.E0,0.E0,1.E0));
-+#730=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#731=AXIS2_PLACEMENT_3D('',#728,#729,#730);
-+#733=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#734=DIRECTION('',(0.E0,0.E0,1.E0));
-+#735=DIRECTION('',(1.E0,0.E0,0.E0));
-+#736=AXIS2_PLACEMENT_3D('',#733,#734,#735);
-+#738=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#739=DIRECTION('',(0.E0,0.E0,1.E0));
-+#740=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#741=AXIS2_PLACEMENT_3D('',#738,#739,#740);
-+#743=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#744=VECTOR('',#743,1.029563014099E1);
-+#745=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#746=LINE('',#745,#744);
-+#747=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#748=VECTOR('',#747,2.E0);
-+#749=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#750=LINE('',#749,#748);
-+#751=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#752=VECTOR('',#751,2.E0);
-+#753=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#754=LINE('',#753,#752);
-+#755=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#756=VECTOR('',#755,1.029563014099E1);
-+#757=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#758=LINE('',#757,#756);
-+#759=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#760=VECTOR('',#759,3.895172754280E0);
-+#761=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#762=LINE('',#761,#760);
-+#763=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#764=VECTOR('',#763,6.863753427325E0);
-+#765=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#766=LINE('',#765,#764);
-+#767=DIRECTION('',(1.E0,0.E0,0.E0));
-+#768=VECTOR('',#767,5.618394209466E-1);
-+#769=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#770=LINE('',#769,#768);
-+#771=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#772=VECTOR('',#771,6.E0);
-+#773=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#774=LINE('',#773,#772);
-+#775=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#776=VECTOR('',#775,6.863753427325E0);
-+#777=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
-+#778=LINE('',#777,#776);
-+#779=DIRECTION('',(1.E0,0.E0,0.E0));
-+#780=VECTOR('',#779,3.895172754280E0);
-+#781=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
-+#782=LINE('',#781,#780);
-+#783=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#784=VECTOR('',#783,6.E0);
-+#785=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
-+#786=LINE('',#785,#784);
-+#787=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#788=VECTOR('',#787,5.618394209466E-1);
-+#789=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
-+#790=LINE('',#789,#788);
-+#791=DIRECTION('',(0.E0,0.E0,1.E0));
-+#792=VECTOR('',#791,2.5E-1);
-+#793=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
-+#794=LINE('',#793,#792);
-+#795=DIRECTION('',(0.E0,0.E0,1.E0));
-+#796=VECTOR('',#795,2.5E-1);
-+#797=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
-+#798=LINE('',#797,#796);
-+#799=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#800=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#801=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#802=AXIS2_PLACEMENT_3D('',#799,#800,#801);
-+#804=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#805=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#806=DIRECTION('',(1.E0,0.E0,0.E0));
-+#807=AXIS2_PLACEMENT_3D('',#804,#805,#806);
-+#809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#810=VECTOR('',#809,2.E0);
-+#811=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
-+#812=LINE('',#811,#810);
-+#813=DIRECTION('',(0.E0,0.E0,1.E0));
-+#814=VECTOR('',#813,2.E0);
-+#815=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
-+#816=LINE('',#815,#814);
-+#817=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
-+#818=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#819=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#820=AXIS2_PLACEMENT_3D('',#817,#818,#819);
-+#822=CARTESIAN_POINT('',(1.975E1,1.05E1,1.E1));
-+#823=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#824=DIRECTION('',(1.E0,0.E0,0.E0));
-+#825=AXIS2_PLACEMENT_3D('',#822,#823,#824);
-+#827=DIRECTION('',(0.E0,1.E0,0.E0));
-+#828=VECTOR('',#827,5.E0);
-+#829=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#830=LINE('',#829,#828);
-+#831=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#832=VECTOR('',#831,1.75E0);
-+#833=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#834=LINE('',#833,#832);
-+#835=DIRECTION('',(0.E0,1.E0,0.E0));
-+#836=VECTOR('',#835,5.E0);
-+#837=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
-+#838=LINE('',#837,#836);
-+#839=DIRECTION('',(0.E0,1.E0,0.E0));
-+#840=VECTOR('',#839,1.E1);
-+#841=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#842=LINE('',#841,#840);
-+#843=DIRECTION('',(1.E0,0.E0,0.E0));
-+#844=VECTOR('',#843,2.E0);
-+#845=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
-+#846=LINE('',#845,#844);
-+#847=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#848=VECTOR('',#847,1.029563014099E1);
-+#849=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
-+#850=LINE('',#849,#848);
-+#851=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#852=VECTOR('',#851,1.E0);
-+#853=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
-+#854=LINE('',#853,#852);
-+#855=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#856=VECTOR('',#855,1.972007605460E-1);
-+#857=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
-+#858=LINE('',#857,#856);
-+#859=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#860=VECTOR('',#859,2.059126028197E0);
-+#861=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
-+#862=LINE('',#861,#860);
-+#863=DIRECTION('',(1.E0,0.E0,0.E0));
-+#864=VECTOR('',#863,1.197200760546E0);
-+#865=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
-+#866=LINE('',#865,#864);
-+#867=DIRECTION('',(0.E0,1.E0,0.E0));
-+#868=VECTOR('',#867,6.8E0);
-+#869=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
-+#870=LINE('',#869,#868);
-+#871=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#872=VECTOR('',#871,1.3E0);
-+#873=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
-+#874=LINE('',#873,#872);
-+#875=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#876=VECTOR('',#875,4.3E0);
-+#877=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#878=LINE('',#877,#876);
-+#879=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#880=VECTOR('',#879,5.773502691896E0);
-+#881=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#882=LINE('',#881,#880);
-+#883=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
-+#884=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#885=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#886=AXIS2_PLACEMENT_3D('',#883,#884,#885);
-+#888=CARTESIAN_POINT('',(6.45E0,1.5E0,2.975E1));
-+#889=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#890=DIRECTION('',(1.E0,0.E0,0.E0));
-+#891=AXIS2_PLACEMENT_3D('',#888,#889,#890);
-+#893=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
-+#894=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#895=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#896=AXIS2_PLACEMENT_3D('',#893,#894,#895);
-+#898=CARTESIAN_POINT('',(7.45E0,1.5E0,2.975E1));
-+#899=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#900=DIRECTION('',(1.E0,0.E0,0.E0));
-+#901=AXIS2_PLACEMENT_3D('',#898,#899,#900);
-+#903=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#904=VECTOR('',#903,4.531373033403E0);
-+#905=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
-+#906=LINE('',#905,#904);
-+#907=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#908=VECTOR('',#907,9.E0);
-+#909=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#910=LINE('',#909,#908);
-+#911=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#912=VECTOR('',#911,4.531373033403E0);
-+#913=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#914=LINE('',#913,#912);
-+#915=DIRECTION('',(0.E0,0.E0,1.E0));
-+#916=VECTOR('',#915,3.E0);
-+#917=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#918=LINE('',#917,#916);
-+#919=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#920=VECTOR('',#919,1.6E1);
-+#921=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#922=LINE('',#921,#920);
-+#923=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#924=VECTOR('',#923,3.E0);
-+#925=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
-+#926=LINE('',#925,#924);
-+#927=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
-+#928=DIRECTION('',(0.E0,1.E0,0.E0));
-+#929=DIRECTION('',(1.E0,0.E0,0.E0));
-+#930=AXIS2_PLACEMENT_3D('',#927,#928,#929);
-+#932=CARTESIAN_POINT('',(1.755E1,1.5E0,2.975E1));
-+#933=DIRECTION('',(0.E0,1.E0,0.E0));
-+#934=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#935=AXIS2_PLACEMENT_3D('',#932,#933,#934);
-+#937=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
-+#938=DIRECTION('',(0.E0,1.E0,0.E0));
-+#939=DIRECTION('',(1.E0,0.E0,0.E0));
-+#940=AXIS2_PLACEMENT_3D('',#937,#938,#939);
-+#942=CARTESIAN_POINT('',(1.655E1,1.5E0,2.975E1));
-+#943=DIRECTION('',(0.E0,1.E0,0.E0));
-+#944=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#945=AXIS2_PLACEMENT_3D('',#942,#943,#944);
-+#947=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#948=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#949=DIRECTION('',(1.E0,0.E0,0.E0));
-+#950=AXIS2_PLACEMENT_3D('',#947,#948,#949);
-+#952=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#954=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#955=AXIS2_PLACEMENT_3D('',#952,#953,#954);
-+#957=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#958=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#959=DIRECTION('',(1.E0,0.E0,0.E0));
-+#960=AXIS2_PLACEMENT_3D('',#957,#958,#959);
-+#962=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#963=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#964=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#965=AXIS2_PLACEMENT_3D('',#962,#963,#964);
-+#967=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#968=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#969=DIRECTION('',(1.E0,0.E0,0.E0));
-+#970=AXIS2_PLACEMENT_3D('',#967,#968,#969);
-+#972=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#973=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#974=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#975=AXIS2_PLACEMENT_3D('',#972,#973,#974);
-+#977=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#978=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#979=DIRECTION('',(1.E0,0.E0,0.E0));
-+#980=AXIS2_PLACEMENT_3D('',#977,#978,#979);
-+#982=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#983=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#984=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#985=AXIS2_PLACEMENT_3D('',#982,#983,#984);
-+#987=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#988=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#989=DIRECTION('',(1.E0,0.E0,0.E0));
-+#990=AXIS2_PLACEMENT_3D('',#987,#988,#989);
-+#992=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#993=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#994=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#995=AXIS2_PLACEMENT_3D('',#992,#993,#994);
-+#997=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#998=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#999=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1000=AXIS2_PLACEMENT_3D('',#997,#998,#999);
-+#1002=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#1003=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1004=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1005=AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);
-+#1007=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#1008=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1009=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1010=AXIS2_PLACEMENT_3D('',#1007,#1008,#1009);
-+#1012=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#1013=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1014=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1015=AXIS2_PLACEMENT_3D('',#1012,#1013,#1014);
-+#1017=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#1018=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1019=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1020=AXIS2_PLACEMENT_3D('',#1017,#1018,#1019);
-+#1022=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#1023=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1024=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1025=AXIS2_PLACEMENT_3D('',#1022,#1023,#1024);
-+#1027=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#1028=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1029=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1030=AXIS2_PLACEMENT_3D('',#1027,#1028,#1029);
-+#1032=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#1033=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1034=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1035=AXIS2_PLACEMENT_3D('',#1032,#1033,#1034);
-+#1037=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#1038=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1039=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1040=AXIS2_PLACEMENT_3D('',#1037,#1038,#1039);
-+#1042=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#1043=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1044=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1045=AXIS2_PLACEMENT_3D('',#1042,#1043,#1044);
-+#1047=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#1048=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1049=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1050=AXIS2_PLACEMENT_3D('',#1047,#1048,#1049);
-+#1052=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#1053=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1054=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1055=AXIS2_PLACEMENT_3D('',#1052,#1053,#1054);
-+#1057=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#1058=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1059=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1060=AXIS2_PLACEMENT_3D('',#1057,#1058,#1059);
-+#1062=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#1063=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1064=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1065=AXIS2_PLACEMENT_3D('',#1062,#1063,#1064);
-+#1067=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1068=VECTOR('',#1067,2.5625E0);
-+#1069=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#1070=LINE('',#1069,#1068);
-+#1071=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1072=VECTOR('',#1071,1.3E1);
-+#1073=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#1074=LINE('',#1073,#1072);
-+#1075=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1076=VECTOR('',#1075,2.5625E0);
-+#1077=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#1078=LINE('',#1077,#1076);
-+#1079=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1080=VECTOR('',#1079,9.E0);
-+#1081=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#1082=LINE('',#1081,#1080);
-+#1083=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1084=VECTOR('',#1083,1.3E1);
-+#1085=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#1086=LINE('',#1085,#1084);
-+#1087=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1088=VECTOR('',#1087,8.125E-1);
-+#1089=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#1090=LINE('',#1089,#1088);
-+#1091=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1092=VECTOR('',#1091,1.E0);
-+#1093=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
-+#1094=LINE('',#1093,#1092);
-+#1095=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1096=VECTOR('',#1095,7.5E-1);
-+#1097=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#1098=LINE('',#1097,#1096);
-+#1099=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1100=VECTOR('',#1099,7.5E-1);
-+#1101=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#1102=LINE('',#1101,#1100);
-+#1103=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1104=VECTOR('',#1103,1.E0);
-+#1105=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#1106=LINE('',#1105,#1104);
-+#1107=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1108=VECTOR('',#1107,8.125E-1);
-+#1109=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#1110=LINE('',#1109,#1108);
-+#1111=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#1112=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1113=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1114=AXIS2_PLACEMENT_3D('',#1111,#1112,#1113);
-+#1116=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#1117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1118=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1119=AXIS2_PLACEMENT_3D('',#1116,#1117,#1118);
-+#1121=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#1122=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1123=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1124=AXIS2_PLACEMENT_3D('',#1121,#1122,#1123);
-+#1126=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#1127=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1128=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1129=AXIS2_PLACEMENT_3D('',#1126,#1127,#1128);
-+#1131=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#1132=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1133=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1134=AXIS2_PLACEMENT_3D('',#1131,#1132,#1133);
-+#1136=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#1137=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1138=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1139=AXIS2_PLACEMENT_3D('',#1136,#1137,#1138);
-+#1141=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#1142=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1144=AXIS2_PLACEMENT_3D('',#1141,#1142,#1143);
-+#1146=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#1147=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1149=AXIS2_PLACEMENT_3D('',#1146,#1147,#1148);
-+#1151=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#1152=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1153=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1154=AXIS2_PLACEMENT_3D('',#1151,#1152,#1153);
-+#1156=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#1157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1158=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1159=AXIS2_PLACEMENT_3D('',#1156,#1157,#1158);
-+#1161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#1162=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1163=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1164=AXIS2_PLACEMENT_3D('',#1161,#1162,#1163);
-+#1166=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#1167=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1168=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1169=AXIS2_PLACEMENT_3D('',#1166,#1167,#1168);
-+#1171=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1172=VECTOR('',#1171,2.886751345948E0);
-+#1173=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#1174=LINE('',#1173,#1172);
-+#1175=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1176=VECTOR('',#1175,2.25E0);
-+#1177=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#1178=LINE('',#1177,#1176);
-+#1179=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1180=VECTOR('',#1179,1.75E0);
-+#1181=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
-+#1182=LINE('',#1181,#1180);
-+#1183=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1184=VECTOR('',#1183,5.E-1);
-+#1185=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1186=LINE('',#1185,#1184);
-+#1187=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1188=VECTOR('',#1187,1.475E1);
-+#1189=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#1190=LINE('',#1189,#1188);
-+#1191=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1192=VECTOR('',#1191,1.6E1);
-+#1193=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#1194=LINE('',#1193,#1192);
-+#1195=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1196=VECTOR('',#1195,1.475E1);
-+#1197=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
-+#1198=LINE('',#1197,#1196);
-+#1199=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1200=VECTOR('',#1199,5.E-1);
-+#1201=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#1202=LINE('',#1201,#1200);
-+#1203=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1204=VECTOR('',#1203,1.75E0);
-+#1205=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#1206=LINE('',#1205,#1204);
-+#1207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1208=VECTOR('',#1207,2.25E0);
-+#1209=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#1210=LINE('',#1209,#1208);
-+#1211=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1212=VECTOR('',#1211,2.886751345948E0);
-+#1213=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#1214=LINE('',#1213,#1212);
-+#1215=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1216=VECTOR('',#1215,1.75E0);
-+#1217=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#1218=LINE('',#1217,#1216);
-+#1219=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1220=VECTOR('',#1219,2.886751345948E0);
-+#1221=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
-+#1222=LINE('',#1221,#1220);
-+#1223=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1224=VECTOR('',#1223,3.E0);
-+#1225=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#1226=LINE('',#1225,#1224);
-+#1227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1228=VECTOR('',#1227,1.4E1);
-+#1229=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#1230=LINE('',#1229,#1228);
-+#1231=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1232=VECTOR('',#1231,3.E0);
-+#1233=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#1234=LINE('',#1233,#1232);
-+#1235=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1236=VECTOR('',#1235,2.886751345948E0);
-+#1237=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
-+#1238=LINE('',#1237,#1236);
-+#1239=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1240=VECTOR('',#1239,1.75E0);
-+#1241=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#1242=LINE('',#1241,#1240);
-+#1243=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1244=VECTOR('',#1243,2.5E-1);
-+#1245=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
-+#1246=LINE('',#1245,#1244);
-+#1247=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1248=VECTOR('',#1247,2.5E-1);
-+#1249=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
-+#1250=LINE('',#1249,#1248);
-+#1251=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#1252=VECTOR('',#1251,1.154700538379E-1);
-+#1253=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#1254=LINE('',#1253,#1252);
-+#1255=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
-+#1256=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1257=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1258=AXIS2_PLACEMENT_3D('',#1255,#1256,#1257);
-+#1260=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#1261=VECTOR('',#1260,1.154700538379E-1);
-+#1262=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#1263=LINE('',#1262,#1261);
-+#1264=CARTESIAN_POINT('',(6.45E0,1.25E0,2.975E1));
-+#1265=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1266=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1267=AXIS2_PLACEMENT_3D('',#1264,#1265,#1266);
-+#1269=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1270=VECTOR('',#1269,2.5E-1);
-+#1271=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
-+#1272=LINE('',#1271,#1270);
-+#1273=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1274=VECTOR('',#1273,2.5E-1);
-+#1275=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
-+#1276=LINE('',#1275,#1274);
-+#1277=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#1278=VECTOR('',#1277,1.154700538379E-1);
-+#1279=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#1280=LINE('',#1279,#1278);
-+#1281=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
-+#1282=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1283=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);
-+#1286=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#1287=VECTOR('',#1286,1.154700538379E-1);
-+#1288=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#1289=LINE('',#1288,#1287);
-+#1290=CARTESIAN_POINT('',(7.45E0,1.25E0,2.975E1));
-+#1291=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1292=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1293=AXIS2_PLACEMENT_3D('',#1290,#1291,#1292);
-+#1295=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1296=VECTOR('',#1295,1.5E0);
-+#1297=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#1298=LINE('',#1297,#1296);
-+#1299=CARTESIAN_POINT('',(2.046862696660E1,0.E0,7.E0));
-+#1300=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1301=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1302=AXIS2_PLACEMENT_3D('',#1299,#1300,#1301);
-+#1304=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1305=VECTOR('',#1304,1.5E0);
-+#1306=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
-+#1307=LINE('',#1306,#1305);
-+#1308=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,7.E0));
-+#1309=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1310=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
-+#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310);
-+#1313=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#1314=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1315=DIRECTION('',(9.921567416492E-1,0.E0,-1.25E-1));
-+#1316=AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);
-+#1318=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1319=VECTOR('',#1318,1.5E0);
-+#1320=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#1321=LINE('',#1320,#1319);
-+#1322=CARTESIAN_POINT('',(1.65E1,1.5E0,7.5E0));
-+#1323=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1324=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1325=AXIS2_PLACEMENT_3D('',#1322,#1323,#1324);
-+#1327=CARTESIAN_POINT('',(7.5E0,1.5E0,7.5E0));
-+#1328=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1329=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
-+#1330=AXIS2_PLACEMENT_3D('',#1327,#1328,#1329);
-+#1332=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1333=VECTOR('',#1332,1.5E0);
-+#1334=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
-+#1335=LINE('',#1334,#1333);
-+#1336=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#1337=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1338=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1339=AXIS2_PLACEMENT_3D('',#1336,#1337,#1338);
-+#1341=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1342=VECTOR('',#1341,1.5E0);
-+#1343=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#1344=LINE('',#1343,#1342);
-+#1345=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,7.E0));
-+#1346=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1347=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1348=AXIS2_PLACEMENT_3D('',#1345,#1346,#1347);
-+#1350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1351=VECTOR('',#1350,1.5E0);
-+#1352=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
-+#1353=LINE('',#1352,#1351);
-+#1354=CARTESIAN_POINT('',(3.531373033403E0,0.E0,7.E0));
-+#1355=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1356=DIRECTION('',(-9.921567416492E-1,0.E0,-1.25E-1));
-+#1357=AXIS2_PLACEMENT_3D('',#1354,#1355,#1356);
-+#1359=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1360=VECTOR('',#1359,1.5E0);
-+#1361=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
-+#1362=LINE('',#1361,#1360);
-+#1363=CARTESIAN_POINT('',(-1.E0,1.5E0,7.E0));
-+#1364=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1365=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1366=AXIS2_PLACEMENT_3D('',#1363,#1364,#1365);
-+#1368=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1369=VECTOR('',#1368,1.5E0);
-+#1370=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
-+#1371=LINE('',#1370,#1369);
-+#1372=CARTESIAN_POINT('',(-1.E0,0.E0,7.E0));
-+#1373=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1374=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1375=AXIS2_PLACEMENT_3D('',#1372,#1373,#1374);
-+#1377=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1378=VECTOR('',#1377,1.5E0);
-+#1379=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#1380=LINE('',#1379,#1378);
-+#1381=CARTESIAN_POINT('',(-1.E0,0.E0,1.325E1));
-+#1382=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1383=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1384=AXIS2_PLACEMENT_3D('',#1381,#1382,#1383);
-+#1386=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1387=VECTOR('',#1386,1.5E0);
-+#1388=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
-+#1389=LINE('',#1388,#1387);
-+#1390=CARTESIAN_POINT('',(-1.E0,1.5E0,1.325E1));
-+#1391=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1392=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1393=AXIS2_PLACEMENT_3D('',#1390,#1391,#1392);
-+#1395=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1396=VECTOR('',#1395,1.5E0);
-+#1397=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#1398=LINE('',#1397,#1396);
-+#1399=CARTESIAN_POINT('',(3.5E0,1.5E0,1.325E1));
-+#1400=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1401=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1402=AXIS2_PLACEMENT_3D('',#1399,#1400,#1401);
-+#1404=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1405=VECTOR('',#1404,1.5E0);
-+#1406=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#1407=LINE('',#1406,#1405);
-+#1408=CARTESIAN_POINT('',(3.5E0,0.E0,1.325E1));
-+#1409=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1410=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1411=AXIS2_PLACEMENT_3D('',#1408,#1409,#1410);
-+#1413=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1414=VECTOR('',#1413,1.5E0);
-+#1415=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#1416=LINE('',#1415,#1414);
-+#1417=CARTESIAN_POINT('',(5.5E0,1.5E0,2.19375E1));
-+#1418=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1419=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1420=AXIS2_PLACEMENT_3D('',#1417,#1418,#1419);
-+#1422=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1423=VECTOR('',#1422,1.5E0);
-+#1424=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#1425=LINE('',#1424,#1423);
-+#1426=CARTESIAN_POINT('',(5.5E0,0.E0,2.19375E1));
-+#1427=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1428=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1429=AXIS2_PLACEMENT_3D('',#1426,#1427,#1428);
-+#1431=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1432=VECTOR('',#1431,1.5E0);
-+#1433=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
-+#1434=LINE('',#1433,#1432);
-+#1435=CARTESIAN_POINT('',(1.85E1,0.E0,2.19375E1));
-+#1436=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1437=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1438=AXIS2_PLACEMENT_3D('',#1435,#1436,#1437);
-+#1440=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1441=VECTOR('',#1440,1.5E0);
-+#1442=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
-+#1443=LINE('',#1442,#1441);
-+#1444=CARTESIAN_POINT('',(1.85E1,1.5E0,2.19375E1));
-+#1445=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1446=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);
-+#1449=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1450=VECTOR('',#1449,1.5E0);
-+#1451=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#1452=LINE('',#1451,#1450);
-+#1453=CARTESIAN_POINT('',(1.65E1,1.5E0,2.45E1));
-+#1454=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1455=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1456=AXIS2_PLACEMENT_3D('',#1453,#1454,#1455);
-+#1458=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1459=VECTOR('',#1458,1.5E0);
-+#1460=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
-+#1461=LINE('',#1460,#1459);
-+#1462=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#1463=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1464=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1465=AXIS2_PLACEMENT_3D('',#1462,#1463,#1464);
-+#1467=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1468=VECTOR('',#1467,1.5E0);
-+#1469=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#1470=LINE('',#1469,#1468);
-+#1471=CARTESIAN_POINT('',(7.5E0,1.5E0,2.45E1));
-+#1472=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1473=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473);
-+#1476=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1477=VECTOR('',#1476,1.5E0);
-+#1478=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
-+#1479=LINE('',#1478,#1477);
-+#1480=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#1481=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1482=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1483=AXIS2_PLACEMENT_3D('',#1480,#1481,#1482);
-+#1485=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1486=VECTOR('',#1485,1.5E0);
-+#1487=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#1488=LINE('',#1487,#1486);
-+#1489=CARTESIAN_POINT('',(1.85E1,1.5E0,1.40625E1));
-+#1490=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1492=AXIS2_PLACEMENT_3D('',#1489,#1490,#1491);
-+#1494=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1495=VECTOR('',#1494,1.5E0);
-+#1496=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#1497=LINE('',#1496,#1495);
-+#1498=CARTESIAN_POINT('',(1.85E1,0.E0,1.40625E1));
-+#1499=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1500=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1501=AXIS2_PLACEMENT_3D('',#1498,#1499,#1500);
-+#1503=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1504=VECTOR('',#1503,1.5E0);
-+#1505=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
-+#1506=LINE('',#1505,#1504);
-+#1507=CARTESIAN_POINT('',(5.5E0,0.E0,1.40625E1));
-+#1508=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1509=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1510=AXIS2_PLACEMENT_3D('',#1507,#1508,#1509);
-+#1512=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1513=VECTOR('',#1512,1.5E0);
-+#1514=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
-+#1515=LINE('',#1514,#1513);
-+#1516=CARTESIAN_POINT('',(5.5E0,1.5E0,1.40625E1));
-+#1517=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1518=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1519=AXIS2_PLACEMENT_3D('',#1516,#1517,#1518);
-+#1521=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1522=VECTOR('',#1521,1.5E0);
-+#1523=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
-+#1524=LINE('',#1523,#1522);
-+#1525=CARTESIAN_POINT('',(2.05E1,0.E0,1.325E1));
-+#1526=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1527=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1528=AXIS2_PLACEMENT_3D('',#1525,#1526,#1527);
-+#1530=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1531=VECTOR('',#1530,1.5E0);
-+#1532=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#1533=LINE('',#1532,#1531);
-+#1534=CARTESIAN_POINT('',(2.05E1,1.5E0,1.325E1));
-+#1535=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1536=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1537=AXIS2_PLACEMENT_3D('',#1534,#1535,#1536);
-+#1539=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1540=VECTOR('',#1539,1.5E0);
-+#1541=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
-+#1542=LINE('',#1541,#1540);
-+#1543=CARTESIAN_POINT('',(2.5E1,1.5E0,1.325E1));
-+#1544=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1545=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1546=AXIS2_PLACEMENT_3D('',#1543,#1544,#1545);
-+#1548=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1549=VECTOR('',#1548,1.5E0);
-+#1550=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
-+#1551=LINE('',#1550,#1549);
-+#1552=CARTESIAN_POINT('',(2.5E1,0.E0,1.325E1));
-+#1553=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1554=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1555=AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);
-+#1557=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1558=VECTOR('',#1557,1.5E0);
-+#1559=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#1560=LINE('',#1559,#1558);
-+#1561=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1562=VECTOR('',#1561,5.656854249492E0);
-+#1563=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#1564=LINE('',#1563,#1562);
-+#1565=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1566=VECTOR('',#1565,1.5E0);
-+#1567=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
-+#1568=LINE('',#1567,#1566);
-+#1569=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1570=VECTOR('',#1569,5.656854249492E0);
-+#1571=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#1572=LINE('',#1571,#1570);
-+#1573=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1574=VECTOR('',#1573,1.5E0);
-+#1575=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#1576=LINE('',#1575,#1574);
-+#1577=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1578=VECTOR('',#1577,5.656854249492E0);
-+#1579=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#1580=LINE('',#1579,#1578);
-+#1581=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1582=VECTOR('',#1581,1.5E0);
-+#1583=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
-+#1584=LINE('',#1583,#1582);
-+#1585=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1586=VECTOR('',#1585,5.656854249492E0);
-+#1587=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#1588=LINE('',#1587,#1586);
-+#1589=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1590=VECTOR('',#1589,1.5E0);
-+#1591=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#1592=LINE('',#1591,#1590);
-+#1593=CARTESIAN_POINT('',(2.5E1,0.E0,7.E0));
-+#1594=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1595=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1596=AXIS2_PLACEMENT_3D('',#1593,#1594,#1595);
-+#1598=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1599=VECTOR('',#1598,1.5E0);
-+#1600=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#1601=LINE('',#1600,#1599);
-+#1602=CARTESIAN_POINT('',(2.5E1,1.5E0,7.E0));
-+#1603=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1604=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604);
-+#1607=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1608=VECTOR('',#1607,1.5E0);
-+#1609=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#1610=LINE('',#1609,#1608);
-+#1611=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1612=VECTOR('',#1611,5.656854249492E0);
-+#1613=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#1614=LINE('',#1613,#1612);
-+#1615=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1616=VECTOR('',#1615,1.5E0);
-+#1617=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
-+#1618=LINE('',#1617,#1616);
-+#1619=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1620=VECTOR('',#1619,5.656854249492E0);
-+#1621=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#1622=LINE('',#1621,#1620);
-+#1623=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1624=VECTOR('',#1623,1.5E0);
-+#1625=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#1626=LINE('',#1625,#1624);
-+#1627=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1628=VECTOR('',#1627,5.656854249492E0);
-+#1629=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#1630=LINE('',#1629,#1628);
-+#1631=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1632=VECTOR('',#1631,1.5E0);
-+#1633=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
-+#1634=LINE('',#1633,#1632);
-+#1635=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1636=VECTOR('',#1635,5.656854249492E0);
-+#1637=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#1638=LINE('',#1637,#1636);
-+#1639=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1640=VECTOR('',#1639,1.5E0);
-+#1641=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1642=LINE('',#1641,#1640);
-+#1643=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1644=VECTOR('',#1643,7.071067811865E-1);
-+#1645=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#1646=LINE('',#1645,#1644);
-+#1647=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1648=VECTOR('',#1647,1.5E0);
-+#1649=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
-+#1650=LINE('',#1649,#1648);
-+#1651=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1652=VECTOR('',#1651,7.071067811865E-1);
-+#1653=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#1654=LINE('',#1653,#1652);
-+#1655=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1656=VECTOR('',#1655,2.5E0);
-+#1657=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#1658=LINE('',#1657,#1656);
-+#1659=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1660=VECTOR('',#1659,2.E0);
-+#1661=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#1662=LINE('',#1661,#1660);
-+#1663=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1664=VECTOR('',#1663,2.E0);
-+#1665=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#1666=LINE('',#1665,#1664);
-+#1667=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1668=VECTOR('',#1667,2.E0);
-+#1669=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#1670=LINE('',#1669,#1668);
-+#1671=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#1672=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1673=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1674=AXIS2_PLACEMENT_3D('',#1671,#1672,#1673);
-+#1676=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#1677=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1678=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1679=AXIS2_PLACEMENT_3D('',#1676,#1677,#1678);
-+#1681=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#1682=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1683=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1684=AXIS2_PLACEMENT_3D('',#1681,#1682,#1683);
-+#1686=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#1687=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1689=AXIS2_PLACEMENT_3D('',#1686,#1687,#1688);
-+#1691=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1692=VECTOR('',#1691,2.E0);
-+#1693=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#1694=LINE('',#1693,#1692);
-+#1695=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1696=VECTOR('',#1695,1.E1);
-+#1697=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#1698=LINE('',#1697,#1696);
-+#1699=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1700=VECTOR('',#1699,1.5E0);
-+#1701=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
-+#1702=LINE('',#1701,#1700);
-+#1703=CARTESIAN_POINT('',(1.8E1,0.E0,1.1E1));
-+#1704=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1705=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1706=AXIS2_PLACEMENT_3D('',#1703,#1704,#1705);
-+#1708=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1709=VECTOR('',#1708,1.5E0);
-+#1710=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
-+#1711=LINE('',#1710,#1709);
-+#1712=CARTESIAN_POINT('',(1.8E1,1.5E0,1.1E1));
-+#1713=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1714=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1715=AXIS2_PLACEMENT_3D('',#1712,#1713,#1714);
-+#1717=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1718=VECTOR('',#1717,1.2E1);
-+#1719=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#1720=LINE('',#1719,#1718);
-+#1721=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1722=VECTOR('',#1721,1.5E0);
-+#1723=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
-+#1724=LINE('',#1723,#1722);
-+#1725=CARTESIAN_POINT('',(6.E0,1.5E0,1.1E1));
-+#1726=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1727=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1728=AXIS2_PLACEMENT_3D('',#1725,#1726,#1727);
-+#1730=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1731=VECTOR('',#1730,1.5E0);
-+#1732=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#1733=LINE('',#1732,#1731);
-+#1734=CARTESIAN_POINT('',(6.E0,0.E0,1.1E1));
-+#1735=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1736=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#1737=AXIS2_PLACEMENT_3D('',#1734,#1735,#1736);
-+#1739=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1740=VECTOR('',#1739,2.E0);
-+#1741=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#1742=LINE('',#1741,#1740);
-+#1743=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1744=VECTOR('',#1743,1.E1);
-+#1745=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#1746=LINE('',#1745,#1744);
-+#1747=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1748=VECTOR('',#1747,1.5E0);
-+#1749=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#1750=LINE('',#1749,#1748);
-+#1751=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1752=VECTOR('',#1751,7.071067811865E-1);
-+#1753=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#1754=LINE('',#1753,#1752);
-+#1755=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1756=VECTOR('',#1755,1.5E0);
-+#1757=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
-+#1758=LINE('',#1757,#1756);
-+#1759=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#1760=VECTOR('',#1759,7.071067811865E-1);
-+#1761=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#1762=LINE('',#1761,#1760);
-+#1763=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
-+#1764=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1765=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1766=AXIS2_PLACEMENT_3D('',#1763,#1764,#1765);
-+#1768=CARTESIAN_POINT('',(4.25E0,1.05E1,1.E1));
-+#1769=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1770=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1771=AXIS2_PLACEMENT_3D('',#1768,#1769,#1770);
-+#1773=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1774=VECTOR('',#1773,5.E0);
-+#1775=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
-+#1776=LINE('',#1775,#1774);
-+#1777=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1778=VECTOR('',#1777,1.E0);
-+#1779=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
-+#1780=LINE('',#1779,#1778);
-+#1781=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#1782=VECTOR('',#1781,1.029563014099E1);
-+#1783=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
-+#1784=LINE('',#1783,#1782);
-+#1785=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1786=VECTOR('',#1785,2.E0);
-+#1787=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
-+#1788=LINE('',#1787,#1786);
-+#1789=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1790=VECTOR('',#1789,1.E1);
-+#1791=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#1792=LINE('',#1791,#1790);
-+#1793=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1794=VECTOR('',#1793,5.E0);
-+#1795=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#1796=LINE('',#1795,#1794);
-+#1797=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1798=VECTOR('',#1797,1.75E0);
-+#1799=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#1800=LINE('',#1799,#1798);
-+#1801=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1802=VECTOR('',#1801,4.3E0);
-+#1803=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
-+#1804=LINE('',#1803,#1802);
-+#1805=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1806=VECTOR('',#1805,1.3E0);
-+#1807=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#1808=LINE('',#1807,#1806);
-+#1809=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1810=VECTOR('',#1809,6.8E0);
-+#1811=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#1812=LINE('',#1811,#1810);
-+#1813=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1814=VECTOR('',#1813,1.197200760546E0);
-+#1815=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#1816=LINE('',#1815,#1814);
-+#1817=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#1818=VECTOR('',#1817,2.059126028197E0);
-+#1819=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#1820=LINE('',#1819,#1818);
-+#1821=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1822=VECTOR('',#1821,1.972007605460E-1);
-+#1823=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#1824=LINE('',#1823,#1822);
-+#1825=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1826=VECTOR('',#1825,2.E0);
-+#1827=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
-+#1828=LINE('',#1827,#1826);
-+#1829=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1830=VECTOR('',#1829,2.E0);
-+#1831=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
-+#1832=LINE('',#1831,#1830);
-+#1833=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#1834=VECTOR('',#1833,5.773502691896E0);
-+#1835=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#1836=LINE('',#1835,#1834);
-+#1837=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
-+#1838=CARTESIAN_POINT('',(8.675E-1,2.930774450068E0,1.206069333205E1));
-+#1839=CARTESIAN_POINT('',(9.058386382037E-1,2.745461691651E0,1.216768370301E1));
-+#1840=CARTESIAN_POINT('',(1.029862281194E0,2.608885438662E0,1.224653603944E1));
-+#1841=CARTESIAN_POINT('',(1.125E0,2.580400233539E0,1.226298198028E1));
-+#1842=CARTESIAN_POINT('',(1.220137718806E0,2.608885438662E0,1.224653603944E1));
-+#1843=CARTESIAN_POINT('',(1.344161361796E0,2.745461691651E0,1.216768370301E1));
-+#1844=CARTESIAN_POINT('',(1.3825E0,2.930774450068E0,1.206069333205E1));
-+#1845=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1847=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1848=CARTESIAN_POINT('',(1.3825E0,3.141022319657E0,1.193930666795E1));
-+#1849=CARTESIAN_POINT('',(1.344161361796E0,3.326335078073E0,1.183231629699E1));
-+#1850=CARTESIAN_POINT('',(1.220137718806E0,3.462911331062E0,1.175346396056E1));
-+#1851=CARTESIAN_POINT('',(1.125E0,3.491396536186E0,1.173701801972E1));
-+#1852=CARTESIAN_POINT('',(1.029862281194E0,3.462911331062E0,1.175346396056E1));
-+#1853=CARTESIAN_POINT('',(9.058386382037E-1,3.326335078073E0,1.183231629699E1));
-+#1854=CARTESIAN_POINT('',(8.675E-1,3.141022319657E0,1.193930666795E1));
-+#1855=CARTESIAN_POINT('',(8.675E-1,3.035898384862E0,1.2E1));
-+#1857=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#1858=VECTOR('',#1857,5.773502691896E0);
-+#1859=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
-+#1860=LINE('',#1859,#1858);
-+#1861=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1862=VECTOR('',#1861,2.035898384862E0);
-+#1863=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
-+#1864=LINE('',#1863,#1862);
-+#1865=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1866=VECTOR('',#1865,2.035898384862E0);
-+#1867=CARTESIAN_POINT('',(1.3825E0,3.035898384862E0,1.2E1));
-+#1868=LINE('',#1867,#1866);
-+#1869=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1871=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1872=AXIS2_PLACEMENT_3D('',#1869,#1870,#1871);
-+#1874=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1875=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1876=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1877=AXIS2_PLACEMENT_3D('',#1874,#1875,#1876);
-+#1879=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1880=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1881=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1882=AXIS2_PLACEMENT_3D('',#1879,#1880,#1881);
-+#1884=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#1885=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1886=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1887=AXIS2_PLACEMENT_3D('',#1884,#1885,#1886);
-+#1889=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1890=VECTOR('',#1889,1.E0);
-+#1891=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
-+#1892=LINE('',#1891,#1890);
-+#1893=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1894=VECTOR('',#1893,1.E0);
-+#1895=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
-+#1896=LINE('',#1895,#1894);
-+#1897=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1898=VECTOR('',#1897,2.5E0);
-+#1899=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#1900=LINE('',#1899,#1898);
-+#1901=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1902=VECTOR('',#1901,2.E0);
-+#1903=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#1904=LINE('',#1903,#1902);
-+#1905=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1906=VECTOR('',#1905,1.5E0);
-+#1907=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#1908=LINE('',#1907,#1906);
-+#1909=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1910=VECTOR('',#1909,7.071067811865E-1);
-+#1911=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#1912=LINE('',#1911,#1910);
-+#1913=DIRECTION('',(0.E0,1.E0,0.E0));
-+#1914=VECTOR('',#1913,1.5E0);
-+#1915=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
-+#1916=LINE('',#1915,#1914);
-+#1917=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#1918=VECTOR('',#1917,7.071067811865E-1);
-+#1919=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#1920=LINE('',#1919,#1918);
-+#1921=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1922=VECTOR('',#1921,2.E0);
-+#1923=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#1924=LINE('',#1923,#1922);
-+#1925=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1926=VECTOR('',#1925,2.E0);
-+#1927=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#1928=LINE('',#1927,#1926);
-+#1929=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#1930=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1931=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1932=AXIS2_PLACEMENT_3D('',#1929,#1930,#1931);
-+#1934=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#1935=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1936=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1937=AXIS2_PLACEMENT_3D('',#1934,#1935,#1936);
-+#1939=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#1940=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1941=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1942=AXIS2_PLACEMENT_3D('',#1939,#1940,#1941);
-+#1944=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#1945=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1946=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1947=AXIS2_PLACEMENT_3D('',#1944,#1945,#1946);
-+#1949=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1950=VECTOR('',#1949,3.75E-1);
-+#1951=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
-+#1952=LINE('',#1951,#1950);
-+#1953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1954=VECTOR('',#1953,3.75E-1);
-+#1955=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
-+#1956=LINE('',#1955,#1954);
-+#1957=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#1958=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1959=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1960=AXIS2_PLACEMENT_3D('',#1957,#1958,#1959);
-+#1962=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#1963=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1964=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1965=AXIS2_PLACEMENT_3D('',#1962,#1963,#1964);
-+#1967=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1968=VECTOR('',#1967,2.5E-1);
-+#1969=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
-+#1970=LINE('',#1969,#1968);
-+#1971=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1972=VECTOR('',#1971,2.5E-1);
-+#1973=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
-+#1974=LINE('',#1973,#1972);
-+#1975=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#1976=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1977=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1978=AXIS2_PLACEMENT_3D('',#1975,#1976,#1977);
-+#1980=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#1981=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#1982=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#1983=AXIS2_PLACEMENT_3D('',#1980,#1981,#1982);
-+#1985=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1986=VECTOR('',#1985,5.E-1);
-+#1987=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#1988=LINE('',#1987,#1986);
-+#1989=CARTESIAN_POINT('',(2.15E0,6.65E0,1.E1));
-+#1990=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1991=DIRECTION('',(1.E0,0.E0,0.E0));
-+#1992=AXIS2_PLACEMENT_3D('',#1989,#1990,#1991);
-+#1994=DIRECTION('',(0.E0,0.E0,1.E0));
-+#1995=VECTOR('',#1994,5.E-1);
-+#1996=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
-+#1997=LINE('',#1996,#1995);
-+#1998=CARTESIAN_POINT('',(2.15E0,6.65E0,9.5E0));
-+#1999=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2000=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2001=AXIS2_PLACEMENT_3D('',#1998,#1999,#2000);
-+#2003=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2004=VECTOR('',#2003,4.3E0);
-+#2005=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#2006=LINE('',#2005,#2004);
-+#2007=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2008=VECTOR('',#2007,1.972007605460E-1);
-+#2009=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
-+#2010=LINE('',#2009,#2008);
-+#2011=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#2012=VECTOR('',#2011,2.059126028197E0);
-+#2013=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
-+#2014=LINE('',#2013,#2012);
-+#2015=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2016=VECTOR('',#2015,1.197200760546E0);
-+#2017=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
-+#2018=LINE('',#2017,#2016);
-+#2019=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2020=VECTOR('',#2019,6.8E0);
-+#2021=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
-+#2022=LINE('',#2021,#2020);
-+#2023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2024=VECTOR('',#2023,1.3E0);
-+#2025=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
-+#2026=LINE('',#2025,#2024);
-+#2027=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2028=VECTOR('',#2027,5.E-1);
-+#2029=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#2030=LINE('',#2029,#2028);
-+#2031=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.E1));
-+#2032=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2033=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2034=AXIS2_PLACEMENT_3D('',#2031,#2032,#2033);
-+#2036=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2037=VECTOR('',#2036,5.E-1);
-+#2038=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
-+#2039=LINE('',#2038,#2037);
-+#2040=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,9.5E0));
-+#2041=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2042=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#2043=AXIS2_PLACEMENT_3D('',#2040,#2041,#2042);
-+#2045=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2046=VECTOR('',#2045,5.E-1);
-+#2047=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#2048=LINE('',#2047,#2046);
-+#2049=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.E1));
-+#2050=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2051=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#2052=AXIS2_PLACEMENT_3D('',#2049,#2050,#2051);
-+#2054=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2055=VECTOR('',#2054,5.E-1);
-+#2056=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
-+#2057=LINE('',#2056,#2055);
-+#2058=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,9.5E0));
-+#2059=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2060=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2061=AXIS2_PLACEMENT_3D('',#2058,#2059,#2060);
-+#2063=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2064=VECTOR('',#2063,5.E-1);
-+#2065=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#2066=LINE('',#2065,#2064);
-+#2067=CARTESIAN_POINT('',(4.15E0,9.15E0,1.E1));
-+#2068=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2069=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2070=AXIS2_PLACEMENT_3D('',#2067,#2068,#2069);
-+#2072=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2073=VECTOR('',#2072,5.E-1);
-+#2074=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
-+#2075=LINE('',#2074,#2073);
-+#2076=CARTESIAN_POINT('',(4.15E0,9.15E0,9.5E0));
-+#2077=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2078=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2079=AXIS2_PLACEMENT_3D('',#2076,#2077,#2078);
-+#2081=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2082=VECTOR('',#2081,5.E-1);
-+#2083=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#2084=LINE('',#2083,#2082);
-+#2085=CARTESIAN_POINT('',(4.15E0,2.35E0,1.E1));
-+#2086=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2087=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2088=AXIS2_PLACEMENT_3D('',#2085,#2086,#2087);
-+#2090=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2091=VECTOR('',#2090,5.E-1);
-+#2092=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
-+#2093=LINE('',#2092,#2091);
-+#2094=CARTESIAN_POINT('',(4.15E0,2.35E0,9.5E0));
-+#2095=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2096=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2097=AXIS2_PLACEMENT_3D('',#2094,#2095,#2096);
-+#2099=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2100=VECTOR('',#2099,5.E-1);
-+#2101=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#2102=LINE('',#2101,#2100);
-+#2103=CARTESIAN_POINT('',(2.85E0,2.35E0,1.E1));
-+#2104=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2106=AXIS2_PLACEMENT_3D('',#2103,#2104,#2105);
-+#2108=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2109=VECTOR('',#2108,5.E-1);
-+#2110=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
-+#2111=LINE('',#2110,#2109);
-+#2112=CARTESIAN_POINT('',(2.85E0,2.35E0,9.5E0));
-+#2113=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2114=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2115=AXIS2_PLACEMENT_3D('',#2112,#2113,#2114);
-+#2117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2118=VECTOR('',#2117,1.5E0);
-+#2119=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#2120=LINE('',#2119,#2118);
-+#2121=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#2122=VECTOR('',#2121,7.071067811865E-1);
-+#2123=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#2124=LINE('',#2123,#2122);
-+#2125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2126=VECTOR('',#2125,1.5E0);
-+#2127=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
-+#2128=LINE('',#2127,#2126);
-+#2129=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#2130=VECTOR('',#2129,7.071067811865E-1);
-+#2131=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#2132=LINE('',#2131,#2130);
-+#2133=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2134=VECTOR('',#2133,3.75E-1);
-+#2135=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
-+#2136=LINE('',#2135,#2134);
-+#2137=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2138=VECTOR('',#2137,3.75E-1);
-+#2139=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
-+#2140=LINE('',#2139,#2138);
-+#2141=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#2142=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2143=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2144=AXIS2_PLACEMENT_3D('',#2141,#2142,#2143);
-+#2146=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#2147=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2148=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2149=AXIS2_PLACEMENT_3D('',#2146,#2147,#2148);
-+#2151=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2152=VECTOR('',#2151,2.5E-1);
-+#2153=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
-+#2154=LINE('',#2153,#2152);
-+#2155=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2156=VECTOR('',#2155,2.5E-1);
-+#2157=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
-+#2158=LINE('',#2157,#2156);
-+#2159=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#2160=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2161=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2162=AXIS2_PLACEMENT_3D('',#2159,#2160,#2161);
-+#2164=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#2165=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2166=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2167=AXIS2_PLACEMENT_3D('',#2164,#2165,#2166);
-+#2169=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
-+#2170=VECTOR('',#2169,2.5E-1);
-+#2171=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
-+#2172=LINE('',#2171,#2170);
-+#2173=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
-+#2174=VECTOR('',#2173,2.5E-1);
-+#2175=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
-+#2176=LINE('',#2175,#2174);
-+#2177=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#2178=VECTOR('',#2177,1.154700538379E-1);
-+#2179=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#2180=LINE('',#2179,#2178);
-+#2181=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#2182=VECTOR('',#2181,1.154700538379E-1);
-+#2183=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#2184=LINE('',#2183,#2182);
-+#2185=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
-+#2186=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2187=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2188=AXIS2_PLACEMENT_3D('',#2185,#2186,#2187);
-+#2190=CARTESIAN_POINT('',(1.755E1,1.25E0,2.975E1));
-+#2191=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2192=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2193=AXIS2_PLACEMENT_3D('',#2190,#2191,#2192);
-+#2195=DIRECTION('',(1.421085471520E-14,1.E0,0.E0));
-+#2196=VECTOR('',#2195,2.5E-1);
-+#2197=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
-+#2198=LINE('',#2197,#2196);
-+#2199=DIRECTION('',(-1.421085471520E-14,1.E0,0.E0));
-+#2200=VECTOR('',#2199,2.5E-1);
-+#2201=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
-+#2202=LINE('',#2201,#2200);
-+#2203=DIRECTION('',(-8.660254037844E-1,5.E-1,0.E0));
-+#2204=VECTOR('',#2203,1.154700538379E-1);
-+#2205=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#2206=LINE('',#2205,#2204);
-+#2207=DIRECTION('',(8.660254037844E-1,5.E-1,0.E0));
-+#2208=VECTOR('',#2207,1.154700538379E-1);
-+#2209=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#2210=LINE('',#2209,#2208);
-+#2211=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
-+#2212=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2213=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2214=AXIS2_PLACEMENT_3D('',#2211,#2212,#2213);
-+#2216=CARTESIAN_POINT('',(1.655E1,1.25E0,2.975E1));
-+#2217=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2218=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2219=AXIS2_PLACEMENT_3D('',#2216,#2217,#2218);
-+#2221=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2222=VECTOR('',#2221,5.E-1);
-+#2223=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
-+#2224=LINE('',#2223,#2222);
-+#2225=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2226=VECTOR('',#2225,5.E-1);
-+#2227=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
-+#2228=LINE('',#2227,#2226);
-+#2229=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2230=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2231=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2232=AXIS2_PLACEMENT_3D('',#2229,#2230,#2231);
-+#2234=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2235=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2236=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2237=AXIS2_PLACEMENT_3D('',#2234,#2235,#2236);
-+#2239=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2240=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2241=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2242=AXIS2_PLACEMENT_3D('',#2239,#2240,#2241);
-+#2244=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#2245=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2246=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2247=AXIS2_PLACEMENT_3D('',#2244,#2245,#2246);
-+#2249=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2250=VECTOR('',#2249,1.E0);
-+#2251=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
-+#2252=LINE('',#2251,#2250);
-+#2253=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2254=VECTOR('',#2253,1.E0);
-+#2255=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
-+#2256=LINE('',#2255,#2254);
-+#2257=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2258=VECTOR('',#2257,5.E-1);
-+#2259=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
-+#2260=LINE('',#2259,#2258);
-+#2261=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2262=VECTOR('',#2261,5.E-1);
-+#2263=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
-+#2264=LINE('',#2263,#2262);
-+#2265=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2266=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2267=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2268=AXIS2_PLACEMENT_3D('',#2265,#2266,#2267);
-+#2270=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2271=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2273=AXIS2_PLACEMENT_3D('',#2270,#2271,#2272);
-+#2275=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2276=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2277=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2278=AXIS2_PLACEMENT_3D('',#2275,#2276,#2277);
-+#2280=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#2281=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2282=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2283=AXIS2_PLACEMENT_3D('',#2280,#2281,#2282);
-+#2285=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2286=VECTOR('',#2285,1.E0);
-+#2287=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
-+#2288=LINE('',#2287,#2286);
-+#2289=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2290=VECTOR('',#2289,1.E0);
-+#2291=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
-+#2292=LINE('',#2291,#2290);
-+#2293=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2294=VECTOR('',#2293,5.E-1);
-+#2295=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
-+#2296=LINE('',#2295,#2294);
-+#2297=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2298=VECTOR('',#2297,5.E-1);
-+#2299=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
-+#2300=LINE('',#2299,#2298);
-+#2301=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2302=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2303=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2304=AXIS2_PLACEMENT_3D('',#2301,#2302,#2303);
-+#2306=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2307=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2308=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2309=AXIS2_PLACEMENT_3D('',#2306,#2307,#2308);
-+#2311=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2312=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2313=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2314=AXIS2_PLACEMENT_3D('',#2311,#2312,#2313);
-+#2316=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#2317=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2318=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2319=AXIS2_PLACEMENT_3D('',#2316,#2317,#2318);
-+#2321=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2322=VECTOR('',#2321,1.E0);
-+#2323=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
-+#2324=LINE('',#2323,#2322);
-+#2325=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2326=VECTOR('',#2325,1.E0);
-+#2327=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
-+#2328=LINE('',#2327,#2326);
-+#2329=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2330=VECTOR('',#2329,5.E-1);
-+#2331=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
-+#2332=LINE('',#2331,#2330);
-+#2333=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2334=VECTOR('',#2333,5.E-1);
-+#2335=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
-+#2336=LINE('',#2335,#2334);
-+#2337=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2338=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2339=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2340=AXIS2_PLACEMENT_3D('',#2337,#2338,#2339);
-+#2342=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2343=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2344=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2345=AXIS2_PLACEMENT_3D('',#2342,#2343,#2344);
-+#2347=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2349=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2350=AXIS2_PLACEMENT_3D('',#2347,#2348,#2349);
-+#2352=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#2353=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2354=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2355=AXIS2_PLACEMENT_3D('',#2352,#2353,#2354);
-+#2357=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2358=VECTOR('',#2357,1.E0);
-+#2359=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
-+#2360=LINE('',#2359,#2358);
-+#2361=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2362=VECTOR('',#2361,1.E0);
-+#2363=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
-+#2364=LINE('',#2363,#2362);
-+#2365=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2366=VECTOR('',#2365,5.E-1);
-+#2367=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
-+#2368=LINE('',#2367,#2366);
-+#2369=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2370=VECTOR('',#2369,5.E-1);
-+#2371=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
-+#2372=LINE('',#2371,#2370);
-+#2373=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2374=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2375=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2376=AXIS2_PLACEMENT_3D('',#2373,#2374,#2375);
-+#2378=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2379=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2380=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2381=AXIS2_PLACEMENT_3D('',#2378,#2379,#2380);
-+#2383=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2384=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2385=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2386=AXIS2_PLACEMENT_3D('',#2383,#2384,#2385);
-+#2388=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#2389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2390=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2391=AXIS2_PLACEMENT_3D('',#2388,#2389,#2390);
-+#2393=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2394=VECTOR('',#2393,1.E0);
-+#2395=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
-+#2396=LINE('',#2395,#2394);
-+#2397=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2398=VECTOR('',#2397,1.E0);
-+#2399=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
-+#2400=LINE('',#2399,#2398);
-+#2401=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2402=VECTOR('',#2401,5.E-1);
-+#2403=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
-+#2404=LINE('',#2403,#2402);
-+#2405=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2406=VECTOR('',#2405,5.E-1);
-+#2407=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
-+#2408=LINE('',#2407,#2406);
-+#2409=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2410=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2411=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2412=AXIS2_PLACEMENT_3D('',#2409,#2410,#2411);
-+#2414=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2415=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2416=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2417=AXIS2_PLACEMENT_3D('',#2414,#2415,#2416);
-+#2419=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2420=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2421=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2422=AXIS2_PLACEMENT_3D('',#2419,#2420,#2421);
-+#2424=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#2425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2426=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2427=AXIS2_PLACEMENT_3D('',#2424,#2425,#2426);
-+#2429=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2430=VECTOR('',#2429,1.E0);
-+#2431=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
-+#2432=LINE('',#2431,#2430);
-+#2433=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2434=VECTOR('',#2433,1.E0);
-+#2435=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
-+#2436=LINE('',#2435,#2434);
-+#2437=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2438=VECTOR('',#2437,5.E-1);
-+#2439=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
-+#2440=LINE('',#2439,#2438);
-+#2441=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2442=VECTOR('',#2441,5.E-1);
-+#2443=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
-+#2444=LINE('',#2443,#2442);
-+#2445=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2446=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2448=AXIS2_PLACEMENT_3D('',#2445,#2446,#2447);
-+#2450=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2451=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2452=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2453=AXIS2_PLACEMENT_3D('',#2450,#2451,#2452);
-+#2455=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2456=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2457=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2458=AXIS2_PLACEMENT_3D('',#2455,#2456,#2457);
-+#2460=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#2461=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2462=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2463=AXIS2_PLACEMENT_3D('',#2460,#2461,#2462);
-+#2465=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2466=VECTOR('',#2465,1.E0);
-+#2467=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
-+#2468=LINE('',#2467,#2466);
-+#2469=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2470=VECTOR('',#2469,1.E0);
-+#2471=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
-+#2472=LINE('',#2471,#2470);
-+#2473=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2474=VECTOR('',#2473,5.E-1);
-+#2475=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
-+#2476=LINE('',#2475,#2474);
-+#2477=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2478=VECTOR('',#2477,5.E-1);
-+#2479=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
-+#2480=LINE('',#2479,#2478);
-+#2481=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2482=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2483=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2484=AXIS2_PLACEMENT_3D('',#2481,#2482,#2483);
-+#2486=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2487=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2488=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2489=AXIS2_PLACEMENT_3D('',#2486,#2487,#2488);
-+#2491=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2492=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2493=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2494=AXIS2_PLACEMENT_3D('',#2491,#2492,#2493);
-+#2496=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#2497=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2498=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2499=AXIS2_PLACEMENT_3D('',#2496,#2497,#2498);
-+#2501=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2502=VECTOR('',#2501,1.E0);
-+#2503=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
-+#2504=LINE('',#2503,#2502);
-+#2505=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2506=VECTOR('',#2505,1.E0);
-+#2507=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
-+#2508=LINE('',#2507,#2506);
-+#2509=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2510=VECTOR('',#2509,5.E-1);
-+#2511=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
-+#2512=LINE('',#2511,#2510);
-+#2513=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2514=VECTOR('',#2513,5.E-1);
-+#2515=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
-+#2516=LINE('',#2515,#2514);
-+#2517=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2518=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2519=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2520=AXIS2_PLACEMENT_3D('',#2517,#2518,#2519);
-+#2522=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2523=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2524=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2525=AXIS2_PLACEMENT_3D('',#2522,#2523,#2524);
-+#2527=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2528=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2529=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2530=AXIS2_PLACEMENT_3D('',#2527,#2528,#2529);
-+#2532=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#2533=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2534=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2535=AXIS2_PLACEMENT_3D('',#2532,#2533,#2534);
-+#2537=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2538=VECTOR('',#2537,1.E0);
-+#2539=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
-+#2540=LINE('',#2539,#2538);
-+#2541=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2542=VECTOR('',#2541,1.E0);
-+#2543=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
-+#2544=LINE('',#2543,#2542);
-+#2545=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2546=VECTOR('',#2545,5.E-1);
-+#2547=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
-+#2548=LINE('',#2547,#2546);
-+#2549=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2550=VECTOR('',#2549,5.E-1);
-+#2551=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
-+#2552=LINE('',#2551,#2550);
-+#2553=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2556=AXIS2_PLACEMENT_3D('',#2553,#2554,#2555);
-+#2558=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2559=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2560=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2561=AXIS2_PLACEMENT_3D('',#2558,#2559,#2560);
-+#2563=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2564=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2565=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2566=AXIS2_PLACEMENT_3D('',#2563,#2564,#2565);
-+#2568=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#2569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2570=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2571=AXIS2_PLACEMENT_3D('',#2568,#2569,#2570);
-+#2573=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2574=VECTOR('',#2573,1.E0);
-+#2575=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
-+#2576=LINE('',#2575,#2574);
-+#2577=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2578=VECTOR('',#2577,1.E0);
-+#2579=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
-+#2580=LINE('',#2579,#2578);
-+#2581=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2582=VECTOR('',#2581,5.E-1);
-+#2583=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
-+#2584=LINE('',#2583,#2582);
-+#2585=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2586=VECTOR('',#2585,5.E-1);
-+#2587=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
-+#2588=LINE('',#2587,#2586);
-+#2589=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2590=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2591=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2592=AXIS2_PLACEMENT_3D('',#2589,#2590,#2591);
-+#2594=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2595=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2596=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2597=AXIS2_PLACEMENT_3D('',#2594,#2595,#2596);
-+#2599=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2600=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2601=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2602=AXIS2_PLACEMENT_3D('',#2599,#2600,#2601);
-+#2604=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#2605=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2606=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2607=AXIS2_PLACEMENT_3D('',#2604,#2605,#2606);
-+#2609=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2610=VECTOR('',#2609,1.E0);
-+#2611=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
-+#2612=LINE('',#2611,#2610);
-+#2613=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2614=VECTOR('',#2613,1.E0);
-+#2615=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
-+#2616=LINE('',#2615,#2614);
-+#2617=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2618=VECTOR('',#2617,5.E-1);
-+#2619=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
-+#2620=LINE('',#2619,#2618);
-+#2621=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2622=VECTOR('',#2621,5.E-1);
-+#2623=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
-+#2624=LINE('',#2623,#2622);
-+#2625=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2626=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2627=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2628=AXIS2_PLACEMENT_3D('',#2625,#2626,#2627);
-+#2630=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2631=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2632=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2633=AXIS2_PLACEMENT_3D('',#2630,#2631,#2632);
-+#2635=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2636=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2637=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2638=AXIS2_PLACEMENT_3D('',#2635,#2636,#2637);
-+#2640=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#2641=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2642=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2643=AXIS2_PLACEMENT_3D('',#2640,#2641,#2642);
-+#2645=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2646=VECTOR('',#2645,1.E0);
-+#2647=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
-+#2648=LINE('',#2647,#2646);
-+#2649=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2650=VECTOR('',#2649,1.E0);
-+#2651=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
-+#2652=LINE('',#2651,#2650);
-+#2653=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2654=VECTOR('',#2653,5.E-1);
-+#2655=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
-+#2656=LINE('',#2655,#2654);
-+#2657=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2658=VECTOR('',#2657,5.E-1);
-+#2659=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
-+#2660=LINE('',#2659,#2658);
-+#2661=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2662=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2663=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2664=AXIS2_PLACEMENT_3D('',#2661,#2662,#2663);
-+#2666=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2667=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2668=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2669=AXIS2_PLACEMENT_3D('',#2666,#2667,#2668);
-+#2671=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2672=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2674=AXIS2_PLACEMENT_3D('',#2671,#2672,#2673);
-+#2676=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#2677=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2678=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2679=AXIS2_PLACEMENT_3D('',#2676,#2677,#2678);
-+#2681=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2682=VECTOR('',#2681,1.E0);
-+#2683=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
-+#2684=LINE('',#2683,#2682);
-+#2685=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2686=VECTOR('',#2685,1.E0);
-+#2687=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
-+#2688=LINE('',#2687,#2686);
-+#2689=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2690=VECTOR('',#2689,5.E-1);
-+#2691=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
-+#2692=LINE('',#2691,#2690);
-+#2693=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2694=VECTOR('',#2693,5.E-1);
-+#2695=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
-+#2696=LINE('',#2695,#2694);
-+#2697=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2698=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2699=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2700=AXIS2_PLACEMENT_3D('',#2697,#2698,#2699);
-+#2702=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2703=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2704=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2705=AXIS2_PLACEMENT_3D('',#2702,#2703,#2704);
-+#2707=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2708=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2709=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2710=AXIS2_PLACEMENT_3D('',#2707,#2708,#2709);
-+#2712=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#2713=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2714=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2715=AXIS2_PLACEMENT_3D('',#2712,#2713,#2714);
-+#2717=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2718=VECTOR('',#2717,1.E0);
-+#2719=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
-+#2720=LINE('',#2719,#2718);
-+#2721=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2722=VECTOR('',#2721,1.E0);
-+#2723=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
-+#2724=LINE('',#2723,#2722);
-+#2725=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2726=VECTOR('',#2725,5.E-1);
-+#2727=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
-+#2728=LINE('',#2727,#2726);
-+#2729=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2730=VECTOR('',#2729,5.E-1);
-+#2731=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
-+#2732=LINE('',#2731,#2730);
-+#2733=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2734=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2735=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2736=AXIS2_PLACEMENT_3D('',#2733,#2734,#2735);
-+#2738=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2739=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2740=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2741=AXIS2_PLACEMENT_3D('',#2738,#2739,#2740);
-+#2743=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2744=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2745=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2746=AXIS2_PLACEMENT_3D('',#2743,#2744,#2745);
-+#2748=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#2749=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2750=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2751=AXIS2_PLACEMENT_3D('',#2748,#2749,#2750);
-+#2753=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2754=VECTOR('',#2753,1.E0);
-+#2755=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
-+#2756=LINE('',#2755,#2754);
-+#2757=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2758=VECTOR('',#2757,1.E0);
-+#2759=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
-+#2760=LINE('',#2759,#2758);
-+#2761=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2762=VECTOR('',#2761,5.E-1);
-+#2763=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
-+#2764=LINE('',#2763,#2762);
-+#2765=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2766=VECTOR('',#2765,5.E-1);
-+#2767=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
-+#2768=LINE('',#2767,#2766);
-+#2769=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2770=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2771=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2772=AXIS2_PLACEMENT_3D('',#2769,#2770,#2771);
-+#2774=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2775=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2776=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2777=AXIS2_PLACEMENT_3D('',#2774,#2775,#2776);
-+#2779=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2780=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2781=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2782=AXIS2_PLACEMENT_3D('',#2779,#2780,#2781);
-+#2784=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#2785=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2786=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2787=AXIS2_PLACEMENT_3D('',#2784,#2785,#2786);
-+#2789=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2790=VECTOR('',#2789,1.E0);
-+#2791=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
-+#2792=LINE('',#2791,#2790);
-+#2793=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2794=VECTOR('',#2793,1.E0);
-+#2795=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
-+#2796=LINE('',#2795,#2794);
-+#2797=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2798=VECTOR('',#2797,5.E-1);
-+#2799=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
-+#2800=LINE('',#2799,#2798);
-+#2801=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2802=VECTOR('',#2801,5.E-1);
-+#2803=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
-+#2804=LINE('',#2803,#2802);
-+#2805=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2806=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2807=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2808=AXIS2_PLACEMENT_3D('',#2805,#2806,#2807);
-+#2810=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2811=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2812=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2813=AXIS2_PLACEMENT_3D('',#2810,#2811,#2812);
-+#2815=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2816=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2817=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2818=AXIS2_PLACEMENT_3D('',#2815,#2816,#2817);
-+#2820=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#2821=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2822=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2823=AXIS2_PLACEMENT_3D('',#2820,#2821,#2822);
-+#2825=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2826=VECTOR('',#2825,1.E0);
-+#2827=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
-+#2828=LINE('',#2827,#2826);
-+#2829=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2830=VECTOR('',#2829,1.E0);
-+#2831=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
-+#2832=LINE('',#2831,#2830);
-+#2833=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2834=VECTOR('',#2833,5.E-1);
-+#2835=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
-+#2836=LINE('',#2835,#2834);
-+#2837=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2838=VECTOR('',#2837,5.E-1);
-+#2839=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
-+#2840=LINE('',#2839,#2838);
-+#2841=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2842=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2843=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2844=AXIS2_PLACEMENT_3D('',#2841,#2842,#2843);
-+#2846=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2847=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2848=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2849=AXIS2_PLACEMENT_3D('',#2846,#2847,#2848);
-+#2851=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2852=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2853=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2854=AXIS2_PLACEMENT_3D('',#2851,#2852,#2853);
-+#2856=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#2857=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2858=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2859=AXIS2_PLACEMENT_3D('',#2856,#2857,#2858);
-+#2861=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2862=VECTOR('',#2861,1.E0);
-+#2863=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
-+#2864=LINE('',#2863,#2862);
-+#2865=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2866=VECTOR('',#2865,1.E0);
-+#2867=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
-+#2868=LINE('',#2867,#2866);
-+#2869=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#2870=VECTOR('',#2869,5.773502691896E0);
-+#2871=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
-+#2872=LINE('',#2871,#2870);
-+#2873=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2874=CARTESIAN_POINT('',(2.31325E1,2.930774450068E0,1.206069333205E1));
-+#2875=CARTESIAN_POINT('',(2.309416136180E1,2.745461691651E0,1.216768370301E1));
-+#2876=CARTESIAN_POINT('',(2.297013771881E1,2.608885438662E0,1.224653603944E1));
-+#2877=CARTESIAN_POINT('',(2.2875E1,2.580400233539E0,1.226298198028E1));
-+#2878=CARTESIAN_POINT('',(2.277986228119E1,2.608885438662E0,1.224653603944E1));
-+#2879=CARTESIAN_POINT('',(2.265583863820E1,2.745461691651E0,1.216768370301E1));
-+#2880=CARTESIAN_POINT('',(2.26175E1,2.930774450068E0,1.206069333205E1));
-+#2881=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
-+#2883=CARTESIAN_POINT('',(2.26175E1,3.035898384862E0,1.2E1));
-+#2884=CARTESIAN_POINT('',(2.26175E1,3.141022319657E0,1.193930666795E1));
-+#2885=CARTESIAN_POINT('',(2.265583863820E1,3.326335078073E0,1.183231629699E1));
-+#2886=CARTESIAN_POINT('',(2.277986228119E1,3.462911331062E0,1.175346396056E1));
-+#2887=CARTESIAN_POINT('',(2.2875E1,3.491396536186E0,1.173701801972E1));
-+#2888=CARTESIAN_POINT('',(2.297013771881E1,3.462911331062E0,1.175346396056E1));
-+#2889=CARTESIAN_POINT('',(2.309416136180E1,3.326335078073E0,1.183231629699E1));
-+#2890=CARTESIAN_POINT('',(2.31325E1,3.141022319657E0,1.193930666795E1));
-+#2891=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2893=DIRECTION('',(0.E0,1.E0,0.E0));
-+#2894=VECTOR('',#2893,2.035898384862E0);
-+#2895=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
-+#2896=LINE('',#2895,#2894);
-+#2897=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2898=VECTOR('',#2897,2.035898384862E0);
-+#2899=CARTESIAN_POINT('',(2.31325E1,3.035898384862E0,1.2E1));
-+#2900=LINE('',#2899,#2898);
-+#2901=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2902=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2903=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2904=AXIS2_PLACEMENT_3D('',#2901,#2902,#2903);
-+#2906=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2907=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2908=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2909=AXIS2_PLACEMENT_3D('',#2906,#2907,#2908);
-+#2911=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2912=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2913=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2914=AXIS2_PLACEMENT_3D('',#2911,#2912,#2913);
-+#2916=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#2917=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2918=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2919=AXIS2_PLACEMENT_3D('',#2916,#2917,#2918);
-+#2921=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2922=VECTOR('',#2921,1.E0);
-+#2923=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
-+#2924=LINE('',#2923,#2922);
-+#2925=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2926=VECTOR('',#2925,1.E0);
-+#2927=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
-+#2928=LINE('',#2927,#2926);
-+#2929=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2930=VECTOR('',#2929,5.E-1);
-+#2931=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#2932=LINE('',#2931,#2930);
-+#2933=CARTESIAN_POINT('',(2.185E1,6.65E0,9.5E0));
-+#2934=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2935=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2936=AXIS2_PLACEMENT_3D('',#2933,#2934,#2935);
-+#2938=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2939=VECTOR('',#2938,5.E-1);
-+#2940=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
-+#2941=LINE('',#2940,#2939);
-+#2942=CARTESIAN_POINT('',(2.185E1,6.65E0,1.E1));
-+#2943=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2944=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
-+#2945=AXIS2_PLACEMENT_3D('',#2942,#2943,#2944);
-+#2947=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2948=VECTOR('',#2947,5.E-1);
-+#2949=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#2950=LINE('',#2949,#2948);
-+#2951=CARTESIAN_POINT('',(2.115E1,2.35E0,9.5E0));
-+#2952=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2953=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#2954=AXIS2_PLACEMENT_3D('',#2951,#2952,#2953);
-+#2956=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2957=VECTOR('',#2956,5.E-1);
-+#2958=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
-+#2959=LINE('',#2958,#2957);
-+#2960=CARTESIAN_POINT('',(2.115E1,2.35E0,1.E1));
-+#2961=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2962=DIRECTION('',(1.E0,0.E0,0.E0));
-+#2963=AXIS2_PLACEMENT_3D('',#2960,#2961,#2962);
-+#2965=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2966=VECTOR('',#2965,5.E-1);
-+#2967=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#2968=LINE('',#2967,#2966);
-+#2969=CARTESIAN_POINT('',(1.985E1,2.35E0,9.5E0));
-+#2970=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2971=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2972=AXIS2_PLACEMENT_3D('',#2969,#2970,#2971);
-+#2974=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2975=VECTOR('',#2974,5.E-1);
-+#2976=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
-+#2977=LINE('',#2976,#2975);
-+#2978=CARTESIAN_POINT('',(1.985E1,2.35E0,1.E1));
-+#2979=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2980=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
-+#2981=AXIS2_PLACEMENT_3D('',#2978,#2979,#2980);
-+#2983=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2984=VECTOR('',#2983,5.E-1);
-+#2985=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#2986=LINE('',#2985,#2984);
-+#2987=CARTESIAN_POINT('',(1.985E1,9.15E0,9.5E0));
-+#2988=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2989=DIRECTION('',(1.015061051086E-14,1.E0,0.E0));
-+#2990=AXIS2_PLACEMENT_3D('',#2987,#2988,#2989);
-+#2992=DIRECTION('',(0.E0,0.E0,1.E0));
-+#2993=VECTOR('',#2992,5.E-1);
-+#2994=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
-+#2995=LINE('',#2994,#2993);
-+#2996=CARTESIAN_POINT('',(1.985E1,9.15E0,1.E1));
-+#2997=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#2998=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#2999=AXIS2_PLACEMENT_3D('',#2996,#2997,#2998);
-+#3001=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3002=VECTOR('',#3001,5.E-1);
-+#3003=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#3004=LINE('',#3003,#3002);
-+#3005=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.5E0));
-+#3006=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3007=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3008=AXIS2_PLACEMENT_3D('',#3005,#3006,#3007);
-+#3010=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3011=VECTOR('',#3010,5.E-1);
-+#3012=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
-+#3013=LINE('',#3012,#3011);
-+#3014=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,1.E1));
-+#3015=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3016=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3017=AXIS2_PLACEMENT_3D('',#3014,#3015,#3016);
-+#3019=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3020=VECTOR('',#3019,5.E-1);
-+#3021=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#3022=LINE('',#3021,#3020);
-+#3023=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.5E0));
-+#3024=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3025=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3026=AXIS2_PLACEMENT_3D('',#3023,#3024,#3025);
-+#3028=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3029=VECTOR('',#3028,5.E-1);
-+#3030=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
-+#3031=LINE('',#3030,#3029);
-+#3032=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,1.E1));
-+#3033=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3034=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3035=AXIS2_PLACEMENT_3D('',#3032,#3033,#3034);
-+#3037=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3038=VECTOR('',#3037,1.972007605460E-1);
-+#3039=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#3040=LINE('',#3039,#3038);
-+#3041=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3042=VECTOR('',#3041,4.3E0);
-+#3043=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
-+#3044=LINE('',#3043,#3042);
-+#3045=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3046=VECTOR('',#3045,1.3E0);
-+#3047=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#3048=LINE('',#3047,#3046);
-+#3049=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3050=VECTOR('',#3049,6.8E0);
-+#3051=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#3052=LINE('',#3051,#3050);
-+#3053=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3054=VECTOR('',#3053,1.197200760546E0);
-+#3055=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#3056=LINE('',#3055,#3054);
-+#3057=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#3058=VECTOR('',#3057,2.059126028197E0);
-+#3059=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#3060=LINE('',#3059,#3058);
-+#3061=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3062=VECTOR('',#3061,2.5E-1);
-+#3063=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
-+#3064=LINE('',#3063,#3062);
-+#3065=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3066=VECTOR('',#3065,2.5E-1);
-+#3067=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
-+#3068=LINE('',#3067,#3066);
-+#3069=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#3070=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3071=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3072=AXIS2_PLACEMENT_3D('',#3069,#3070,#3071);
-+#3074=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#3075=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3076=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3077=AXIS2_PLACEMENT_3D('',#3074,#3075,#3076);
-+#3079=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3080=VECTOR('',#3079,2.5E-1);
-+#3081=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
-+#3082=LINE('',#3081,#3080);
-+#3083=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3084=VECTOR('',#3083,2.5E-1);
-+#3085=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
-+#3086=LINE('',#3085,#3084);
-+#3087=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#3088=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3089=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3090=AXIS2_PLACEMENT_3D('',#3087,#3088,#3089);
-+#3092=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#3093=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3094=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3095=AXIS2_PLACEMENT_3D('',#3092,#3093,#3094);
-+#3097=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3098=VECTOR('',#3097,2.5E-1);
-+#3099=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
-+#3100=LINE('',#3099,#3098);
-+#3101=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3102=VECTOR('',#3101,2.5E-1);
-+#3103=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
-+#3104=LINE('',#3103,#3102);
-+#3105=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#3106=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3107=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3108=AXIS2_PLACEMENT_3D('',#3105,#3106,#3107);
-+#3110=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#3111=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3112=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3113=AXIS2_PLACEMENT_3D('',#3110,#3111,#3112);
-+#3115=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3116=VECTOR('',#3115,2.5E-1);
-+#3117=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
-+#3118=LINE('',#3117,#3116);
-+#3119=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3120=VECTOR('',#3119,2.5E-1);
-+#3121=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
-+#3122=LINE('',#3121,#3120);
-+#3123=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#3124=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3125=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3126=AXIS2_PLACEMENT_3D('',#3123,#3124,#3125);
-+#3128=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#3129=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3130=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3131=AXIS2_PLACEMENT_3D('',#3128,#3129,#3130);
-+#3133=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3134=VECTOR('',#3133,2.5E-1);
-+#3135=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
-+#3136=LINE('',#3135,#3134);
-+#3137=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3138=VECTOR('',#3137,2.5E-1);
-+#3139=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
-+#3140=LINE('',#3139,#3138);
-+#3141=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#3142=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3144=AXIS2_PLACEMENT_3D('',#3141,#3142,#3143);
-+#3146=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#3147=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3149=AXIS2_PLACEMENT_3D('',#3146,#3147,#3148);
-+#3151=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3152=VECTOR('',#3151,5.E-1);
-+#3153=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#3154=LINE('',#3153,#3152);
-+#3155=CARTESIAN_POINT('',(3.75E0,2.75E0,8.E0));
-+#3156=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3158=AXIS2_PLACEMENT_3D('',#3155,#3156,#3157);
-+#3160=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3161=VECTOR('',#3160,5.E-1);
-+#3162=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
-+#3163=LINE('',#3162,#3161);
-+#3164=CARTESIAN_POINT('',(3.75E0,2.75E0,8.5E0));
-+#3165=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3166=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3167=AXIS2_PLACEMENT_3D('',#3164,#3165,#3166);
-+#3169=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3170=VECTOR('',#3169,5.E-1);
-+#3171=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#3172=LINE('',#3171,#3170);
-+#3173=CARTESIAN_POINT('',(3.75E0,8.75E0,8.E0));
-+#3174=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3175=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3176=AXIS2_PLACEMENT_3D('',#3173,#3174,#3175);
-+#3178=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3179=VECTOR('',#3178,5.E-1);
-+#3180=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
-+#3181=LINE('',#3180,#3179);
-+#3182=CARTESIAN_POINT('',(3.75E0,8.75E0,8.5E0));
-+#3183=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3184=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3185=AXIS2_PLACEMENT_3D('',#3182,#3183,#3184);
-+#3187=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3188=VECTOR('',#3187,5.E-1);
-+#3189=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#3190=LINE('',#3189,#3188);
-+#3191=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.E0));
-+#3192=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3193=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3194=AXIS2_PLACEMENT_3D('',#3191,#3192,#3193);
-+#3196=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3197=VECTOR('',#3196,5.E-1);
-+#3198=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
-+#3199=LINE('',#3198,#3197);
-+#3200=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,8.5E0));
-+#3201=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3202=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3203=AXIS2_PLACEMENT_3D('',#3200,#3201,#3202);
-+#3205=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3206=VECTOR('',#3205,5.E-1);
-+#3207=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#3208=LINE('',#3207,#3206);
-+#3209=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.E0));
-+#3210=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3211=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3212=AXIS2_PLACEMENT_3D('',#3209,#3210,#3211);
-+#3214=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3215=VECTOR('',#3214,5.E-1);
-+#3216=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
-+#3217=LINE('',#3216,#3215);
-+#3218=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,8.5E0));
-+#3219=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3221=AXIS2_PLACEMENT_3D('',#3218,#3219,#3220);
-+#3223=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3224=VECTOR('',#3223,6.E0);
-+#3225=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
-+#3226=LINE('',#3225,#3224);
-+#3227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3228=VECTOR('',#3227,5.618394209466E-1);
-+#3229=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
-+#3230=LINE('',#3229,#3228);
-+#3231=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#3232=VECTOR('',#3231,6.863753427325E0);
-+#3233=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
-+#3234=LINE('',#3233,#3232);
-+#3235=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3236=VECTOR('',#3235,3.895172754280E0);
-+#3237=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
-+#3238=LINE('',#3237,#3236);
-+#3239=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3240=VECTOR('',#3239,5.E-1);
-+#3241=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#3242=LINE('',#3241,#3240);
-+#3243=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.5E0));
-+#3244=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3245=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3246=AXIS2_PLACEMENT_3D('',#3243,#3244,#3245);
-+#3248=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3249=VECTOR('',#3248,5.E-1);
-+#3250=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
-+#3251=LINE('',#3250,#3249);
-+#3252=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.E0));
-+#3253=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3254=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3255=AXIS2_PLACEMENT_3D('',#3252,#3253,#3254);
-+#3257=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3258=VECTOR('',#3257,3.895172754280E0);
-+#3259=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#3260=LINE('',#3259,#3258);
-+#3261=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#3262=VECTOR('',#3261,6.863753427325E0);
-+#3263=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#3264=LINE('',#3263,#3262);
-+#3265=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3266=VECTOR('',#3265,5.618394209466E-1);
-+#3267=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#3268=LINE('',#3267,#3266);
-+#3269=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3270=VECTOR('',#3269,6.E0);
-+#3271=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#3272=LINE('',#3271,#3270);
-+#3273=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3274=VECTOR('',#3273,5.E-1);
-+#3275=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#3276=LINE('',#3275,#3274);
-+#3277=CARTESIAN_POINT('',(2.025E1,2.75E0,8.5E0));
-+#3278=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3279=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3280=AXIS2_PLACEMENT_3D('',#3277,#3278,#3279);
-+#3282=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3283=VECTOR('',#3282,5.E-1);
-+#3284=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
-+#3285=LINE('',#3284,#3283);
-+#3286=CARTESIAN_POINT('',(2.025E1,2.75E0,8.E0));
-+#3287=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3288=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3289=AXIS2_PLACEMENT_3D('',#3286,#3287,#3288);
-+#3291=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3292=VECTOR('',#3291,5.E-1);
-+#3293=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#3294=LINE('',#3293,#3292);
-+#3295=CARTESIAN_POINT('',(2.025E1,8.75E0,8.5E0));
-+#3296=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3297=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3298=AXIS2_PLACEMENT_3D('',#3295,#3296,#3297);
-+#3300=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3301=VECTOR('',#3300,5.E-1);
-+#3302=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
-+#3303=LINE('',#3302,#3301);
-+#3304=CARTESIAN_POINT('',(2.025E1,8.75E0,8.E0));
-+#3305=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3306=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3307=AXIS2_PLACEMENT_3D('',#3304,#3305,#3306);
-+#3309=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3310=VECTOR('',#3309,5.E-1);
-+#3311=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#3312=LINE('',#3311,#3310);
-+#3313=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.5E0));
-+#3314=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3315=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3316=AXIS2_PLACEMENT_3D('',#3313,#3314,#3315);
-+#3318=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3319=VECTOR('',#3318,5.E-1);
-+#3320=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
-+#3321=LINE('',#3320,#3319);
-+#3322=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.E0));
-+#3323=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3324=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#3325=AXIS2_PLACEMENT_3D('',#3322,#3323,#3324);
-+#3327=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3328=VECTOR('',#3327,6.875E-1);
-+#3329=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#3330=LINE('',#3329,#3328);
-+#3331=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3332=VECTOR('',#3331,6.875E-1);
-+#3333=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
-+#3334=LINE('',#3333,#3332);
-+#3335=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3336=VECTOR('',#3335,6.875E-1);
-+#3337=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#3338=LINE('',#3337,#3336);
-+#3339=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3340=VECTOR('',#3339,6.875E-1);
-+#3341=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
-+#3342=LINE('',#3341,#3340);
-+#3343=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3344=VECTOR('',#3343,3.E0);
-+#3345=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
-+#3346=LINE('',#3345,#3344);
-+#3347=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.25E0));
-+#3348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3349=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3350=AXIS2_PLACEMENT_3D('',#3347,#3348,#3349);
-+#3352=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3353=VECTOR('',#3352,3.E0);
-+#3354=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
-+#3355=LINE('',#3354,#3353);
-+#3356=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.25E0));
-+#3357=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3358=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3359=AXIS2_PLACEMENT_3D('',#3356,#3357,#3358);
-+#3361=CARTESIAN_POINT('',(1.61E0,6.875E-1,4.5E0));
-+#3362=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3363=DIRECTION('',(8.910741301059E-1,0.E0,4.538577912254E-1));
-+#3364=AXIS2_PLACEMENT_3D('',#3361,#3362,#3363);
-+#3366=CARTESIAN_POINT('',(7.5E0,6.875E-1,7.5E0));
-+#3367=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3368=DIRECTION('',(-4.496088413988E-1,0.E0,-8.932255536739E-1));
-+#3369=AXIS2_PLACEMENT_3D('',#3366,#3367,#3368);
-+#3371=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,1.645354088550E0));
-+#3372=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3373=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3374=AXIS2_PLACEMENT_3D('',#3371,#3372,#3373);
-+#3376=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3377=VECTOR('',#3376,4.263248410977E0);
-+#3378=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
-+#3379=LINE('',#3378,#3377);
-+#3380=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3381=VECTOR('',#3380,6.875E-1);
-+#3382=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#3383=LINE('',#3382,#3381);
-+#3384=CARTESIAN_POINT('',(1.455736763592E0,0.E0,4.577195232320E0));
-+#3385=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3386=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3387=AXIS2_PLACEMENT_3D('',#3384,#3385,#3386);
-+#3389=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3390=VECTOR('',#3389,6.875E-1);
-+#3391=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
-+#3392=LINE('',#3391,#3390);
-+#3393=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,4.577195232320E0));
-+#3394=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3395=DIRECTION('',(-8.942796313519E-1,0.E0,4.475085931567E-1));
-+#3396=AXIS2_PLACEMENT_3D('',#3393,#3394,#3395);
-+#3398=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3399=VECTOR('',#3398,6.875E-1);
-+#3400=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
-+#3401=LINE('',#3400,#3399);
-+#3402=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3403=VECTOR('',#3402,6.875E-1);
-+#3404=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
-+#3405=LINE('',#3404,#3403);
-+#3406=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3407=VECTOR('',#3406,6.875E-1);
-+#3408=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
-+#3409=LINE('',#3408,#3407);
-+#3410=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3411=VECTOR('',#3410,6.875E-1);
-+#3412=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#3413=LINE('',#3412,#3411);
-+#3414=CARTESIAN_POINT('',(-1.85E-1,0.E0,7.815E0));
-+#3415=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3416=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3417=AXIS2_PLACEMENT_3D('',#3414,#3415,#3416);
-+#3419=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3420=VECTOR('',#3419,6.875E-1);
-+#3421=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
-+#3422=LINE('',#3421,#3420);
-+#3423=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,7.815E0));
-+#3424=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3425=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3426=AXIS2_PLACEMENT_3D('',#3423,#3424,#3425);
-+#3428=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3429=VECTOR('',#3428,7.5E-1);
-+#3430=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#3431=LINE('',#3430,#3429);
-+#3432=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3433=VECTOR('',#3432,3.15E-1);
-+#3434=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
-+#3435=LINE('',#3434,#3433);
-+#3436=CARTESIAN_POINT('',(1.25125E0,6.875E-1,7.5E0));
-+#3437=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3438=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3439=AXIS2_PLACEMENT_3D('',#3436,#3437,#3438);
-+#3441=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3442=VECTOR('',#3441,3.15E-1);
-+#3443=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#3444=LINE('',#3443,#3442);
-+#3445=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3446=VECTOR('',#3445,2.525E-1);
-+#3447=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
-+#3448=LINE('',#3447,#3446);
-+#3449=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3450=VECTOR('',#3449,8.1E-1);
-+#3451=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
-+#3452=LINE('',#3451,#3450);
-+#3453=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3454=VECTOR('',#3453,3.875E0);
-+#3455=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
-+#3456=LINE('',#3455,#3454);
-+#3457=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3458=VECTOR('',#3457,8.1E-1);
-+#3459=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
-+#3460=LINE('',#3459,#3458);
-+#3461=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3462=VECTOR('',#3461,6.875E-1);
-+#3463=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#3464=LINE('',#3463,#3462);
-+#3465=CARTESIAN_POINT('',(2.6875E0,0.E0,7.815E0));
-+#3466=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3467=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3468=AXIS2_PLACEMENT_3D('',#3465,#3466,#3467);
-+#3470=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3471=VECTOR('',#3470,6.875E-1);
-+#3472=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
-+#3473=LINE('',#3472,#3471);
-+#3474=CARTESIAN_POINT('',(2.6875E0,6.875E-1,7.815E0));
-+#3475=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3476=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3477=AXIS2_PLACEMENT_3D('',#3474,#3475,#3476);
-+#3479=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3480=VECTOR('',#3479,6.875E-1);
-+#3481=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#3482=LINE('',#3481,#3480);
-+#3483=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3484=VECTOR('',#3483,6.875E-1);
-+#3485=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
-+#3486=LINE('',#3485,#3484);
-+#3487=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3488=VECTOR('',#3487,6.875E-1);
-+#3489=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#3490=LINE('',#3489,#3488);
-+#3491=CARTESIAN_POINT('',(3.4375E0,0.E0,9.565E0));
-+#3492=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3493=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3494=AXIS2_PLACEMENT_3D('',#3491,#3492,#3493);
-+#3496=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3497=VECTOR('',#3496,6.875E-1);
-+#3498=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
-+#3499=LINE('',#3498,#3497);
-+#3500=CARTESIAN_POINT('',(3.4375E0,6.875E-1,9.565E0));
-+#3501=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3502=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3503=AXIS2_PLACEMENT_3D('',#3500,#3501,#3502);
-+#3505=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3506=VECTOR('',#3505,6.875E-1);
-+#3507=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#3508=LINE('',#3507,#3506);
-+#3509=CARTESIAN_POINT('',(3.4375E0,0.E0,1.0375E1));
-+#3510=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3511=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3512=AXIS2_PLACEMENT_3D('',#3509,#3510,#3511);
-+#3514=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3515=VECTOR('',#3514,6.875E-1);
-+#3516=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
-+#3517=LINE('',#3516,#3515);
-+#3518=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.0375E1));
-+#3519=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3520=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3521=AXIS2_PLACEMENT_3D('',#3518,#3519,#3520);
-+#3523=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3524=VECTOR('',#3523,6.875E-1);
-+#3525=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#3526=LINE('',#3525,#3524);
-+#3527=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.0375E1));
-+#3528=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3529=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3530=AXIS2_PLACEMENT_3D('',#3527,#3528,#3529);
-+#3532=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3533=VECTOR('',#3532,6.875E-1);
-+#3534=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
-+#3535=LINE('',#3534,#3533);
-+#3536=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.0375E1));
-+#3537=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3538=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3539=AXIS2_PLACEMENT_3D('',#3536,#3537,#3538);
-+#3541=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3542=VECTOR('',#3541,6.875E-1);
-+#3543=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#3544=LINE('',#3543,#3542);
-+#3545=CARTESIAN_POINT('',(-4.375E-1,0.E0,9.565E0));
-+#3546=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3547=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3548=AXIS2_PLACEMENT_3D('',#3545,#3546,#3547);
-+#3550=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3551=VECTOR('',#3550,6.875E-1);
-+#3552=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
-+#3553=LINE('',#3552,#3551);
-+#3554=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,9.565E0));
-+#3555=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3556=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3557=AXIS2_PLACEMENT_3D('',#3554,#3555,#3556);
-+#3559=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3560=VECTOR('',#3559,6.875E-1);
-+#3561=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#3562=LINE('',#3561,#3560);
-+#3563=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3564=VECTOR('',#3563,6.875E-1);
-+#3565=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
-+#3566=LINE('',#3565,#3564);
-+#3567=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3568=VECTOR('',#3567,6.875E-1);
-+#3569=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#3570=LINE('',#3569,#3568);
-+#3571=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3572=VECTOR('',#3571,6.875E-1);
-+#3573=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
-+#3574=LINE('',#3573,#3572);
-+#3575=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3576=VECTOR('',#3575,3.E0);
-+#3577=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
-+#3578=LINE('',#3577,#3576);
-+#3579=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.65E1));
-+#3580=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3581=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3582=AXIS2_PLACEMENT_3D('',#3579,#3580,#3581);
-+#3584=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3585=VECTOR('',#3584,3.E0);
-+#3586=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
-+#3587=LINE('',#3586,#3585);
-+#3588=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.35E1));
-+#3589=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3590=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3591=AXIS2_PLACEMENT_3D('',#3588,#3589,#3590);
-+#3593=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3594=VECTOR('',#3593,6.875E-1);
-+#3595=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#3596=LINE('',#3595,#3594);
-+#3597=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3598=VECTOR('',#3597,6.875E-1);
-+#3599=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
-+#3600=LINE('',#3599,#3598);
-+#3601=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3602=VECTOR('',#3601,6.875E-1);
-+#3603=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#3604=LINE('',#3603,#3602);
-+#3605=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3606=VECTOR('',#3605,6.875E-1);
-+#3607=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
-+#3608=LINE('',#3607,#3606);
-+#3609=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3610=VECTOR('',#3609,3.E0);
-+#3611=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
-+#3612=LINE('',#3611,#3610);
-+#3613=CARTESIAN_POINT('',(1.25E0,6.875E-1,2.25E1));
-+#3614=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3615=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3616=AXIS2_PLACEMENT_3D('',#3613,#3614,#3615);
-+#3618=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3619=VECTOR('',#3618,3.E0);
-+#3620=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
-+#3621=LINE('',#3620,#3619);
-+#3622=CARTESIAN_POINT('',(1.25E0,6.875E-1,1.95E1));
-+#3623=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3624=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3625=AXIS2_PLACEMENT_3D('',#3622,#3623,#3624);
-+#3627=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3628=VECTOR('',#3627,6.875E-1);
-+#3629=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#3630=LINE('',#3629,#3628);
-+#3631=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3632=VECTOR('',#3631,6.875E-1);
-+#3633=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
-+#3634=LINE('',#3633,#3632);
-+#3635=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3636=VECTOR('',#3635,6.875E-1);
-+#3637=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#3638=LINE('',#3637,#3636);
-+#3639=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3640=VECTOR('',#3639,6.875E-1);
-+#3641=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
-+#3642=LINE('',#3641,#3640);
-+#3643=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3644=VECTOR('',#3643,3.E0);
-+#3645=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
-+#3646=LINE('',#3645,#3644);
-+#3647=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.E0));
-+#3648=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3649=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3650=AXIS2_PLACEMENT_3D('',#3647,#3648,#3649);
-+#3652=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3653=VECTOR('',#3652,3.E0);
-+#3654=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
-+#3655=LINE('',#3654,#3653);
-+#3656=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.E0));
-+#3657=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3658=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3659=AXIS2_PLACEMENT_3D('',#3656,#3657,#3658);
-+#3661=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3662=VECTOR('',#3661,6.875E-1);
-+#3663=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#3664=LINE('',#3663,#3662);
-+#3665=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3666=VECTOR('',#3665,6.875E-1);
-+#3667=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
-+#3668=LINE('',#3667,#3666);
-+#3669=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3670=VECTOR('',#3669,6.875E-1);
-+#3671=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#3672=LINE('',#3671,#3670);
-+#3673=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3674=VECTOR('',#3673,6.875E-1);
-+#3675=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
-+#3676=LINE('',#3675,#3674);
-+#3677=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3678=VECTOR('',#3677,3.E0);
-+#3679=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
-+#3680=LINE('',#3679,#3678);
-+#3681=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8E1));
-+#3682=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3683=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3684=AXIS2_PLACEMENT_3D('',#3681,#3682,#3683);
-+#3686=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3687=VECTOR('',#3686,3.E0);
-+#3688=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
-+#3689=LINE('',#3688,#3687);
-+#3690=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8E1));
-+#3691=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3692=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3693=AXIS2_PLACEMENT_3D('',#3690,#3691,#3692);
-+#3695=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3696=VECTOR('',#3695,6.875E-1);
-+#3697=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#3698=LINE('',#3697,#3696);
-+#3699=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3700=VECTOR('',#3699,6.875E-1);
-+#3701=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
-+#3702=LINE('',#3701,#3700);
-+#3703=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3704=VECTOR('',#3703,6.875E-1);
-+#3705=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#3706=LINE('',#3705,#3704);
-+#3707=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3708=VECTOR('',#3707,6.875E-1);
-+#3709=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
-+#3710=LINE('',#3709,#3708);
-+#3711=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3712=VECTOR('',#3711,3.E0);
-+#3713=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
-+#3714=LINE('',#3713,#3712);
-+#3715=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.075E1));
-+#3716=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3717=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3718=AXIS2_PLACEMENT_3D('',#3715,#3716,#3717);
-+#3720=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3721=VECTOR('',#3720,3.E0);
-+#3722=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
-+#3723=LINE('',#3722,#3721);
-+#3724=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.075E1));
-+#3725=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3726=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3727=AXIS2_PLACEMENT_3D('',#3724,#3725,#3726);
-+#3729=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#3730=VECTOR('',#3729,4.263248410977E0);
-+#3731=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
-+#3732=LINE('',#3731,#3730);
-+#3733=CARTESIAN_POINT('',(4.553039342392E0,6.875E-1,3.035464591145E1));
-+#3734=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3735=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#3736=AXIS2_PLACEMENT_3D('',#3733,#3734,#3735);
-+#3738=CARTESIAN_POINT('',(7.5E0,6.875E-1,2.45E1));
-+#3739=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3740=DIRECTION('',(-4.496088413988E-1,0.E0,8.932255536739E-1));
-+#3741=AXIS2_PLACEMENT_3D('',#3738,#3739,#3740);
-+#3743=CARTESIAN_POINT('',(1.61E0,6.875E-1,2.75E1));
-+#3744=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3745=DIRECTION('',(8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#3746=AXIS2_PLACEMENT_3D('',#3743,#3744,#3745);
-+#3748=DIRECTION('',(0.E0,1.E0,-1.033516706560E-14));
-+#3749=VECTOR('',#3748,6.875E-1);
-+#3750=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
-+#3751=LINE('',#3750,#3749);
-+#3752=CARTESIAN_POINT('',(1.455736763592E0,0.E0,2.742280476768E1));
-+#3753=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3754=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#3755=AXIS2_PLACEMENT_3D('',#3752,#3753,#3754);
-+#3757=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#3758=VECTOR('',#3757,6.875E-1);
-+#3759=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#3760=LINE('',#3759,#3758);
-+#3761=CARTESIAN_POINT('',(1.455736763592E0,6.875E-1,2.742280476768E1));
-+#3762=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3763=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811866E-1));
-+#3764=AXIS2_PLACEMENT_3D('',#3761,#3762,#3763);
-+#3766=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#3767=VECTOR('',#3766,6.875E-1);
-+#3768=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
-+#3769=LINE('',#3768,#3767);
-+#3770=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3771=VECTOR('',#3770,6.875E-1);
-+#3772=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
-+#3773=LINE('',#3772,#3771);
-+#3774=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3775=VECTOR('',#3774,6.875E-1);
-+#3776=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
-+#3777=LINE('',#3776,#3775);
-+#3778=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3779=VECTOR('',#3778,6.875E-1);
-+#3780=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#3781=LINE('',#3780,#3779);
-+#3782=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3783=VECTOR('',#3782,6.875E-1);
-+#3784=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
-+#3785=LINE('',#3784,#3783);
-+#3786=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3787=VECTOR('',#3786,6.875E-1);
-+#3788=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#3789=LINE('',#3788,#3787);
-+#3790=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3791=VECTOR('',#3790,6.875E-1);
-+#3792=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
-+#3793=LINE('',#3792,#3791);
-+#3794=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3795=VECTOR('',#3794,3.E0);
-+#3796=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
-+#3797=LINE('',#3796,#3795);
-+#3798=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.25E0));
-+#3799=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3800=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3801=AXIS2_PLACEMENT_3D('',#3798,#3799,#3800);
-+#3803=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3804=VECTOR('',#3803,3.E0);
-+#3805=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
-+#3806=LINE('',#3805,#3804);
-+#3807=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.25E0));
-+#3808=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3810=AXIS2_PLACEMENT_3D('',#3807,#3808,#3809);
-+#3812=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3813=VECTOR('',#3812,4.263248410977E0);
-+#3814=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
-+#3815=LINE('',#3814,#3813);
-+#3816=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,1.645354088550E0));
-+#3817=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3818=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3819=AXIS2_PLACEMENT_3D('',#3816,#3817,#3818);
-+#3821=CARTESIAN_POINT('',(1.65E1,6.875E-1,7.5E0));
-+#3822=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3823=DIRECTION('',(4.496088413988E-1,0.E0,-8.932255536739E-1));
-+#3824=AXIS2_PLACEMENT_3D('',#3821,#3822,#3823);
-+#3826=CARTESIAN_POINT('',(2.239E1,6.875E-1,4.5E0));
-+#3827=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3828=DIRECTION('',(-8.910741301059E-1,0.E0,4.538577912254E-1));
-+#3829=AXIS2_PLACEMENT_3D('',#3826,#3827,#3828);
-+#3831=DIRECTION('',(-1.033516706560E-14,1.E0,2.583791766400E-14));
-+#3832=VECTOR('',#3831,6.875E-1);
-+#3833=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
-+#3834=LINE('',#3833,#3832);
-+#3835=CARTESIAN_POINT('',(2.254426323641E1,0.E0,4.577195232320E0));
-+#3836=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3837=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
-+#3838=AXIS2_PLACEMENT_3D('',#3835,#3836,#3837);
-+#3840=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3841=VECTOR('',#3840,6.875E-1);
-+#3842=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#3843=LINE('',#3842,#3841);
-+#3844=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,4.577195232320E0));
-+#3845=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#3846=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#3847=AXIS2_PLACEMENT_3D('',#3844,#3845,#3846);
-+#3849=DIRECTION('',(-1.550275059840E-14,1.E0,-2.067033413120E-14));
-+#3850=VECTOR('',#3849,6.875E-1);
-+#3851=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
-+#3852=LINE('',#3851,#3850);
-+#3853=DIRECTION('',(1.550275059840E-14,1.E0,0.E0));
-+#3854=VECTOR('',#3853,6.875E-1);
-+#3855=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
-+#3856=LINE('',#3855,#3854);
-+#3857=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3858=VECTOR('',#3857,6.875E-1);
-+#3859=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
-+#3860=LINE('',#3859,#3858);
-+#3861=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3862=VECTOR('',#3861,6.875E-1);
-+#3863=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#3864=LINE('',#3863,#3862);
-+#3865=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3866=VECTOR('',#3865,6.875E-1);
-+#3867=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
-+#3868=LINE('',#3867,#3866);
-+#3869=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3870=VECTOR('',#3869,6.875E-1);
-+#3871=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#3872=LINE('',#3871,#3870);
-+#3873=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3874=VECTOR('',#3873,6.875E-1);
-+#3875=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
-+#3876=LINE('',#3875,#3874);
-+#3877=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3878=VECTOR('',#3877,3.E0);
-+#3879=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
-+#3880=LINE('',#3879,#3878);
-+#3881=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.35E1));
-+#3882=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3884=AXIS2_PLACEMENT_3D('',#3881,#3882,#3883);
-+#3886=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3887=VECTOR('',#3886,3.E0);
-+#3888=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
-+#3889=LINE('',#3888,#3887);
-+#3890=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.65E1));
-+#3891=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3892=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3893=AXIS2_PLACEMENT_3D('',#3890,#3891,#3892);
-+#3895=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3896=VECTOR('',#3895,6.875E-1);
-+#3897=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#3898=LINE('',#3897,#3896);
-+#3899=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3900=VECTOR('',#3899,6.875E-1);
-+#3901=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
-+#3902=LINE('',#3901,#3900);
-+#3903=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3904=VECTOR('',#3903,6.875E-1);
-+#3905=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#3906=LINE('',#3905,#3904);
-+#3907=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3908=VECTOR('',#3907,6.875E-1);
-+#3909=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
-+#3910=LINE('',#3909,#3908);
-+#3911=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3912=VECTOR('',#3911,3.E0);
-+#3913=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
-+#3914=LINE('',#3913,#3912);
-+#3915=CARTESIAN_POINT('',(2.275E1,6.875E-1,1.95E1));
-+#3916=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3917=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3918=AXIS2_PLACEMENT_3D('',#3915,#3916,#3917);
-+#3920=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3921=VECTOR('',#3920,3.E0);
-+#3922=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
-+#3923=LINE('',#3922,#3921);
-+#3924=CARTESIAN_POINT('',(2.275E1,6.875E-1,2.25E1));
-+#3925=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3926=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3927=AXIS2_PLACEMENT_3D('',#3924,#3925,#3926);
-+#3929=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3930=VECTOR('',#3929,6.875E-1);
-+#3931=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#3932=LINE('',#3931,#3930);
-+#3933=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3934=VECTOR('',#3933,6.875E-1);
-+#3935=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
-+#3936=LINE('',#3935,#3934);
-+#3937=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3938=VECTOR('',#3937,6.875E-1);
-+#3939=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#3940=LINE('',#3939,#3938);
-+#3941=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3942=VECTOR('',#3941,6.875E-1);
-+#3943=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
-+#3944=LINE('',#3943,#3942);
-+#3945=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3946=VECTOR('',#3945,3.E0);
-+#3947=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
-+#3948=LINE('',#3947,#3946);
-+#3949=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.E0));
-+#3950=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3951=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3952=AXIS2_PLACEMENT_3D('',#3949,#3950,#3951);
-+#3954=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3955=VECTOR('',#3954,3.E0);
-+#3956=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
-+#3957=LINE('',#3956,#3955);
-+#3958=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.E0));
-+#3959=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3960=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3961=AXIS2_PLACEMENT_3D('',#3958,#3959,#3960);
-+#3963=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3964=VECTOR('',#3963,6.875E-1);
-+#3965=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#3966=LINE('',#3965,#3964);
-+#3967=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3968=VECTOR('',#3967,6.875E-1);
-+#3969=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
-+#3970=LINE('',#3969,#3968);
-+#3971=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3972=VECTOR('',#3971,6.875E-1);
-+#3973=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#3974=LINE('',#3973,#3972);
-+#3975=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3976=VECTOR('',#3975,6.875E-1);
-+#3977=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
-+#3978=LINE('',#3977,#3976);
-+#3979=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#3980=VECTOR('',#3979,3.E0);
-+#3981=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
-+#3982=LINE('',#3981,#3980);
-+#3983=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8E1));
-+#3984=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3985=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#3986=AXIS2_PLACEMENT_3D('',#3983,#3984,#3985);
-+#3988=DIRECTION('',(1.E0,0.E0,0.E0));
-+#3989=VECTOR('',#3988,3.E0);
-+#3990=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
-+#3991=LINE('',#3990,#3989);
-+#3992=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8E1));
-+#3993=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3994=DIRECTION('',(0.E0,0.E0,1.E0));
-+#3995=AXIS2_PLACEMENT_3D('',#3992,#3993,#3994);
-+#3997=DIRECTION('',(0.E0,1.E0,0.E0));
-+#3998=VECTOR('',#3997,6.875E-1);
-+#3999=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#4000=LINE('',#3999,#3998);
-+#4001=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4002=VECTOR('',#4001,6.875E-1);
-+#4003=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
-+#4004=LINE('',#4003,#4002);
-+#4005=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4006=VECTOR('',#4005,6.875E-1);
-+#4007=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#4008=LINE('',#4007,#4006);
-+#4009=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4010=VECTOR('',#4009,6.875E-1);
-+#4011=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
-+#4012=LINE('',#4011,#4010);
-+#4013=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4014=VECTOR('',#4013,3.E0);
-+#4015=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
-+#4016=LINE('',#4015,#4014);
-+#4017=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.075E1));
-+#4018=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4019=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4020=AXIS2_PLACEMENT_3D('',#4017,#4018,#4019);
-+#4022=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4023=VECTOR('',#4022,3.E0);
-+#4024=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
-+#4025=LINE('',#4024,#4023);
-+#4026=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.075E1));
-+#4027=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4028=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4029=AXIS2_PLACEMENT_3D('',#4026,#4027,#4028);
-+#4031=CARTESIAN_POINT('',(2.239E1,6.875E-1,2.75E1));
-+#4032=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4033=DIRECTION('',(-8.910741301059E-1,0.E0,-4.538577912254E-1));
-+#4034=AXIS2_PLACEMENT_3D('',#4031,#4032,#4033);
-+#4036=CARTESIAN_POINT('',(1.65E1,6.875E-1,2.45E1));
-+#4037=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4038=DIRECTION('',(4.496088413988E-1,0.E0,8.932255536739E-1));
-+#4039=AXIS2_PLACEMENT_3D('',#4036,#4037,#4038);
-+#4041=CARTESIAN_POINT('',(1.944696065761E1,6.875E-1,3.035464591145E1));
-+#4042=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4043=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4044=AXIS2_PLACEMENT_3D('',#4041,#4042,#4043);
-+#4046=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4047=VECTOR('',#4046,4.263248410977E0);
-+#4048=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
-+#4049=LINE('',#4048,#4047);
-+#4050=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4051=VECTOR('',#4050,6.875E-1);
-+#4052=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#4053=LINE('',#4052,#4051);
-+#4054=CARTESIAN_POINT('',(2.254426323641E1,0.E0,2.742280476768E1));
-+#4055=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4056=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#4057=AXIS2_PLACEMENT_3D('',#4054,#4055,#4056);
-+#4059=DIRECTION('',(0.E0,1.E0,2.067033413120E-14));
-+#4060=VECTOR('',#4059,6.875E-1);
-+#4061=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
-+#4062=LINE('',#4061,#4060);
-+#4063=CARTESIAN_POINT('',(2.254426323641E1,6.875E-1,2.742280476768E1));
-+#4064=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4065=DIRECTION('',(8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#4066=AXIS2_PLACEMENT_3D('',#4063,#4064,#4065);
-+#4068=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4069=VECTOR('',#4068,6.875E-1);
-+#4070=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
-+#4071=LINE('',#4070,#4069);
-+#4072=DIRECTION('',(1.033516706560E-14,1.E0,0.E0));
-+#4073=VECTOR('',#4072,6.875E-1);
-+#4074=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
-+#4075=LINE('',#4074,#4073);
-+#4076=DIRECTION('',(-2.067033413120E-14,1.E0,3.100550119680E-14));
-+#4077=VECTOR('',#4076,6.875E-1);
-+#4078=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
-+#4079=LINE('',#4078,#4077);
-+#4080=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4081=VECTOR('',#4080,6.875E-1);
-+#4082=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#4083=LINE('',#4082,#4081);
-+#4084=CARTESIAN_POINT('',(2.13075E1,6.875E-1,7.81E0));
-+#4085=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4086=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4087=AXIS2_PLACEMENT_3D('',#4084,#4085,#4086);
-+#4089=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4090=VECTOR('',#4089,6.875E-1);
-+#4091=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
-+#4092=LINE('',#4091,#4090);
-+#4093=CARTESIAN_POINT('',(2.13075E1,0.E0,7.81E0));
-+#4094=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4095=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4096=AXIS2_PLACEMENT_3D('',#4093,#4094,#4095);
-+#4098=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4099=VECTOR('',#4098,6.875E-1);
-+#4100=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#4101=LINE('',#4100,#4099);
-+#4102=CARTESIAN_POINT('',(2.05675E1,6.875E-1,9.57E0));
-+#4103=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4104=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4105=AXIS2_PLACEMENT_3D('',#4102,#4103,#4104);
-+#4107=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4108=VECTOR('',#4107,6.875E-1);
-+#4109=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
-+#4110=LINE('',#4109,#4108);
-+#4111=CARTESIAN_POINT('',(2.05675E1,0.E0,9.57E0));
-+#4112=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4113=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4114=AXIS2_PLACEMENT_3D('',#4111,#4112,#4113);
-+#4116=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4117=VECTOR('',#4116,6.875E-1);
-+#4118=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#4119=LINE('',#4118,#4117);
-+#4120=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.037E1));
-+#4121=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4122=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4123=AXIS2_PLACEMENT_3D('',#4120,#4121,#4122);
-+#4125=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4126=VECTOR('',#4125,6.875E-1);
-+#4127=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
-+#4128=LINE('',#4127,#4126);
-+#4129=CARTESIAN_POINT('',(2.05675E1,0.E0,1.037E1));
-+#4130=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4131=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4132=AXIS2_PLACEMENT_3D('',#4129,#4130,#4131);
-+#4134=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4135=VECTOR('',#4134,6.875E-1);
-+#4136=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#4137=LINE('',#4136,#4135);
-+#4138=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.037E1));
-+#4139=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4140=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4141=AXIS2_PLACEMENT_3D('',#4138,#4139,#4140);
-+#4143=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4144=VECTOR('',#4143,6.875E-1);
-+#4145=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
-+#4146=LINE('',#4145,#4144);
-+#4147=CARTESIAN_POINT('',(2.44325E1,0.E0,1.037E1));
-+#4148=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4149=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4150=AXIS2_PLACEMENT_3D('',#4147,#4148,#4149);
-+#4152=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4153=VECTOR('',#4152,6.875E-1);
-+#4154=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#4155=LINE('',#4154,#4153);
-+#4156=CARTESIAN_POINT('',(2.44325E1,6.875E-1,9.57E0));
-+#4157=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4158=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4159=AXIS2_PLACEMENT_3D('',#4156,#4157,#4158);
-+#4161=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4162=VECTOR('',#4161,6.875E-1);
-+#4163=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
-+#4164=LINE('',#4163,#4162);
-+#4165=CARTESIAN_POINT('',(2.44325E1,0.E0,9.57E0));
-+#4166=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4167=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4168=AXIS2_PLACEMENT_3D('',#4165,#4166,#4167);
-+#4170=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4171=VECTOR('',#4170,6.875E-1);
-+#4172=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#4173=LINE('',#4172,#4171);
-+#4174=CARTESIAN_POINT('',(2.419E1,6.875E-1,7.81E0));
-+#4175=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4176=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4177=AXIS2_PLACEMENT_3D('',#4174,#4175,#4176);
-+#4179=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4180=VECTOR('',#4179,6.875E-1);
-+#4181=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
-+#4182=LINE('',#4181,#4180);
-+#4183=CARTESIAN_POINT('',(2.419E1,0.E0,7.81E0));
-+#4184=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#4185=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4186=AXIS2_PLACEMENT_3D('',#4183,#4184,#4185);
-+#4188=DIRECTION('',(0.E0,1.E0,1.033516706560E-14));
-+#4189=VECTOR('',#4188,6.875E-1);
-+#4190=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
-+#4191=LINE('',#4190,#4189);
-+#4192=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4193=VECTOR('',#4192,6.875E-1);
-+#4194=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#4195=LINE('',#4194,#4193);
-+#4196=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4197=VECTOR('',#4196,2.425E-1);
-+#4198=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#4199=LINE('',#4198,#4197);
-+#4200=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4201=VECTOR('',#4200,3.1E-1);
-+#4202=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
-+#4203=LINE('',#4202,#4201);
-+#4204=CARTESIAN_POINT('',(2.274875E1,6.875E-1,7.5E0));
-+#4205=DIRECTION('',(0.E0,1.E0,0.E0));
-+#4206=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4207=AXIS2_PLACEMENT_3D('',#4204,#4205,#4206);
-+#4209=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4210=VECTOR('',#4209,3.1E-1);
-+#4211=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
-+#4212=LINE('',#4211,#4210);
-+#4213=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#4214=VECTOR('',#4213,7.4E-1);
-+#4215=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
-+#4216=LINE('',#4215,#4214);
-+#4217=DIRECTION('',(0.E0,0.E0,1.E0));
-+#4218=VECTOR('',#4217,8.E-1);
-+#4219=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#4220=LINE('',#4219,#4218);
-+#4221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#4222=VECTOR('',#4221,3.865E0);
-+#4223=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#4224=LINE('',#4223,#4222);
-+#4225=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#4226=VECTOR('',#4225,8.E-1);
-+#4227=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#4228=LINE('',#4227,#4226);
-+#4229=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#4230=CARTESIAN_POINT('',(2.4E1,1.5E0,2.8E1));
-+#4231=VERTEX_POINT('',#4229);
-+#4232=VERTEX_POINT('',#4230);
-+#4233=CARTESIAN_POINT('',(2.E1,0.E0,3.2E1));
-+#4234=CARTESIAN_POINT('',(2.E1,1.5E0,3.2E1));
-+#4235=VERTEX_POINT('',#4233);
-+#4236=VERTEX_POINT('',#4234);
-+#4237=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#4238=CARTESIAN_POINT('',(2.E1,1.5E0,0.E0));
-+#4239=VERTEX_POINT('',#4237);
-+#4240=VERTEX_POINT('',#4238);
-+#4241=CARTESIAN_POINT('',(2.4E1,0.E0,4.E0));
-+#4242=CARTESIAN_POINT('',(2.4E1,1.5E0,4.E0));
-+#4243=VERTEX_POINT('',#4241);
-+#4244=VERTEX_POINT('',#4242);
-+#4245=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#4246=CARTESIAN_POINT('',(4.E0,1.5E0,3.2E1));
-+#4247=VERTEX_POINT('',#4245);
-+#4248=VERTEX_POINT('',#4246);
-+#4249=CARTESIAN_POINT('',(0.E0,0.E0,2.8E1));
-+#4250=CARTESIAN_POINT('',(0.E0,1.5E0,2.8E1));
-+#4251=VERTEX_POINT('',#4249);
-+#4252=VERTEX_POINT('',#4250);
-+#4253=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#4254=CARTESIAN_POINT('',(0.E0,1.5E0,4.E0));
-+#4255=VERTEX_POINT('',#4253);
-+#4256=VERTEX_POINT('',#4254);
-+#4257=CARTESIAN_POINT('',(4.E0,0.E0,0.E0));
-+#4258=CARTESIAN_POINT('',(4.E0,1.5E0,0.E0));
-+#4259=VERTEX_POINT('',#4257);
-+#4260=VERTEX_POINT('',#4258);
-+#4261=CARTESIAN_POINT('',(7.5E0,1.5E0,2.5E0));
-+#4262=CARTESIAN_POINT('',(7.5E0,0.E0,2.5E0));
-+#4263=VERTEX_POINT('',#4261);
-+#4264=VERTEX_POINT('',#4262);
-+#4265=CARTESIAN_POINT('',(1.65E1,1.5E0,2.5E0));
-+#4266=CARTESIAN_POINT('',(1.65E1,0.E0,2.5E0));
-+#4267=VERTEX_POINT('',#4265);
-+#4268=VERTEX_POINT('',#4266);
-+#4269=CARTESIAN_POINT('',(7.5E0,1.5E0,2.95E1));
-+#4270=CARTESIAN_POINT('',(7.5E0,0.E0,2.95E1));
-+#4271=VERTEX_POINT('',#4269);
-+#4272=VERTEX_POINT('',#4270);
-+#4273=CARTESIAN_POINT('',(2.5E0,1.5E0,2.45E1));
-+#4274=CARTESIAN_POINT('',(2.5E0,0.E0,2.45E1));
-+#4275=VERTEX_POINT('',#4273);
-+#4276=VERTEX_POINT('',#4274);
-+#4277=CARTESIAN_POINT('',(2.15E1,1.5E0,2.45E1));
-+#4278=CARTESIAN_POINT('',(2.15E1,0.E0,2.45E1));
-+#4279=VERTEX_POINT('',#4277);
-+#4280=VERTEX_POINT('',#4278);
-+#4281=CARTESIAN_POINT('',(1.65E1,1.5E0,2.95E1));
-+#4282=CARTESIAN_POINT('',(1.65E1,0.E0,2.95E1));
-+#4283=VERTEX_POINT('',#4281);
-+#4284=VERTEX_POINT('',#4282);
-+#4285=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#4286=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#4287=VERTEX_POINT('',#4285);
-+#4288=VERTEX_POINT('',#4286);
-+#4289=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#4290=VERTEX_POINT('',#4289);
-+#4291=CARTESIAN_POINT('',(5.E0,1.15E1,1.E1));
-+#4292=CARTESIAN_POINT('',(3.E0,1.15E1,1.E1));
-+#4293=VERTEX_POINT('',#4291);
-+#4294=VERTEX_POINT('',#4292);
-+#4295=CARTESIAN_POINT('',(-2.E0,2.5E0,1.E1));
-+#4296=VERTEX_POINT('',#4295);
-+#4297=CARTESIAN_POINT('',(-2.E0,1.5E0,1.E1));
-+#4298=VERTEX_POINT('',#4297);
-+#4299=CARTESIAN_POINT('',(-2.E0,0.E0,8.E0));
-+#4300=VERTEX_POINT('',#4299);
-+#4301=CARTESIAN_POINT('',(2.5E0,1.5E0,1.325E1));
-+#4302=CARTESIAN_POINT('',(2.5E0,0.E0,1.325E1));
-+#4303=VERTEX_POINT('',#4301);
-+#4304=VERTEX_POINT('',#4302);
-+#4305=CARTESIAN_POINT('',(3.5E0,1.5E0,1.225E1));
-+#4306=CARTESIAN_POINT('',(3.5E0,0.E0,1.225E1));
-+#4307=VERTEX_POINT('',#4305);
-+#4308=VERTEX_POINT('',#4306);
-+#4309=CARTESIAN_POINT('',(0.E0,0.E0,1.325E1));
-+#4310=CARTESIAN_POINT('',(0.E0,1.5E0,1.325E1));
-+#4311=VERTEX_POINT('',#4309);
-+#4312=VERTEX_POINT('',#4310);
-+#4313=CARTESIAN_POINT('',(-1.E0,0.E0,1.225E1));
-+#4314=CARTESIAN_POINT('',(-1.E0,1.5E0,1.225E1));
-+#4315=VERTEX_POINT('',#4313);
-+#4316=VERTEX_POINT('',#4314);
-+#4317=CARTESIAN_POINT('',(0.E0,1.5E0,7.E0));
-+#4318=CARTESIAN_POINT('',(0.E0,0.E0,7.E0));
-+#4319=VERTEX_POINT('',#4317);
-+#4320=VERTEX_POINT('',#4318);
-+#4321=CARTESIAN_POINT('',(-1.E0,1.5E0,8.E0));
-+#4322=CARTESIAN_POINT('',(-1.E0,0.E0,8.E0));
-+#4323=VERTEX_POINT('',#4321);
-+#4324=VERTEX_POINT('',#4322);
-+#4325=CARTESIAN_POINT('',(3.531373033403E0,1.5E0,8.E0));
-+#4326=CARTESIAN_POINT('',(3.531373033403E0,0.E0,8.E0));
-+#4327=VERTEX_POINT('',#4325);
-+#4328=VERTEX_POINT('',#4326);
-+#4329=CARTESIAN_POINT('',(2.539216291754E0,1.5E0,6.875E0));
-+#4330=CARTESIAN_POINT('',(2.539216291754E0,0.E0,6.875E0));
-+#4331=VERTEX_POINT('',#4329);
-+#4332=VERTEX_POINT('',#4330);
-+#4333=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#4334=CARTESIAN_POINT('',(5.E0,1.5E0,1.175E1));
-+#4335=VERTEX_POINT('',#4333);
-+#4336=VERTEX_POINT('',#4334);
-+#4337=CARTESIAN_POINT('',(4.5E0,0.E0,1.225E1));
-+#4338=CARTESIAN_POINT('',(4.5E0,1.5E0,1.225E1));
-+#4339=VERTEX_POINT('',#4337);
-+#4340=VERTEX_POINT('',#4338);
-+#4341=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#4342=CARTESIAN_POINT('',(-1.5E0,1.5E0,1.225E1));
-+#4343=VERTEX_POINT('',#4341);
-+#4344=VERTEX_POINT('',#4342);
-+#4345=CARTESIAN_POINT('',(-2.E0,0.E0,1.175E1));
-+#4346=CARTESIAN_POINT('',(-2.E0,1.5E0,1.175E1));
-+#4347=VERTEX_POINT('',#4345);
-+#4348=VERTEX_POINT('',#4346);
-+#4349=CARTESIAN_POINT('',(4.095E0,1.1125E1,9.E0));
-+#4350=CARTESIAN_POINT('',(3.905E0,1.1125E1,9.E0));
-+#4351=VERTEX_POINT('',#4349);
-+#4352=VERTEX_POINT('',#4350);
-+#4353=CARTESIAN_POINT('',(4.095E0,1.15E1,9.E0));
-+#4354=CARTESIAN_POINT('',(3.905E0,1.15E1,9.E0));
-+#4355=VERTEX_POINT('',#4353);
-+#4356=VERTEX_POINT('',#4354);
-+#4357=CARTESIAN_POINT('',(3.929917478528E0,1.125E1,9.132582521472E0));
-+#4358=CARTESIAN_POINT('',(3.804917478528E0,1.125E1,9.132582521472E0));
-+#4359=VERTEX_POINT('',#4357);
-+#4360=VERTEX_POINT('',#4358);
-+#4361=CARTESIAN_POINT('',(3.929917478528E0,1.15E1,9.132582521472E0));
-+#4362=CARTESIAN_POINT('',(3.804917478528E0,1.15E1,9.132582521472E0));
-+#4363=VERTEX_POINT('',#4361);
-+#4364=VERTEX_POINT('',#4362);
-+#4365=CARTESIAN_POINT('',(6.45E0,1.192264973081E0,2.975E1));
-+#4366=CARTESIAN_POINT('',(6.55E0,1.25E0,2.975E1));
-+#4367=VERTEX_POINT('',#4365);
-+#4368=VERTEX_POINT('',#4366);
-+#4369=CARTESIAN_POINT('',(6.35E0,1.25E0,2.975E1));
-+#4370=VERTEX_POINT('',#4369);
-+#4371=CARTESIAN_POINT('',(6.35E0,1.5E0,2.975E1));
-+#4372=CARTESIAN_POINT('',(6.55E0,1.5E0,2.975E1));
-+#4373=VERTEX_POINT('',#4371);
-+#4374=VERTEX_POINT('',#4372);
-+#4375=CARTESIAN_POINT('',(7.45E0,1.192264973081E0,2.975E1));
-+#4376=CARTESIAN_POINT('',(7.55E0,1.25E0,2.975E1));
-+#4377=VERTEX_POINT('',#4375);
-+#4378=VERTEX_POINT('',#4376);
-+#4379=CARTESIAN_POINT('',(7.35E0,1.25E0,2.975E1));
-+#4380=VERTEX_POINT('',#4379);
-+#4381=CARTESIAN_POINT('',(7.35E0,1.5E0,2.975E1));
-+#4382=CARTESIAN_POINT('',(7.55E0,1.5E0,2.975E1));
-+#4383=VERTEX_POINT('',#4381);
-+#4384=VERTEX_POINT('',#4382);
-+#4385=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#4386=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#4387=VERTEX_POINT('',#4385);
-+#4388=VERTEX_POINT('',#4386);
-+#4389=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#4390=VERTEX_POINT('',#4389);
-+#4391=CARTESIAN_POINT('',(1.9E1,1.15E1,1.E1));
-+#4392=CARTESIAN_POINT('',(2.1E1,1.15E1,1.E1));
-+#4393=VERTEX_POINT('',#4391);
-+#4394=VERTEX_POINT('',#4392);
-+#4395=CARTESIAN_POINT('',(2.6E1,2.5E0,1.E1));
-+#4396=VERTEX_POINT('',#4395);
-+#4397=CARTESIAN_POINT('',(2.6E1,1.5E0,1.E1));
-+#4398=VERTEX_POINT('',#4397);
-+#4399=CARTESIAN_POINT('',(2.6E1,0.E0,8.E0));
-+#4400=VERTEX_POINT('',#4399);
-+#4401=CARTESIAN_POINT('',(2.4E1,1.5E0,1.325E1));
-+#4402=CARTESIAN_POINT('',(2.4E1,0.E0,1.325E1));
-+#4403=VERTEX_POINT('',#4401);
-+#4404=VERTEX_POINT('',#4402);
-+#4405=CARTESIAN_POINT('',(2.5E1,1.5E0,1.225E1));
-+#4406=CARTESIAN_POINT('',(2.5E1,0.E0,1.225E1));
-+#4407=VERTEX_POINT('',#4405);
-+#4408=VERTEX_POINT('',#4406);
-+#4409=CARTESIAN_POINT('',(2.15E1,0.E0,1.325E1));
-+#4410=CARTESIAN_POINT('',(2.15E1,1.5E0,1.325E1));
-+#4411=VERTEX_POINT('',#4409);
-+#4412=VERTEX_POINT('',#4410);
-+#4413=CARTESIAN_POINT('',(2.05E1,0.E0,1.225E1));
-+#4414=CARTESIAN_POINT('',(2.05E1,1.5E0,1.225E1));
-+#4415=VERTEX_POINT('',#4413);
-+#4416=VERTEX_POINT('',#4414);
-+#4417=CARTESIAN_POINT('',(2.4E1,0.E0,7.E0));
-+#4418=CARTESIAN_POINT('',(2.4E1,1.5E0,7.E0));
-+#4419=VERTEX_POINT('',#4417);
-+#4420=VERTEX_POINT('',#4418);
-+#4421=CARTESIAN_POINT('',(2.5E1,0.E0,8.E0));
-+#4422=CARTESIAN_POINT('',(2.5E1,1.5E0,8.E0));
-+#4423=VERTEX_POINT('',#4421);
-+#4424=VERTEX_POINT('',#4422);
-+#4425=CARTESIAN_POINT('',(2.046862696660E1,0.E0,8.E0));
-+#4426=CARTESIAN_POINT('',(2.046862696660E1,1.5E0,8.E0));
-+#4427=VERTEX_POINT('',#4425);
-+#4428=VERTEX_POINT('',#4426);
-+#4429=CARTESIAN_POINT('',(2.146078370825E1,0.E0,6.875E0));
-+#4430=CARTESIAN_POINT('',(2.146078370825E1,1.5E0,6.875E0));
-+#4431=VERTEX_POINT('',#4429);
-+#4432=VERTEX_POINT('',#4430);
-+#4433=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#4434=CARTESIAN_POINT('',(1.9E1,0.E0,1.175E1));
-+#4435=VERTEX_POINT('',#4433);
-+#4436=VERTEX_POINT('',#4434);
-+#4437=CARTESIAN_POINT('',(1.95E1,1.5E0,1.225E1));
-+#4438=CARTESIAN_POINT('',(1.95E1,0.E0,1.225E1));
-+#4439=VERTEX_POINT('',#4437);
-+#4440=VERTEX_POINT('',#4438);
-+#4441=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#4442=CARTESIAN_POINT('',(2.55E1,0.E0,1.225E1));
-+#4443=VERTEX_POINT('',#4441);
-+#4444=VERTEX_POINT('',#4442);
-+#4445=CARTESIAN_POINT('',(2.6E1,1.5E0,1.175E1));
-+#4446=CARTESIAN_POINT('',(2.6E1,0.E0,1.175E1));
-+#4447=VERTEX_POINT('',#4445);
-+#4448=VERTEX_POINT('',#4446);
-+#4449=CARTESIAN_POINT('',(1.9905E1,1.1125E1,9.E0));
-+#4450=CARTESIAN_POINT('',(2.0095E1,1.1125E1,9.E0));
-+#4451=VERTEX_POINT('',#4449);
-+#4452=VERTEX_POINT('',#4450);
-+#4453=CARTESIAN_POINT('',(1.9905E1,1.15E1,9.E0));
-+#4454=CARTESIAN_POINT('',(2.0095E1,1.15E1,9.E0));
-+#4455=VERTEX_POINT('',#4453);
-+#4456=VERTEX_POINT('',#4454);
-+#4457=CARTESIAN_POINT('',(2.007008252147E1,1.125E1,9.132582521472E0));
-+#4458=CARTESIAN_POINT('',(2.019508252147E1,1.125E1,9.132582521472E0));
-+#4459=VERTEX_POINT('',#4457);
-+#4460=VERTEX_POINT('',#4458);
-+#4461=CARTESIAN_POINT('',(2.007008252147E1,1.15E1,9.132582521472E0));
-+#4462=CARTESIAN_POINT('',(2.019508252147E1,1.15E1,9.132582521472E0));
-+#4463=VERTEX_POINT('',#4461);
-+#4464=VERTEX_POINT('',#4462);
-+#4465=CARTESIAN_POINT('',(1.755E1,1.192264973081E0,2.975E1));
-+#4466=CARTESIAN_POINT('',(1.745E1,1.25E0,2.975E1));
-+#4467=VERTEX_POINT('',#4465);
-+#4468=VERTEX_POINT('',#4466);
-+#4469=CARTESIAN_POINT('',(1.765E1,1.25E0,2.975E1));
-+#4470=VERTEX_POINT('',#4469);
-+#4471=CARTESIAN_POINT('',(1.765E1,1.5E0,2.975E1));
-+#4472=CARTESIAN_POINT('',(1.745E1,1.5E0,2.975E1));
-+#4473=VERTEX_POINT('',#4471);
-+#4474=VERTEX_POINT('',#4472);
-+#4475=CARTESIAN_POINT('',(1.655E1,1.192264973081E0,2.975E1));
-+#4476=CARTESIAN_POINT('',(1.645E1,1.25E0,2.975E1));
-+#4477=VERTEX_POINT('',#4475);
-+#4478=VERTEX_POINT('',#4476);
-+#4479=CARTESIAN_POINT('',(1.665E1,1.25E0,2.975E1));
-+#4480=VERTEX_POINT('',#4479);
-+#4481=CARTESIAN_POINT('',(1.665E1,1.5E0,2.975E1));
-+#4482=CARTESIAN_POINT('',(1.645E1,1.5E0,2.975E1));
-+#4483=VERTEX_POINT('',#4481);
-+#4484=VERTEX_POINT('',#4482);
-+#4485=CARTESIAN_POINT('',(1.3175E0,0.E0,6.E0));
-+#4486=CARTESIAN_POINT('',(9.325E-1,0.E0,6.E0));
-+#4487=VERTEX_POINT('',#4485);
-+#4488=VERTEX_POINT('',#4486);
-+#4489=CARTESIAN_POINT('',(1.3825E0,1.E0,6.E0));
-+#4490=CARTESIAN_POINT('',(8.675E-1,1.E0,6.E0));
-+#4491=VERTEX_POINT('',#4489);
-+#4492=VERTEX_POINT('',#4490);
-+#4493=CARTESIAN_POINT('',(1.3825E0,1.5E0,6.E0));
-+#4494=CARTESIAN_POINT('',(8.675E-1,1.5E0,6.E0));
-+#4495=VERTEX_POINT('',#4493);
-+#4496=VERTEX_POINT('',#4494);
-+#4497=CARTESIAN_POINT('',(1.3175E0,1.E0,6.E0));
-+#4498=CARTESIAN_POINT('',(9.325E-1,1.E0,6.E0));
-+#4499=VERTEX_POINT('',#4497);
-+#4500=VERTEX_POINT('',#4498);
-+#4501=CARTESIAN_POINT('',(1.3175E0,0.E0,1.2E1));
-+#4502=CARTESIAN_POINT('',(9.325E-1,0.E0,1.2E1));
-+#4503=VERTEX_POINT('',#4501);
-+#4504=VERTEX_POINT('',#4502);
-+#4505=CARTESIAN_POINT('',(1.3175E0,0.E0,1.8E1));
-+#4506=CARTESIAN_POINT('',(9.325E-1,0.E0,1.8E1));
-+#4507=VERTEX_POINT('',#4505);
-+#4508=VERTEX_POINT('',#4506);
-+#4509=CARTESIAN_POINT('',(1.3175E0,0.E0,2.4E1));
-+#4510=CARTESIAN_POINT('',(9.325E-1,0.E0,2.4E1));
-+#4511=VERTEX_POINT('',#4509);
-+#4512=VERTEX_POINT('',#4510);
-+#4513=CARTESIAN_POINT('',(2.30675E1,0.E0,6.E0));
-+#4514=CARTESIAN_POINT('',(2.26825E1,0.E0,6.E0));
-+#4515=VERTEX_POINT('',#4513);
-+#4516=VERTEX_POINT('',#4514);
-+#4517=CARTESIAN_POINT('',(2.30675E1,0.E0,1.2E1));
-+#4518=CARTESIAN_POINT('',(2.26825E1,0.E0,1.2E1));
-+#4519=VERTEX_POINT('',#4517);
-+#4520=VERTEX_POINT('',#4518);
-+#4521=CARTESIAN_POINT('',(2.30675E1,0.E0,1.8E1));
-+#4522=CARTESIAN_POINT('',(2.26825E1,0.E0,1.8E1));
-+#4523=VERTEX_POINT('',#4521);
-+#4524=VERTEX_POINT('',#4522);
-+#4525=CARTESIAN_POINT('',(2.30675E1,0.E0,2.4E1));
-+#4526=CARTESIAN_POINT('',(2.26825E1,0.E0,2.4E1));
-+#4527=VERTEX_POINT('',#4525);
-+#4528=VERTEX_POINT('',#4526);
-+#4529=CARTESIAN_POINT('',(1.3825E0,1.E0,1.2E1));
-+#4530=CARTESIAN_POINT('',(8.675E-1,1.E0,1.2E1));
-+#4531=VERTEX_POINT('',#4529);
-+#4532=VERTEX_POINT('',#4530);
-+#4533=CARTESIAN_POINT('',(1.3175E0,1.E0,1.2E1));
-+#4534=CARTESIAN_POINT('',(9.325E-1,1.E0,1.2E1));
-+#4535=VERTEX_POINT('',#4533);
-+#4536=VERTEX_POINT('',#4534);
-+#4537=CARTESIAN_POINT('',(1.3825E0,1.E0,1.8E1));
-+#4538=CARTESIAN_POINT('',(8.675E-1,1.E0,1.8E1));
-+#4539=VERTEX_POINT('',#4537);
-+#4540=VERTEX_POINT('',#4538);
-+#4541=CARTESIAN_POINT('',(1.3825E0,1.5E0,1.8E1));
-+#4542=CARTESIAN_POINT('',(8.675E-1,1.5E0,1.8E1));
-+#4543=VERTEX_POINT('',#4541);
-+#4544=VERTEX_POINT('',#4542);
-+#4545=CARTESIAN_POINT('',(1.3175E0,1.E0,1.8E1));
-+#4546=CARTESIAN_POINT('',(9.325E-1,1.E0,1.8E1));
-+#4547=VERTEX_POINT('',#4545);
-+#4548=VERTEX_POINT('',#4546);
-+#4549=CARTESIAN_POINT('',(1.3825E0,1.E0,2.4E1));
-+#4550=CARTESIAN_POINT('',(8.675E-1,1.E0,2.4E1));
-+#4551=VERTEX_POINT('',#4549);
-+#4552=VERTEX_POINT('',#4550);
-+#4553=CARTESIAN_POINT('',(1.3825E0,1.5E0,2.4E1));
-+#4554=CARTESIAN_POINT('',(8.675E-1,1.5E0,2.4E1));
-+#4555=VERTEX_POINT('',#4553);
-+#4556=VERTEX_POINT('',#4554);
-+#4557=CARTESIAN_POINT('',(1.3175E0,1.E0,2.4E1));
-+#4558=CARTESIAN_POINT('',(9.325E-1,1.E0,2.4E1));
-+#4559=VERTEX_POINT('',#4557);
-+#4560=VERTEX_POINT('',#4558);
-+#4561=CARTESIAN_POINT('',(2.31325E1,1.E0,6.E0));
-+#4562=CARTESIAN_POINT('',(2.26175E1,1.E0,6.E0));
-+#4563=VERTEX_POINT('',#4561);
-+#4564=VERTEX_POINT('',#4562);
-+#4565=CARTESIAN_POINT('',(2.31325E1,1.5E0,6.E0));
-+#4566=CARTESIAN_POINT('',(2.26175E1,1.5E0,6.E0));
-+#4567=VERTEX_POINT('',#4565);
-+#4568=VERTEX_POINT('',#4566);
-+#4569=CARTESIAN_POINT('',(2.30675E1,1.E0,6.E0));
-+#4570=CARTESIAN_POINT('',(2.26825E1,1.E0,6.E0));
-+#4571=VERTEX_POINT('',#4569);
-+#4572=VERTEX_POINT('',#4570);
-+#4573=CARTESIAN_POINT('',(2.31325E1,1.E0,1.2E1));
-+#4574=CARTESIAN_POINT('',(2.26175E1,1.E0,1.2E1));
-+#4575=VERTEX_POINT('',#4573);
-+#4576=VERTEX_POINT('',#4574);
-+#4577=CARTESIAN_POINT('',(2.30675E1,1.E0,1.2E1));
-+#4578=CARTESIAN_POINT('',(2.26825E1,1.E0,1.2E1));
-+#4579=VERTEX_POINT('',#4577);
-+#4580=VERTEX_POINT('',#4578);
-+#4581=CARTESIAN_POINT('',(2.31325E1,1.E0,1.8E1));
-+#4582=CARTESIAN_POINT('',(2.26175E1,1.E0,1.8E1));
-+#4583=VERTEX_POINT('',#4581);
-+#4584=VERTEX_POINT('',#4582);
-+#4585=CARTESIAN_POINT('',(2.31325E1,1.5E0,1.8E1));
-+#4586=CARTESIAN_POINT('',(2.26175E1,1.5E0,1.8E1));
-+#4587=VERTEX_POINT('',#4585);
-+#4588=VERTEX_POINT('',#4586);
-+#4589=CARTESIAN_POINT('',(2.30675E1,1.E0,1.8E1));
-+#4590=CARTESIAN_POINT('',(2.26825E1,1.E0,1.8E1));
-+#4591=VERTEX_POINT('',#4589);
-+#4592=VERTEX_POINT('',#4590);
-+#4593=CARTESIAN_POINT('',(2.31325E1,1.E0,2.4E1));
-+#4594=CARTESIAN_POINT('',(2.26175E1,1.E0,2.4E1));
-+#4595=VERTEX_POINT('',#4593);
-+#4596=VERTEX_POINT('',#4594);
-+#4597=CARTESIAN_POINT('',(2.31325E1,1.5E0,2.4E1));
-+#4598=CARTESIAN_POINT('',(2.26175E1,1.5E0,2.4E1));
-+#4599=VERTEX_POINT('',#4597);
-+#4600=VERTEX_POINT('',#4598);
-+#4601=CARTESIAN_POINT('',(2.30675E1,1.E0,2.4E1));
-+#4602=CARTESIAN_POINT('',(2.26825E1,1.E0,2.4E1));
-+#4603=VERTEX_POINT('',#4601);
-+#4604=VERTEX_POINT('',#4602);
-+#4605=CARTESIAN_POINT('',(6.1925E0,0.E0,1.25E0));
-+#4606=CARTESIAN_POINT('',(5.8075E0,0.E0,1.25E0));
-+#4607=VERTEX_POINT('',#4605);
-+#4608=VERTEX_POINT('',#4606);
-+#4609=CARTESIAN_POINT('',(6.256E0,1.E0,1.25E0));
-+#4610=CARTESIAN_POINT('',(5.744E0,1.E0,1.25E0));
-+#4611=VERTEX_POINT('',#4609);
-+#4612=VERTEX_POINT('',#4610);
-+#4613=CARTESIAN_POINT('',(6.256E0,1.5E0,1.25E0));
-+#4614=CARTESIAN_POINT('',(5.744E0,1.5E0,1.25E0));
-+#4615=VERTEX_POINT('',#4613);
-+#4616=VERTEX_POINT('',#4614);
-+#4617=CARTESIAN_POINT('',(6.1925E0,1.E0,1.25E0));
-+#4618=CARTESIAN_POINT('',(5.8075E0,1.E0,1.25E0));
-+#4619=VERTEX_POINT('',#4617);
-+#4620=VERTEX_POINT('',#4618);
-+#4621=CARTESIAN_POINT('',(1.21925E1,0.E0,1.25E0));
-+#4622=CARTESIAN_POINT('',(1.18075E1,0.E0,1.25E0));
-+#4623=VERTEX_POINT('',#4621);
-+#4624=VERTEX_POINT('',#4622);
-+#4625=CARTESIAN_POINT('',(6.1925E0,0.E0,3.075E1));
-+#4626=CARTESIAN_POINT('',(5.8075E0,0.E0,3.075E1));
-+#4627=VERTEX_POINT('',#4625);
-+#4628=VERTEX_POINT('',#4626);
-+#4629=CARTESIAN_POINT('',(1.21925E1,0.E0,3.075E1));
-+#4630=CARTESIAN_POINT('',(1.18075E1,0.E0,3.075E1));
-+#4631=VERTEX_POINT('',#4629);
-+#4632=VERTEX_POINT('',#4630);
-+#4633=CARTESIAN_POINT('',(1.81925E1,0.E0,1.25E0));
-+#4634=CARTESIAN_POINT('',(1.78075E1,0.E0,1.25E0));
-+#4635=VERTEX_POINT('',#4633);
-+#4636=VERTEX_POINT('',#4634);
-+#4637=CARTESIAN_POINT('',(1.81925E1,0.E0,3.075E1));
-+#4638=CARTESIAN_POINT('',(1.78075E1,0.E0,3.075E1));
-+#4639=VERTEX_POINT('',#4637);
-+#4640=VERTEX_POINT('',#4638);
-+#4641=CARTESIAN_POINT('',(1.2256E1,1.E0,1.25E0));
-+#4642=CARTESIAN_POINT('',(1.1744E1,1.E0,1.25E0));
-+#4643=VERTEX_POINT('',#4641);
-+#4644=VERTEX_POINT('',#4642);
-+#4645=CARTESIAN_POINT('',(1.2256E1,1.5E0,1.25E0));
-+#4646=CARTESIAN_POINT('',(1.1744E1,1.5E0,1.25E0));
-+#4647=VERTEX_POINT('',#4645);
-+#4648=VERTEX_POINT('',#4646);
-+#4649=CARTESIAN_POINT('',(1.21925E1,1.E0,1.25E0));
-+#4650=CARTESIAN_POINT('',(1.18075E1,1.E0,1.25E0));
-+#4651=VERTEX_POINT('',#4649);
-+#4652=VERTEX_POINT('',#4650);
-+#4653=CARTESIAN_POINT('',(1.8256E1,1.E0,1.25E0));
-+#4654=CARTESIAN_POINT('',(1.7744E1,1.E0,1.25E0));
-+#4655=VERTEX_POINT('',#4653);
-+#4656=VERTEX_POINT('',#4654);
-+#4657=CARTESIAN_POINT('',(1.8256E1,1.5E0,1.25E0));
-+#4658=CARTESIAN_POINT('',(1.7744E1,1.5E0,1.25E0));
-+#4659=VERTEX_POINT('',#4657);
-+#4660=VERTEX_POINT('',#4658);
-+#4661=CARTESIAN_POINT('',(1.81925E1,1.E0,1.25E0));
-+#4662=CARTESIAN_POINT('',(1.78075E1,1.E0,1.25E0));
-+#4663=VERTEX_POINT('',#4661);
-+#4664=VERTEX_POINT('',#4662);
-+#4665=CARTESIAN_POINT('',(6.256E0,1.E0,3.075E1));
-+#4666=CARTESIAN_POINT('',(5.744E0,1.E0,3.075E1));
-+#4667=VERTEX_POINT('',#4665);
-+#4668=VERTEX_POINT('',#4666);
-+#4669=CARTESIAN_POINT('',(6.256E0,1.5E0,3.075E1));
-+#4670=CARTESIAN_POINT('',(5.744E0,1.5E0,3.075E1));
-+#4671=VERTEX_POINT('',#4669);
-+#4672=VERTEX_POINT('',#4670);
-+#4673=CARTESIAN_POINT('',(6.1925E0,1.E0,3.075E1));
-+#4674=CARTESIAN_POINT('',(5.8075E0,1.E0,3.075E1));
-+#4675=VERTEX_POINT('',#4673);
-+#4676=VERTEX_POINT('',#4674);
-+#4677=CARTESIAN_POINT('',(1.2256E1,1.E0,3.075E1));
-+#4678=CARTESIAN_POINT('',(1.1744E1,1.E0,3.075E1));
-+#4679=VERTEX_POINT('',#4677);
-+#4680=VERTEX_POINT('',#4678);
-+#4681=CARTESIAN_POINT('',(1.2256E1,1.5E0,3.075E1));
-+#4682=CARTESIAN_POINT('',(1.1744E1,1.5E0,3.075E1));
-+#4683=VERTEX_POINT('',#4681);
-+#4684=VERTEX_POINT('',#4682);
-+#4685=CARTESIAN_POINT('',(1.21925E1,1.E0,3.075E1));
-+#4686=CARTESIAN_POINT('',(1.18075E1,1.E0,3.075E1));
-+#4687=VERTEX_POINT('',#4685);
-+#4688=VERTEX_POINT('',#4686);
-+#4689=CARTESIAN_POINT('',(1.8256E1,1.E0,3.075E1));
-+#4690=CARTESIAN_POINT('',(1.7744E1,1.E0,3.075E1));
-+#4691=VERTEX_POINT('',#4689);
-+#4692=VERTEX_POINT('',#4690);
-+#4693=CARTESIAN_POINT('',(1.8256E1,1.5E0,3.075E1));
-+#4694=CARTESIAN_POINT('',(1.7744E1,1.5E0,3.075E1));
-+#4695=VERTEX_POINT('',#4693);
-+#4696=VERTEX_POINT('',#4694);
-+#4697=CARTESIAN_POINT('',(1.81925E1,1.E0,3.075E1));
-+#4698=CARTESIAN_POINT('',(1.78075E1,1.E0,3.075E1));
-+#4699=VERTEX_POINT('',#4697);
-+#4700=VERTEX_POINT('',#4698);
-+#4701=CARTESIAN_POINT('',(4.4125E0,1.05E1,8.E0));
-+#4702=CARTESIAN_POINT('',(4.0875E0,1.05E1,8.E0));
-+#4703=VERTEX_POINT('',#4701);
-+#4704=VERTEX_POINT('',#4702);
-+#4705=CARTESIAN_POINT('',(4.4125E0,1.05E1,1.E1));
-+#4706=CARTESIAN_POINT('',(4.0875E0,1.05E1,1.E1));
-+#4707=VERTEX_POINT('',#4705);
-+#4708=VERTEX_POINT('',#4706);
-+#4709=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.25E0));
-+#4710=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.25E0));
-+#4711=VERTEX_POINT('',#4709);
-+#4712=VERTEX_POINT('',#4710);
-+#4713=CARTESIAN_POINT('',(4.345E0,1.09375E1,8.E0));
-+#4714=CARTESIAN_POINT('',(4.155E0,1.09375E1,8.E0));
-+#4715=VERTEX_POINT('',#4713);
-+#4716=VERTEX_POINT('',#4714);
-+#4717=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.25E0));
-+#4718=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.25E0));
-+#4719=VERTEX_POINT('',#4717);
-+#4720=VERTEX_POINT('',#4718);
-+#4721=CARTESIAN_POINT('',(3.9075E0,1.05E1,8.E0));
-+#4722=CARTESIAN_POINT('',(3.7175E0,1.05E1,8.E0));
-+#4723=VERTEX_POINT('',#4721);
-+#4724=VERTEX_POINT('',#4722);
-+#4725=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.25E0));
-+#4726=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.25E0));
-+#4727=VERTEX_POINT('',#4725);
-+#4728=VERTEX_POINT('',#4726);
-+#4729=CARTESIAN_POINT('',(4.345E0,1.00625E1,8.E0));
-+#4730=CARTESIAN_POINT('',(4.155E0,1.00625E1,8.E0));
-+#4731=VERTEX_POINT('',#4729);
-+#4732=VERTEX_POINT('',#4730);
-+#4733=CARTESIAN_POINT('',(1.95875E1,1.05E1,8.E0));
-+#4734=CARTESIAN_POINT('',(1.99125E1,1.05E1,8.E0));
-+#4735=VERTEX_POINT('',#4733);
-+#4736=VERTEX_POINT('',#4734);
-+#4737=CARTESIAN_POINT('',(1.95875E1,1.05E1,1.E1));
-+#4738=CARTESIAN_POINT('',(1.99125E1,1.05E1,1.E1));
-+#4739=VERTEX_POINT('',#4737);
-+#4740=VERTEX_POINT('',#4738);
-+#4741=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.25E0));
-+#4742=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.25E0));
-+#4743=VERTEX_POINT('',#4741);
-+#4744=VERTEX_POINT('',#4742);
-+#4745=CARTESIAN_POINT('',(1.9655E1,1.09375E1,8.E0));
-+#4746=CARTESIAN_POINT('',(1.9845E1,1.09375E1,8.E0));
-+#4747=VERTEX_POINT('',#4745);
-+#4748=VERTEX_POINT('',#4746);
-+#4749=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.25E0));
-+#4750=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.25E0));
-+#4751=VERTEX_POINT('',#4749);
-+#4752=VERTEX_POINT('',#4750);
-+#4753=CARTESIAN_POINT('',(2.00925E1,1.05E1,8.E0));
-+#4754=CARTESIAN_POINT('',(2.02825E1,1.05E1,8.E0));
-+#4755=VERTEX_POINT('',#4753);
-+#4756=VERTEX_POINT('',#4754);
-+#4757=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.25E0));
-+#4758=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.25E0));
-+#4759=VERTEX_POINT('',#4757);
-+#4760=VERTEX_POINT('',#4758);
-+#4761=CARTESIAN_POINT('',(1.9655E1,1.00625E1,8.E0));
-+#4762=CARTESIAN_POINT('',(1.9845E1,1.00625E1,8.E0));
-+#4763=VERTEX_POINT('',#4761);
-+#4764=VERTEX_POINT('',#4762);
-+#4765=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#4766=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#4767=VERTEX_POINT('',#4765);
-+#4768=VERTEX_POINT('',#4766);
-+#4769=CARTESIAN_POINT('',(5.E0,1.5E0,1.1E1));
-+#4770=CARTESIAN_POINT('',(5.E0,0.E0,1.1E1));
-+#4771=VERTEX_POINT('',#4769);
-+#4772=VERTEX_POINT('',#4770);
-+#4773=CARTESIAN_POINT('',(6.E0,1.5E0,1.E1));
-+#4774=CARTESIAN_POINT('',(6.E0,0.E0,1.E1));
-+#4775=VERTEX_POINT('',#4773);
-+#4776=VERTEX_POINT('',#4774);
-+#4777=CARTESIAN_POINT('',(1.9E1,0.E0,1.1E1));
-+#4778=CARTESIAN_POINT('',(1.9E1,1.5E0,1.1E1));
-+#4779=VERTEX_POINT('',#4777);
-+#4780=VERTEX_POINT('',#4778);
-+#4781=CARTESIAN_POINT('',(1.8E1,0.E0,1.E1));
-+#4782=CARTESIAN_POINT('',(1.8E1,1.5E0,1.E1));
-+#4783=VERTEX_POINT('',#4781);
-+#4784=VERTEX_POINT('',#4782);
-+#4785=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#4786=VERTEX_POINT('',#4785);
-+#4787=CARTESIAN_POINT('',(1.9E1,1.5E0,1.E1));
-+#4788=VERTEX_POINT('',#4787);
-+#4789=CARTESIAN_POINT('',(2.5E0,1.5E0,2.19375E1));
-+#4790=CARTESIAN_POINT('',(2.5E0,0.E0,2.19375E1));
-+#4791=VERTEX_POINT('',#4789);
-+#4792=VERTEX_POINT('',#4790);
-+#4793=CARTESIAN_POINT('',(5.5E0,1.5E0,1.89375E1));
-+#4794=CARTESIAN_POINT('',(5.5E0,0.E0,1.89375E1));
-+#4795=VERTEX_POINT('',#4793);
-+#4796=VERTEX_POINT('',#4794);
-+#4797=CARTESIAN_POINT('',(2.15E1,0.E0,2.19375E1));
-+#4798=CARTESIAN_POINT('',(2.15E1,1.5E0,2.19375E1));
-+#4799=VERTEX_POINT('',#4797);
-+#4800=VERTEX_POINT('',#4798);
-+#4801=CARTESIAN_POINT('',(1.85E1,0.E0,1.89375E1));
-+#4802=CARTESIAN_POINT('',(1.85E1,1.5E0,1.89375E1));
-+#4803=VERTEX_POINT('',#4801);
-+#4804=VERTEX_POINT('',#4802);
-+#4805=CARTESIAN_POINT('',(2.15E1,1.5E0,1.40625E1));
-+#4806=CARTESIAN_POINT('',(2.15E1,0.E0,1.40625E1));
-+#4807=VERTEX_POINT('',#4805);
-+#4808=VERTEX_POINT('',#4806);
-+#4809=CARTESIAN_POINT('',(1.85E1,1.5E0,1.70625E1));
-+#4810=CARTESIAN_POINT('',(1.85E1,0.E0,1.70625E1));
-+#4811=VERTEX_POINT('',#4809);
-+#4812=VERTEX_POINT('',#4810);
-+#4813=CARTESIAN_POINT('',(2.5E0,0.E0,1.40625E1));
-+#4814=CARTESIAN_POINT('',(2.5E0,1.5E0,1.40625E1));
-+#4815=VERTEX_POINT('',#4813);
-+#4816=VERTEX_POINT('',#4814);
-+#4817=CARTESIAN_POINT('',(5.5E0,0.E0,1.70625E1));
-+#4818=CARTESIAN_POINT('',(5.5E0,1.5E0,1.70625E1));
-+#4819=VERTEX_POINT('',#4817);
-+#4820=VERTEX_POINT('',#4818);
-+#4821=CARTESIAN_POINT('',(6.1925E0,0.E0,9.E0));
-+#4822=CARTESIAN_POINT('',(5.8075E0,0.E0,9.E0));
-+#4823=VERTEX_POINT('',#4821);
-+#4824=VERTEX_POINT('',#4822);
-+#4825=CARTESIAN_POINT('',(6.2575E0,1.E0,9.E0));
-+#4826=CARTESIAN_POINT('',(5.7425E0,1.E0,9.E0));
-+#4827=VERTEX_POINT('',#4825);
-+#4828=VERTEX_POINT('',#4826);
-+#4829=CARTESIAN_POINT('',(6.2575E0,1.5E0,9.E0));
-+#4830=CARTESIAN_POINT('',(5.7425E0,1.5E0,9.E0));
-+#4831=VERTEX_POINT('',#4829);
-+#4832=VERTEX_POINT('',#4830);
-+#4833=CARTESIAN_POINT('',(6.1925E0,1.E0,9.E0));
-+#4834=CARTESIAN_POINT('',(5.8075E0,1.E0,9.E0));
-+#4835=VERTEX_POINT('',#4833);
-+#4836=VERTEX_POINT('',#4834);
-+#4837=CARTESIAN_POINT('',(1.21925E1,0.E0,9.E0));
-+#4838=CARTESIAN_POINT('',(1.18075E1,0.E0,9.E0));
-+#4839=VERTEX_POINT('',#4837);
-+#4840=VERTEX_POINT('',#4838);
-+#4841=CARTESIAN_POINT('',(1.81925E1,0.E0,9.E0));
-+#4842=CARTESIAN_POINT('',(1.78075E1,0.E0,9.E0));
-+#4843=VERTEX_POINT('',#4841);
-+#4844=VERTEX_POINT('',#4842);
-+#4845=CARTESIAN_POINT('',(6.1925E0,0.E0,1.8E1));
-+#4846=CARTESIAN_POINT('',(5.8075E0,0.E0,1.8E1));
-+#4847=VERTEX_POINT('',#4845);
-+#4848=VERTEX_POINT('',#4846);
-+#4849=CARTESIAN_POINT('',(1.21925E1,0.E0,1.8E1));
-+#4850=CARTESIAN_POINT('',(1.18075E1,0.E0,1.8E1));
-+#4851=VERTEX_POINT('',#4849);
-+#4852=VERTEX_POINT('',#4850);
-+#4853=CARTESIAN_POINT('',(1.81925E1,0.E0,1.8E1));
-+#4854=CARTESIAN_POINT('',(1.78075E1,0.E0,1.8E1));
-+#4855=VERTEX_POINT('',#4853);
-+#4856=VERTEX_POINT('',#4854);
-+#4857=CARTESIAN_POINT('',(1.22575E1,1.E0,9.E0));
-+#4858=CARTESIAN_POINT('',(1.17425E1,1.E0,9.E0));
-+#4859=VERTEX_POINT('',#4857);
-+#4860=VERTEX_POINT('',#4858);
-+#4861=CARTESIAN_POINT('',(1.22575E1,1.5E0,9.E0));
-+#4862=CARTESIAN_POINT('',(1.17425E1,1.5E0,9.E0));
-+#4863=VERTEX_POINT('',#4861);
-+#4864=VERTEX_POINT('',#4862);
-+#4865=CARTESIAN_POINT('',(1.21925E1,1.E0,9.E0));
-+#4866=CARTESIAN_POINT('',(1.18075E1,1.E0,9.E0));
-+#4867=VERTEX_POINT('',#4865);
-+#4868=VERTEX_POINT('',#4866);
-+#4869=CARTESIAN_POINT('',(1.82575E1,1.E0,9.E0));
-+#4870=CARTESIAN_POINT('',(1.77425E1,1.E0,9.E0));
-+#4871=VERTEX_POINT('',#4869);
-+#4872=VERTEX_POINT('',#4870);
-+#4873=CARTESIAN_POINT('',(1.82575E1,1.5E0,9.E0));
-+#4874=CARTESIAN_POINT('',(1.77425E1,1.5E0,9.E0));
-+#4875=VERTEX_POINT('',#4873);
-+#4876=VERTEX_POINT('',#4874);
-+#4877=CARTESIAN_POINT('',(1.81925E1,1.E0,9.E0));
-+#4878=CARTESIAN_POINT('',(1.78075E1,1.E0,9.E0));
-+#4879=VERTEX_POINT('',#4877);
-+#4880=VERTEX_POINT('',#4878);
-+#4881=CARTESIAN_POINT('',(6.2575E0,1.E0,1.8E1));
-+#4882=CARTESIAN_POINT('',(5.7425E0,1.E0,1.8E1));
-+#4883=VERTEX_POINT('',#4881);
-+#4884=VERTEX_POINT('',#4882);
-+#4885=CARTESIAN_POINT('',(6.2575E0,1.5E0,1.8E1));
-+#4886=CARTESIAN_POINT('',(5.7425E0,1.5E0,1.8E1));
-+#4887=VERTEX_POINT('',#4885);
-+#4888=VERTEX_POINT('',#4886);
-+#4889=CARTESIAN_POINT('',(6.1925E0,1.E0,1.8E1));
-+#4890=CARTESIAN_POINT('',(5.8075E0,1.E0,1.8E1));
-+#4891=VERTEX_POINT('',#4889);
-+#4892=VERTEX_POINT('',#4890);
-+#4893=CARTESIAN_POINT('',(1.22575E1,1.E0,1.8E1));
-+#4894=CARTESIAN_POINT('',(1.17425E1,1.E0,1.8E1));
-+#4895=VERTEX_POINT('',#4893);
-+#4896=VERTEX_POINT('',#4894);
-+#4897=CARTESIAN_POINT('',(1.22575E1,1.5E0,1.8E1));
-+#4898=CARTESIAN_POINT('',(1.17425E1,1.5E0,1.8E1));
-+#4899=VERTEX_POINT('',#4897);
-+#4900=VERTEX_POINT('',#4898);
-+#4901=CARTESIAN_POINT('',(1.21925E1,1.E0,1.8E1));
-+#4902=CARTESIAN_POINT('',(1.18075E1,1.E0,1.8E1));
-+#4903=VERTEX_POINT('',#4901);
-+#4904=VERTEX_POINT('',#4902);
-+#4905=CARTESIAN_POINT('',(1.82575E1,1.E0,1.8E1));
-+#4906=CARTESIAN_POINT('',(1.77425E1,1.E0,1.8E1));
-+#4907=VERTEX_POINT('',#4905);
-+#4908=VERTEX_POINT('',#4906);
-+#4909=CARTESIAN_POINT('',(1.82575E1,1.5E0,1.8E1));
-+#4910=CARTESIAN_POINT('',(1.77425E1,1.5E0,1.8E1));
-+#4911=VERTEX_POINT('',#4909);
-+#4912=VERTEX_POINT('',#4910);
-+#4913=CARTESIAN_POINT('',(1.81925E1,1.E0,1.8E1));
-+#4914=CARTESIAN_POINT('',(1.78075E1,1.E0,1.8E1));
-+#4915=VERTEX_POINT('',#4913);
-+#4916=VERTEX_POINT('',#4914);
-+#4917=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.288675134595E1));
-+#4918=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.E1));
-+#4919=VERTEX_POINT('',#4917);
-+#4920=VERTEX_POINT('',#4918);
-+#4921=CARTESIAN_POINT('',(2.E0,1.5E0,1.288675134595E1));
-+#4922=CARTESIAN_POINT('',(2.E0,1.5E0,1.E1));
-+#4923=VERTEX_POINT('',#4921);
-+#4924=VERTEX_POINT('',#4922);
-+#4925=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#4926=VERTEX_POINT('',#4925);
-+#4927=CARTESIAN_POINT('',(2.E0,6.5E0,1.E1));
-+#4928=VERTEX_POINT('',#4927);
-+#4929=VERTEX_POINT('',#1837);
-+#4930=VERTEX_POINT('',#1845);
-+#4931=CARTESIAN_POINT('',(2.375E1,1.5E0,1.288675134595E1));
-+#4932=CARTESIAN_POINT('',(2.375E1,1.5E0,1.E1));
-+#4933=VERTEX_POINT('',#4931);
-+#4934=VERTEX_POINT('',#4932);
-+#4935=CARTESIAN_POINT('',(2.2E1,1.5E0,1.288675134595E1));
-+#4936=CARTESIAN_POINT('',(2.2E1,1.5E0,1.E1));
-+#4937=VERTEX_POINT('',#4935);
-+#4938=VERTEX_POINT('',#4936);
-+#4939=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#4940=VERTEX_POINT('',#4939);
-+#4941=CARTESIAN_POINT('',(2.2E1,6.5E0,1.E1));
-+#4942=VERTEX_POINT('',#4941);
-+#4943=VERTEX_POINT('',#2873);
-+#4944=VERTEX_POINT('',#2881);
-+#4945=CARTESIAN_POINT('',(3.75E0,2.E0,8.E0));
-+#4946=CARTESIAN_POINT('',(3.75E0,2.E0,8.5E0));
-+#4947=VERTEX_POINT('',#4945);
-+#4948=VERTEX_POINT('',#4946);
-+#4949=CARTESIAN_POINT('',(4.5E0,2.75E0,8.E0));
-+#4950=CARTESIAN_POINT('',(4.5E0,2.75E0,8.5E0));
-+#4951=VERTEX_POINT('',#4949);
-+#4952=VERTEX_POINT('',#4950);
-+#4953=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.E0));
-+#4954=CARTESIAN_POINT('',(-8.007907113711E-1,3.114232198384E0,8.5E0));
-+#4955=VERTEX_POINT('',#4953);
-+#4956=VERTEX_POINT('',#4954);
-+#4957=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.E0));
-+#4958=CARTESIAN_POINT('',(-1.451727542799E-1,2.E0,8.5E0));
-+#4959=VERTEX_POINT('',#4957);
-+#4960=VERTEX_POINT('',#4958);
-+#4961=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.E0));
-+#4962=CARTESIAN_POINT('',(3.188160579053E0,9.5E0,8.5E0));
-+#4963=VERTEX_POINT('',#4961);
-+#4964=VERTEX_POINT('',#4962);
-+#4965=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.E0));
-+#4966=CARTESIAN_POINT('',(2.532542621962E0,9.114232198384E0,8.5E0));
-+#4967=VERTEX_POINT('',#4965);
-+#4968=VERTEX_POINT('',#4966);
-+#4969=CARTESIAN_POINT('',(4.5E0,8.75E0,8.E0));
-+#4970=CARTESIAN_POINT('',(4.5E0,8.75E0,8.5E0));
-+#4971=VERTEX_POINT('',#4969);
-+#4972=VERTEX_POINT('',#4970);
-+#4973=CARTESIAN_POINT('',(3.75E0,9.5E0,8.E0));
-+#4974=CARTESIAN_POINT('',(3.75E0,9.5E0,8.5E0));
-+#4975=VERTEX_POINT('',#4973);
-+#4976=VERTEX_POINT('',#4974);
-+#4977=CARTESIAN_POINT('',(2.85E0,2.E0,1.E1));
-+#4978=CARTESIAN_POINT('',(2.85E0,2.E0,9.5E0));
-+#4979=VERTEX_POINT('',#4977);
-+#4980=VERTEX_POINT('',#4978);
-+#4981=CARTESIAN_POINT('',(2.5E0,2.35E0,1.E1));
-+#4982=CARTESIAN_POINT('',(2.5E0,2.35E0,9.5E0));
-+#4983=VERTEX_POINT('',#4981);
-+#4984=VERTEX_POINT('',#4982);
-+#4985=CARTESIAN_POINT('',(4.5E0,2.35E0,1.E1));
-+#4986=CARTESIAN_POINT('',(4.5E0,2.35E0,9.5E0));
-+#4987=VERTEX_POINT('',#4985);
-+#4988=VERTEX_POINT('',#4986);
-+#4989=CARTESIAN_POINT('',(4.15E0,2.E0,1.E1));
-+#4990=CARTESIAN_POINT('',(4.15E0,2.E0,9.5E0));
-+#4991=VERTEX_POINT('',#4989);
-+#4992=VERTEX_POINT('',#4990);
-+#4993=CARTESIAN_POINT('',(1.952799239454E0,7.E0,1.E1));
-+#4994=CARTESIAN_POINT('',(1.952799239454E0,7.E0,9.5E0));
-+#4995=VERTEX_POINT('',#4993);
-+#4996=VERTEX_POINT('',#4994);
-+#4997=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,1.E1));
-+#4998=CARTESIAN_POINT('',(1.646844192811E0,7.519975025913E0,9.5E0));
-+#4999=VERTEX_POINT('',#4997);
-+#5000=VERTEX_POINT('',#4998);
-+#5001=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,1.E1));
-+#5002=CARTESIAN_POINT('',(2.646844192811E0,9.319975025913E0,9.5E0));
-+#5003=VERTEX_POINT('',#5001);
-+#5004=VERTEX_POINT('',#5002);
-+#5005=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,1.E1));
-+#5006=CARTESIAN_POINT('',(2.952799239454E0,9.5E0,9.5E0));
-+#5007=VERTEX_POINT('',#5005);
-+#5008=VERTEX_POINT('',#5006);
-+#5009=CARTESIAN_POINT('',(4.15E0,9.5E0,1.E1));
-+#5010=CARTESIAN_POINT('',(4.15E0,9.5E0,9.5E0));
-+#5011=VERTEX_POINT('',#5009);
-+#5012=VERTEX_POINT('',#5010);
-+#5013=CARTESIAN_POINT('',(4.5E0,9.15E0,1.E1));
-+#5014=CARTESIAN_POINT('',(4.5E0,9.15E0,9.5E0));
-+#5015=VERTEX_POINT('',#5013);
-+#5016=VERTEX_POINT('',#5014);
-+#5017=CARTESIAN_POINT('',(2.5E0,6.65E0,9.5E0));
-+#5018=CARTESIAN_POINT('',(2.5E0,6.65E0,1.E1));
-+#5019=VERTEX_POINT('',#5017);
-+#5020=VERTEX_POINT('',#5018);
-+#5021=CARTESIAN_POINT('',(2.15E0,7.E0,1.E1));
-+#5022=VERTEX_POINT('',#5021);
-+#5023=CARTESIAN_POINT('',(2.15E0,7.E0,9.5E0));
-+#5024=VERTEX_POINT('',#5023);
-+#5025=CARTESIAN_POINT('',(2.025E1,2.E0,8.5E0));
-+#5026=CARTESIAN_POINT('',(2.025E1,2.E0,8.E0));
-+#5027=VERTEX_POINT('',#5025);
-+#5028=VERTEX_POINT('',#5026);
-+#5029=CARTESIAN_POINT('',(1.95E1,2.75E0,8.5E0));
-+#5030=VERTEX_POINT('',#5029);
-+#5031=CARTESIAN_POINT('',(1.95E1,2.75E0,8.E0));
-+#5032=VERTEX_POINT('',#5031);
-+#5033=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.5E0));
-+#5034=CARTESIAN_POINT('',(2.480079071137E1,3.114232198384E0,8.E0));
-+#5035=VERTEX_POINT('',#5033);
-+#5036=VERTEX_POINT('',#5034);
-+#5037=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.5E0));
-+#5038=VERTEX_POINT('',#5037);
-+#5039=CARTESIAN_POINT('',(2.414517275428E1,2.E0,8.E0));
-+#5040=VERTEX_POINT('',#5039);
-+#5041=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.5E0));
-+#5042=CARTESIAN_POINT('',(2.081183942095E1,9.5E0,8.E0));
-+#5043=VERTEX_POINT('',#5041);
-+#5044=VERTEX_POINT('',#5042);
-+#5045=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.5E0));
-+#5046=VERTEX_POINT('',#5045);
-+#5047=CARTESIAN_POINT('',(2.146745737804E1,9.114232198384E0,8.E0));
-+#5048=VERTEX_POINT('',#5047);
-+#5049=CARTESIAN_POINT('',(1.95E1,8.75E0,8.5E0));
-+#5050=CARTESIAN_POINT('',(1.95E1,8.75E0,8.E0));
-+#5051=VERTEX_POINT('',#5049);
-+#5052=VERTEX_POINT('',#5050);
-+#5053=CARTESIAN_POINT('',(2.025E1,9.5E0,8.5E0));
-+#5054=VERTEX_POINT('',#5053);
-+#5055=CARTESIAN_POINT('',(2.025E1,9.5E0,8.E0));
-+#5056=VERTEX_POINT('',#5055);
-+#5057=CARTESIAN_POINT('',(2.115E1,2.E0,9.5E0));
-+#5058=CARTESIAN_POINT('',(2.115E1,2.E0,1.E1));
-+#5059=VERTEX_POINT('',#5057);
-+#5060=VERTEX_POINT('',#5058);
-+#5061=CARTESIAN_POINT('',(2.15E1,2.35E0,9.5E0));
-+#5062=VERTEX_POINT('',#5061);
-+#5063=CARTESIAN_POINT('',(2.15E1,2.35E0,1.E1));
-+#5064=VERTEX_POINT('',#5063);
-+#5065=CARTESIAN_POINT('',(1.95E1,2.35E0,9.5E0));
-+#5066=CARTESIAN_POINT('',(1.95E1,2.35E0,1.E1));
-+#5067=VERTEX_POINT('',#5065);
-+#5068=VERTEX_POINT('',#5066);
-+#5069=CARTESIAN_POINT('',(1.985E1,2.E0,9.5E0));
-+#5070=VERTEX_POINT('',#5069);
-+#5071=CARTESIAN_POINT('',(1.985E1,2.E0,1.E1));
-+#5072=VERTEX_POINT('',#5071);
-+#5073=CARTESIAN_POINT('',(2.204720076055E1,7.E0,9.5E0));
-+#5074=CARTESIAN_POINT('',(2.204720076055E1,7.E0,1.E1));
-+#5075=VERTEX_POINT('',#5073);
-+#5076=VERTEX_POINT('',#5074);
-+#5077=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,9.5E0));
-+#5078=VERTEX_POINT('',#5077);
-+#5079=CARTESIAN_POINT('',(2.235315580719E1,7.519975025913E0,1.E1));
-+#5080=VERTEX_POINT('',#5079);
-+#5081=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,9.5E0));
-+#5082=CARTESIAN_POINT('',(2.135315580719E1,9.319975025913E0,1.E1));
-+#5083=VERTEX_POINT('',#5081);
-+#5084=VERTEX_POINT('',#5082);
-+#5085=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,9.5E0));
-+#5086=VERTEX_POINT('',#5085);
-+#5087=CARTESIAN_POINT('',(2.104720076055E1,9.5E0,1.E1));
-+#5088=VERTEX_POINT('',#5087);
-+#5089=CARTESIAN_POINT('',(1.985E1,9.5E0,9.5E0));
-+#5090=CARTESIAN_POINT('',(1.985E1,9.5E0,1.E1));
-+#5091=VERTEX_POINT('',#5089);
-+#5092=VERTEX_POINT('',#5090);
-+#5093=CARTESIAN_POINT('',(1.95E1,9.15E0,9.5E0));
-+#5094=VERTEX_POINT('',#5093);
-+#5095=CARTESIAN_POINT('',(1.95E1,9.15E0,1.E1));
-+#5096=VERTEX_POINT('',#5095);
-+#5097=CARTESIAN_POINT('',(2.15E1,6.65E0,1.E1));
-+#5098=CARTESIAN_POINT('',(2.15E1,6.65E0,9.5E0));
-+#5099=VERTEX_POINT('',#5097);
-+#5100=VERTEX_POINT('',#5098);
-+#5101=CARTESIAN_POINT('',(2.185E1,7.E0,1.E1));
-+#5102=CARTESIAN_POINT('',(2.185E1,7.E0,9.5E0));
-+#5103=VERTEX_POINT('',#5101);
-+#5104=VERTEX_POINT('',#5102);
-+#5105=CARTESIAN_POINT('',(7.5E0,6.875E-1,6.875E-1));
-+#5106=CARTESIAN_POINT('',(1.05E1,6.875E-1,6.875E-1));
-+#5107=VERTEX_POINT('',#5105);
-+#5108=VERTEX_POINT('',#5106);
-+#5109=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.8125E0));
-+#5110=VERTEX_POINT('',#5109);
-+#5111=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.8125E0));
-+#5112=VERTEX_POINT('',#5111);
-+#5113=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,1.032293285145E0));
-+#5114=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.419779663480E0));
-+#5115=VERTEX_POINT('',#5113);
-+#5116=VERTEX_POINT('',#5114);
-+#5117=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,4.918683812405E0));
-+#5118=VERTEX_POINT('',#5117);
-+#5119=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#5120=CARTESIAN_POINT('',(1.05E1,0.E0,6.875E-1));
-+#5121=VERTEX_POINT('',#5119);
-+#5122=VERTEX_POINT('',#5120);
-+#5123=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#5124=VERTEX_POINT('',#5123);
-+#5125=CARTESIAN_POINT('',(7.5E0,0.E0,1.8125E0));
-+#5126=VERTEX_POINT('',#5125);
-+#5127=CARTESIAN_POINT('',(3.939978538987E0,0.E0,1.032293285145E0));
-+#5128=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.419779663480E0));
-+#5129=VERTEX_POINT('',#5127);
-+#5130=VERTEX_POINT('',#5128);
-+#5131=CARTESIAN_POINT('',(2.432015885023E0,0.E0,4.918683812405E0));
-+#5132=VERTEX_POINT('',#5131);
-+#5133=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,4.046865146430E0));
-+#5134=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,4.046865146430E0));
-+#5135=VERTEX_POINT('',#5133);
-+#5136=VERTEX_POINT('',#5134);
-+#5137=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,4.912826677187E0));
-+#5138=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,4.912826677187E0));
-+#5139=VERTEX_POINT('',#5137);
-+#5140=VERTEX_POINT('',#5138);
-+#5141=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.5E0));
-+#5142=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.5E0));
-+#5143=VERTEX_POINT('',#5141);
-+#5144=VERTEX_POINT('',#5142);
-+#5145=CARTESIAN_POINT('',(6.9E-1,0.E0,7.5E0));
-+#5146=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#5147=VERTEX_POINT('',#5145);
-+#5148=VERTEX_POINT('',#5146);
-+#5149=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.0375E1));
-+#5150=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,1.0375E1));
-+#5151=VERTEX_POINT('',#5149);
-+#5152=VERTEX_POINT('',#5150);
-+#5153=CARTESIAN_POINT('',(-4.375E-1,0.E0,1.125E1));
-+#5154=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,1.125E1));
-+#5155=VERTEX_POINT('',#5153);
-+#5156=VERTEX_POINT('',#5154);
-+#5157=CARTESIAN_POINT('',(-4.375E-1,0.E0,8.69E0));
-+#5158=CARTESIAN_POINT('',(-4.375E-1,6.875E-1,8.69E0));
-+#5159=VERTEX_POINT('',#5157);
-+#5160=VERTEX_POINT('',#5158);
-+#5161=CARTESIAN_POINT('',(-1.3125E0,0.E0,9.565E0));
-+#5162=CARTESIAN_POINT('',(-1.3125E0,6.875E-1,9.565E0));
-+#5163=VERTEX_POINT('',#5161);
-+#5164=VERTEX_POINT('',#5162);
-+#5165=CARTESIAN_POINT('',(4.3125E0,0.E0,9.565E0));
-+#5166=CARTESIAN_POINT('',(4.3125E0,6.875E-1,9.565E0));
-+#5167=VERTEX_POINT('',#5165);
-+#5168=VERTEX_POINT('',#5166);
-+#5169=CARTESIAN_POINT('',(3.4375E0,0.E0,8.69E0));
-+#5170=CARTESIAN_POINT('',(3.4375E0,6.875E-1,8.69E0));
-+#5171=VERTEX_POINT('',#5169);
-+#5172=VERTEX_POINT('',#5170);
-+#5173=CARTESIAN_POINT('',(3.4375E0,0.E0,1.125E1));
-+#5174=CARTESIAN_POINT('',(3.4375E0,6.875E-1,1.125E1));
-+#5175=VERTEX_POINT('',#5173);
-+#5176=VERTEX_POINT('',#5174);
-+#5177=CARTESIAN_POINT('',(4.3125E0,0.E0,1.0375E1));
-+#5178=CARTESIAN_POINT('',(4.3125E0,6.875E-1,1.0375E1));
-+#5179=VERTEX_POINT('',#5177);
-+#5180=VERTEX_POINT('',#5178);
-+#5181=CARTESIAN_POINT('',(6.9E-1,6.875E-1,7.815E0));
-+#5182=CARTESIAN_POINT('',(6.9E-1,0.E0,7.815E0));
-+#5183=VERTEX_POINT('',#5181);
-+#5184=VERTEX_POINT('',#5182);
-+#5185=CARTESIAN_POINT('',(-1.85E-1,0.E0,8.69E0));
-+#5186=VERTEX_POINT('',#5185);
-+#5187=CARTESIAN_POINT('',(-1.85E-1,6.875E-1,8.69E0));
-+#5188=VERTEX_POINT('',#5187);
-+#5189=CARTESIAN_POINT('',(2.6875E0,6.875E-1,8.69E0));
-+#5190=CARTESIAN_POINT('',(2.6875E0,0.E0,8.69E0));
-+#5191=VERTEX_POINT('',#5189);
-+#5192=VERTEX_POINT('',#5190);
-+#5193=CARTESIAN_POINT('',(1.8125E0,0.E0,7.815E0));
-+#5194=VERTEX_POINT('',#5193);
-+#5195=CARTESIAN_POINT('',(1.8125E0,6.875E-1,7.815E0));
-+#5196=VERTEX_POINT('',#5195);
-+#5197=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.65E1));
-+#5198=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.35E1));
-+#5199=VERTEX_POINT('',#5197);
-+#5200=VERTEX_POINT('',#5198);
-+#5201=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.35E1));
-+#5202=VERTEX_POINT('',#5201);
-+#5203=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.65E1));
-+#5204=VERTEX_POINT('',#5203);
-+#5205=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#5206=CARTESIAN_POINT('',(6.875E-1,0.E0,1.35E1));
-+#5207=VERTEX_POINT('',#5205);
-+#5208=VERTEX_POINT('',#5206);
-+#5209=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#5210=VERTEX_POINT('',#5209);
-+#5211=CARTESIAN_POINT('',(1.8125E0,0.E0,1.65E1));
-+#5212=VERTEX_POINT('',#5211);
-+#5213=CARTESIAN_POINT('',(6.875E-1,6.875E-1,2.25E1));
-+#5214=CARTESIAN_POINT('',(6.875E-1,6.875E-1,1.95E1));
-+#5215=VERTEX_POINT('',#5213);
-+#5216=VERTEX_POINT('',#5214);
-+#5217=CARTESIAN_POINT('',(1.8125E0,6.875E-1,1.95E1));
-+#5218=VERTEX_POINT('',#5217);
-+#5219=CARTESIAN_POINT('',(1.8125E0,6.875E-1,2.25E1));
-+#5220=VERTEX_POINT('',#5219);
-+#5221=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#5222=CARTESIAN_POINT('',(6.875E-1,0.E0,1.95E1));
-+#5223=VERTEX_POINT('',#5221);
-+#5224=VERTEX_POINT('',#5222);
-+#5225=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#5226=VERTEX_POINT('',#5225);
-+#5227=CARTESIAN_POINT('',(1.8125E0,0.E0,2.25E1));
-+#5228=VERTEX_POINT('',#5227);
-+#5229=CARTESIAN_POINT('',(7.5E0,6.875E-1,8.5E0));
-+#5230=CARTESIAN_POINT('',(1.05E1,6.875E-1,8.5E0));
-+#5231=VERTEX_POINT('',#5229);
-+#5232=VERTEX_POINT('',#5230);
-+#5233=CARTESIAN_POINT('',(1.05E1,6.875E-1,9.5E0));
-+#5234=VERTEX_POINT('',#5233);
-+#5235=CARTESIAN_POINT('',(7.5E0,6.875E-1,9.5E0));
-+#5236=VERTEX_POINT('',#5235);
-+#5237=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#5238=CARTESIAN_POINT('',(1.05E1,0.E0,8.5E0));
-+#5239=VERTEX_POINT('',#5237);
-+#5240=VERTEX_POINT('',#5238);
-+#5241=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#5242=VERTEX_POINT('',#5241);
-+#5243=CARTESIAN_POINT('',(7.5E0,0.E0,9.5E0));
-+#5244=VERTEX_POINT('',#5243);
-+#5245=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.75625E1));
-+#5246=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.75625E1));
-+#5247=VERTEX_POINT('',#5245);
-+#5248=VERTEX_POINT('',#5246);
-+#5249=CARTESIAN_POINT('',(1.05E1,6.875E-1,1.84375E1));
-+#5250=VERTEX_POINT('',#5249);
-+#5251=CARTESIAN_POINT('',(7.5E0,6.875E-1,1.84375E1));
-+#5252=VERTEX_POINT('',#5251);
-+#5253=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#5254=CARTESIAN_POINT('',(1.05E1,0.E0,1.75625E1));
-+#5255=VERTEX_POINT('',#5253);
-+#5256=VERTEX_POINT('',#5254);
-+#5257=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#5258=VERTEX_POINT('',#5257);
-+#5259=CARTESIAN_POINT('',(7.5E0,0.E0,1.84375E1));
-+#5260=VERTEX_POINT('',#5259);
-+#5261=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.13125E1));
-+#5262=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.13125E1));
-+#5263=VERTEX_POINT('',#5261);
-+#5264=VERTEX_POINT('',#5262);
-+#5265=CARTESIAN_POINT('',(1.05E1,6.875E-1,3.01875E1));
-+#5266=VERTEX_POINT('',#5265);
-+#5267=CARTESIAN_POINT('',(7.5E0,6.875E-1,3.01875E1));
-+#5268=VERTEX_POINT('',#5267);
-+#5269=CARTESIAN_POINT('',(3.939978538987E0,6.875E-1,3.096770671486E1));
-+#5270=CARTESIAN_POINT('',(4.942849714544E0,6.875E-1,2.958022033652E1));
-+#5271=VERTEX_POINT('',#5269);
-+#5272=VERTEX_POINT('',#5270);
-+#5273=CARTESIAN_POINT('',(2.432015885023E0,6.875E-1,2.708131618759E1));
-+#5274=VERTEX_POINT('',#5273);
-+#5275=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#5276=CARTESIAN_POINT('',(1.05E1,0.E0,3.13125E1));
-+#5277=VERTEX_POINT('',#5275);
-+#5278=VERTEX_POINT('',#5276);
-+#5279=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#5280=VERTEX_POINT('',#5279);
-+#5281=CARTESIAN_POINT('',(7.5E0,0.E0,3.01875E1));
-+#5282=VERTEX_POINT('',#5281);
-+#5283=CARTESIAN_POINT('',(3.939978538987E0,0.E0,3.096770671486E1));
-+#5284=CARTESIAN_POINT('',(4.942849714544E0,0.E0,2.958022033652E1));
-+#5285=VERTEX_POINT('',#5283);
-+#5286=VERTEX_POINT('',#5284);
-+#5287=CARTESIAN_POINT('',(2.432015885023E0,0.E0,2.708131618759E1));
-+#5288=VERTEX_POINT('',#5287);
-+#5289=CARTESIAN_POINT('',(1.65E1,6.875E-1,6.875E-1));
-+#5290=CARTESIAN_POINT('',(1.35E1,6.875E-1,6.875E-1));
-+#5291=VERTEX_POINT('',#5289);
-+#5292=VERTEX_POINT('',#5290);
-+#5293=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.8125E0));
-+#5294=VERTEX_POINT('',#5293);
-+#5295=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.8125E0));
-+#5296=VERTEX_POINT('',#5295);
-+#5297=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,1.032293285145E0));
-+#5298=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.419779663480E0));
-+#5299=VERTEX_POINT('',#5297);
-+#5300=VERTEX_POINT('',#5298);
-+#5301=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,4.918683812405E0));
-+#5302=VERTEX_POINT('',#5301);
-+#5303=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#5304=CARTESIAN_POINT('',(1.35E1,0.E0,6.875E-1));
-+#5305=VERTEX_POINT('',#5303);
-+#5306=VERTEX_POINT('',#5304);
-+#5307=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#5308=VERTEX_POINT('',#5307);
-+#5309=CARTESIAN_POINT('',(1.65E1,0.E0,1.8125E0));
-+#5310=VERTEX_POINT('',#5309);
-+#5311=CARTESIAN_POINT('',(2.006002146101E1,0.E0,1.032293285145E0));
-+#5312=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.419779663480E0));
-+#5313=VERTEX_POINT('',#5311);
-+#5314=VERTEX_POINT('',#5312);
-+#5315=CARTESIAN_POINT('',(2.156798411498E1,0.E0,4.918683812405E0));
-+#5316=VERTEX_POINT('',#5315);
-+#5317=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.5E0));
-+#5318=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.5E0));
-+#5319=VERTEX_POINT('',#5317);
-+#5320=VERTEX_POINT('',#5318);
-+#5321=CARTESIAN_POINT('',(2.331E1,0.E0,7.5E0));
-+#5322=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#5323=VERTEX_POINT('',#5321);
-+#5324=VERTEX_POINT('',#5322);
-+#5325=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.65E1));
-+#5326=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.35E1));
-+#5327=VERTEX_POINT('',#5325);
-+#5328=VERTEX_POINT('',#5326);
-+#5329=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.35E1));
-+#5330=VERTEX_POINT('',#5329);
-+#5331=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.65E1));
-+#5332=VERTEX_POINT('',#5331);
-+#5333=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#5334=CARTESIAN_POINT('',(2.33125E1,0.E0,1.35E1));
-+#5335=VERTEX_POINT('',#5333);
-+#5336=VERTEX_POINT('',#5334);
-+#5337=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#5338=VERTEX_POINT('',#5337);
-+#5339=CARTESIAN_POINT('',(2.21875E1,0.E0,1.65E1));
-+#5340=VERTEX_POINT('',#5339);
-+#5341=CARTESIAN_POINT('',(2.33125E1,6.875E-1,2.25E1));
-+#5342=CARTESIAN_POINT('',(2.33125E1,6.875E-1,1.95E1));
-+#5343=VERTEX_POINT('',#5341);
-+#5344=VERTEX_POINT('',#5342);
-+#5345=CARTESIAN_POINT('',(2.21875E1,6.875E-1,1.95E1));
-+#5346=VERTEX_POINT('',#5345);
-+#5347=CARTESIAN_POINT('',(2.21875E1,6.875E-1,2.25E1));
-+#5348=VERTEX_POINT('',#5347);
-+#5349=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#5350=CARTESIAN_POINT('',(2.33125E1,0.E0,1.95E1));
-+#5351=VERTEX_POINT('',#5349);
-+#5352=VERTEX_POINT('',#5350);
-+#5353=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#5354=VERTEX_POINT('',#5353);
-+#5355=CARTESIAN_POINT('',(2.21875E1,0.E0,2.25E1));
-+#5356=VERTEX_POINT('',#5355);
-+#5357=CARTESIAN_POINT('',(1.65E1,6.875E-1,8.5E0));
-+#5358=CARTESIAN_POINT('',(1.35E1,6.875E-1,8.5E0));
-+#5359=VERTEX_POINT('',#5357);
-+#5360=VERTEX_POINT('',#5358);
-+#5361=CARTESIAN_POINT('',(1.35E1,6.875E-1,9.5E0));
-+#5362=VERTEX_POINT('',#5361);
-+#5363=CARTESIAN_POINT('',(1.65E1,6.875E-1,9.5E0));
-+#5364=VERTEX_POINT('',#5363);
-+#5365=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#5366=CARTESIAN_POINT('',(1.35E1,0.E0,8.5E0));
-+#5367=VERTEX_POINT('',#5365);
-+#5368=VERTEX_POINT('',#5366);
-+#5369=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#5370=VERTEX_POINT('',#5369);
-+#5371=CARTESIAN_POINT('',(1.65E1,0.E0,9.5E0));
-+#5372=VERTEX_POINT('',#5371);
-+#5373=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.75625E1));
-+#5374=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.75625E1));
-+#5375=VERTEX_POINT('',#5373);
-+#5376=VERTEX_POINT('',#5374);
-+#5377=CARTESIAN_POINT('',(1.35E1,6.875E-1,1.84375E1));
-+#5378=VERTEX_POINT('',#5377);
-+#5379=CARTESIAN_POINT('',(1.65E1,6.875E-1,1.84375E1));
-+#5380=VERTEX_POINT('',#5379);
-+#5381=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#5382=CARTESIAN_POINT('',(1.35E1,0.E0,1.75625E1));
-+#5383=VERTEX_POINT('',#5381);
-+#5384=VERTEX_POINT('',#5382);
-+#5385=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#5386=VERTEX_POINT('',#5385);
-+#5387=CARTESIAN_POINT('',(1.65E1,0.E0,1.84375E1));
-+#5388=VERTEX_POINT('',#5387);
-+#5389=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.13125E1));
-+#5390=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.13125E1));
-+#5391=VERTEX_POINT('',#5389);
-+#5392=VERTEX_POINT('',#5390);
-+#5393=CARTESIAN_POINT('',(1.35E1,6.875E-1,3.01875E1));
-+#5394=VERTEX_POINT('',#5393);
-+#5395=CARTESIAN_POINT('',(1.65E1,6.875E-1,3.01875E1));
-+#5396=VERTEX_POINT('',#5395);
-+#5397=CARTESIAN_POINT('',(2.006002146101E1,6.875E-1,3.096770671486E1));
-+#5398=CARTESIAN_POINT('',(1.905715028546E1,6.875E-1,2.958022033652E1));
-+#5399=VERTEX_POINT('',#5397);
-+#5400=VERTEX_POINT('',#5398);
-+#5401=CARTESIAN_POINT('',(2.156798411498E1,6.875E-1,2.708131618759E1));
-+#5402=VERTEX_POINT('',#5401);
-+#5403=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#5404=CARTESIAN_POINT('',(1.35E1,0.E0,3.13125E1));
-+#5405=VERTEX_POINT('',#5403);
-+#5406=VERTEX_POINT('',#5404);
-+#5407=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#5408=VERTEX_POINT('',#5407);
-+#5409=CARTESIAN_POINT('',(1.65E1,0.E0,3.01875E1));
-+#5410=VERTEX_POINT('',#5409);
-+#5411=CARTESIAN_POINT('',(2.006002146101E1,0.E0,3.096770671486E1));
-+#5412=CARTESIAN_POINT('',(1.905715028546E1,0.E0,2.958022033652E1));
-+#5413=VERTEX_POINT('',#5411);
-+#5414=VERTEX_POINT('',#5412);
-+#5415=CARTESIAN_POINT('',(2.156798411498E1,0.E0,2.708131618759E1));
-+#5416=VERTEX_POINT('',#5415);
-+#5417=CARTESIAN_POINT('',(1.96875E1,6.875E-1,9.57E0));
-+#5418=CARTESIAN_POINT('',(1.96875E1,0.E0,9.57E0));
-+#5419=VERTEX_POINT('',#5417);
-+#5420=VERTEX_POINT('',#5418);
-+#5421=CARTESIAN_POINT('',(2.05675E1,6.875E-1,8.69E0));
-+#5422=VERTEX_POINT('',#5421);
-+#5423=CARTESIAN_POINT('',(2.05675E1,0.E0,8.69E0));
-+#5424=VERTEX_POINT('',#5423);
-+#5425=CARTESIAN_POINT('',(2.05675E1,6.875E-1,1.125E1));
-+#5426=CARTESIAN_POINT('',(2.05675E1,0.E0,1.125E1));
-+#5427=VERTEX_POINT('',#5425);
-+#5428=VERTEX_POINT('',#5426);
-+#5429=CARTESIAN_POINT('',(1.96875E1,6.875E-1,1.037E1));
-+#5430=VERTEX_POINT('',#5429);
-+#5431=CARTESIAN_POINT('',(1.96875E1,0.E0,1.037E1));
-+#5432=VERTEX_POINT('',#5431);
-+#5433=CARTESIAN_POINT('',(2.44325E1,6.875E-1,8.69E0));
-+#5434=CARTESIAN_POINT('',(2.44325E1,0.E0,8.69E0));
-+#5435=VERTEX_POINT('',#5433);
-+#5436=VERTEX_POINT('',#5434);
-+#5437=CARTESIAN_POINT('',(2.53125E1,6.875E-1,9.57E0));
-+#5438=VERTEX_POINT('',#5437);
-+#5439=CARTESIAN_POINT('',(2.53125E1,0.E0,9.57E0));
-+#5440=VERTEX_POINT('',#5439);
-+#5441=CARTESIAN_POINT('',(2.53125E1,6.875E-1,1.037E1));
-+#5442=CARTESIAN_POINT('',(2.53125E1,0.E0,1.037E1));
-+#5443=VERTEX_POINT('',#5441);
-+#5444=VERTEX_POINT('',#5442);
-+#5445=CARTESIAN_POINT('',(2.44325E1,6.875E-1,1.125E1));
-+#5446=VERTEX_POINT('',#5445);
-+#5447=CARTESIAN_POINT('',(2.44325E1,0.E0,1.125E1));
-+#5448=VERTEX_POINT('',#5447);
-+#5449=CARTESIAN_POINT('',(2.13075E1,0.E0,8.69E0));
-+#5450=CARTESIAN_POINT('',(2.13075E1,6.875E-1,8.69E0));
-+#5451=VERTEX_POINT('',#5449);
-+#5452=VERTEX_POINT('',#5450);
-+#5453=CARTESIAN_POINT('',(2.21875E1,0.E0,7.81E0));
-+#5454=CARTESIAN_POINT('',(2.21875E1,6.875E-1,7.81E0));
-+#5455=VERTEX_POINT('',#5453);
-+#5456=VERTEX_POINT('',#5454);
-+#5457=CARTESIAN_POINT('',(2.331E1,0.E0,7.81E0));
-+#5458=CARTESIAN_POINT('',(2.331E1,6.875E-1,7.81E0));
-+#5459=VERTEX_POINT('',#5457);
-+#5460=VERTEX_POINT('',#5458);
-+#5461=CARTESIAN_POINT('',(2.419E1,0.E0,8.69E0));
-+#5462=CARTESIAN_POINT('',(2.419E1,6.875E-1,8.69E0));
-+#5463=VERTEX_POINT('',#5461);
-+#5464=VERTEX_POINT('',#5462);
-+#5465=CARTESIAN_POINT('',(2.321497295992E1,0.E0,4.912826677187E0));
-+#5466=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,4.912826677187E0));
-+#5467=VERTEX_POINT('',#5465);
-+#5468=VERTEX_POINT('',#5466);
-+#5469=CARTESIAN_POINT('',(2.307459332230E1,0.E0,4.046865146430E0));
-+#5470=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,4.046865146430E0));
-+#5471=VERTEX_POINT('',#5469);
-+#5472=VERTEX_POINT('',#5470);
-+#5473=CARTESIAN_POINT('',(7.850270400779E-1,0.E0,2.708717332281E1));
-+#5474=CARTESIAN_POINT('',(7.850270400779E-1,6.875E-1,2.708717332281E1));
-+#5475=VERTEX_POINT('',#5473);
-+#5476=VERTEX_POINT('',#5474);
-+#5477=CARTESIAN_POINT('',(9.254066777019E-1,0.E0,2.795313485357E1));
-+#5478=CARTESIAN_POINT('',(9.254066777019E-1,6.875E-1,2.795313485357E1));
-+#5479=VERTEX_POINT('',#5477);
-+#5480=VERTEX_POINT('',#5478);
-+#5481=CARTESIAN_POINT('',(2.307459332230E1,0.E0,2.795313485357E1));
-+#5482=CARTESIAN_POINT('',(2.307459332230E1,6.875E-1,2.795313485357E1));
-+#5483=VERTEX_POINT('',#5481);
-+#5484=VERTEX_POINT('',#5482);
-+#5485=CARTESIAN_POINT('',(2.321497295992E1,0.E0,2.708717332281E1));
-+#5486=CARTESIAN_POINT('',(2.321497295992E1,6.875E-1,2.708717332281E1));
-+#5487=VERTEX_POINT('',#5485);
-+#5488=VERTEX_POINT('',#5486);
-+#5489=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#5490=DIRECTION('',(0.E0,1.E0,0.E0));
-+#5491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#5492=AXIS2_PLACEMENT_3D('',#5489,#5490,#5491);
-+#5493=PLANE('',#5492);
-+#5495=ORIENTED_EDGE('',*,*,#5494,.F.);
-+#5497=ORIENTED_EDGE('',*,*,#5496,.F.);
-+#5499=ORIENTED_EDGE('',*,*,#5498,.T.);
-+#5501=ORIENTED_EDGE('',*,*,#5500,.F.);
-+#5503=ORIENTED_EDGE('',*,*,#5502,.T.);
-+#5505=ORIENTED_EDGE('',*,*,#5504,.F.);
-+#5507=ORIENTED_EDGE('',*,*,#5506,.T.);
-+#5509=ORIENTED_EDGE('',*,*,#5508,.F.);
-+#5511=ORIENTED_EDGE('',*,*,#5510,.T.);
-+#5513=ORIENTED_EDGE('',*,*,#5512,.T.);
-+#5515=ORIENTED_EDGE('',*,*,#5514,.F.);
-+#5517=ORIENTED_EDGE('',*,*,#5516,.T.);
-+#5519=ORIENTED_EDGE('',*,*,#5518,.F.);
-+#5521=ORIENTED_EDGE('',*,*,#5520,.T.);
-+#5523=ORIENTED_EDGE('',*,*,#5522,.F.);
-+#5525=ORIENTED_EDGE('',*,*,#5524,.T.);
-+#5527=ORIENTED_EDGE('',*,*,#5526,.F.);
-+#5529=ORIENTED_EDGE('',*,*,#5528,.T.);
-+#5531=ORIENTED_EDGE('',*,*,#5530,.F.);
-+#5533=ORIENTED_EDGE('',*,*,#5532,.F.);
-+#5535=ORIENTED_EDGE('',*,*,#5534,.T.);
-+#5537=ORIENTED_EDGE('',*,*,#5536,.F.);
-+#5538=EDGE_LOOP('',(#5495,#5497,#5499,#5501,#5503,#5505,#5507,#5509,#5511,#5513,
-+#5515,#5517,#5519,#5521,#5523,#5525,#5527,#5529,#5531,#5533,#5535,#5537));
-+#5539=FACE_OUTER_BOUND('',#5538,.F.);
-+#5541=ORIENTED_EDGE('',*,*,#5540,.T.);
-+#5543=ORIENTED_EDGE('',*,*,#5542,.F.);
-+#5545=ORIENTED_EDGE('',*,*,#5544,.F.);
-+#5547=ORIENTED_EDGE('',*,*,#5546,.F.);
-+#5549=ORIENTED_EDGE('',*,*,#5548,.F.);
-+#5551=ORIENTED_EDGE('',*,*,#5550,.F.);
-+#5552=EDGE_LOOP('',(#5541,#5543,#5545,#5547,#5549,#5551));
-+#5553=FACE_BOUND('',#5552,.F.);
-+#5555=ORIENTED_EDGE('',*,*,#5554,.T.);
-+#5557=ORIENTED_EDGE('',*,*,#5556,.T.);
-+#5558=EDGE_LOOP('',(#5555,#5557));
-+#5559=FACE_BOUND('',#5558,.F.);
-+#5561=ORIENTED_EDGE('',*,*,#5560,.T.);
-+#5563=ORIENTED_EDGE('',*,*,#5562,.T.);
-+#5564=EDGE_LOOP('',(#5561,#5563));
-+#5565=FACE_BOUND('',#5564,.F.);
-+#5567=ORIENTED_EDGE('',*,*,#5566,.T.);
-+#5569=ORIENTED_EDGE('',*,*,#5568,.T.);
-+#5570=EDGE_LOOP('',(#5567,#5569));
-+#5571=FACE_BOUND('',#5570,.F.);
-+#5573=ORIENTED_EDGE('',*,*,#5572,.T.);
-+#5575=ORIENTED_EDGE('',*,*,#5574,.T.);
-+#5576=EDGE_LOOP('',(#5573,#5575));
-+#5577=FACE_BOUND('',#5576,.F.);
-+#5579=ORIENTED_EDGE('',*,*,#5578,.T.);
-+#5581=ORIENTED_EDGE('',*,*,#5580,.T.);
-+#5582=EDGE_LOOP('',(#5579,#5581));
-+#5583=FACE_BOUND('',#5582,.F.);
-+#5585=ORIENTED_EDGE('',*,*,#5584,.T.);
-+#5587=ORIENTED_EDGE('',*,*,#5586,.T.);
-+#5588=EDGE_LOOP('',(#5585,#5587));
-+#5589=FACE_BOUND('',#5588,.F.);
-+#5591=ORIENTED_EDGE('',*,*,#5590,.T.);
-+#5593=ORIENTED_EDGE('',*,*,#5592,.T.);
-+#5594=EDGE_LOOP('',(#5591,#5593));
-+#5595=FACE_BOUND('',#5594,.F.);
-+#5597=ORIENTED_EDGE('',*,*,#5596,.T.);
-+#5599=ORIENTED_EDGE('',*,*,#5598,.T.);
-+#5600=EDGE_LOOP('',(#5597,#5599));
-+#5601=FACE_BOUND('',#5600,.F.);
-+#5603=ORIENTED_EDGE('',*,*,#5602,.T.);
-+#5605=ORIENTED_EDGE('',*,*,#5604,.T.);
-+#5606=EDGE_LOOP('',(#5603,#5605));
-+#5607=FACE_BOUND('',#5606,.F.);
-+#5609=ORIENTED_EDGE('',*,*,#5608,.T.);
-+#5611=ORIENTED_EDGE('',*,*,#5610,.T.);
-+#5612=EDGE_LOOP('',(#5609,#5611));
-+#5613=FACE_BOUND('',#5612,.F.);
-+#5615=ORIENTED_EDGE('',*,*,#5614,.T.);
-+#5617=ORIENTED_EDGE('',*,*,#5616,.T.);
-+#5618=EDGE_LOOP('',(#5615,#5617));
-+#5619=FACE_BOUND('',#5618,.F.);
-+#5621=ORIENTED_EDGE('',*,*,#5620,.T.);
-+#5623=ORIENTED_EDGE('',*,*,#5622,.T.);
-+#5624=EDGE_LOOP('',(#5621,#5623));
-+#5625=FACE_BOUND('',#5624,.F.);
-+#5627=ORIENTED_EDGE('',*,*,#5626,.T.);
-+#5629=ORIENTED_EDGE('',*,*,#5628,.T.);
-+#5630=EDGE_LOOP('',(#5627,#5629));
-+#5631=FACE_BOUND('',#5630,.F.);
-+#5633=ORIENTED_EDGE('',*,*,#5632,.T.);
-+#5635=ORIENTED_EDGE('',*,*,#5634,.T.);
-+#5636=EDGE_LOOP('',(#5633,#5635));
-+#5637=FACE_BOUND('',#5636,.F.);
-+#5639=ORIENTED_EDGE('',*,*,#5638,.T.);
-+#5641=ORIENTED_EDGE('',*,*,#5640,.F.);
-+#5643=ORIENTED_EDGE('',*,*,#5642,.F.);
-+#5645=ORIENTED_EDGE('',*,*,#5644,.F.);
-+#5647=ORIENTED_EDGE('',*,*,#5646,.F.);
-+#5649=ORIENTED_EDGE('',*,*,#5648,.F.);
-+#5651=ORIENTED_EDGE('',*,*,#5650,.F.);
-+#5653=ORIENTED_EDGE('',*,*,#5652,.F.);
-+#5654=EDGE_LOOP('',(#5639,#5641,#5643,#5645,#5647,#5649,#5651,#5653));
-+#5655=FACE_BOUND('',#5654,.F.);
-+#5657=ORIENTED_EDGE('',*,*,#5656,.F.);
-+#5659=ORIENTED_EDGE('',*,*,#5658,.F.);
-+#5661=ORIENTED_EDGE('',*,*,#5660,.T.);
-+#5663=ORIENTED_EDGE('',*,*,#5662,.F.);
-+#5665=ORIENTED_EDGE('',*,*,#5664,.F.);
-+#5667=ORIENTED_EDGE('',*,*,#5666,.F.);
-+#5669=ORIENTED_EDGE('',*,*,#5668,.T.);
-+#5671=ORIENTED_EDGE('',*,*,#5670,.F.);
-+#5673=ORIENTED_EDGE('',*,*,#5672,.T.);
-+#5675=ORIENTED_EDGE('',*,*,#5674,.F.);
-+#5677=ORIENTED_EDGE('',*,*,#5676,.T.);
-+#5679=ORIENTED_EDGE('',*,*,#5678,.F.);
-+#5681=ORIENTED_EDGE('',*,*,#5680,.F.);
-+#5683=ORIENTED_EDGE('',*,*,#5682,.T.);
-+#5685=ORIENTED_EDGE('',*,*,#5684,.F.);
-+#5687=ORIENTED_EDGE('',*,*,#5686,.F.);
-+#5688=EDGE_LOOP('',(#5657,#5659,#5661,#5663,#5665,#5667,#5669,#5671,#5673,#5675,
-+#5677,#5679,#5681,#5683,#5685,#5687));
-+#5689=FACE_BOUND('',#5688,.F.);
-+#5691=ORIENTED_EDGE('',*,*,#5690,.T.);
-+#5693=ORIENTED_EDGE('',*,*,#5692,.T.);
-+#5694=EDGE_LOOP('',(#5691,#5693));
-+#5695=FACE_BOUND('',#5694,.F.);
-+#5697=ORIENTED_EDGE('',*,*,#5696,.T.);
-+#5699=ORIENTED_EDGE('',*,*,#5698,.T.);
-+#5700=EDGE_LOOP('',(#5697,#5699));
-+#5701=FACE_BOUND('',#5700,.F.);
-+#5703=ORIENTED_EDGE('',*,*,#5702,.T.);
-+#5705=ORIENTED_EDGE('',*,*,#5704,.T.);
-+#5706=EDGE_LOOP('',(#5703,#5705));
-+#5707=FACE_BOUND('',#5706,.F.);
-+#5709=ORIENTED_EDGE('',*,*,#5708,.T.);
-+#5711=ORIENTED_EDGE('',*,*,#5710,.T.);
-+#5712=EDGE_LOOP('',(#5709,#5711));
-+#5713=FACE_BOUND('',#5712,.F.);
-+#5715=ORIENTED_EDGE('',*,*,#5714,.T.);
-+#5717=ORIENTED_EDGE('',*,*,#5716,.T.);
-+#5718=EDGE_LOOP('',(#5715,#5717));
-+#5719=FACE_BOUND('',#5718,.F.);
-+#5721=ORIENTED_EDGE('',*,*,#5720,.T.);
-+#5723=ORIENTED_EDGE('',*,*,#5722,.T.);
-+#5724=EDGE_LOOP('',(#5721,#5723));
-+#5725=FACE_BOUND('',#5724,.F.);
-+#5727=ORIENTED_EDGE('',*,*,#5726,.T.);
-+#5729=ORIENTED_EDGE('',*,*,#5728,.T.);
-+#5731=ORIENTED_EDGE('',*,*,#5730,.T.);
-+#5733=ORIENTED_EDGE('',*,*,#5732,.T.);
-+#5734=EDGE_LOOP('',(#5727,#5729,#5731,#5733));
-+#5735=FACE_BOUND('',#5734,.F.);
-+#5737=ORIENTED_EDGE('',*,*,#5736,.T.);
-+#5739=ORIENTED_EDGE('',*,*,#5738,.F.);
-+#5741=ORIENTED_EDGE('',*,*,#5740,.T.);
-+#5743=ORIENTED_EDGE('',*,*,#5742,.T.);
-+#5745=ORIENTED_EDGE('',*,*,#5744,.F.);
-+#5746=EDGE_LOOP('',(#5737,#5739,#5741,#5743,#5745));
-+#5747=FACE_BOUND('',#5746,.F.);
-+#5749=ORIENTED_EDGE('',*,*,#5748,.F.);
-+#5751=ORIENTED_EDGE('',*,*,#5750,.T.);
-+#5753=ORIENTED_EDGE('',*,*,#5752,.T.);
-+#5755=ORIENTED_EDGE('',*,*,#5754,.T.);
-+#5757=ORIENTED_EDGE('',*,*,#5756,.F.);
-+#5759=ORIENTED_EDGE('',*,*,#5758,.T.);
-+#5761=ORIENTED_EDGE('',*,*,#5760,.F.);
-+#5763=ORIENTED_EDGE('',*,*,#5762,.T.);
-+#5765=ORIENTED_EDGE('',*,*,#5764,.F.);
-+#5767=ORIENTED_EDGE('',*,*,#5766,.T.);
-+#5769=ORIENTED_EDGE('',*,*,#5768,.F.);
-+#5771=ORIENTED_EDGE('',*,*,#5770,.T.);
-+#5773=ORIENTED_EDGE('',*,*,#5772,.F.);
-+#5775=ORIENTED_EDGE('',*,*,#5774,.T.);
-+#5776=EDGE_LOOP('',(#5749,#5751,#5753,#5755,#5757,#5759,#5761,#5763,#5765,#5767,
-+#5769,#5771,#5773,#5775));
-+#5777=FACE_BOUND('',#5776,.F.);
-+#5779=ORIENTED_EDGE('',*,*,#5778,.T.);
-+#5781=ORIENTED_EDGE('',*,*,#5780,.T.);
-+#5783=ORIENTED_EDGE('',*,*,#5782,.T.);
-+#5785=ORIENTED_EDGE('',*,*,#5784,.T.);
-+#5786=EDGE_LOOP('',(#5779,#5781,#5783,#5785));
-+#5787=FACE_BOUND('',#5786,.F.);
-+#5789=ORIENTED_EDGE('',*,*,#5788,.T.);
-+#5791=ORIENTED_EDGE('',*,*,#5790,.T.);
-+#5793=ORIENTED_EDGE('',*,*,#5792,.T.);
-+#5795=ORIENTED_EDGE('',*,*,#5794,.T.);
-+#5796=EDGE_LOOP('',(#5789,#5791,#5793,#5795));
-+#5797=FACE_BOUND('',#5796,.F.);
-+#5799=ORIENTED_EDGE('',*,*,#5798,.T.);
-+#5801=ORIENTED_EDGE('',*,*,#5800,.T.);
-+#5803=ORIENTED_EDGE('',*,*,#5802,.T.);
-+#5805=ORIENTED_EDGE('',*,*,#5804,.T.);
-+#5806=EDGE_LOOP('',(#5799,#5801,#5803,#5805));
-+#5807=FACE_BOUND('',#5806,.F.);
-+#5809=ORIENTED_EDGE('',*,*,#5808,.T.);
-+#5811=ORIENTED_EDGE('',*,*,#5810,.T.);
-+#5813=ORIENTED_EDGE('',*,*,#5812,.T.);
-+#5815=ORIENTED_EDGE('',*,*,#5814,.T.);
-+#5816=EDGE_LOOP('',(#5809,#5811,#5813,#5815));
-+#5817=FACE_BOUND('',#5816,.F.);
-+#5819=ORIENTED_EDGE('',*,*,#5818,.F.);
-+#5821=ORIENTED_EDGE('',*,*,#5820,.F.);
-+#5823=ORIENTED_EDGE('',*,*,#5822,.F.);
-+#5825=ORIENTED_EDGE('',*,*,#5824,.F.);
-+#5826=EDGE_LOOP('',(#5819,#5821,#5823,#5825));
-+#5827=FACE_BOUND('',#5826,.F.);
-+#5829=ORIENTED_EDGE('',*,*,#5828,.F.);
-+#5831=ORIENTED_EDGE('',*,*,#5830,.F.);
-+#5833=ORIENTED_EDGE('',*,*,#5832,.F.);
-+#5835=ORIENTED_EDGE('',*,*,#5834,.F.);
-+#5836=EDGE_LOOP('',(#5829,#5831,#5833,#5835));
-+#5837=FACE_BOUND('',#5836,.F.);
-+#5839=ORIENTED_EDGE('',*,*,#5838,.F.);
-+#5841=ORIENTED_EDGE('',*,*,#5840,.F.);
-+#5843=ORIENTED_EDGE('',*,*,#5842,.F.);
-+#5845=ORIENTED_EDGE('',*,*,#5844,.F.);
-+#5846=EDGE_LOOP('',(#5839,#5841,#5843,#5845));
-+#5847=FACE_BOUND('',#5846,.F.);
-+#5849=ORIENTED_EDGE('',*,*,#5848,.F.);
-+#5851=ORIENTED_EDGE('',*,*,#5850,.F.);
-+#5853=ORIENTED_EDGE('',*,*,#5852,.F.);
-+#5855=ORIENTED_EDGE('',*,*,#5854,.F.);
-+#5856=EDGE_LOOP('',(#5849,#5851,#5853,#5855));
-+#5857=FACE_BOUND('',#5856,.F.);
-+#5859=ORIENTED_EDGE('',*,*,#5858,.F.);
-+#5861=ORIENTED_EDGE('',*,*,#5860,.F.);
-+#5863=ORIENTED_EDGE('',*,*,#5862,.F.);
-+#5865=ORIENTED_EDGE('',*,*,#5864,.F.);
-+#5866=EDGE_LOOP('',(#5859,#5861,#5863,#5865));
-+#5867=FACE_BOUND('',#5866,.F.);
-+#5869=ORIENTED_EDGE('',*,*,#5868,.F.);
-+#5871=ORIENTED_EDGE('',*,*,#5870,.F.);
-+#5873=ORIENTED_EDGE('',*,*,#5872,.F.);
-+#5875=ORIENTED_EDGE('',*,*,#5874,.F.);
-+#5876=EDGE_LOOP('',(#5869,#5871,#5873,#5875));
-+#5877=FACE_BOUND('',#5876,.F.);
-+#5879=ORIENTED_EDGE('',*,*,#5878,.T.);
-+#5881=ORIENTED_EDGE('',*,*,#5880,.T.);
-+#5883=ORIENTED_EDGE('',*,*,#5882,.T.);
-+#5885=ORIENTED_EDGE('',*,*,#5884,.T.);
-+#5886=EDGE_LOOP('',(#5879,#5881,#5883,#5885));
-+#5887=FACE_BOUND('',#5886,.F.);
-+#5889=ORIENTED_EDGE('',*,*,#5888,.F.);
-+#5891=ORIENTED_EDGE('',*,*,#5890,.F.);
-+#5893=ORIENTED_EDGE('',*,*,#5892,.F.);
-+#5895=ORIENTED_EDGE('',*,*,#5894,.F.);
-+#5897=ORIENTED_EDGE('',*,*,#5896,.F.);
-+#5899=ORIENTED_EDGE('',*,*,#5898,.F.);
-+#5901=ORIENTED_EDGE('',*,*,#5900,.F.);
-+#5903=ORIENTED_EDGE('',*,*,#5902,.F.);
-+#5905=ORIENTED_EDGE('',*,*,#5904,.F.);
-+#5907=ORIENTED_EDGE('',*,*,#5906,.F.);
-+#5909=ORIENTED_EDGE('',*,*,#5908,.F.);
-+#5911=ORIENTED_EDGE('',*,*,#5910,.F.);
-+#5913=ORIENTED_EDGE('',*,*,#5912,.F.);
-+#5915=ORIENTED_EDGE('',*,*,#5914,.F.);
-+#5916=EDGE_LOOP('',(#5889,#5891,#5893,#5895,#5897,#5899,#5901,#5903,#5905,#5907,
-+#5909,#5911,#5913,#5915));
-+#5917=FACE_BOUND('',#5916,.F.);
-+#5919=ORIENTED_EDGE('',*,*,#5918,.F.);
-+#5921=ORIENTED_EDGE('',*,*,#5920,.F.);
-+#5923=ORIENTED_EDGE('',*,*,#5922,.F.);
-+#5925=ORIENTED_EDGE('',*,*,#5924,.T.);
-+#5927=ORIENTED_EDGE('',*,*,#5926,.F.);
-+#5928=EDGE_LOOP('',(#5919,#5921,#5923,#5925,#5927));
-+#5929=FACE_BOUND('',#5928,.F.);
-+#5931=ORIENTED_EDGE('',*,*,#5930,.F.);
-+#5933=ORIENTED_EDGE('',*,*,#5932,.F.);
-+#5935=ORIENTED_EDGE('',*,*,#5934,.F.);
-+#5937=ORIENTED_EDGE('',*,*,#5936,.T.);
-+#5939=ORIENTED_EDGE('',*,*,#5938,.F.);
-+#5940=EDGE_LOOP('',(#5931,#5933,#5935,#5937,#5939));
-+#5941=FACE_BOUND('',#5940,.F.);
-+#5943=ORIENTED_EDGE('',*,*,#5942,.T.);
-+#5945=ORIENTED_EDGE('',*,*,#5944,.F.);
-+#5947=ORIENTED_EDGE('',*,*,#5946,.T.);
-+#5949=ORIENTED_EDGE('',*,*,#5948,.T.);
-+#5951=ORIENTED_EDGE('',*,*,#5950,.F.);
-+#5952=EDGE_LOOP('',(#5943,#5945,#5947,#5949,#5951));
-+#5953=FACE_BOUND('',#5952,.F.);
-+#5954=ADVANCED_FACE('',(#5539,#5553,#5559,#5565,#5571,#5577,#5583,#5589,#5595,
-+#5601,#5607,#5613,#5619,#5625,#5631,#5637,#5655,#5689,#5695,#5701,#5707,#5713,
-+#5719,#5725,#5735,#5747,#5777,#5787,#5797,#5807,#5817,#5827,#5837,#5847,#5857,
-+#5867,#5877,#5887,#5917,#5929,#5941,#5953),#5493,.F.);
-+#5955=CARTESIAN_POINT('',(0.E0,0.E0,8.E0));
-+#5956=DIRECTION('',(0.E0,0.E0,1.E0));
-+#5957=DIRECTION('',(1.E0,0.E0,0.E0));
-+#5958=AXIS2_PLACEMENT_3D('',#5955,#5956,#5957);
-+#5959=PLANE('',#5958);
-+#5960=ORIENTED_EDGE('',*,*,#5540,.F.);
-+#5962=ORIENTED_EDGE('',*,*,#5961,.T.);
-+#5964=ORIENTED_EDGE('',*,*,#5963,.F.);
-+#5966=ORIENTED_EDGE('',*,*,#5965,.F.);
-+#5967=ORIENTED_EDGE('',*,*,#5494,.T.);
-+#5969=ORIENTED_EDGE('',*,*,#5968,.F.);
-+#5971=ORIENTED_EDGE('',*,*,#5970,.F.);
-+#5973=ORIENTED_EDGE('',*,*,#5972,.T.);
-+#5975=ORIENTED_EDGE('',*,*,#5974,.F.);
-+#5977=ORIENTED_EDGE('',*,*,#5976,.F.);
-+#5979=ORIENTED_EDGE('',*,*,#5978,.F.);
-+#5981=ORIENTED_EDGE('',*,*,#5980,.T.);
-+#5983=ORIENTED_EDGE('',*,*,#5982,.T.);
-+#5985=ORIENTED_EDGE('',*,*,#5984,.F.);
-+#5986=ORIENTED_EDGE('',*,*,#5510,.F.);
-+#5988=ORIENTED_EDGE('',*,*,#5987,.F.);
-+#5990=ORIENTED_EDGE('',*,*,#5989,.F.);
-+#5992=ORIENTED_EDGE('',*,*,#5991,.T.);
-+#5993=EDGE_LOOP('',(#5960,#5962,#5964,#5966,#5967,#5969,#5971,#5973,#5975,#5977,
-+#5979,#5981,#5983,#5985,#5986,#5988,#5990,#5992));
-+#5994=FACE_OUTER_BOUND('',#5993,.F.);
-+#5996=ORIENTED_EDGE('',*,*,#5995,.T.);
-+#5998=ORIENTED_EDGE('',*,*,#5997,.T.);
-+#5999=EDGE_LOOP('',(#5996,#5998));
-+#6000=FACE_BOUND('',#5999,.F.);
-+#6002=ORIENTED_EDGE('',*,*,#6001,.T.);
-+#6004=ORIENTED_EDGE('',*,*,#6003,.T.);
-+#6005=EDGE_LOOP('',(#6002,#6004));
-+#6006=FACE_BOUND('',#6005,.F.);
-+#6008=ORIENTED_EDGE('',*,*,#6007,.T.);
-+#6010=ORIENTED_EDGE('',*,*,#6009,.T.);
-+#6011=EDGE_LOOP('',(#6008,#6010));
-+#6012=FACE_BOUND('',#6011,.F.);
-+#6014=ORIENTED_EDGE('',*,*,#6013,.T.);
-+#6016=ORIENTED_EDGE('',*,*,#6015,.T.);
-+#6017=EDGE_LOOP('',(#6014,#6016));
-+#6018=FACE_BOUND('',#6017,.F.);
-+#6020=ORIENTED_EDGE('',*,*,#6019,.F.);
-+#6022=ORIENTED_EDGE('',*,*,#6021,.F.);
-+#6023=EDGE_LOOP('',(#6020,#6022));
-+#6024=FACE_BOUND('',#6023,.F.);
-+#6026=ORIENTED_EDGE('',*,*,#6025,.F.);
-+#6028=ORIENTED_EDGE('',*,*,#6027,.F.);
-+#6029=EDGE_LOOP('',(#6026,#6028));
-+#6030=FACE_BOUND('',#6029,.F.);
-+#6032=ORIENTED_EDGE('',*,*,#6031,.F.);
-+#6034=ORIENTED_EDGE('',*,*,#6033,.F.);
-+#6035=EDGE_LOOP('',(#6032,#6034));
-+#6036=FACE_BOUND('',#6035,.F.);
-+#6038=ORIENTED_EDGE('',*,*,#6037,.F.);
-+#6040=ORIENTED_EDGE('',*,*,#6039,.F.);
-+#6041=EDGE_LOOP('',(#6038,#6040));
-+#6042=FACE_BOUND('',#6041,.F.);
-+#6044=ORIENTED_EDGE('',*,*,#6043,.T.);
-+#6046=ORIENTED_EDGE('',*,*,#6045,.F.);
-+#6048=ORIENTED_EDGE('',*,*,#6047,.T.);
-+#6050=ORIENTED_EDGE('',*,*,#6049,.F.);
-+#6052=ORIENTED_EDGE('',*,*,#6051,.T.);
-+#6054=ORIENTED_EDGE('',*,*,#6053,.F.);
-+#6056=ORIENTED_EDGE('',*,*,#6055,.T.);
-+#6058=ORIENTED_EDGE('',*,*,#6057,.F.);
-+#6059=EDGE_LOOP('',(#6044,#6046,#6048,#6050,#6052,#6054,#6056,#6058));
-+#6060=FACE_BOUND('',#6059,.F.);
-+#6062=ORIENTED_EDGE('',*,*,#6061,.F.);
-+#6064=ORIENTED_EDGE('',*,*,#6063,.F.);
-+#6066=ORIENTED_EDGE('',*,*,#6065,.F.);
-+#6068=ORIENTED_EDGE('',*,*,#6067,.F.);
-+#6070=ORIENTED_EDGE('',*,*,#6069,.F.);
-+#6072=ORIENTED_EDGE('',*,*,#6071,.F.);
-+#6074=ORIENTED_EDGE('',*,*,#6073,.F.);
-+#6076=ORIENTED_EDGE('',*,*,#6075,.F.);
-+#6077=EDGE_LOOP('',(#6062,#6064,#6066,#6068,#6070,#6072,#6074,#6076));
-+#6078=FACE_BOUND('',#6077,.F.);
-+#6079=ADVANCED_FACE('',(#5994,#6000,#6006,#6012,#6018,#6024,#6030,#6036,#6042,
-+#6060,#6078),#5959,.F.);
-+#6080=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#6081=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6082=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6083=AXIS2_PLACEMENT_3D('',#6080,#6081,#6082);
-+#6084=CYLINDRICAL_SURFACE('',#6083,9.5E-2);
-+#6085=ORIENTED_EDGE('',*,*,#5995,.F.);
-+#6087=ORIENTED_EDGE('',*,*,#6086,.T.);
-+#6089=ORIENTED_EDGE('',*,*,#6088,.T.);
-+#6091=ORIENTED_EDGE('',*,*,#6090,.F.);
-+#6092=EDGE_LOOP('',(#6085,#6087,#6089,#6091));
-+#6093=FACE_OUTER_BOUND('',#6092,.F.);
-+#6094=ADVANCED_FACE('',(#6093),#6084,.F.);
-+#6095=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.E0));
-+#6096=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6097=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6098=AXIS2_PLACEMENT_3D('',#6095,#6096,#6097);
-+#6099=CYLINDRICAL_SURFACE('',#6098,9.5E-2);
-+#6100=ORIENTED_EDGE('',*,*,#5997,.F.);
-+#6101=ORIENTED_EDGE('',*,*,#6090,.T.);
-+#6103=ORIENTED_EDGE('',*,*,#6102,.T.);
-+#6104=ORIENTED_EDGE('',*,*,#6086,.F.);
-+#6105=EDGE_LOOP('',(#6100,#6101,#6103,#6104));
-+#6106=FACE_OUTER_BOUND('',#6105,.F.);
-+#6107=ADVANCED_FACE('',(#6106),#6099,.F.);
-+#6108=CARTESIAN_POINT('',(1.975E1,1.09375E1,8.25E0));
-+#6109=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6110=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6111=AXIS2_PLACEMENT_3D('',#6108,#6109,#6110);
-+#6112=PLANE('',#6111);
-+#6113=ORIENTED_EDGE('',*,*,#6088,.F.);
-+#6114=ORIENTED_EDGE('',*,*,#6102,.F.);
-+#6115=EDGE_LOOP('',(#6113,#6114));
-+#6116=FACE_OUTER_BOUND('',#6115,.F.);
-+#6117=ADVANCED_FACE('',(#6116),#6112,.T.);
-+#6118=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#6119=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6120=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6121=AXIS2_PLACEMENT_3D('',#6118,#6119,#6120);
-+#6122=CYLINDRICAL_SURFACE('',#6121,1.625E-1);
-+#6123=ORIENTED_EDGE('',*,*,#6001,.F.);
-+#6125=ORIENTED_EDGE('',*,*,#6124,.T.);
-+#6127=ORIENTED_EDGE('',*,*,#6126,.T.);
-+#6129=ORIENTED_EDGE('',*,*,#6128,.F.);
-+#6130=EDGE_LOOP('',(#6123,#6125,#6127,#6129));
-+#6131=FACE_OUTER_BOUND('',#6130,.F.);
-+#6132=ADVANCED_FACE('',(#6131),#6122,.F.);
-+#6133=CARTESIAN_POINT('',(1.975E1,1.05E1,8.E0));
-+#6134=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6135=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6136=AXIS2_PLACEMENT_3D('',#6133,#6134,#6135);
-+#6137=CYLINDRICAL_SURFACE('',#6136,1.625E-1);
-+#6138=ORIENTED_EDGE('',*,*,#6003,.F.);
-+#6139=ORIENTED_EDGE('',*,*,#6128,.T.);
-+#6141=ORIENTED_EDGE('',*,*,#6140,.T.);
-+#6142=ORIENTED_EDGE('',*,*,#6124,.F.);
-+#6143=EDGE_LOOP('',(#6138,#6139,#6141,#6142));
-+#6144=FACE_OUTER_BOUND('',#6143,.F.);
-+#6145=ADVANCED_FACE('',(#6144),#6137,.F.);
-+#6146=CARTESIAN_POINT('',(2.4E1,0.E0,1.E1));
-+#6147=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6148=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6149=AXIS2_PLACEMENT_3D('',#6146,#6147,#6148);
-+#6150=PLANE('',#6149);
-+#6152=ORIENTED_EDGE('',*,*,#6151,.T.);
-+#6154=ORIENTED_EDGE('',*,*,#6153,.T.);
-+#6156=ORIENTED_EDGE('',*,*,#6155,.F.);
-+#6158=ORIENTED_EDGE('',*,*,#6157,.F.);
-+#6160=ORIENTED_EDGE('',*,*,#6159,.T.);
-+#6162=ORIENTED_EDGE('',*,*,#6161,.T.);
-+#6164=ORIENTED_EDGE('',*,*,#6163,.T.);
-+#6166=ORIENTED_EDGE('',*,*,#6165,.T.);
-+#6168=ORIENTED_EDGE('',*,*,#6167,.F.);
-+#6169=EDGE_LOOP('',(#6152,#6154,#6156,#6158,#6160,#6162,#6164,#6166,#6168));
-+#6170=FACE_OUTER_BOUND('',#6169,.F.);
-+#6171=ORIENTED_EDGE('',*,*,#6126,.F.);
-+#6172=ORIENTED_EDGE('',*,*,#6140,.F.);
-+#6173=EDGE_LOOP('',(#6171,#6172));
-+#6174=FACE_BOUND('',#6173,.F.);
-+#6176=ORIENTED_EDGE('',*,*,#6175,.F.);
-+#6178=ORIENTED_EDGE('',*,*,#6177,.F.);
-+#6180=ORIENTED_EDGE('',*,*,#6179,.F.);
-+#6182=ORIENTED_EDGE('',*,*,#6181,.F.);
-+#6184=ORIENTED_EDGE('',*,*,#6183,.F.);
-+#6186=ORIENTED_EDGE('',*,*,#6185,.F.);
-+#6188=ORIENTED_EDGE('',*,*,#6187,.F.);
-+#6190=ORIENTED_EDGE('',*,*,#6189,.F.);
-+#6192=ORIENTED_EDGE('',*,*,#6191,.F.);
-+#6194=ORIENTED_EDGE('',*,*,#6193,.F.);
-+#6196=ORIENTED_EDGE('',*,*,#6195,.F.);
-+#6198=ORIENTED_EDGE('',*,*,#6197,.F.);
-+#6199=EDGE_LOOP('',(#6176,#6178,#6180,#6182,#6184,#6186,#6188,#6190,#6192,#6194,
-+#6196,#6198));
-+#6200=FACE_BOUND('',#6199,.F.);
-+#6201=ADVANCED_FACE('',(#6170,#6174,#6200),#6150,.F.);
-+#6202=CARTESIAN_POINT('',(2.375E1,1.5E0,1.2E1));
-+#6203=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6204=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6205=AXIS2_PLACEMENT_3D('',#6202,#6203,#6204);
-+#6206=PLANE('',#6205);
-+#6208=ORIENTED_EDGE('',*,*,#6207,.F.);
-+#6210=ORIENTED_EDGE('',*,*,#6209,.F.);
-+#6211=ORIENTED_EDGE('',*,*,#6151,.F.);
-+#6212=EDGE_LOOP('',(#6208,#6210,#6211));
-+#6213=FACE_OUTER_BOUND('',#6212,.F.);
-+#6214=ADVANCED_FACE('',(#6213),#6206,.T.);
-+#6215=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
-+#6216=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6217=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6218=AXIS2_PLACEMENT_3D('',#6215,#6216,#6217);
-+#6219=PLANE('',#6218);
-+#6220=ORIENTED_EDGE('',*,*,#5963,.T.);
-+#6222=ORIENTED_EDGE('',*,*,#6221,.F.);
-+#6224=ORIENTED_EDGE('',*,*,#6223,.F.);
-+#6226=ORIENTED_EDGE('',*,*,#6225,.T.);
-+#6228=ORIENTED_EDGE('',*,*,#6227,.F.);
-+#6230=ORIENTED_EDGE('',*,*,#6229,.F.);
-+#6231=ORIENTED_EDGE('',*,*,#5989,.T.);
-+#6233=ORIENTED_EDGE('',*,*,#6232,.F.);
-+#6235=ORIENTED_EDGE('',*,*,#6234,.F.);
-+#6237=ORIENTED_EDGE('',*,*,#6236,.T.);
-+#6239=ORIENTED_EDGE('',*,*,#6238,.F.);
-+#6241=ORIENTED_EDGE('',*,*,#6240,.T.);
-+#6243=ORIENTED_EDGE('',*,*,#6242,.F.);
-+#6245=ORIENTED_EDGE('',*,*,#6244,.F.);
-+#6246=EDGE_LOOP('',(#6220,#6222,#6224,#6226,#6228,#6230,#6231,#6233,#6235,#6237,
-+#6239,#6241,#6243,#6245));
-+#6247=FACE_OUTER_BOUND('',#6246,.F.);
-+#6249=ORIENTED_EDGE('',*,*,#6248,.F.);
-+#6251=ORIENTED_EDGE('',*,*,#6250,.F.);
-+#6252=EDGE_LOOP('',(#6249,#6251));
-+#6253=FACE_BOUND('',#6252,.F.);
-+#6255=ORIENTED_EDGE('',*,*,#6254,.F.);
-+#6257=ORIENTED_EDGE('',*,*,#6256,.F.);
-+#6258=EDGE_LOOP('',(#6255,#6257));
-+#6259=FACE_BOUND('',#6258,.F.);
-+#6261=ORIENTED_EDGE('',*,*,#6260,.F.);
-+#6263=ORIENTED_EDGE('',*,*,#6262,.F.);
-+#6264=EDGE_LOOP('',(#6261,#6263));
-+#6265=FACE_BOUND('',#6264,.F.);
-+#6267=ORIENTED_EDGE('',*,*,#6266,.F.);
-+#6269=ORIENTED_EDGE('',*,*,#6268,.F.);
-+#6270=EDGE_LOOP('',(#6267,#6269));
-+#6271=FACE_BOUND('',#6270,.F.);
-+#6273=ORIENTED_EDGE('',*,*,#6272,.F.);
-+#6275=ORIENTED_EDGE('',*,*,#6274,.F.);
-+#6276=EDGE_LOOP('',(#6273,#6275));
-+#6277=FACE_BOUND('',#6276,.F.);
-+#6278=ADVANCED_FACE('',(#6247,#6253,#6259,#6265,#6271,#6277),#6219,.T.);
-+#6279=CARTESIAN_POINT('',(0.E0,1.5E0,0.E0));
-+#6280=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6281=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6282=AXIS2_PLACEMENT_3D('',#6279,#6280,#6281);
-+#6283=PLANE('',#6282);
-+#6284=ORIENTED_EDGE('',*,*,#6207,.T.);
-+#6285=ORIENTED_EDGE('',*,*,#6167,.T.);
-+#6287=ORIENTED_EDGE('',*,*,#6286,.T.);
-+#6289=ORIENTED_EDGE('',*,*,#6288,.F.);
-+#6291=ORIENTED_EDGE('',*,*,#6290,.T.);
-+#6293=ORIENTED_EDGE('',*,*,#6292,.F.);
-+#6295=ORIENTED_EDGE('',*,*,#6294,.F.);
-+#6297=ORIENTED_EDGE('',*,*,#6296,.T.);
-+#6299=ORIENTED_EDGE('',*,*,#6298,.F.);
-+#6301=ORIENTED_EDGE('',*,*,#6300,.T.);
-+#6303=ORIENTED_EDGE('',*,*,#6302,.F.);
-+#6305=ORIENTED_EDGE('',*,*,#6304,.F.);
-+#6307=ORIENTED_EDGE('',*,*,#6306,.F.);
-+#6309=ORIENTED_EDGE('',*,*,#6308,.T.);
-+#6311=ORIENTED_EDGE('',*,*,#6310,.F.);
-+#6313=ORIENTED_EDGE('',*,*,#6312,.T.);
-+#6315=ORIENTED_EDGE('',*,*,#6314,.F.);
-+#6317=ORIENTED_EDGE('',*,*,#6316,.T.);
-+#6319=ORIENTED_EDGE('',*,*,#6318,.T.);
-+#6321=ORIENTED_EDGE('',*,*,#6320,.T.);
-+#6323=ORIENTED_EDGE('',*,*,#6322,.F.);
-+#6324=ORIENTED_EDGE('',*,*,#5976,.T.);
-+#6326=ORIENTED_EDGE('',*,*,#6325,.T.);
-+#6327=ORIENTED_EDGE('',*,*,#6157,.T.);
-+#6329=ORIENTED_EDGE('',*,*,#6328,.F.);
-+#6331=ORIENTED_EDGE('',*,*,#6330,.F.);
-+#6332=EDGE_LOOP('',(#6284,#6285,#6287,#6289,#6291,#6293,#6295,#6297,#6299,#6301,
-+#6303,#6305,#6307,#6309,#6311,#6313,#6315,#6317,#6319,#6321,#6323,#6324,#6326,
-+#6327,#6329,#6331));
-+#6333=FACE_OUTER_BOUND('',#6332,.F.);
-+#6335=ORIENTED_EDGE('',*,*,#6334,.F.);
-+#6337=ORIENTED_EDGE('',*,*,#6336,.F.);
-+#6338=EDGE_LOOP('',(#6335,#6337));
-+#6339=FACE_BOUND('',#6338,.F.);
-+#6341=ORIENTED_EDGE('',*,*,#6340,.F.);
-+#6343=ORIENTED_EDGE('',*,*,#6342,.F.);
-+#6344=EDGE_LOOP('',(#6341,#6343));
-+#6345=FACE_BOUND('',#6344,.F.);
-+#6347=ORIENTED_EDGE('',*,*,#6346,.T.);
-+#6349=ORIENTED_EDGE('',*,*,#6348,.T.);
-+#6350=EDGE_LOOP('',(#6347,#6349));
-+#6351=FACE_BOUND('',#6350,.F.);
-+#6353=ORIENTED_EDGE('',*,*,#6352,.T.);
-+#6355=ORIENTED_EDGE('',*,*,#6354,.T.);
-+#6356=EDGE_LOOP('',(#6353,#6355));
-+#6357=FACE_BOUND('',#6356,.F.);
-+#6359=ORIENTED_EDGE('',*,*,#6358,.F.);
-+#6361=ORIENTED_EDGE('',*,*,#6360,.F.);
-+#6362=EDGE_LOOP('',(#6359,#6361));
-+#6363=FACE_BOUND('',#6362,.F.);
-+#6365=ORIENTED_EDGE('',*,*,#6364,.F.);
-+#6367=ORIENTED_EDGE('',*,*,#6366,.F.);
-+#6368=EDGE_LOOP('',(#6365,#6367));
-+#6369=FACE_BOUND('',#6368,.F.);
-+#6371=ORIENTED_EDGE('',*,*,#6370,.F.);
-+#6373=ORIENTED_EDGE('',*,*,#6372,.F.);
-+#6374=EDGE_LOOP('',(#6371,#6373));
-+#6375=FACE_BOUND('',#6374,.F.);
-+#6377=ORIENTED_EDGE('',*,*,#6376,.F.);
-+#6379=ORIENTED_EDGE('',*,*,#6378,.F.);
-+#6380=EDGE_LOOP('',(#6377,#6379));
-+#6381=FACE_BOUND('',#6380,.F.);
-+#6383=ORIENTED_EDGE('',*,*,#6382,.F.);
-+#6385=ORIENTED_EDGE('',*,*,#6384,.F.);
-+#6386=EDGE_LOOP('',(#6383,#6385));
-+#6387=FACE_BOUND('',#6386,.F.);
-+#6389=ORIENTED_EDGE('',*,*,#6388,.F.);
-+#6391=ORIENTED_EDGE('',*,*,#6390,.F.);
-+#6392=EDGE_LOOP('',(#6389,#6391));
-+#6393=FACE_BOUND('',#6392,.F.);
-+#6395=ORIENTED_EDGE('',*,*,#6394,.F.);
-+#6397=ORIENTED_EDGE('',*,*,#6396,.F.);
-+#6398=EDGE_LOOP('',(#6395,#6397));
-+#6399=FACE_BOUND('',#6398,.F.);
-+#6401=ORIENTED_EDGE('',*,*,#6400,.T.);
-+#6403=ORIENTED_EDGE('',*,*,#6402,.F.);
-+#6405=ORIENTED_EDGE('',*,*,#6404,.F.);
-+#6407=ORIENTED_EDGE('',*,*,#6406,.F.);
-+#6409=ORIENTED_EDGE('',*,*,#6408,.T.);
-+#6411=ORIENTED_EDGE('',*,*,#6410,.F.);
-+#6413=ORIENTED_EDGE('',*,*,#6412,.T.);
-+#6415=ORIENTED_EDGE('',*,*,#6414,.F.);
-+#6416=EDGE_LOOP('',(#6401,#6403,#6405,#6407,#6409,#6411,#6413,#6415));
-+#6417=FACE_BOUND('',#6416,.F.);
-+#6419=ORIENTED_EDGE('',*,*,#6418,.F.);
-+#6421=ORIENTED_EDGE('',*,*,#6420,.F.);
-+#6423=ORIENTED_EDGE('',*,*,#6422,.T.);
-+#6425=ORIENTED_EDGE('',*,*,#6424,.F.);
-+#6427=ORIENTED_EDGE('',*,*,#6426,.T.);
-+#6429=ORIENTED_EDGE('',*,*,#6428,.F.);
-+#6431=ORIENTED_EDGE('',*,*,#6430,.T.);
-+#6433=ORIENTED_EDGE('',*,*,#6432,.F.);
-+#6435=ORIENTED_EDGE('',*,*,#6434,.F.);
-+#6437=ORIENTED_EDGE('',*,*,#6436,.F.);
-+#6439=ORIENTED_EDGE('',*,*,#6438,.F.);
-+#6441=ORIENTED_EDGE('',*,*,#6440,.T.);
-+#6443=ORIENTED_EDGE('',*,*,#6442,.F.);
-+#6445=ORIENTED_EDGE('',*,*,#6444,.F.);
-+#6447=ORIENTED_EDGE('',*,*,#6446,.T.);
-+#6449=ORIENTED_EDGE('',*,*,#6448,.F.);
-+#6450=EDGE_LOOP('',(#6419,#6421,#6423,#6425,#6427,#6429,#6431,#6433,#6435,#6437,
-+#6439,#6441,#6443,#6445,#6447,#6449));
-+#6451=FACE_BOUND('',#6450,.F.);
-+#6453=ORIENTED_EDGE('',*,*,#6452,.F.);
-+#6455=ORIENTED_EDGE('',*,*,#6454,.F.);
-+#6456=EDGE_LOOP('',(#6453,#6455));
-+#6457=FACE_BOUND('',#6456,.F.);
-+#6459=ORIENTED_EDGE('',*,*,#6458,.F.);
-+#6461=ORIENTED_EDGE('',*,*,#6460,.F.);
-+#6462=EDGE_LOOP('',(#6459,#6461));
-+#6463=FACE_BOUND('',#6462,.F.);
-+#6465=ORIENTED_EDGE('',*,*,#6464,.F.);
-+#6467=ORIENTED_EDGE('',*,*,#6466,.F.);
-+#6468=EDGE_LOOP('',(#6465,#6467));
-+#6469=FACE_BOUND('',#6468,.F.);
-+#6471=ORIENTED_EDGE('',*,*,#6470,.F.);
-+#6473=ORIENTED_EDGE('',*,*,#6472,.F.);
-+#6474=EDGE_LOOP('',(#6471,#6473));
-+#6475=FACE_BOUND('',#6474,.F.);
-+#6477=ORIENTED_EDGE('',*,*,#6476,.F.);
-+#6479=ORIENTED_EDGE('',*,*,#6478,.F.);
-+#6480=EDGE_LOOP('',(#6477,#6479));
-+#6481=FACE_BOUND('',#6480,.F.);
-+#6483=ORIENTED_EDGE('',*,*,#6482,.F.);
-+#6485=ORIENTED_EDGE('',*,*,#6484,.F.);
-+#6486=EDGE_LOOP('',(#6483,#6485));
-+#6487=FACE_BOUND('',#6486,.F.);
-+#6488=ADVANCED_FACE('',(#6333,#6339,#6345,#6351,#6357,#6363,#6369,#6375,#6381,
-+#6387,#6393,#6399,#6417,#6451,#6457,#6463,#6469,#6475,#6481,#6487),#6283,.T.);
-+#6489=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
-+#6490=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6491=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6492=AXIS2_PLACEMENT_3D('',#6489,#6490,#6491);
-+#6493=CYLINDRICAL_SURFACE('',#6492,1.E-1);
-+#6494=ORIENTED_EDGE('',*,*,#6334,.T.);
-+#6496=ORIENTED_EDGE('',*,*,#6495,.F.);
-+#6498=ORIENTED_EDGE('',*,*,#6497,.F.);
-+#6500=ORIENTED_EDGE('',*,*,#6499,.T.);
-+#6501=EDGE_LOOP('',(#6494,#6496,#6498,#6500));
-+#6502=FACE_OUTER_BOUND('',#6501,.F.);
-+#6503=ADVANCED_FACE('',(#6502),#6493,.F.);
-+#6504=CARTESIAN_POINT('',(6.45E0,1.176878221735E0,2.975E1));
-+#6505=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6506=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6507=AXIS2_PLACEMENT_3D('',#6504,#6505,#6506);
-+#6508=CYLINDRICAL_SURFACE('',#6507,1.E-1);
-+#6509=ORIENTED_EDGE('',*,*,#6336,.T.);
-+#6510=ORIENTED_EDGE('',*,*,#6499,.F.);
-+#6512=ORIENTED_EDGE('',*,*,#6511,.T.);
-+#6513=ORIENTED_EDGE('',*,*,#6495,.T.);
-+#6514=EDGE_LOOP('',(#6509,#6510,#6512,#6513));
-+#6515=FACE_OUTER_BOUND('',#6514,.F.);
-+#6516=ADVANCED_FACE('',(#6515),#6508,.F.);
-+#6517=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
-+#6518=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6519=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6520=AXIS2_PLACEMENT_3D('',#6517,#6518,#6519);
-+#6521=CONICAL_SURFACE('',#6520,7.288815195685E-2,6.E1);
-+#6523=ORIENTED_EDGE('',*,*,#6522,.T.);
-+#6524=ORIENTED_EDGE('',*,*,#6511,.F.);
-+#6526=ORIENTED_EDGE('',*,*,#6525,.F.);
-+#6527=EDGE_LOOP('',(#6523,#6524,#6526));
-+#6528=FACE_OUTER_BOUND('',#6527,.F.);
-+#6529=ADVANCED_FACE('',(#6528),#6521,.F.);
-+#6530=CARTESIAN_POINT('',(6.45E0,1.234346967234E0,2.975E1));
-+#6531=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6532=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6533=AXIS2_PLACEMENT_3D('',#6530,#6531,#6532);
-+#6534=CONICAL_SURFACE('',#6533,7.288815195685E-2,6.E1);
-+#6535=ORIENTED_EDGE('',*,*,#6522,.F.);
-+#6536=ORIENTED_EDGE('',*,*,#6525,.T.);
-+#6537=ORIENTED_EDGE('',*,*,#6497,.T.);
-+#6538=EDGE_LOOP('',(#6535,#6536,#6537));
-+#6539=FACE_OUTER_BOUND('',#6538,.F.);
-+#6540=ADVANCED_FACE('',(#6539),#6534,.F.);
-+#6541=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
-+#6542=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6543=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6544=AXIS2_PLACEMENT_3D('',#6541,#6542,#6543);
-+#6545=CYLINDRICAL_SURFACE('',#6544,1.E-1);
-+#6546=ORIENTED_EDGE('',*,*,#6340,.T.);
-+#6548=ORIENTED_EDGE('',*,*,#6547,.F.);
-+#6550=ORIENTED_EDGE('',*,*,#6549,.F.);
-+#6552=ORIENTED_EDGE('',*,*,#6551,.T.);
-+#6553=EDGE_LOOP('',(#6546,#6548,#6550,#6552));
-+#6554=FACE_OUTER_BOUND('',#6553,.F.);
-+#6555=ADVANCED_FACE('',(#6554),#6545,.F.);
-+#6556=CARTESIAN_POINT('',(7.45E0,1.176878221735E0,2.975E1));
-+#6557=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6558=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6559=AXIS2_PLACEMENT_3D('',#6556,#6557,#6558);
-+#6560=CYLINDRICAL_SURFACE('',#6559,1.E-1);
-+#6561=ORIENTED_EDGE('',*,*,#6342,.T.);
-+#6562=ORIENTED_EDGE('',*,*,#6551,.F.);
-+#6564=ORIENTED_EDGE('',*,*,#6563,.T.);
-+#6565=ORIENTED_EDGE('',*,*,#6547,.T.);
-+#6566=EDGE_LOOP('',(#6561,#6562,#6564,#6565));
-+#6567=FACE_OUTER_BOUND('',#6566,.F.);
-+#6568=ADVANCED_FACE('',(#6567),#6560,.F.);
-+#6569=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
-+#6570=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6571=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6572=AXIS2_PLACEMENT_3D('',#6569,#6570,#6571);
-+#6573=CONICAL_SURFACE('',#6572,7.288815195685E-2,6.E1);
-+#6575=ORIENTED_EDGE('',*,*,#6574,.T.);
-+#6576=ORIENTED_EDGE('',*,*,#6563,.F.);
-+#6578=ORIENTED_EDGE('',*,*,#6577,.F.);
-+#6579=EDGE_LOOP('',(#6575,#6576,#6578));
-+#6580=FACE_OUTER_BOUND('',#6579,.F.);
-+#6581=ADVANCED_FACE('',(#6580),#6573,.F.);
-+#6582=CARTESIAN_POINT('',(7.45E0,1.234346967234E0,2.975E1));
-+#6583=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6584=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6585=AXIS2_PLACEMENT_3D('',#6582,#6583,#6584);
-+#6586=CONICAL_SURFACE('',#6585,7.288815195685E-2,6.E1);
-+#6587=ORIENTED_EDGE('',*,*,#6574,.F.);
-+#6588=ORIENTED_EDGE('',*,*,#6577,.T.);
-+#6589=ORIENTED_EDGE('',*,*,#6549,.T.);
-+#6590=EDGE_LOOP('',(#6587,#6588,#6589));
-+#6591=FACE_OUTER_BOUND('',#6590,.F.);
-+#6592=ADVANCED_FACE('',(#6591),#6586,.F.);
-+#6593=CARTESIAN_POINT('',(2.046862696660E1,-7.805924235695E-2,7.E0));
-+#6594=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6595=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6596=AXIS2_PLACEMENT_3D('',#6593,#6594,#6595);
-+#6597=CYLINDRICAL_SURFACE('',#6596,1.E0);
-+#6598=ORIENTED_EDGE('',*,*,#5961,.F.);
-+#6599=ORIENTED_EDGE('',*,*,#5550,.T.);
-+#6601=ORIENTED_EDGE('',*,*,#6600,.T.);
-+#6602=ORIENTED_EDGE('',*,*,#6221,.T.);
-+#6603=EDGE_LOOP('',(#6598,#6599,#6601,#6602));
-+#6604=FACE_OUTER_BOUND('',#6603,.F.);
-+#6605=ADVANCED_FACE('',(#6604),#6597,.F.);
-+#6606=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,7.5E0));
-+#6607=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6608=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6609=AXIS2_PLACEMENT_3D('',#6606,#6607,#6608);
-+#6610=CYLINDRICAL_SURFACE('',#6609,5.E0);
-+#6611=ORIENTED_EDGE('',*,*,#6600,.F.);
-+#6612=ORIENTED_EDGE('',*,*,#5548,.T.);
-+#6614=ORIENTED_EDGE('',*,*,#6613,.F.);
-+#6615=ORIENTED_EDGE('',*,*,#6223,.T.);
-+#6616=EDGE_LOOP('',(#6611,#6612,#6614,#6615));
-+#6617=FACE_OUTER_BOUND('',#6616,.F.);
-+#6618=ADVANCED_FACE('',(#6617),#6610,.F.);
-+#6619=CARTESIAN_POINT('',(2.15E1,1.5E0,2.5E0));
-+#6620=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6621=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6622=AXIS2_PLACEMENT_3D('',#6619,#6620,#6621);
-+#6623=PLANE('',#6622);
-+#6625=ORIENTED_EDGE('',*,*,#6624,.F.);
-+#6626=ORIENTED_EDGE('',*,*,#6225,.F.);
-+#6627=ORIENTED_EDGE('',*,*,#6613,.T.);
-+#6628=ORIENTED_EDGE('',*,*,#5546,.T.);
-+#6629=EDGE_LOOP('',(#6625,#6626,#6627,#6628));
-+#6630=FACE_OUTER_BOUND('',#6629,.F.);
-+#6631=ADVANCED_FACE('',(#6630),#6623,.F.);
-+#6632=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,7.5E0));
-+#6633=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6634=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6635=AXIS2_PLACEMENT_3D('',#6632,#6633,#6634);
-+#6636=CYLINDRICAL_SURFACE('',#6635,5.E0);
-+#6638=ORIENTED_EDGE('',*,*,#6637,.F.);
-+#6639=ORIENTED_EDGE('',*,*,#6227,.T.);
-+#6640=ORIENTED_EDGE('',*,*,#6624,.T.);
-+#6641=ORIENTED_EDGE('',*,*,#5544,.T.);
-+#6642=EDGE_LOOP('',(#6638,#6639,#6640,#6641));
-+#6643=FACE_OUTER_BOUND('',#6642,.F.);
-+#6644=ADVANCED_FACE('',(#6643),#6636,.F.);
-+#6645=CARTESIAN_POINT('',(3.531373033403E0,1.157860978230E1,7.E0));
-+#6646=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6647=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6648=AXIS2_PLACEMENT_3D('',#6645,#6646,#6647);
-+#6649=CYLINDRICAL_SURFACE('',#6648,1.E0);
-+#6650=ORIENTED_EDGE('',*,*,#5991,.F.);
-+#6651=ORIENTED_EDGE('',*,*,#6229,.T.);
-+#6652=ORIENTED_EDGE('',*,*,#6637,.T.);
-+#6653=ORIENTED_EDGE('',*,*,#5542,.T.);
-+#6654=EDGE_LOOP('',(#6650,#6651,#6652,#6653));
-+#6655=FACE_OUTER_BOUND('',#6654,.F.);
-+#6656=ADVANCED_FACE('',(#6655),#6649,.F.);
-+#6657=CARTESIAN_POINT('',(-1.E0,1.161044894892E1,7.E0));
-+#6658=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6659=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6660=AXIS2_PLACEMENT_3D('',#6657,#6658,#6659);
-+#6661=CYLINDRICAL_SURFACE('',#6660,1.E0);
-+#6663=ORIENTED_EDGE('',*,*,#6662,.F.);
-+#6664=ORIENTED_EDGE('',*,*,#6232,.T.);
-+#6665=ORIENTED_EDGE('',*,*,#5987,.T.);
-+#6666=ORIENTED_EDGE('',*,*,#5508,.T.);
-+#6667=EDGE_LOOP('',(#6663,#6664,#6665,#6666));
-+#6668=FACE_OUTER_BOUND('',#6667,.F.);
-+#6669=ADVANCED_FACE('',(#6668),#6661,.F.);
-+#6670=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#6671=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6672=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6673=AXIS2_PLACEMENT_3D('',#6670,#6671,#6672);
-+#6674=PLANE('',#6673);
-+#6676=ORIENTED_EDGE('',*,*,#6675,.T.);
-+#6677=ORIENTED_EDGE('',*,*,#6302,.T.);
-+#6679=ORIENTED_EDGE('',*,*,#6678,.F.);
-+#6680=ORIENTED_EDGE('',*,*,#5520,.F.);
-+#6681=EDGE_LOOP('',(#6676,#6677,#6679,#6680));
-+#6682=FACE_OUTER_BOUND('',#6681,.F.);
-+#6683=ADVANCED_FACE('',(#6682),#6674,.T.);
-+#6684=CARTESIAN_POINT('',(0.E0,0.E0,0.E0));
-+#6685=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6686=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6687=AXIS2_PLACEMENT_3D('',#6684,#6685,#6686);
-+#6688=PLANE('',#6687);
-+#6689=ORIENTED_EDGE('',*,*,#6662,.T.);
-+#6690=ORIENTED_EDGE('',*,*,#5506,.F.);
-+#6692=ORIENTED_EDGE('',*,*,#6691,.T.);
-+#6693=ORIENTED_EDGE('',*,*,#6234,.T.);
-+#6694=EDGE_LOOP('',(#6689,#6690,#6692,#6693));
-+#6695=FACE_OUTER_BOUND('',#6694,.F.);
-+#6696=ADVANCED_FACE('',(#6695),#6688,.T.);
-+#6697=CARTESIAN_POINT('',(-1.E0,-5.722942641981E-2,1.325E1));
-+#6698=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6699=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6700=AXIS2_PLACEMENT_3D('',#6697,#6698,#6699);
-+#6701=CYLINDRICAL_SURFACE('',#6700,1.E0);
-+#6702=ORIENTED_EDGE('',*,*,#6675,.F.);
-+#6703=ORIENTED_EDGE('',*,*,#5518,.T.);
-+#6705=ORIENTED_EDGE('',*,*,#6704,.T.);
-+#6706=ORIENTED_EDGE('',*,*,#6304,.T.);
-+#6707=EDGE_LOOP('',(#6702,#6703,#6705,#6706));
-+#6708=FACE_OUTER_BOUND('',#6707,.F.);
-+#6709=ADVANCED_FACE('',(#6708),#6701,.F.);
-+#6710=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
-+#6711=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6712=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6713=AXIS2_PLACEMENT_3D('',#6710,#6711,#6712);
-+#6714=PLANE('',#6713);
-+#6716=ORIENTED_EDGE('',*,*,#6715,.F.);
-+#6717=ORIENTED_EDGE('',*,*,#6442,.T.);
-+#6719=ORIENTED_EDGE('',*,*,#6718,.F.);
-+#6720=ORIENTED_EDGE('',*,*,#5668,.F.);
-+#6721=EDGE_LOOP('',(#6716,#6717,#6719,#6720));
-+#6722=FACE_OUTER_BOUND('',#6721,.F.);
-+#6723=ADVANCED_FACE('',(#6722),#6714,.T.);
-+#6724=CARTESIAN_POINT('',(-2.E0,0.E0,1.225E1));
-+#6725=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6726=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6727=AXIS2_PLACEMENT_3D('',#6724,#6725,#6726);
-+#6728=PLANE('',#6727);
-+#6729=ORIENTED_EDGE('',*,*,#6704,.F.);
-+#6730=ORIENTED_EDGE('',*,*,#5516,.F.);
-+#6732=ORIENTED_EDGE('',*,*,#6731,.T.);
-+#6733=ORIENTED_EDGE('',*,*,#6306,.T.);
-+#6734=EDGE_LOOP('',(#6729,#6730,#6732,#6733));
-+#6735=FACE_OUTER_BOUND('',#6734,.F.);
-+#6736=ADVANCED_FACE('',(#6735),#6728,.T.);
-+#6737=CARTESIAN_POINT('',(3.5E0,1.566978255297E0,1.325E1));
-+#6738=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6739=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6740=AXIS2_PLACEMENT_3D('',#6737,#6738,#6739);
-+#6741=CYLINDRICAL_SURFACE('',#6740,1.E0);
-+#6743=ORIENTED_EDGE('',*,*,#6742,.F.);
-+#6744=ORIENTED_EDGE('',*,*,#6444,.T.);
-+#6745=ORIENTED_EDGE('',*,*,#6715,.T.);
-+#6746=ORIENTED_EDGE('',*,*,#5666,.T.);
-+#6747=EDGE_LOOP('',(#6743,#6744,#6745,#6746));
-+#6748=FACE_OUTER_BOUND('',#6747,.F.);
-+#6749=ADVANCED_FACE('',(#6748),#6741,.F.);
-+#6750=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
-+#6751=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6752=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6753=AXIS2_PLACEMENT_3D('',#6750,#6751,#6752);
-+#6754=PLANE('',#6753);
-+#6756=ORIENTED_EDGE('',*,*,#6755,.T.);
-+#6757=ORIENTED_EDGE('',*,*,#5650,.T.);
-+#6759=ORIENTED_EDGE('',*,*,#6758,.F.);
-+#6760=ORIENTED_EDGE('',*,*,#6408,.F.);
-+#6761=EDGE_LOOP('',(#6756,#6757,#6759,#6760));
-+#6762=FACE_OUTER_BOUND('',#6761,.F.);
-+#6763=ADVANCED_FACE('',(#6762),#6754,.F.);
-+#6764=CARTESIAN_POINT('',(2.5E0,1.5E0,2.5E0));
-+#6765=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6766=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6767=AXIS2_PLACEMENT_3D('',#6764,#6765,#6766);
-+#6768=PLANE('',#6767);
-+#6770=ORIENTED_EDGE('',*,*,#6769,.T.);
-+#6771=ORIENTED_EDGE('',*,*,#6446,.F.);
-+#6772=ORIENTED_EDGE('',*,*,#6742,.T.);
-+#6773=ORIENTED_EDGE('',*,*,#5664,.T.);
-+#6774=EDGE_LOOP('',(#6770,#6771,#6772,#6773));
-+#6775=FACE_OUTER_BOUND('',#6774,.F.);
-+#6776=ADVANCED_FACE('',(#6775),#6768,.F.);
-+#6777=CARTESIAN_POINT('',(5.5E0,1.568923974228E0,2.19375E1));
-+#6778=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6779=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6780=AXIS2_PLACEMENT_3D('',#6777,#6778,#6779);
-+#6781=CYLINDRICAL_SURFACE('',#6780,3.E0);
-+#6782=ORIENTED_EDGE('',*,*,#6755,.F.);
-+#6783=ORIENTED_EDGE('',*,*,#6406,.T.);
-+#6785=ORIENTED_EDGE('',*,*,#6784,.T.);
-+#6786=ORIENTED_EDGE('',*,*,#5652,.T.);
-+#6787=EDGE_LOOP('',(#6782,#6783,#6785,#6786));
-+#6788=FACE_OUTER_BOUND('',#6787,.F.);
-+#6789=ADVANCED_FACE('',(#6788),#6781,.F.);
-+#6790=CARTESIAN_POINT('',(2.5E0,0.E0,1.89375E1));
-+#6791=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6792=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6793=AXIS2_PLACEMENT_3D('',#6790,#6791,#6792);
-+#6794=PLANE('',#6793);
-+#6795=ORIENTED_EDGE('',*,*,#6784,.F.);
-+#6796=ORIENTED_EDGE('',*,*,#6404,.T.);
-+#6798=ORIENTED_EDGE('',*,*,#6797,.F.);
-+#6799=ORIENTED_EDGE('',*,*,#5638,.F.);
-+#6800=EDGE_LOOP('',(#6795,#6796,#6798,#6799));
-+#6801=FACE_OUTER_BOUND('',#6800,.F.);
-+#6802=ADVANCED_FACE('',(#6801),#6794,.T.);
-+#6803=CARTESIAN_POINT('',(1.85E1,-5.889194178308E-2,2.19375E1));
-+#6804=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6805=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6806=AXIS2_PLACEMENT_3D('',#6803,#6804,#6805);
-+#6807=CYLINDRICAL_SURFACE('',#6806,3.E0);
-+#6809=ORIENTED_EDGE('',*,*,#6808,.F.);
-+#6810=ORIENTED_EDGE('',*,*,#5640,.T.);
-+#6811=ORIENTED_EDGE('',*,*,#6797,.T.);
-+#6812=ORIENTED_EDGE('',*,*,#6402,.T.);
-+#6813=EDGE_LOOP('',(#6809,#6810,#6811,#6812));
-+#6814=FACE_OUTER_BOUND('',#6813,.F.);
-+#6815=ADVANCED_FACE('',(#6814),#6807,.F.);
-+#6816=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
-+#6817=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6818=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6819=AXIS2_PLACEMENT_3D('',#6816,#6817,#6818);
-+#6820=PLANE('',#6819);
-+#6821=ORIENTED_EDGE('',*,*,#6808,.T.);
-+#6822=ORIENTED_EDGE('',*,*,#6400,.F.);
-+#6824=ORIENTED_EDGE('',*,*,#6823,.T.);
-+#6825=ORIENTED_EDGE('',*,*,#5642,.T.);
-+#6826=EDGE_LOOP('',(#6821,#6822,#6824,#6825));
-+#6827=FACE_OUTER_BOUND('',#6826,.F.);
-+#6828=ADVANCED_FACE('',(#6827),#6820,.F.);
-+#6829=CARTESIAN_POINT('',(2.15E1,1.5E0,2.95E1));
-+#6830=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6831=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6832=AXIS2_PLACEMENT_3D('',#6829,#6830,#6831);
-+#6833=PLANE('',#6832);
-+#6835=ORIENTED_EDGE('',*,*,#6834,.T.);
-+#6836=ORIENTED_EDGE('',*,*,#5656,.T.);
-+#6838=ORIENTED_EDGE('',*,*,#6837,.T.);
-+#6839=ORIENTED_EDGE('',*,*,#6422,.F.);
-+#6840=EDGE_LOOP('',(#6835,#6836,#6838,#6839));
-+#6841=FACE_OUTER_BOUND('',#6840,.F.);
-+#6842=ADVANCED_FACE('',(#6841),#6833,.F.);
-+#6843=CARTESIAN_POINT('',(1.65E1,1.562633489099E0,2.45E1));
-+#6844=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6845=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6846=AXIS2_PLACEMENT_3D('',#6843,#6844,#6845);
-+#6847=CYLINDRICAL_SURFACE('',#6846,5.E0);
-+#6848=ORIENTED_EDGE('',*,*,#6823,.F.);
-+#6849=ORIENTED_EDGE('',*,*,#6414,.T.);
-+#6851=ORIENTED_EDGE('',*,*,#6850,.T.);
-+#6852=ORIENTED_EDGE('',*,*,#5644,.T.);
-+#6853=EDGE_LOOP('',(#6848,#6849,#6851,#6852));
-+#6854=FACE_OUTER_BOUND('',#6853,.F.);
-+#6855=ADVANCED_FACE('',(#6854),#6847,.F.);
-+#6856=CARTESIAN_POINT('',(2.5E0,1.5E0,2.95E1));
-+#6857=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6858=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6859=AXIS2_PLACEMENT_3D('',#6856,#6857,#6858);
-+#6860=PLANE('',#6859);
-+#6862=ORIENTED_EDGE('',*,*,#6861,.T.);
-+#6863=ORIENTED_EDGE('',*,*,#5646,.T.);
-+#6864=ORIENTED_EDGE('',*,*,#6850,.F.);
-+#6865=ORIENTED_EDGE('',*,*,#6412,.F.);
-+#6866=EDGE_LOOP('',(#6862,#6863,#6864,#6865));
-+#6867=FACE_OUTER_BOUND('',#6866,.F.);
-+#6868=ADVANCED_FACE('',(#6867),#6860,.F.);
-+#6869=CARTESIAN_POINT('',(7.5E0,1.562633489099E0,2.45E1));
-+#6870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6871=DIRECTION('',(0.E0,0.E0,1.E0));
-+#6872=AXIS2_PLACEMENT_3D('',#6869,#6870,#6871);
-+#6873=CYLINDRICAL_SURFACE('',#6872,5.E0);
-+#6874=ORIENTED_EDGE('',*,*,#6861,.F.);
-+#6875=ORIENTED_EDGE('',*,*,#6410,.T.);
-+#6876=ORIENTED_EDGE('',*,*,#6758,.T.);
-+#6877=ORIENTED_EDGE('',*,*,#5648,.T.);
-+#6878=EDGE_LOOP('',(#6874,#6875,#6876,#6877));
-+#6879=FACE_OUTER_BOUND('',#6878,.F.);
-+#6880=ADVANCED_FACE('',(#6879),#6873,.F.);
-+#6881=CARTESIAN_POINT('',(1.85E1,1.568923974228E0,1.40625E1));
-+#6882=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6884=AXIS2_PLACEMENT_3D('',#6881,#6882,#6883);
-+#6885=CYLINDRICAL_SURFACE('',#6884,3.E0);
-+#6886=ORIENTED_EDGE('',*,*,#6834,.F.);
-+#6887=ORIENTED_EDGE('',*,*,#6420,.T.);
-+#6889=ORIENTED_EDGE('',*,*,#6888,.T.);
-+#6890=ORIENTED_EDGE('',*,*,#5658,.T.);
-+#6891=EDGE_LOOP('',(#6886,#6887,#6889,#6890));
-+#6892=FACE_OUTER_BOUND('',#6891,.F.);
-+#6893=ADVANCED_FACE('',(#6892),#6885,.F.);
-+#6894=CARTESIAN_POINT('',(2.15E1,0.E0,1.70625E1));
-+#6895=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6896=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6897=AXIS2_PLACEMENT_3D('',#6894,#6895,#6896);
-+#6898=PLANE('',#6897);
-+#6899=ORIENTED_EDGE('',*,*,#6888,.F.);
-+#6900=ORIENTED_EDGE('',*,*,#6418,.T.);
-+#6902=ORIENTED_EDGE('',*,*,#6901,.F.);
-+#6903=ORIENTED_EDGE('',*,*,#5660,.F.);
-+#6904=EDGE_LOOP('',(#6899,#6900,#6902,#6903));
-+#6905=FACE_OUTER_BOUND('',#6904,.F.);
-+#6906=ADVANCED_FACE('',(#6905),#6898,.T.);
-+#6907=CARTESIAN_POINT('',(5.5E0,-5.889194178308E-2,1.40625E1));
-+#6908=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6909=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6910=AXIS2_PLACEMENT_3D('',#6907,#6908,#6909);
-+#6911=CYLINDRICAL_SURFACE('',#6910,3.E0);
-+#6912=ORIENTED_EDGE('',*,*,#6769,.F.);
-+#6913=ORIENTED_EDGE('',*,*,#5662,.T.);
-+#6914=ORIENTED_EDGE('',*,*,#6901,.T.);
-+#6915=ORIENTED_EDGE('',*,*,#6448,.T.);
-+#6916=EDGE_LOOP('',(#6912,#6913,#6914,#6915));
-+#6917=FACE_OUTER_BOUND('',#6916,.F.);
-+#6918=ADVANCED_FACE('',(#6917),#6911,.F.);
-+#6919=CARTESIAN_POINT('',(2.05E1,-5.889194178308E-2,1.325E1));
-+#6920=DIRECTION('',(0.E0,1.E0,0.E0));
-+#6921=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6922=AXIS2_PLACEMENT_3D('',#6919,#6920,#6921);
-+#6923=CYLINDRICAL_SURFACE('',#6922,1.E0);
-+#6924=ORIENTED_EDGE('',*,*,#6837,.F.);
-+#6925=ORIENTED_EDGE('',*,*,#5686,.T.);
-+#6927=ORIENTED_EDGE('',*,*,#6926,.T.);
-+#6928=ORIENTED_EDGE('',*,*,#6424,.T.);
-+#6929=EDGE_LOOP('',(#6924,#6925,#6927,#6928));
-+#6930=FACE_OUTER_BOUND('',#6929,.F.);
-+#6931=ADVANCED_FACE('',(#6930),#6923,.F.);
-+#6932=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
-+#6933=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6934=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6935=AXIS2_PLACEMENT_3D('',#6932,#6933,#6934);
-+#6936=PLANE('',#6935);
-+#6938=ORIENTED_EDGE('',*,*,#6937,.F.);
-+#6939=ORIENTED_EDGE('',*,*,#6290,.F.);
-+#6941=ORIENTED_EDGE('',*,*,#6940,.T.);
-+#6942=ORIENTED_EDGE('',*,*,#5532,.T.);
-+#6943=EDGE_LOOP('',(#6938,#6939,#6941,#6942));
-+#6944=FACE_OUTER_BOUND('',#6943,.F.);
-+#6945=ADVANCED_FACE('',(#6944),#6936,.F.);
-+#6946=CARTESIAN_POINT('',(2.6E1,0.E0,1.225E1));
-+#6947=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6948=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6949=AXIS2_PLACEMENT_3D('',#6946,#6947,#6948);
-+#6950=PLANE('',#6949);
-+#6951=ORIENTED_EDGE('',*,*,#6926,.F.);
-+#6952=ORIENTED_EDGE('',*,*,#5684,.T.);
-+#6954=ORIENTED_EDGE('',*,*,#6953,.F.);
-+#6955=ORIENTED_EDGE('',*,*,#6426,.F.);
-+#6956=EDGE_LOOP('',(#6951,#6952,#6954,#6955));
-+#6957=FACE_OUTER_BOUND('',#6956,.F.);
-+#6958=ADVANCED_FACE('',(#6957),#6950,.F.);
-+#6959=CARTESIAN_POINT('',(2.5E1,1.568923974228E0,1.325E1));
-+#6960=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#6961=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#6962=AXIS2_PLACEMENT_3D('',#6959,#6960,#6961);
-+#6963=CYLINDRICAL_SURFACE('',#6962,1.E0);
-+#6965=ORIENTED_EDGE('',*,*,#6964,.F.);
-+#6966=ORIENTED_EDGE('',*,*,#6292,.T.);
-+#6967=ORIENTED_EDGE('',*,*,#6937,.T.);
-+#6968=ORIENTED_EDGE('',*,*,#5530,.T.);
-+#6969=EDGE_LOOP('',(#6965,#6966,#6967,#6968));
-+#6970=FACE_OUTER_BOUND('',#6969,.F.);
-+#6971=ADVANCED_FACE('',(#6970),#6963,.F.);
-+#6972=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
-+#6973=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6974=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6975=AXIS2_PLACEMENT_3D('',#6972,#6973,#6974);
-+#6976=PLANE('',#6975);
-+#6977=ORIENTED_EDGE('',*,*,#6964,.T.);
-+#6978=ORIENTED_EDGE('',*,*,#5528,.F.);
-+#6980=ORIENTED_EDGE('',*,*,#6979,.T.);
-+#6981=ORIENTED_EDGE('',*,*,#6294,.T.);
-+#6982=EDGE_LOOP('',(#6977,#6978,#6980,#6981));
-+#6983=FACE_OUTER_BOUND('',#6982,.F.);
-+#6984=ADVANCED_FACE('',(#6983),#6976,.T.);
-+#6985=CARTESIAN_POINT('',(2.4E1,0.E0,3.2E1));
-+#6986=DIRECTION('',(1.E0,0.E0,0.E0));
-+#6987=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#6988=AXIS2_PLACEMENT_3D('',#6985,#6986,#6987);
-+#6989=PLANE('',#6988);
-+#6991=ORIENTED_EDGE('',*,*,#6990,.T.);
-+#6992=ORIENTED_EDGE('',*,*,#6242,.T.);
-+#6994=ORIENTED_EDGE('',*,*,#6993,.F.);
-+#6995=ORIENTED_EDGE('',*,*,#5498,.F.);
-+#6996=EDGE_LOOP('',(#6991,#6992,#6994,#6995));
-+#6997=FACE_OUTER_BOUND('',#6996,.F.);
-+#6998=ADVANCED_FACE('',(#6997),#6989,.T.);
-+#6999=CARTESIAN_POINT('',(2.4E1,0.E0,2.8E1));
-+#7000=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7001=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7002=AXIS2_PLACEMENT_3D('',#6999,#7000,#7001);
-+#7003=PLANE('',#7002);
-+#7004=ORIENTED_EDGE('',*,*,#6979,.F.);
-+#7005=ORIENTED_EDGE('',*,*,#5526,.T.);
-+#7007=ORIENTED_EDGE('',*,*,#7006,.T.);
-+#7008=ORIENTED_EDGE('',*,*,#6296,.F.);
-+#7009=EDGE_LOOP('',(#7004,#7005,#7007,#7008));
-+#7010=FACE_OUTER_BOUND('',#7009,.F.);
-+#7011=ADVANCED_FACE('',(#7010),#7003,.T.);
-+#7012=CARTESIAN_POINT('',(0.E0,0.E0,3.2E1));
-+#7013=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7014=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7015=AXIS2_PLACEMENT_3D('',#7012,#7013,#7014);
-+#7016=PLANE('',#7015);
-+#7017=ORIENTED_EDGE('',*,*,#5524,.F.);
-+#7019=ORIENTED_EDGE('',*,*,#7018,.T.);
-+#7020=ORIENTED_EDGE('',*,*,#6298,.T.);
-+#7021=ORIENTED_EDGE('',*,*,#7006,.F.);
-+#7022=EDGE_LOOP('',(#7017,#7019,#7020,#7021));
-+#7023=FACE_OUTER_BOUND('',#7022,.F.);
-+#7024=ADVANCED_FACE('',(#7023),#7016,.T.);
-+#7025=CARTESIAN_POINT('',(4.E0,0.E0,3.2E1));
-+#7026=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7027=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7028=AXIS2_PLACEMENT_3D('',#7025,#7026,#7027);
-+#7029=PLANE('',#7028);
-+#7030=ORIENTED_EDGE('',*,*,#7018,.F.);
-+#7031=ORIENTED_EDGE('',*,*,#5522,.T.);
-+#7032=ORIENTED_EDGE('',*,*,#6678,.T.);
-+#7033=ORIENTED_EDGE('',*,*,#6300,.F.);
-+#7034=EDGE_LOOP('',(#7030,#7031,#7032,#7033));
-+#7035=FACE_OUTER_BOUND('',#7034,.F.);
-+#7036=ADVANCED_FACE('',(#7035),#7029,.T.);
-+#7037=CARTESIAN_POINT('',(2.5E1,-7.055249658685E-2,7.E0));
-+#7038=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7039=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7040=AXIS2_PLACEMENT_3D('',#7037,#7038,#7039);
-+#7041=CYLINDRICAL_SURFACE('',#7040,1.E0);
-+#7042=ORIENTED_EDGE('',*,*,#6990,.F.);
-+#7043=ORIENTED_EDGE('',*,*,#5496,.T.);
-+#7044=ORIENTED_EDGE('',*,*,#5965,.T.);
-+#7045=ORIENTED_EDGE('',*,*,#6244,.T.);
-+#7046=EDGE_LOOP('',(#7042,#7043,#7044,#7045));
-+#7047=FACE_OUTER_BOUND('',#7046,.F.);
-+#7048=ADVANCED_FACE('',(#7047),#7041,.F.);
-+#7049=CARTESIAN_POINT('',(2.E1,0.E0,0.E0));
-+#7050=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#7051=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7052=AXIS2_PLACEMENT_3D('',#7049,#7050,#7051);
-+#7053=PLANE('',#7052);
-+#7055=ORIENTED_EDGE('',*,*,#7054,.F.);
-+#7056=ORIENTED_EDGE('',*,*,#5500,.T.);
-+#7057=ORIENTED_EDGE('',*,*,#6993,.T.);
-+#7058=ORIENTED_EDGE('',*,*,#6240,.F.);
-+#7059=EDGE_LOOP('',(#7055,#7056,#7057,#7058));
-+#7060=FACE_OUTER_BOUND('',#7059,.F.);
-+#7061=ADVANCED_FACE('',(#7060),#7053,.T.);
-+#7062=CARTESIAN_POINT('',(2.4E1,0.E0,0.E0));
-+#7063=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7064=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7065=AXIS2_PLACEMENT_3D('',#7062,#7063,#7064);
-+#7066=PLANE('',#7065);
-+#7067=ORIENTED_EDGE('',*,*,#5502,.F.);
-+#7068=ORIENTED_EDGE('',*,*,#7054,.T.);
-+#7069=ORIENTED_EDGE('',*,*,#6238,.T.);
-+#7071=ORIENTED_EDGE('',*,*,#7070,.F.);
-+#7072=EDGE_LOOP('',(#7067,#7068,#7069,#7071));
-+#7073=FACE_OUTER_BOUND('',#7072,.F.);
-+#7074=ADVANCED_FACE('',(#7073),#7066,.T.);
-+#7075=CARTESIAN_POINT('',(0.E0,0.E0,4.E0));
-+#7076=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#7077=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7078=AXIS2_PLACEMENT_3D('',#7075,#7076,#7077);
-+#7079=PLANE('',#7078);
-+#7080=ORIENTED_EDGE('',*,*,#6691,.F.);
-+#7081=ORIENTED_EDGE('',*,*,#5504,.T.);
-+#7082=ORIENTED_EDGE('',*,*,#7070,.T.);
-+#7083=ORIENTED_EDGE('',*,*,#6236,.F.);
-+#7084=EDGE_LOOP('',(#7080,#7081,#7082,#7083));
-+#7085=FACE_OUTER_BOUND('',#7084,.F.);
-+#7086=ADVANCED_FACE('',(#7085),#7079,.T.);
-+#7087=CARTESIAN_POINT('',(2.55E1,1.5E0,1.225E1));
-+#7088=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7089=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7090=AXIS2_PLACEMENT_3D('',#7087,#7088,#7089);
-+#7091=PLANE('',#7090);
-+#7092=ORIENTED_EDGE('',*,*,#6940,.F.);
-+#7093=ORIENTED_EDGE('',*,*,#6288,.T.);
-+#7095=ORIENTED_EDGE('',*,*,#7094,.T.);
-+#7096=ORIENTED_EDGE('',*,*,#5534,.F.);
-+#7097=EDGE_LOOP('',(#7092,#7093,#7095,#7096));
-+#7098=FACE_OUTER_BOUND('',#7097,.F.);
-+#7099=ADVANCED_FACE('',(#7098),#7091,.T.);
-+#7100=CARTESIAN_POINT('',(2.6E1,2.5E0,8.E0));
-+#7101=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7102=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7103=AXIS2_PLACEMENT_3D('',#7100,#7101,#7102);
-+#7104=PLANE('',#7103);
-+#7105=ORIENTED_EDGE('',*,*,#5968,.T.);
-+#7106=ORIENTED_EDGE('',*,*,#5536,.T.);
-+#7107=ORIENTED_EDGE('',*,*,#7094,.F.);
-+#7108=ORIENTED_EDGE('',*,*,#6286,.F.);
-+#7109=ORIENTED_EDGE('',*,*,#6165,.F.);
-+#7111=ORIENTED_EDGE('',*,*,#7110,.F.);
-+#7112=EDGE_LOOP('',(#7105,#7106,#7107,#7108,#7109,#7111));
-+#7113=FACE_OUTER_BOUND('',#7112,.F.);
-+#7114=ADVANCED_FACE('',(#7113),#7104,.F.);
-+#7115=CARTESIAN_POINT('',(2.1E1,1.15E1,8.E0));
-+#7116=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#7117=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7118=AXIS2_PLACEMENT_3D('',#7115,#7116,#7117);
-+#7119=PLANE('',#7118);
-+#7120=ORIENTED_EDGE('',*,*,#5970,.T.);
-+#7121=ORIENTED_EDGE('',*,*,#7110,.T.);
-+#7122=ORIENTED_EDGE('',*,*,#6163,.F.);
-+#7124=ORIENTED_EDGE('',*,*,#7123,.F.);
-+#7125=EDGE_LOOP('',(#7120,#7121,#7122,#7124));
-+#7126=FACE_OUTER_BOUND('',#7125,.F.);
-+#7127=ADVANCED_FACE('',(#7126),#7119,.F.);
-+#7128=CARTESIAN_POINT('',(1.9E1,1.15E1,8.E0));
-+#7129=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7130=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7131=AXIS2_PLACEMENT_3D('',#7128,#7129,#7130);
-+#7132=PLANE('',#7131);
-+#7133=ORIENTED_EDGE('',*,*,#5972,.F.);
-+#7134=ORIENTED_EDGE('',*,*,#7123,.T.);
-+#7135=ORIENTED_EDGE('',*,*,#6161,.F.);
-+#7137=ORIENTED_EDGE('',*,*,#7136,.F.);
-+#7138=EDGE_LOOP('',(#7133,#7134,#7135,#7137));
-+#7139=FACE_OUTER_BOUND('',#7138,.F.);
-+#7141=ORIENTED_EDGE('',*,*,#7140,.T.);
-+#7143=ORIENTED_EDGE('',*,*,#7142,.T.);
-+#7144=EDGE_LOOP('',(#7141,#7143));
-+#7145=FACE_BOUND('',#7144,.F.);
-+#7147=ORIENTED_EDGE('',*,*,#7146,.T.);
-+#7149=ORIENTED_EDGE('',*,*,#7148,.T.);
-+#7150=EDGE_LOOP('',(#7147,#7149));
-+#7151=FACE_BOUND('',#7150,.F.);
-+#7152=ADVANCED_FACE('',(#7139,#7145,#7151),#7132,.F.);
-+#7153=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#7154=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7155=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7156=AXIS2_PLACEMENT_3D('',#7153,#7154,#7155);
-+#7157=PLANE('',#7156);
-+#7159=ORIENTED_EDGE('',*,*,#7158,.T.);
-+#7160=ORIENTED_EDGE('',*,*,#6430,.F.);
-+#7162=ORIENTED_EDGE('',*,*,#7161,.T.);
-+#7163=ORIENTED_EDGE('',*,*,#5680,.T.);
-+#7164=EDGE_LOOP('',(#7159,#7160,#7162,#7163));
-+#7165=FACE_OUTER_BOUND('',#7164,.F.);
-+#7166=ADVANCED_FACE('',(#7165),#7157,.F.);
-+#7167=CARTESIAN_POINT('',(1.9E1,1.5E0,8.E0));
-+#7168=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7169=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7170=AXIS2_PLACEMENT_3D('',#7167,#7168,#7169);
-+#7171=PLANE('',#7170);
-+#7172=ORIENTED_EDGE('',*,*,#6325,.F.);
-+#7173=ORIENTED_EDGE('',*,*,#5974,.T.);
-+#7174=ORIENTED_EDGE('',*,*,#7136,.T.);
-+#7175=ORIENTED_EDGE('',*,*,#6159,.F.);
-+#7176=EDGE_LOOP('',(#7172,#7173,#7174,#7175));
-+#7177=FACE_OUTER_BOUND('',#7176,.F.);
-+#7178=ADVANCED_FACE('',(#7177),#7171,.F.);
-+#7179=CARTESIAN_POINT('',(1.8E1,-7.099592191979E-2,1.1E1));
-+#7180=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7181=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7182=AXIS2_PLACEMENT_3D('',#7179,#7180,#7181);
-+#7183=CYLINDRICAL_SURFACE('',#7182,1.E0);
-+#7184=ORIENTED_EDGE('',*,*,#7158,.F.);
-+#7185=ORIENTED_EDGE('',*,*,#5678,.T.);
-+#7187=ORIENTED_EDGE('',*,*,#7186,.T.);
-+#7188=ORIENTED_EDGE('',*,*,#6432,.T.);
-+#7189=EDGE_LOOP('',(#7184,#7185,#7187,#7188));
-+#7190=FACE_OUTER_BOUND('',#7189,.F.);
-+#7191=ADVANCED_FACE('',(#7190),#7183,.F.);
-+#7192=CARTESIAN_POINT('',(5.E0,1.5E0,1.E1));
-+#7193=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7194=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7195=AXIS2_PLACEMENT_3D('',#7192,#7193,#7194);
-+#7196=PLANE('',#7195);
-+#7198=ORIENTED_EDGE('',*,*,#7197,.F.);
-+#7199=ORIENTED_EDGE('',*,*,#6434,.T.);
-+#7200=ORIENTED_EDGE('',*,*,#7186,.F.);
-+#7201=ORIENTED_EDGE('',*,*,#5676,.F.);
-+#7202=EDGE_LOOP('',(#7198,#7199,#7200,#7201));
-+#7203=FACE_OUTER_BOUND('',#7202,.F.);
-+#7204=ADVANCED_FACE('',(#7203),#7196,.T.);
-+#7205=CARTESIAN_POINT('',(6.E0,1.567729432957E0,1.1E1));
-+#7206=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7207=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7208=AXIS2_PLACEMENT_3D('',#7205,#7206,#7207);
-+#7209=CYLINDRICAL_SURFACE('',#7208,1.E0);
-+#7211=ORIENTED_EDGE('',*,*,#7210,.F.);
-+#7212=ORIENTED_EDGE('',*,*,#6436,.T.);
-+#7213=ORIENTED_EDGE('',*,*,#7197,.T.);
-+#7214=ORIENTED_EDGE('',*,*,#5674,.T.);
-+#7215=EDGE_LOOP('',(#7211,#7212,#7213,#7214));
-+#7216=FACE_OUTER_BOUND('',#7215,.F.);
-+#7217=ADVANCED_FACE('',(#7216),#7209,.F.);
-+#7218=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#7219=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7220=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7221=AXIS2_PLACEMENT_3D('',#7218,#7219,#7220);
-+#7222=PLANE('',#7221);
-+#7223=ORIENTED_EDGE('',*,*,#7210,.T.);
-+#7224=ORIENTED_EDGE('',*,*,#5672,.F.);
-+#7226=ORIENTED_EDGE('',*,*,#7225,.T.);
-+#7227=ORIENTED_EDGE('',*,*,#6438,.T.);
-+#7228=EDGE_LOOP('',(#7223,#7224,#7226,#7227));
-+#7229=FACE_OUTER_BOUND('',#7228,.F.);
-+#7230=ADVANCED_FACE('',(#7229),#7222,.T.);
-+#7231=CARTESIAN_POINT('',(5.E0,1.5E0,8.E0));
-+#7232=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7233=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7234=AXIS2_PLACEMENT_3D('',#7231,#7232,#7233);
-+#7235=PLANE('',#7234);
-+#7236=ORIENTED_EDGE('',*,*,#6322,.T.);
-+#7238=ORIENTED_EDGE('',*,*,#7237,.T.);
-+#7240=ORIENTED_EDGE('',*,*,#7239,.F.);
-+#7241=ORIENTED_EDGE('',*,*,#5978,.T.);
-+#7242=EDGE_LOOP('',(#7236,#7238,#7240,#7241));
-+#7243=FACE_OUTER_BOUND('',#7242,.F.);
-+#7244=ADVANCED_FACE('',(#7243),#7235,.T.);
-+#7245=CARTESIAN_POINT('',(5.E0,0.E0,1.175E1));
-+#7246=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7247=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7248=AXIS2_PLACEMENT_3D('',#7245,#7246,#7247);
-+#7249=PLANE('',#7248);
-+#7250=ORIENTED_EDGE('',*,*,#7225,.F.);
-+#7251=ORIENTED_EDGE('',*,*,#5670,.T.);
-+#7252=ORIENTED_EDGE('',*,*,#6718,.T.);
-+#7253=ORIENTED_EDGE('',*,*,#6440,.F.);
-+#7254=EDGE_LOOP('',(#7250,#7251,#7252,#7253));
-+#7255=FACE_OUTER_BOUND('',#7254,.F.);
-+#7256=ADVANCED_FACE('',(#7255),#7249,.T.);
-+#7257=CARTESIAN_POINT('',(0.E0,0.E0,1.E1));
-+#7258=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7259=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7260=AXIS2_PLACEMENT_3D('',#7257,#7258,#7259);
-+#7261=PLANE('',#7260);
-+#7263=ORIENTED_EDGE('',*,*,#7262,.F.);
-+#7264=ORIENTED_EDGE('',*,*,#6312,.F.);
-+#7266=ORIENTED_EDGE('',*,*,#7265,.F.);
-+#7268=ORIENTED_EDGE('',*,*,#7267,.F.);
-+#7270=ORIENTED_EDGE('',*,*,#7269,.F.);
-+#7271=ORIENTED_EDGE('',*,*,#7237,.F.);
-+#7272=ORIENTED_EDGE('',*,*,#6320,.F.);
-+#7274=ORIENTED_EDGE('',*,*,#7273,.T.);
-+#7276=ORIENTED_EDGE('',*,*,#7275,.F.);
-+#7277=EDGE_LOOP('',(#7263,#7264,#7266,#7268,#7270,#7271,#7272,#7274,#7276));
-+#7278=FACE_OUTER_BOUND('',#7277,.F.);
-+#7280=ORIENTED_EDGE('',*,*,#7279,.T.);
-+#7282=ORIENTED_EDGE('',*,*,#7281,.T.);
-+#7283=EDGE_LOOP('',(#7280,#7282));
-+#7284=FACE_BOUND('',#7283,.F.);
-+#7286=ORIENTED_EDGE('',*,*,#7285,.F.);
-+#7288=ORIENTED_EDGE('',*,*,#7287,.T.);
-+#7290=ORIENTED_EDGE('',*,*,#7289,.F.);
-+#7292=ORIENTED_EDGE('',*,*,#7291,.T.);
-+#7294=ORIENTED_EDGE('',*,*,#7293,.F.);
-+#7296=ORIENTED_EDGE('',*,*,#7295,.T.);
-+#7298=ORIENTED_EDGE('',*,*,#7297,.F.);
-+#7300=ORIENTED_EDGE('',*,*,#7299,.T.);
-+#7302=ORIENTED_EDGE('',*,*,#7301,.F.);
-+#7304=ORIENTED_EDGE('',*,*,#7303,.T.);
-+#7306=ORIENTED_EDGE('',*,*,#7305,.F.);
-+#7308=ORIENTED_EDGE('',*,*,#7307,.T.);
-+#7309=EDGE_LOOP('',(#7286,#7288,#7290,#7292,#7294,#7296,#7298,#7300,#7302,#7304,
-+#7306,#7308));
-+#7310=FACE_BOUND('',#7309,.F.);
-+#7311=ADVANCED_FACE('',(#7278,#7284,#7310),#7261,.T.);
-+#7312=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#7313=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7314=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7315=AXIS2_PLACEMENT_3D('',#7312,#7313,#7314);
-+#7316=CYLINDRICAL_SURFACE('',#7315,1.625E-1);
-+#7317=ORIENTED_EDGE('',*,*,#6031,.T.);
-+#7319=ORIENTED_EDGE('',*,*,#7318,.T.);
-+#7320=ORIENTED_EDGE('',*,*,#7279,.F.);
-+#7322=ORIENTED_EDGE('',*,*,#7321,.F.);
-+#7323=EDGE_LOOP('',(#7317,#7319,#7320,#7322));
-+#7324=FACE_OUTER_BOUND('',#7323,.F.);
-+#7325=ADVANCED_FACE('',(#7324),#7316,.F.);
-+#7326=CARTESIAN_POINT('',(4.25E0,1.05E1,8.E0));
-+#7327=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7328=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7329=AXIS2_PLACEMENT_3D('',#7326,#7327,#7328);
-+#7330=CYLINDRICAL_SURFACE('',#7329,1.625E-1);
-+#7331=ORIENTED_EDGE('',*,*,#6033,.T.);
-+#7332=ORIENTED_EDGE('',*,*,#7321,.T.);
-+#7333=ORIENTED_EDGE('',*,*,#7281,.F.);
-+#7334=ORIENTED_EDGE('',*,*,#7318,.F.);
-+#7335=EDGE_LOOP('',(#7331,#7332,#7333,#7334));
-+#7336=FACE_OUTER_BOUND('',#7335,.F.);
-+#7337=ADVANCED_FACE('',(#7336),#7330,.F.);
-+#7338=CARTESIAN_POINT('',(2.5E-1,1.5E0,1.2E1));
-+#7339=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7340=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7341=AXIS2_PLACEMENT_3D('',#7338,#7339,#7340);
-+#7342=PLANE('',#7341);
-+#7343=ORIENTED_EDGE('',*,*,#6314,.T.);
-+#7344=ORIENTED_EDGE('',*,*,#7262,.T.);
-+#7346=ORIENTED_EDGE('',*,*,#7345,.T.);
-+#7347=EDGE_LOOP('',(#7343,#7344,#7346));
-+#7348=FACE_OUTER_BOUND('',#7347,.F.);
-+#7349=ADVANCED_FACE('',(#7348),#7342,.F.);
-+#7350=CARTESIAN_POINT('',(2.5E-1,6.5E0,1.E1));
-+#7351=DIRECTION('',(0.E0,5.E-1,8.660254037844E-1));
-+#7352=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#7353=AXIS2_PLACEMENT_3D('',#7350,#7351,#7352);
-+#7354=PLANE('',#7353);
-+#7355=ORIENTED_EDGE('',*,*,#6316,.F.);
-+#7356=ORIENTED_EDGE('',*,*,#7345,.F.);
-+#7357=ORIENTED_EDGE('',*,*,#7275,.T.);
-+#7359=ORIENTED_EDGE('',*,*,#7358,.T.);
-+#7360=EDGE_LOOP('',(#7355,#7356,#7357,#7359));
-+#7361=FACE_OUTER_BOUND('',#7360,.F.);
-+#7363=ORIENTED_EDGE('',*,*,#7362,.T.);
-+#7365=ORIENTED_EDGE('',*,*,#7364,.T.);
-+#7366=EDGE_LOOP('',(#7363,#7365));
-+#7367=FACE_BOUND('',#7366,.F.);
-+#7368=ADVANCED_FACE('',(#7361,#7367),#7354,.T.);
-+#7369=CARTESIAN_POINT('',(2.E0,1.5E0,1.2E1));
-+#7370=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7371=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7372=AXIS2_PLACEMENT_3D('',#7369,#7370,#7371);
-+#7373=PLANE('',#7372);
-+#7374=ORIENTED_EDGE('',*,*,#6318,.F.);
-+#7375=ORIENTED_EDGE('',*,*,#7358,.F.);
-+#7376=ORIENTED_EDGE('',*,*,#7273,.F.);
-+#7377=EDGE_LOOP('',(#7374,#7375,#7376));
-+#7378=FACE_OUTER_BOUND('',#7377,.F.);
-+#7379=ADVANCED_FACE('',(#7378),#7373,.T.);
-+#7380=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7381=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7382=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7383=AXIS2_PLACEMENT_3D('',#7380,#7381,#7382);
-+#7384=CYLINDRICAL_SURFACE('',#7383,2.575E-1);
-+#7386=ORIENTED_EDGE('',*,*,#7385,.F.);
-+#7387=ORIENTED_EDGE('',*,*,#7362,.F.);
-+#7389=ORIENTED_EDGE('',*,*,#7388,.F.);
-+#7391=ORIENTED_EDGE('',*,*,#7390,.F.);
-+#7392=EDGE_LOOP('',(#7386,#7387,#7389,#7391));
-+#7393=FACE_OUTER_BOUND('',#7392,.F.);
-+#7394=ADVANCED_FACE('',(#7393),#7384,.F.);
-+#7395=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7396=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7397=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7398=AXIS2_PLACEMENT_3D('',#7395,#7396,#7397);
-+#7399=CYLINDRICAL_SURFACE('',#7398,2.575E-1);
-+#7400=ORIENTED_EDGE('',*,*,#7388,.T.);
-+#7401=ORIENTED_EDGE('',*,*,#7364,.F.);
-+#7402=ORIENTED_EDGE('',*,*,#7385,.T.);
-+#7404=ORIENTED_EDGE('',*,*,#7403,.F.);
-+#7405=EDGE_LOOP('',(#7400,#7401,#7402,#7404));
-+#7406=FACE_OUTER_BOUND('',#7405,.F.);
-+#7407=ADVANCED_FACE('',(#7406),#7399,.F.);
-+#7408=CARTESIAN_POINT('',(1.125E0,1.E0,1.2E1));
-+#7409=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7410=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7411=AXIS2_PLACEMENT_3D('',#7408,#7409,#7410);
-+#7412=PLANE('',#7411);
-+#7413=ORIENTED_EDGE('',*,*,#7390,.T.);
-+#7414=ORIENTED_EDGE('',*,*,#7403,.T.);
-+#7415=EDGE_LOOP('',(#7413,#7414));
-+#7416=FACE_OUTER_BOUND('',#7415,.F.);
-+#7418=ORIENTED_EDGE('',*,*,#7417,.F.);
-+#7420=ORIENTED_EDGE('',*,*,#7419,.F.);
-+#7421=EDGE_LOOP('',(#7418,#7420));
-+#7422=FACE_BOUND('',#7421,.F.);
-+#7423=ADVANCED_FACE('',(#7416,#7422),#7412,.F.);
-+#7424=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7425=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7426=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7427=AXIS2_PLACEMENT_3D('',#7424,#7425,#7426);
-+#7428=CYLINDRICAL_SURFACE('',#7427,1.925E-1);
-+#7429=ORIENTED_EDGE('',*,*,#7417,.T.);
-+#7431=ORIENTED_EDGE('',*,*,#7430,.T.);
-+#7432=ORIENTED_EDGE('',*,*,#5620,.F.);
-+#7434=ORIENTED_EDGE('',*,*,#7433,.F.);
-+#7435=EDGE_LOOP('',(#7429,#7431,#7432,#7434));
-+#7436=FACE_OUTER_BOUND('',#7435,.F.);
-+#7437=ADVANCED_FACE('',(#7436),#7428,.F.);
-+#7438=CARTESIAN_POINT('',(1.125E0,1.5E0,1.2E1));
-+#7439=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7440=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7441=AXIS2_PLACEMENT_3D('',#7438,#7439,#7440);
-+#7442=CYLINDRICAL_SURFACE('',#7441,1.925E-1);
-+#7443=ORIENTED_EDGE('',*,*,#7419,.T.);
-+#7444=ORIENTED_EDGE('',*,*,#7433,.T.);
-+#7445=ORIENTED_EDGE('',*,*,#5622,.F.);
-+#7446=ORIENTED_EDGE('',*,*,#7430,.F.);
-+#7447=EDGE_LOOP('',(#7443,#7444,#7445,#7446));
-+#7448=FACE_OUTER_BOUND('',#7447,.F.);
-+#7449=ADVANCED_FACE('',(#7448),#7442,.F.);
-+#7450=CARTESIAN_POINT('',(-2.E0,2.5E0,8.E0));
-+#7451=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7452=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7453=AXIS2_PLACEMENT_3D('',#7450,#7451,#7452);
-+#7454=PLANE('',#7453);
-+#7455=ORIENTED_EDGE('',*,*,#7265,.T.);
-+#7456=ORIENTED_EDGE('',*,*,#6310,.T.);
-+#7458=ORIENTED_EDGE('',*,*,#7457,.F.);
-+#7459=ORIENTED_EDGE('',*,*,#5512,.F.);
-+#7460=ORIENTED_EDGE('',*,*,#5984,.T.);
-+#7462=ORIENTED_EDGE('',*,*,#7461,.T.);
-+#7463=EDGE_LOOP('',(#7455,#7456,#7458,#7459,#7460,#7462));
-+#7464=FACE_OUTER_BOUND('',#7463,.F.);
-+#7465=ADVANCED_FACE('',(#7464),#7454,.T.);
-+#7466=CARTESIAN_POINT('',(-1.5E0,0.E0,1.225E1));
-+#7467=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7468=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7469=AXIS2_PLACEMENT_3D('',#7466,#7467,#7468);
-+#7470=PLANE('',#7469);
-+#7471=ORIENTED_EDGE('',*,*,#6731,.F.);
-+#7472=ORIENTED_EDGE('',*,*,#5514,.T.);
-+#7473=ORIENTED_EDGE('',*,*,#7457,.T.);
-+#7474=ORIENTED_EDGE('',*,*,#6308,.F.);
-+#7475=EDGE_LOOP('',(#7471,#7472,#7473,#7474));
-+#7476=FACE_OUTER_BOUND('',#7475,.F.);
-+#7477=ADVANCED_FACE('',(#7476),#7470,.T.);
-+#7478=CARTESIAN_POINT('',(3.E0,1.15E1,8.E0));
-+#7479=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7480=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7481=AXIS2_PLACEMENT_3D('',#7478,#7479,#7480);
-+#7482=PLANE('',#7481);
-+#7483=ORIENTED_EDGE('',*,*,#5982,.F.);
-+#7485=ORIENTED_EDGE('',*,*,#7484,.T.);
-+#7486=ORIENTED_EDGE('',*,*,#7267,.T.);
-+#7487=ORIENTED_EDGE('',*,*,#7461,.F.);
-+#7488=EDGE_LOOP('',(#7483,#7485,#7486,#7487));
-+#7489=FACE_OUTER_BOUND('',#7488,.F.);
-+#7490=ADVANCED_FACE('',(#7489),#7482,.T.);
-+#7491=CARTESIAN_POINT('',(5.E0,1.15E1,8.E0));
-+#7492=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7493=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7494=AXIS2_PLACEMENT_3D('',#7491,#7492,#7493);
-+#7495=PLANE('',#7494);
-+#7496=ORIENTED_EDGE('',*,*,#5980,.F.);
-+#7497=ORIENTED_EDGE('',*,*,#7239,.T.);
-+#7498=ORIENTED_EDGE('',*,*,#7269,.T.);
-+#7499=ORIENTED_EDGE('',*,*,#7484,.F.);
-+#7500=EDGE_LOOP('',(#7496,#7497,#7498,#7499));
-+#7501=FACE_OUTER_BOUND('',#7500,.F.);
-+#7503=ORIENTED_EDGE('',*,*,#7502,.F.);
-+#7505=ORIENTED_EDGE('',*,*,#7504,.F.);
-+#7506=EDGE_LOOP('',(#7503,#7505));
-+#7507=FACE_BOUND('',#7506,.F.);
-+#7509=ORIENTED_EDGE('',*,*,#7508,.F.);
-+#7511=ORIENTED_EDGE('',*,*,#7510,.F.);
-+#7512=EDGE_LOOP('',(#7509,#7511));
-+#7513=FACE_BOUND('',#7512,.F.);
-+#7514=ADVANCED_FACE('',(#7501,#7507,#7513),#7495,.T.);
-+#7515=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#7516=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7517=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7518=AXIS2_PLACEMENT_3D('',#7515,#7516,#7517);
-+#7519=CYLINDRICAL_SURFACE('',#7518,9.5E-2);
-+#7520=ORIENTED_EDGE('',*,*,#7502,.T.);
-+#7522=ORIENTED_EDGE('',*,*,#7521,.T.);
-+#7524=ORIENTED_EDGE('',*,*,#7523,.F.);
-+#7526=ORIENTED_EDGE('',*,*,#7525,.F.);
-+#7527=EDGE_LOOP('',(#7520,#7522,#7524,#7526));
-+#7528=FACE_OUTER_BOUND('',#7527,.F.);
-+#7529=ADVANCED_FACE('',(#7528),#7519,.F.);
-+#7530=CARTESIAN_POINT('',(4.E0,1.15E1,9.E0));
-+#7531=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7532=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7533=AXIS2_PLACEMENT_3D('',#7530,#7531,#7532);
-+#7534=CYLINDRICAL_SURFACE('',#7533,9.5E-2);
-+#7535=ORIENTED_EDGE('',*,*,#7504,.T.);
-+#7536=ORIENTED_EDGE('',*,*,#7525,.T.);
-+#7538=ORIENTED_EDGE('',*,*,#7537,.F.);
-+#7539=ORIENTED_EDGE('',*,*,#7521,.F.);
-+#7540=EDGE_LOOP('',(#7535,#7536,#7538,#7539));
-+#7541=FACE_OUTER_BOUND('',#7540,.F.);
-+#7542=ADVANCED_FACE('',(#7541),#7534,.F.);
-+#7543=CARTESIAN_POINT('',(4.E0,1.1125E1,9.E0));
-+#7544=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7545=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7546=AXIS2_PLACEMENT_3D('',#7543,#7544,#7545);
-+#7547=PLANE('',#7546);
-+#7548=ORIENTED_EDGE('',*,*,#7523,.T.);
-+#7549=ORIENTED_EDGE('',*,*,#7537,.T.);
-+#7550=EDGE_LOOP('',(#7548,#7549));
-+#7551=FACE_OUTER_BOUND('',#7550,.F.);
-+#7552=ADVANCED_FACE('',(#7551),#7547,.F.);
-+#7553=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#7554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7556=AXIS2_PLACEMENT_3D('',#7553,#7554,#7555);
-+#7557=CYLINDRICAL_SURFACE('',#7556,6.25E-2);
-+#7558=ORIENTED_EDGE('',*,*,#7508,.T.);
-+#7560=ORIENTED_EDGE('',*,*,#7559,.T.);
-+#7562=ORIENTED_EDGE('',*,*,#7561,.F.);
-+#7564=ORIENTED_EDGE('',*,*,#7563,.F.);
-+#7565=EDGE_LOOP('',(#7558,#7560,#7562,#7564));
-+#7566=FACE_OUTER_BOUND('',#7565,.F.);
-+#7567=ADVANCED_FACE('',(#7566),#7557,.F.);
-+#7568=CARTESIAN_POINT('',(3.867417478528E0,1.15E1,9.132582521472E0));
-+#7569=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7570=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7571=AXIS2_PLACEMENT_3D('',#7568,#7569,#7570);
-+#7572=CYLINDRICAL_SURFACE('',#7571,6.25E-2);
-+#7573=ORIENTED_EDGE('',*,*,#7510,.T.);
-+#7574=ORIENTED_EDGE('',*,*,#7563,.T.);
-+#7576=ORIENTED_EDGE('',*,*,#7575,.F.);
-+#7577=ORIENTED_EDGE('',*,*,#7559,.F.);
-+#7578=EDGE_LOOP('',(#7573,#7574,#7576,#7577));
-+#7579=FACE_OUTER_BOUND('',#7578,.F.);
-+#7580=ADVANCED_FACE('',(#7579),#7572,.F.);
-+#7581=CARTESIAN_POINT('',(3.867417478528E0,1.125E1,9.132582521472E0));
-+#7582=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7583=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7584=AXIS2_PLACEMENT_3D('',#7581,#7582,#7583);
-+#7585=PLANE('',#7584);
-+#7586=ORIENTED_EDGE('',*,*,#7561,.T.);
-+#7587=ORIENTED_EDGE('',*,*,#7575,.T.);
-+#7588=EDGE_LOOP('',(#7586,#7587));
-+#7589=FACE_OUTER_BOUND('',#7588,.F.);
-+#7590=ADVANCED_FACE('',(#7589),#7585,.F.);
-+#7591=CARTESIAN_POINT('',(2.15E0,6.65E0,9.441108058217E0));
-+#7592=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7593=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7594=AXIS2_PLACEMENT_3D('',#7591,#7592,#7593);
-+#7595=CYLINDRICAL_SURFACE('',#7594,3.5E-1);
-+#7597=ORIENTED_EDGE('',*,*,#7596,.T.);
-+#7598=ORIENTED_EDGE('',*,*,#7285,.T.);
-+#7600=ORIENTED_EDGE('',*,*,#7599,.F.);
-+#7602=ORIENTED_EDGE('',*,*,#7601,.T.);
-+#7603=EDGE_LOOP('',(#7597,#7598,#7600,#7602));
-+#7604=FACE_OUTER_BOUND('',#7603,.F.);
-+#7605=ADVANCED_FACE('',(#7604),#7595,.T.);
-+#7606=CARTESIAN_POINT('',(2.5E0,7.E0,1.E1));
-+#7607=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7608=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7609=AXIS2_PLACEMENT_3D('',#7606,#7607,#7608);
-+#7610=PLANE('',#7609);
-+#7611=ORIENTED_EDGE('',*,*,#7596,.F.);
-+#7613=ORIENTED_EDGE('',*,*,#7612,.T.);
-+#7615=ORIENTED_EDGE('',*,*,#7614,.F.);
-+#7616=ORIENTED_EDGE('',*,*,#7287,.F.);
-+#7617=EDGE_LOOP('',(#7611,#7613,#7615,#7616));
-+#7618=FACE_OUTER_BOUND('',#7617,.F.);
-+#7619=ADVANCED_FACE('',(#7618),#7610,.F.);
-+#7620=CARTESIAN_POINT('',(0.E0,0.E0,9.5E0));
-+#7621=DIRECTION('',(0.E0,0.E0,1.E0));
-+#7622=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7623=AXIS2_PLACEMENT_3D('',#7620,#7621,#7622);
-+#7624=PLANE('',#7623);
-+#7625=ORIENTED_EDGE('',*,*,#7612,.F.);
-+#7626=ORIENTED_EDGE('',*,*,#7601,.F.);
-+#7628=ORIENTED_EDGE('',*,*,#7627,.F.);
-+#7630=ORIENTED_EDGE('',*,*,#7629,.F.);
-+#7632=ORIENTED_EDGE('',*,*,#7631,.F.);
-+#7634=ORIENTED_EDGE('',*,*,#7633,.F.);
-+#7636=ORIENTED_EDGE('',*,*,#7635,.F.);
-+#7638=ORIENTED_EDGE('',*,*,#7637,.F.);
-+#7640=ORIENTED_EDGE('',*,*,#7639,.F.);
-+#7642=ORIENTED_EDGE('',*,*,#7641,.F.);
-+#7644=ORIENTED_EDGE('',*,*,#7643,.F.);
-+#7646=ORIENTED_EDGE('',*,*,#7645,.F.);
-+#7647=EDGE_LOOP('',(#7625,#7626,#7628,#7630,#7632,#7634,#7636,#7638,#7640,#7642,
-+#7644,#7646));
-+#7648=FACE_OUTER_BOUND('',#7647,.F.);
-+#7649=ADVANCED_FACE('',(#7648),#7624,.T.);
-+#7650=CARTESIAN_POINT('',(1.357969178416E0,7.E0,1.E1));
-+#7651=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7652=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7653=AXIS2_PLACEMENT_3D('',#7650,#7651,#7652);
-+#7654=PLANE('',#7653);
-+#7655=ORIENTED_EDGE('',*,*,#7599,.T.);
-+#7656=ORIENTED_EDGE('',*,*,#7307,.F.);
-+#7658=ORIENTED_EDGE('',*,*,#7657,.T.);
-+#7659=ORIENTED_EDGE('',*,*,#7627,.T.);
-+#7660=EDGE_LOOP('',(#7655,#7656,#7658,#7659));
-+#7661=FACE_OUTER_BOUND('',#7660,.F.);
-+#7662=ADVANCED_FACE('',(#7661),#7654,.F.);
-+#7663=CARTESIAN_POINT('',(1.952799239454E0,7.35E0,1.006892397423E1));
-+#7664=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7665=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7666=AXIS2_PLACEMENT_3D('',#7663,#7664,#7665);
-+#7667=CYLINDRICAL_SURFACE('',#7666,3.5E-1);
-+#7668=ORIENTED_EDGE('',*,*,#7657,.F.);
-+#7669=ORIENTED_EDGE('',*,*,#7305,.T.);
-+#7671=ORIENTED_EDGE('',*,*,#7670,.T.);
-+#7672=ORIENTED_EDGE('',*,*,#7629,.T.);
-+#7673=EDGE_LOOP('',(#7668,#7669,#7671,#7672));
-+#7674=FACE_OUTER_BOUND('',#7673,.F.);
-+#7675=ADVANCED_FACE('',(#7674),#7667,.F.);
-+#7676=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,1.E1));
-+#7677=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7678=DIRECTION('',(-4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#7679=AXIS2_PLACEMENT_3D('',#7676,#7677,#7678);
-+#7680=PLANE('',#7679);
-+#7681=ORIENTED_EDGE('',*,*,#7670,.F.);
-+#7682=ORIENTED_EDGE('',*,*,#7303,.F.);
-+#7684=ORIENTED_EDGE('',*,*,#7683,.T.);
-+#7685=ORIENTED_EDGE('',*,*,#7631,.T.);
-+#7686=EDGE_LOOP('',(#7681,#7682,#7684,#7685));
-+#7687=FACE_OUTER_BOUND('',#7686,.F.);
-+#7688=ADVANCED_FACE('',(#7687),#7680,.F.);
-+#7689=CARTESIAN_POINT('',(2.952799239454E0,9.15E0,1.006892397423E1));
-+#7690=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7691=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#7692=AXIS2_PLACEMENT_3D('',#7689,#7690,#7691);
-+#7693=CYLINDRICAL_SURFACE('',#7692,3.5E-1);
-+#7694=ORIENTED_EDGE('',*,*,#7683,.F.);
-+#7695=ORIENTED_EDGE('',*,*,#7301,.T.);
-+#7697=ORIENTED_EDGE('',*,*,#7696,.T.);
-+#7698=ORIENTED_EDGE('',*,*,#7633,.T.);
-+#7699=EDGE_LOOP('',(#7694,#7695,#7697,#7698));
-+#7700=FACE_OUTER_BOUND('',#7699,.F.);
-+#7701=ADVANCED_FACE('',(#7700),#7693,.F.);
-+#7702=CARTESIAN_POINT('',(4.5E0,9.5E0,1.E1));
-+#7703=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7704=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7705=AXIS2_PLACEMENT_3D('',#7702,#7703,#7704);
-+#7706=PLANE('',#7705);
-+#7707=ORIENTED_EDGE('',*,*,#7696,.F.);
-+#7708=ORIENTED_EDGE('',*,*,#7299,.F.);
-+#7710=ORIENTED_EDGE('',*,*,#7709,.T.);
-+#7711=ORIENTED_EDGE('',*,*,#7635,.T.);
-+#7712=EDGE_LOOP('',(#7707,#7708,#7710,#7711));
-+#7713=FACE_OUTER_BOUND('',#7712,.F.);
-+#7714=ADVANCED_FACE('',(#7713),#7706,.F.);
-+#7715=CARTESIAN_POINT('',(4.15E0,9.15E0,1.006892397423E1));
-+#7716=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7717=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7718=AXIS2_PLACEMENT_3D('',#7715,#7716,#7717);
-+#7719=CYLINDRICAL_SURFACE('',#7718,3.5E-1);
-+#7720=ORIENTED_EDGE('',*,*,#7709,.F.);
-+#7721=ORIENTED_EDGE('',*,*,#7297,.T.);
-+#7723=ORIENTED_EDGE('',*,*,#7722,.T.);
-+#7724=ORIENTED_EDGE('',*,*,#7637,.T.);
-+#7725=EDGE_LOOP('',(#7720,#7721,#7723,#7724));
-+#7726=FACE_OUTER_BOUND('',#7725,.F.);
-+#7727=ADVANCED_FACE('',(#7726),#7719,.F.);
-+#7728=CARTESIAN_POINT('',(4.5E0,2.E0,1.E1));
-+#7729=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7730=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7731=AXIS2_PLACEMENT_3D('',#7728,#7729,#7730);
-+#7732=PLANE('',#7731);
-+#7734=ORIENTED_EDGE('',*,*,#7733,.T.);
-+#7735=ORIENTED_EDGE('',*,*,#7639,.T.);
-+#7736=ORIENTED_EDGE('',*,*,#7722,.F.);
-+#7737=ORIENTED_EDGE('',*,*,#7295,.F.);
-+#7738=EDGE_LOOP('',(#7734,#7735,#7736,#7737));
-+#7739=FACE_OUTER_BOUND('',#7738,.F.);
-+#7740=ADVANCED_FACE('',(#7739),#7732,.F.);
-+#7741=CARTESIAN_POINT('',(4.15E0,2.35E0,1.006892397423E1));
-+#7742=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7743=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7744=AXIS2_PLACEMENT_3D('',#7741,#7742,#7743);
-+#7745=CYLINDRICAL_SURFACE('',#7744,3.5E-1);
-+#7746=ORIENTED_EDGE('',*,*,#7733,.F.);
-+#7747=ORIENTED_EDGE('',*,*,#7293,.T.);
-+#7749=ORIENTED_EDGE('',*,*,#7748,.T.);
-+#7750=ORIENTED_EDGE('',*,*,#7641,.T.);
-+#7751=EDGE_LOOP('',(#7746,#7747,#7749,#7750));
-+#7752=FACE_OUTER_BOUND('',#7751,.F.);
-+#7753=ADVANCED_FACE('',(#7752),#7745,.F.);
-+#7754=CARTESIAN_POINT('',(2.5E0,2.E0,1.E1));
-+#7755=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7756=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7757=AXIS2_PLACEMENT_3D('',#7754,#7755,#7756);
-+#7758=PLANE('',#7757);
-+#7760=ORIENTED_EDGE('',*,*,#7759,.T.);
-+#7761=ORIENTED_EDGE('',*,*,#7643,.T.);
-+#7762=ORIENTED_EDGE('',*,*,#7748,.F.);
-+#7763=ORIENTED_EDGE('',*,*,#7291,.F.);
-+#7764=EDGE_LOOP('',(#7760,#7761,#7762,#7763));
-+#7765=FACE_OUTER_BOUND('',#7764,.F.);
-+#7766=ADVANCED_FACE('',(#7765),#7758,.F.);
-+#7767=CARTESIAN_POINT('',(2.85E0,2.35E0,1.006892397423E1));
-+#7768=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#7769=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7770=AXIS2_PLACEMENT_3D('',#7767,#7768,#7769);
-+#7771=CYLINDRICAL_SURFACE('',#7770,3.5E-1);
-+#7772=ORIENTED_EDGE('',*,*,#7759,.F.);
-+#7773=ORIENTED_EDGE('',*,*,#7289,.T.);
-+#7774=ORIENTED_EDGE('',*,*,#7614,.T.);
-+#7775=ORIENTED_EDGE('',*,*,#7645,.T.);
-+#7776=EDGE_LOOP('',(#7772,#7773,#7774,#7775));
-+#7777=FACE_OUTER_BOUND('',#7776,.F.);
-+#7778=ADVANCED_FACE('',(#7777),#7771,.F.);
-+#7779=CARTESIAN_POINT('',(1.9E1,1.5E0,1.175E1));
-+#7780=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#7781=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7782=AXIS2_PLACEMENT_3D('',#7779,#7780,#7781);
-+#7783=PLANE('',#7782);
-+#7784=ORIENTED_EDGE('',*,*,#7161,.F.);
-+#7785=ORIENTED_EDGE('',*,*,#6428,.T.);
-+#7786=ORIENTED_EDGE('',*,*,#6953,.T.);
-+#7787=ORIENTED_EDGE('',*,*,#5682,.F.);
-+#7788=EDGE_LOOP('',(#7784,#7785,#7786,#7787));
-+#7789=FACE_OUTER_BOUND('',#7788,.F.);
-+#7790=ADVANCED_FACE('',(#7789),#7783,.T.);
-+#7791=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#7792=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7793=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7794=AXIS2_PLACEMENT_3D('',#7791,#7792,#7793);
-+#7795=CYLINDRICAL_SURFACE('',#7794,9.5E-2);
-+#7796=ORIENTED_EDGE('',*,*,#7140,.F.);
-+#7798=ORIENTED_EDGE('',*,*,#7797,.T.);
-+#7800=ORIENTED_EDGE('',*,*,#7799,.T.);
-+#7802=ORIENTED_EDGE('',*,*,#7801,.F.);
-+#7803=EDGE_LOOP('',(#7796,#7798,#7800,#7802));
-+#7804=FACE_OUTER_BOUND('',#7803,.F.);
-+#7805=ADVANCED_FACE('',(#7804),#7795,.F.);
-+#7806=CARTESIAN_POINT('',(2.E1,1.15E1,9.E0));
-+#7807=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7808=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7809=AXIS2_PLACEMENT_3D('',#7806,#7807,#7808);
-+#7810=CYLINDRICAL_SURFACE('',#7809,9.5E-2);
-+#7811=ORIENTED_EDGE('',*,*,#7142,.F.);
-+#7812=ORIENTED_EDGE('',*,*,#7801,.T.);
-+#7814=ORIENTED_EDGE('',*,*,#7813,.T.);
-+#7815=ORIENTED_EDGE('',*,*,#7797,.F.);
-+#7816=EDGE_LOOP('',(#7811,#7812,#7814,#7815));
-+#7817=FACE_OUTER_BOUND('',#7816,.F.);
-+#7818=ADVANCED_FACE('',(#7817),#7810,.F.);
-+#7819=CARTESIAN_POINT('',(2.E1,1.1125E1,9.E0));
-+#7820=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7821=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7822=AXIS2_PLACEMENT_3D('',#7819,#7820,#7821);
-+#7823=PLANE('',#7822);
-+#7824=ORIENTED_EDGE('',*,*,#7799,.F.);
-+#7825=ORIENTED_EDGE('',*,*,#7813,.F.);
-+#7826=EDGE_LOOP('',(#7824,#7825));
-+#7827=FACE_OUTER_BOUND('',#7826,.F.);
-+#7828=ADVANCED_FACE('',(#7827),#7823,.T.);
-+#7829=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#7830=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7831=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7832=AXIS2_PLACEMENT_3D('',#7829,#7830,#7831);
-+#7833=CYLINDRICAL_SURFACE('',#7832,6.25E-2);
-+#7834=ORIENTED_EDGE('',*,*,#7146,.F.);
-+#7836=ORIENTED_EDGE('',*,*,#7835,.T.);
-+#7838=ORIENTED_EDGE('',*,*,#7837,.T.);
-+#7840=ORIENTED_EDGE('',*,*,#7839,.F.);
-+#7841=EDGE_LOOP('',(#7834,#7836,#7838,#7840));
-+#7842=FACE_OUTER_BOUND('',#7841,.F.);
-+#7843=ADVANCED_FACE('',(#7842),#7833,.F.);
-+#7844=CARTESIAN_POINT('',(2.013258252147E1,1.15E1,9.132582521472E0));
-+#7845=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7846=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7847=AXIS2_PLACEMENT_3D('',#7844,#7845,#7846);
-+#7848=CYLINDRICAL_SURFACE('',#7847,6.25E-2);
-+#7849=ORIENTED_EDGE('',*,*,#7148,.F.);
-+#7850=ORIENTED_EDGE('',*,*,#7839,.T.);
-+#7852=ORIENTED_EDGE('',*,*,#7851,.T.);
-+#7853=ORIENTED_EDGE('',*,*,#7835,.F.);
-+#7854=EDGE_LOOP('',(#7849,#7850,#7852,#7853));
-+#7855=FACE_OUTER_BOUND('',#7854,.F.);
-+#7856=ADVANCED_FACE('',(#7855),#7848,.F.);
-+#7857=CARTESIAN_POINT('',(2.013258252147E1,1.125E1,9.132582521472E0));
-+#7858=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7859=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7860=AXIS2_PLACEMENT_3D('',#7857,#7858,#7859);
-+#7861=PLANE('',#7860);
-+#7862=ORIENTED_EDGE('',*,*,#7837,.F.);
-+#7863=ORIENTED_EDGE('',*,*,#7851,.F.);
-+#7864=EDGE_LOOP('',(#7862,#7863));
-+#7865=FACE_OUTER_BOUND('',#7864,.F.);
-+#7866=ADVANCED_FACE('',(#7865),#7861,.T.);
-+#7867=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
-+#7868=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7869=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7870=AXIS2_PLACEMENT_3D('',#7867,#7868,#7869);
-+#7871=CYLINDRICAL_SURFACE('',#7870,1.E-1);
-+#7872=ORIENTED_EDGE('',*,*,#6346,.F.);
-+#7874=ORIENTED_EDGE('',*,*,#7873,.F.);
-+#7876=ORIENTED_EDGE('',*,*,#7875,.T.);
-+#7878=ORIENTED_EDGE('',*,*,#7877,.T.);
-+#7879=EDGE_LOOP('',(#7872,#7874,#7876,#7878));
-+#7880=FACE_OUTER_BOUND('',#7879,.F.);
-+#7881=ADVANCED_FACE('',(#7880),#7871,.F.);
-+#7882=CARTESIAN_POINT('',(1.755E1,1.176878221735E0,2.975E1));
-+#7883=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7884=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7885=AXIS2_PLACEMENT_3D('',#7882,#7883,#7884);
-+#7886=CYLINDRICAL_SURFACE('',#7885,1.E-1);
-+#7887=ORIENTED_EDGE('',*,*,#6348,.F.);
-+#7888=ORIENTED_EDGE('',*,*,#7877,.F.);
-+#7890=ORIENTED_EDGE('',*,*,#7889,.F.);
-+#7891=ORIENTED_EDGE('',*,*,#7873,.T.);
-+#7892=EDGE_LOOP('',(#7887,#7888,#7890,#7891));
-+#7893=FACE_OUTER_BOUND('',#7892,.F.);
-+#7894=ADVANCED_FACE('',(#7893),#7886,.F.);
-+#7895=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
-+#7896=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7897=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7898=AXIS2_PLACEMENT_3D('',#7895,#7896,#7897);
-+#7899=CONICAL_SURFACE('',#7898,7.288815195685E-2,6.E1);
-+#7901=ORIENTED_EDGE('',*,*,#7900,.F.);
-+#7903=ORIENTED_EDGE('',*,*,#7902,.T.);
-+#7904=ORIENTED_EDGE('',*,*,#7889,.T.);
-+#7905=EDGE_LOOP('',(#7901,#7903,#7904));
-+#7906=FACE_OUTER_BOUND('',#7905,.F.);
-+#7907=ADVANCED_FACE('',(#7906),#7899,.F.);
-+#7908=CARTESIAN_POINT('',(1.755E1,1.234346967234E0,2.975E1));
-+#7909=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7910=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7911=AXIS2_PLACEMENT_3D('',#7908,#7909,#7910);
-+#7912=CONICAL_SURFACE('',#7911,7.288815195685E-2,6.E1);
-+#7913=ORIENTED_EDGE('',*,*,#7900,.T.);
-+#7914=ORIENTED_EDGE('',*,*,#7875,.F.);
-+#7915=ORIENTED_EDGE('',*,*,#7902,.F.);
-+#7916=EDGE_LOOP('',(#7913,#7914,#7915));
-+#7917=FACE_OUTER_BOUND('',#7916,.F.);
-+#7918=ADVANCED_FACE('',(#7917),#7912,.F.);
-+#7919=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
-+#7920=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7921=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7922=AXIS2_PLACEMENT_3D('',#7919,#7920,#7921);
-+#7923=CYLINDRICAL_SURFACE('',#7922,1.E-1);
-+#7924=ORIENTED_EDGE('',*,*,#6352,.F.);
-+#7926=ORIENTED_EDGE('',*,*,#7925,.F.);
-+#7928=ORIENTED_EDGE('',*,*,#7927,.T.);
-+#7930=ORIENTED_EDGE('',*,*,#7929,.T.);
-+#7931=EDGE_LOOP('',(#7924,#7926,#7928,#7930));
-+#7932=FACE_OUTER_BOUND('',#7931,.F.);
-+#7933=ADVANCED_FACE('',(#7932),#7923,.F.);
-+#7934=CARTESIAN_POINT('',(1.655E1,1.176878221735E0,2.975E1));
-+#7935=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7936=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7937=AXIS2_PLACEMENT_3D('',#7934,#7935,#7936);
-+#7938=CYLINDRICAL_SURFACE('',#7937,1.E-1);
-+#7939=ORIENTED_EDGE('',*,*,#6354,.F.);
-+#7940=ORIENTED_EDGE('',*,*,#7929,.F.);
-+#7942=ORIENTED_EDGE('',*,*,#7941,.F.);
-+#7943=ORIENTED_EDGE('',*,*,#7925,.T.);
-+#7944=EDGE_LOOP('',(#7939,#7940,#7942,#7943));
-+#7945=FACE_OUTER_BOUND('',#7944,.F.);
-+#7946=ADVANCED_FACE('',(#7945),#7938,.F.);
-+#7947=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
-+#7948=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7949=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7950=AXIS2_PLACEMENT_3D('',#7947,#7948,#7949);
-+#7951=CONICAL_SURFACE('',#7950,7.288815195685E-2,6.E1);
-+#7953=ORIENTED_EDGE('',*,*,#7952,.F.);
-+#7955=ORIENTED_EDGE('',*,*,#7954,.T.);
-+#7956=ORIENTED_EDGE('',*,*,#7941,.T.);
-+#7957=EDGE_LOOP('',(#7953,#7955,#7956));
-+#7958=FACE_OUTER_BOUND('',#7957,.F.);
-+#7959=ADVANCED_FACE('',(#7958),#7951,.F.);
-+#7960=CARTESIAN_POINT('',(1.655E1,1.234346967234E0,2.975E1));
-+#7961=DIRECTION('',(0.E0,1.E0,0.E0));
-+#7962=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#7963=AXIS2_PLACEMENT_3D('',#7960,#7961,#7962);
-+#7964=CONICAL_SURFACE('',#7963,7.288815195685E-2,6.E1);
-+#7965=ORIENTED_EDGE('',*,*,#7952,.T.);
-+#7966=ORIENTED_EDGE('',*,*,#7927,.F.);
-+#7967=ORIENTED_EDGE('',*,*,#7954,.F.);
-+#7968=EDGE_LOOP('',(#7965,#7966,#7967));
-+#7969=FACE_OUTER_BOUND('',#7968,.F.);
-+#7970=ADVANCED_FACE('',(#7969),#7964,.F.);
-+#7971=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#7972=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7973=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7974=AXIS2_PLACEMENT_3D('',#7971,#7972,#7973);
-+#7975=CYLINDRICAL_SURFACE('',#7974,2.575E-1);
-+#7976=ORIENTED_EDGE('',*,*,#6248,.T.);
-+#7978=ORIENTED_EDGE('',*,*,#7977,.T.);
-+#7980=ORIENTED_EDGE('',*,*,#7979,.F.);
-+#7982=ORIENTED_EDGE('',*,*,#7981,.F.);
-+#7983=EDGE_LOOP('',(#7976,#7978,#7980,#7982));
-+#7984=FACE_OUTER_BOUND('',#7983,.F.);
-+#7985=ADVANCED_FACE('',(#7984),#7975,.F.);
-+#7986=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#7987=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#7988=DIRECTION('',(1.E0,0.E0,0.E0));
-+#7989=AXIS2_PLACEMENT_3D('',#7986,#7987,#7988);
-+#7990=CYLINDRICAL_SURFACE('',#7989,2.575E-1);
-+#7991=ORIENTED_EDGE('',*,*,#6250,.T.);
-+#7992=ORIENTED_EDGE('',*,*,#7981,.T.);
-+#7994=ORIENTED_EDGE('',*,*,#7993,.F.);
-+#7995=ORIENTED_EDGE('',*,*,#7977,.F.);
-+#7996=EDGE_LOOP('',(#7991,#7992,#7994,#7995));
-+#7997=FACE_OUTER_BOUND('',#7996,.F.);
-+#7998=ADVANCED_FACE('',(#7997),#7990,.F.);
-+#7999=CARTESIAN_POINT('',(1.125E0,1.E0,6.E0));
-+#8000=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8001=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8002=AXIS2_PLACEMENT_3D('',#7999,#8000,#8001);
-+#8003=PLANE('',#8002);
-+#8004=ORIENTED_EDGE('',*,*,#7979,.T.);
-+#8005=ORIENTED_EDGE('',*,*,#7993,.T.);
-+#8006=EDGE_LOOP('',(#8004,#8005));
-+#8007=FACE_OUTER_BOUND('',#8006,.F.);
-+#8009=ORIENTED_EDGE('',*,*,#8008,.F.);
-+#8011=ORIENTED_EDGE('',*,*,#8010,.F.);
-+#8012=EDGE_LOOP('',(#8009,#8011));
-+#8013=FACE_BOUND('',#8012,.F.);
-+#8014=ADVANCED_FACE('',(#8007,#8013),#8003,.F.);
-+#8015=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#8016=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8017=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8018=AXIS2_PLACEMENT_3D('',#8015,#8016,#8017);
-+#8019=CYLINDRICAL_SURFACE('',#8018,1.925E-1);
-+#8020=ORIENTED_EDGE('',*,*,#8008,.T.);
-+#8022=ORIENTED_EDGE('',*,*,#8021,.T.);
-+#8023=ORIENTED_EDGE('',*,*,#5626,.F.);
-+#8025=ORIENTED_EDGE('',*,*,#8024,.F.);
-+#8026=EDGE_LOOP('',(#8020,#8022,#8023,#8025));
-+#8027=FACE_OUTER_BOUND('',#8026,.F.);
-+#8028=ADVANCED_FACE('',(#8027),#8019,.F.);
-+#8029=CARTESIAN_POINT('',(1.125E0,1.5E0,6.E0));
-+#8030=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8031=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8032=AXIS2_PLACEMENT_3D('',#8029,#8030,#8031);
-+#8033=CYLINDRICAL_SURFACE('',#8032,1.925E-1);
-+#8034=ORIENTED_EDGE('',*,*,#8010,.T.);
-+#8035=ORIENTED_EDGE('',*,*,#8024,.T.);
-+#8036=ORIENTED_EDGE('',*,*,#5628,.F.);
-+#8037=ORIENTED_EDGE('',*,*,#8021,.F.);
-+#8038=EDGE_LOOP('',(#8034,#8035,#8036,#8037));
-+#8039=FACE_OUTER_BOUND('',#8038,.F.);
-+#8040=ADVANCED_FACE('',(#8039),#8033,.F.);
-+#8041=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8042=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8043=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8044=AXIS2_PLACEMENT_3D('',#8041,#8042,#8043);
-+#8045=CYLINDRICAL_SURFACE('',#8044,2.575E-1);
-+#8046=ORIENTED_EDGE('',*,*,#6358,.T.);
-+#8048=ORIENTED_EDGE('',*,*,#8047,.T.);
-+#8050=ORIENTED_EDGE('',*,*,#8049,.F.);
-+#8052=ORIENTED_EDGE('',*,*,#8051,.F.);
-+#8053=EDGE_LOOP('',(#8046,#8048,#8050,#8052));
-+#8054=FACE_OUTER_BOUND('',#8053,.F.);
-+#8055=ADVANCED_FACE('',(#8054),#8045,.F.);
-+#8056=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8057=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8058=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8059=AXIS2_PLACEMENT_3D('',#8056,#8057,#8058);
-+#8060=CYLINDRICAL_SURFACE('',#8059,2.575E-1);
-+#8061=ORIENTED_EDGE('',*,*,#6360,.T.);
-+#8062=ORIENTED_EDGE('',*,*,#8051,.T.);
-+#8064=ORIENTED_EDGE('',*,*,#8063,.F.);
-+#8065=ORIENTED_EDGE('',*,*,#8047,.F.);
-+#8066=EDGE_LOOP('',(#8061,#8062,#8064,#8065));
-+#8067=FACE_OUTER_BOUND('',#8066,.F.);
-+#8068=ADVANCED_FACE('',(#8067),#8060,.F.);
-+#8069=CARTESIAN_POINT('',(1.125E0,1.E0,1.8E1));
-+#8070=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8071=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8072=AXIS2_PLACEMENT_3D('',#8069,#8070,#8071);
-+#8073=PLANE('',#8072);
-+#8074=ORIENTED_EDGE('',*,*,#8049,.T.);
-+#8075=ORIENTED_EDGE('',*,*,#8063,.T.);
-+#8076=EDGE_LOOP('',(#8074,#8075));
-+#8077=FACE_OUTER_BOUND('',#8076,.F.);
-+#8079=ORIENTED_EDGE('',*,*,#8078,.F.);
-+#8081=ORIENTED_EDGE('',*,*,#8080,.F.);
-+#8082=EDGE_LOOP('',(#8079,#8081));
-+#8083=FACE_BOUND('',#8082,.F.);
-+#8084=ADVANCED_FACE('',(#8077,#8083),#8073,.F.);
-+#8085=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8086=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8087=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8088=AXIS2_PLACEMENT_3D('',#8085,#8086,#8087);
-+#8089=CYLINDRICAL_SURFACE('',#8088,1.925E-1);
-+#8090=ORIENTED_EDGE('',*,*,#8078,.T.);
-+#8092=ORIENTED_EDGE('',*,*,#8091,.T.);
-+#8093=ORIENTED_EDGE('',*,*,#5614,.F.);
-+#8095=ORIENTED_EDGE('',*,*,#8094,.F.);
-+#8096=EDGE_LOOP('',(#8090,#8092,#8093,#8095));
-+#8097=FACE_OUTER_BOUND('',#8096,.F.);
-+#8098=ADVANCED_FACE('',(#8097),#8089,.F.);
-+#8099=CARTESIAN_POINT('',(1.125E0,1.5E0,1.8E1));
-+#8100=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8101=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8102=AXIS2_PLACEMENT_3D('',#8099,#8100,#8101);
-+#8103=CYLINDRICAL_SURFACE('',#8102,1.925E-1);
-+#8104=ORIENTED_EDGE('',*,*,#8080,.T.);
-+#8105=ORIENTED_EDGE('',*,*,#8094,.T.);
-+#8106=ORIENTED_EDGE('',*,*,#5616,.F.);
-+#8107=ORIENTED_EDGE('',*,*,#8091,.F.);
-+#8108=EDGE_LOOP('',(#8104,#8105,#8106,#8107));
-+#8109=FACE_OUTER_BOUND('',#8108,.F.);
-+#8110=ADVANCED_FACE('',(#8109),#8103,.F.);
-+#8111=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8112=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8113=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8114=AXIS2_PLACEMENT_3D('',#8111,#8112,#8113);
-+#8115=CYLINDRICAL_SURFACE('',#8114,2.575E-1);
-+#8116=ORIENTED_EDGE('',*,*,#6364,.T.);
-+#8118=ORIENTED_EDGE('',*,*,#8117,.T.);
-+#8120=ORIENTED_EDGE('',*,*,#8119,.F.);
-+#8122=ORIENTED_EDGE('',*,*,#8121,.F.);
-+#8123=EDGE_LOOP('',(#8116,#8118,#8120,#8122));
-+#8124=FACE_OUTER_BOUND('',#8123,.F.);
-+#8125=ADVANCED_FACE('',(#8124),#8115,.F.);
-+#8126=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8127=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8128=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8129=AXIS2_PLACEMENT_3D('',#8126,#8127,#8128);
-+#8130=CYLINDRICAL_SURFACE('',#8129,2.575E-1);
-+#8131=ORIENTED_EDGE('',*,*,#6366,.T.);
-+#8132=ORIENTED_EDGE('',*,*,#8121,.T.);
-+#8134=ORIENTED_EDGE('',*,*,#8133,.F.);
-+#8135=ORIENTED_EDGE('',*,*,#8117,.F.);
-+#8136=EDGE_LOOP('',(#8131,#8132,#8134,#8135));
-+#8137=FACE_OUTER_BOUND('',#8136,.F.);
-+#8138=ADVANCED_FACE('',(#8137),#8130,.F.);
-+#8139=CARTESIAN_POINT('',(1.125E0,1.E0,2.4E1));
-+#8140=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8141=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8142=AXIS2_PLACEMENT_3D('',#8139,#8140,#8141);
-+#8143=PLANE('',#8142);
-+#8144=ORIENTED_EDGE('',*,*,#8119,.T.);
-+#8145=ORIENTED_EDGE('',*,*,#8133,.T.);
-+#8146=EDGE_LOOP('',(#8144,#8145));
-+#8147=FACE_OUTER_BOUND('',#8146,.F.);
-+#8149=ORIENTED_EDGE('',*,*,#8148,.F.);
-+#8151=ORIENTED_EDGE('',*,*,#8150,.F.);
-+#8152=EDGE_LOOP('',(#8149,#8151));
-+#8153=FACE_BOUND('',#8152,.F.);
-+#8154=ADVANCED_FACE('',(#8147,#8153),#8143,.F.);
-+#8155=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8156=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8157=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8158=AXIS2_PLACEMENT_3D('',#8155,#8156,#8157);
-+#8159=CYLINDRICAL_SURFACE('',#8158,1.925E-1);
-+#8160=ORIENTED_EDGE('',*,*,#8148,.T.);
-+#8162=ORIENTED_EDGE('',*,*,#8161,.T.);
-+#8163=ORIENTED_EDGE('',*,*,#5608,.F.);
-+#8165=ORIENTED_EDGE('',*,*,#8164,.F.);
-+#8166=EDGE_LOOP('',(#8160,#8162,#8163,#8165));
-+#8167=FACE_OUTER_BOUND('',#8166,.F.);
-+#8168=ADVANCED_FACE('',(#8167),#8159,.F.);
-+#8169=CARTESIAN_POINT('',(1.125E0,1.5E0,2.4E1));
-+#8170=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8171=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8172=AXIS2_PLACEMENT_3D('',#8169,#8170,#8171);
-+#8173=CYLINDRICAL_SURFACE('',#8172,1.925E-1);
-+#8174=ORIENTED_EDGE('',*,*,#8150,.T.);
-+#8175=ORIENTED_EDGE('',*,*,#8164,.T.);
-+#8176=ORIENTED_EDGE('',*,*,#5610,.F.);
-+#8177=ORIENTED_EDGE('',*,*,#8161,.F.);
-+#8178=EDGE_LOOP('',(#8174,#8175,#8176,#8177));
-+#8179=FACE_OUTER_BOUND('',#8178,.F.);
-+#8180=ADVANCED_FACE('',(#8179),#8173,.F.);
-+#8181=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8182=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8183=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8184=AXIS2_PLACEMENT_3D('',#8181,#8182,#8183);
-+#8185=CYLINDRICAL_SURFACE('',#8184,2.575E-1);
-+#8186=ORIENTED_EDGE('',*,*,#6254,.T.);
-+#8188=ORIENTED_EDGE('',*,*,#8187,.T.);
-+#8190=ORIENTED_EDGE('',*,*,#8189,.F.);
-+#8192=ORIENTED_EDGE('',*,*,#8191,.F.);
-+#8193=EDGE_LOOP('',(#8186,#8188,#8190,#8192));
-+#8194=FACE_OUTER_BOUND('',#8193,.F.);
-+#8195=ADVANCED_FACE('',(#8194),#8185,.F.);
-+#8196=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8197=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8198=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8199=AXIS2_PLACEMENT_3D('',#8196,#8197,#8198);
-+#8200=CYLINDRICAL_SURFACE('',#8199,2.575E-1);
-+#8201=ORIENTED_EDGE('',*,*,#6256,.T.);
-+#8202=ORIENTED_EDGE('',*,*,#8191,.T.);
-+#8204=ORIENTED_EDGE('',*,*,#8203,.F.);
-+#8205=ORIENTED_EDGE('',*,*,#8187,.F.);
-+#8206=EDGE_LOOP('',(#8201,#8202,#8204,#8205));
-+#8207=FACE_OUTER_BOUND('',#8206,.F.);
-+#8208=ADVANCED_FACE('',(#8207),#8200,.F.);
-+#8209=CARTESIAN_POINT('',(2.2875E1,1.E0,6.E0));
-+#8210=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8211=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8212=AXIS2_PLACEMENT_3D('',#8209,#8210,#8211);
-+#8213=PLANE('',#8212);
-+#8214=ORIENTED_EDGE('',*,*,#8189,.T.);
-+#8215=ORIENTED_EDGE('',*,*,#8203,.T.);
-+#8216=EDGE_LOOP('',(#8214,#8215));
-+#8217=FACE_OUTER_BOUND('',#8216,.F.);
-+#8219=ORIENTED_EDGE('',*,*,#8218,.F.);
-+#8221=ORIENTED_EDGE('',*,*,#8220,.F.);
-+#8222=EDGE_LOOP('',(#8219,#8221));
-+#8223=FACE_BOUND('',#8222,.F.);
-+#8224=ADVANCED_FACE('',(#8217,#8223),#8213,.F.);
-+#8225=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8226=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8227=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8228=AXIS2_PLACEMENT_3D('',#8225,#8226,#8227);
-+#8229=CYLINDRICAL_SURFACE('',#8228,1.925E-1);
-+#8230=ORIENTED_EDGE('',*,*,#8218,.T.);
-+#8232=ORIENTED_EDGE('',*,*,#8231,.T.);
-+#8233=ORIENTED_EDGE('',*,*,#5602,.F.);
-+#8235=ORIENTED_EDGE('',*,*,#8234,.F.);
-+#8236=EDGE_LOOP('',(#8230,#8232,#8233,#8235));
-+#8237=FACE_OUTER_BOUND('',#8236,.F.);
-+#8238=ADVANCED_FACE('',(#8237),#8229,.F.);
-+#8239=CARTESIAN_POINT('',(2.2875E1,1.5E0,6.E0));
-+#8240=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8241=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8242=AXIS2_PLACEMENT_3D('',#8239,#8240,#8241);
-+#8243=CYLINDRICAL_SURFACE('',#8242,1.925E-1);
-+#8244=ORIENTED_EDGE('',*,*,#8220,.T.);
-+#8245=ORIENTED_EDGE('',*,*,#8234,.T.);
-+#8246=ORIENTED_EDGE('',*,*,#5604,.F.);
-+#8247=ORIENTED_EDGE('',*,*,#8231,.F.);
-+#8248=EDGE_LOOP('',(#8244,#8245,#8246,#8247));
-+#8249=FACE_OUTER_BOUND('',#8248,.F.);
-+#8250=ADVANCED_FACE('',(#8249),#8243,.F.);
-+#8251=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8252=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8253=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8254=AXIS2_PLACEMENT_3D('',#8251,#8252,#8253);
-+#8255=CYLINDRICAL_SURFACE('',#8254,2.575E-1);
-+#8256=ORIENTED_EDGE('',*,*,#6370,.T.);
-+#8258=ORIENTED_EDGE('',*,*,#8257,.T.);
-+#8260=ORIENTED_EDGE('',*,*,#8259,.F.);
-+#8262=ORIENTED_EDGE('',*,*,#8261,.F.);
-+#8263=EDGE_LOOP('',(#8256,#8258,#8260,#8262));
-+#8264=FACE_OUTER_BOUND('',#8263,.F.);
-+#8265=ADVANCED_FACE('',(#8264),#8255,.F.);
-+#8266=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8267=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8268=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8269=AXIS2_PLACEMENT_3D('',#8266,#8267,#8268);
-+#8270=CYLINDRICAL_SURFACE('',#8269,2.575E-1);
-+#8271=ORIENTED_EDGE('',*,*,#6372,.T.);
-+#8272=ORIENTED_EDGE('',*,*,#8261,.T.);
-+#8274=ORIENTED_EDGE('',*,*,#8273,.F.);
-+#8275=ORIENTED_EDGE('',*,*,#8257,.F.);
-+#8276=EDGE_LOOP('',(#8271,#8272,#8274,#8275));
-+#8277=FACE_OUTER_BOUND('',#8276,.F.);
-+#8278=ADVANCED_FACE('',(#8277),#8270,.F.);
-+#8279=CARTESIAN_POINT('',(2.2875E1,1.E0,1.8E1));
-+#8280=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8281=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8282=AXIS2_PLACEMENT_3D('',#8279,#8280,#8281);
-+#8283=PLANE('',#8282);
-+#8284=ORIENTED_EDGE('',*,*,#8259,.T.);
-+#8285=ORIENTED_EDGE('',*,*,#8273,.T.);
-+#8286=EDGE_LOOP('',(#8284,#8285));
-+#8287=FACE_OUTER_BOUND('',#8286,.F.);
-+#8289=ORIENTED_EDGE('',*,*,#8288,.F.);
-+#8291=ORIENTED_EDGE('',*,*,#8290,.F.);
-+#8292=EDGE_LOOP('',(#8289,#8291));
-+#8293=FACE_BOUND('',#8292,.F.);
-+#8294=ADVANCED_FACE('',(#8287,#8293),#8283,.F.);
-+#8295=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8296=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8297=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8298=AXIS2_PLACEMENT_3D('',#8295,#8296,#8297);
-+#8299=CYLINDRICAL_SURFACE('',#8298,1.925E-1);
-+#8300=ORIENTED_EDGE('',*,*,#8288,.T.);
-+#8302=ORIENTED_EDGE('',*,*,#8301,.T.);
-+#8303=ORIENTED_EDGE('',*,*,#5590,.F.);
-+#8305=ORIENTED_EDGE('',*,*,#8304,.F.);
-+#8306=EDGE_LOOP('',(#8300,#8302,#8303,#8305));
-+#8307=FACE_OUTER_BOUND('',#8306,.F.);
-+#8308=ADVANCED_FACE('',(#8307),#8299,.F.);
-+#8309=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.8E1));
-+#8310=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8311=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8312=AXIS2_PLACEMENT_3D('',#8309,#8310,#8311);
-+#8313=CYLINDRICAL_SURFACE('',#8312,1.925E-1);
-+#8314=ORIENTED_EDGE('',*,*,#8290,.T.);
-+#8315=ORIENTED_EDGE('',*,*,#8304,.T.);
-+#8316=ORIENTED_EDGE('',*,*,#5592,.F.);
-+#8317=ORIENTED_EDGE('',*,*,#8301,.F.);
-+#8318=EDGE_LOOP('',(#8314,#8315,#8316,#8317));
-+#8319=FACE_OUTER_BOUND('',#8318,.F.);
-+#8320=ADVANCED_FACE('',(#8319),#8313,.F.);
-+#8321=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8322=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8323=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8324=AXIS2_PLACEMENT_3D('',#8321,#8322,#8323);
-+#8325=CYLINDRICAL_SURFACE('',#8324,2.575E-1);
-+#8326=ORIENTED_EDGE('',*,*,#6376,.T.);
-+#8328=ORIENTED_EDGE('',*,*,#8327,.T.);
-+#8330=ORIENTED_EDGE('',*,*,#8329,.F.);
-+#8332=ORIENTED_EDGE('',*,*,#8331,.F.);
-+#8333=EDGE_LOOP('',(#8326,#8328,#8330,#8332));
-+#8334=FACE_OUTER_BOUND('',#8333,.F.);
-+#8335=ADVANCED_FACE('',(#8334),#8325,.F.);
-+#8336=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8337=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8338=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8339=AXIS2_PLACEMENT_3D('',#8336,#8337,#8338);
-+#8340=CYLINDRICAL_SURFACE('',#8339,2.575E-1);
-+#8341=ORIENTED_EDGE('',*,*,#6378,.T.);
-+#8342=ORIENTED_EDGE('',*,*,#8331,.T.);
-+#8344=ORIENTED_EDGE('',*,*,#8343,.F.);
-+#8345=ORIENTED_EDGE('',*,*,#8327,.F.);
-+#8346=EDGE_LOOP('',(#8341,#8342,#8344,#8345));
-+#8347=FACE_OUTER_BOUND('',#8346,.F.);
-+#8348=ADVANCED_FACE('',(#8347),#8340,.F.);
-+#8349=CARTESIAN_POINT('',(2.2875E1,1.E0,2.4E1));
-+#8350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8351=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8352=AXIS2_PLACEMENT_3D('',#8349,#8350,#8351);
-+#8353=PLANE('',#8352);
-+#8354=ORIENTED_EDGE('',*,*,#8329,.T.);
-+#8355=ORIENTED_EDGE('',*,*,#8343,.T.);
-+#8356=EDGE_LOOP('',(#8354,#8355));
-+#8357=FACE_OUTER_BOUND('',#8356,.F.);
-+#8359=ORIENTED_EDGE('',*,*,#8358,.F.);
-+#8361=ORIENTED_EDGE('',*,*,#8360,.F.);
-+#8362=EDGE_LOOP('',(#8359,#8361));
-+#8363=FACE_BOUND('',#8362,.F.);
-+#8364=ADVANCED_FACE('',(#8357,#8363),#8353,.F.);
-+#8365=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8366=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8367=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8368=AXIS2_PLACEMENT_3D('',#8365,#8366,#8367);
-+#8369=CYLINDRICAL_SURFACE('',#8368,1.925E-1);
-+#8370=ORIENTED_EDGE('',*,*,#8358,.T.);
-+#8372=ORIENTED_EDGE('',*,*,#8371,.T.);
-+#8373=ORIENTED_EDGE('',*,*,#5584,.F.);
-+#8375=ORIENTED_EDGE('',*,*,#8374,.F.);
-+#8376=EDGE_LOOP('',(#8370,#8372,#8373,#8375));
-+#8377=FACE_OUTER_BOUND('',#8376,.F.);
-+#8378=ADVANCED_FACE('',(#8377),#8369,.F.);
-+#8379=CARTESIAN_POINT('',(2.2875E1,1.5E0,2.4E1));
-+#8380=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8381=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8382=AXIS2_PLACEMENT_3D('',#8379,#8380,#8381);
-+#8383=CYLINDRICAL_SURFACE('',#8382,1.925E-1);
-+#8384=ORIENTED_EDGE('',*,*,#8360,.T.);
-+#8385=ORIENTED_EDGE('',*,*,#8374,.T.);
-+#8386=ORIENTED_EDGE('',*,*,#5586,.F.);
-+#8387=ORIENTED_EDGE('',*,*,#8371,.F.);
-+#8388=EDGE_LOOP('',(#8384,#8385,#8386,#8387));
-+#8389=FACE_OUTER_BOUND('',#8388,.F.);
-+#8390=ADVANCED_FACE('',(#8389),#8383,.F.);
-+#8391=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8392=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8393=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8394=AXIS2_PLACEMENT_3D('',#8391,#8392,#8393);
-+#8395=CYLINDRICAL_SURFACE('',#8394,2.56E-1);
-+#8396=ORIENTED_EDGE('',*,*,#6260,.T.);
-+#8398=ORIENTED_EDGE('',*,*,#8397,.T.);
-+#8400=ORIENTED_EDGE('',*,*,#8399,.F.);
-+#8402=ORIENTED_EDGE('',*,*,#8401,.F.);
-+#8403=EDGE_LOOP('',(#8396,#8398,#8400,#8402));
-+#8404=FACE_OUTER_BOUND('',#8403,.F.);
-+#8405=ADVANCED_FACE('',(#8404),#8395,.F.);
-+#8406=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8407=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8408=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8409=AXIS2_PLACEMENT_3D('',#8406,#8407,#8408);
-+#8410=CYLINDRICAL_SURFACE('',#8409,2.56E-1);
-+#8411=ORIENTED_EDGE('',*,*,#6262,.T.);
-+#8412=ORIENTED_EDGE('',*,*,#8401,.T.);
-+#8414=ORIENTED_EDGE('',*,*,#8413,.F.);
-+#8415=ORIENTED_EDGE('',*,*,#8397,.F.);
-+#8416=EDGE_LOOP('',(#8411,#8412,#8414,#8415));
-+#8417=FACE_OUTER_BOUND('',#8416,.F.);
-+#8418=ADVANCED_FACE('',(#8417),#8410,.F.);
-+#8419=CARTESIAN_POINT('',(6.E0,1.E0,1.25E0));
-+#8420=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8421=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8422=AXIS2_PLACEMENT_3D('',#8419,#8420,#8421);
-+#8423=PLANE('',#8422);
-+#8424=ORIENTED_EDGE('',*,*,#8399,.T.);
-+#8425=ORIENTED_EDGE('',*,*,#8413,.T.);
-+#8426=EDGE_LOOP('',(#8424,#8425));
-+#8427=FACE_OUTER_BOUND('',#8426,.F.);
-+#8429=ORIENTED_EDGE('',*,*,#8428,.F.);
-+#8431=ORIENTED_EDGE('',*,*,#8430,.F.);
-+#8432=EDGE_LOOP('',(#8429,#8431));
-+#8433=FACE_BOUND('',#8432,.F.);
-+#8434=ADVANCED_FACE('',(#8427,#8433),#8423,.F.);
-+#8435=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8436=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8437=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8438=AXIS2_PLACEMENT_3D('',#8435,#8436,#8437);
-+#8439=CYLINDRICAL_SURFACE('',#8438,1.925E-1);
-+#8440=ORIENTED_EDGE('',*,*,#8428,.T.);
-+#8442=ORIENTED_EDGE('',*,*,#8441,.T.);
-+#8443=ORIENTED_EDGE('',*,*,#5632,.F.);
-+#8445=ORIENTED_EDGE('',*,*,#8444,.F.);
-+#8446=EDGE_LOOP('',(#8440,#8442,#8443,#8445));
-+#8447=FACE_OUTER_BOUND('',#8446,.F.);
-+#8448=ADVANCED_FACE('',(#8447),#8439,.F.);
-+#8449=CARTESIAN_POINT('',(6.E0,1.5E0,1.25E0));
-+#8450=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8451=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8452=AXIS2_PLACEMENT_3D('',#8449,#8450,#8451);
-+#8453=CYLINDRICAL_SURFACE('',#8452,1.925E-1);
-+#8454=ORIENTED_EDGE('',*,*,#8430,.T.);
-+#8455=ORIENTED_EDGE('',*,*,#8444,.T.);
-+#8456=ORIENTED_EDGE('',*,*,#5634,.F.);
-+#8457=ORIENTED_EDGE('',*,*,#8441,.F.);
-+#8458=EDGE_LOOP('',(#8454,#8455,#8456,#8457));
-+#8459=FACE_OUTER_BOUND('',#8458,.F.);
-+#8460=ADVANCED_FACE('',(#8459),#8453,.F.);
-+#8461=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8462=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8463=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8464=AXIS2_PLACEMENT_3D('',#8461,#8462,#8463);
-+#8465=CYLINDRICAL_SURFACE('',#8464,2.56E-1);
-+#8466=ORIENTED_EDGE('',*,*,#6266,.T.);
-+#8468=ORIENTED_EDGE('',*,*,#8467,.T.);
-+#8470=ORIENTED_EDGE('',*,*,#8469,.F.);
-+#8472=ORIENTED_EDGE('',*,*,#8471,.F.);
-+#8473=EDGE_LOOP('',(#8466,#8468,#8470,#8472));
-+#8474=FACE_OUTER_BOUND('',#8473,.F.);
-+#8475=ADVANCED_FACE('',(#8474),#8465,.F.);
-+#8476=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8477=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8478=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8479=AXIS2_PLACEMENT_3D('',#8476,#8477,#8478);
-+#8480=CYLINDRICAL_SURFACE('',#8479,2.56E-1);
-+#8481=ORIENTED_EDGE('',*,*,#6268,.T.);
-+#8482=ORIENTED_EDGE('',*,*,#8471,.T.);
-+#8484=ORIENTED_EDGE('',*,*,#8483,.F.);
-+#8485=ORIENTED_EDGE('',*,*,#8467,.F.);
-+#8486=EDGE_LOOP('',(#8481,#8482,#8484,#8485));
-+#8487=FACE_OUTER_BOUND('',#8486,.F.);
-+#8488=ADVANCED_FACE('',(#8487),#8480,.F.);
-+#8489=CARTESIAN_POINT('',(1.2E1,1.E0,1.25E0));
-+#8490=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8491=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8492=AXIS2_PLACEMENT_3D('',#8489,#8490,#8491);
-+#8493=PLANE('',#8492);
-+#8494=ORIENTED_EDGE('',*,*,#8469,.T.);
-+#8495=ORIENTED_EDGE('',*,*,#8483,.T.);
-+#8496=EDGE_LOOP('',(#8494,#8495));
-+#8497=FACE_OUTER_BOUND('',#8496,.F.);
-+#8499=ORIENTED_EDGE('',*,*,#8498,.F.);
-+#8501=ORIENTED_EDGE('',*,*,#8500,.F.);
-+#8502=EDGE_LOOP('',(#8499,#8501));
-+#8503=FACE_BOUND('',#8502,.F.);
-+#8504=ADVANCED_FACE('',(#8497,#8503),#8493,.F.);
-+#8505=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8506=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8507=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8508=AXIS2_PLACEMENT_3D('',#8505,#8506,#8507);
-+#8509=CYLINDRICAL_SURFACE('',#8508,1.925E-1);
-+#8510=ORIENTED_EDGE('',*,*,#8498,.T.);
-+#8512=ORIENTED_EDGE('',*,*,#8511,.T.);
-+#8513=ORIENTED_EDGE('',*,*,#5578,.F.);
-+#8515=ORIENTED_EDGE('',*,*,#8514,.F.);
-+#8516=EDGE_LOOP('',(#8510,#8512,#8513,#8515));
-+#8517=FACE_OUTER_BOUND('',#8516,.F.);
-+#8518=ADVANCED_FACE('',(#8517),#8509,.F.);
-+#8519=CARTESIAN_POINT('',(1.2E1,1.5E0,1.25E0));
-+#8520=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8521=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8522=AXIS2_PLACEMENT_3D('',#8519,#8520,#8521);
-+#8523=CYLINDRICAL_SURFACE('',#8522,1.925E-1);
-+#8524=ORIENTED_EDGE('',*,*,#8500,.T.);
-+#8525=ORIENTED_EDGE('',*,*,#8514,.T.);
-+#8526=ORIENTED_EDGE('',*,*,#5580,.F.);
-+#8527=ORIENTED_EDGE('',*,*,#8511,.F.);
-+#8528=EDGE_LOOP('',(#8524,#8525,#8526,#8527));
-+#8529=FACE_OUTER_BOUND('',#8528,.F.);
-+#8530=ADVANCED_FACE('',(#8529),#8523,.F.);
-+#8531=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8532=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8533=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8534=AXIS2_PLACEMENT_3D('',#8531,#8532,#8533);
-+#8535=CYLINDRICAL_SURFACE('',#8534,2.56E-1);
-+#8536=ORIENTED_EDGE('',*,*,#6272,.T.);
-+#8538=ORIENTED_EDGE('',*,*,#8537,.T.);
-+#8540=ORIENTED_EDGE('',*,*,#8539,.F.);
-+#8542=ORIENTED_EDGE('',*,*,#8541,.F.);
-+#8543=EDGE_LOOP('',(#8536,#8538,#8540,#8542));
-+#8544=FACE_OUTER_BOUND('',#8543,.F.);
-+#8545=ADVANCED_FACE('',(#8544),#8535,.F.);
-+#8546=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8547=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8548=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8549=AXIS2_PLACEMENT_3D('',#8546,#8547,#8548);
-+#8550=CYLINDRICAL_SURFACE('',#8549,2.56E-1);
-+#8551=ORIENTED_EDGE('',*,*,#6274,.T.);
-+#8552=ORIENTED_EDGE('',*,*,#8541,.T.);
-+#8554=ORIENTED_EDGE('',*,*,#8553,.F.);
-+#8555=ORIENTED_EDGE('',*,*,#8537,.F.);
-+#8556=EDGE_LOOP('',(#8551,#8552,#8554,#8555));
-+#8557=FACE_OUTER_BOUND('',#8556,.F.);
-+#8558=ADVANCED_FACE('',(#8557),#8550,.F.);
-+#8559=CARTESIAN_POINT('',(1.8E1,1.E0,1.25E0));
-+#8560=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8561=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8562=AXIS2_PLACEMENT_3D('',#8559,#8560,#8561);
-+#8563=PLANE('',#8562);
-+#8564=ORIENTED_EDGE('',*,*,#8539,.T.);
-+#8565=ORIENTED_EDGE('',*,*,#8553,.T.);
-+#8566=EDGE_LOOP('',(#8564,#8565));
-+#8567=FACE_OUTER_BOUND('',#8566,.F.);
-+#8569=ORIENTED_EDGE('',*,*,#8568,.F.);
-+#8571=ORIENTED_EDGE('',*,*,#8570,.F.);
-+#8572=EDGE_LOOP('',(#8569,#8571));
-+#8573=FACE_BOUND('',#8572,.F.);
-+#8574=ADVANCED_FACE('',(#8567,#8573),#8563,.F.);
-+#8575=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8576=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8577=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8578=AXIS2_PLACEMENT_3D('',#8575,#8576,#8577);
-+#8579=CYLINDRICAL_SURFACE('',#8578,1.925E-1);
-+#8580=ORIENTED_EDGE('',*,*,#8568,.T.);
-+#8582=ORIENTED_EDGE('',*,*,#8581,.T.);
-+#8583=ORIENTED_EDGE('',*,*,#5560,.F.);
-+#8585=ORIENTED_EDGE('',*,*,#8584,.F.);
-+#8586=EDGE_LOOP('',(#8580,#8582,#8583,#8585));
-+#8587=FACE_OUTER_BOUND('',#8586,.F.);
-+#8588=ADVANCED_FACE('',(#8587),#8579,.F.);
-+#8589=CARTESIAN_POINT('',(1.8E1,1.5E0,1.25E0));
-+#8590=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8591=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8592=AXIS2_PLACEMENT_3D('',#8589,#8590,#8591);
-+#8593=CYLINDRICAL_SURFACE('',#8592,1.925E-1);
-+#8594=ORIENTED_EDGE('',*,*,#8570,.T.);
-+#8595=ORIENTED_EDGE('',*,*,#8584,.T.);
-+#8596=ORIENTED_EDGE('',*,*,#5562,.F.);
-+#8597=ORIENTED_EDGE('',*,*,#8581,.F.);
-+#8598=EDGE_LOOP('',(#8594,#8595,#8596,#8597));
-+#8599=FACE_OUTER_BOUND('',#8598,.F.);
-+#8600=ADVANCED_FACE('',(#8599),#8593,.F.);
-+#8601=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8602=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8603=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8604=AXIS2_PLACEMENT_3D('',#8601,#8602,#8603);
-+#8605=CYLINDRICAL_SURFACE('',#8604,2.56E-1);
-+#8606=ORIENTED_EDGE('',*,*,#6382,.T.);
-+#8608=ORIENTED_EDGE('',*,*,#8607,.T.);
-+#8610=ORIENTED_EDGE('',*,*,#8609,.F.);
-+#8612=ORIENTED_EDGE('',*,*,#8611,.F.);
-+#8613=EDGE_LOOP('',(#8606,#8608,#8610,#8612));
-+#8614=FACE_OUTER_BOUND('',#8613,.F.);
-+#8615=ADVANCED_FACE('',(#8614),#8605,.F.);
-+#8616=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8617=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8618=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8619=AXIS2_PLACEMENT_3D('',#8616,#8617,#8618);
-+#8620=CYLINDRICAL_SURFACE('',#8619,2.56E-1);
-+#8621=ORIENTED_EDGE('',*,*,#6384,.T.);
-+#8622=ORIENTED_EDGE('',*,*,#8611,.T.);
-+#8624=ORIENTED_EDGE('',*,*,#8623,.F.);
-+#8625=ORIENTED_EDGE('',*,*,#8607,.F.);
-+#8626=EDGE_LOOP('',(#8621,#8622,#8624,#8625));
-+#8627=FACE_OUTER_BOUND('',#8626,.F.);
-+#8628=ADVANCED_FACE('',(#8627),#8620,.F.);
-+#8629=CARTESIAN_POINT('',(6.E0,1.E0,3.075E1));
-+#8630=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8631=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8632=AXIS2_PLACEMENT_3D('',#8629,#8630,#8631);
-+#8633=PLANE('',#8632);
-+#8634=ORIENTED_EDGE('',*,*,#8609,.T.);
-+#8635=ORIENTED_EDGE('',*,*,#8623,.T.);
-+#8636=EDGE_LOOP('',(#8634,#8635));
-+#8637=FACE_OUTER_BOUND('',#8636,.F.);
-+#8639=ORIENTED_EDGE('',*,*,#8638,.F.);
-+#8641=ORIENTED_EDGE('',*,*,#8640,.F.);
-+#8642=EDGE_LOOP('',(#8639,#8641));
-+#8643=FACE_BOUND('',#8642,.F.);
-+#8644=ADVANCED_FACE('',(#8637,#8643),#8633,.F.);
-+#8645=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8646=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8647=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8648=AXIS2_PLACEMENT_3D('',#8645,#8646,#8647);
-+#8649=CYLINDRICAL_SURFACE('',#8648,1.925E-1);
-+#8650=ORIENTED_EDGE('',*,*,#8638,.T.);
-+#8652=ORIENTED_EDGE('',*,*,#8651,.T.);
-+#8653=ORIENTED_EDGE('',*,*,#5572,.F.);
-+#8655=ORIENTED_EDGE('',*,*,#8654,.F.);
-+#8656=EDGE_LOOP('',(#8650,#8652,#8653,#8655));
-+#8657=FACE_OUTER_BOUND('',#8656,.F.);
-+#8658=ADVANCED_FACE('',(#8657),#8649,.F.);
-+#8659=CARTESIAN_POINT('',(6.E0,1.5E0,3.075E1));
-+#8660=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8661=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8662=AXIS2_PLACEMENT_3D('',#8659,#8660,#8661);
-+#8663=CYLINDRICAL_SURFACE('',#8662,1.925E-1);
-+#8664=ORIENTED_EDGE('',*,*,#8640,.T.);
-+#8665=ORIENTED_EDGE('',*,*,#8654,.T.);
-+#8666=ORIENTED_EDGE('',*,*,#5574,.F.);
-+#8667=ORIENTED_EDGE('',*,*,#8651,.F.);
-+#8668=EDGE_LOOP('',(#8664,#8665,#8666,#8667));
-+#8669=FACE_OUTER_BOUND('',#8668,.F.);
-+#8670=ADVANCED_FACE('',(#8669),#8663,.F.);
-+#8671=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8672=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8674=AXIS2_PLACEMENT_3D('',#8671,#8672,#8673);
-+#8675=CYLINDRICAL_SURFACE('',#8674,2.56E-1);
-+#8676=ORIENTED_EDGE('',*,*,#6388,.T.);
-+#8678=ORIENTED_EDGE('',*,*,#8677,.T.);
-+#8680=ORIENTED_EDGE('',*,*,#8679,.F.);
-+#8682=ORIENTED_EDGE('',*,*,#8681,.F.);
-+#8683=EDGE_LOOP('',(#8676,#8678,#8680,#8682));
-+#8684=FACE_OUTER_BOUND('',#8683,.F.);
-+#8685=ADVANCED_FACE('',(#8684),#8675,.F.);
-+#8686=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8687=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8689=AXIS2_PLACEMENT_3D('',#8686,#8687,#8688);
-+#8690=CYLINDRICAL_SURFACE('',#8689,2.56E-1);
-+#8691=ORIENTED_EDGE('',*,*,#6390,.T.);
-+#8692=ORIENTED_EDGE('',*,*,#8681,.T.);
-+#8694=ORIENTED_EDGE('',*,*,#8693,.F.);
-+#8695=ORIENTED_EDGE('',*,*,#8677,.F.);
-+#8696=EDGE_LOOP('',(#8691,#8692,#8694,#8695));
-+#8697=FACE_OUTER_BOUND('',#8696,.F.);
-+#8698=ADVANCED_FACE('',(#8697),#8690,.F.);
-+#8699=CARTESIAN_POINT('',(1.2E1,1.E0,3.075E1));
-+#8700=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8701=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8702=AXIS2_PLACEMENT_3D('',#8699,#8700,#8701);
-+#8703=PLANE('',#8702);
-+#8704=ORIENTED_EDGE('',*,*,#8679,.T.);
-+#8705=ORIENTED_EDGE('',*,*,#8693,.T.);
-+#8706=EDGE_LOOP('',(#8704,#8705));
-+#8707=FACE_OUTER_BOUND('',#8706,.F.);
-+#8709=ORIENTED_EDGE('',*,*,#8708,.F.);
-+#8711=ORIENTED_EDGE('',*,*,#8710,.F.);
-+#8712=EDGE_LOOP('',(#8709,#8711));
-+#8713=FACE_BOUND('',#8712,.F.);
-+#8714=ADVANCED_FACE('',(#8707,#8713),#8703,.F.);
-+#8715=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8716=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8717=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8718=AXIS2_PLACEMENT_3D('',#8715,#8716,#8717);
-+#8719=CYLINDRICAL_SURFACE('',#8718,1.925E-1);
-+#8720=ORIENTED_EDGE('',*,*,#8708,.T.);
-+#8722=ORIENTED_EDGE('',*,*,#8721,.T.);
-+#8723=ORIENTED_EDGE('',*,*,#5566,.F.);
-+#8725=ORIENTED_EDGE('',*,*,#8724,.F.);
-+#8726=EDGE_LOOP('',(#8720,#8722,#8723,#8725));
-+#8727=FACE_OUTER_BOUND('',#8726,.F.);
-+#8728=ADVANCED_FACE('',(#8727),#8719,.F.);
-+#8729=CARTESIAN_POINT('',(1.2E1,1.5E0,3.075E1));
-+#8730=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8731=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8732=AXIS2_PLACEMENT_3D('',#8729,#8730,#8731);
-+#8733=CYLINDRICAL_SURFACE('',#8732,1.925E-1);
-+#8734=ORIENTED_EDGE('',*,*,#8710,.T.);
-+#8735=ORIENTED_EDGE('',*,*,#8724,.T.);
-+#8736=ORIENTED_EDGE('',*,*,#5568,.F.);
-+#8737=ORIENTED_EDGE('',*,*,#8721,.F.);
-+#8738=EDGE_LOOP('',(#8734,#8735,#8736,#8737));
-+#8739=FACE_OUTER_BOUND('',#8738,.F.);
-+#8740=ADVANCED_FACE('',(#8739),#8733,.F.);
-+#8741=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8742=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8743=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8744=AXIS2_PLACEMENT_3D('',#8741,#8742,#8743);
-+#8745=CYLINDRICAL_SURFACE('',#8744,2.56E-1);
-+#8746=ORIENTED_EDGE('',*,*,#6394,.T.);
-+#8748=ORIENTED_EDGE('',*,*,#8747,.T.);
-+#8750=ORIENTED_EDGE('',*,*,#8749,.F.);
-+#8752=ORIENTED_EDGE('',*,*,#8751,.F.);
-+#8753=EDGE_LOOP('',(#8746,#8748,#8750,#8752));
-+#8754=FACE_OUTER_BOUND('',#8753,.F.);
-+#8755=ADVANCED_FACE('',(#8754),#8745,.F.);
-+#8756=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8757=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8758=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8759=AXIS2_PLACEMENT_3D('',#8756,#8757,#8758);
-+#8760=CYLINDRICAL_SURFACE('',#8759,2.56E-1);
-+#8761=ORIENTED_EDGE('',*,*,#6396,.T.);
-+#8762=ORIENTED_EDGE('',*,*,#8751,.T.);
-+#8764=ORIENTED_EDGE('',*,*,#8763,.F.);
-+#8765=ORIENTED_EDGE('',*,*,#8747,.F.);
-+#8766=EDGE_LOOP('',(#8761,#8762,#8764,#8765));
-+#8767=FACE_OUTER_BOUND('',#8766,.F.);
-+#8768=ADVANCED_FACE('',(#8767),#8760,.F.);
-+#8769=CARTESIAN_POINT('',(1.8E1,1.E0,3.075E1));
-+#8770=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8771=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8772=AXIS2_PLACEMENT_3D('',#8769,#8770,#8771);
-+#8773=PLANE('',#8772);
-+#8774=ORIENTED_EDGE('',*,*,#8749,.T.);
-+#8775=ORIENTED_EDGE('',*,*,#8763,.T.);
-+#8776=EDGE_LOOP('',(#8774,#8775));
-+#8777=FACE_OUTER_BOUND('',#8776,.F.);
-+#8779=ORIENTED_EDGE('',*,*,#8778,.F.);
-+#8781=ORIENTED_EDGE('',*,*,#8780,.F.);
-+#8782=EDGE_LOOP('',(#8779,#8781));
-+#8783=FACE_BOUND('',#8782,.F.);
-+#8784=ADVANCED_FACE('',(#8777,#8783),#8773,.F.);
-+#8785=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8786=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8787=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8788=AXIS2_PLACEMENT_3D('',#8785,#8786,#8787);
-+#8789=CYLINDRICAL_SURFACE('',#8788,1.925E-1);
-+#8790=ORIENTED_EDGE('',*,*,#8778,.T.);
-+#8792=ORIENTED_EDGE('',*,*,#8791,.T.);
-+#8793=ORIENTED_EDGE('',*,*,#5554,.F.);
-+#8795=ORIENTED_EDGE('',*,*,#8794,.F.);
-+#8796=EDGE_LOOP('',(#8790,#8792,#8793,#8795));
-+#8797=FACE_OUTER_BOUND('',#8796,.F.);
-+#8798=ADVANCED_FACE('',(#8797),#8789,.F.);
-+#8799=CARTESIAN_POINT('',(1.8E1,1.5E0,3.075E1));
-+#8800=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8801=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8802=AXIS2_PLACEMENT_3D('',#8799,#8800,#8801);
-+#8803=CYLINDRICAL_SURFACE('',#8802,1.925E-1);
-+#8804=ORIENTED_EDGE('',*,*,#8780,.T.);
-+#8805=ORIENTED_EDGE('',*,*,#8794,.T.);
-+#8806=ORIENTED_EDGE('',*,*,#5556,.F.);
-+#8807=ORIENTED_EDGE('',*,*,#8791,.F.);
-+#8808=EDGE_LOOP('',(#8804,#8805,#8806,#8807));
-+#8809=FACE_OUTER_BOUND('',#8808,.F.);
-+#8810=ADVANCED_FACE('',(#8809),#8803,.F.);
-+#8811=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8812=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8813=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8814=AXIS2_PLACEMENT_3D('',#8811,#8812,#8813);
-+#8815=CYLINDRICAL_SURFACE('',#8814,2.575E-1);
-+#8816=ORIENTED_EDGE('',*,*,#6452,.T.);
-+#8818=ORIENTED_EDGE('',*,*,#8817,.T.);
-+#8820=ORIENTED_EDGE('',*,*,#8819,.F.);
-+#8822=ORIENTED_EDGE('',*,*,#8821,.F.);
-+#8823=EDGE_LOOP('',(#8816,#8818,#8820,#8822));
-+#8824=FACE_OUTER_BOUND('',#8823,.F.);
-+#8825=ADVANCED_FACE('',(#8824),#8815,.F.);
-+#8826=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8827=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8828=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8829=AXIS2_PLACEMENT_3D('',#8826,#8827,#8828);
-+#8830=CYLINDRICAL_SURFACE('',#8829,2.575E-1);
-+#8831=ORIENTED_EDGE('',*,*,#6454,.T.);
-+#8832=ORIENTED_EDGE('',*,*,#8821,.T.);
-+#8834=ORIENTED_EDGE('',*,*,#8833,.F.);
-+#8835=ORIENTED_EDGE('',*,*,#8817,.F.);
-+#8836=EDGE_LOOP('',(#8831,#8832,#8834,#8835));
-+#8837=FACE_OUTER_BOUND('',#8836,.F.);
-+#8838=ADVANCED_FACE('',(#8837),#8830,.F.);
-+#8839=CARTESIAN_POINT('',(6.E0,1.E0,9.E0));
-+#8840=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8841=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8842=AXIS2_PLACEMENT_3D('',#8839,#8840,#8841);
-+#8843=PLANE('',#8842);
-+#8844=ORIENTED_EDGE('',*,*,#8819,.T.);
-+#8845=ORIENTED_EDGE('',*,*,#8833,.T.);
-+#8846=EDGE_LOOP('',(#8844,#8845));
-+#8847=FACE_OUTER_BOUND('',#8846,.F.);
-+#8849=ORIENTED_EDGE('',*,*,#8848,.F.);
-+#8851=ORIENTED_EDGE('',*,*,#8850,.F.);
-+#8852=EDGE_LOOP('',(#8849,#8851));
-+#8853=FACE_BOUND('',#8852,.F.);
-+#8854=ADVANCED_FACE('',(#8847,#8853),#8843,.F.);
-+#8855=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8856=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8857=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8858=AXIS2_PLACEMENT_3D('',#8855,#8856,#8857);
-+#8859=CYLINDRICAL_SURFACE('',#8858,1.925E-1);
-+#8860=ORIENTED_EDGE('',*,*,#8848,.T.);
-+#8862=ORIENTED_EDGE('',*,*,#8861,.T.);
-+#8863=ORIENTED_EDGE('',*,*,#5690,.F.);
-+#8865=ORIENTED_EDGE('',*,*,#8864,.F.);
-+#8866=EDGE_LOOP('',(#8860,#8862,#8863,#8865));
-+#8867=FACE_OUTER_BOUND('',#8866,.F.);
-+#8868=ADVANCED_FACE('',(#8867),#8859,.F.);
-+#8869=CARTESIAN_POINT('',(6.E0,1.5E0,9.E0));
-+#8870=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8871=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8872=AXIS2_PLACEMENT_3D('',#8869,#8870,#8871);
-+#8873=CYLINDRICAL_SURFACE('',#8872,1.925E-1);
-+#8874=ORIENTED_EDGE('',*,*,#8850,.T.);
-+#8875=ORIENTED_EDGE('',*,*,#8864,.T.);
-+#8876=ORIENTED_EDGE('',*,*,#5692,.F.);
-+#8877=ORIENTED_EDGE('',*,*,#8861,.F.);
-+#8878=EDGE_LOOP('',(#8874,#8875,#8876,#8877));
-+#8879=FACE_OUTER_BOUND('',#8878,.F.);
-+#8880=ADVANCED_FACE('',(#8879),#8873,.F.);
-+#8881=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8882=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8883=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8884=AXIS2_PLACEMENT_3D('',#8881,#8882,#8883);
-+#8885=CYLINDRICAL_SURFACE('',#8884,2.575E-1);
-+#8886=ORIENTED_EDGE('',*,*,#6458,.T.);
-+#8888=ORIENTED_EDGE('',*,*,#8887,.T.);
-+#8890=ORIENTED_EDGE('',*,*,#8889,.F.);
-+#8892=ORIENTED_EDGE('',*,*,#8891,.F.);
-+#8893=EDGE_LOOP('',(#8886,#8888,#8890,#8892));
-+#8894=FACE_OUTER_BOUND('',#8893,.F.);
-+#8895=ADVANCED_FACE('',(#8894),#8885,.F.);
-+#8896=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8897=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8898=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8899=AXIS2_PLACEMENT_3D('',#8896,#8897,#8898);
-+#8900=CYLINDRICAL_SURFACE('',#8899,2.575E-1);
-+#8901=ORIENTED_EDGE('',*,*,#6460,.T.);
-+#8902=ORIENTED_EDGE('',*,*,#8891,.T.);
-+#8904=ORIENTED_EDGE('',*,*,#8903,.F.);
-+#8905=ORIENTED_EDGE('',*,*,#8887,.F.);
-+#8906=EDGE_LOOP('',(#8901,#8902,#8904,#8905));
-+#8907=FACE_OUTER_BOUND('',#8906,.F.);
-+#8908=ADVANCED_FACE('',(#8907),#8900,.F.);
-+#8909=CARTESIAN_POINT('',(1.2E1,1.E0,9.E0));
-+#8910=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8911=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8912=AXIS2_PLACEMENT_3D('',#8909,#8910,#8911);
-+#8913=PLANE('',#8912);
-+#8914=ORIENTED_EDGE('',*,*,#8889,.T.);
-+#8915=ORIENTED_EDGE('',*,*,#8903,.T.);
-+#8916=EDGE_LOOP('',(#8914,#8915));
-+#8917=FACE_OUTER_BOUND('',#8916,.F.);
-+#8919=ORIENTED_EDGE('',*,*,#8918,.F.);
-+#8921=ORIENTED_EDGE('',*,*,#8920,.F.);
-+#8922=EDGE_LOOP('',(#8919,#8921));
-+#8923=FACE_BOUND('',#8922,.F.);
-+#8924=ADVANCED_FACE('',(#8917,#8923),#8913,.F.);
-+#8925=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8926=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8927=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8928=AXIS2_PLACEMENT_3D('',#8925,#8926,#8927);
-+#8929=CYLINDRICAL_SURFACE('',#8928,1.925E-1);
-+#8930=ORIENTED_EDGE('',*,*,#8918,.T.);
-+#8932=ORIENTED_EDGE('',*,*,#8931,.T.);
-+#8933=ORIENTED_EDGE('',*,*,#5696,.F.);
-+#8935=ORIENTED_EDGE('',*,*,#8934,.F.);
-+#8936=EDGE_LOOP('',(#8930,#8932,#8933,#8935));
-+#8937=FACE_OUTER_BOUND('',#8936,.F.);
-+#8938=ADVANCED_FACE('',(#8937),#8929,.F.);
-+#8939=CARTESIAN_POINT('',(1.2E1,1.5E0,9.E0));
-+#8940=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8941=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8942=AXIS2_PLACEMENT_3D('',#8939,#8940,#8941);
-+#8943=CYLINDRICAL_SURFACE('',#8942,1.925E-1);
-+#8944=ORIENTED_EDGE('',*,*,#8920,.T.);
-+#8945=ORIENTED_EDGE('',*,*,#8934,.T.);
-+#8946=ORIENTED_EDGE('',*,*,#5698,.F.);
-+#8947=ORIENTED_EDGE('',*,*,#8931,.F.);
-+#8948=EDGE_LOOP('',(#8944,#8945,#8946,#8947));
-+#8949=FACE_OUTER_BOUND('',#8948,.F.);
-+#8950=ADVANCED_FACE('',(#8949),#8943,.F.);
-+#8951=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8952=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8953=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8954=AXIS2_PLACEMENT_3D('',#8951,#8952,#8953);
-+#8955=CYLINDRICAL_SURFACE('',#8954,2.575E-1);
-+#8956=ORIENTED_EDGE('',*,*,#6464,.T.);
-+#8958=ORIENTED_EDGE('',*,*,#8957,.T.);
-+#8960=ORIENTED_EDGE('',*,*,#8959,.F.);
-+#8962=ORIENTED_EDGE('',*,*,#8961,.F.);
-+#8963=EDGE_LOOP('',(#8956,#8958,#8960,#8962));
-+#8964=FACE_OUTER_BOUND('',#8963,.F.);
-+#8965=ADVANCED_FACE('',(#8964),#8955,.F.);
-+#8966=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8967=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8968=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8969=AXIS2_PLACEMENT_3D('',#8966,#8967,#8968);
-+#8970=CYLINDRICAL_SURFACE('',#8969,2.575E-1);
-+#8971=ORIENTED_EDGE('',*,*,#6466,.T.);
-+#8972=ORIENTED_EDGE('',*,*,#8961,.T.);
-+#8974=ORIENTED_EDGE('',*,*,#8973,.F.);
-+#8975=ORIENTED_EDGE('',*,*,#8957,.F.);
-+#8976=EDGE_LOOP('',(#8971,#8972,#8974,#8975));
-+#8977=FACE_OUTER_BOUND('',#8976,.F.);
-+#8978=ADVANCED_FACE('',(#8977),#8970,.F.);
-+#8979=CARTESIAN_POINT('',(1.8E1,1.E0,9.E0));
-+#8980=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8981=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8982=AXIS2_PLACEMENT_3D('',#8979,#8980,#8981);
-+#8983=PLANE('',#8982);
-+#8984=ORIENTED_EDGE('',*,*,#8959,.T.);
-+#8985=ORIENTED_EDGE('',*,*,#8973,.T.);
-+#8986=EDGE_LOOP('',(#8984,#8985));
-+#8987=FACE_OUTER_BOUND('',#8986,.F.);
-+#8989=ORIENTED_EDGE('',*,*,#8988,.F.);
-+#8991=ORIENTED_EDGE('',*,*,#8990,.F.);
-+#8992=EDGE_LOOP('',(#8989,#8991));
-+#8993=FACE_BOUND('',#8992,.F.);
-+#8994=ADVANCED_FACE('',(#8987,#8993),#8983,.F.);
-+#8995=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#8996=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#8997=DIRECTION('',(1.E0,0.E0,0.E0));
-+#8998=AXIS2_PLACEMENT_3D('',#8995,#8996,#8997);
-+#8999=CYLINDRICAL_SURFACE('',#8998,1.925E-1);
-+#9000=ORIENTED_EDGE('',*,*,#8988,.T.);
-+#9002=ORIENTED_EDGE('',*,*,#9001,.T.);
-+#9003=ORIENTED_EDGE('',*,*,#5702,.F.);
-+#9005=ORIENTED_EDGE('',*,*,#9004,.F.);
-+#9006=EDGE_LOOP('',(#9000,#9002,#9003,#9005));
-+#9007=FACE_OUTER_BOUND('',#9006,.F.);
-+#9008=ADVANCED_FACE('',(#9007),#8999,.F.);
-+#9009=CARTESIAN_POINT('',(1.8E1,1.5E0,9.E0));
-+#9010=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9011=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9012=AXIS2_PLACEMENT_3D('',#9009,#9010,#9011);
-+#9013=CYLINDRICAL_SURFACE('',#9012,1.925E-1);
-+#9014=ORIENTED_EDGE('',*,*,#8990,.T.);
-+#9015=ORIENTED_EDGE('',*,*,#9004,.T.);
-+#9016=ORIENTED_EDGE('',*,*,#5704,.F.);
-+#9017=ORIENTED_EDGE('',*,*,#9001,.F.);
-+#9018=EDGE_LOOP('',(#9014,#9015,#9016,#9017));
-+#9019=FACE_OUTER_BOUND('',#9018,.F.);
-+#9020=ADVANCED_FACE('',(#9019),#9013,.F.);
-+#9021=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9022=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9024=AXIS2_PLACEMENT_3D('',#9021,#9022,#9023);
-+#9025=CYLINDRICAL_SURFACE('',#9024,2.575E-1);
-+#9026=ORIENTED_EDGE('',*,*,#6470,.T.);
-+#9028=ORIENTED_EDGE('',*,*,#9027,.T.);
-+#9030=ORIENTED_EDGE('',*,*,#9029,.F.);
-+#9032=ORIENTED_EDGE('',*,*,#9031,.F.);
-+#9033=EDGE_LOOP('',(#9026,#9028,#9030,#9032));
-+#9034=FACE_OUTER_BOUND('',#9033,.F.);
-+#9035=ADVANCED_FACE('',(#9034),#9025,.F.);
-+#9036=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9037=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9038=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9039=AXIS2_PLACEMENT_3D('',#9036,#9037,#9038);
-+#9040=CYLINDRICAL_SURFACE('',#9039,2.575E-1);
-+#9041=ORIENTED_EDGE('',*,*,#6472,.T.);
-+#9042=ORIENTED_EDGE('',*,*,#9031,.T.);
-+#9044=ORIENTED_EDGE('',*,*,#9043,.F.);
-+#9045=ORIENTED_EDGE('',*,*,#9027,.F.);
-+#9046=EDGE_LOOP('',(#9041,#9042,#9044,#9045));
-+#9047=FACE_OUTER_BOUND('',#9046,.F.);
-+#9048=ADVANCED_FACE('',(#9047),#9040,.F.);
-+#9049=CARTESIAN_POINT('',(6.E0,1.E0,1.8E1));
-+#9050=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9051=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9052=AXIS2_PLACEMENT_3D('',#9049,#9050,#9051);
-+#9053=PLANE('',#9052);
-+#9054=ORIENTED_EDGE('',*,*,#9029,.T.);
-+#9055=ORIENTED_EDGE('',*,*,#9043,.T.);
-+#9056=EDGE_LOOP('',(#9054,#9055));
-+#9057=FACE_OUTER_BOUND('',#9056,.F.);
-+#9059=ORIENTED_EDGE('',*,*,#9058,.F.);
-+#9061=ORIENTED_EDGE('',*,*,#9060,.F.);
-+#9062=EDGE_LOOP('',(#9059,#9061));
-+#9063=FACE_BOUND('',#9062,.F.);
-+#9064=ADVANCED_FACE('',(#9057,#9063),#9053,.F.);
-+#9065=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9066=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9067=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9068=AXIS2_PLACEMENT_3D('',#9065,#9066,#9067);
-+#9069=CYLINDRICAL_SURFACE('',#9068,1.925E-1);
-+#9070=ORIENTED_EDGE('',*,*,#9058,.T.);
-+#9072=ORIENTED_EDGE('',*,*,#9071,.T.);
-+#9073=ORIENTED_EDGE('',*,*,#5708,.F.);
-+#9075=ORIENTED_EDGE('',*,*,#9074,.F.);
-+#9076=EDGE_LOOP('',(#9070,#9072,#9073,#9075));
-+#9077=FACE_OUTER_BOUND('',#9076,.F.);
-+#9078=ADVANCED_FACE('',(#9077),#9069,.F.);
-+#9079=CARTESIAN_POINT('',(6.E0,1.5E0,1.8E1));
-+#9080=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9081=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9082=AXIS2_PLACEMENT_3D('',#9079,#9080,#9081);
-+#9083=CYLINDRICAL_SURFACE('',#9082,1.925E-1);
-+#9084=ORIENTED_EDGE('',*,*,#9060,.T.);
-+#9085=ORIENTED_EDGE('',*,*,#9074,.T.);
-+#9086=ORIENTED_EDGE('',*,*,#5710,.F.);
-+#9087=ORIENTED_EDGE('',*,*,#9071,.F.);
-+#9088=EDGE_LOOP('',(#9084,#9085,#9086,#9087));
-+#9089=FACE_OUTER_BOUND('',#9088,.F.);
-+#9090=ADVANCED_FACE('',(#9089),#9083,.F.);
-+#9091=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9092=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9093=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9094=AXIS2_PLACEMENT_3D('',#9091,#9092,#9093);
-+#9095=CYLINDRICAL_SURFACE('',#9094,2.575E-1);
-+#9096=ORIENTED_EDGE('',*,*,#6476,.T.);
-+#9098=ORIENTED_EDGE('',*,*,#9097,.T.);
-+#9100=ORIENTED_EDGE('',*,*,#9099,.F.);
-+#9102=ORIENTED_EDGE('',*,*,#9101,.F.);
-+#9103=EDGE_LOOP('',(#9096,#9098,#9100,#9102));
-+#9104=FACE_OUTER_BOUND('',#9103,.F.);
-+#9105=ADVANCED_FACE('',(#9104),#9095,.F.);
-+#9106=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9107=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9108=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9109=AXIS2_PLACEMENT_3D('',#9106,#9107,#9108);
-+#9110=CYLINDRICAL_SURFACE('',#9109,2.575E-1);
-+#9111=ORIENTED_EDGE('',*,*,#6478,.T.);
-+#9112=ORIENTED_EDGE('',*,*,#9101,.T.);
-+#9114=ORIENTED_EDGE('',*,*,#9113,.F.);
-+#9115=ORIENTED_EDGE('',*,*,#9097,.F.);
-+#9116=EDGE_LOOP('',(#9111,#9112,#9114,#9115));
-+#9117=FACE_OUTER_BOUND('',#9116,.F.);
-+#9118=ADVANCED_FACE('',(#9117),#9110,.F.);
-+#9119=CARTESIAN_POINT('',(1.2E1,1.E0,1.8E1));
-+#9120=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9121=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9122=AXIS2_PLACEMENT_3D('',#9119,#9120,#9121);
-+#9123=PLANE('',#9122);
-+#9124=ORIENTED_EDGE('',*,*,#9099,.T.);
-+#9125=ORIENTED_EDGE('',*,*,#9113,.T.);
-+#9126=EDGE_LOOP('',(#9124,#9125));
-+#9127=FACE_OUTER_BOUND('',#9126,.F.);
-+#9129=ORIENTED_EDGE('',*,*,#9128,.F.);
-+#9131=ORIENTED_EDGE('',*,*,#9130,.F.);
-+#9132=EDGE_LOOP('',(#9129,#9131));
-+#9133=FACE_BOUND('',#9132,.F.);
-+#9134=ADVANCED_FACE('',(#9127,#9133),#9123,.F.);
-+#9135=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9136=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9137=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9138=AXIS2_PLACEMENT_3D('',#9135,#9136,#9137);
-+#9139=CYLINDRICAL_SURFACE('',#9138,1.925E-1);
-+#9140=ORIENTED_EDGE('',*,*,#9128,.T.);
-+#9142=ORIENTED_EDGE('',*,*,#9141,.T.);
-+#9143=ORIENTED_EDGE('',*,*,#5714,.F.);
-+#9145=ORIENTED_EDGE('',*,*,#9144,.F.);
-+#9146=EDGE_LOOP('',(#9140,#9142,#9143,#9145));
-+#9147=FACE_OUTER_BOUND('',#9146,.F.);
-+#9148=ADVANCED_FACE('',(#9147),#9139,.F.);
-+#9149=CARTESIAN_POINT('',(1.2E1,1.5E0,1.8E1));
-+#9150=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9151=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9152=AXIS2_PLACEMENT_3D('',#9149,#9150,#9151);
-+#9153=CYLINDRICAL_SURFACE('',#9152,1.925E-1);
-+#9154=ORIENTED_EDGE('',*,*,#9130,.T.);
-+#9155=ORIENTED_EDGE('',*,*,#9144,.T.);
-+#9156=ORIENTED_EDGE('',*,*,#5716,.F.);
-+#9157=ORIENTED_EDGE('',*,*,#9141,.F.);
-+#9158=EDGE_LOOP('',(#9154,#9155,#9156,#9157));
-+#9159=FACE_OUTER_BOUND('',#9158,.F.);
-+#9160=ADVANCED_FACE('',(#9159),#9153,.F.);
-+#9161=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9162=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9163=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9164=AXIS2_PLACEMENT_3D('',#9161,#9162,#9163);
-+#9165=CYLINDRICAL_SURFACE('',#9164,2.575E-1);
-+#9166=ORIENTED_EDGE('',*,*,#6482,.T.);
-+#9168=ORIENTED_EDGE('',*,*,#9167,.T.);
-+#9170=ORIENTED_EDGE('',*,*,#9169,.F.);
-+#9172=ORIENTED_EDGE('',*,*,#9171,.F.);
-+#9173=EDGE_LOOP('',(#9166,#9168,#9170,#9172));
-+#9174=FACE_OUTER_BOUND('',#9173,.F.);
-+#9175=ADVANCED_FACE('',(#9174),#9165,.F.);
-+#9176=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9177=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9178=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9179=AXIS2_PLACEMENT_3D('',#9176,#9177,#9178);
-+#9180=CYLINDRICAL_SURFACE('',#9179,2.575E-1);
-+#9181=ORIENTED_EDGE('',*,*,#6484,.T.);
-+#9182=ORIENTED_EDGE('',*,*,#9171,.T.);
-+#9184=ORIENTED_EDGE('',*,*,#9183,.F.);
-+#9185=ORIENTED_EDGE('',*,*,#9167,.F.);
-+#9186=EDGE_LOOP('',(#9181,#9182,#9184,#9185));
-+#9187=FACE_OUTER_BOUND('',#9186,.F.);
-+#9188=ADVANCED_FACE('',(#9187),#9180,.F.);
-+#9189=CARTESIAN_POINT('',(1.8E1,1.E0,1.8E1));
-+#9190=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9191=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9192=AXIS2_PLACEMENT_3D('',#9189,#9190,#9191);
-+#9193=PLANE('',#9192);
-+#9194=ORIENTED_EDGE('',*,*,#9169,.T.);
-+#9195=ORIENTED_EDGE('',*,*,#9183,.T.);
-+#9196=EDGE_LOOP('',(#9194,#9195));
-+#9197=FACE_OUTER_BOUND('',#9196,.F.);
-+#9199=ORIENTED_EDGE('',*,*,#9198,.F.);
-+#9201=ORIENTED_EDGE('',*,*,#9200,.F.);
-+#9202=EDGE_LOOP('',(#9199,#9201));
-+#9203=FACE_BOUND('',#9202,.F.);
-+#9204=ADVANCED_FACE('',(#9197,#9203),#9193,.F.);
-+#9205=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9206=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9208=AXIS2_PLACEMENT_3D('',#9205,#9206,#9207);
-+#9209=CYLINDRICAL_SURFACE('',#9208,1.925E-1);
-+#9210=ORIENTED_EDGE('',*,*,#9198,.T.);
-+#9212=ORIENTED_EDGE('',*,*,#9211,.T.);
-+#9213=ORIENTED_EDGE('',*,*,#5720,.F.);
-+#9215=ORIENTED_EDGE('',*,*,#9214,.F.);
-+#9216=EDGE_LOOP('',(#9210,#9212,#9213,#9215));
-+#9217=FACE_OUTER_BOUND('',#9216,.F.);
-+#9218=ADVANCED_FACE('',(#9217),#9209,.F.);
-+#9219=CARTESIAN_POINT('',(1.8E1,1.5E0,1.8E1));
-+#9220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9222=AXIS2_PLACEMENT_3D('',#9219,#9220,#9221);
-+#9223=CYLINDRICAL_SURFACE('',#9222,1.925E-1);
-+#9224=ORIENTED_EDGE('',*,*,#9200,.T.);
-+#9225=ORIENTED_EDGE('',*,*,#9214,.T.);
-+#9226=ORIENTED_EDGE('',*,*,#5722,.F.);
-+#9227=ORIENTED_EDGE('',*,*,#9211,.F.);
-+#9228=EDGE_LOOP('',(#9224,#9225,#9226,#9227));
-+#9229=FACE_OUTER_BOUND('',#9228,.F.);
-+#9230=ADVANCED_FACE('',(#9229),#9223,.F.);
-+#9231=CARTESIAN_POINT('',(2.2E1,1.5E0,1.2E1));
-+#9232=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9233=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9234=AXIS2_PLACEMENT_3D('',#9231,#9232,#9233);
-+#9235=PLANE('',#9234);
-+#9236=ORIENTED_EDGE('',*,*,#6328,.T.);
-+#9237=ORIENTED_EDGE('',*,*,#6155,.T.);
-+#9239=ORIENTED_EDGE('',*,*,#9238,.T.);
-+#9240=EDGE_LOOP('',(#9236,#9237,#9239));
-+#9241=FACE_OUTER_BOUND('',#9240,.F.);
-+#9242=ADVANCED_FACE('',(#9241),#9235,.F.);
-+#9243=CARTESIAN_POINT('',(2.375E1,6.5E0,1.E1));
-+#9244=DIRECTION('',(0.E0,-5.E-1,-8.660254037844E-1));
-+#9245=DIRECTION('',(0.E0,-8.660254037844E-1,5.E-1));
-+#9246=AXIS2_PLACEMENT_3D('',#9243,#9244,#9245);
-+#9247=PLANE('',#9246);
-+#9248=ORIENTED_EDGE('',*,*,#6330,.T.);
-+#9249=ORIENTED_EDGE('',*,*,#9238,.F.);
-+#9250=ORIENTED_EDGE('',*,*,#6153,.F.);
-+#9251=ORIENTED_EDGE('',*,*,#6209,.T.);
-+#9252=EDGE_LOOP('',(#9248,#9249,#9250,#9251));
-+#9253=FACE_OUTER_BOUND('',#9252,.F.);
-+#9255=ORIENTED_EDGE('',*,*,#9254,.F.);
-+#9257=ORIENTED_EDGE('',*,*,#9256,.F.);
-+#9258=EDGE_LOOP('',(#9255,#9257));
-+#9259=FACE_BOUND('',#9258,.F.);
-+#9260=ADVANCED_FACE('',(#9253,#9259),#9247,.F.);
-+#9261=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9262=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9263=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9264=AXIS2_PLACEMENT_3D('',#9261,#9262,#9263);
-+#9265=CYLINDRICAL_SURFACE('',#9264,2.575E-1);
-+#9267=ORIENTED_EDGE('',*,*,#9266,.F.);
-+#9268=ORIENTED_EDGE('',*,*,#9254,.T.);
-+#9270=ORIENTED_EDGE('',*,*,#9269,.F.);
-+#9272=ORIENTED_EDGE('',*,*,#9271,.F.);
-+#9273=EDGE_LOOP('',(#9267,#9268,#9270,#9272));
-+#9274=FACE_OUTER_BOUND('',#9273,.F.);
-+#9275=ADVANCED_FACE('',(#9274),#9265,.F.);
-+#9276=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9277=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9278=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9279=AXIS2_PLACEMENT_3D('',#9276,#9277,#9278);
-+#9280=CYLINDRICAL_SURFACE('',#9279,2.575E-1);
-+#9281=ORIENTED_EDGE('',*,*,#9269,.T.);
-+#9282=ORIENTED_EDGE('',*,*,#9256,.T.);
-+#9283=ORIENTED_EDGE('',*,*,#9266,.T.);
-+#9285=ORIENTED_EDGE('',*,*,#9284,.F.);
-+#9286=EDGE_LOOP('',(#9281,#9282,#9283,#9285));
-+#9287=FACE_OUTER_BOUND('',#9286,.F.);
-+#9288=ADVANCED_FACE('',(#9287),#9280,.F.);
-+#9289=CARTESIAN_POINT('',(2.2875E1,1.E0,1.2E1));
-+#9290=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9291=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9292=AXIS2_PLACEMENT_3D('',#9289,#9290,#9291);
-+#9293=PLANE('',#9292);
-+#9294=ORIENTED_EDGE('',*,*,#9271,.T.);
-+#9295=ORIENTED_EDGE('',*,*,#9284,.T.);
-+#9296=EDGE_LOOP('',(#9294,#9295));
-+#9297=FACE_OUTER_BOUND('',#9296,.F.);
-+#9299=ORIENTED_EDGE('',*,*,#9298,.F.);
-+#9301=ORIENTED_EDGE('',*,*,#9300,.F.);
-+#9302=EDGE_LOOP('',(#9299,#9301));
-+#9303=FACE_BOUND('',#9302,.F.);
-+#9304=ADVANCED_FACE('',(#9297,#9303),#9293,.F.);
-+#9305=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9306=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9307=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9308=AXIS2_PLACEMENT_3D('',#9305,#9306,#9307);
-+#9309=CYLINDRICAL_SURFACE('',#9308,1.925E-1);
-+#9310=ORIENTED_EDGE('',*,*,#9298,.T.);
-+#9312=ORIENTED_EDGE('',*,*,#9311,.T.);
-+#9313=ORIENTED_EDGE('',*,*,#5596,.F.);
-+#9315=ORIENTED_EDGE('',*,*,#9314,.F.);
-+#9316=EDGE_LOOP('',(#9310,#9312,#9313,#9315));
-+#9317=FACE_OUTER_BOUND('',#9316,.F.);
-+#9318=ADVANCED_FACE('',(#9317),#9309,.F.);
-+#9319=CARTESIAN_POINT('',(2.2875E1,1.5E0,1.2E1));
-+#9320=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9321=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9322=AXIS2_PLACEMENT_3D('',#9319,#9320,#9321);
-+#9323=CYLINDRICAL_SURFACE('',#9322,1.925E-1);
-+#9324=ORIENTED_EDGE('',*,*,#9300,.T.);
-+#9325=ORIENTED_EDGE('',*,*,#9314,.T.);
-+#9326=ORIENTED_EDGE('',*,*,#5598,.F.);
-+#9327=ORIENTED_EDGE('',*,*,#9311,.F.);
-+#9328=EDGE_LOOP('',(#9324,#9325,#9326,#9327));
-+#9329=FACE_OUTER_BOUND('',#9328,.F.);
-+#9330=ADVANCED_FACE('',(#9329),#9323,.F.);
-+#9331=CARTESIAN_POINT('',(2.185E1,6.65E0,1.006892397423E1));
-+#9332=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9333=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9334=AXIS2_PLACEMENT_3D('',#9331,#9332,#9333);
-+#9335=CYLINDRICAL_SURFACE('',#9334,3.5E-1);
-+#9337=ORIENTED_EDGE('',*,*,#9336,.T.);
-+#9339=ORIENTED_EDGE('',*,*,#9338,.T.);
-+#9341=ORIENTED_EDGE('',*,*,#9340,.F.);
-+#9342=ORIENTED_EDGE('',*,*,#6175,.T.);
-+#9343=EDGE_LOOP('',(#9337,#9339,#9341,#9342));
-+#9344=FACE_OUTER_BOUND('',#9343,.F.);
-+#9345=ADVANCED_FACE('',(#9344),#9335,.T.);
-+#9346=CARTESIAN_POINT('',(2.15E1,7.E0,1.E1));
-+#9347=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9348=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9349=AXIS2_PLACEMENT_3D('',#9346,#9347,#9348);
-+#9350=PLANE('',#9349);
-+#9351=ORIENTED_EDGE('',*,*,#9336,.F.);
-+#9352=ORIENTED_EDGE('',*,*,#6197,.T.);
-+#9354=ORIENTED_EDGE('',*,*,#9353,.F.);
-+#9356=ORIENTED_EDGE('',*,*,#9355,.F.);
-+#9357=EDGE_LOOP('',(#9351,#9352,#9354,#9356));
-+#9358=FACE_OUTER_BOUND('',#9357,.F.);
-+#9359=ADVANCED_FACE('',(#9358),#9350,.T.);
-+#9360=CARTESIAN_POINT('',(2.115E1,2.35E0,9.441108058217E0));
-+#9361=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9362=DIRECTION('',(1.015061051086E-14,-1.E0,0.E0));
-+#9363=AXIS2_PLACEMENT_3D('',#9360,#9361,#9362);
-+#9364=CYLINDRICAL_SURFACE('',#9363,3.5E-1);
-+#9366=ORIENTED_EDGE('',*,*,#9365,.F.);
-+#9368=ORIENTED_EDGE('',*,*,#9367,.T.);
-+#9369=ORIENTED_EDGE('',*,*,#9353,.T.);
-+#9370=ORIENTED_EDGE('',*,*,#6195,.T.);
-+#9371=EDGE_LOOP('',(#9366,#9368,#9369,#9370));
-+#9372=FACE_OUTER_BOUND('',#9371,.F.);
-+#9373=ADVANCED_FACE('',(#9372),#9364,.F.);
-+#9374=CARTESIAN_POINT('',(2.15E1,2.E0,1.E1));
-+#9375=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9376=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9377=AXIS2_PLACEMENT_3D('',#9374,#9375,#9376);
-+#9378=PLANE('',#9377);
-+#9379=ORIENTED_EDGE('',*,*,#9365,.T.);
-+#9380=ORIENTED_EDGE('',*,*,#6193,.T.);
-+#9382=ORIENTED_EDGE('',*,*,#9381,.F.);
-+#9384=ORIENTED_EDGE('',*,*,#9383,.F.);
-+#9385=EDGE_LOOP('',(#9379,#9380,#9382,#9384));
-+#9386=FACE_OUTER_BOUND('',#9385,.F.);
-+#9387=ADVANCED_FACE('',(#9386),#9378,.T.);
-+#9388=CARTESIAN_POINT('',(1.985E1,2.35E0,9.441108058217E0));
-+#9389=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9390=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9391=AXIS2_PLACEMENT_3D('',#9388,#9389,#9390);
-+#9392=CYLINDRICAL_SURFACE('',#9391,3.5E-1);
-+#9394=ORIENTED_EDGE('',*,*,#9393,.F.);
-+#9396=ORIENTED_EDGE('',*,*,#9395,.T.);
-+#9397=ORIENTED_EDGE('',*,*,#9381,.T.);
-+#9398=ORIENTED_EDGE('',*,*,#6191,.T.);
-+#9399=EDGE_LOOP('',(#9394,#9396,#9397,#9398));
-+#9400=FACE_OUTER_BOUND('',#9399,.F.);
-+#9401=ADVANCED_FACE('',(#9400),#9392,.F.);
-+#9402=CARTESIAN_POINT('',(1.95E1,2.E0,1.E1));
-+#9403=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9404=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9405=AXIS2_PLACEMENT_3D('',#9402,#9403,#9404);
-+#9406=PLANE('',#9405);
-+#9407=ORIENTED_EDGE('',*,*,#9393,.T.);
-+#9408=ORIENTED_EDGE('',*,*,#6189,.T.);
-+#9410=ORIENTED_EDGE('',*,*,#9409,.F.);
-+#9412=ORIENTED_EDGE('',*,*,#9411,.F.);
-+#9413=EDGE_LOOP('',(#9407,#9408,#9410,#9412));
-+#9414=FACE_OUTER_BOUND('',#9413,.F.);
-+#9415=ADVANCED_FACE('',(#9414),#9406,.T.);
-+#9416=CARTESIAN_POINT('',(1.985E1,9.15E0,9.441108058217E0));
-+#9417=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9418=DIRECTION('',(-1.015061051086E-14,1.E0,0.E0));
-+#9419=AXIS2_PLACEMENT_3D('',#9416,#9417,#9418);
-+#9420=CYLINDRICAL_SURFACE('',#9419,3.5E-1);
-+#9422=ORIENTED_EDGE('',*,*,#9421,.F.);
-+#9424=ORIENTED_EDGE('',*,*,#9423,.T.);
-+#9425=ORIENTED_EDGE('',*,*,#9409,.T.);
-+#9426=ORIENTED_EDGE('',*,*,#6187,.T.);
-+#9427=EDGE_LOOP('',(#9422,#9424,#9425,#9426));
-+#9428=FACE_OUTER_BOUND('',#9427,.F.);
-+#9429=ADVANCED_FACE('',(#9428),#9420,.F.);
-+#9430=CARTESIAN_POINT('',(1.95E1,9.5E0,1.E1));
-+#9431=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9432=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9433=AXIS2_PLACEMENT_3D('',#9430,#9431,#9432);
-+#9434=PLANE('',#9433);
-+#9436=ORIENTED_EDGE('',*,*,#9435,.F.);
-+#9438=ORIENTED_EDGE('',*,*,#9437,.F.);
-+#9439=ORIENTED_EDGE('',*,*,#9421,.T.);
-+#9440=ORIENTED_EDGE('',*,*,#6185,.T.);
-+#9441=EDGE_LOOP('',(#9436,#9438,#9439,#9440));
-+#9442=FACE_OUTER_BOUND('',#9441,.F.);
-+#9443=ADVANCED_FACE('',(#9442),#9434,.T.);
-+#9444=CARTESIAN_POINT('',(2.104720076055E1,9.15E0,9.441108058217E0));
-+#9445=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9446=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9447=AXIS2_PLACEMENT_3D('',#9444,#9445,#9446);
-+#9448=CYLINDRICAL_SURFACE('',#9447,3.5E-1);
-+#9450=ORIENTED_EDGE('',*,*,#9449,.F.);
-+#9452=ORIENTED_EDGE('',*,*,#9451,.T.);
-+#9453=ORIENTED_EDGE('',*,*,#9435,.T.);
-+#9454=ORIENTED_EDGE('',*,*,#6183,.T.);
-+#9455=EDGE_LOOP('',(#9450,#9452,#9453,#9454));
-+#9456=FACE_OUTER_BOUND('',#9455,.F.);
-+#9457=ADVANCED_FACE('',(#9456),#9448,.F.);
-+#9458=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,1.E1));
-+#9459=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#9460=DIRECTION('',(4.856429311786E-1,-8.741572761215E-1,0.E0));
-+#9461=AXIS2_PLACEMENT_3D('',#9458,#9459,#9460);
-+#9462=PLANE('',#9461);
-+#9464=ORIENTED_EDGE('',*,*,#9463,.F.);
-+#9466=ORIENTED_EDGE('',*,*,#9465,.F.);
-+#9467=ORIENTED_EDGE('',*,*,#9449,.T.);
-+#9468=ORIENTED_EDGE('',*,*,#6181,.T.);
-+#9469=EDGE_LOOP('',(#9464,#9466,#9467,#9468));
-+#9470=FACE_OUTER_BOUND('',#9469,.F.);
-+#9471=ADVANCED_FACE('',(#9470),#9462,.T.);
-+#9472=CARTESIAN_POINT('',(2.204720076055E1,7.35E0,9.441108058217E0));
-+#9473=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9474=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9475=AXIS2_PLACEMENT_3D('',#9472,#9473,#9474);
-+#9476=CYLINDRICAL_SURFACE('',#9475,3.5E-1);
-+#9478=ORIENTED_EDGE('',*,*,#9477,.F.);
-+#9480=ORIENTED_EDGE('',*,*,#9479,.T.);
-+#9481=ORIENTED_EDGE('',*,*,#9463,.T.);
-+#9482=ORIENTED_EDGE('',*,*,#6179,.T.);
-+#9483=EDGE_LOOP('',(#9478,#9480,#9481,#9482));
-+#9484=FACE_OUTER_BOUND('',#9483,.F.);
-+#9485=ADVANCED_FACE('',(#9484),#9476,.F.);
-+#9486=CARTESIAN_POINT('',(2.264203082158E1,7.E0,1.E1));
-+#9487=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9488=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9489=AXIS2_PLACEMENT_3D('',#9486,#9487,#9488);
-+#9490=PLANE('',#9489);
-+#9491=ORIENTED_EDGE('',*,*,#9340,.T.);
-+#9493=ORIENTED_EDGE('',*,*,#9492,.F.);
-+#9494=ORIENTED_EDGE('',*,*,#9477,.T.);
-+#9495=ORIENTED_EDGE('',*,*,#6177,.T.);
-+#9496=EDGE_LOOP('',(#9491,#9493,#9494,#9495));
-+#9497=FACE_OUTER_BOUND('',#9496,.F.);
-+#9498=ADVANCED_FACE('',(#9497),#9490,.T.);
-+#9499=CARTESIAN_POINT('',(2.4E1,0.E0,9.5E0));
-+#9500=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9501=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9502=AXIS2_PLACEMENT_3D('',#9499,#9500,#9501);
-+#9503=PLANE('',#9502);
-+#9504=ORIENTED_EDGE('',*,*,#9492,.T.);
-+#9505=ORIENTED_EDGE('',*,*,#9338,.F.);
-+#9506=ORIENTED_EDGE('',*,*,#9355,.T.);
-+#9507=ORIENTED_EDGE('',*,*,#9367,.F.);
-+#9508=ORIENTED_EDGE('',*,*,#9383,.T.);
-+#9509=ORIENTED_EDGE('',*,*,#9395,.F.);
-+#9510=ORIENTED_EDGE('',*,*,#9411,.T.);
-+#9511=ORIENTED_EDGE('',*,*,#9423,.F.);
-+#9512=ORIENTED_EDGE('',*,*,#9437,.T.);
-+#9513=ORIENTED_EDGE('',*,*,#9451,.F.);
-+#9514=ORIENTED_EDGE('',*,*,#9465,.T.);
-+#9515=ORIENTED_EDGE('',*,*,#9479,.F.);
-+#9516=EDGE_LOOP('',(#9504,#9505,#9506,#9507,#9508,#9509,#9510,#9511,#9512,#9513,
-+#9514,#9515));
-+#9517=FACE_OUTER_BOUND('',#9516,.F.);
-+#9518=ADVANCED_FACE('',(#9517),#9503,.F.);
-+#9519=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#9520=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9521=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9522=AXIS2_PLACEMENT_3D('',#9519,#9520,#9521);
-+#9523=CYLINDRICAL_SURFACE('',#9522,9.5E-2);
-+#9524=ORIENTED_EDGE('',*,*,#6007,.F.);
-+#9526=ORIENTED_EDGE('',*,*,#9525,.T.);
-+#9528=ORIENTED_EDGE('',*,*,#9527,.T.);
-+#9530=ORIENTED_EDGE('',*,*,#9529,.F.);
-+#9531=EDGE_LOOP('',(#9524,#9526,#9528,#9530));
-+#9532=FACE_OUTER_BOUND('',#9531,.F.);
-+#9533=ADVANCED_FACE('',(#9532),#9523,.F.);
-+#9534=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.E0));
-+#9535=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9536=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9537=AXIS2_PLACEMENT_3D('',#9534,#9535,#9536);
-+#9538=CYLINDRICAL_SURFACE('',#9537,9.5E-2);
-+#9539=ORIENTED_EDGE('',*,*,#6009,.F.);
-+#9540=ORIENTED_EDGE('',*,*,#9529,.T.);
-+#9542=ORIENTED_EDGE('',*,*,#9541,.T.);
-+#9543=ORIENTED_EDGE('',*,*,#9525,.F.);
-+#9544=EDGE_LOOP('',(#9539,#9540,#9542,#9543));
-+#9545=FACE_OUTER_BOUND('',#9544,.F.);
-+#9546=ADVANCED_FACE('',(#9545),#9538,.F.);
-+#9547=CARTESIAN_POINT('',(2.01875E1,1.05E1,8.25E0));
-+#9548=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9549=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9550=AXIS2_PLACEMENT_3D('',#9547,#9548,#9549);
-+#9551=PLANE('',#9550);
-+#9552=ORIENTED_EDGE('',*,*,#9527,.F.);
-+#9553=ORIENTED_EDGE('',*,*,#9541,.F.);
-+#9554=EDGE_LOOP('',(#9552,#9553));
-+#9555=FACE_OUTER_BOUND('',#9554,.F.);
-+#9556=ADVANCED_FACE('',(#9555),#9551,.T.);
-+#9557=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#9558=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9559=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9560=AXIS2_PLACEMENT_3D('',#9557,#9558,#9559);
-+#9561=CYLINDRICAL_SURFACE('',#9560,9.5E-2);
-+#9562=ORIENTED_EDGE('',*,*,#6013,.F.);
-+#9564=ORIENTED_EDGE('',*,*,#9563,.T.);
-+#9566=ORIENTED_EDGE('',*,*,#9565,.T.);
-+#9568=ORIENTED_EDGE('',*,*,#9567,.F.);
-+#9569=EDGE_LOOP('',(#9562,#9564,#9566,#9568));
-+#9570=FACE_OUTER_BOUND('',#9569,.F.);
-+#9571=ADVANCED_FACE('',(#9570),#9561,.F.);
-+#9572=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.E0));
-+#9573=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9574=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9575=AXIS2_PLACEMENT_3D('',#9572,#9573,#9574);
-+#9576=CYLINDRICAL_SURFACE('',#9575,9.5E-2);
-+#9577=ORIENTED_EDGE('',*,*,#6015,.F.);
-+#9578=ORIENTED_EDGE('',*,*,#9567,.T.);
-+#9580=ORIENTED_EDGE('',*,*,#9579,.T.);
-+#9581=ORIENTED_EDGE('',*,*,#9563,.F.);
-+#9582=EDGE_LOOP('',(#9577,#9578,#9580,#9581));
-+#9583=FACE_OUTER_BOUND('',#9582,.F.);
-+#9584=ADVANCED_FACE('',(#9583),#9576,.F.);
-+#9585=CARTESIAN_POINT('',(1.975E1,1.00625E1,8.25E0));
-+#9586=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9587=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9588=AXIS2_PLACEMENT_3D('',#9585,#9586,#9587);
-+#9589=PLANE('',#9588);
-+#9590=ORIENTED_EDGE('',*,*,#9565,.F.);
-+#9591=ORIENTED_EDGE('',*,*,#9579,.F.);
-+#9592=EDGE_LOOP('',(#9590,#9591));
-+#9593=FACE_OUTER_BOUND('',#9592,.F.);
-+#9594=ADVANCED_FACE('',(#9593),#9589,.T.);
-+#9595=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#9596=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9597=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9598=AXIS2_PLACEMENT_3D('',#9595,#9596,#9597);
-+#9599=CYLINDRICAL_SURFACE('',#9598,9.5E-2);
-+#9600=ORIENTED_EDGE('',*,*,#6019,.T.);
-+#9602=ORIENTED_EDGE('',*,*,#9601,.T.);
-+#9604=ORIENTED_EDGE('',*,*,#9603,.F.);
-+#9606=ORIENTED_EDGE('',*,*,#9605,.F.);
-+#9607=EDGE_LOOP('',(#9600,#9602,#9604,#9606));
-+#9608=FACE_OUTER_BOUND('',#9607,.F.);
-+#9609=ADVANCED_FACE('',(#9608),#9599,.F.);
-+#9610=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.E0));
-+#9611=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9612=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9613=AXIS2_PLACEMENT_3D('',#9610,#9611,#9612);
-+#9614=CYLINDRICAL_SURFACE('',#9613,9.5E-2);
-+#9615=ORIENTED_EDGE('',*,*,#6021,.T.);
-+#9616=ORIENTED_EDGE('',*,*,#9605,.T.);
-+#9618=ORIENTED_EDGE('',*,*,#9617,.F.);
-+#9619=ORIENTED_EDGE('',*,*,#9601,.F.);
-+#9620=EDGE_LOOP('',(#9615,#9616,#9618,#9619));
-+#9621=FACE_OUTER_BOUND('',#9620,.F.);
-+#9622=ADVANCED_FACE('',(#9621),#9614,.F.);
-+#9623=CARTESIAN_POINT('',(4.25E0,1.00625E1,8.25E0));
-+#9624=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9625=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9626=AXIS2_PLACEMENT_3D('',#9623,#9624,#9625);
-+#9627=PLANE('',#9626);
-+#9628=ORIENTED_EDGE('',*,*,#9603,.T.);
-+#9629=ORIENTED_EDGE('',*,*,#9617,.T.);
-+#9630=EDGE_LOOP('',(#9628,#9629));
-+#9631=FACE_OUTER_BOUND('',#9630,.F.);
-+#9632=ADVANCED_FACE('',(#9631),#9627,.F.);
-+#9633=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#9634=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9635=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9636=AXIS2_PLACEMENT_3D('',#9633,#9634,#9635);
-+#9637=CYLINDRICAL_SURFACE('',#9636,9.5E-2);
-+#9638=ORIENTED_EDGE('',*,*,#6025,.T.);
-+#9640=ORIENTED_EDGE('',*,*,#9639,.T.);
-+#9642=ORIENTED_EDGE('',*,*,#9641,.F.);
-+#9644=ORIENTED_EDGE('',*,*,#9643,.F.);
-+#9645=EDGE_LOOP('',(#9638,#9640,#9642,#9644));
-+#9646=FACE_OUTER_BOUND('',#9645,.F.);
-+#9647=ADVANCED_FACE('',(#9646),#9637,.F.);
-+#9648=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.E0));
-+#9649=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9650=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9651=AXIS2_PLACEMENT_3D('',#9648,#9649,#9650);
-+#9652=CYLINDRICAL_SURFACE('',#9651,9.5E-2);
-+#9653=ORIENTED_EDGE('',*,*,#6027,.T.);
-+#9654=ORIENTED_EDGE('',*,*,#9643,.T.);
-+#9656=ORIENTED_EDGE('',*,*,#9655,.F.);
-+#9657=ORIENTED_EDGE('',*,*,#9639,.F.);
-+#9658=EDGE_LOOP('',(#9653,#9654,#9656,#9657));
-+#9659=FACE_OUTER_BOUND('',#9658,.F.);
-+#9660=ADVANCED_FACE('',(#9659),#9652,.F.);
-+#9661=CARTESIAN_POINT('',(3.8125E0,1.05E1,8.25E0));
-+#9662=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9663=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9664=AXIS2_PLACEMENT_3D('',#9661,#9662,#9663);
-+#9665=PLANE('',#9664);
-+#9666=ORIENTED_EDGE('',*,*,#9641,.T.);
-+#9667=ORIENTED_EDGE('',*,*,#9655,.T.);
-+#9668=EDGE_LOOP('',(#9666,#9667));
-+#9669=FACE_OUTER_BOUND('',#9668,.F.);
-+#9670=ADVANCED_FACE('',(#9669),#9665,.F.);
-+#9671=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#9672=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9673=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9674=AXIS2_PLACEMENT_3D('',#9671,#9672,#9673);
-+#9675=CYLINDRICAL_SURFACE('',#9674,9.5E-2);
-+#9676=ORIENTED_EDGE('',*,*,#6037,.T.);
-+#9678=ORIENTED_EDGE('',*,*,#9677,.T.);
-+#9680=ORIENTED_EDGE('',*,*,#9679,.F.);
-+#9682=ORIENTED_EDGE('',*,*,#9681,.F.);
-+#9683=EDGE_LOOP('',(#9676,#9678,#9680,#9682));
-+#9684=FACE_OUTER_BOUND('',#9683,.F.);
-+#9685=ADVANCED_FACE('',(#9684),#9675,.F.);
-+#9686=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.E0));
-+#9687=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9688=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9689=AXIS2_PLACEMENT_3D('',#9686,#9687,#9688);
-+#9690=CYLINDRICAL_SURFACE('',#9689,9.5E-2);
-+#9691=ORIENTED_EDGE('',*,*,#6039,.T.);
-+#9692=ORIENTED_EDGE('',*,*,#9681,.T.);
-+#9694=ORIENTED_EDGE('',*,*,#9693,.F.);
-+#9695=ORIENTED_EDGE('',*,*,#9677,.F.);
-+#9696=EDGE_LOOP('',(#9691,#9692,#9694,#9695));
-+#9697=FACE_OUTER_BOUND('',#9696,.F.);
-+#9698=ADVANCED_FACE('',(#9697),#9690,.F.);
-+#9699=CARTESIAN_POINT('',(4.25E0,1.09375E1,8.25E0));
-+#9700=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9701=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9702=AXIS2_PLACEMENT_3D('',#9699,#9700,#9701);
-+#9703=PLANE('',#9702);
-+#9704=ORIENTED_EDGE('',*,*,#9679,.T.);
-+#9705=ORIENTED_EDGE('',*,*,#9693,.T.);
-+#9706=EDGE_LOOP('',(#9704,#9705));
-+#9707=FACE_OUTER_BOUND('',#9706,.F.);
-+#9708=ADVANCED_FACE('',(#9707),#9703,.F.);
-+#9709=CARTESIAN_POINT('',(4.5E0,2.E0,8.E0));
-+#9710=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9711=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9712=AXIS2_PLACEMENT_3D('',#9709,#9710,#9711);
-+#9713=PLANE('',#9712);
-+#9715=ORIENTED_EDGE('',*,*,#9714,.T.);
-+#9717=ORIENTED_EDGE('',*,*,#9716,.T.);
-+#9719=ORIENTED_EDGE('',*,*,#9718,.F.);
-+#9720=ORIENTED_EDGE('',*,*,#6043,.F.);
-+#9721=EDGE_LOOP('',(#9715,#9717,#9719,#9720));
-+#9722=FACE_OUTER_BOUND('',#9721,.F.);
-+#9723=ADVANCED_FACE('',(#9722),#9713,.F.);
-+#9724=CARTESIAN_POINT('',(3.75E0,2.75E0,7.931076025772E0));
-+#9725=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9726=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9727=AXIS2_PLACEMENT_3D('',#9724,#9725,#9726);
-+#9728=CYLINDRICAL_SURFACE('',#9727,7.5E-1);
-+#9729=ORIENTED_EDGE('',*,*,#9714,.F.);
-+#9730=ORIENTED_EDGE('',*,*,#6057,.T.);
-+#9732=ORIENTED_EDGE('',*,*,#9731,.T.);
-+#9734=ORIENTED_EDGE('',*,*,#9733,.T.);
-+#9735=EDGE_LOOP('',(#9729,#9730,#9732,#9734));
-+#9736=FACE_OUTER_BOUND('',#9735,.F.);
-+#9737=ADVANCED_FACE('',(#9736),#9728,.F.);
-+#9738=CARTESIAN_POINT('',(4.5E0,9.5E0,8.E0));
-+#9739=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9740=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9741=AXIS2_PLACEMENT_3D('',#9738,#9739,#9740);
-+#9742=PLANE('',#9741);
-+#9743=ORIENTED_EDGE('',*,*,#9731,.F.);
-+#9744=ORIENTED_EDGE('',*,*,#6055,.F.);
-+#9746=ORIENTED_EDGE('',*,*,#9745,.T.);
-+#9748=ORIENTED_EDGE('',*,*,#9747,.T.);
-+#9749=EDGE_LOOP('',(#9743,#9744,#9746,#9748));
-+#9750=FACE_OUTER_BOUND('',#9749,.F.);
-+#9751=ADVANCED_FACE('',(#9750),#9742,.F.);
-+#9752=CARTESIAN_POINT('',(3.75E0,8.75E0,7.931076025772E0));
-+#9753=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9754=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9755=AXIS2_PLACEMENT_3D('',#9752,#9753,#9754);
-+#9756=CYLINDRICAL_SURFACE('',#9755,7.5E-1);
-+#9757=ORIENTED_EDGE('',*,*,#9745,.F.);
-+#9758=ORIENTED_EDGE('',*,*,#6053,.T.);
-+#9760=ORIENTED_EDGE('',*,*,#9759,.T.);
-+#9762=ORIENTED_EDGE('',*,*,#9761,.T.);
-+#9763=EDGE_LOOP('',(#9757,#9758,#9760,#9762));
-+#9764=FACE_OUTER_BOUND('',#9763,.F.);
-+#9765=ADVANCED_FACE('',(#9764),#9756,.F.);
-+#9766=CARTESIAN_POINT('',(2.746858067304E0,9.5E0,8.E0));
-+#9767=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9768=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9769=AXIS2_PLACEMENT_3D('',#9766,#9767,#9768);
-+#9770=PLANE('',#9769);
-+#9772=ORIENTED_EDGE('',*,*,#9771,.T.);
-+#9774=ORIENTED_EDGE('',*,*,#9773,.T.);
-+#9775=ORIENTED_EDGE('',*,*,#9759,.F.);
-+#9776=ORIENTED_EDGE('',*,*,#6051,.F.);
-+#9777=EDGE_LOOP('',(#9772,#9774,#9775,#9776));
-+#9778=FACE_OUTER_BOUND('',#9777,.F.);
-+#9779=ADVANCED_FACE('',(#9778),#9770,.F.);
-+#9780=CARTESIAN_POINT('',(3.188160579053E0,8.75E0,7.931076025772E0));
-+#9781=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9782=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9783=AXIS2_PLACEMENT_3D('',#9780,#9781,#9782);
-+#9784=CYLINDRICAL_SURFACE('',#9783,7.5E-1);
-+#9785=ORIENTED_EDGE('',*,*,#9771,.F.);
-+#9786=ORIENTED_EDGE('',*,*,#6049,.T.);
-+#9788=ORIENTED_EDGE('',*,*,#9787,.T.);
-+#9790=ORIENTED_EDGE('',*,*,#9789,.T.);
-+#9791=EDGE_LOOP('',(#9785,#9786,#9788,#9790));
-+#9792=FACE_OUTER_BOUND('',#9791,.F.);
-+#9793=ADVANCED_FACE('',(#9792),#9784,.F.);
-+#9794=CARTESIAN_POINT('',(-1.419808599362E0,2.E0,8.E0));
-+#9795=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9796=DIRECTION('',(4.856429311786E-1,8.741572761215E-1,0.E0));
-+#9797=AXIS2_PLACEMENT_3D('',#9794,#9795,#9796);
-+#9798=PLANE('',#9797);
-+#9800=ORIENTED_EDGE('',*,*,#9799,.T.);
-+#9802=ORIENTED_EDGE('',*,*,#9801,.T.);
-+#9803=ORIENTED_EDGE('',*,*,#9787,.F.);
-+#9804=ORIENTED_EDGE('',*,*,#6047,.F.);
-+#9805=EDGE_LOOP('',(#9800,#9802,#9803,#9804));
-+#9806=FACE_OUTER_BOUND('',#9805,.F.);
-+#9807=ADVANCED_FACE('',(#9806),#9798,.F.);
-+#9808=CARTESIAN_POINT('',(-1.451727542799E-1,2.75E0,7.931076025772E0));
-+#9809=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9810=DIRECTION('',(-8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9811=AXIS2_PLACEMENT_3D('',#9808,#9809,#9810);
-+#9812=CYLINDRICAL_SURFACE('',#9811,7.5E-1);
-+#9813=ORIENTED_EDGE('',*,*,#9799,.F.);
-+#9814=ORIENTED_EDGE('',*,*,#6045,.T.);
-+#9815=ORIENTED_EDGE('',*,*,#9718,.T.);
-+#9817=ORIENTED_EDGE('',*,*,#9816,.T.);
-+#9818=EDGE_LOOP('',(#9813,#9814,#9815,#9817));
-+#9819=FACE_OUTER_BOUND('',#9818,.F.);
-+#9820=ADVANCED_FACE('',(#9819),#9812,.F.);
-+#9821=CARTESIAN_POINT('',(0.E0,0.E0,8.5E0));
-+#9822=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9823=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9824=AXIS2_PLACEMENT_3D('',#9821,#9822,#9823);
-+#9825=PLANE('',#9824);
-+#9826=ORIENTED_EDGE('',*,*,#9733,.F.);
-+#9827=ORIENTED_EDGE('',*,*,#9747,.F.);
-+#9828=ORIENTED_EDGE('',*,*,#9761,.F.);
-+#9829=ORIENTED_EDGE('',*,*,#9773,.F.);
-+#9830=ORIENTED_EDGE('',*,*,#9789,.F.);
-+#9831=ORIENTED_EDGE('',*,*,#9801,.F.);
-+#9832=ORIENTED_EDGE('',*,*,#9816,.F.);
-+#9833=ORIENTED_EDGE('',*,*,#9716,.F.);
-+#9834=EDGE_LOOP('',(#9826,#9827,#9828,#9829,#9830,#9831,#9832,#9833));
-+#9835=FACE_OUTER_BOUND('',#9834,.F.);
-+#9836=ADVANCED_FACE('',(#9835),#9825,.T.);
-+#9837=CARTESIAN_POINT('',(2.541980859936E1,2.E0,8.E0));
-+#9838=DIRECTION('',(-8.741572761215E-1,-4.856429311786E-1,0.E0));
-+#9839=DIRECTION('',(-4.856429311786E-1,8.741572761215E-1,0.E0));
-+#9840=AXIS2_PLACEMENT_3D('',#9837,#9838,#9839);
-+#9841=PLANE('',#9840);
-+#9843=ORIENTED_EDGE('',*,*,#9842,.T.);
-+#9844=ORIENTED_EDGE('',*,*,#6061,.T.);
-+#9846=ORIENTED_EDGE('',*,*,#9845,.F.);
-+#9848=ORIENTED_EDGE('',*,*,#9847,.F.);
-+#9849=EDGE_LOOP('',(#9843,#9844,#9846,#9848));
-+#9850=FACE_OUTER_BOUND('',#9849,.F.);
-+#9851=ADVANCED_FACE('',(#9850),#9841,.T.);
-+#9852=CARTESIAN_POINT('',(2.414517275428E1,2.75E0,8.558891941783E0));
-+#9853=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9854=DIRECTION('',(8.741572761215E-1,4.856429311786E-1,0.E0));
-+#9855=AXIS2_PLACEMENT_3D('',#9852,#9853,#9854);
-+#9856=CYLINDRICAL_SURFACE('',#9855,7.5E-1);
-+#9857=ORIENTED_EDGE('',*,*,#9842,.F.);
-+#9859=ORIENTED_EDGE('',*,*,#9858,.T.);
-+#9861=ORIENTED_EDGE('',*,*,#9860,.T.);
-+#9862=ORIENTED_EDGE('',*,*,#6063,.T.);
-+#9863=EDGE_LOOP('',(#9857,#9859,#9861,#9862));
-+#9864=FACE_OUTER_BOUND('',#9863,.F.);
-+#9865=ADVANCED_FACE('',(#9864),#9856,.F.);
-+#9866=CARTESIAN_POINT('',(2.4E1,0.E0,8.5E0));
-+#9867=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9868=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9869=AXIS2_PLACEMENT_3D('',#9866,#9867,#9868);
-+#9870=PLANE('',#9869);
-+#9872=ORIENTED_EDGE('',*,*,#9871,.F.);
-+#9874=ORIENTED_EDGE('',*,*,#9873,.T.);
-+#9875=ORIENTED_EDGE('',*,*,#9858,.F.);
-+#9876=ORIENTED_EDGE('',*,*,#9847,.T.);
-+#9878=ORIENTED_EDGE('',*,*,#9877,.F.);
-+#9880=ORIENTED_EDGE('',*,*,#9879,.T.);
-+#9882=ORIENTED_EDGE('',*,*,#9881,.F.);
-+#9884=ORIENTED_EDGE('',*,*,#9883,.T.);
-+#9885=EDGE_LOOP('',(#9872,#9874,#9875,#9876,#9878,#9880,#9882,#9884));
-+#9886=FACE_OUTER_BOUND('',#9885,.F.);
-+#9887=ADVANCED_FACE('',(#9886),#9870,.F.);
-+#9888=CARTESIAN_POINT('',(2.025E1,2.75E0,8.558891941783E0));
-+#9889=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9890=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9891=AXIS2_PLACEMENT_3D('',#9888,#9889,#9890);
-+#9892=CYLINDRICAL_SURFACE('',#9891,7.5E-1);
-+#9894=ORIENTED_EDGE('',*,*,#9893,.F.);
-+#9895=ORIENTED_EDGE('',*,*,#9871,.T.);
-+#9897=ORIENTED_EDGE('',*,*,#9896,.T.);
-+#9898=ORIENTED_EDGE('',*,*,#6067,.T.);
-+#9899=EDGE_LOOP('',(#9894,#9895,#9897,#9898));
-+#9900=FACE_OUTER_BOUND('',#9899,.F.);
-+#9901=ADVANCED_FACE('',(#9900),#9892,.F.);
-+#9902=CARTESIAN_POINT('',(1.95E1,2.E0,8.E0));
-+#9903=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9904=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9905=AXIS2_PLACEMENT_3D('',#9902,#9903,#9904);
-+#9906=PLANE('',#9905);
-+#9907=ORIENTED_EDGE('',*,*,#9893,.T.);
-+#9908=ORIENTED_EDGE('',*,*,#6065,.T.);
-+#9909=ORIENTED_EDGE('',*,*,#9860,.F.);
-+#9910=ORIENTED_EDGE('',*,*,#9873,.F.);
-+#9911=EDGE_LOOP('',(#9907,#9908,#9909,#9910));
-+#9912=FACE_OUTER_BOUND('',#9911,.F.);
-+#9913=ADVANCED_FACE('',(#9912),#9906,.T.);
-+#9914=CARTESIAN_POINT('',(1.95E1,9.5E0,8.E0));
-+#9915=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9916=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9917=AXIS2_PLACEMENT_3D('',#9914,#9915,#9916);
-+#9918=PLANE('',#9917);
-+#9919=ORIENTED_EDGE('',*,*,#9896,.F.);
-+#9920=ORIENTED_EDGE('',*,*,#9883,.F.);
-+#9922=ORIENTED_EDGE('',*,*,#9921,.T.);
-+#9923=ORIENTED_EDGE('',*,*,#6069,.T.);
-+#9924=EDGE_LOOP('',(#9919,#9920,#9922,#9923));
-+#9925=FACE_OUTER_BOUND('',#9924,.F.);
-+#9926=ADVANCED_FACE('',(#9925),#9918,.T.);
-+#9927=CARTESIAN_POINT('',(2.025E1,8.75E0,8.558891941783E0));
-+#9928=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9929=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9930=AXIS2_PLACEMENT_3D('',#9927,#9928,#9929);
-+#9931=CYLINDRICAL_SURFACE('',#9930,7.5E-1);
-+#9932=ORIENTED_EDGE('',*,*,#9921,.F.);
-+#9933=ORIENTED_EDGE('',*,*,#9881,.T.);
-+#9935=ORIENTED_EDGE('',*,*,#9934,.T.);
-+#9936=ORIENTED_EDGE('',*,*,#6071,.T.);
-+#9937=EDGE_LOOP('',(#9932,#9933,#9935,#9936));
-+#9938=FACE_OUTER_BOUND('',#9937,.F.);
-+#9939=ADVANCED_FACE('',(#9938),#9931,.F.);
-+#9940=CARTESIAN_POINT('',(2.125314193270E1,9.5E0,8.E0));
-+#9941=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9942=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9943=AXIS2_PLACEMENT_3D('',#9940,#9941,#9942);
-+#9944=PLANE('',#9943);
-+#9946=ORIENTED_EDGE('',*,*,#9945,.T.);
-+#9947=ORIENTED_EDGE('',*,*,#6073,.T.);
-+#9948=ORIENTED_EDGE('',*,*,#9934,.F.);
-+#9949=ORIENTED_EDGE('',*,*,#9879,.F.);
-+#9950=EDGE_LOOP('',(#9946,#9947,#9948,#9949));
-+#9951=FACE_OUTER_BOUND('',#9950,.F.);
-+#9952=ADVANCED_FACE('',(#9951),#9944,.T.);
-+#9953=CARTESIAN_POINT('',(2.081183942095E1,8.75E0,8.558891941783E0));
-+#9954=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9955=DIRECTION('',(0.E0,1.E0,0.E0));
-+#9956=AXIS2_PLACEMENT_3D('',#9953,#9954,#9955);
-+#9957=CYLINDRICAL_SURFACE('',#9956,7.5E-1);
-+#9958=ORIENTED_EDGE('',*,*,#9945,.F.);
-+#9959=ORIENTED_EDGE('',*,*,#9877,.T.);
-+#9960=ORIENTED_EDGE('',*,*,#9845,.T.);
-+#9961=ORIENTED_EDGE('',*,*,#6075,.T.);
-+#9962=EDGE_LOOP('',(#9958,#9959,#9960,#9961));
-+#9963=FACE_OUTER_BOUND('',#9962,.F.);
-+#9964=ADVANCED_FACE('',(#9963),#9957,.F.);
-+#9965=CARTESIAN_POINT('',(7.5E0,0.E0,6.875E-1));
-+#9966=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#9967=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9968=AXIS2_PLACEMENT_3D('',#9965,#9966,#9967);
-+#9969=PLANE('',#9968);
-+#9970=ORIENTED_EDGE('',*,*,#5726,.F.);
-+#9972=ORIENTED_EDGE('',*,*,#9971,.T.);
-+#9974=ORIENTED_EDGE('',*,*,#9973,.T.);
-+#9976=ORIENTED_EDGE('',*,*,#9975,.F.);
-+#9977=EDGE_LOOP('',(#9970,#9972,#9974,#9976));
-+#9978=FACE_OUTER_BOUND('',#9977,.F.);
-+#9979=ADVANCED_FACE('',(#9978),#9969,.F.);
-+#9980=CARTESIAN_POINT('',(7.5E0,0.E0,1.25E0));
-+#9981=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#9982=DIRECTION('',(1.E0,0.E0,0.E0));
-+#9983=AXIS2_PLACEMENT_3D('',#9980,#9981,#9982);
-+#9984=CYLINDRICAL_SURFACE('',#9983,5.625E-1);
-+#9985=ORIENTED_EDGE('',*,*,#5732,.F.);
-+#9987=ORIENTED_EDGE('',*,*,#9986,.T.);
-+#9989=ORIENTED_EDGE('',*,*,#9988,.T.);
-+#9990=ORIENTED_EDGE('',*,*,#9971,.F.);
-+#9991=EDGE_LOOP('',(#9985,#9987,#9989,#9990));
-+#9992=FACE_OUTER_BOUND('',#9991,.F.);
-+#9993=ADVANCED_FACE('',(#9992),#9984,.F.);
-+#9994=CARTESIAN_POINT('',(1.05E1,0.E0,1.8125E0));
-+#9995=DIRECTION('',(0.E0,0.E0,1.E0));
-+#9996=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#9997=AXIS2_PLACEMENT_3D('',#9994,#9995,#9996);
-+#9998=PLANE('',#9997);
-+#9999=ORIENTED_EDGE('',*,*,#5730,.F.);
-+#10001=ORIENTED_EDGE('',*,*,#10000,.T.);
-+#10003=ORIENTED_EDGE('',*,*,#10002,.T.);
-+#10004=ORIENTED_EDGE('',*,*,#9986,.F.);
-+#10005=EDGE_LOOP('',(#9999,#10001,#10003,#10004));
-+#10006=FACE_OUTER_BOUND('',#10005,.F.);
-+#10007=ADVANCED_FACE('',(#10006),#9998,.F.);
-+#10008=CARTESIAN_POINT('',(1.05E1,0.E0,1.25E0));
-+#10009=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10010=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10011=AXIS2_PLACEMENT_3D('',#10008,#10009,#10010);
-+#10012=CYLINDRICAL_SURFACE('',#10011,5.625E-1);
-+#10013=ORIENTED_EDGE('',*,*,#5728,.F.);
-+#10014=ORIENTED_EDGE('',*,*,#9975,.T.);
-+#10016=ORIENTED_EDGE('',*,*,#10015,.T.);
-+#10017=ORIENTED_EDGE('',*,*,#10000,.F.);
-+#10018=EDGE_LOOP('',(#10013,#10014,#10016,#10017));
-+#10019=FACE_OUTER_BOUND('',#10018,.F.);
-+#10020=ADVANCED_FACE('',(#10019),#10012,.F.);
-+#10021=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10022=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10023=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10024=AXIS2_PLACEMENT_3D('',#10021,#10022,#10023);
-+#10025=PLANE('',#10024);
-+#10026=ORIENTED_EDGE('',*,*,#9973,.F.);
-+#10027=ORIENTED_EDGE('',*,*,#9988,.F.);
-+#10028=ORIENTED_EDGE('',*,*,#10002,.F.);
-+#10029=ORIENTED_EDGE('',*,*,#10015,.F.);
-+#10030=EDGE_LOOP('',(#10026,#10027,#10028,#10029));
-+#10031=FACE_OUTER_BOUND('',#10030,.F.);
-+#10032=ADVANCED_FACE('',(#10031),#10025,.T.);
-+#10033=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10034=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10035=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10036=AXIS2_PLACEMENT_3D('',#10033,#10034,#10035);
-+#10037=PLANE('',#10036);
-+#10039=ORIENTED_EDGE('',*,*,#10038,.F.);
-+#10041=ORIENTED_EDGE('',*,*,#10040,.F.);
-+#10043=ORIENTED_EDGE('',*,*,#10042,.F.);
-+#10045=ORIENTED_EDGE('',*,*,#10044,.F.);
-+#10047=ORIENTED_EDGE('',*,*,#10046,.F.);
-+#10048=EDGE_LOOP('',(#10039,#10041,#10043,#10045,#10047));
-+#10049=FACE_OUTER_BOUND('',#10048,.F.);
-+#10050=ADVANCED_FACE('',(#10049),#10037,.T.);
-+#10051=CARTESIAN_POINT('',(1.455736763592E0,-6.892397422826E-2,
-+4.577195232320E0));
-+#10052=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10053=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10054=AXIS2_PLACEMENT_3D('',#10051,#10052,#10053);
-+#10055=CYLINDRICAL_SURFACE('',#10054,7.5E-1);
-+#10057=ORIENTED_EDGE('',*,*,#10056,.F.);
-+#10058=ORIENTED_EDGE('',*,*,#5738,.T.);
-+#10060=ORIENTED_EDGE('',*,*,#10059,.T.);
-+#10061=ORIENTED_EDGE('',*,*,#10038,.T.);
-+#10062=EDGE_LOOP('',(#10057,#10058,#10060,#10061));
-+#10063=FACE_OUTER_BOUND('',#10062,.F.);
-+#10064=ADVANCED_FACE('',(#10063),#10055,.F.);
-+#10065=CARTESIAN_POINT('',(6.875E-1,0.E0,4.284771824132E0));
-+#10066=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10067=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10068=AXIS2_PLACEMENT_3D('',#10065,#10066,#10067);
-+#10069=PLANE('',#10068);
-+#10070=ORIENTED_EDGE('',*,*,#10056,.T.);
-+#10071=ORIENTED_EDGE('',*,*,#10046,.T.);
-+#10073=ORIENTED_EDGE('',*,*,#10072,.F.);
-+#10074=ORIENTED_EDGE('',*,*,#5740,.F.);
-+#10075=EDGE_LOOP('',(#10070,#10071,#10073,#10074));
-+#10076=FACE_OUTER_BOUND('',#10075,.F.);
-+#10077=ADVANCED_FACE('',(#10076),#10069,.F.);
-+#10078=CARTESIAN_POINT('',(4.553039342392E0,0.E0,1.645354088550E0));
-+#10079=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10080=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10081=AXIS2_PLACEMENT_3D('',#10078,#10079,#10080);
-+#10082=CYLINDRICAL_SURFACE('',#10081,8.669989027347E-1);
-+#10083=ORIENTED_EDGE('',*,*,#5742,.F.);
-+#10084=ORIENTED_EDGE('',*,*,#10072,.T.);
-+#10085=ORIENTED_EDGE('',*,*,#10044,.T.);
-+#10087=ORIENTED_EDGE('',*,*,#10086,.F.);
-+#10088=EDGE_LOOP('',(#10083,#10084,#10085,#10087));
-+#10089=FACE_OUTER_BOUND('',#10088,.F.);
-+#10090=ADVANCED_FACE('',(#10089),#10082,.F.);
-+#10091=CARTESIAN_POINT('',(7.5E0,0.E0,7.5E0));
-+#10092=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10093=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10094=AXIS2_PLACEMENT_3D('',#10091,#10092,#10093);
-+#10095=CYLINDRICAL_SURFACE('',#10094,5.6875E0);
-+#10096=ORIENTED_EDGE('',*,*,#5744,.T.);
-+#10097=ORIENTED_EDGE('',*,*,#10086,.T.);
-+#10098=ORIENTED_EDGE('',*,*,#10042,.T.);
-+#10100=ORIENTED_EDGE('',*,*,#10099,.F.);
-+#10101=EDGE_LOOP('',(#10096,#10097,#10098,#10100));
-+#10102=FACE_OUTER_BOUND('',#10101,.F.);
-+#10103=ADVANCED_FACE('',(#10102),#10095,.T.);
-+#10104=CARTESIAN_POINT('',(1.61E0,0.E0,4.5E0));
-+#10105=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10106=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10107=AXIS2_PLACEMENT_3D('',#10104,#10105,#10106);
-+#10108=CYLINDRICAL_SURFACE('',#10107,9.225E-1);
-+#10109=ORIENTED_EDGE('',*,*,#10059,.F.);
-+#10110=ORIENTED_EDGE('',*,*,#5736,.F.);
-+#10111=ORIENTED_EDGE('',*,*,#10099,.T.);
-+#10112=ORIENTED_EDGE('',*,*,#10040,.T.);
-+#10113=EDGE_LOOP('',(#10109,#10110,#10111,#10112));
-+#10114=FACE_OUTER_BOUND('',#10113,.F.);
-+#10115=ADVANCED_FACE('',(#10114),#10108,.F.);
-+#10116=CARTESIAN_POINT('',(-1.85E-1,7.463919417831E-1,7.815E0));
-+#10117=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10118=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10119=AXIS2_PLACEMENT_3D('',#10116,#10117,#10118);
-+#10120=CYLINDRICAL_SURFACE('',#10119,8.75E-1);
-+#10122=ORIENTED_EDGE('',*,*,#10121,.T.);
-+#10123=ORIENTED_EDGE('',*,*,#5748,.T.);
-+#10125=ORIENTED_EDGE('',*,*,#10124,.F.);
-+#10127=ORIENTED_EDGE('',*,*,#10126,.T.);
-+#10128=EDGE_LOOP('',(#10122,#10123,#10125,#10127));
-+#10129=FACE_OUTER_BOUND('',#10128,.F.);
-+#10130=ADVANCED_FACE('',(#10129),#10120,.T.);
-+#10131=CARTESIAN_POINT('',(6.9E-1,0.E0,8.69E0));
-+#10132=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10133=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10134=AXIS2_PLACEMENT_3D('',#10131,#10132,#10133);
-+#10135=PLANE('',#10134);
-+#10136=ORIENTED_EDGE('',*,*,#10121,.F.);
-+#10138=ORIENTED_EDGE('',*,*,#10137,.T.);
-+#10140=ORIENTED_EDGE('',*,*,#10139,.F.);
-+#10141=ORIENTED_EDGE('',*,*,#5750,.F.);
-+#10142=EDGE_LOOP('',(#10136,#10138,#10140,#10141));
-+#10143=FACE_OUTER_BOUND('',#10142,.F.);
-+#10144=ADVANCED_FACE('',(#10143),#10135,.F.);
-+#10145=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10146=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10147=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10148=AXIS2_PLACEMENT_3D('',#10145,#10146,#10147);
-+#10149=PLANE('',#10148);
-+#10151=ORIENTED_EDGE('',*,*,#10150,.F.);
-+#10153=ORIENTED_EDGE('',*,*,#10152,.F.);
-+#10155=ORIENTED_EDGE('',*,*,#10154,.F.);
-+#10157=ORIENTED_EDGE('',*,*,#10156,.F.);
-+#10158=ORIENTED_EDGE('',*,*,#10137,.F.);
-+#10159=ORIENTED_EDGE('',*,*,#10126,.F.);
-+#10161=ORIENTED_EDGE('',*,*,#10160,.F.);
-+#10163=ORIENTED_EDGE('',*,*,#10162,.F.);
-+#10165=ORIENTED_EDGE('',*,*,#10164,.F.);
-+#10167=ORIENTED_EDGE('',*,*,#10166,.F.);
-+#10169=ORIENTED_EDGE('',*,*,#10168,.F.);
-+#10171=ORIENTED_EDGE('',*,*,#10170,.F.);
-+#10173=ORIENTED_EDGE('',*,*,#10172,.F.);
-+#10175=ORIENTED_EDGE('',*,*,#10174,.F.);
-+#10176=EDGE_LOOP('',(#10151,#10153,#10155,#10157,#10158,#10159,#10161,#10163,
-+#10165,#10167,#10169,#10171,#10173,#10175));
-+#10177=FACE_OUTER_BOUND('',#10176,.F.);
-+#10178=ADVANCED_FACE('',(#10177),#10149,.T.);
-+#10179=CARTESIAN_POINT('',(1.8125E0,0.E0,8.69E0));
-+#10180=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10181=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10182=AXIS2_PLACEMENT_3D('',#10179,#10180,#10181);
-+#10183=PLANE('',#10182);
-+#10185=ORIENTED_EDGE('',*,*,#10184,.F.);
-+#10186=ORIENTED_EDGE('',*,*,#10150,.T.);
-+#10188=ORIENTED_EDGE('',*,*,#10187,.F.);
-+#10189=ORIENTED_EDGE('',*,*,#5758,.F.);
-+#10190=EDGE_LOOP('',(#10185,#10186,#10188,#10189));
-+#10191=FACE_OUTER_BOUND('',#10190,.F.);
-+#10192=ADVANCED_FACE('',(#10191),#10183,.F.);
-+#10193=CARTESIAN_POINT('',(2.6875E0,7.463919417831E-1,7.815E0));
-+#10194=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10195=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10196=AXIS2_PLACEMENT_3D('',#10193,#10194,#10195);
-+#10197=CYLINDRICAL_SURFACE('',#10196,8.75E-1);
-+#10198=ORIENTED_EDGE('',*,*,#10184,.T.);
-+#10199=ORIENTED_EDGE('',*,*,#5756,.T.);
-+#10201=ORIENTED_EDGE('',*,*,#10200,.F.);
-+#10202=ORIENTED_EDGE('',*,*,#10152,.T.);
-+#10203=EDGE_LOOP('',(#10198,#10199,#10201,#10202));
-+#10204=FACE_OUTER_BOUND('',#10203,.F.);
-+#10205=ADVANCED_FACE('',(#10204),#10197,.T.);
-+#10206=CARTESIAN_POINT('',(1.8125E0,0.E0,7.5E0));
-+#10207=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10208=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10209=AXIS2_PLACEMENT_3D('',#10206,#10207,#10208);
-+#10210=PLANE('',#10209);
-+#10211=ORIENTED_EDGE('',*,*,#10200,.T.);
-+#10212=ORIENTED_EDGE('',*,*,#5754,.F.);
-+#10214=ORIENTED_EDGE('',*,*,#10213,.T.);
-+#10215=ORIENTED_EDGE('',*,*,#10154,.T.);
-+#10216=EDGE_LOOP('',(#10211,#10212,#10214,#10215));
-+#10217=FACE_OUTER_BOUND('',#10216,.F.);
-+#10218=ADVANCED_FACE('',(#10217),#10210,.F.);
-+#10219=CARTESIAN_POINT('',(1.25125E0,0.E0,7.5E0));
-+#10220=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10221=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10222=AXIS2_PLACEMENT_3D('',#10219,#10220,#10221);
-+#10223=CYLINDRICAL_SURFACE('',#10222,5.6125E-1);
-+#10224=ORIENTED_EDGE('',*,*,#5752,.F.);
-+#10225=ORIENTED_EDGE('',*,*,#10139,.T.);
-+#10226=ORIENTED_EDGE('',*,*,#10156,.T.);
-+#10227=ORIENTED_EDGE('',*,*,#10213,.F.);
-+#10228=EDGE_LOOP('',(#10224,#10225,#10226,#10227));
-+#10229=FACE_OUTER_BOUND('',#10228,.F.);
-+#10230=ADVANCED_FACE('',(#10229),#10223,.F.);
-+#10231=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,9.565E0));
-+#10232=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10233=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10234=AXIS2_PLACEMENT_3D('',#10231,#10232,#10233);
-+#10235=CYLINDRICAL_SURFACE('',#10234,8.75E-1);
-+#10237=ORIENTED_EDGE('',*,*,#10236,.F.);
-+#10238=ORIENTED_EDGE('',*,*,#5760,.T.);
-+#10239=ORIENTED_EDGE('',*,*,#10187,.T.);
-+#10240=ORIENTED_EDGE('',*,*,#10174,.T.);
-+#10241=EDGE_LOOP('',(#10237,#10238,#10239,#10240));
-+#10242=FACE_OUTER_BOUND('',#10241,.F.);
-+#10243=ADVANCED_FACE('',(#10242),#10235,.F.);
-+#10244=CARTESIAN_POINT('',(4.3125E0,0.E0,8.69E0));
-+#10245=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10246=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10247=AXIS2_PLACEMENT_3D('',#10244,#10245,#10246);
-+#10248=PLANE('',#10247);
-+#10249=ORIENTED_EDGE('',*,*,#10236,.T.);
-+#10250=ORIENTED_EDGE('',*,*,#10172,.T.);
-+#10252=ORIENTED_EDGE('',*,*,#10251,.F.);
-+#10253=ORIENTED_EDGE('',*,*,#5762,.F.);
-+#10254=EDGE_LOOP('',(#10249,#10250,#10252,#10253));
-+#10255=FACE_OUTER_BOUND('',#10254,.F.);
-+#10256=ADVANCED_FACE('',(#10255),#10248,.F.);
-+#10257=CARTESIAN_POINT('',(3.4375E0,-6.892397422826E-2,1.0375E1));
-+#10258=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10259=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10260=AXIS2_PLACEMENT_3D('',#10257,#10258,#10259);
-+#10261=CYLINDRICAL_SURFACE('',#10260,8.75E-1);
-+#10263=ORIENTED_EDGE('',*,*,#10262,.F.);
-+#10264=ORIENTED_EDGE('',*,*,#5764,.T.);
-+#10265=ORIENTED_EDGE('',*,*,#10251,.T.);
-+#10266=ORIENTED_EDGE('',*,*,#10170,.T.);
-+#10267=EDGE_LOOP('',(#10263,#10264,#10265,#10266));
-+#10268=FACE_OUTER_BOUND('',#10267,.F.);
-+#10269=ADVANCED_FACE('',(#10268),#10261,.F.);
-+#10270=CARTESIAN_POINT('',(4.3125E0,0.E0,1.125E1));
-+#10271=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10272=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10273=AXIS2_PLACEMENT_3D('',#10270,#10271,#10272);
-+#10274=PLANE('',#10273);
-+#10276=ORIENTED_EDGE('',*,*,#10275,.F.);
-+#10277=ORIENTED_EDGE('',*,*,#5766,.F.);
-+#10278=ORIENTED_EDGE('',*,*,#10262,.T.);
-+#10279=ORIENTED_EDGE('',*,*,#10168,.T.);
-+#10280=EDGE_LOOP('',(#10276,#10277,#10278,#10279));
-+#10281=FACE_OUTER_BOUND('',#10280,.F.);
-+#10282=ADVANCED_FACE('',(#10281),#10274,.F.);
-+#10283=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,1.0375E1));
-+#10284=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10285=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10286=AXIS2_PLACEMENT_3D('',#10283,#10284,#10285);
-+#10287=CYLINDRICAL_SURFACE('',#10286,8.75E-1);
-+#10289=ORIENTED_EDGE('',*,*,#10288,.F.);
-+#10290=ORIENTED_EDGE('',*,*,#5768,.T.);
-+#10291=ORIENTED_EDGE('',*,*,#10275,.T.);
-+#10292=ORIENTED_EDGE('',*,*,#10166,.T.);
-+#10293=EDGE_LOOP('',(#10289,#10290,#10291,#10292));
-+#10294=FACE_OUTER_BOUND('',#10293,.F.);
-+#10295=ADVANCED_FACE('',(#10294),#10287,.F.);
-+#10296=CARTESIAN_POINT('',(-1.3125E0,0.E0,1.125E1));
-+#10297=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10298=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10299=AXIS2_PLACEMENT_3D('',#10296,#10297,#10298);
-+#10300=PLANE('',#10299);
-+#10301=ORIENTED_EDGE('',*,*,#10288,.T.);
-+#10302=ORIENTED_EDGE('',*,*,#10164,.T.);
-+#10304=ORIENTED_EDGE('',*,*,#10303,.F.);
-+#10305=ORIENTED_EDGE('',*,*,#5770,.F.);
-+#10306=EDGE_LOOP('',(#10301,#10302,#10304,#10305));
-+#10307=FACE_OUTER_BOUND('',#10306,.F.);
-+#10308=ADVANCED_FACE('',(#10307),#10300,.F.);
-+#10309=CARTESIAN_POINT('',(-4.375E-1,-6.892397422826E-2,9.565E0));
-+#10310=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10311=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10312=AXIS2_PLACEMENT_3D('',#10309,#10310,#10311);
-+#10313=CYLINDRICAL_SURFACE('',#10312,8.75E-1);
-+#10315=ORIENTED_EDGE('',*,*,#10314,.F.);
-+#10316=ORIENTED_EDGE('',*,*,#5772,.T.);
-+#10317=ORIENTED_EDGE('',*,*,#10303,.T.);
-+#10318=ORIENTED_EDGE('',*,*,#10162,.T.);
-+#10319=EDGE_LOOP('',(#10315,#10316,#10317,#10318));
-+#10320=FACE_OUTER_BOUND('',#10319,.F.);
-+#10321=ADVANCED_FACE('',(#10320),#10313,.F.);
-+#10322=CARTESIAN_POINT('',(-1.3125E0,0.E0,8.69E0));
-+#10323=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10324=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10325=AXIS2_PLACEMENT_3D('',#10322,#10323,#10324);
-+#10326=PLANE('',#10325);
-+#10327=ORIENTED_EDGE('',*,*,#10124,.T.);
-+#10328=ORIENTED_EDGE('',*,*,#5774,.F.);
-+#10329=ORIENTED_EDGE('',*,*,#10314,.T.);
-+#10330=ORIENTED_EDGE('',*,*,#10160,.T.);
-+#10331=EDGE_LOOP('',(#10327,#10328,#10329,#10330));
-+#10332=FACE_OUTER_BOUND('',#10331,.F.);
-+#10333=ADVANCED_FACE('',(#10332),#10326,.F.);
-+#10334=CARTESIAN_POINT('',(6.875E-1,0.E0,1.65E1));
-+#10335=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10336=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10337=AXIS2_PLACEMENT_3D('',#10334,#10335,#10336);
-+#10338=PLANE('',#10337);
-+#10339=ORIENTED_EDGE('',*,*,#5778,.F.);
-+#10341=ORIENTED_EDGE('',*,*,#10340,.T.);
-+#10343=ORIENTED_EDGE('',*,*,#10342,.T.);
-+#10345=ORIENTED_EDGE('',*,*,#10344,.F.);
-+#10346=EDGE_LOOP('',(#10339,#10341,#10343,#10345));
-+#10347=FACE_OUTER_BOUND('',#10346,.F.);
-+#10348=ADVANCED_FACE('',(#10347),#10338,.F.);
-+#10349=CARTESIAN_POINT('',(1.25E0,0.E0,1.65E1));
-+#10350=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10351=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10352=AXIS2_PLACEMENT_3D('',#10349,#10350,#10351);
-+#10353=CYLINDRICAL_SURFACE('',#10352,5.625E-1);
-+#10354=ORIENTED_EDGE('',*,*,#5784,.F.);
-+#10356=ORIENTED_EDGE('',*,*,#10355,.T.);
-+#10358=ORIENTED_EDGE('',*,*,#10357,.T.);
-+#10359=ORIENTED_EDGE('',*,*,#10340,.F.);
-+#10360=EDGE_LOOP('',(#10354,#10356,#10358,#10359));
-+#10361=FACE_OUTER_BOUND('',#10360,.F.);
-+#10362=ADVANCED_FACE('',(#10361),#10353,.F.);
-+#10363=CARTESIAN_POINT('',(1.8125E0,0.E0,1.35E1));
-+#10364=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10365=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10366=AXIS2_PLACEMENT_3D('',#10363,#10364,#10365);
-+#10367=PLANE('',#10366);
-+#10368=ORIENTED_EDGE('',*,*,#5782,.F.);
-+#10370=ORIENTED_EDGE('',*,*,#10369,.T.);
-+#10372=ORIENTED_EDGE('',*,*,#10371,.T.);
-+#10373=ORIENTED_EDGE('',*,*,#10355,.F.);
-+#10374=EDGE_LOOP('',(#10368,#10370,#10372,#10373));
-+#10375=FACE_OUTER_BOUND('',#10374,.F.);
-+#10376=ADVANCED_FACE('',(#10375),#10367,.F.);
-+#10377=CARTESIAN_POINT('',(1.25E0,0.E0,1.35E1));
-+#10378=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10379=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10380=AXIS2_PLACEMENT_3D('',#10377,#10378,#10379);
-+#10381=CYLINDRICAL_SURFACE('',#10380,5.625E-1);
-+#10382=ORIENTED_EDGE('',*,*,#5780,.F.);
-+#10383=ORIENTED_EDGE('',*,*,#10344,.T.);
-+#10385=ORIENTED_EDGE('',*,*,#10384,.T.);
-+#10386=ORIENTED_EDGE('',*,*,#10369,.F.);
-+#10387=EDGE_LOOP('',(#10382,#10383,#10385,#10386));
-+#10388=FACE_OUTER_BOUND('',#10387,.F.);
-+#10389=ADVANCED_FACE('',(#10388),#10381,.F.);
-+#10390=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10391=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10392=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10393=AXIS2_PLACEMENT_3D('',#10390,#10391,#10392);
-+#10394=PLANE('',#10393);
-+#10395=ORIENTED_EDGE('',*,*,#10342,.F.);
-+#10396=ORIENTED_EDGE('',*,*,#10357,.F.);
-+#10397=ORIENTED_EDGE('',*,*,#10371,.F.);
-+#10398=ORIENTED_EDGE('',*,*,#10384,.F.);
-+#10399=EDGE_LOOP('',(#10395,#10396,#10397,#10398));
-+#10400=FACE_OUTER_BOUND('',#10399,.F.);
-+#10401=ADVANCED_FACE('',(#10400),#10394,.T.);
-+#10402=CARTESIAN_POINT('',(6.875E-1,0.E0,2.25E1));
-+#10403=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10404=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10405=AXIS2_PLACEMENT_3D('',#10402,#10403,#10404);
-+#10406=PLANE('',#10405);
-+#10407=ORIENTED_EDGE('',*,*,#5788,.F.);
-+#10409=ORIENTED_EDGE('',*,*,#10408,.T.);
-+#10411=ORIENTED_EDGE('',*,*,#10410,.T.);
-+#10413=ORIENTED_EDGE('',*,*,#10412,.F.);
-+#10414=EDGE_LOOP('',(#10407,#10409,#10411,#10413));
-+#10415=FACE_OUTER_BOUND('',#10414,.F.);
-+#10416=ADVANCED_FACE('',(#10415),#10406,.F.);
-+#10417=CARTESIAN_POINT('',(1.25E0,0.E0,2.25E1));
-+#10418=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10419=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10420=AXIS2_PLACEMENT_3D('',#10417,#10418,#10419);
-+#10421=CYLINDRICAL_SURFACE('',#10420,5.625E-1);
-+#10422=ORIENTED_EDGE('',*,*,#5794,.F.);
-+#10424=ORIENTED_EDGE('',*,*,#10423,.T.);
-+#10426=ORIENTED_EDGE('',*,*,#10425,.T.);
-+#10427=ORIENTED_EDGE('',*,*,#10408,.F.);
-+#10428=EDGE_LOOP('',(#10422,#10424,#10426,#10427));
-+#10429=FACE_OUTER_BOUND('',#10428,.F.);
-+#10430=ADVANCED_FACE('',(#10429),#10421,.F.);
-+#10431=CARTESIAN_POINT('',(1.8125E0,0.E0,1.95E1));
-+#10432=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10433=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10434=AXIS2_PLACEMENT_3D('',#10431,#10432,#10433);
-+#10435=PLANE('',#10434);
-+#10436=ORIENTED_EDGE('',*,*,#5792,.F.);
-+#10438=ORIENTED_EDGE('',*,*,#10437,.T.);
-+#10440=ORIENTED_EDGE('',*,*,#10439,.T.);
-+#10441=ORIENTED_EDGE('',*,*,#10423,.F.);
-+#10442=EDGE_LOOP('',(#10436,#10438,#10440,#10441));
-+#10443=FACE_OUTER_BOUND('',#10442,.F.);
-+#10444=ADVANCED_FACE('',(#10443),#10435,.F.);
-+#10445=CARTESIAN_POINT('',(1.25E0,0.E0,1.95E1));
-+#10446=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10447=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10448=AXIS2_PLACEMENT_3D('',#10445,#10446,#10447);
-+#10449=CYLINDRICAL_SURFACE('',#10448,5.625E-1);
-+#10450=ORIENTED_EDGE('',*,*,#5790,.F.);
-+#10451=ORIENTED_EDGE('',*,*,#10412,.T.);
-+#10453=ORIENTED_EDGE('',*,*,#10452,.T.);
-+#10454=ORIENTED_EDGE('',*,*,#10437,.F.);
-+#10455=EDGE_LOOP('',(#10450,#10451,#10453,#10454));
-+#10456=FACE_OUTER_BOUND('',#10455,.F.);
-+#10457=ADVANCED_FACE('',(#10456),#10449,.F.);
-+#10458=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10459=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10460=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10461=AXIS2_PLACEMENT_3D('',#10458,#10459,#10460);
-+#10462=PLANE('',#10461);
-+#10463=ORIENTED_EDGE('',*,*,#10410,.F.);
-+#10464=ORIENTED_EDGE('',*,*,#10425,.F.);
-+#10465=ORIENTED_EDGE('',*,*,#10439,.F.);
-+#10466=ORIENTED_EDGE('',*,*,#10452,.F.);
-+#10467=EDGE_LOOP('',(#10463,#10464,#10465,#10466));
-+#10468=FACE_OUTER_BOUND('',#10467,.F.);
-+#10469=ADVANCED_FACE('',(#10468),#10462,.T.);
-+#10470=CARTESIAN_POINT('',(7.5E0,0.E0,8.5E0));
-+#10471=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10472=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10473=AXIS2_PLACEMENT_3D('',#10470,#10471,#10472);
-+#10474=PLANE('',#10473);
-+#10475=ORIENTED_EDGE('',*,*,#5798,.F.);
-+#10477=ORIENTED_EDGE('',*,*,#10476,.T.);
-+#10479=ORIENTED_EDGE('',*,*,#10478,.T.);
-+#10481=ORIENTED_EDGE('',*,*,#10480,.F.);
-+#10482=EDGE_LOOP('',(#10475,#10477,#10479,#10481));
-+#10483=FACE_OUTER_BOUND('',#10482,.F.);
-+#10484=ADVANCED_FACE('',(#10483),#10474,.F.);
-+#10485=CARTESIAN_POINT('',(7.5E0,0.E0,9.E0));
-+#10486=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10487=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10488=AXIS2_PLACEMENT_3D('',#10485,#10486,#10487);
-+#10489=CYLINDRICAL_SURFACE('',#10488,5.E-1);
-+#10490=ORIENTED_EDGE('',*,*,#5804,.F.);
-+#10492=ORIENTED_EDGE('',*,*,#10491,.T.);
-+#10494=ORIENTED_EDGE('',*,*,#10493,.T.);
-+#10495=ORIENTED_EDGE('',*,*,#10476,.F.);
-+#10496=EDGE_LOOP('',(#10490,#10492,#10494,#10495));
-+#10497=FACE_OUTER_BOUND('',#10496,.F.);
-+#10498=ADVANCED_FACE('',(#10497),#10489,.F.);
-+#10499=CARTESIAN_POINT('',(1.05E1,0.E0,9.5E0));
-+#10500=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10501=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10502=AXIS2_PLACEMENT_3D('',#10499,#10500,#10501);
-+#10503=PLANE('',#10502);
-+#10504=ORIENTED_EDGE('',*,*,#5802,.F.);
-+#10506=ORIENTED_EDGE('',*,*,#10505,.T.);
-+#10508=ORIENTED_EDGE('',*,*,#10507,.T.);
-+#10509=ORIENTED_EDGE('',*,*,#10491,.F.);
-+#10510=EDGE_LOOP('',(#10504,#10506,#10508,#10509));
-+#10511=FACE_OUTER_BOUND('',#10510,.F.);
-+#10512=ADVANCED_FACE('',(#10511),#10503,.F.);
-+#10513=CARTESIAN_POINT('',(1.05E1,0.E0,9.E0));
-+#10514=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10515=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10516=AXIS2_PLACEMENT_3D('',#10513,#10514,#10515);
-+#10517=CYLINDRICAL_SURFACE('',#10516,5.E-1);
-+#10518=ORIENTED_EDGE('',*,*,#5800,.F.);
-+#10519=ORIENTED_EDGE('',*,*,#10480,.T.);
-+#10521=ORIENTED_EDGE('',*,*,#10520,.T.);
-+#10522=ORIENTED_EDGE('',*,*,#10505,.F.);
-+#10523=EDGE_LOOP('',(#10518,#10519,#10521,#10522));
-+#10524=FACE_OUTER_BOUND('',#10523,.F.);
-+#10525=ADVANCED_FACE('',(#10524),#10517,.F.);
-+#10526=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10527=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10528=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10529=AXIS2_PLACEMENT_3D('',#10526,#10527,#10528);
-+#10530=PLANE('',#10529);
-+#10531=ORIENTED_EDGE('',*,*,#10478,.F.);
-+#10532=ORIENTED_EDGE('',*,*,#10493,.F.);
-+#10533=ORIENTED_EDGE('',*,*,#10507,.F.);
-+#10534=ORIENTED_EDGE('',*,*,#10520,.F.);
-+#10535=EDGE_LOOP('',(#10531,#10532,#10533,#10534));
-+#10536=FACE_OUTER_BOUND('',#10535,.F.);
-+#10537=ADVANCED_FACE('',(#10536),#10530,.T.);
-+#10538=CARTESIAN_POINT('',(7.5E0,0.E0,1.75625E1));
-+#10539=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10540=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10541=AXIS2_PLACEMENT_3D('',#10538,#10539,#10540);
-+#10542=PLANE('',#10541);
-+#10543=ORIENTED_EDGE('',*,*,#5808,.F.);
-+#10545=ORIENTED_EDGE('',*,*,#10544,.T.);
-+#10547=ORIENTED_EDGE('',*,*,#10546,.T.);
-+#10549=ORIENTED_EDGE('',*,*,#10548,.F.);
-+#10550=EDGE_LOOP('',(#10543,#10545,#10547,#10549));
-+#10551=FACE_OUTER_BOUND('',#10550,.F.);
-+#10552=ADVANCED_FACE('',(#10551),#10542,.F.);
-+#10553=CARTESIAN_POINT('',(7.5E0,0.E0,1.8E1));
-+#10554=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10555=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10556=AXIS2_PLACEMENT_3D('',#10553,#10554,#10555);
-+#10557=CYLINDRICAL_SURFACE('',#10556,4.375E-1);
-+#10558=ORIENTED_EDGE('',*,*,#5814,.F.);
-+#10560=ORIENTED_EDGE('',*,*,#10559,.T.);
-+#10562=ORIENTED_EDGE('',*,*,#10561,.T.);
-+#10563=ORIENTED_EDGE('',*,*,#10544,.F.);
-+#10564=EDGE_LOOP('',(#10558,#10560,#10562,#10563));
-+#10565=FACE_OUTER_BOUND('',#10564,.F.);
-+#10566=ADVANCED_FACE('',(#10565),#10557,.F.);
-+#10567=CARTESIAN_POINT('',(1.05E1,0.E0,1.84375E1));
-+#10568=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10569=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10570=AXIS2_PLACEMENT_3D('',#10567,#10568,#10569);
-+#10571=PLANE('',#10570);
-+#10572=ORIENTED_EDGE('',*,*,#5812,.F.);
-+#10574=ORIENTED_EDGE('',*,*,#10573,.T.);
-+#10576=ORIENTED_EDGE('',*,*,#10575,.T.);
-+#10577=ORIENTED_EDGE('',*,*,#10559,.F.);
-+#10578=EDGE_LOOP('',(#10572,#10574,#10576,#10577));
-+#10579=FACE_OUTER_BOUND('',#10578,.F.);
-+#10580=ADVANCED_FACE('',(#10579),#10571,.F.);
-+#10581=CARTESIAN_POINT('',(1.05E1,0.E0,1.8E1));
-+#10582=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10583=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10584=AXIS2_PLACEMENT_3D('',#10581,#10582,#10583);
-+#10585=CYLINDRICAL_SURFACE('',#10584,4.375E-1);
-+#10586=ORIENTED_EDGE('',*,*,#5810,.F.);
-+#10587=ORIENTED_EDGE('',*,*,#10548,.T.);
-+#10589=ORIENTED_EDGE('',*,*,#10588,.T.);
-+#10590=ORIENTED_EDGE('',*,*,#10573,.F.);
-+#10591=EDGE_LOOP('',(#10586,#10587,#10589,#10590));
-+#10592=FACE_OUTER_BOUND('',#10591,.F.);
-+#10593=ADVANCED_FACE('',(#10592),#10585,.F.);
-+#10594=CARTESIAN_POINT('',(0.E0,6.875E-1,0.E0));
-+#10595=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#10596=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10597=AXIS2_PLACEMENT_3D('',#10594,#10595,#10596);
-+#10598=PLANE('',#10597);
-+#10599=ORIENTED_EDGE('',*,*,#10546,.F.);
-+#10600=ORIENTED_EDGE('',*,*,#10561,.F.);
-+#10601=ORIENTED_EDGE('',*,*,#10575,.F.);
-+#10602=ORIENTED_EDGE('',*,*,#10588,.F.);
-+#10603=EDGE_LOOP('',(#10599,#10600,#10601,#10602));
-+#10604=FACE_OUTER_BOUND('',#10603,.F.);
-+#10605=ADVANCED_FACE('',(#10604),#10598,.T.);
-+#10606=CARTESIAN_POINT('',(7.5E0,0.E0,3.13125E1));
-+#10607=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10608=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10609=AXIS2_PLACEMENT_3D('',#10606,#10607,#10608);
-+#10610=PLANE('',#10609);
-+#10611=ORIENTED_EDGE('',*,*,#5818,.T.);
-+#10613=ORIENTED_EDGE('',*,*,#10612,.T.);
-+#10615=ORIENTED_EDGE('',*,*,#10614,.F.);
-+#10617=ORIENTED_EDGE('',*,*,#10616,.F.);
-+#10618=EDGE_LOOP('',(#10611,#10613,#10615,#10617));
-+#10619=FACE_OUTER_BOUND('',#10618,.F.);
-+#10620=ADVANCED_FACE('',(#10619),#10610,.T.);
-+#10621=CARTESIAN_POINT('',(1.05E1,0.E0,3.075E1));
-+#10622=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10623=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10624=AXIS2_PLACEMENT_3D('',#10621,#10622,#10623);
-+#10625=CYLINDRICAL_SURFACE('',#10624,5.625E-1);
-+#10626=ORIENTED_EDGE('',*,*,#5824,.T.);
-+#10628=ORIENTED_EDGE('',*,*,#10627,.T.);
-+#10630=ORIENTED_EDGE('',*,*,#10629,.F.);
-+#10631=ORIENTED_EDGE('',*,*,#10612,.F.);
-+#10632=EDGE_LOOP('',(#10626,#10628,#10630,#10631));
-+#10633=FACE_OUTER_BOUND('',#10632,.F.);
-+#10634=ADVANCED_FACE('',(#10633),#10625,.F.);
-+#10635=CARTESIAN_POINT('',(1.05E1,0.E0,3.01875E1));
-+#10636=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10637=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10638=AXIS2_PLACEMENT_3D('',#10635,#10636,#10637);
-+#10639=PLANE('',#10638);
-+#10640=ORIENTED_EDGE('',*,*,#5822,.T.);
-+#10642=ORIENTED_EDGE('',*,*,#10641,.T.);
-+#10644=ORIENTED_EDGE('',*,*,#10643,.F.);
-+#10645=ORIENTED_EDGE('',*,*,#10627,.F.);
-+#10646=EDGE_LOOP('',(#10640,#10642,#10644,#10645));
-+#10647=FACE_OUTER_BOUND('',#10646,.F.);
-+#10648=ADVANCED_FACE('',(#10647),#10639,.T.);
-+#10649=CARTESIAN_POINT('',(7.5E0,0.E0,3.075E1));
-+#10650=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10651=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10652=AXIS2_PLACEMENT_3D('',#10649,#10650,#10651);
-+#10653=CYLINDRICAL_SURFACE('',#10652,5.625E-1);
-+#10654=ORIENTED_EDGE('',*,*,#5820,.T.);
-+#10655=ORIENTED_EDGE('',*,*,#10616,.T.);
-+#10657=ORIENTED_EDGE('',*,*,#10656,.F.);
-+#10658=ORIENTED_EDGE('',*,*,#10641,.F.);
-+#10659=EDGE_LOOP('',(#10654,#10655,#10657,#10658));
-+#10660=FACE_OUTER_BOUND('',#10659,.F.);
-+#10661=ADVANCED_FACE('',(#10660),#10653,.F.);
-+#10662=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
-+#10663=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10664=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10665=AXIS2_PLACEMENT_3D('',#10662,#10663,#10664);
-+#10666=PLANE('',#10665);
-+#10667=ORIENTED_EDGE('',*,*,#10614,.T.);
-+#10668=ORIENTED_EDGE('',*,*,#10629,.T.);
-+#10669=ORIENTED_EDGE('',*,*,#10643,.T.);
-+#10670=ORIENTED_EDGE('',*,*,#10656,.T.);
-+#10671=EDGE_LOOP('',(#10667,#10668,#10669,#10670));
-+#10672=FACE_OUTER_BOUND('',#10671,.F.);
-+#10673=ADVANCED_FACE('',(#10672),#10666,.F.);
-+#10674=CARTESIAN_POINT('',(0.E0,6.875E-1,3.2E1));
-+#10675=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10676=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10677=AXIS2_PLACEMENT_3D('',#10674,#10675,#10676);
-+#10678=PLANE('',#10677);
-+#10680=ORIENTED_EDGE('',*,*,#10679,.F.);
-+#10682=ORIENTED_EDGE('',*,*,#10681,.T.);
-+#10684=ORIENTED_EDGE('',*,*,#10683,.T.);
-+#10686=ORIENTED_EDGE('',*,*,#10685,.T.);
-+#10688=ORIENTED_EDGE('',*,*,#10687,.T.);
-+#10689=EDGE_LOOP('',(#10680,#10682,#10684,#10686,#10688));
-+#10690=FACE_OUTER_BOUND('',#10689,.F.);
-+#10691=ADVANCED_FACE('',(#10690),#10678,.F.);
-+#10692=CARTESIAN_POINT('',(1.455736763592E0,-6.642389448824E-2,
-+2.742280476768E1));
-+#10693=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10694=DIRECTION('',(-8.942796313519E-1,0.E0,-4.475085931567E-1));
-+#10695=AXIS2_PLACEMENT_3D('',#10692,#10693,#10694);
-+#10696=CYLINDRICAL_SURFACE('',#10695,7.5E-1);
-+#10698=ORIENTED_EDGE('',*,*,#10697,.F.);
-+#10699=ORIENTED_EDGE('',*,*,#5932,.T.);
-+#10701=ORIENTED_EDGE('',*,*,#10700,.T.);
-+#10702=ORIENTED_EDGE('',*,*,#10679,.T.);
-+#10703=EDGE_LOOP('',(#10698,#10699,#10701,#10702));
-+#10704=FACE_OUTER_BOUND('',#10703,.F.);
-+#10705=ADVANCED_FACE('',(#10704),#10696,.F.);
-+#10706=CARTESIAN_POINT('',(1.61E0,0.E0,2.75E1));
-+#10707=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10708=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10709=AXIS2_PLACEMENT_3D('',#10706,#10707,#10708);
-+#10710=CYLINDRICAL_SURFACE('',#10709,9.225E-1);
-+#10711=ORIENTED_EDGE('',*,*,#10697,.T.);
-+#10712=ORIENTED_EDGE('',*,*,#10687,.F.);
-+#10714=ORIENTED_EDGE('',*,*,#10713,.F.);
-+#10715=ORIENTED_EDGE('',*,*,#5934,.T.);
-+#10716=EDGE_LOOP('',(#10711,#10712,#10714,#10715));
-+#10717=FACE_OUTER_BOUND('',#10716,.F.);
-+#10718=ADVANCED_FACE('',(#10717),#10710,.F.);
-+#10719=CARTESIAN_POINT('',(7.5E0,0.E0,2.45E1));
-+#10720=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10721=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10722=AXIS2_PLACEMENT_3D('',#10719,#10720,#10721);
-+#10723=CYLINDRICAL_SURFACE('',#10722,5.6875E0);
-+#10724=ORIENTED_EDGE('',*,*,#5936,.F.);
-+#10725=ORIENTED_EDGE('',*,*,#10713,.T.);
-+#10726=ORIENTED_EDGE('',*,*,#10685,.F.);
-+#10728=ORIENTED_EDGE('',*,*,#10727,.F.);
-+#10729=EDGE_LOOP('',(#10724,#10725,#10726,#10728));
-+#10730=FACE_OUTER_BOUND('',#10729,.F.);
-+#10731=ADVANCED_FACE('',(#10730),#10723,.T.);
-+#10732=CARTESIAN_POINT('',(4.553039342392E0,0.E0,3.035464591145E1));
-+#10733=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10734=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10735=AXIS2_PLACEMENT_3D('',#10732,#10733,#10734);
-+#10736=CYLINDRICAL_SURFACE('',#10735,8.669989027347E-1);
-+#10737=ORIENTED_EDGE('',*,*,#5938,.T.);
-+#10738=ORIENTED_EDGE('',*,*,#10727,.T.);
-+#10739=ORIENTED_EDGE('',*,*,#10683,.F.);
-+#10741=ORIENTED_EDGE('',*,*,#10740,.F.);
-+#10742=EDGE_LOOP('',(#10737,#10738,#10739,#10741));
-+#10743=FACE_OUTER_BOUND('',#10742,.F.);
-+#10744=ADVANCED_FACE('',(#10743),#10736,.F.);
-+#10745=CARTESIAN_POINT('',(6.875E-1,0.E0,2.771522817587E1));
-+#10746=DIRECTION('',(7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10747=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#10748=AXIS2_PLACEMENT_3D('',#10745,#10746,#10747);
-+#10749=PLANE('',#10748);
-+#10750=ORIENTED_EDGE('',*,*,#10700,.F.);
-+#10751=ORIENTED_EDGE('',*,*,#5930,.T.);
-+#10752=ORIENTED_EDGE('',*,*,#10740,.T.);
-+#10753=ORIENTED_EDGE('',*,*,#10681,.F.);
-+#10754=EDGE_LOOP('',(#10750,#10751,#10752,#10753));
-+#10755=FACE_OUTER_BOUND('',#10754,.F.);
-+#10756=ADVANCED_FACE('',(#10755),#10749,.T.);
-+#10757=CARTESIAN_POINT('',(1.65E1,0.E0,6.875E-1));
-+#10758=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10759=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10760=AXIS2_PLACEMENT_3D('',#10757,#10758,#10759);
-+#10761=PLANE('',#10760);
-+#10762=ORIENTED_EDGE('',*,*,#5828,.T.);
-+#10764=ORIENTED_EDGE('',*,*,#10763,.T.);
-+#10766=ORIENTED_EDGE('',*,*,#10765,.F.);
-+#10768=ORIENTED_EDGE('',*,*,#10767,.F.);
-+#10769=EDGE_LOOP('',(#10762,#10764,#10766,#10768));
-+#10770=FACE_OUTER_BOUND('',#10769,.F.);
-+#10771=ADVANCED_FACE('',(#10770),#10761,.T.);
-+#10772=CARTESIAN_POINT('',(1.35E1,0.E0,1.25E0));
-+#10773=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10774=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10775=AXIS2_PLACEMENT_3D('',#10772,#10773,#10774);
-+#10776=CYLINDRICAL_SURFACE('',#10775,5.625E-1);
-+#10777=ORIENTED_EDGE('',*,*,#5834,.T.);
-+#10779=ORIENTED_EDGE('',*,*,#10778,.T.);
-+#10781=ORIENTED_EDGE('',*,*,#10780,.F.);
-+#10782=ORIENTED_EDGE('',*,*,#10763,.F.);
-+#10783=EDGE_LOOP('',(#10777,#10779,#10781,#10782));
-+#10784=FACE_OUTER_BOUND('',#10783,.F.);
-+#10785=ADVANCED_FACE('',(#10784),#10776,.F.);
-+#10786=CARTESIAN_POINT('',(1.35E1,0.E0,1.8125E0));
-+#10787=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10788=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10789=AXIS2_PLACEMENT_3D('',#10786,#10787,#10788);
-+#10790=PLANE('',#10789);
-+#10791=ORIENTED_EDGE('',*,*,#5832,.T.);
-+#10793=ORIENTED_EDGE('',*,*,#10792,.T.);
-+#10795=ORIENTED_EDGE('',*,*,#10794,.F.);
-+#10796=ORIENTED_EDGE('',*,*,#10778,.F.);
-+#10797=EDGE_LOOP('',(#10791,#10793,#10795,#10796));
-+#10798=FACE_OUTER_BOUND('',#10797,.F.);
-+#10799=ADVANCED_FACE('',(#10798),#10790,.T.);
-+#10800=CARTESIAN_POINT('',(1.65E1,0.E0,1.25E0));
-+#10801=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10802=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10803=AXIS2_PLACEMENT_3D('',#10800,#10801,#10802);
-+#10804=CYLINDRICAL_SURFACE('',#10803,5.625E-1);
-+#10805=ORIENTED_EDGE('',*,*,#5830,.T.);
-+#10806=ORIENTED_EDGE('',*,*,#10767,.T.);
-+#10808=ORIENTED_EDGE('',*,*,#10807,.F.);
-+#10809=ORIENTED_EDGE('',*,*,#10792,.F.);
-+#10810=EDGE_LOOP('',(#10805,#10806,#10808,#10809));
-+#10811=FACE_OUTER_BOUND('',#10810,.F.);
-+#10812=ADVANCED_FACE('',(#10811),#10804,.F.);
-+#10813=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10814=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10815=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10816=AXIS2_PLACEMENT_3D('',#10813,#10814,#10815);
-+#10817=PLANE('',#10816);
-+#10818=ORIENTED_EDGE('',*,*,#10765,.T.);
-+#10819=ORIENTED_EDGE('',*,*,#10780,.T.);
-+#10820=ORIENTED_EDGE('',*,*,#10794,.T.);
-+#10821=ORIENTED_EDGE('',*,*,#10807,.T.);
-+#10822=EDGE_LOOP('',(#10818,#10819,#10820,#10821));
-+#10823=FACE_OUTER_BOUND('',#10822,.F.);
-+#10824=ADVANCED_FACE('',(#10823),#10817,.F.);
-+#10825=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10826=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10827=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10828=AXIS2_PLACEMENT_3D('',#10825,#10826,#10827);
-+#10829=PLANE('',#10828);
-+#10831=ORIENTED_EDGE('',*,*,#10830,.F.);
-+#10833=ORIENTED_EDGE('',*,*,#10832,.T.);
-+#10835=ORIENTED_EDGE('',*,*,#10834,.T.);
-+#10837=ORIENTED_EDGE('',*,*,#10836,.T.);
-+#10839=ORIENTED_EDGE('',*,*,#10838,.T.);
-+#10840=EDGE_LOOP('',(#10831,#10833,#10835,#10837,#10839));
-+#10841=FACE_OUTER_BOUND('',#10840,.F.);
-+#10842=ADVANCED_FACE('',(#10841),#10829,.F.);
-+#10843=CARTESIAN_POINT('',(2.254426323641E1,-6.642389448824E-2,
-+4.577195232320E0));
-+#10844=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10845=DIRECTION('',(8.942796313519E-1,0.E0,4.475085931567E-1));
-+#10846=AXIS2_PLACEMENT_3D('',#10843,#10844,#10845);
-+#10847=CYLINDRICAL_SURFACE('',#10846,7.5E-1);
-+#10849=ORIENTED_EDGE('',*,*,#10848,.F.);
-+#10850=ORIENTED_EDGE('',*,*,#5920,.T.);
-+#10852=ORIENTED_EDGE('',*,*,#10851,.T.);
-+#10853=ORIENTED_EDGE('',*,*,#10830,.T.);
-+#10854=EDGE_LOOP('',(#10849,#10850,#10852,#10853));
-+#10855=FACE_OUTER_BOUND('',#10854,.F.);
-+#10856=ADVANCED_FACE('',(#10855),#10847,.F.);
-+#10857=CARTESIAN_POINT('',(2.239E1,0.E0,4.5E0));
-+#10858=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10859=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10860=AXIS2_PLACEMENT_3D('',#10857,#10858,#10859);
-+#10861=CYLINDRICAL_SURFACE('',#10860,9.225E-1);
-+#10862=ORIENTED_EDGE('',*,*,#10848,.T.);
-+#10863=ORIENTED_EDGE('',*,*,#10838,.F.);
-+#10865=ORIENTED_EDGE('',*,*,#10864,.F.);
-+#10866=ORIENTED_EDGE('',*,*,#5922,.T.);
-+#10867=EDGE_LOOP('',(#10862,#10863,#10865,#10866));
-+#10868=FACE_OUTER_BOUND('',#10867,.F.);
-+#10869=ADVANCED_FACE('',(#10868),#10861,.F.);
-+#10870=CARTESIAN_POINT('',(1.65E1,0.E0,7.5E0));
-+#10871=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10872=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10873=AXIS2_PLACEMENT_3D('',#10870,#10871,#10872);
-+#10874=CYLINDRICAL_SURFACE('',#10873,5.6875E0);
-+#10875=ORIENTED_EDGE('',*,*,#5924,.F.);
-+#10876=ORIENTED_EDGE('',*,*,#10864,.T.);
-+#10877=ORIENTED_EDGE('',*,*,#10836,.F.);
-+#10879=ORIENTED_EDGE('',*,*,#10878,.F.);
-+#10880=EDGE_LOOP('',(#10875,#10876,#10877,#10879));
-+#10881=FACE_OUTER_BOUND('',#10880,.F.);
-+#10882=ADVANCED_FACE('',(#10881),#10874,.T.);
-+#10883=CARTESIAN_POINT('',(1.944696065761E1,0.E0,1.645354088550E0));
-+#10884=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10885=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10886=AXIS2_PLACEMENT_3D('',#10883,#10884,#10885);
-+#10887=CYLINDRICAL_SURFACE('',#10886,8.669989027347E-1);
-+#10888=ORIENTED_EDGE('',*,*,#5926,.T.);
-+#10889=ORIENTED_EDGE('',*,*,#10878,.T.);
-+#10890=ORIENTED_EDGE('',*,*,#10834,.F.);
-+#10892=ORIENTED_EDGE('',*,*,#10891,.F.);
-+#10893=EDGE_LOOP('',(#10888,#10889,#10890,#10892));
-+#10894=FACE_OUTER_BOUND('',#10893,.F.);
-+#10895=ADVANCED_FACE('',(#10894),#10887,.F.);
-+#10896=CARTESIAN_POINT('',(2.33125E1,0.E0,4.284771824132E0));
-+#10897=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#10898=DIRECTION('',(-7.071067811865E-1,0.E0,-7.071067811865E-1));
-+#10899=AXIS2_PLACEMENT_3D('',#10896,#10897,#10898);
-+#10900=PLANE('',#10899);
-+#10901=ORIENTED_EDGE('',*,*,#10851,.F.);
-+#10902=ORIENTED_EDGE('',*,*,#5918,.T.);
-+#10903=ORIENTED_EDGE('',*,*,#10891,.T.);
-+#10904=ORIENTED_EDGE('',*,*,#10832,.F.);
-+#10905=EDGE_LOOP('',(#10901,#10902,#10903,#10904));
-+#10906=FACE_OUTER_BOUND('',#10905,.F.);
-+#10907=ADVANCED_FACE('',(#10906),#10900,.T.);
-+#10908=CARTESIAN_POINT('',(2.33125E1,0.E0,1.65E1));
-+#10909=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10910=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10911=AXIS2_PLACEMENT_3D('',#10908,#10909,#10910);
-+#10912=PLANE('',#10911);
-+#10913=ORIENTED_EDGE('',*,*,#5838,.T.);
-+#10915=ORIENTED_EDGE('',*,*,#10914,.T.);
-+#10917=ORIENTED_EDGE('',*,*,#10916,.F.);
-+#10919=ORIENTED_EDGE('',*,*,#10918,.F.);
-+#10920=EDGE_LOOP('',(#10913,#10915,#10917,#10919));
-+#10921=FACE_OUTER_BOUND('',#10920,.F.);
-+#10922=ADVANCED_FACE('',(#10921),#10912,.T.);
-+#10923=CARTESIAN_POINT('',(2.275E1,0.E0,1.35E1));
-+#10924=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10925=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10926=AXIS2_PLACEMENT_3D('',#10923,#10924,#10925);
-+#10927=CYLINDRICAL_SURFACE('',#10926,5.625E-1);
-+#10928=ORIENTED_EDGE('',*,*,#5844,.T.);
-+#10930=ORIENTED_EDGE('',*,*,#10929,.T.);
-+#10932=ORIENTED_EDGE('',*,*,#10931,.F.);
-+#10933=ORIENTED_EDGE('',*,*,#10914,.F.);
-+#10934=EDGE_LOOP('',(#10928,#10930,#10932,#10933));
-+#10935=FACE_OUTER_BOUND('',#10934,.F.);
-+#10936=ADVANCED_FACE('',(#10935),#10927,.F.);
-+#10937=CARTESIAN_POINT('',(2.21875E1,0.E0,1.35E1));
-+#10938=DIRECTION('',(1.E0,0.E0,0.E0));
-+#10939=DIRECTION('',(0.E0,0.E0,1.E0));
-+#10940=AXIS2_PLACEMENT_3D('',#10937,#10938,#10939);
-+#10941=PLANE('',#10940);
-+#10942=ORIENTED_EDGE('',*,*,#5842,.T.);
-+#10944=ORIENTED_EDGE('',*,*,#10943,.T.);
-+#10946=ORIENTED_EDGE('',*,*,#10945,.F.);
-+#10947=ORIENTED_EDGE('',*,*,#10929,.F.);
-+#10948=EDGE_LOOP('',(#10942,#10944,#10946,#10947));
-+#10949=FACE_OUTER_BOUND('',#10948,.F.);
-+#10950=ADVANCED_FACE('',(#10949),#10941,.T.);
-+#10951=CARTESIAN_POINT('',(2.275E1,0.E0,1.65E1));
-+#10952=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10953=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10954=AXIS2_PLACEMENT_3D('',#10951,#10952,#10953);
-+#10955=CYLINDRICAL_SURFACE('',#10954,5.625E-1);
-+#10956=ORIENTED_EDGE('',*,*,#5840,.T.);
-+#10957=ORIENTED_EDGE('',*,*,#10918,.T.);
-+#10959=ORIENTED_EDGE('',*,*,#10958,.F.);
-+#10960=ORIENTED_EDGE('',*,*,#10943,.F.);
-+#10961=EDGE_LOOP('',(#10956,#10957,#10959,#10960));
-+#10962=FACE_OUTER_BOUND('',#10961,.F.);
-+#10963=ADVANCED_FACE('',(#10962),#10955,.F.);
-+#10964=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#10965=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10966=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10967=AXIS2_PLACEMENT_3D('',#10964,#10965,#10966);
-+#10968=PLANE('',#10967);
-+#10969=ORIENTED_EDGE('',*,*,#10916,.T.);
-+#10970=ORIENTED_EDGE('',*,*,#10931,.T.);
-+#10971=ORIENTED_EDGE('',*,*,#10945,.T.);
-+#10972=ORIENTED_EDGE('',*,*,#10958,.T.);
-+#10973=EDGE_LOOP('',(#10969,#10970,#10971,#10972));
-+#10974=FACE_OUTER_BOUND('',#10973,.F.);
-+#10975=ADVANCED_FACE('',(#10974),#10968,.F.);
-+#10976=CARTESIAN_POINT('',(2.33125E1,0.E0,2.25E1));
-+#10977=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10978=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#10979=AXIS2_PLACEMENT_3D('',#10976,#10977,#10978);
-+#10980=PLANE('',#10979);
-+#10981=ORIENTED_EDGE('',*,*,#5848,.T.);
-+#10983=ORIENTED_EDGE('',*,*,#10982,.T.);
-+#10985=ORIENTED_EDGE('',*,*,#10984,.F.);
-+#10987=ORIENTED_EDGE('',*,*,#10986,.F.);
-+#10988=EDGE_LOOP('',(#10981,#10983,#10985,#10987));
-+#10989=FACE_OUTER_BOUND('',#10988,.F.);
-+#10990=ADVANCED_FACE('',(#10989),#10980,.T.);
-+#10991=CARTESIAN_POINT('',(2.275E1,0.E0,1.95E1));
-+#10992=DIRECTION('',(0.E0,1.E0,0.E0));
-+#10993=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#10994=AXIS2_PLACEMENT_3D('',#10991,#10992,#10993);
-+#10995=CYLINDRICAL_SURFACE('',#10994,5.625E-1);
-+#10996=ORIENTED_EDGE('',*,*,#5854,.T.);
-+#10998=ORIENTED_EDGE('',*,*,#10997,.T.);
-+#11000=ORIENTED_EDGE('',*,*,#10999,.F.);
-+#11001=ORIENTED_EDGE('',*,*,#10982,.F.);
-+#11002=EDGE_LOOP('',(#10996,#10998,#11000,#11001));
-+#11003=FACE_OUTER_BOUND('',#11002,.F.);
-+#11004=ADVANCED_FACE('',(#11003),#10995,.F.);
-+#11005=CARTESIAN_POINT('',(2.21875E1,0.E0,1.95E1));
-+#11006=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11007=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11008=AXIS2_PLACEMENT_3D('',#11005,#11006,#11007);
-+#11009=PLANE('',#11008);
-+#11010=ORIENTED_EDGE('',*,*,#5852,.T.);
-+#11012=ORIENTED_EDGE('',*,*,#11011,.T.);
-+#11014=ORIENTED_EDGE('',*,*,#11013,.F.);
-+#11015=ORIENTED_EDGE('',*,*,#10997,.F.);
-+#11016=EDGE_LOOP('',(#11010,#11012,#11014,#11015));
-+#11017=FACE_OUTER_BOUND('',#11016,.F.);
-+#11018=ADVANCED_FACE('',(#11017),#11009,.T.);
-+#11019=CARTESIAN_POINT('',(2.275E1,0.E0,2.25E1));
-+#11020=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11021=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11022=AXIS2_PLACEMENT_3D('',#11019,#11020,#11021);
-+#11023=CYLINDRICAL_SURFACE('',#11022,5.625E-1);
-+#11024=ORIENTED_EDGE('',*,*,#5850,.T.);
-+#11025=ORIENTED_EDGE('',*,*,#10986,.T.);
-+#11027=ORIENTED_EDGE('',*,*,#11026,.F.);
-+#11028=ORIENTED_EDGE('',*,*,#11011,.F.);
-+#11029=EDGE_LOOP('',(#11024,#11025,#11027,#11028));
-+#11030=FACE_OUTER_BOUND('',#11029,.F.);
-+#11031=ADVANCED_FACE('',(#11030),#11023,.F.);
-+#11032=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11033=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11034=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11035=AXIS2_PLACEMENT_3D('',#11032,#11033,#11034);
-+#11036=PLANE('',#11035);
-+#11037=ORIENTED_EDGE('',*,*,#10984,.T.);
-+#11038=ORIENTED_EDGE('',*,*,#10999,.T.);
-+#11039=ORIENTED_EDGE('',*,*,#11013,.T.);
-+#11040=ORIENTED_EDGE('',*,*,#11026,.T.);
-+#11041=EDGE_LOOP('',(#11037,#11038,#11039,#11040));
-+#11042=FACE_OUTER_BOUND('',#11041,.F.);
-+#11043=ADVANCED_FACE('',(#11042),#11036,.F.);
-+#11044=CARTESIAN_POINT('',(1.65E1,0.E0,8.5E0));
-+#11045=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11046=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11047=AXIS2_PLACEMENT_3D('',#11044,#11045,#11046);
-+#11048=PLANE('',#11047);
-+#11049=ORIENTED_EDGE('',*,*,#5858,.T.);
-+#11051=ORIENTED_EDGE('',*,*,#11050,.T.);
-+#11053=ORIENTED_EDGE('',*,*,#11052,.F.);
-+#11055=ORIENTED_EDGE('',*,*,#11054,.F.);
-+#11056=EDGE_LOOP('',(#11049,#11051,#11053,#11055));
-+#11057=FACE_OUTER_BOUND('',#11056,.F.);
-+#11058=ADVANCED_FACE('',(#11057),#11048,.T.);
-+#11059=CARTESIAN_POINT('',(1.35E1,0.E0,9.E0));
-+#11060=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11061=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11062=AXIS2_PLACEMENT_3D('',#11059,#11060,#11061);
-+#11063=CYLINDRICAL_SURFACE('',#11062,5.E-1);
-+#11064=ORIENTED_EDGE('',*,*,#5864,.T.);
-+#11066=ORIENTED_EDGE('',*,*,#11065,.T.);
-+#11068=ORIENTED_EDGE('',*,*,#11067,.F.);
-+#11069=ORIENTED_EDGE('',*,*,#11050,.F.);
-+#11070=EDGE_LOOP('',(#11064,#11066,#11068,#11069));
-+#11071=FACE_OUTER_BOUND('',#11070,.F.);
-+#11072=ADVANCED_FACE('',(#11071),#11063,.F.);
-+#11073=CARTESIAN_POINT('',(1.35E1,0.E0,9.5E0));
-+#11074=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11075=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11076=AXIS2_PLACEMENT_3D('',#11073,#11074,#11075);
-+#11077=PLANE('',#11076);
-+#11078=ORIENTED_EDGE('',*,*,#5862,.T.);
-+#11080=ORIENTED_EDGE('',*,*,#11079,.T.);
-+#11082=ORIENTED_EDGE('',*,*,#11081,.F.);
-+#11083=ORIENTED_EDGE('',*,*,#11065,.F.);
-+#11084=EDGE_LOOP('',(#11078,#11080,#11082,#11083));
-+#11085=FACE_OUTER_BOUND('',#11084,.F.);
-+#11086=ADVANCED_FACE('',(#11085),#11077,.T.);
-+#11087=CARTESIAN_POINT('',(1.65E1,0.E0,9.E0));
-+#11088=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11089=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11090=AXIS2_PLACEMENT_3D('',#11087,#11088,#11089);
-+#11091=CYLINDRICAL_SURFACE('',#11090,5.E-1);
-+#11092=ORIENTED_EDGE('',*,*,#5860,.T.);
-+#11093=ORIENTED_EDGE('',*,*,#11054,.T.);
-+#11095=ORIENTED_EDGE('',*,*,#11094,.F.);
-+#11096=ORIENTED_EDGE('',*,*,#11079,.F.);
-+#11097=EDGE_LOOP('',(#11092,#11093,#11095,#11096));
-+#11098=FACE_OUTER_BOUND('',#11097,.F.);
-+#11099=ADVANCED_FACE('',(#11098),#11091,.F.);
-+#11100=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11101=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11102=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11103=AXIS2_PLACEMENT_3D('',#11100,#11101,#11102);
-+#11104=PLANE('',#11103);
-+#11105=ORIENTED_EDGE('',*,*,#11052,.T.);
-+#11106=ORIENTED_EDGE('',*,*,#11067,.T.);
-+#11107=ORIENTED_EDGE('',*,*,#11081,.T.);
-+#11108=ORIENTED_EDGE('',*,*,#11094,.T.);
-+#11109=EDGE_LOOP('',(#11105,#11106,#11107,#11108));
-+#11110=FACE_OUTER_BOUND('',#11109,.F.);
-+#11111=ADVANCED_FACE('',(#11110),#11104,.F.);
-+#11112=CARTESIAN_POINT('',(1.65E1,0.E0,1.75625E1));
-+#11113=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11114=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11115=AXIS2_PLACEMENT_3D('',#11112,#11113,#11114);
-+#11116=PLANE('',#11115);
-+#11117=ORIENTED_EDGE('',*,*,#5868,.T.);
-+#11119=ORIENTED_EDGE('',*,*,#11118,.T.);
-+#11121=ORIENTED_EDGE('',*,*,#11120,.F.);
-+#11123=ORIENTED_EDGE('',*,*,#11122,.F.);
-+#11124=EDGE_LOOP('',(#11117,#11119,#11121,#11123));
-+#11125=FACE_OUTER_BOUND('',#11124,.F.);
-+#11126=ADVANCED_FACE('',(#11125),#11116,.T.);
-+#11127=CARTESIAN_POINT('',(1.35E1,0.E0,1.8E1));
-+#11128=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11129=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11130=AXIS2_PLACEMENT_3D('',#11127,#11128,#11129);
-+#11131=CYLINDRICAL_SURFACE('',#11130,4.375E-1);
-+#11132=ORIENTED_EDGE('',*,*,#5874,.T.);
-+#11134=ORIENTED_EDGE('',*,*,#11133,.T.);
-+#11136=ORIENTED_EDGE('',*,*,#11135,.F.);
-+#11137=ORIENTED_EDGE('',*,*,#11118,.F.);
-+#11138=EDGE_LOOP('',(#11132,#11134,#11136,#11137));
-+#11139=FACE_OUTER_BOUND('',#11138,.F.);
-+#11140=ADVANCED_FACE('',(#11139),#11131,.F.);
-+#11141=CARTESIAN_POINT('',(1.35E1,0.E0,1.84375E1));
-+#11142=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11143=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11144=AXIS2_PLACEMENT_3D('',#11141,#11142,#11143);
-+#11145=PLANE('',#11144);
-+#11146=ORIENTED_EDGE('',*,*,#5872,.T.);
-+#11148=ORIENTED_EDGE('',*,*,#11147,.T.);
-+#11150=ORIENTED_EDGE('',*,*,#11149,.F.);
-+#11151=ORIENTED_EDGE('',*,*,#11133,.F.);
-+#11152=EDGE_LOOP('',(#11146,#11148,#11150,#11151));
-+#11153=FACE_OUTER_BOUND('',#11152,.F.);
-+#11154=ADVANCED_FACE('',(#11153),#11145,.T.);
-+#11155=CARTESIAN_POINT('',(1.65E1,0.E0,1.8E1));
-+#11156=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11157=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11158=AXIS2_PLACEMENT_3D('',#11155,#11156,#11157);
-+#11159=CYLINDRICAL_SURFACE('',#11158,4.375E-1);
-+#11160=ORIENTED_EDGE('',*,*,#5870,.T.);
-+#11161=ORIENTED_EDGE('',*,*,#11122,.T.);
-+#11163=ORIENTED_EDGE('',*,*,#11162,.F.);
-+#11164=ORIENTED_EDGE('',*,*,#11147,.F.);
-+#11165=EDGE_LOOP('',(#11160,#11161,#11163,#11164));
-+#11166=FACE_OUTER_BOUND('',#11165,.F.);
-+#11167=ADVANCED_FACE('',(#11166),#11159,.F.);
-+#11168=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11169=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11170=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11171=AXIS2_PLACEMENT_3D('',#11168,#11169,#11170);
-+#11172=PLANE('',#11171);
-+#11173=ORIENTED_EDGE('',*,*,#11120,.T.);
-+#11174=ORIENTED_EDGE('',*,*,#11135,.T.);
-+#11175=ORIENTED_EDGE('',*,*,#11149,.T.);
-+#11176=ORIENTED_EDGE('',*,*,#11162,.T.);
-+#11177=EDGE_LOOP('',(#11173,#11174,#11175,#11176));
-+#11178=FACE_OUTER_BOUND('',#11177,.F.);
-+#11179=ADVANCED_FACE('',(#11178),#11172,.F.);
-+#11180=CARTESIAN_POINT('',(1.65E1,0.E0,3.13125E1));
-+#11181=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11182=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11183=AXIS2_PLACEMENT_3D('',#11180,#11181,#11182);
-+#11184=PLANE('',#11183);
-+#11185=ORIENTED_EDGE('',*,*,#5878,.F.);
-+#11187=ORIENTED_EDGE('',*,*,#11186,.T.);
-+#11189=ORIENTED_EDGE('',*,*,#11188,.T.);
-+#11191=ORIENTED_EDGE('',*,*,#11190,.F.);
-+#11192=EDGE_LOOP('',(#11185,#11187,#11189,#11191));
-+#11193=FACE_OUTER_BOUND('',#11192,.F.);
-+#11194=ADVANCED_FACE('',(#11193),#11184,.F.);
-+#11195=CARTESIAN_POINT('',(1.65E1,0.E0,3.075E1));
-+#11196=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11197=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11198=AXIS2_PLACEMENT_3D('',#11195,#11196,#11197);
-+#11199=CYLINDRICAL_SURFACE('',#11198,5.625E-1);
-+#11200=ORIENTED_EDGE('',*,*,#5884,.F.);
-+#11202=ORIENTED_EDGE('',*,*,#11201,.T.);
-+#11204=ORIENTED_EDGE('',*,*,#11203,.T.);
-+#11205=ORIENTED_EDGE('',*,*,#11186,.F.);
-+#11206=EDGE_LOOP('',(#11200,#11202,#11204,#11205));
-+#11207=FACE_OUTER_BOUND('',#11206,.F.);
-+#11208=ADVANCED_FACE('',(#11207),#11199,.F.);
-+#11209=CARTESIAN_POINT('',(1.35E1,0.E0,3.01875E1));
-+#11210=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11211=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11212=AXIS2_PLACEMENT_3D('',#11209,#11210,#11211);
-+#11213=PLANE('',#11212);
-+#11214=ORIENTED_EDGE('',*,*,#5882,.F.);
-+#11216=ORIENTED_EDGE('',*,*,#11215,.T.);
-+#11218=ORIENTED_EDGE('',*,*,#11217,.T.);
-+#11219=ORIENTED_EDGE('',*,*,#11201,.F.);
-+#11220=EDGE_LOOP('',(#11214,#11216,#11218,#11219));
-+#11221=FACE_OUTER_BOUND('',#11220,.F.);
-+#11222=ADVANCED_FACE('',(#11221),#11213,.F.);
-+#11223=CARTESIAN_POINT('',(1.35E1,0.E0,3.075E1));
-+#11224=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11225=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11226=AXIS2_PLACEMENT_3D('',#11223,#11224,#11225);
-+#11227=CYLINDRICAL_SURFACE('',#11226,5.625E-1);
-+#11228=ORIENTED_EDGE('',*,*,#5880,.F.);
-+#11229=ORIENTED_EDGE('',*,*,#11190,.T.);
-+#11231=ORIENTED_EDGE('',*,*,#11230,.T.);
-+#11232=ORIENTED_EDGE('',*,*,#11215,.F.);
-+#11233=EDGE_LOOP('',(#11228,#11229,#11231,#11232));
-+#11234=FACE_OUTER_BOUND('',#11233,.F.);
-+#11235=ADVANCED_FACE('',(#11234),#11227,.F.);
-+#11236=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
-+#11237=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11238=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11239=AXIS2_PLACEMENT_3D('',#11236,#11237,#11238);
-+#11240=PLANE('',#11239);
-+#11241=ORIENTED_EDGE('',*,*,#11188,.F.);
-+#11242=ORIENTED_EDGE('',*,*,#11203,.F.);
-+#11243=ORIENTED_EDGE('',*,*,#11217,.F.);
-+#11244=ORIENTED_EDGE('',*,*,#11230,.F.);
-+#11245=EDGE_LOOP('',(#11241,#11242,#11243,#11244));
-+#11246=FACE_OUTER_BOUND('',#11245,.F.);
-+#11247=ADVANCED_FACE('',(#11246),#11240,.T.);
-+#11248=CARTESIAN_POINT('',(2.4E1,6.875E-1,3.2E1));
-+#11249=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11250=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11251=AXIS2_PLACEMENT_3D('',#11248,#11249,#11250);
-+#11252=PLANE('',#11251);
-+#11254=ORIENTED_EDGE('',*,*,#11253,.F.);
-+#11256=ORIENTED_EDGE('',*,*,#11255,.F.);
-+#11258=ORIENTED_EDGE('',*,*,#11257,.F.);
-+#11260=ORIENTED_EDGE('',*,*,#11259,.F.);
-+#11262=ORIENTED_EDGE('',*,*,#11261,.F.);
-+#11263=EDGE_LOOP('',(#11254,#11256,#11258,#11260,#11262));
-+#11264=FACE_OUTER_BOUND('',#11263,.F.);
-+#11265=ADVANCED_FACE('',(#11264),#11252,.T.);
-+#11266=CARTESIAN_POINT('',(2.254426323641E1,-6.892397422826E-2,
-+2.742280476768E1));
-+#11267=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11268=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11269=AXIS2_PLACEMENT_3D('',#11266,#11267,#11268);
-+#11270=CYLINDRICAL_SURFACE('',#11269,7.5E-1);
-+#11272=ORIENTED_EDGE('',*,*,#11271,.F.);
-+#11273=ORIENTED_EDGE('',*,*,#5944,.T.);
-+#11275=ORIENTED_EDGE('',*,*,#11274,.T.);
-+#11276=ORIENTED_EDGE('',*,*,#11253,.T.);
-+#11277=EDGE_LOOP('',(#11272,#11273,#11275,#11276));
-+#11278=FACE_OUTER_BOUND('',#11277,.F.);
-+#11279=ADVANCED_FACE('',(#11278),#11270,.F.);
-+#11280=CARTESIAN_POINT('',(2.33125E1,0.E0,2.771522817587E1));
-+#11281=DIRECTION('',(7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11282=DIRECTION('',(-7.071067811865E-1,0.E0,7.071067811865E-1));
-+#11283=AXIS2_PLACEMENT_3D('',#11280,#11281,#11282);
-+#11284=PLANE('',#11283);
-+#11285=ORIENTED_EDGE('',*,*,#11271,.T.);
-+#11286=ORIENTED_EDGE('',*,*,#11261,.T.);
-+#11288=ORIENTED_EDGE('',*,*,#11287,.F.);
-+#11289=ORIENTED_EDGE('',*,*,#5946,.F.);
-+#11290=EDGE_LOOP('',(#11285,#11286,#11288,#11289));
-+#11291=FACE_OUTER_BOUND('',#11290,.F.);
-+#11292=ADVANCED_FACE('',(#11291),#11284,.F.);
-+#11293=CARTESIAN_POINT('',(1.944696065761E1,0.E0,3.035464591145E1));
-+#11294=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11295=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11296=AXIS2_PLACEMENT_3D('',#11293,#11294,#11295);
-+#11297=CYLINDRICAL_SURFACE('',#11296,8.669989027347E-1);
-+#11298=ORIENTED_EDGE('',*,*,#5948,.F.);
-+#11299=ORIENTED_EDGE('',*,*,#11287,.T.);
-+#11300=ORIENTED_EDGE('',*,*,#11259,.T.);
-+#11302=ORIENTED_EDGE('',*,*,#11301,.F.);
-+#11303=EDGE_LOOP('',(#11298,#11299,#11300,#11302));
-+#11304=FACE_OUTER_BOUND('',#11303,.F.);
-+#11305=ADVANCED_FACE('',(#11304),#11297,.F.);
-+#11306=CARTESIAN_POINT('',(1.65E1,0.E0,2.45E1));
-+#11307=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11308=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11309=AXIS2_PLACEMENT_3D('',#11306,#11307,#11308);
-+#11310=CYLINDRICAL_SURFACE('',#11309,5.6875E0);
-+#11311=ORIENTED_EDGE('',*,*,#5950,.T.);
-+#11312=ORIENTED_EDGE('',*,*,#11301,.T.);
-+#11313=ORIENTED_EDGE('',*,*,#11257,.T.);
-+#11315=ORIENTED_EDGE('',*,*,#11314,.F.);
-+#11316=EDGE_LOOP('',(#11311,#11312,#11313,#11315));
-+#11317=FACE_OUTER_BOUND('',#11316,.F.);
-+#11318=ADVANCED_FACE('',(#11317),#11310,.T.);
-+#11319=CARTESIAN_POINT('',(2.239E1,0.E0,2.75E1));
-+#11320=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11321=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11322=AXIS2_PLACEMENT_3D('',#11319,#11320,#11321);
-+#11323=CYLINDRICAL_SURFACE('',#11322,9.225E-1);
-+#11324=ORIENTED_EDGE('',*,*,#11274,.F.);
-+#11325=ORIENTED_EDGE('',*,*,#5942,.F.);
-+#11326=ORIENTED_EDGE('',*,*,#11314,.T.);
-+#11327=ORIENTED_EDGE('',*,*,#11255,.T.);
-+#11328=EDGE_LOOP('',(#11324,#11325,#11326,#11327));
-+#11329=FACE_OUTER_BOUND('',#11328,.F.);
-+#11330=ADVANCED_FACE('',(#11329),#11323,.F.);
-+#11331=CARTESIAN_POINT('',(2.13075E1,-6.892397422826E-2,7.81E0));
-+#11332=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11333=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11334=AXIS2_PLACEMENT_3D('',#11331,#11332,#11333);
-+#11335=CYLINDRICAL_SURFACE('',#11334,8.8E-1);
-+#11337=ORIENTED_EDGE('',*,*,#11336,.T.);
-+#11339=ORIENTED_EDGE('',*,*,#11338,.T.);
-+#11341=ORIENTED_EDGE('',*,*,#11340,.F.);
-+#11342=ORIENTED_EDGE('',*,*,#5888,.T.);
-+#11343=EDGE_LOOP('',(#11337,#11339,#11341,#11342));
-+#11344=FACE_OUTER_BOUND('',#11343,.F.);
-+#11345=ADVANCED_FACE('',(#11344),#11335,.T.);
-+#11346=CARTESIAN_POINT('',(2.21875E1,0.E0,8.69E0));
-+#11347=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11348=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11349=AXIS2_PLACEMENT_3D('',#11346,#11347,#11348);
-+#11350=PLANE('',#11349);
-+#11351=ORIENTED_EDGE('',*,*,#11336,.F.);
-+#11352=ORIENTED_EDGE('',*,*,#5914,.T.);
-+#11354=ORIENTED_EDGE('',*,*,#11353,.F.);
-+#11356=ORIENTED_EDGE('',*,*,#11355,.F.);
-+#11357=EDGE_LOOP('',(#11351,#11352,#11354,#11356));
-+#11358=FACE_OUTER_BOUND('',#11357,.F.);
-+#11359=ADVANCED_FACE('',(#11358),#11350,.T.);
-+#11360=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,9.57E0));
-+#11361=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11362=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11363=AXIS2_PLACEMENT_3D('',#11360,#11361,#11362);
-+#11364=CYLINDRICAL_SURFACE('',#11363,8.8E-1);
-+#11366=ORIENTED_EDGE('',*,*,#11365,.F.);
-+#11368=ORIENTED_EDGE('',*,*,#11367,.T.);
-+#11369=ORIENTED_EDGE('',*,*,#11353,.T.);
-+#11370=ORIENTED_EDGE('',*,*,#5912,.T.);
-+#11371=EDGE_LOOP('',(#11366,#11368,#11369,#11370));
-+#11372=FACE_OUTER_BOUND('',#11371,.F.);
-+#11373=ADVANCED_FACE('',(#11372),#11364,.F.);
-+#11374=CARTESIAN_POINT('',(1.96875E1,0.E0,8.69E0));
-+#11375=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11376=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11377=AXIS2_PLACEMENT_3D('',#11374,#11375,#11376);
-+#11378=PLANE('',#11377);
-+#11379=ORIENTED_EDGE('',*,*,#11365,.T.);
-+#11380=ORIENTED_EDGE('',*,*,#5910,.T.);
-+#11382=ORIENTED_EDGE('',*,*,#11381,.F.);
-+#11384=ORIENTED_EDGE('',*,*,#11383,.F.);
-+#11385=EDGE_LOOP('',(#11379,#11380,#11382,#11384));
-+#11386=FACE_OUTER_BOUND('',#11385,.F.);
-+#11387=ADVANCED_FACE('',(#11386),#11378,.T.);
-+#11388=CARTESIAN_POINT('',(2.05675E1,7.463919417831E-1,1.037E1));
-+#11389=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11390=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11391=AXIS2_PLACEMENT_3D('',#11388,#11389,#11390);
-+#11392=CYLINDRICAL_SURFACE('',#11391,8.8E-1);
-+#11394=ORIENTED_EDGE('',*,*,#11393,.F.);
-+#11396=ORIENTED_EDGE('',*,*,#11395,.T.);
-+#11397=ORIENTED_EDGE('',*,*,#11381,.T.);
-+#11398=ORIENTED_EDGE('',*,*,#5908,.T.);
-+#11399=EDGE_LOOP('',(#11394,#11396,#11397,#11398));
-+#11400=FACE_OUTER_BOUND('',#11399,.F.);
-+#11401=ADVANCED_FACE('',(#11400),#11392,.F.);
-+#11402=CARTESIAN_POINT('',(1.96875E1,0.E0,1.125E1));
-+#11403=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11404=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11405=AXIS2_PLACEMENT_3D('',#11402,#11403,#11404);
-+#11406=PLANE('',#11405);
-+#11407=ORIENTED_EDGE('',*,*,#11393,.T.);
-+#11408=ORIENTED_EDGE('',*,*,#5906,.T.);
-+#11410=ORIENTED_EDGE('',*,*,#11409,.F.);
-+#11412=ORIENTED_EDGE('',*,*,#11411,.F.);
-+#11413=EDGE_LOOP('',(#11407,#11408,#11410,#11412));
-+#11414=FACE_OUTER_BOUND('',#11413,.F.);
-+#11415=ADVANCED_FACE('',(#11414),#11406,.T.);
-+#11416=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,1.037E1));
-+#11417=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11418=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11419=AXIS2_PLACEMENT_3D('',#11416,#11417,#11418);
-+#11420=CYLINDRICAL_SURFACE('',#11419,8.8E-1);
-+#11422=ORIENTED_EDGE('',*,*,#11421,.F.);
-+#11424=ORIENTED_EDGE('',*,*,#11423,.T.);
-+#11425=ORIENTED_EDGE('',*,*,#11409,.T.);
-+#11426=ORIENTED_EDGE('',*,*,#5904,.T.);
-+#11427=EDGE_LOOP('',(#11422,#11424,#11425,#11426));
-+#11428=FACE_OUTER_BOUND('',#11427,.F.);
-+#11429=ADVANCED_FACE('',(#11428),#11420,.F.);
-+#11430=CARTESIAN_POINT('',(2.53125E1,0.E0,1.125E1));
-+#11431=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11432=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11433=AXIS2_PLACEMENT_3D('',#11430,#11431,#11432);
-+#11434=PLANE('',#11433);
-+#11436=ORIENTED_EDGE('',*,*,#11435,.F.);
-+#11438=ORIENTED_EDGE('',*,*,#11437,.F.);
-+#11439=ORIENTED_EDGE('',*,*,#11421,.T.);
-+#11440=ORIENTED_EDGE('',*,*,#5902,.T.);
-+#11441=EDGE_LOOP('',(#11436,#11438,#11439,#11440));
-+#11442=FACE_OUTER_BOUND('',#11441,.F.);
-+#11443=ADVANCED_FACE('',(#11442),#11434,.T.);
-+#11444=CARTESIAN_POINT('',(2.44325E1,7.463919417831E-1,9.57E0));
-+#11445=DIRECTION('',(0.E0,-1.E0,0.E0));
-+#11446=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11447=AXIS2_PLACEMENT_3D('',#11444,#11445,#11446);
-+#11448=CYLINDRICAL_SURFACE('',#11447,8.8E-1);
-+#11450=ORIENTED_EDGE('',*,*,#11449,.F.);
-+#11452=ORIENTED_EDGE('',*,*,#11451,.T.);
-+#11453=ORIENTED_EDGE('',*,*,#11435,.T.);
-+#11454=ORIENTED_EDGE('',*,*,#5900,.T.);
-+#11455=EDGE_LOOP('',(#11450,#11452,#11453,#11454));
-+#11456=FACE_OUTER_BOUND('',#11455,.F.);
-+#11457=ADVANCED_FACE('',(#11456),#11448,.F.);
-+#11458=CARTESIAN_POINT('',(2.53125E1,0.E0,8.69E0));
-+#11459=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11460=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11461=AXIS2_PLACEMENT_3D('',#11458,#11459,#11460);
-+#11462=PLANE('',#11461);
-+#11464=ORIENTED_EDGE('',*,*,#11463,.T.);
-+#11466=ORIENTED_EDGE('',*,*,#11465,.F.);
-+#11467=ORIENTED_EDGE('',*,*,#11449,.T.);
-+#11468=ORIENTED_EDGE('',*,*,#5898,.T.);
-+#11469=EDGE_LOOP('',(#11464,#11466,#11467,#11468));
-+#11470=FACE_OUTER_BOUND('',#11469,.F.);
-+#11471=ADVANCED_FACE('',(#11470),#11462,.T.);
-+#11472=CARTESIAN_POINT('',(2.419E1,-6.892397422826E-2,7.81E0));
-+#11473=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11474=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11475=AXIS2_PLACEMENT_3D('',#11472,#11473,#11474);
-+#11476=CYLINDRICAL_SURFACE('',#11475,8.8E-1);
-+#11478=ORIENTED_EDGE('',*,*,#11477,.T.);
-+#11480=ORIENTED_EDGE('',*,*,#11479,.T.);
-+#11481=ORIENTED_EDGE('',*,*,#11463,.F.);
-+#11482=ORIENTED_EDGE('',*,*,#5896,.T.);
-+#11483=EDGE_LOOP('',(#11478,#11480,#11481,#11482));
-+#11484=FACE_OUTER_BOUND('',#11483,.F.);
-+#11485=ADVANCED_FACE('',(#11484),#11476,.T.);
-+#11486=CARTESIAN_POINT('',(2.331E1,0.E0,8.69E0));
-+#11487=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11488=DIRECTION('',(0.E0,0.E0,-1.E0));
-+#11489=AXIS2_PLACEMENT_3D('',#11486,#11487,#11488);
-+#11490=PLANE('',#11489);
-+#11491=ORIENTED_EDGE('',*,*,#11477,.F.);
-+#11492=ORIENTED_EDGE('',*,*,#5894,.T.);
-+#11494=ORIENTED_EDGE('',*,*,#11493,.T.);
-+#11496=ORIENTED_EDGE('',*,*,#11495,.F.);
-+#11497=EDGE_LOOP('',(#11491,#11492,#11494,#11496));
-+#11498=FACE_OUTER_BOUND('',#11497,.F.);
-+#11499=ADVANCED_FACE('',(#11498),#11490,.T.);
-+#11500=CARTESIAN_POINT('',(2.274875E1,0.E0,7.5E0));
-+#11501=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11502=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11503=AXIS2_PLACEMENT_3D('',#11500,#11501,#11502);
-+#11504=CYLINDRICAL_SURFACE('',#11503,5.6125E-1);
-+#11505=ORIENTED_EDGE('',*,*,#5892,.T.);
-+#11507=ORIENTED_EDGE('',*,*,#11506,.T.);
-+#11509=ORIENTED_EDGE('',*,*,#11508,.F.);
-+#11510=ORIENTED_EDGE('',*,*,#11493,.F.);
-+#11511=EDGE_LOOP('',(#11505,#11507,#11509,#11510));
-+#11512=FACE_OUTER_BOUND('',#11511,.F.);
-+#11513=ADVANCED_FACE('',(#11512),#11504,.F.);
-+#11514=CARTESIAN_POINT('',(2.21875E1,0.E0,7.5E0));
-+#11515=DIRECTION('',(1.E0,0.E0,0.E0));
-+#11516=DIRECTION('',(0.E0,0.E0,1.E0));
-+#11517=AXIS2_PLACEMENT_3D('',#11514,#11515,#11516);
-+#11518=PLANE('',#11517);
-+#11519=ORIENTED_EDGE('',*,*,#11340,.T.);
-+#11521=ORIENTED_EDGE('',*,*,#11520,.F.);
-+#11522=ORIENTED_EDGE('',*,*,#11506,.F.);
-+#11523=ORIENTED_EDGE('',*,*,#5890,.T.);
-+#11524=EDGE_LOOP('',(#11519,#11521,#11522,#11523));
-+#11525=FACE_OUTER_BOUND('',#11524,.F.);
-+#11526=ADVANCED_FACE('',(#11525),#11518,.T.);
-+#11527=CARTESIAN_POINT('',(2.4E1,6.875E-1,0.E0));
-+#11528=DIRECTION('',(0.E0,1.E0,0.E0));
-+#11529=DIRECTION('',(-1.E0,0.E0,0.E0));
-+#11530=AXIS2_PLACEMENT_3D('',#11527,#11528,#11529);
-+#11531=PLANE('',#11530);
-+#11532=ORIENTED_EDGE('',*,*,#11465,.T.);
-+#11533=ORIENTED_EDGE('',*,*,#11479,.F.);
-+#11534=ORIENTED_EDGE('',*,*,#11495,.T.);
-+#11535=ORIENTED_EDGE('',*,*,#11508,.T.);
-+#11536=ORIENTED_EDGE('',*,*,#11520,.T.);
-+#11537=ORIENTED_EDGE('',*,*,#11338,.F.);
-+#11538=ORIENTED_EDGE('',*,*,#11355,.T.);
-+#11539=ORIENTED_EDGE('',*,*,#11367,.F.);
-+#11540=ORIENTED_EDGE('',*,*,#11383,.T.);
-+#11541=ORIENTED_EDGE('',*,*,#11395,.F.);
-+#11542=ORIENTED_EDGE('',*,*,#11411,.T.);
-+#11543=ORIENTED_EDGE('',*,*,#11423,.F.);
-+#11544=ORIENTED_EDGE('',*,*,#11437,.T.);
-+#11545=ORIENTED_EDGE('',*,*,#11451,.F.);
-+#11546=EDGE_LOOP('',(#11532,#11533,#11534,#11535,#11536,#11537,#11538,#11539,
-+#11540,#11541,#11542,#11543,#11544,#11545));
-+#11547=FACE_OUTER_BOUND('',#11546,.F.);
-+#11548=ADVANCED_FACE('',(#11547),#11531,.F.);
-+#11549=CLOSED_SHELL('',(#5954,#6079,#6094,#6107,#6117,#6132,#6145,#6201,#6214,
-+#6278,#6488,#6503,#6516,#6529,#6540,#6555,#6568,#6581,#6592,#6605,#6618,#6631,
-+#6644,#6656,#6669,#6683,#6696,#6709,#6723,#6736,#6749,#6763,#6776,#6789,#6802,
-+#6815,#6828,#6842,#6855,#6868,#6880,#6893,#6906,#6918,#6931,#6945,#6958,#6971,
-+#6984,#6998,#7011,#7024,#7036,#7048,#7061,#7074,#7086,#7099,#7114,#7127,#7152,
-+#7166,#7178,#7191,#7204,#7217,#7230,#7244,#7256,#7311,#7325,#7337,#7349,#7368,
-+#7379,#7394,#7407,#7423,#7437,#7449,#7465,#7477,#7490,#7514,#7529,#7542,#7552,
-+#7567,#7580,#7590,#7605,#7619,#7649,#7662,#7675,#7688,#7701,#7714,#7727,#7740,
-+#7753,#7766,#7778,#7790,#7805,#7818,#7828,#7843,#7856,#7866,#7881,#7894,#7907,
-+#7918,#7933,#7946,#7959,#7970,#7985,#7998,#8014,#8028,#8040,#8055,#8068,#8084,
-+#8098,#8110,#8125,#8138,#8154,#8168,#8180,#8195,#8208,#8224,#8238,#8250,#8265,
-+#8278,#8294,#8308,#8320,#8335,#8348,#8364,#8378,#8390,#8405,#8418,#8434,#8448,
-+#8460,#8475,#8488,#8504,#8518,#8530,#8545,#8558,#8574,#8588,#8600,#8615,#8628,
-+#8644,#8658,#8670,#8685,#8698,#8714,#8728,#8740,#8755,#8768,#8784,#8798,#8810,
-+#8825,#8838,#8854,#8868,#8880,#8895,#8908,#8924,#8938,#8950,#8965,#8978,#8994,
-+#9008,#9020,#9035,#9048,#9064,#9078,#9090,#9105,#9118,#9134,#9148,#9160,#9175,
-+#9188,#9204,#9218,#9230,#9242,#9260,#9275,#9288,#9304,#9318,#9330,#9345,#9359,
-+#9373,#9387,#9401,#9415,#9429,#9443,#9457,#9471,#9485,#9498,#9518,#9533,#9546,
-+#9556,#9571,#9584,#9594,#9609,#9622,#9632,#9647,#9660,#9670,#9685,#9698,#9708,
-+#9723,#9737,#9751,#9765,#9779,#9793,#9807,#9820,#9836,#9851,#9865,#9887,#9901,
-+#9913,#9926,#9939,#9952,#9964,#9979,#9993,#10007,#10020,#10032,#10050,#10064,
-+#10077,#10090,#10103,#10115,#10130,#10144,#10178,#10192,#10205,#10218,#10230,
-+#10243,#10256,#10269,#10282,#10295,#10308,#10321,#10333,#10348,#10362,#10376,
-+#10389,#10401,#10416,#10430,#10444,#10457,#10469,#10484,#10498,#10512,#10525,
-+#10537,#10552,#10566,#10580,#10593,#10605,#10620,#10634,#10648,#10661,#10673,
-+#10691,#10705,#10718,#10731,#10744,#10756,#10771,#10785,#10799,#10812,#10824,
-+#10842,#10856,#10869,#10882,#10895,#10907,#10922,#10936,#10950,#10963,#10975,
-+#10990,#11004,#11018,#11031,#11043,#11058,#11072,#11086,#11099,#11111,#11126,
-+#11140,#11154,#11167,#11179,#11194,#11208,#11222,#11235,#11247,#11265,#11279,
-+#11292,#11305,#11318,#11330,#11345,#11359,#11373,#11387,#11401,#11415,#11429,
-+#11443,#11457,#11471,#11485,#11499,#11513,#11526,#11548));
-+#11550=MANIFOLD_SOLID_BREP('',#11549);
-+#11551=DIMENSIONAL_EXPONENTS(1.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
-+#11552=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
-+#11553=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.54E1),#11552);
-+#11554=(CONVERSION_BASED_UNIT('INCH',#11553)LENGTH_UNIT()NAMED_UNIT(#11551));
-+#11555=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0);
-+#11556=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
-+#11557=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),
-+#11556);
-+#11558=(CONVERSION_BASED_UNIT('DEGREE',#11557)NAMED_UNIT(#11555)PLANE_ANGLE_UNIT());
-+#11559=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
-+#11560=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(4.404650704771E-3),#11554,
-+'closure',
-+'Maximum model space distance between geometric entities at asserted connectivities');
-+#11561=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((
-+#11560))GLOBAL_UNIT_ASSIGNED_CONTEXT((#11554,#11558,#11559))REPRESENTATION_CONTEXT('ID1','3'));
-+#11563=APPLICATION_CONTEXT(
-+'CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES');
-+#11564=APPLICATION_PROTOCOL_DEFINITION('international standard',
-+'config_control_design',1994,#11563);
-+#11565=DESIGN_CONTEXT('',#11563,'design');
-+#11566=MECHANICAL_CONTEXT('',#11563,'mechanical');
-+#11567=PRODUCT('PROESOURCE','PROESOURCE','NOT SPECIFIED',(#11566));
-+#11568=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',
-+#11567,.MADE.);
-+#11572=PRODUCT_CATEGORY('part','');
-+#11573=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#11567));
-+#11574=PRODUCT_CATEGORY_RELATIONSHIP('','',#11572,#11573);
-+#11575=SECURITY_CLASSIFICATION_LEVEL('unclassified');
-+#11576=SECURITY_CLASSIFICATION('','',#11575);
-+#11577=CC_DESIGN_SECURITY_CLASSIFICATION(#11576,(#11568));
-+#11578=APPROVAL_STATUS('approved');
-+#11579=APPROVAL(#11578,'');
-+#11580=CC_DESIGN_APPROVAL(#11579,(#11576,#11568,#11569));
-+#11581=CALENDAR_DATE(102,4,11);
-+#11582=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);
-+#11583=LOCAL_TIME(14,0,4.8E1,#11582);
-+#11584=DATE_AND_TIME(#11581,#11583);
-+#11585=APPROVAL_DATE_TIME(#11584,#11579);
-+#11586=DATE_TIME_ROLE('creation_date');
-+#11587=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11586,(#11569));
-+#11588=DATE_TIME_ROLE('classification_date');
-+#11589=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#11584,#11588,(#11576));
-+#11590=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$);
-+#11591=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED');
-+#11592=PERSON_AND_ORGANIZATION(#11590,#11591);
-+#11593=APPROVAL_ROLE('approver');
-+#11594=APPROVAL_PERSON_ORGANIZATION(#11592,#11579,#11593);
-+#11595=PERSON_AND_ORGANIZATION_ROLE('creator');
-+#11596=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11595,(#11568,
-+#11569));
-+#11597=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
-+#11598=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11597,(#11568));
-+#11599=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
-+#11600=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11599,(#11576));
-+#11601=PERSON_AND_ORGANIZATION_ROLE('design_owner');
-+#11602=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#11592,#11601,(#11567));
-+#13=CIRCLE('',#12,1.925E-1);
-+#18=CIRCLE('',#17,1.925E-1);
-+#23=CIRCLE('',#22,1.925E-1);
-+#28=CIRCLE('',#27,1.925E-1);
-+#33=CIRCLE('',#32,1.925E-1);
-+#38=CIRCLE('',#37,1.925E-1);
-+#43=CIRCLE('',#42,1.925E-1);
-+#48=CIRCLE('',#47,1.925E-1);
-+#53=CIRCLE('',#52,1.925E-1);
-+#58=CIRCLE('',#57,1.925E-1);
-+#63=CIRCLE('',#62,1.925E-1);
-+#68=CIRCLE('',#67,1.925E-1);
-+#73=CIRCLE('',#72,1.925E-1);
-+#78=CIRCLE('',#77,1.925E-1);
-+#83=CIRCLE('',#82,1.925E-1);
-+#88=CIRCLE('',#87,1.925E-1);
-+#93=CIRCLE('',#92,1.925E-1);
-+#98=CIRCLE('',#97,1.925E-1);
-+#103=CIRCLE('',#102,1.925E-1);
-+#108=CIRCLE('',#107,1.925E-1);
-+#113=CIRCLE('',#112,1.925E-1);
-+#118=CIRCLE('',#117,1.925E-1);
-+#123=CIRCLE('',#122,1.925E-1);
-+#128=CIRCLE('',#127,1.925E-1);
-+#181=CIRCLE('',#180,1.925E-1);
-+#186=CIRCLE('',#185,1.925E-1);
-+#191=CIRCLE('',#190,1.925E-1);
-+#196=CIRCLE('',#195,1.925E-1);
-+#249=CIRCLE('',#248,1.925E-1);
-+#254=CIRCLE('',#253,1.925E-1);
-+#259=CIRCLE('',#258,1.925E-1);
-+#264=CIRCLE('',#263,1.925E-1);
-+#269=CIRCLE('',#268,1.925E-1);
-+#274=CIRCLE('',#273,1.925E-1);
-+#279=CIRCLE('',#278,1.925E-1);
-+#284=CIRCLE('',#283,1.925E-1);
-+#289=CIRCLE('',#288,1.925E-1);
-+#294=CIRCLE('',#293,1.925E-1);
-+#299=CIRCLE('',#298,1.925E-1);
-+#304=CIRCLE('',#303,1.925E-1);
-+#313=CIRCLE('',#312,5.625E-1);
-+#322=CIRCLE('',#321,5.625E-1);
-+#327=CIRCLE('',#326,9.225E-1);
-+#336=CIRCLE('',#335,8.669989027347E-1);
-+#341=CIRCLE('',#340,5.6875E0);
-+#350=CIRCLE('',#349,5.6125E-1);
-+#383=CIRCLE('',#382,5.625E-1);
-+#392=CIRCLE('',#391,5.625E-1);
-+#401=CIRCLE('',#400,5.625E-1);
-+#410=CIRCLE('',#409,5.625E-1);
-+#419=CIRCLE('',#418,5.E-1);
-+#428=CIRCLE('',#427,5.E-1);
-+#437=CIRCLE('',#436,4.375E-1);
-+#446=CIRCLE('',#445,4.375E-1);
-+#455=CIRCLE('',#454,5.625E-1);
-+#464=CIRCLE('',#463,5.625E-1);
-+#473=CIRCLE('',#472,5.625E-1);
-+#482=CIRCLE('',#481,5.625E-1);
-+#491=CIRCLE('',#490,5.625E-1);
-+#500=CIRCLE('',#499,5.625E-1);
-+#509=CIRCLE('',#508,5.625E-1);
-+#518=CIRCLE('',#517,5.625E-1);
-+#527=CIRCLE('',#526,5.E-1);
-+#536=CIRCLE('',#535,5.E-1);
-+#545=CIRCLE('',#544,4.375E-1);
-+#554=CIRCLE('',#553,4.375E-1);
-+#563=CIRCLE('',#562,5.625E-1);
-+#572=CIRCLE('',#571,5.625E-1);
-+#581=CIRCLE('',#580,5.6125E-1);
-+#614=CIRCLE('',#613,9.225E-1);
-+#619=CIRCLE('',#618,5.6875E0);
-+#624=CIRCLE('',#623,8.669989027347E-1);
-+#633=CIRCLE('',#632,9.225E-1);
-+#638=CIRCLE('',#637,5.6875E0);
-+#643=CIRCLE('',#642,8.669989027347E-1);
-+#648=CIRCLE('',#647,9.225E-1);
-+#657=CIRCLE('',#656,8.669989027347E-1);
-+#662=CIRCLE('',#661,5.6875E0);
-+#667=CIRCLE('',#666,9.5E-2);
-+#672=CIRCLE('',#671,9.5E-2);
-+#677=CIRCLE('',#676,1.625E-1);
-+#682=CIRCLE('',#681,1.625E-1);
-+#687=CIRCLE('',#686,9.5E-2);
-+#692=CIRCLE('',#691,9.5E-2);
-+#697=CIRCLE('',#696,9.5E-2);
-+#702=CIRCLE('',#701,9.5E-2);
-+#707=CIRCLE('',#706,9.5E-2);
-+#712=CIRCLE('',#711,9.5E-2);
-+#717=CIRCLE('',#716,9.5E-2);
-+#722=CIRCLE('',#721,9.5E-2);
-+#727=CIRCLE('',#726,1.625E-1);
-+#732=CIRCLE('',#731,1.625E-1);
-+#737=CIRCLE('',#736,9.5E-2);
-+#742=CIRCLE('',#741,9.5E-2);
-+#803=CIRCLE('',#802,9.5E-2);
-+#808=CIRCLE('',#807,9.5E-2);
-+#821=CIRCLE('',#820,1.625E-1);
-+#826=CIRCLE('',#825,1.625E-1);
-+#887=CIRCLE('',#886,1.E-1);
-+#892=CIRCLE('',#891,1.E-1);
-+#897=CIRCLE('',#896,1.E-1);
-+#902=CIRCLE('',#901,1.E-1);
-+#931=CIRCLE('',#930,1.E-1);
-+#936=CIRCLE('',#935,1.E-1);
-+#941=CIRCLE('',#940,1.E-1);
-+#946=CIRCLE('',#945,1.E-1);
-+#951=CIRCLE('',#950,2.575E-1);
-+#956=CIRCLE('',#955,2.575E-1);
-+#961=CIRCLE('',#960,2.575E-1);
-+#966=CIRCLE('',#965,2.575E-1);
-+#971=CIRCLE('',#970,2.575E-1);
-+#976=CIRCLE('',#975,2.575E-1);
-+#981=CIRCLE('',#980,2.575E-1);
-+#986=CIRCLE('',#985,2.575E-1);
-+#991=CIRCLE('',#990,2.575E-1);
-+#996=CIRCLE('',#995,2.575E-1);
-+#1001=CIRCLE('',#1000,2.575E-1);
-+#1006=CIRCLE('',#1005,2.575E-1);
-+#1011=CIRCLE('',#1010,2.56E-1);
-+#1016=CIRCLE('',#1015,2.56E-1);
-+#1021=CIRCLE('',#1020,2.56E-1);
-+#1026=CIRCLE('',#1025,2.56E-1);
-+#1031=CIRCLE('',#1030,2.56E-1);
-+#1036=CIRCLE('',#1035,2.56E-1);
-+#1041=CIRCLE('',#1040,2.56E-1);
-+#1046=CIRCLE('',#1045,2.56E-1);
-+#1051=CIRCLE('',#1050,2.56E-1);
-+#1056=CIRCLE('',#1055,2.56E-1);
-+#1061=CIRCLE('',#1060,2.56E-1);
-+#1066=CIRCLE('',#1065,2.56E-1);
-+#1115=CIRCLE('',#1114,2.575E-1);
-+#1120=CIRCLE('',#1119,2.575E-1);
-+#1125=CIRCLE('',#1124,2.575E-1);
-+#1130=CIRCLE('',#1129,2.575E-1);
-+#1135=CIRCLE('',#1134,2.575E-1);
-+#1140=CIRCLE('',#1139,2.575E-1);
-+#1145=CIRCLE('',#1144,2.575E-1);
-+#1150=CIRCLE('',#1149,2.575E-1);
-+#1155=CIRCLE('',#1154,2.575E-1);
-+#1160=CIRCLE('',#1159,2.575E-1);
-+#1165=CIRCLE('',#1164,2.575E-1);
-+#1170=CIRCLE('',#1169,2.575E-1);
-+#1259=CIRCLE('',#1258,1.E-1);
-+#1268=CIRCLE('',#1267,1.E-1);
-+#1285=CIRCLE('',#1284,1.E-1);
-+#1294=CIRCLE('',#1293,1.E-1);
-+#1303=CIRCLE('',#1302,1.E0);
-+#1312=CIRCLE('',#1311,1.E0);
-+#1317=CIRCLE('',#1316,5.E0);
-+#1326=CIRCLE('',#1325,5.E0);
-+#1331=CIRCLE('',#1330,5.E0);
-+#1340=CIRCLE('',#1339,5.E0);
-+#1349=CIRCLE('',#1348,1.E0);
-+#1358=CIRCLE('',#1357,1.E0);
-+#1367=CIRCLE('',#1366,1.E0);
-+#1376=CIRCLE('',#1375,1.E0);
-+#1385=CIRCLE('',#1384,1.E0);
-+#1394=CIRCLE('',#1393,1.E0);
-+#1403=CIRCLE('',#1402,1.E0);
-+#1412=CIRCLE('',#1411,1.E0);
-+#1421=CIRCLE('',#1420,3.E0);
-+#1430=CIRCLE('',#1429,3.E0);
-+#1439=CIRCLE('',#1438,3.E0);
-+#1448=CIRCLE('',#1447,3.E0);
-+#1457=CIRCLE('',#1456,5.E0);
-+#1466=CIRCLE('',#1465,5.E0);
-+#1475=CIRCLE('',#1474,5.E0);
-+#1484=CIRCLE('',#1483,5.E0);
-+#1493=CIRCLE('',#1492,3.E0);
-+#1502=CIRCLE('',#1501,3.E0);
-+#1511=CIRCLE('',#1510,3.E0);
-+#1520=CIRCLE('',#1519,3.E0);
-+#1529=CIRCLE('',#1528,1.E0);
-+#1538=CIRCLE('',#1537,1.E0);
-+#1547=CIRCLE('',#1546,1.E0);
-+#1556=CIRCLE('',#1555,1.E0);
-+#1597=CIRCLE('',#1596,1.E0);
-+#1606=CIRCLE('',#1605,1.E0);
-+#1675=CIRCLE('',#1674,9.5E-2);
-+#1680=CIRCLE('',#1679,9.5E-2);
-+#1685=CIRCLE('',#1684,6.25E-2);
-+#1690=CIRCLE('',#1689,6.25E-2);
-+#1707=CIRCLE('',#1706,1.E0);
-+#1716=CIRCLE('',#1715,1.E0);
-+#1729=CIRCLE('',#1728,1.E0);
-+#1738=CIRCLE('',#1737,1.E0);
-+#1767=CIRCLE('',#1766,1.625E-1);
-+#1772=CIRCLE('',#1771,1.625E-1);
-+#1846=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1837,#1838,#1839,#1840,#1841,#1842,#1843,
-+#1844,#1845),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#1856=B_SPLINE_CURVE_WITH_KNOTS('',3,(#1847,#1848,#1849,#1850,#1851,#1852,#1853,
-+#1854,#1855),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#1873=CIRCLE('',#1872,2.575E-1);
-+#1878=CIRCLE('',#1877,2.575E-1);
-+#1883=CIRCLE('',#1882,1.925E-1);
-+#1888=CIRCLE('',#1887,1.925E-1);
-+#1933=CIRCLE('',#1932,9.5E-2);
-+#1938=CIRCLE('',#1937,9.5E-2);
-+#1943=CIRCLE('',#1942,6.25E-2);
-+#1948=CIRCLE('',#1947,6.25E-2);
-+#1961=CIRCLE('',#1960,9.5E-2);
-+#1966=CIRCLE('',#1965,9.5E-2);
-+#1979=CIRCLE('',#1978,6.25E-2);
-+#1984=CIRCLE('',#1983,6.25E-2);
-+#1993=CIRCLE('',#1992,3.5E-1);
-+#2002=CIRCLE('',#2001,3.5E-1);
-+#2035=CIRCLE('',#2034,3.5E-1);
-+#2044=CIRCLE('',#2043,3.5E-1);
-+#2053=CIRCLE('',#2052,3.5E-1);
-+#2062=CIRCLE('',#2061,3.5E-1);
-+#2071=CIRCLE('',#2070,3.5E-1);
-+#2080=CIRCLE('',#2079,3.5E-1);
-+#2089=CIRCLE('',#2088,3.5E-1);
-+#2098=CIRCLE('',#2097,3.5E-1);
-+#2107=CIRCLE('',#2106,3.5E-1);
-+#2116=CIRCLE('',#2115,3.5E-1);
-+#2145=CIRCLE('',#2144,9.5E-2);
-+#2150=CIRCLE('',#2149,9.5E-2);
-+#2163=CIRCLE('',#2162,6.25E-2);
-+#2168=CIRCLE('',#2167,6.25E-2);
-+#2189=CIRCLE('',#2188,1.E-1);
-+#2194=CIRCLE('',#2193,1.E-1);
-+#2215=CIRCLE('',#2214,1.E-1);
-+#2220=CIRCLE('',#2219,1.E-1);
-+#2233=CIRCLE('',#2232,2.575E-1);
-+#2238=CIRCLE('',#2237,2.575E-1);
-+#2243=CIRCLE('',#2242,1.925E-1);
-+#2248=CIRCLE('',#2247,1.925E-1);
-+#2269=CIRCLE('',#2268,2.575E-1);
-+#2274=CIRCLE('',#2273,2.575E-1);
-+#2279=CIRCLE('',#2278,1.925E-1);
-+#2284=CIRCLE('',#2283,1.925E-1);
-+#2305=CIRCLE('',#2304,2.575E-1);
-+#2310=CIRCLE('',#2309,2.575E-1);
-+#2315=CIRCLE('',#2314,1.925E-1);
-+#2320=CIRCLE('',#2319,1.925E-1);
-+#2341=CIRCLE('',#2340,2.575E-1);
-+#2346=CIRCLE('',#2345,2.575E-1);
-+#2351=CIRCLE('',#2350,1.925E-1);
-+#2356=CIRCLE('',#2355,1.925E-1);
-+#2377=CIRCLE('',#2376,2.575E-1);
-+#2382=CIRCLE('',#2381,2.575E-1);
-+#2387=CIRCLE('',#2386,1.925E-1);
-+#2392=CIRCLE('',#2391,1.925E-1);
-+#2413=CIRCLE('',#2412,2.575E-1);
-+#2418=CIRCLE('',#2417,2.575E-1);
-+#2423=CIRCLE('',#2422,1.925E-1);
-+#2428=CIRCLE('',#2427,1.925E-1);
-+#2449=CIRCLE('',#2448,2.56E-1);
-+#2454=CIRCLE('',#2453,2.56E-1);
-+#2459=CIRCLE('',#2458,1.925E-1);
-+#2464=CIRCLE('',#2463,1.925E-1);
-+#2485=CIRCLE('',#2484,2.56E-1);
-+#2490=CIRCLE('',#2489,2.56E-1);
-+#2495=CIRCLE('',#2494,1.925E-1);
-+#2500=CIRCLE('',#2499,1.925E-1);
-+#2521=CIRCLE('',#2520,2.56E-1);
-+#2526=CIRCLE('',#2525,2.56E-1);
-+#2531=CIRCLE('',#2530,1.925E-1);
-+#2536=CIRCLE('',#2535,1.925E-1);
-+#2557=CIRCLE('',#2556,2.56E-1);
-+#2562=CIRCLE('',#2561,2.56E-1);
-+#2567=CIRCLE('',#2566,1.925E-1);
-+#2572=CIRCLE('',#2571,1.925E-1);
-+#2593=CIRCLE('',#2592,2.56E-1);
-+#2598=CIRCLE('',#2597,2.56E-1);
-+#2603=CIRCLE('',#2602,1.925E-1);
-+#2608=CIRCLE('',#2607,1.925E-1);
-+#2629=CIRCLE('',#2628,2.56E-1);
-+#2634=CIRCLE('',#2633,2.56E-1);
-+#2639=CIRCLE('',#2638,1.925E-1);
-+#2644=CIRCLE('',#2643,1.925E-1);
-+#2665=CIRCLE('',#2664,2.575E-1);
-+#2670=CIRCLE('',#2669,2.575E-1);
-+#2675=CIRCLE('',#2674,1.925E-1);
-+#2680=CIRCLE('',#2679,1.925E-1);
-+#2701=CIRCLE('',#2700,2.575E-1);
-+#2706=CIRCLE('',#2705,2.575E-1);
-+#2711=CIRCLE('',#2710,1.925E-1);
-+#2716=CIRCLE('',#2715,1.925E-1);
-+#2737=CIRCLE('',#2736,2.575E-1);
-+#2742=CIRCLE('',#2741,2.575E-1);
-+#2747=CIRCLE('',#2746,1.925E-1);
-+#2752=CIRCLE('',#2751,1.925E-1);
-+#2773=CIRCLE('',#2772,2.575E-1);
-+#2778=CIRCLE('',#2777,2.575E-1);
-+#2783=CIRCLE('',#2782,1.925E-1);
-+#2788=CIRCLE('',#2787,1.925E-1);
-+#2809=CIRCLE('',#2808,2.575E-1);
-+#2814=CIRCLE('',#2813,2.575E-1);
-+#2819=CIRCLE('',#2818,1.925E-1);
-+#2824=CIRCLE('',#2823,1.925E-1);
-+#2845=CIRCLE('',#2844,2.575E-1);
-+#2850=CIRCLE('',#2849,2.575E-1);
-+#2855=CIRCLE('',#2854,1.925E-1);
-+#2860=CIRCLE('',#2859,1.925E-1);
-+#2882=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2873,#2874,#2875,#2876,#2877,#2878,#2879,
-+#2880,#2881),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#2892=B_SPLINE_CURVE_WITH_KNOTS('',3,(#2883,#2884,#2885,#2886,#2887,#2888,#2889,
-+#2890,#2891),.UNSPECIFIED.,.F.,.F.,(4,1,1,1,1,1,4),(0.E0,2.5E-1,3.75E-1,5.E-1,
-+6.25E-1,7.5E-1,1.E0),.UNSPECIFIED.);
-+#2905=CIRCLE('',#2904,2.575E-1);
-+#2910=CIRCLE('',#2909,2.575E-1);
-+#2915=CIRCLE('',#2914,1.925E-1);
-+#2920=CIRCLE('',#2919,1.925E-1);
-+#2937=CIRCLE('',#2936,3.5E-1);
-+#2946=CIRCLE('',#2945,3.5E-1);
-+#2955=CIRCLE('',#2954,3.5E-1);
-+#2964=CIRCLE('',#2963,3.5E-1);
-+#2973=CIRCLE('',#2972,3.5E-1);
-+#2982=CIRCLE('',#2981,3.5E-1);
-+#2991=CIRCLE('',#2990,3.5E-1);
-+#3000=CIRCLE('',#2999,3.5E-1);
-+#3009=CIRCLE('',#3008,3.5E-1);
-+#3018=CIRCLE('',#3017,3.5E-1);
-+#3027=CIRCLE('',#3026,3.5E-1);
-+#3036=CIRCLE('',#3035,3.5E-1);
-+#3073=CIRCLE('',#3072,9.5E-2);
-+#3078=CIRCLE('',#3077,9.5E-2);
-+#3091=CIRCLE('',#3090,9.5E-2);
-+#3096=CIRCLE('',#3095,9.5E-2);
-+#3109=CIRCLE('',#3108,9.5E-2);
-+#3114=CIRCLE('',#3113,9.5E-2);
-+#3127=CIRCLE('',#3126,9.5E-2);
-+#3132=CIRCLE('',#3131,9.5E-2);
-+#3145=CIRCLE('',#3144,9.5E-2);
-+#3150=CIRCLE('',#3149,9.5E-2);
-+#3159=CIRCLE('',#3158,7.5E-1);
-+#3168=CIRCLE('',#3167,7.5E-1);
-+#3177=CIRCLE('',#3176,7.5E-1);
-+#3186=CIRCLE('',#3185,7.5E-1);
-+#3195=CIRCLE('',#3194,7.5E-1);
-+#3204=CIRCLE('',#3203,7.5E-1);
-+#3213=CIRCLE('',#3212,7.5E-1);
-+#3222=CIRCLE('',#3221,7.5E-1);
-+#3247=CIRCLE('',#3246,7.5E-1);
-+#3256=CIRCLE('',#3255,7.5E-1);
-+#3281=CIRCLE('',#3280,7.5E-1);
-+#3290=CIRCLE('',#3289,7.5E-1);
-+#3299=CIRCLE('',#3298,7.5E-1);
-+#3308=CIRCLE('',#3307,7.5E-1);
-+#3317=CIRCLE('',#3316,7.5E-1);
-+#3326=CIRCLE('',#3325,7.5E-1);
-+#3351=CIRCLE('',#3350,5.625E-1);
-+#3360=CIRCLE('',#3359,5.625E-1);
-+#3365=CIRCLE('',#3364,9.225E-1);
-+#3370=CIRCLE('',#3369,5.6875E0);
-+#3375=CIRCLE('',#3374,8.669989027347E-1);
-+#3388=CIRCLE('',#3387,7.5E-1);
-+#3397=CIRCLE('',#3396,7.5E-1);
-+#3418=CIRCLE('',#3417,8.75E-1);
-+#3427=CIRCLE('',#3426,8.75E-1);
-+#3440=CIRCLE('',#3439,5.6125E-1);
-+#3469=CIRCLE('',#3468,8.75E-1);
-+#3478=CIRCLE('',#3477,8.75E-1);
-+#3495=CIRCLE('',#3494,8.75E-1);
-+#3504=CIRCLE('',#3503,8.75E-1);
-+#3513=CIRCLE('',#3512,8.75E-1);
-+#3522=CIRCLE('',#3521,8.75E-1);
-+#3531=CIRCLE('',#3530,8.75E-1);
-+#3540=CIRCLE('',#3539,8.75E-1);
-+#3549=CIRCLE('',#3548,8.75E-1);
-+#3558=CIRCLE('',#3557,8.75E-1);
-+#3583=CIRCLE('',#3582,5.625E-1);
-+#3592=CIRCLE('',#3591,5.625E-1);
-+#3617=CIRCLE('',#3616,5.625E-1);
-+#3626=CIRCLE('',#3625,5.625E-1);
-+#3651=CIRCLE('',#3650,5.E-1);
-+#3660=CIRCLE('',#3659,5.E-1);
-+#3685=CIRCLE('',#3684,4.375E-1);
-+#3694=CIRCLE('',#3693,4.375E-1);
-+#3719=CIRCLE('',#3718,5.625E-1);
-+#3728=CIRCLE('',#3727,5.625E-1);
-+#3737=CIRCLE('',#3736,8.669989027347E-1);
-+#3742=CIRCLE('',#3741,5.6875E0);
-+#3747=CIRCLE('',#3746,9.225E-1);
-+#3756=CIRCLE('',#3755,7.5E-1);
-+#3765=CIRCLE('',#3764,7.5E-1);
-+#3802=CIRCLE('',#3801,5.625E-1);
-+#3811=CIRCLE('',#3810,5.625E-1);
-+#3820=CIRCLE('',#3819,8.669989027347E-1);
-+#3825=CIRCLE('',#3824,5.6875E0);
-+#3830=CIRCLE('',#3829,9.225E-1);
-+#3839=CIRCLE('',#3838,7.5E-1);
-+#3848=CIRCLE('',#3847,7.5E-1);
-+#3885=CIRCLE('',#3884,5.625E-1);
-+#3894=CIRCLE('',#3893,5.625E-1);
-+#3919=CIRCLE('',#3918,5.625E-1);
-+#3928=CIRCLE('',#3927,5.625E-1);
-+#3953=CIRCLE('',#3952,5.E-1);
-+#3962=CIRCLE('',#3961,5.E-1);
-+#3987=CIRCLE('',#3986,4.375E-1);
-+#3996=CIRCLE('',#3995,4.375E-1);
-+#4021=CIRCLE('',#4020,5.625E-1);
-+#4030=CIRCLE('',#4029,5.625E-1);
-+#4035=CIRCLE('',#4034,9.225E-1);
-+#4040=CIRCLE('',#4039,5.6875E0);
-+#4045=CIRCLE('',#4044,8.669989027347E-1);
-+#4058=CIRCLE('',#4057,7.5E-1);
-+#4067=CIRCLE('',#4066,7.5E-1);
-+#4088=CIRCLE('',#4087,8.8E-1);
-+#4097=CIRCLE('',#4096,8.8E-1);
-+#4106=CIRCLE('',#4105,8.8E-1);
-+#4115=CIRCLE('',#4114,8.8E-1);
-+#4124=CIRCLE('',#4123,8.8E-1);
-+#4133=CIRCLE('',#4132,8.8E-1);
-+#4142=CIRCLE('',#4141,8.8E-1);
-+#4151=CIRCLE('',#4150,8.8E-1);
-+#4160=CIRCLE('',#4159,8.8E-1);
-+#4169=CIRCLE('',#4168,8.8E-1);
-+#4178=CIRCLE('',#4177,8.8E-1);
-+#4187=CIRCLE('',#4186,8.8E-1);
-+#4208=CIRCLE('',#4207,5.6125E-1);
-+#5494=EDGE_CURVE('',#4423,#4400,#132,.T.);
-+#5496=EDGE_CURVE('',#4419,#4423,#1597,.T.);
-+#5498=EDGE_CURVE('',#4419,#4243,#136,.T.);
-+#5500=EDGE_CURVE('',#4239,#4243,#1614,.T.);
-+#5502=EDGE_CURVE('',#4239,#4259,#140,.T.);
-+#5504=EDGE_CURVE('',#4255,#4259,#1630,.T.);
-+#5506=EDGE_CURVE('',#4255,#4320,#144,.T.);
-+#5508=EDGE_CURVE('',#4324,#4320,#1376,.T.);
-+#5510=EDGE_CURVE('',#4324,#4300,#148,.T.);
-+#5512=EDGE_CURVE('',#4300,#4347,#152,.T.);
-+#5514=EDGE_CURVE('',#4343,#4347,#1912,.T.);
-+#5516=EDGE_CURVE('',#4343,#4315,#156,.T.);
-+#5518=EDGE_CURVE('',#4311,#4315,#1385,.T.);
-+#5520=EDGE_CURVE('',#4311,#4251,#160,.T.);
-+#5522=EDGE_CURVE('',#4247,#4251,#1580,.T.);
-+#5524=EDGE_CURVE('',#4247,#4235,#164,.T.);
-+#5526=EDGE_CURVE('',#4231,#4235,#1564,.T.);
-+#5528=EDGE_CURVE('',#4231,#4404,#168,.T.);
-+#5530=EDGE_CURVE('',#4408,#4404,#1556,.T.);
-+#5532=EDGE_CURVE('',#4444,#4408,#172,.T.);
-+#5534=EDGE_CURVE('',#4444,#4448,#1654,.T.);
-+#5536=EDGE_CURVE('',#4400,#4448,#176,.T.);
-+#5540=EDGE_CURVE('',#4427,#4328,#4,.T.);
-+#5542=EDGE_CURVE('',#4332,#4328,#1358,.T.);
-+#5544=EDGE_CURVE('',#4264,#4332,#1340,.T.);
-+#5546=EDGE_CURVE('',#4268,#4264,#8,.T.);
-+#5548=EDGE_CURVE('',#4431,#4268,#1317,.T.);
-+#5550=EDGE_CURVE('',#4427,#4431,#1303,.T.);
-+#5554=EDGE_CURVE('',#4639,#4640,#13,.T.);
-+#5556=EDGE_CURVE('',#4640,#4639,#18,.T.);
-+#5560=EDGE_CURVE('',#4635,#4636,#23,.T.);
-+#5562=EDGE_CURVE('',#4636,#4635,#28,.T.);
-+#5566=EDGE_CURVE('',#4631,#4632,#33,.T.);
-+#5568=EDGE_CURVE('',#4632,#4631,#38,.T.);
-+#5572=EDGE_CURVE('',#4627,#4628,#43,.T.);
-+#5574=EDGE_CURVE('',#4628,#4627,#48,.T.);
-+#5578=EDGE_CURVE('',#4623,#4624,#53,.T.);
-+#5580=EDGE_CURVE('',#4624,#4623,#58,.T.);
-+#5584=EDGE_CURVE('',#4527,#4528,#63,.T.);
-+#5586=EDGE_CURVE('',#4528,#4527,#68,.T.);
-+#5590=EDGE_CURVE('',#4523,#4524,#73,.T.);
-+#5592=EDGE_CURVE('',#4524,#4523,#78,.T.);
-+#5596=EDGE_CURVE('',#4519,#4520,#83,.T.);
-+#5598=EDGE_CURVE('',#4520,#4519,#88,.T.);
-+#5602=EDGE_CURVE('',#4515,#4516,#93,.T.);
-+#5604=EDGE_CURVE('',#4516,#4515,#98,.T.);
-+#5608=EDGE_CURVE('',#4511,#4512,#103,.T.);
-+#5610=EDGE_CURVE('',#4512,#4511,#108,.T.);
-+#5614=EDGE_CURVE('',#4507,#4508,#113,.T.);
-+#5616=EDGE_CURVE('',#4508,#4507,#118,.T.);
-+#5620=EDGE_CURVE('',#4503,#4504,#123,.T.);
-+#5622=EDGE_CURVE('',#4504,#4503,#128,.T.);
-+#5626=EDGE_CURVE('',#4487,#4488,#181,.T.);
-+#5628=EDGE_CURVE('',#4488,#4487,#186,.T.);
-+#5632=EDGE_CURVE('',#4607,#4608,#191,.T.);
-+#5634=EDGE_CURVE('',#4608,#4607,#196,.T.);
-+#5638=EDGE_CURVE('',#4796,#4803,#200,.T.);
-+#5640=EDGE_CURVE('',#4799,#4803,#1439,.T.);
-+#5642=EDGE_CURVE('',#4280,#4799,#204,.T.);
-+#5644=EDGE_CURVE('',#4284,#4280,#1466,.T.);
-+#5646=EDGE_CURVE('',#4272,#4284,#208,.T.);
-+#5648=EDGE_CURVE('',#4276,#4272,#1484,.T.);
-+#5650=EDGE_CURVE('',#4792,#4276,#212,.T.);
-+#5652=EDGE_CURVE('',#4796,#4792,#1430,.T.);
-+#5656=EDGE_CURVE('',#4808,#4411,#216,.T.);
-+#5658=EDGE_CURVE('',#4812,#4808,#1502,.T.);
-+#5660=EDGE_CURVE('',#4812,#4819,#220,.T.);
-+#5662=EDGE_CURVE('',#4815,#4819,#1511,.T.);
-+#5664=EDGE_CURVE('',#4304,#4815,#224,.T.);
-+#5666=EDGE_CURVE('',#4308,#4304,#1412,.T.);
-+#5668=EDGE_CURVE('',#4308,#4339,#228,.T.);
-+#5670=EDGE_CURVE('',#4335,#4339,#1754,.T.);
-+#5672=EDGE_CURVE('',#4335,#4772,#232,.T.);
-+#5674=EDGE_CURVE('',#4776,#4772,#1738,.T.);
-+#5676=EDGE_CURVE('',#4776,#4783,#236,.T.);
-+#5678=EDGE_CURVE('',#4779,#4783,#1707,.T.);
-+#5680=EDGE_CURVE('',#4436,#4779,#240,.T.);
-+#5682=EDGE_CURVE('',#4436,#4440,#2132,.T.);
-+#5684=EDGE_CURVE('',#4415,#4440,#244,.T.);
-+#5686=EDGE_CURVE('',#4411,#4415,#1529,.T.);
-+#5690=EDGE_CURVE('',#4823,#4824,#249,.T.);
-+#5692=EDGE_CURVE('',#4824,#4823,#254,.T.);
-+#5696=EDGE_CURVE('',#4839,#4840,#259,.T.);
-+#5698=EDGE_CURVE('',#4840,#4839,#264,.T.);
-+#5702=EDGE_CURVE('',#4843,#4844,#269,.T.);
-+#5704=EDGE_CURVE('',#4844,#4843,#274,.T.);
-+#5708=EDGE_CURVE('',#4847,#4848,#279,.T.);
-+#5710=EDGE_CURVE('',#4848,#4847,#284,.T.);
-+#5714=EDGE_CURVE('',#4851,#4852,#289,.T.);
-+#5716=EDGE_CURVE('',#4852,#4851,#294,.T.);
-+#5720=EDGE_CURVE('',#4855,#4856,#299,.T.);
-+#5722=EDGE_CURVE('',#4856,#4855,#304,.T.);
-+#5726=EDGE_CURVE('',#5121,#5122,#308,.T.);
-+#5728=EDGE_CURVE('',#5122,#5124,#313,.T.);
-+#5730=EDGE_CURVE('',#5124,#5126,#317,.T.);
-+#5732=EDGE_CURVE('',#5126,#5121,#322,.T.);
-+#5736=EDGE_CURVE('',#5132,#5139,#327,.T.);
-+#5738=EDGE_CURVE('',#5135,#5139,#3388,.T.);
-+#5740=EDGE_CURVE('',#5135,#5129,#331,.T.);
-+#5742=EDGE_CURVE('',#5129,#5130,#336,.T.);
-+#5744=EDGE_CURVE('',#5132,#5130,#341,.T.);
-+#5748=EDGE_CURVE('',#5184,#5186,#3418,.T.);
-+#5750=EDGE_CURVE('',#5184,#5147,#345,.T.);
-+#5752=EDGE_CURVE('',#5147,#5148,#350,.T.);
-+#5754=EDGE_CURVE('',#5148,#5194,#354,.T.);
-+#5756=EDGE_CURVE('',#5192,#5194,#3469,.T.);
-+#5758=EDGE_CURVE('',#5192,#5171,#358,.T.);
-+#5760=EDGE_CURVE('',#5167,#5171,#3495,.T.);
-+#5762=EDGE_CURVE('',#5167,#5179,#362,.T.);
-+#5764=EDGE_CURVE('',#5175,#5179,#3513,.T.);
-+#5766=EDGE_CURVE('',#5175,#5155,#366,.T.);
-+#5768=EDGE_CURVE('',#5151,#5155,#3531,.T.);
-+#5770=EDGE_CURVE('',#5151,#5163,#370,.T.);
-+#5772=EDGE_CURVE('',#5159,#5163,#3549,.T.);
-+#5774=EDGE_CURVE('',#5159,#5186,#374,.T.);
-+#5778=EDGE_CURVE('',#5207,#5208,#378,.T.);
-+#5780=EDGE_CURVE('',#5208,#5210,#383,.T.);
-+#5782=EDGE_CURVE('',#5210,#5212,#387,.T.);
-+#5784=EDGE_CURVE('',#5212,#5207,#392,.T.);
-+#5788=EDGE_CURVE('',#5223,#5224,#396,.T.);
-+#5790=EDGE_CURVE('',#5224,#5226,#401,.T.);
-+#5792=EDGE_CURVE('',#5226,#5228,#405,.T.);
-+#5794=EDGE_CURVE('',#5228,#5223,#410,.T.);
-+#5798=EDGE_CURVE('',#5239,#5240,#414,.T.);
-+#5800=EDGE_CURVE('',#5240,#5242,#419,.T.);
-+#5802=EDGE_CURVE('',#5242,#5244,#423,.T.);
-+#5804=EDGE_CURVE('',#5244,#5239,#428,.T.);
-+#5808=EDGE_CURVE('',#5255,#5256,#432,.T.);
-+#5810=EDGE_CURVE('',#5256,#5258,#437,.T.);
-+#5812=EDGE_CURVE('',#5258,#5260,#441,.T.);
-+#5814=EDGE_CURVE('',#5260,#5255,#446,.T.);
-+#5818=EDGE_CURVE('',#5277,#5278,#450,.T.);
-+#5820=EDGE_CURVE('',#5282,#5277,#455,.T.);
-+#5822=EDGE_CURVE('',#5280,#5282,#459,.T.);
-+#5824=EDGE_CURVE('',#5278,#5280,#464,.T.);
-+#5828=EDGE_CURVE('',#5305,#5306,#468,.T.);
-+#5830=EDGE_CURVE('',#5310,#5305,#473,.T.);
-+#5832=EDGE_CURVE('',#5308,#5310,#477,.T.);
-+#5834=EDGE_CURVE('',#5306,#5308,#482,.T.);
-+#5838=EDGE_CURVE('',#5335,#5336,#486,.T.);
-+#5840=EDGE_CURVE('',#5340,#5335,#491,.T.);
-+#5842=EDGE_CURVE('',#5338,#5340,#495,.T.);
-+#5844=EDGE_CURVE('',#5336,#5338,#500,.T.);
-+#5848=EDGE_CURVE('',#5351,#5352,#504,.T.);
-+#5850=EDGE_CURVE('',#5356,#5351,#509,.T.);
-+#5852=EDGE_CURVE('',#5354,#5356,#513,.T.);
-+#5854=EDGE_CURVE('',#5352,#5354,#518,.T.);
-+#5858=EDGE_CURVE('',#5367,#5368,#522,.T.);
-+#5860=EDGE_CURVE('',#5372,#5367,#527,.T.);
-+#5862=EDGE_CURVE('',#5370,#5372,#531,.T.);
-+#5864=EDGE_CURVE('',#5368,#5370,#536,.T.);
-+#5868=EDGE_CURVE('',#5383,#5384,#540,.T.);
-+#5870=EDGE_CURVE('',#5388,#5383,#545,.T.);
-+#5872=EDGE_CURVE('',#5386,#5388,#549,.T.);
-+#5874=EDGE_CURVE('',#5384,#5386,#554,.T.);
-+#5878=EDGE_CURVE('',#5405,#5406,#558,.T.);
-+#5880=EDGE_CURVE('',#5406,#5408,#563,.T.);
-+#5882=EDGE_CURVE('',#5408,#5410,#567,.T.);
-+#5884=EDGE_CURVE('',#5410,#5405,#572,.T.);
-+#5888=EDGE_CURVE('',#5455,#5451,#4097,.T.);
-+#5890=EDGE_CURVE('',#5324,#5455,#576,.T.);
-+#5892=EDGE_CURVE('',#5323,#5324,#581,.T.);
-+#5894=EDGE_CURVE('',#5459,#5323,#585,.T.);
-+#5896=EDGE_CURVE('',#5463,#5459,#4187,.T.);
-+#5898=EDGE_CURVE('',#5436,#5463,#589,.T.);
-+#5900=EDGE_CURVE('',#5440,#5436,#4169,.T.);
-+#5902=EDGE_CURVE('',#5444,#5440,#593,.T.);
-+#5904=EDGE_CURVE('',#5448,#5444,#4151,.T.);
-+#5906=EDGE_CURVE('',#5428,#5448,#597,.T.);
-+#5908=EDGE_CURVE('',#5432,#5428,#4133,.T.);
-+#5910=EDGE_CURVE('',#5420,#5432,#601,.T.);
-+#5912=EDGE_CURVE('',#5424,#5420,#4115,.T.);
-+#5914=EDGE_CURVE('',#5451,#5424,#605,.T.);
-+#5918=EDGE_CURVE('',#5471,#5313,#609,.T.);
-+#5920=EDGE_CURVE('',#5467,#5471,#3839,.T.);
-+#5922=EDGE_CURVE('',#5316,#5467,#614,.T.);
-+#5924=EDGE_CURVE('',#5316,#5314,#619,.T.);
-+#5926=EDGE_CURVE('',#5313,#5314,#624,.T.);
-+#5930=EDGE_CURVE('',#5479,#5285,#628,.T.);
-+#5932=EDGE_CURVE('',#5475,#5479,#3756,.T.);
-+#5934=EDGE_CURVE('',#5288,#5475,#633,.T.);
-+#5936=EDGE_CURVE('',#5288,#5286,#638,.T.);
-+#5938=EDGE_CURVE('',#5285,#5286,#643,.T.);
-+#5942=EDGE_CURVE('',#5416,#5487,#648,.T.);
-+#5944=EDGE_CURVE('',#5483,#5487,#4058,.T.);
-+#5946=EDGE_CURVE('',#5483,#5413,#652,.T.);
-+#5948=EDGE_CURVE('',#5413,#5414,#657,.T.);
-+#5950=EDGE_CURVE('',#5416,#5414,#662,.T.);
-+#5961=EDGE_CURVE('',#4427,#4428,#1298,.T.);
-+#5963=EDGE_CURVE('',#4424,#4428,#906,.T.);
-+#5965=EDGE_CURVE('',#4423,#4424,#1601,.T.);
-+#5968=EDGE_CURVE('',#4390,#4400,#1658,.T.);
-+#5970=EDGE_CURVE('',#4387,#4390,#746,.T.);
-+#5972=EDGE_CURVE('',#4387,#4388,#750,.T.);
-+#5974=EDGE_CURVE('',#4768,#4388,#1698,.T.);
-+#5976=EDGE_CURVE('',#4767,#4768,#1230,.T.);
-+#5978=EDGE_CURVE('',#4287,#4767,#1746,.T.);
-+#5980=EDGE_CURVE('',#4287,#4288,#754,.T.);
-+#5982=EDGE_CURVE('',#4288,#4290,#758,.T.);
-+#5984=EDGE_CURVE('',#4300,#4290,#1900,.T.);
-+#5987=EDGE_CURVE('',#4323,#4324,#1371,.T.);
-+#5989=EDGE_CURVE('',#4327,#4323,#914,.T.);
-+#5991=EDGE_CURVE('',#4327,#4328,#1344,.T.);
-+#5995=EDGE_CURVE('',#4747,#4748,#667,.T.);
-+#5997=EDGE_CURVE('',#4748,#4747,#672,.T.);
-+#6001=EDGE_CURVE('',#4735,#4736,#677,.T.);
-+#6003=EDGE_CURVE('',#4736,#4735,#682,.T.);
-+#6007=EDGE_CURVE('',#4755,#4756,#687,.T.);
-+#6009=EDGE_CURVE('',#4756,#4755,#692,.T.);
-+#6013=EDGE_CURVE('',#4763,#4764,#697,.T.);
-+#6015=EDGE_CURVE('',#4764,#4763,#702,.T.);
-+#6019=EDGE_CURVE('',#4731,#4732,#707,.T.);
-+#6021=EDGE_CURVE('',#4732,#4731,#712,.T.);
-+#6025=EDGE_CURVE('',#4723,#4724,#717,.T.);
-+#6027=EDGE_CURVE('',#4724,#4723,#722,.T.);
-+#6031=EDGE_CURVE('',#4703,#4704,#727,.T.);
-+#6033=EDGE_CURVE('',#4704,#4703,#732,.T.);
-+#6037=EDGE_CURVE('',#4715,#4716,#737,.T.);
-+#6039=EDGE_CURVE('',#4716,#4715,#742,.T.);
-+#6043=EDGE_CURVE('',#4947,#4959,#762,.T.);
-+#6045=EDGE_CURVE('',#4955,#4959,#3213,.T.);
-+#6047=EDGE_CURVE('',#4955,#4967,#766,.T.);
-+#6049=EDGE_CURVE('',#4963,#4967,#3195,.T.);
-+#6051=EDGE_CURVE('',#4963,#4975,#770,.T.);
-+#6053=EDGE_CURVE('',#4971,#4975,#3177,.T.);
-+#6055=EDGE_CURVE('',#4971,#4951,#774,.T.);
-+#6057=EDGE_CURVE('',#4947,#4951,#3159,.T.);
-+#6061=EDGE_CURVE('',#5036,#5048,#778,.T.);
-+#6063=EDGE_CURVE('',#5040,#5036,#3256,.T.);
-+#6065=EDGE_CURVE('',#5028,#5040,#782,.T.);
-+#6067=EDGE_CURVE('',#5032,#5028,#3290,.T.);
-+#6069=EDGE_CURVE('',#5052,#5032,#786,.T.);
-+#6071=EDGE_CURVE('',#5056,#5052,#3308,.T.);
-+#6073=EDGE_CURVE('',#5044,#5056,#790,.T.);
-+#6075=EDGE_CURVE('',#5048,#5044,#3326,.T.);
-+#6086=EDGE_CURVE('',#4747,#4743,#794,.T.);
-+#6088=EDGE_CURVE('',#4743,#4744,#803,.T.);
-+#6090=EDGE_CURVE('',#4748,#4744,#798,.T.);
-+#6102=EDGE_CURVE('',#4744,#4743,#808,.T.);
-+#6124=EDGE_CURVE('',#4735,#4739,#812,.T.);
-+#6126=EDGE_CURVE('',#4739,#4740,#821,.T.);
-+#6128=EDGE_CURVE('',#4736,#4740,#816,.T.);
-+#6140=EDGE_CURVE('',#4740,#4739,#826,.T.);
-+#6151=EDGE_CURVE('',#4934,#4940,#830,.T.);
-+#6153=EDGE_CURVE('',#4940,#4942,#834,.T.);
-+#6155=EDGE_CURVE('',#4938,#4942,#838,.T.);
-+#6157=EDGE_CURVE('',#4788,#4938,#1234,.T.);
-+#6159=EDGE_CURVE('',#4788,#4393,#842,.T.);
-+#6161=EDGE_CURVE('',#4393,#4394,#846,.T.);
-+#6163=EDGE_CURVE('',#4394,#4396,#850,.T.);
-+#6165=EDGE_CURVE('',#4396,#4398,#854,.T.);
-+#6167=EDGE_CURVE('',#4934,#4398,#1178,.T.);
-+#6175=EDGE_CURVE('',#5103,#5099,#2946,.T.);
-+#6177=EDGE_CURVE('',#5076,#5103,#858,.T.);
-+#6179=EDGE_CURVE('',#5080,#5076,#3036,.T.);
-+#6181=EDGE_CURVE('',#5084,#5080,#862,.T.);
-+#6183=EDGE_CURVE('',#5088,#5084,#3018,.T.);
-+#6185=EDGE_CURVE('',#5092,#5088,#866,.T.);
-+#6187=EDGE_CURVE('',#5096,#5092,#3000,.T.);
-+#6189=EDGE_CURVE('',#5068,#5096,#870,.T.);
-+#6191=EDGE_CURVE('',#5072,#5068,#2982,.T.);
-+#6193=EDGE_CURVE('',#5060,#5072,#874,.T.);
-+#6195=EDGE_CURVE('',#5064,#5060,#2964,.T.);
-+#6197=EDGE_CURVE('',#5099,#5064,#878,.T.);
-+#6207=EDGE_CURVE('',#4933,#4934,#1174,.T.);
-+#6209=EDGE_CURVE('',#4940,#4933,#882,.T.);
-+#6221=EDGE_CURVE('',#4432,#4428,#1312,.T.);
-+#6223=EDGE_CURVE('',#4267,#4432,#1326,.T.);
-+#6225=EDGE_CURVE('',#4267,#4263,#910,.T.);
-+#6227=EDGE_CURVE('',#4331,#4263,#1331,.T.);
-+#6229=EDGE_CURVE('',#4327,#4331,#1349,.T.);
-+#6232=EDGE_CURVE('',#4319,#4323,#1367,.T.);
-+#6234=EDGE_CURVE('',#4256,#4319,#918,.T.);
-+#6236=EDGE_CURVE('',#4256,#4260,#1638,.T.);
-+#6238=EDGE_CURVE('',#4240,#4260,#922,.T.);
-+#6240=EDGE_CURVE('',#4240,#4244,#1622,.T.);
-+#6242=EDGE_CURVE('',#4420,#4244,#926,.T.);
-+#6244=EDGE_CURVE('',#4424,#4420,#1606,.T.);
-+#6248=EDGE_CURVE('',#4495,#4496,#951,.T.);
-+#6250=EDGE_CURVE('',#4496,#4495,#956,.T.);
-+#6254=EDGE_CURVE('',#4567,#4568,#981,.T.);
-+#6256=EDGE_CURVE('',#4568,#4567,#986,.T.);
-+#6260=EDGE_CURVE('',#4615,#4616,#1011,.T.);
-+#6262=EDGE_CURVE('',#4616,#4615,#1016,.T.);
-+#6266=EDGE_CURVE('',#4647,#4648,#1021,.T.);
-+#6268=EDGE_CURVE('',#4648,#4647,#1026,.T.);
-+#6272=EDGE_CURVE('',#4659,#4660,#1031,.T.);
-+#6274=EDGE_CURVE('',#4660,#4659,#1036,.T.);
-+#6286=EDGE_CURVE('',#4398,#4447,#1182,.T.);
-+#6288=EDGE_CURVE('',#4443,#4447,#1646,.T.);
-+#6290=EDGE_CURVE('',#4443,#4407,#1186,.T.);
-+#6292=EDGE_CURVE('',#4403,#4407,#1547,.T.);
-+#6294=EDGE_CURVE('',#4232,#4403,#1190,.T.);
-+#6296=EDGE_CURVE('',#4232,#4236,#1572,.T.);
-+#6298=EDGE_CURVE('',#4248,#4236,#1194,.T.);
-+#6300=EDGE_CURVE('',#4248,#4252,#1588,.T.);
-+#6302=EDGE_CURVE('',#4312,#4252,#1198,.T.);
-+#6304=EDGE_CURVE('',#4316,#4312,#1394,.T.);
-+#6306=EDGE_CURVE('',#4344,#4316,#1202,.T.);
-+#6308=EDGE_CURVE('',#4344,#4348,#1920,.T.);
-+#6310=EDGE_CURVE('',#4298,#4348,#1206,.T.);
-+#6312=EDGE_CURVE('',#4298,#4920,#1210,.T.);
-+#6314=EDGE_CURVE('',#4919,#4920,#1214,.T.);
-+#6316=EDGE_CURVE('',#4919,#4923,#1218,.T.);
-+#6318=EDGE_CURVE('',#4923,#4924,#1222,.T.);
-+#6320=EDGE_CURVE('',#4924,#4786,#1226,.T.);
-+#6322=EDGE_CURVE('',#4767,#4786,#1742,.T.);
-+#6325=EDGE_CURVE('',#4768,#4788,#1694,.T.);
-+#6328=EDGE_CURVE('',#4937,#4938,#1238,.T.);
-+#6330=EDGE_CURVE('',#4933,#4937,#1242,.T.);
-+#6334=EDGE_CURVE('',#4373,#4374,#887,.T.);
-+#6336=EDGE_CURVE('',#4374,#4373,#892,.T.);
-+#6340=EDGE_CURVE('',#4383,#4384,#897,.T.);
-+#6342=EDGE_CURVE('',#4384,#4383,#902,.T.);
-+#6346=EDGE_CURVE('',#4473,#4474,#931,.T.);
-+#6348=EDGE_CURVE('',#4474,#4473,#936,.T.);
-+#6352=EDGE_CURVE('',#4483,#4484,#941,.T.);
-+#6354=EDGE_CURVE('',#4484,#4483,#946,.T.);
-+#6358=EDGE_CURVE('',#4543,#4544,#961,.T.);
-+#6360=EDGE_CURVE('',#4544,#4543,#966,.T.);
-+#6364=EDGE_CURVE('',#4555,#4556,#971,.T.);
-+#6366=EDGE_CURVE('',#4556,#4555,#976,.T.);
-+#6370=EDGE_CURVE('',#4587,#4588,#991,.T.);
-+#6372=EDGE_CURVE('',#4588,#4587,#996,.T.);
-+#6376=EDGE_CURVE('',#4599,#4600,#1001,.T.);
-+#6378=EDGE_CURVE('',#4600,#4599,#1006,.T.);
-+#6382=EDGE_CURVE('',#4671,#4672,#1041,.T.);
-+#6384=EDGE_CURVE('',#4672,#4671,#1046,.T.);
-+#6388=EDGE_CURVE('',#4683,#4684,#1051,.T.);
-+#6390=EDGE_CURVE('',#4684,#4683,#1056,.T.);
-+#6394=EDGE_CURVE('',#4695,#4696,#1061,.T.);
-+#6396=EDGE_CURVE('',#4696,#4695,#1066,.T.);
-+#6400=EDGE_CURVE('',#4279,#4800,#1070,.T.);
-+#6402=EDGE_CURVE('',#4804,#4800,#1448,.T.);
-+#6404=EDGE_CURVE('',#4795,#4804,#1074,.T.);
-+#6406=EDGE_CURVE('',#4791,#4795,#1421,.T.);
-+#6408=EDGE_CURVE('',#4791,#4275,#1078,.T.);
-+#6410=EDGE_CURVE('',#4271,#4275,#1475,.T.);
-+#6412=EDGE_CURVE('',#4271,#4283,#1082,.T.);
-+#6414=EDGE_CURVE('',#4279,#4283,#1457,.T.);
-+#6418=EDGE_CURVE('',#4811,#4820,#1086,.T.);
-+#6420=EDGE_CURVE('',#4807,#4811,#1493,.T.);
-+#6422=EDGE_CURVE('',#4807,#4412,#1090,.T.);
-+#6424=EDGE_CURVE('',#4416,#4412,#1538,.T.);
-+#6426=EDGE_CURVE('',#4416,#4439,#1094,.T.);
-+#6428=EDGE_CURVE('',#4435,#4439,#2124,.T.);
-+#6430=EDGE_CURVE('',#4435,#4780,#1098,.T.);
-+#6432=EDGE_CURVE('',#4784,#4780,#1716,.T.);
-+#6434=EDGE_CURVE('',#4775,#4784,#1720,.T.);
-+#6436=EDGE_CURVE('',#4771,#4775,#1729,.T.);
-+#6438=EDGE_CURVE('',#4336,#4771,#1102,.T.);
-+#6440=EDGE_CURVE('',#4336,#4340,#1762,.T.);
-+#6442=EDGE_CURVE('',#4307,#4340,#1106,.T.);
-+#6444=EDGE_CURVE('',#4303,#4307,#1403,.T.);
-+#6446=EDGE_CURVE('',#4303,#4816,#1110,.T.);
-+#6448=EDGE_CURVE('',#4820,#4816,#1520,.T.);
-+#6452=EDGE_CURVE('',#4831,#4832,#1115,.T.);
-+#6454=EDGE_CURVE('',#4832,#4831,#1120,.T.);
-+#6458=EDGE_CURVE('',#4863,#4864,#1125,.T.);
-+#6460=EDGE_CURVE('',#4864,#4863,#1130,.T.);
-+#6464=EDGE_CURVE('',#4875,#4876,#1135,.T.);
-+#6466=EDGE_CURVE('',#4876,#4875,#1140,.T.);
-+#6470=EDGE_CURVE('',#4887,#4888,#1145,.T.);
-+#6472=EDGE_CURVE('',#4888,#4887,#1150,.T.);
-+#6476=EDGE_CURVE('',#4899,#4900,#1155,.T.);
-+#6478=EDGE_CURVE('',#4900,#4899,#1160,.T.);
-+#6482=EDGE_CURVE('',#4911,#4912,#1165,.T.);
-+#6484=EDGE_CURVE('',#4912,#4911,#1170,.T.);
-+#6495=EDGE_CURVE('',#4368,#4374,#1250,.T.);
-+#6497=EDGE_CURVE('',#4370,#4368,#1268,.T.);
-+#6499=EDGE_CURVE('',#4370,#4373,#1246,.T.);
-+#6511=EDGE_CURVE('',#4370,#4368,#1259,.T.);
-+#6522=EDGE_CURVE('',#4367,#4368,#1254,.T.);
-+#6525=EDGE_CURVE('',#4367,#4370,#1263,.T.);
-+#6547=EDGE_CURVE('',#4378,#4384,#1276,.T.);
-+#6549=EDGE_CURVE('',#4380,#4378,#1294,.T.);
-+#6551=EDGE_CURVE('',#4380,#4383,#1272,.T.);
-+#6563=EDGE_CURVE('',#4380,#4378,#1285,.T.);
-+#6574=EDGE_CURVE('',#4377,#4378,#1280,.T.);
-+#6577=EDGE_CURVE('',#4377,#4380,#1289,.T.);
-+#6600=EDGE_CURVE('',#4431,#4432,#1307,.T.);
-+#6613=EDGE_CURVE('',#4267,#4268,#1321,.T.);
-+#6624=EDGE_CURVE('',#4263,#4264,#1335,.T.);
-+#6637=EDGE_CURVE('',#4331,#4332,#1353,.T.);
-+#6662=EDGE_CURVE('',#4319,#4320,#1362,.T.);
-+#6675=EDGE_CURVE('',#4311,#4312,#1380,.T.);
-+#6678=EDGE_CURVE('',#4251,#4252,#1584,.T.);
-+#6691=EDGE_CURVE('',#4255,#4256,#1626,.T.);
-+#6704=EDGE_CURVE('',#4315,#4316,#1389,.T.);
-+#6715=EDGE_CURVE('',#4307,#4308,#1407,.T.);
-+#6718=EDGE_CURVE('',#4339,#4340,#1758,.T.);
-+#6731=EDGE_CURVE('',#4343,#4344,#1908,.T.);
-+#6742=EDGE_CURVE('',#4303,#4304,#1398,.T.);
-+#6755=EDGE_CURVE('',#4791,#4792,#1416,.T.);
-+#6758=EDGE_CURVE('',#4275,#4276,#1479,.T.);
-+#6769=EDGE_CURVE('',#4815,#4816,#1506,.T.);
-+#6784=EDGE_CURVE('',#4795,#4796,#1425,.T.);
-+#6797=EDGE_CURVE('',#4803,#4804,#1443,.T.);
-+#6808=EDGE_CURVE('',#4799,#4800,#1434,.T.);
-+#6823=EDGE_CURVE('',#4279,#4280,#1452,.T.);
-+#6834=EDGE_CURVE('',#4807,#4808,#1488,.T.);
-+#6837=EDGE_CURVE('',#4411,#4412,#1524,.T.);
-+#6850=EDGE_CURVE('',#4283,#4284,#1461,.T.);
-+#6861=EDGE_CURVE('',#4271,#4272,#1470,.T.);
-+#6888=EDGE_CURVE('',#4811,#4812,#1497,.T.);
-+#6901=EDGE_CURVE('',#4819,#4820,#1515,.T.);
-+#6926=EDGE_CURVE('',#4415,#4416,#1533,.T.);
-+#6937=EDGE_CURVE('',#4407,#4408,#1551,.T.);
-+#6940=EDGE_CURVE('',#4443,#4444,#1642,.T.);
-+#6953=EDGE_CURVE('',#4439,#4440,#2128,.T.);
-+#6964=EDGE_CURVE('',#4403,#4404,#1542,.T.);
-+#6979=EDGE_CURVE('',#4231,#4232,#1560,.T.);
-+#6990=EDGE_CURVE('',#4419,#4420,#1592,.T.);
-+#6993=EDGE_CURVE('',#4243,#4244,#1618,.T.);
-+#7006=EDGE_CURVE('',#4235,#4236,#1568,.T.);
-+#7018=EDGE_CURVE('',#4247,#4248,#1576,.T.);
-+#7054=EDGE_CURVE('',#4239,#4240,#1610,.T.);
-+#7070=EDGE_CURVE('',#4259,#4260,#1634,.T.);
-+#7094=EDGE_CURVE('',#4447,#4448,#1650,.T.);
-+#7110=EDGE_CURVE('',#4390,#4396,#1662,.T.);
-+#7123=EDGE_CURVE('',#4387,#4394,#1666,.T.);
-+#7136=EDGE_CURVE('',#4388,#4393,#1670,.T.);
-+#7140=EDGE_CURVE('',#4455,#4456,#1675,.T.);
-+#7142=EDGE_CURVE('',#4456,#4455,#1680,.T.);
-+#7146=EDGE_CURVE('',#4463,#4464,#1685,.T.);
-+#7148=EDGE_CURVE('',#4464,#4463,#1690,.T.);
-+#7158=EDGE_CURVE('',#4779,#4780,#1702,.T.);
-+#7161=EDGE_CURVE('',#4435,#4436,#2120,.T.);
-+#7186=EDGE_CURVE('',#4783,#4784,#1711,.T.);
-+#7197=EDGE_CURVE('',#4775,#4776,#1733,.T.);
-+#7210=EDGE_CURVE('',#4771,#4772,#1724,.T.);
-+#7225=EDGE_CURVE('',#4335,#4336,#1750,.T.);
-+#7237=EDGE_CURVE('',#4786,#4293,#1792,.T.);
-+#7239=EDGE_CURVE('',#4287,#4293,#1928,.T.);
-+#7262=EDGE_CURVE('',#4920,#4926,#1776,.T.);
-+#7265=EDGE_CURVE('',#4296,#4298,#1780,.T.);
-+#7267=EDGE_CURVE('',#4294,#4296,#1784,.T.);
-+#7269=EDGE_CURVE('',#4293,#4294,#1788,.T.);
-+#7273=EDGE_CURVE('',#4924,#4928,#1796,.T.);
-+#7275=EDGE_CURVE('',#4926,#4928,#1800,.T.);
-+#7279=EDGE_CURVE('',#4707,#4708,#1767,.T.);
-+#7281=EDGE_CURVE('',#4708,#4707,#1772,.T.);
-+#7285=EDGE_CURVE('',#5020,#5022,#1993,.T.);
-+#7287=EDGE_CURVE('',#5020,#4983,#1804,.T.);
-+#7289=EDGE_CURVE('',#4979,#4983,#2107,.T.);
-+#7291=EDGE_CURVE('',#4979,#4991,#1808,.T.);
-+#7293=EDGE_CURVE('',#4987,#4991,#2089,.T.);
-+#7295=EDGE_CURVE('',#4987,#5015,#1812,.T.);
-+#7297=EDGE_CURVE('',#5011,#5015,#2071,.T.);
-+#7299=EDGE_CURVE('',#5011,#5007,#1816,.T.);
-+#7301=EDGE_CURVE('',#5003,#5007,#2053,.T.);
-+#7303=EDGE_CURVE('',#5003,#4999,#1820,.T.);
-+#7305=EDGE_CURVE('',#4995,#4999,#2035,.T.);
-+#7307=EDGE_CURVE('',#4995,#5022,#1824,.T.);
-+#7318=EDGE_CURVE('',#4704,#4708,#1832,.T.);
-+#7321=EDGE_CURVE('',#4703,#4707,#1828,.T.);
-+#7345=EDGE_CURVE('',#4926,#4919,#1836,.T.);
-+#7358=EDGE_CURVE('',#4928,#4923,#1860,.T.);
-+#7362=EDGE_CURVE('',#4929,#4930,#1846,.T.);
-+#7364=EDGE_CURVE('',#4930,#4929,#1856,.T.);
-+#7385=EDGE_CURVE('',#4930,#4531,#1868,.T.);
-+#7388=EDGE_CURVE('',#4532,#4929,#1864,.T.);
-+#7390=EDGE_CURVE('',#4531,#4532,#1873,.T.);
-+#7403=EDGE_CURVE('',#4532,#4531,#1878,.T.);
-+#7417=EDGE_CURVE('',#4535,#4536,#1883,.T.);
-+#7419=EDGE_CURVE('',#4536,#4535,#1888,.T.);
-+#7430=EDGE_CURVE('',#4536,#4504,#1896,.T.);
-+#7433=EDGE_CURVE('',#4535,#4503,#1892,.T.);
-+#7457=EDGE_CURVE('',#4347,#4348,#1916,.T.);
-+#7461=EDGE_CURVE('',#4290,#4296,#1904,.T.);
-+#7484=EDGE_CURVE('',#4288,#4294,#1924,.T.);
-+#7502=EDGE_CURVE('',#4355,#4356,#1933,.T.);
-+#7504=EDGE_CURVE('',#4356,#4355,#1938,.T.);
-+#7508=EDGE_CURVE('',#4363,#4364,#1943,.T.);
-+#7510=EDGE_CURVE('',#4364,#4363,#1948,.T.);
-+#7521=EDGE_CURVE('',#4356,#4352,#1956,.T.);
-+#7523=EDGE_CURVE('',#4351,#4352,#1961,.T.);
-+#7525=EDGE_CURVE('',#4355,#4351,#1952,.T.);
-+#7537=EDGE_CURVE('',#4352,#4351,#1966,.T.);
-+#7559=EDGE_CURVE('',#4364,#4360,#1974,.T.);
-+#7561=EDGE_CURVE('',#4359,#4360,#1979,.T.);
-+#7563=EDGE_CURVE('',#4363,#4359,#1970,.T.);
-+#7575=EDGE_CURVE('',#4360,#4359,#1984,.T.);
-+#7596=EDGE_CURVE('',#5019,#5020,#1988,.T.);
-+#7599=EDGE_CURVE('',#5024,#5022,#1997,.T.);
-+#7601=EDGE_CURVE('',#5024,#5019,#2002,.T.);
-+#7612=EDGE_CURVE('',#5019,#4984,#2006,.T.);
-+#7614=EDGE_CURVE('',#4983,#4984,#2111,.T.);
-+#7627=EDGE_CURVE('',#4996,#5024,#2010,.T.);
-+#7629=EDGE_CURVE('',#5000,#4996,#2044,.T.);
-+#7631=EDGE_CURVE('',#5004,#5000,#2014,.T.);
-+#7633=EDGE_CURVE('',#5008,#5004,#2062,.T.);
-+#7635=EDGE_CURVE('',#5012,#5008,#2018,.T.);
-+#7637=EDGE_CURVE('',#5016,#5012,#2080,.T.);
-+#7639=EDGE_CURVE('',#4988,#5016,#2022,.T.);
-+#7641=EDGE_CURVE('',#4992,#4988,#2098,.T.);
-+#7643=EDGE_CURVE('',#4980,#4992,#2026,.T.);
-+#7645=EDGE_CURVE('',#4984,#4980,#2116,.T.);
-+#7657=EDGE_CURVE('',#4995,#4996,#2030,.T.);
-+#7670=EDGE_CURVE('',#4999,#5000,#2039,.T.);
-+#7683=EDGE_CURVE('',#5003,#5004,#2048,.T.);
-+#7696=EDGE_CURVE('',#5007,#5008,#2057,.T.);
-+#7709=EDGE_CURVE('',#5011,#5012,#2066,.T.);
-+#7722=EDGE_CURVE('',#5015,#5016,#2075,.T.);
-+#7733=EDGE_CURVE('',#4987,#4988,#2084,.T.);
-+#7748=EDGE_CURVE('',#4991,#4992,#2093,.T.);
-+#7759=EDGE_CURVE('',#4979,#4980,#2102,.T.);
-+#7797=EDGE_CURVE('',#4455,#4451,#2136,.T.);
-+#7799=EDGE_CURVE('',#4451,#4452,#2145,.T.);
-+#7801=EDGE_CURVE('',#4456,#4452,#2140,.T.);
-+#7813=EDGE_CURVE('',#4452,#4451,#2150,.T.);
-+#7835=EDGE_CURVE('',#4463,#4459,#2154,.T.);
-+#7837=EDGE_CURVE('',#4459,#4460,#2163,.T.);
-+#7839=EDGE_CURVE('',#4464,#4460,#2158,.T.);
-+#7851=EDGE_CURVE('',#4460,#4459,#2168,.T.);
-+#7873=EDGE_CURVE('',#4470,#4473,#2176,.T.);
-+#7875=EDGE_CURVE('',#4470,#4468,#2194,.T.);
-+#7877=EDGE_CURVE('',#4468,#4474,#2172,.T.);
-+#7889=EDGE_CURVE('',#4470,#4468,#2189,.T.);
-+#7900=EDGE_CURVE('',#4467,#4468,#2180,.T.);
-+#7902=EDGE_CURVE('',#4467,#4470,#2184,.T.);
-+#7925=EDGE_CURVE('',#4480,#4483,#2202,.T.);
-+#7927=EDGE_CURVE('',#4480,#4478,#2220,.T.);
-+#7929=EDGE_CURVE('',#4478,#4484,#2198,.T.);
-+#7941=EDGE_CURVE('',#4480,#4478,#2215,.T.);
-+#7952=EDGE_CURVE('',#4477,#4478,#2206,.T.);
-+#7954=EDGE_CURVE('',#4477,#4480,#2210,.T.);
-+#7977=EDGE_CURVE('',#4496,#4492,#2228,.T.);
-+#7979=EDGE_CURVE('',#4491,#4492,#2233,.T.);
-+#7981=EDGE_CURVE('',#4495,#4491,#2224,.T.);
-+#7993=EDGE_CURVE('',#4492,#4491,#2238,.T.);
-+#8008=EDGE_CURVE('',#4499,#4500,#2243,.T.);
-+#8010=EDGE_CURVE('',#4500,#4499,#2248,.T.);
-+#8021=EDGE_CURVE('',#4500,#4488,#2256,.T.);
-+#8024=EDGE_CURVE('',#4499,#4487,#2252,.T.);
-+#8047=EDGE_CURVE('',#4544,#4540,#2264,.T.);
-+#8049=EDGE_CURVE('',#4539,#4540,#2269,.T.);
-+#8051=EDGE_CURVE('',#4543,#4539,#2260,.T.);
-+#8063=EDGE_CURVE('',#4540,#4539,#2274,.T.);
-+#8078=EDGE_CURVE('',#4547,#4548,#2279,.T.);
-+#8080=EDGE_CURVE('',#4548,#4547,#2284,.T.);
-+#8091=EDGE_CURVE('',#4548,#4508,#2292,.T.);
-+#8094=EDGE_CURVE('',#4547,#4507,#2288,.T.);
-+#8117=EDGE_CURVE('',#4556,#4552,#2300,.T.);
-+#8119=EDGE_CURVE('',#4551,#4552,#2305,.T.);
-+#8121=EDGE_CURVE('',#4555,#4551,#2296,.T.);
-+#8133=EDGE_CURVE('',#4552,#4551,#2310,.T.);
-+#8148=EDGE_CURVE('',#4559,#4560,#2315,.T.);
-+#8150=EDGE_CURVE('',#4560,#4559,#2320,.T.);
-+#8161=EDGE_CURVE('',#4560,#4512,#2328,.T.);
-+#8164=EDGE_CURVE('',#4559,#4511,#2324,.T.);
-+#8187=EDGE_CURVE('',#4568,#4564,#2336,.T.);
-+#8189=EDGE_CURVE('',#4563,#4564,#2341,.T.);
-+#8191=EDGE_CURVE('',#4567,#4563,#2332,.T.);
-+#8203=EDGE_CURVE('',#4564,#4563,#2346,.T.);
-+#8218=EDGE_CURVE('',#4571,#4572,#2351,.T.);
-+#8220=EDGE_CURVE('',#4572,#4571,#2356,.T.);
-+#8231=EDGE_CURVE('',#4572,#4516,#2364,.T.);
-+#8234=EDGE_CURVE('',#4571,#4515,#2360,.T.);
-+#8257=EDGE_CURVE('',#4588,#4584,#2372,.T.);
-+#8259=EDGE_CURVE('',#4583,#4584,#2377,.T.);
-+#8261=EDGE_CURVE('',#4587,#4583,#2368,.T.);
-+#8273=EDGE_CURVE('',#4584,#4583,#2382,.T.);
-+#8288=EDGE_CURVE('',#4591,#4592,#2387,.T.);
-+#8290=EDGE_CURVE('',#4592,#4591,#2392,.T.);
-+#8301=EDGE_CURVE('',#4592,#4524,#2400,.T.);
-+#8304=EDGE_CURVE('',#4591,#4523,#2396,.T.);
-+#8327=EDGE_CURVE('',#4600,#4596,#2408,.T.);
-+#8329=EDGE_CURVE('',#4595,#4596,#2413,.T.);
-+#8331=EDGE_CURVE('',#4599,#4595,#2404,.T.);
-+#8343=EDGE_CURVE('',#4596,#4595,#2418,.T.);
-+#8358=EDGE_CURVE('',#4603,#4604,#2423,.T.);
-+#8360=EDGE_CURVE('',#4604,#4603,#2428,.T.);
-+#8371=EDGE_CURVE('',#4604,#4528,#2436,.T.);
-+#8374=EDGE_CURVE('',#4603,#4527,#2432,.T.);
-+#8397=EDGE_CURVE('',#4616,#4612,#2444,.T.);
-+#8399=EDGE_CURVE('',#4611,#4612,#2449,.T.);
-+#8401=EDGE_CURVE('',#4615,#4611,#2440,.T.);
-+#8413=EDGE_CURVE('',#4612,#4611,#2454,.T.);
-+#8428=EDGE_CURVE('',#4619,#4620,#2459,.T.);
-+#8430=EDGE_CURVE('',#4620,#4619,#2464,.T.);
-+#8441=EDGE_CURVE('',#4620,#4608,#2472,.T.);
-+#8444=EDGE_CURVE('',#4619,#4607,#2468,.T.);
-+#8467=EDGE_CURVE('',#4648,#4644,#2480,.T.);
-+#8469=EDGE_CURVE('',#4643,#4644,#2485,.T.);
-+#8471=EDGE_CURVE('',#4647,#4643,#2476,.T.);
-+#8483=EDGE_CURVE('',#4644,#4643,#2490,.T.);
-+#8498=EDGE_CURVE('',#4651,#4652,#2495,.T.);
-+#8500=EDGE_CURVE('',#4652,#4651,#2500,.T.);
-+#8511=EDGE_CURVE('',#4652,#4624,#2508,.T.);
-+#8514=EDGE_CURVE('',#4651,#4623,#2504,.T.);
-+#8537=EDGE_CURVE('',#4660,#4656,#2516,.T.);
-+#8539=EDGE_CURVE('',#4655,#4656,#2521,.T.);
-+#8541=EDGE_CURVE('',#4659,#4655,#2512,.T.);
-+#8553=EDGE_CURVE('',#4656,#4655,#2526,.T.);
-+#8568=EDGE_CURVE('',#4663,#4664,#2531,.T.);
-+#8570=EDGE_CURVE('',#4664,#4663,#2536,.T.);
-+#8581=EDGE_CURVE('',#4664,#4636,#2544,.T.);
-+#8584=EDGE_CURVE('',#4663,#4635,#2540,.T.);
-+#8607=EDGE_CURVE('',#4672,#4668,#2552,.T.);
-+#8609=EDGE_CURVE('',#4667,#4668,#2557,.T.);
-+#8611=EDGE_CURVE('',#4671,#4667,#2548,.T.);
-+#8623=EDGE_CURVE('',#4668,#4667,#2562,.T.);
-+#8638=EDGE_CURVE('',#4675,#4676,#2567,.T.);
-+#8640=EDGE_CURVE('',#4676,#4675,#2572,.T.);
-+#8651=EDGE_CURVE('',#4676,#4628,#2580,.T.);
-+#8654=EDGE_CURVE('',#4675,#4627,#2576,.T.);
-+#8677=EDGE_CURVE('',#4684,#4680,#2588,.T.);
-+#8679=EDGE_CURVE('',#4679,#4680,#2593,.T.);
-+#8681=EDGE_CURVE('',#4683,#4679,#2584,.T.);
-+#8693=EDGE_CURVE('',#4680,#4679,#2598,.T.);
-+#8708=EDGE_CURVE('',#4687,#4688,#2603,.T.);
-+#8710=EDGE_CURVE('',#4688,#4687,#2608,.T.);
-+#8721=EDGE_CURVE('',#4688,#4632,#2616,.T.);
-+#8724=EDGE_CURVE('',#4687,#4631,#2612,.T.);
-+#8747=EDGE_CURVE('',#4696,#4692,#2624,.T.);
-+#8749=EDGE_CURVE('',#4691,#4692,#2629,.T.);
-+#8751=EDGE_CURVE('',#4695,#4691,#2620,.T.);
-+#8763=EDGE_CURVE('',#4692,#4691,#2634,.T.);
-+#8778=EDGE_CURVE('',#4699,#4700,#2639,.T.);
-+#8780=EDGE_CURVE('',#4700,#4699,#2644,.T.);
-+#8791=EDGE_CURVE('',#4700,#4640,#2652,.T.);
-+#8794=EDGE_CURVE('',#4699,#4639,#2648,.T.);
-+#8817=EDGE_CURVE('',#4832,#4828,#2660,.T.);
-+#8819=EDGE_CURVE('',#4827,#4828,#2665,.T.);
-+#8821=EDGE_CURVE('',#4831,#4827,#2656,.T.);
-+#8833=EDGE_CURVE('',#4828,#4827,#2670,.T.);
-+#8848=EDGE_CURVE('',#4835,#4836,#2675,.T.);
-+#8850=EDGE_CURVE('',#4836,#4835,#2680,.T.);
-+#8861=EDGE_CURVE('',#4836,#4824,#2688,.T.);
-+#8864=EDGE_CURVE('',#4835,#4823,#2684,.T.);
-+#8887=EDGE_CURVE('',#4864,#4860,#2696,.T.);
-+#8889=EDGE_CURVE('',#4859,#4860,#2701,.T.);
-+#8891=EDGE_CURVE('',#4863,#4859,#2692,.T.);
-+#8903=EDGE_CURVE('',#4860,#4859,#2706,.T.);
-+#8918=EDGE_CURVE('',#4867,#4868,#2711,.T.);
-+#8920=EDGE_CURVE('',#4868,#4867,#2716,.T.);
-+#8931=EDGE_CURVE('',#4868,#4840,#2724,.T.);
-+#8934=EDGE_CURVE('',#4867,#4839,#2720,.T.);
-+#8957=EDGE_CURVE('',#4876,#4872,#2732,.T.);
-+#8959=EDGE_CURVE('',#4871,#4872,#2737,.T.);
-+#8961=EDGE_CURVE('',#4875,#4871,#2728,.T.);
-+#8973=EDGE_CURVE('',#4872,#4871,#2742,.T.);
-+#8988=EDGE_CURVE('',#4879,#4880,#2747,.T.);
-+#8990=EDGE_CURVE('',#4880,#4879,#2752,.T.);
-+#9001=EDGE_CURVE('',#4880,#4844,#2760,.T.);
-+#9004=EDGE_CURVE('',#4879,#4843,#2756,.T.);
-+#9027=EDGE_CURVE('',#4888,#4884,#2768,.T.);
-+#9029=EDGE_CURVE('',#4883,#4884,#2773,.T.);
-+#9031=EDGE_CURVE('',#4887,#4883,#2764,.T.);
-+#9043=EDGE_CURVE('',#4884,#4883,#2778,.T.);
-+#9058=EDGE_CURVE('',#4891,#4892,#2783,.T.);
-+#9060=EDGE_CURVE('',#4892,#4891,#2788,.T.);
-+#9071=EDGE_CURVE('',#4892,#4848,#2796,.T.);
-+#9074=EDGE_CURVE('',#4891,#4847,#2792,.T.);
-+#9097=EDGE_CURVE('',#4900,#4896,#2804,.T.);
-+#9099=EDGE_CURVE('',#4895,#4896,#2809,.T.);
-+#9101=EDGE_CURVE('',#4899,#4895,#2800,.T.);
-+#9113=EDGE_CURVE('',#4896,#4895,#2814,.T.);
-+#9128=EDGE_CURVE('',#4903,#4904,#2819,.T.);
-+#9130=EDGE_CURVE('',#4904,#4903,#2824,.T.);
-+#9141=EDGE_CURVE('',#4904,#4852,#2832,.T.);
-+#9144=EDGE_CURVE('',#4903,#4851,#2828,.T.);
-+#9167=EDGE_CURVE('',#4912,#4908,#2840,.T.);
-+#9169=EDGE_CURVE('',#4907,#4908,#2845,.T.);
-+#9171=EDGE_CURVE('',#4911,#4907,#2836,.T.);
-+#9183=EDGE_CURVE('',#4908,#4907,#2850,.T.);
-+#9198=EDGE_CURVE('',#4915,#4916,#2855,.T.);
-+#9200=EDGE_CURVE('',#4916,#4915,#2860,.T.);
-+#9211=EDGE_CURVE('',#4916,#4856,#2868,.T.);
-+#9214=EDGE_CURVE('',#4915,#4855,#2864,.T.);
-+#9238=EDGE_CURVE('',#4942,#4937,#2872,.T.);
-+#9254=EDGE_CURVE('',#4943,#4944,#2882,.T.);
-+#9256=EDGE_CURVE('',#4944,#4943,#2892,.T.);
-+#9266=EDGE_CURVE('',#4943,#4575,#2900,.T.);
-+#9269=EDGE_CURVE('',#4576,#4944,#2896,.T.);
-+#9271=EDGE_CURVE('',#4575,#4576,#2905,.T.);
-+#9284=EDGE_CURVE('',#4576,#4575,#2910,.T.);
-+#9298=EDGE_CURVE('',#4579,#4580,#2915,.T.);
-+#9300=EDGE_CURVE('',#4580,#4579,#2920,.T.);
-+#9311=EDGE_CURVE('',#4580,#4520,#2928,.T.);
-+#9314=EDGE_CURVE('',#4579,#4519,#2924,.T.);
-+#9336=EDGE_CURVE('',#5099,#5100,#2932,.T.);
-+#9338=EDGE_CURVE('',#5100,#5104,#2937,.T.);
-+#9340=EDGE_CURVE('',#5103,#5104,#2941,.T.);
-+#9353=EDGE_CURVE('',#5062,#5064,#2959,.T.);
-+#9355=EDGE_CURVE('',#5100,#5062,#3044,.T.);
-+#9365=EDGE_CURVE('',#5059,#5060,#2950,.T.);
-+#9367=EDGE_CURVE('',#5059,#5062,#2955,.T.);
-+#9381=EDGE_CURVE('',#5070,#5072,#2977,.T.);
-+#9383=EDGE_CURVE('',#5059,#5070,#3048,.T.);
-+#9393=EDGE_CURVE('',#5067,#5068,#2968,.T.);
-+#9395=EDGE_CURVE('',#5067,#5070,#2973,.T.);
-+#9409=EDGE_CURVE('',#5094,#5096,#2995,.T.);
-+#9411=EDGE_CURVE('',#5067,#5094,#3052,.T.);
-+#9421=EDGE_CURVE('',#5091,#5092,#2986,.T.);
-+#9423=EDGE_CURVE('',#5091,#5094,#2991,.T.);
-+#9435=EDGE_CURVE('',#5086,#5088,#3013,.T.);
-+#9437=EDGE_CURVE('',#5091,#5086,#3056,.T.);
-+#9449=EDGE_CURVE('',#5083,#5084,#3004,.T.);
-+#9451=EDGE_CURVE('',#5083,#5086,#3009,.T.);
-+#9463=EDGE_CURVE('',#5078,#5080,#3031,.T.);
-+#9465=EDGE_CURVE('',#5083,#5078,#3060,.T.);
-+#9477=EDGE_CURVE('',#5075,#5076,#3022,.T.);
-+#9479=EDGE_CURVE('',#5075,#5078,#3027,.T.);
-+#9492=EDGE_CURVE('',#5075,#5104,#3040,.T.);
-+#9525=EDGE_CURVE('',#4755,#4751,#3064,.T.);
-+#9527=EDGE_CURVE('',#4751,#4752,#3073,.T.);
-+#9529=EDGE_CURVE('',#4756,#4752,#3068,.T.);
-+#9541=EDGE_CURVE('',#4752,#4751,#3078,.T.);
-+#9563=EDGE_CURVE('',#4763,#4759,#3082,.T.);
-+#9565=EDGE_CURVE('',#4759,#4760,#3091,.T.);
-+#9567=EDGE_CURVE('',#4764,#4760,#3086,.T.);
-+#9579=EDGE_CURVE('',#4760,#4759,#3096,.T.);
-+#9601=EDGE_CURVE('',#4732,#4728,#3104,.T.);
-+#9603=EDGE_CURVE('',#4727,#4728,#3109,.T.);
-+#9605=EDGE_CURVE('',#4731,#4727,#3100,.T.);
-+#9617=EDGE_CURVE('',#4728,#4727,#3114,.T.);
-+#9639=EDGE_CURVE('',#4724,#4720,#3122,.T.);
-+#9641=EDGE_CURVE('',#4719,#4720,#3127,.T.);
-+#9643=EDGE_CURVE('',#4723,#4719,#3118,.T.);
-+#9655=EDGE_CURVE('',#4720,#4719,#3132,.T.);
-+#9677=EDGE_CURVE('',#4716,#4712,#3140,.T.);
-+#9679=EDGE_CURVE('',#4711,#4712,#3145,.T.);
-+#9681=EDGE_CURVE('',#4715,#4711,#3136,.T.);
-+#9693=EDGE_CURVE('',#4712,#4711,#3150,.T.);
-+#9714=EDGE_CURVE('',#4947,#4948,#3154,.T.);
-+#9716=EDGE_CURVE('',#4948,#4960,#3238,.T.);
-+#9718=EDGE_CURVE('',#4959,#4960,#3217,.T.);
-+#9731=EDGE_CURVE('',#4951,#4952,#3163,.T.);
-+#9733=EDGE_CURVE('',#4952,#4948,#3168,.T.);
-+#9745=EDGE_CURVE('',#4971,#4972,#3172,.T.);
-+#9747=EDGE_CURVE('',#4972,#4952,#3226,.T.);
-+#9759=EDGE_CURVE('',#4975,#4976,#3181,.T.);
-+#9761=EDGE_CURVE('',#4976,#4972,#3186,.T.);
-+#9771=EDGE_CURVE('',#4963,#4964,#3190,.T.);
-+#9773=EDGE_CURVE('',#4964,#4976,#3230,.T.);
-+#9787=EDGE_CURVE('',#4967,#4968,#3199,.T.);
-+#9789=EDGE_CURVE('',#4968,#4964,#3204,.T.);
-+#9799=EDGE_CURVE('',#4955,#4956,#3208,.T.);
-+#9801=EDGE_CURVE('',#4956,#4968,#3234,.T.);
-+#9816=EDGE_CURVE('',#4960,#4956,#3222,.T.);
-+#9842=EDGE_CURVE('',#5035,#5036,#3242,.T.);
-+#9845=EDGE_CURVE('',#5046,#5048,#3321,.T.);
-+#9847=EDGE_CURVE('',#5035,#5046,#3264,.T.);
-+#9858=EDGE_CURVE('',#5035,#5038,#3247,.T.);
-+#9860=EDGE_CURVE('',#5038,#5040,#3251,.T.);
-+#9871=EDGE_CURVE('',#5027,#5030,#3281,.T.);
-+#9873=EDGE_CURVE('',#5027,#5038,#3260,.T.);
-+#9877=EDGE_CURVE('',#5043,#5046,#3317,.T.);
-+#9879=EDGE_CURVE('',#5043,#5054,#3268,.T.);
-+#9881=EDGE_CURVE('',#5051,#5054,#3299,.T.);
-+#9883=EDGE_CURVE('',#5051,#5030,#3272,.T.);
-+#9893=EDGE_CURVE('',#5027,#5028,#3276,.T.);
-+#9896=EDGE_CURVE('',#5030,#5032,#3285,.T.);
-+#9921=EDGE_CURVE('',#5051,#5052,#3294,.T.);
-+#9934=EDGE_CURVE('',#5054,#5056,#3303,.T.);
-+#9945=EDGE_CURVE('',#5043,#5044,#3312,.T.);
-+#9971=EDGE_CURVE('',#5121,#5107,#3330,.T.);
-+#9973=EDGE_CURVE('',#5107,#5108,#3346,.T.);
-+#9975=EDGE_CURVE('',#5122,#5108,#3342,.T.);
-+#9986=EDGE_CURVE('',#5126,#5112,#3334,.T.);
-+#9988=EDGE_CURVE('',#5112,#5107,#3351,.T.);
-+#10000=EDGE_CURVE('',#5124,#5110,#3338,.T.);
-+#10002=EDGE_CURVE('',#5110,#5112,#3355,.T.);
-+#10015=EDGE_CURVE('',#5108,#5110,#3360,.T.);
-+#10038=EDGE_CURVE('',#5140,#5136,#3397,.T.);
-+#10040=EDGE_CURVE('',#5118,#5140,#3365,.T.);
-+#10042=EDGE_CURVE('',#5116,#5118,#3370,.T.);
-+#10044=EDGE_CURVE('',#5115,#5116,#3375,.T.);
-+#10046=EDGE_CURVE('',#5136,#5115,#3379,.T.);
-+#10056=EDGE_CURVE('',#5135,#5136,#3383,.T.);
-+#10059=EDGE_CURVE('',#5139,#5140,#3392,.T.);
-+#10072=EDGE_CURVE('',#5129,#5115,#3401,.T.);
-+#10086=EDGE_CURVE('',#5130,#5116,#3405,.T.);
-+#10099=EDGE_CURVE('',#5132,#5118,#3409,.T.);
-+#10121=EDGE_CURVE('',#5183,#5184,#3413,.T.);
-+#10124=EDGE_CURVE('',#5188,#5186,#3422,.T.);
-+#10126=EDGE_CURVE('',#5188,#5183,#3427,.T.);
-+#10137=EDGE_CURVE('',#5183,#5143,#3444,.T.);
-+#10139=EDGE_CURVE('',#5147,#5143,#3486,.T.);
-+#10150=EDGE_CURVE('',#5191,#5172,#3431,.T.);
-+#10152=EDGE_CURVE('',#5196,#5191,#3478,.T.);
-+#10154=EDGE_CURVE('',#5144,#5196,#3435,.T.);
-+#10156=EDGE_CURVE('',#5143,#5144,#3440,.T.);
-+#10160=EDGE_CURVE('',#5160,#5188,#3448,.T.);
-+#10162=EDGE_CURVE('',#5164,#5160,#3558,.T.);
-+#10164=EDGE_CURVE('',#5152,#5164,#3452,.T.);
-+#10166=EDGE_CURVE('',#5156,#5152,#3540,.T.);
-+#10168=EDGE_CURVE('',#5176,#5156,#3456,.T.);
-+#10170=EDGE_CURVE('',#5180,#5176,#3522,.T.);
-+#10172=EDGE_CURVE('',#5168,#5180,#3460,.T.);
-+#10174=EDGE_CURVE('',#5172,#5168,#3504,.T.);
-+#10184=EDGE_CURVE('',#5191,#5192,#3464,.T.);
-+#10187=EDGE_CURVE('',#5171,#5172,#3499,.T.);
-+#10200=EDGE_CURVE('',#5196,#5194,#3473,.T.);
-+#10213=EDGE_CURVE('',#5148,#5144,#3482,.T.);
-+#10236=EDGE_CURVE('',#5167,#5168,#3490,.T.);
-+#10251=EDGE_CURVE('',#5179,#5180,#3517,.T.);
-+#10262=EDGE_CURVE('',#5175,#5176,#3508,.T.);
-+#10275=EDGE_CURVE('',#5155,#5156,#3535,.T.);
-+#10288=EDGE_CURVE('',#5151,#5152,#3526,.T.);
-+#10303=EDGE_CURVE('',#5163,#5164,#3553,.T.);
-+#10314=EDGE_CURVE('',#5159,#5160,#3544,.T.);
-+#10340=EDGE_CURVE('',#5207,#5199,#3562,.T.);
-+#10342=EDGE_CURVE('',#5199,#5200,#3578,.T.);
-+#10344=EDGE_CURVE('',#5208,#5200,#3574,.T.);
-+#10355=EDGE_CURVE('',#5212,#5204,#3566,.T.);
-+#10357=EDGE_CURVE('',#5204,#5199,#3583,.T.);
-+#10369=EDGE_CURVE('',#5210,#5202,#3570,.T.);
-+#10371=EDGE_CURVE('',#5202,#5204,#3587,.T.);
-+#10384=EDGE_CURVE('',#5200,#5202,#3592,.T.);
-+#10408=EDGE_CURVE('',#5223,#5215,#3596,.T.);
-+#10410=EDGE_CURVE('',#5215,#5216,#3612,.T.);
-+#10412=EDGE_CURVE('',#5224,#5216,#3608,.T.);
-+#10423=EDGE_CURVE('',#5228,#5220,#3600,.T.);
-+#10425=EDGE_CURVE('',#5220,#5215,#3617,.T.);
-+#10437=EDGE_CURVE('',#5226,#5218,#3604,.T.);
-+#10439=EDGE_CURVE('',#5218,#5220,#3621,.T.);
-+#10452=EDGE_CURVE('',#5216,#5218,#3626,.T.);
-+#10476=EDGE_CURVE('',#5239,#5231,#3630,.T.);
-+#10478=EDGE_CURVE('',#5231,#5232,#3646,.T.);
-+#10480=EDGE_CURVE('',#5240,#5232,#3642,.T.);
-+#10491=EDGE_CURVE('',#5244,#5236,#3634,.T.);
-+#10493=EDGE_CURVE('',#5236,#5231,#3651,.T.);
-+#10505=EDGE_CURVE('',#5242,#5234,#3638,.T.);
-+#10507=EDGE_CURVE('',#5234,#5236,#3655,.T.);
-+#10520=EDGE_CURVE('',#5232,#5234,#3660,.T.);
-+#10544=EDGE_CURVE('',#5255,#5247,#3664,.T.);
-+#10546=EDGE_CURVE('',#5247,#5248,#3680,.T.);
-+#10548=EDGE_CURVE('',#5256,#5248,#3676,.T.);
-+#10559=EDGE_CURVE('',#5260,#5252,#3668,.T.);
-+#10561=EDGE_CURVE('',#5252,#5247,#3685,.T.);
-+#10573=EDGE_CURVE('',#5258,#5250,#3672,.T.);
-+#10575=EDGE_CURVE('',#5250,#5252,#3689,.T.);
-+#10588=EDGE_CURVE('',#5248,#5250,#3694,.T.);
-+#10612=EDGE_CURVE('',#5278,#5264,#3702,.T.);
-+#10614=EDGE_CURVE('',#5263,#5264,#3714,.T.);
-+#10616=EDGE_CURVE('',#5277,#5263,#3698,.T.);
-+#10627=EDGE_CURVE('',#5280,#5266,#3706,.T.);
-+#10629=EDGE_CURVE('',#5264,#5266,#3719,.T.);
-+#10641=EDGE_CURVE('',#5282,#5268,#3710,.T.);
-+#10643=EDGE_CURVE('',#5266,#5268,#3723,.T.);
-+#10656=EDGE_CURVE('',#5268,#5263,#3728,.T.);
-+#10679=EDGE_CURVE('',#5480,#5476,#3765,.T.);
-+#10681=EDGE_CURVE('',#5480,#5271,#3732,.T.);
-+#10683=EDGE_CURVE('',#5271,#5272,#3737,.T.);
-+#10685=EDGE_CURVE('',#5272,#5274,#3742,.T.);
-+#10687=EDGE_CURVE('',#5274,#5476,#3747,.T.);
-+#10697=EDGE_CURVE('',#5475,#5476,#3751,.T.);
-+#10700=EDGE_CURVE('',#5479,#5480,#3760,.T.);
-+#10713=EDGE_CURVE('',#5288,#5274,#3769,.T.);
-+#10727=EDGE_CURVE('',#5286,#5272,#3773,.T.);
-+#10740=EDGE_CURVE('',#5285,#5271,#3777,.T.);
-+#10763=EDGE_CURVE('',#5306,#5292,#3785,.T.);
-+#10765=EDGE_CURVE('',#5291,#5292,#3797,.T.);
-+#10767=EDGE_CURVE('',#5305,#5291,#3781,.T.);
-+#10778=EDGE_CURVE('',#5308,#5294,#3789,.T.);
-+#10780=EDGE_CURVE('',#5292,#5294,#3802,.T.);
-+#10792=EDGE_CURVE('',#5310,#5296,#3793,.T.);
-+#10794=EDGE_CURVE('',#5294,#5296,#3806,.T.);
-+#10807=EDGE_CURVE('',#5296,#5291,#3811,.T.);
-+#10830=EDGE_CURVE('',#5472,#5468,#3848,.T.);
-+#10832=EDGE_CURVE('',#5472,#5299,#3815,.T.);
-+#10834=EDGE_CURVE('',#5299,#5300,#3820,.T.);
-+#10836=EDGE_CURVE('',#5300,#5302,#3825,.T.);
-+#10838=EDGE_CURVE('',#5302,#5468,#3830,.T.);
-+#10848=EDGE_CURVE('',#5467,#5468,#3834,.T.);
-+#10851=EDGE_CURVE('',#5471,#5472,#3843,.T.);
-+#10864=EDGE_CURVE('',#5316,#5302,#3852,.T.);
-+#10878=EDGE_CURVE('',#5314,#5300,#3856,.T.);
-+#10891=EDGE_CURVE('',#5313,#5299,#3860,.T.);
-+#10914=EDGE_CURVE('',#5336,#5328,#3868,.T.);
-+#10916=EDGE_CURVE('',#5327,#5328,#3880,.T.);
-+#10918=EDGE_CURVE('',#5335,#5327,#3864,.T.);
-+#10929=EDGE_CURVE('',#5338,#5330,#3872,.T.);
-+#10931=EDGE_CURVE('',#5328,#5330,#3885,.T.);
-+#10943=EDGE_CURVE('',#5340,#5332,#3876,.T.);
-+#10945=EDGE_CURVE('',#5330,#5332,#3889,.T.);
-+#10958=EDGE_CURVE('',#5332,#5327,#3894,.T.);
-+#10982=EDGE_CURVE('',#5352,#5344,#3902,.T.);
-+#10984=EDGE_CURVE('',#5343,#5344,#3914,.T.);
-+#10986=EDGE_CURVE('',#5351,#5343,#3898,.T.);
-+#10997=EDGE_CURVE('',#5354,#5346,#3906,.T.);
-+#10999=EDGE_CURVE('',#5344,#5346,#3919,.T.);
-+#11011=EDGE_CURVE('',#5356,#5348,#3910,.T.);
-+#11013=EDGE_CURVE('',#5346,#5348,#3923,.T.);
-+#11026=EDGE_CURVE('',#5348,#5343,#3928,.T.);
-+#11050=EDGE_CURVE('',#5368,#5360,#3936,.T.);
-+#11052=EDGE_CURVE('',#5359,#5360,#3948,.T.);
-+#11054=EDGE_CURVE('',#5367,#5359,#3932,.T.);
-+#11065=EDGE_CURVE('',#5370,#5362,#3940,.T.);
-+#11067=EDGE_CURVE('',#5360,#5362,#3953,.T.);
-+#11079=EDGE_CURVE('',#5372,#5364,#3944,.T.);
-+#11081=EDGE_CURVE('',#5362,#5364,#3957,.T.);
-+#11094=EDGE_CURVE('',#5364,#5359,#3962,.T.);
-+#11118=EDGE_CURVE('',#5384,#5376,#3970,.T.);
-+#11120=EDGE_CURVE('',#5375,#5376,#3982,.T.);
-+#11122=EDGE_CURVE('',#5383,#5375,#3966,.T.);
-+#11133=EDGE_CURVE('',#5386,#5378,#3974,.T.);
-+#11135=EDGE_CURVE('',#5376,#5378,#3987,.T.);
-+#11147=EDGE_CURVE('',#5388,#5380,#3978,.T.);
-+#11149=EDGE_CURVE('',#5378,#5380,#3991,.T.);
-+#11162=EDGE_CURVE('',#5380,#5375,#3996,.T.);
-+#11186=EDGE_CURVE('',#5405,#5391,#4000,.T.);
-+#11188=EDGE_CURVE('',#5391,#5392,#4016,.T.);
-+#11190=EDGE_CURVE('',#5406,#5392,#4012,.T.);
-+#11201=EDGE_CURVE('',#5410,#5396,#4004,.T.);
-+#11203=EDGE_CURVE('',#5396,#5391,#4021,.T.);
-+#11215=EDGE_CURVE('',#5408,#5394,#4008,.T.);
-+#11217=EDGE_CURVE('',#5394,#5396,#4025,.T.);
-+#11230=EDGE_CURVE('',#5392,#5394,#4030,.T.);
-+#11253=EDGE_CURVE('',#5488,#5484,#4067,.T.);
-+#11255=EDGE_CURVE('',#5402,#5488,#4035,.T.);
-+#11257=EDGE_CURVE('',#5400,#5402,#4040,.T.);
-+#11259=EDGE_CURVE('',#5399,#5400,#4045,.T.);
-+#11261=EDGE_CURVE('',#5484,#5399,#4049,.T.);
-+#11271=EDGE_CURVE('',#5483,#5484,#4053,.T.);
-+#11274=EDGE_CURVE('',#5487,#5488,#4062,.T.);
-+#11287=EDGE_CURVE('',#5413,#5399,#4071,.T.);
-+#11301=EDGE_CURVE('',#5414,#5400,#4075,.T.);
-+#11314=EDGE_CURVE('',#5416,#5402,#4079,.T.);
-+#11336=EDGE_CURVE('',#5451,#5452,#4083,.T.);
-+#11338=EDGE_CURVE('',#5452,#5456,#4088,.T.);
-+#11340=EDGE_CURVE('',#5455,#5456,#4092,.T.);
-+#11353=EDGE_CURVE('',#5422,#5424,#4110,.T.);
-+#11355=EDGE_CURVE('',#5452,#5422,#4216,.T.);
-+#11365=EDGE_CURVE('',#5419,#5420,#4101,.T.);
-+#11367=EDGE_CURVE('',#5419,#5422,#4106,.T.);
-+#11381=EDGE_CURVE('',#5430,#5432,#4128,.T.);
-+#11383=EDGE_CURVE('',#5419,#5430,#4220,.T.);
-+#11393=EDGE_CURVE('',#5427,#5428,#4119,.T.);
-+#11395=EDGE_CURVE('',#5427,#5430,#4124,.T.);
-+#11409=EDGE_CURVE('',#5446,#5448,#4146,.T.);
-+#11411=EDGE_CURVE('',#5427,#5446,#4224,.T.);
-+#11421=EDGE_CURVE('',#5443,#5444,#4137,.T.);
-+#11423=EDGE_CURVE('',#5443,#5446,#4142,.T.);
-+#11435=EDGE_CURVE('',#5438,#5440,#4164,.T.);
-+#11437=EDGE_CURVE('',#5443,#5438,#4228,.T.);
-+#11449=EDGE_CURVE('',#5435,#5436,#4155,.T.);
-+#11451=EDGE_CURVE('',#5435,#5438,#4160,.T.);
-+#11463=EDGE_CURVE('',#5463,#5464,#4182,.T.);
-+#11465=EDGE_CURVE('',#5435,#5464,#4199,.T.);
-+#11477=EDGE_CURVE('',#5459,#5460,#4173,.T.);
-+#11479=EDGE_CURVE('',#5460,#5464,#4178,.T.);
-+#11493=EDGE_CURVE('',#5323,#5319,#4191,.T.);
-+#11495=EDGE_CURVE('',#5460,#5319,#4203,.T.);
-+#11506=EDGE_CURVE('',#5324,#5320,#4195,.T.);
-+#11508=EDGE_CURVE('',#5319,#5320,#4208,.T.);
-+#11520=EDGE_CURVE('',#5320,#5456,#4212,.T.);
-+#11562=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11550),#11561);
-+#11569=PRODUCT_DEFINITION('design','',#11568,#11565);
-+#11570=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR PROESOURCE.',#11569);
-+#11571=SHAPE_DEFINITION_REPRESENTATION(#11570,#11562);
-+ENDSEC;
-+END-ISO-10303-21;
-diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.rc netgen-5.3.1_SRC_modif/windows/netgen.rc
---- netgen-5.3.1_SRC_orig/windows/netgen.rc    2014-10-06 14:59:42.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/netgen.rc   2019-11-14 16:56:26.870327358 +0300
-@@ -1,105 +1,105 @@
--// Microsoft Visual C++ generated resource script.\r
--//\r
--#include "resource.h"\r
--\r
--#define APSTUDIO_READONLY_SYMBOLS\r
--/////////////////////////////////////////////////////////////////////////////\r
--//\r
--// Generated from the TEXTINCLUDE 2 resource.\r
--//\r
--#include "afxres.h"\r\r
--/////////////////////////////////////////////////////////////////////////////\r
--#undef APSTUDIO_READONLY_SYMBOLS\r
--\r
--/////////////////////////////////////////////////////////////////////////////\r
--// German (Germany) resources\r
--\r
--#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r
--LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
--#pragma code_page(1252)\r
--\r
--/////////////////////////////////////////////////////////////////////////////\r
--//\r
--// Icon\r
--//\r
--\r
--// Icon with lowest ID value placed first to ensure application icon\r
--// remains consistent on all systems.\r
--100                     ICON                    "netgen.ico"\r
--\r
--/////////////////////////////////////////////////////////////////////////////\r
--//\r
--// Version\r
--//\r
--\r
--VS_VERSION_INFO VERSIONINFO\r
-- FILEVERSION 5,3,0,0\r
-- PRODUCTVERSION 5,3,0,0\r
-- FILEFLAGSMASK 0x3fL\r
--#ifdef _DEBUG\r
-- FILEFLAGS 0x3L\r
--#else\r
-- FILEFLAGS 0x2L\r
--#endif\r
-- FILEOS 0x4L\r
-- FILETYPE 0x1L\r
-- FILESUBTYPE 0x0L\r
--BEGIN\r
--    BLOCK "StringFileInfo"\r
--    BEGIN\r
--        BLOCK "040904b0"\r
--        BEGIN\r
--            VALUE "CompanyName", "Vienna UT"\r
--            VALUE "FileDescription", "Netgen Meshing Software"\r
--            VALUE "FileVersion", "5.3"\r
--            VALUE "InternalName", "Netgen"\r
--            VALUE "LegalCopyright", "GNU Public License (GPL)"\r
--            VALUE "OriginalFilename", "Netgen.exe"\r
--            VALUE "ProductName", "Netgen"\r
--            VALUE "ProductVersion", "5.3"\r
--        END\r
--    END\r
--    BLOCK "VarFileInfo"\r
--    BEGIN\r
--        VALUE "Translation", 0x409, 1200\r
--    END\r
--END\r
--\r
--\r
--#ifdef APSTUDIO_INVOKED\r
--/////////////////////////////////////////////////////////////////////////////\r
--//\r
--// TEXTINCLUDE\r
--//\r
--\r
--1 TEXTINCLUDE \r
--BEGIN\r
--    "resource.\0"\r
--END\r
--\r
--3 TEXTINCLUDE \r
--BEGIN\r
--    "\r\0"\r
--END\r
--\r
--2 TEXTINCLUDE \r
--BEGIN\r
--    "#include ""afxres.h""\r\0"\r
--END\r
--\r
--#endif    // APSTUDIO_INVOKED\r
--\r
--#endif    // German (Germany) resources\r
--/////////////////////////////////////////////////////////////////////////////\r
--\r
--\r
--\r
--#ifndef APSTUDIO_INVOKED\r
--/////////////////////////////////////////////////////////////////////////////\r
--//\r
--// Generated from the TEXTINCLUDE 3 resource.\r
--//\r
--\r\r
--/////////////////////////////////////////////////////////////////////////////\r
--#endif    // not APSTUDIO_INVOKED\r
--\r
-+// Microsoft Visual C++ generated resource script.
-+//
-+#include "resource.h"
-+
-+#define APSTUDIO_READONLY_SYMBOLS
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// Generated from the TEXTINCLUDE 2 resource.
-+//
-+#include "afxres.h"\r
-+/////////////////////////////////////////////////////////////////////////////
-+#undef APSTUDIO_READONLY_SYMBOLS
-+
-+/////////////////////////////////////////////////////////////////////////////
-+// German (Germany) resources
-+
-+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
-+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-+#pragma code_page(1252)
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// Icon
-+//
-+
-+// Icon with lowest ID value placed first to ensure application icon
-+// remains consistent on all systems.
-+100                     ICON                    "netgen.ico"
-+
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// Version
-+//
-+
-+VS_VERSION_INFO VERSIONINFO
-+ FILEVERSION 5,3,0,0
-+ PRODUCTVERSION 5,3,0,0
-+ FILEFLAGSMASK 0x3fL
-+#ifdef _DEBUG
-+ FILEFLAGS 0x3L
-+#else
-+ FILEFLAGS 0x2L
-+#endif
-+ FILEOS 0x4L
-+ FILETYPE 0x1L
-+ FILESUBTYPE 0x0L
-+BEGIN
-+    BLOCK "StringFileInfo"
-+    BEGIN
-+        BLOCK "040904b0"
-+        BEGIN
-+            VALUE "CompanyName", "Vienna UT"
-+            VALUE "FileDescription", "Netgen Meshing Software"
-+            VALUE "FileVersion", "5.3"
-+            VALUE "InternalName", "Netgen"
-+            VALUE "LegalCopyright", "GNU Public License (GPL)"
-+            VALUE "OriginalFilename", "Netgen.exe"
-+            VALUE "ProductName", "Netgen"
-+            VALUE "ProductVersion", "5.3"
-+        END
-+    END
-+    BLOCK "VarFileInfo"
-+    BEGIN
-+        VALUE "Translation", 0x409, 1200
-+    END
-+END
-+
-+
-+#ifdef APSTUDIO_INVOKED
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// TEXTINCLUDE
-+//
-+
-+1 TEXTINCLUDE 
-+BEGIN
-+    "resource.\0"
-+END
-+
-+3 TEXTINCLUDE 
-+BEGIN
-+    "\r\0"
-+END
-+
-+2 TEXTINCLUDE 
-+BEGIN
-+    "#include ""afxres.h""\r\0"
-+END
-+
-+#endif    // APSTUDIO_INVOKED
-+
-+#endif    // German (Germany) resources
-+/////////////////////////////////////////////////////////////////////////////
-+
-+
-+
-+#ifndef APSTUDIO_INVOKED
-+/////////////////////////////////////////////////////////////////////////////
-+//
-+// Generated from the TEXTINCLUDE 3 resource.
-+//
-+\r
-+/////////////////////////////////////////////////////////////////////////////
-+#endif    // not APSTUDIO_INVOKED
-+
-diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.sln netgen-5.3.1_SRC_modif/windows/netgen.sln
---- netgen-5.3.1_SRC_orig/windows/netgen.sln   2014-08-29 13:53:59.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/netgen.sln  2019-11-14 16:56:26.930325678 +0300
-@@ -1,38 +1,38 @@
--\r
--Microsoft Visual Studio Solution File, Format Version 13.00\r
--# Visual Studio 2013\r
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netgen", "netgen.vcxproj", "{87468946-A594-4101-81A4-A131F35261EF}"\r
--EndProject\r
--Global\r
--      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
--              Debug(OCC)|Win32 = Debug(OCC)|Win32\r
--              Debug(OCC)|x64 = Debug(OCC)|x64\r
--              Debug|Win32 = Debug|Win32\r
--              Debug|x64 = Debug|x64\r
--              Release(OCC)|Win32 = Release(OCC)|Win32\r
--              Release(OCC)|x64 = Release(OCC)|x64\r
--              Release|Win32 = Release|Win32\r
--              Release|x64 = Release|x64\r
--      EndGlobalSection\r
--      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.ActiveCfg = Debug(OCC)|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.Build.0 = Debug(OCC)|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.ActiveCfg = Debug(OCC)|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.Build.0 = Debug(OCC)|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.ActiveCfg = Debug|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.Build.0 = Debug|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.ActiveCfg = Debug|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.Build.0 = Debug|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.Build.0 = Release(OCC)|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.ActiveCfg = Release|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.Build.0 = Release|Win32\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.ActiveCfg = Release|x64\r
--              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.Build.0 = Release|x64\r
--      EndGlobalSection\r
--      GlobalSection(SolutionProperties) = preSolution\r
--              HideSolutionNode = FALSE\r
--      EndGlobalSection\r
--EndGlobal\r
-+
-+Microsoft Visual Studio Solution File, Format Version 13.00
-+# Visual Studio 2013
-+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "netgen", "netgen.vcxproj", "{87468946-A594-4101-81A4-A131F35261EF}"
-+EndProject
-+Global
-+      GlobalSection(SolutionConfigurationPlatforms) = preSolution
-+              Debug(OCC)|Win32 = Debug(OCC)|Win32
-+              Debug(OCC)|x64 = Debug(OCC)|x64
-+              Debug|Win32 = Debug|Win32
-+              Debug|x64 = Debug|x64
-+              Release(OCC)|Win32 = Release(OCC)|Win32
-+              Release(OCC)|x64 = Release(OCC)|x64
-+              Release|Win32 = Release|Win32
-+              Release|x64 = Release|x64
-+      EndGlobalSection
-+      GlobalSection(ProjectConfigurationPlatforms) = postSolution
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.ActiveCfg = Debug(OCC)|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|Win32.Build.0 = Debug(OCC)|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.ActiveCfg = Debug(OCC)|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug(OCC)|x64.Build.0 = Debug(OCC)|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.ActiveCfg = Debug|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug|Win32.Build.0 = Debug|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.ActiveCfg = Debug|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Debug|x64.Build.0 = Debug|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release(OCC)|x64.Build.0 = Release(OCC)|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.ActiveCfg = Release|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release|Win32.Build.0 = Release|Win32
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.ActiveCfg = Release|x64
-+              {87468946-A594-4101-81A4-A131F35261EF}.Release|x64.Build.0 = Release|x64
-+      EndGlobalSection
-+      GlobalSection(SolutionProperties) = preSolution
-+              HideSolutionNode = FALSE
-+      EndGlobalSection
-+EndGlobal
-diff -Naur netgen-5.3.1_SRC_orig/windows/netgen.vcxproj netgen-5.3.1_SRC_modif/windows/netgen.vcxproj
---- netgen-5.3.1_SRC_orig/windows/netgen.vcxproj       2014-10-06 14:59:42.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/netgen.vcxproj      2019-11-14 16:56:26.914326126 +0300
-@@ -1,863 +1,863 @@
--<?xml version="1.0" encoding="utf-8"?>\r
--<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
--  <ItemGroup Label="ProjectConfigurations">\r
--    <ProjectConfiguration Include="Debug(OCC)|Win32">\r
--      <Configuration>Debug(OCC)</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Debug(OCC)|x64">\r
--      <Configuration>Debug(OCC)</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Debug|Win32">\r
--      <Configuration>Debug</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Debug|x64">\r
--      <Configuration>Debug</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release(OCC)|Win32">\r
--      <Configuration>Release(OCC)</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release(OCC)|x64">\r
--      <Configuration>Release(OCC)</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release|Win32">\r
--      <Configuration>Release</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release|x64">\r
--      <Configuration>Release</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--  </ItemGroup>\r
--  <PropertyGroup Label="Globals">\r
--    <ProjectGuid>{87468946-A594-4101-81A4-A131F35261EF}</ProjectGuid>\r
--    <RootNamespace>netgen</RootNamespace>\r
--    <Keyword>Win32Proj</Keyword>\r
--  </PropertyGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
--    <ConfigurationType>Application</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--  </PropertyGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
--  <ImportGroup Label="ExtensionSettings">\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <PropertyGroup Label="UserMacros" />\r
--  <PropertyGroup>\r
--    <_ProjectFileVersion>11.0.60610.1</_ProjectFileVersion>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
--    <OutDir>Debug\</OutDir>\r
--    <IntDir>Debug\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
--    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
--    <OutDir>Release\</OutDir>\r
--    <IntDir>Release\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
--    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
--    <OutDir>$(Configuration)\</OutDir>\r
--    <IntDir>$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
--    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">\r
--    <OutDir>$(Configuration)\</OutDir>\r
--    <IntDir>$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">\r
--    <OutDir>$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--    <LinkIncremental />\r
--    <GenerateManifest>true</GenerateManifest>\r
--  </PropertyGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <IntrinsicFunctions>false</IntrinsicFunctions>\r
--      <WholeProgramOptimization>false</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <LinkTimeCodeGeneration />\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX86</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <IntrinsicFunctions>false</IntrinsicFunctions>\r
--      <WholeProgramOptimization>false</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <LinkTimeCodeGeneration />\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <WholeProgramOptimization>true</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <StringPooling>true</StringPooling>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>false</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <OptimizeReferences>true</OptimizeReferences>\r
--      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
--      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX86</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <WholeProgramOptimization>true</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(SolutionDir)..\..\ext_libs\zlib\include</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <StringPooling>true</StringPooling>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;tcl85.lib;tk85.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>false</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <OptimizeReferences>false</OptimizeReferences>\r
--      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
--      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--      <StackReserveSize>4000000</StackReserveSize>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <WholeProgramOptimization>true</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <StringPooling>true</StringPooling>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;$(CASROOT)\win32\vc8\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>false</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <OptimizeReferences>true</OptimizeReferences>\r
--      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
--      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX86</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <WholeProgramOptimization>true</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <StringPooling>true</StringPooling>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;zlib1.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(CASROOT)\win64\vc9\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>false</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <OptimizeReferences>true</OptimizeReferences>\r
--      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
--      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
--      <StackReserveSize>4000000</StackReserveSize>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <IntrinsicFunctions>false</IntrinsicFunctions>\r
--      <WholeProgramOptimization>false</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;$(CASROOT)\win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <LinkTimeCodeGeneration />\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX86</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <IntrinsicFunctions>false</IntrinsicFunctions>\r
--      <WholeProgramOptimization>false</WholeProgramOptimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <ProjectReference>\r
--      <LinkLibraryDependencies>false</LinkLibraryDependencies>\r
--    </ProjectReference>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <ShowProgress>NotSet</ShowProgress>\r
--      <Version />\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;$(CASROOT)\win64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <EnableUAC>true</EnableUAC>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Console</SubSystem>\r
--      <LinkTimeCodeGeneration />\r
--      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--      <AllowIsolation>true</AllowIsolation>\r
--    </Link>\r
--    <PostBuildEvent>\r
--      <Message>Running POSTBUILD Script....</Message>\r
--      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemGroup>\r
--    <ClInclude Include="..\libsrc\csg\algprim.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\brick.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csg.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\geoml.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\identify.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\manifold.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\revolution.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\singularref.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\solid.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\surface.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\vscsg.hpp" />\r
--    <ClInclude Include="..\libsrc\general\archive_base.hpp" />\r
--    <ClInclude Include="..\libsrc\general\array.hpp" />\r
--    <ClInclude Include="..\libsrc\general\autodiff.hpp" />\r
--    <ClInclude Include="..\libsrc\general\autoptr.hpp" />\r
--    <ClInclude Include="..\libsrc\general\bitarray.hpp" />\r
--    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />\r
--    <ClInclude Include="..\libsrc\general\flags.hpp" />\r
--    <ClInclude Include="..\libsrc\general\gzstream.h" />\r
--    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />\r
--    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />\r
--    <ClInclude Include="..\libsrc\general\myadt.hpp" />\r
--    <ClInclude Include="..\libsrc\general\mystring.hpp" />\r
--    <ClInclude Include="..\libsrc\general\netgenout.hpp" />\r
--    <ClInclude Include="..\libsrc\general\ngexception.hpp" />\r
--    <ClInclude Include="..\libsrc\general\optmem.hpp" />\r
--    <ClInclude Include="..\libsrc\general\parthreads.hpp" />\r
--    <ClInclude Include="..\libsrc\general\profiler.hpp" />\r
--    <ClInclude Include="..\libsrc\general\seti.hpp" />\r
--    <ClInclude Include="..\libsrc\general\sort.hpp" />\r
--    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />\r
--    <ClInclude Include="..\libsrc\general\stack.hpp" />\r
--    <ClInclude Include="..\libsrc\general\symbolta.hpp" />\r
--    <ClInclude Include="..\libsrc\general\table.hpp" />\r
--    <ClInclude Include="..\libsrc\general\template.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\vsgeom2d.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\spline.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\splinegeometry.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />\r
--    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\include\csg.hpp" />\r
--    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />\r
--    <ClInclude Include="..\libsrc\include\gprim.hpp" />\r
--    <ClInclude Include="..\libsrc\include\incvis.hpp" />\r
--    <ClInclude Include="..\libsrc\include\linalg.hpp" />\r
--    <ClInclude Include="..\libsrc\include\meshing.hpp" />\r
--    <ClInclude Include="..\libsrc\include\myadt.hpp" />\r
--    <ClInclude Include="..\libsrc\include\mydefs.hpp" />\r
--    <ClInclude Include="..\libsrc\include\mystdlib.h" />\r
--    <ClInclude Include="..\libsrc\include\nginterface.h" />\r
--    <ClInclude Include="..\libsrc\include\nginterface_v2.hpp" />\r
--    <ClInclude Include="..\libsrc\include\nginterface_v2_impl.hpp" />\r
--    <ClInclude Include="..\libsrc\include\occgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\include\opti.hpp" />\r
--    <ClInclude Include="..\libsrc\include\parallel.hpp" />\r
--    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />\r
--    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\include\visual.hpp" />\r
--    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\opti.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\vector.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\bcfunctions.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\findip.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\global.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\localh.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\specials.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\topology.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\validate.hpp" />\r
--    <ClInclude Include="..\libsrc\occ\occgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\utilities.h" />\r
--    <ClInclude Include="..\libsrc\occ\vsocc.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\vsstl.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\meshdoc.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\mvdraw.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\soldata.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\vispar.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\visual.hpp" />\r
--    <ClInclude Include="..\libsrc\visualization\vssolution.hpp" />\r
--    <ClInclude Include="..\ng\demoview.hpp" />\r
--    <ClInclude Include="..\ng\ng_acis.hpp" />\r
--    <ClInclude Include="..\ng\parallelfunc.hpp" />\r
--    <ClInclude Include="..\ng\togl_1_7.h" />\r
--  </ItemGroup>\r
--  <ItemGroup>\r
--    <ClCompile Include="..\libsrc\csg\algprim.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\brick.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\csgpkg.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\identify.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\manifold.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\revolution.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\singularref.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\solid.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\surface.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\vscsg.cpp" />\r
--    <ClCompile Include="..\libsrc\general\array.cpp" />\r
--    <ClCompile Include="..\libsrc\general\bitarray.cpp" />\r
--    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />\r
--    <ClCompile Include="..\libsrc\general\flags.cpp" />\r
--    <ClCompile Include="..\libsrc\general\gzstream.cpp" />\r
--    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />\r
--    <ClCompile Include="..\libsrc\general\mpi_interface.cpp" />\r
--    <ClCompile Include="..\libsrc\general\mystring.cpp" />\r
--    <ClCompile Include="..\libsrc\general\ngexception.cpp" />\r
--    <ClCompile Include="..\libsrc\general\optmem.cpp" />\r
--    <ClCompile Include="..\libsrc\general\parthreads.cpp" />\r
--    <ClCompile Include="..\libsrc\general\profiler.cpp" />\r
--    <ClCompile Include="..\libsrc\general\seti.cpp" />\r
--    <ClCompile Include="..\libsrc\general\sort.cpp" />\r
--    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />\r
--    <ClCompile Include="..\libsrc\general\symbolta.cpp" />\r
--    <ClCompile Include="..\libsrc\general\table.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\geom2dpkg.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\vsgeom2d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\spline.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\readuser.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetet.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\bcfunctions.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\global.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\localh.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\refine.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\specials.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\topology.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\validate.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occconstruction.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occpkg.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\vsocc.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlpkg.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\vsstl.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\importsolution.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\meshdoc.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\mvdraw.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\vsfieldlines.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\vsmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\visualization\vssolution.cpp" />\r
--    <ClCompile Include="..\ng\demoview.cpp" />\r
--    <ClCompile Include="..\ng\ngappinit.cpp" />\r
--    <ClCompile Include="..\ng\ngpkg.cpp" />\r
--    <ClCompile Include="..\ng\onetcl.cpp" />\r
--    <ClCompile Include="..\ng\parallelfunc.cpp" />\r
--  </ItemGroup>\r
--  <ItemGroup>\r
--    <None Include="..\libsrc\occ\Partition_Inter2d.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Inter2d.jxx" />\r
--    <None Include="..\libsrc\occ\Partition_Inter3d.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Inter3d.jxx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop.jxx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop2d.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop2d.jxx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop3d.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Loop3d.jxx" />\r
--    <None Include="..\libsrc\occ\Partition_Spliter.ixx" />\r
--    <None Include="..\libsrc\occ\Partition_Spliter.jxx" />\r
--    <None Include="resource." />\r
--  </ItemGroup>\r
--  <ItemGroup>\r
--    <Image Include="netgen.ico" />\r
--  </ItemGroup>\r
--  <ItemGroup>\r
--    <ResourceCompile Include="netgen.rc" />\r
--  </ItemGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
--  <ImportGroup Label="ExtensionTargets">\r
--  </ImportGroup>\r
--  <ProjectExtensions>\r
--    <VisualStudio>\r
--      <UserProperties HPC_Debug="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Properties xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;&lt;ProjectNameDisplay&gt;netgen&lt;/ProjectNameDisplay&gt;&lt;CollapseAdvanced&gt;true&lt;/CollapseAdvanced&gt;&lt;ApplicationPlatform&gt;x86&lt;/ApplicationPlatform&gt;&lt;/Properties&gt;" />\r
--    </VisualStudio>\r
--  </ProjectExtensions>\r
-+<?xml version="1.0" encoding="utf-8"?>
-+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-+  <ItemGroup Label="ProjectConfigurations">
-+    <ProjectConfiguration Include="Debug(OCC)|Win32">
-+      <Configuration>Debug(OCC)</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Debug(OCC)|x64">
-+      <Configuration>Debug(OCC)</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Debug|Win32">
-+      <Configuration>Debug</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Debug|x64">
-+      <Configuration>Debug</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release(OCC)|Win32">
-+      <Configuration>Release(OCC)</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release(OCC)|x64">
-+      <Configuration>Release(OCC)</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release|Win32">
-+      <Configuration>Release</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release|x64">
-+      <Configuration>Release</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+  </ItemGroup>
-+  <PropertyGroup Label="Globals">
-+    <ProjectGuid>{87468946-A594-4101-81A4-A131F35261EF}</ProjectGuid>
-+    <RootNamespace>netgen</RootNamespace>
-+    <Keyword>Win32Proj</Keyword>
-+  </PropertyGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+    <ConfigurationType>Application</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+  </PropertyGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-+  <ImportGroup Label="ExtensionSettings">
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <PropertyGroup Label="UserMacros" />
-+  <PropertyGroup>
-+    <_ProjectFileVersion>11.0.60610.1</_ProjectFileVersion>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+    <OutDir>Debug\</OutDir>
-+    <IntDir>Debug\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+    <OutDir>Release\</OutDir>
-+    <IntDir>Release\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
-+    <OutDir>$(Configuration)\</OutDir>
-+    <IntDir>$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
-+    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">
-+    <OutDir>$(Configuration)\</OutDir>
-+    <IntDir>$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">
-+    <OutDir>$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b*.exp%3b*.lib%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+    <LinkIncremental />
-+    <GenerateManifest>true</GenerateManifest>
-+  </PropertyGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <IntrinsicFunctions>false</IntrinsicFunctions>
-+      <WholeProgramOptimization>false</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <LinkTimeCodeGeneration />
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX86</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <IntrinsicFunctions>false</IntrinsicFunctions>
-+      <WholeProgramOptimization>false</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <LinkTimeCodeGeneration />
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX64</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <WholeProgramOptimization>true</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <StringPooling>true</StringPooling>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>false</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <OptimizeReferences>true</OptimizeReferences>
-+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX86</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <WholeProgramOptimization>true</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(SolutionDir)..\..\ext_libs\zlib\include</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;MSVC_EXPRESS;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <StringPooling>true</StringPooling>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;tcl85.lib;tk85.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>false</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <OptimizeReferences>false</OptimizeReferences>
-+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX64</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+      <StackReserveSize>4000000</StackReserveSize>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <WholeProgramOptimization>true</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <StringPooling>true</StringPooling>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;zdll.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x86;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\win32;$(CASROOT)\win32\vc8\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>false</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <OptimizeReferences>true</OptimizeReferences>
-+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX86</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <WholeProgramOptimization>true</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthreads-win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\FFMPEG\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;WNT;NDEBUG;_CONSOLE;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <StringPooling>true</StringPooling>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;zlib1.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;postproc.lib;swresample.lib;swscale.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib\x64;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\FFMPEG\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\lib;$(CASROOT)\win64\vc9\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>false</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <OptimizeReferences>true</OptimizeReferences>
-+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX64</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
-+      <StackReserveSize>4000000</StackReserveSize>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <IntrinsicFunctions>false</IntrinsicFunctions>
-+      <WholeProgramOptimization>false</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl\include;$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl\lib;$(SolutionDir)..\..\ext_libs\pthread-w32\lib;$(CASROOT)\win32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <LinkTimeCodeGeneration />
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX86</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug(OCC)|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <IntrinsicFunctions>false</IntrinsicFunctions>
-+      <WholeProgramOptimization>false</WholeProgramOptimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..;$(SolutionDir)..\ng;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\libsrc\interface;$(SolutionDir)..\..\ext_libs\tcl-64\include;$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(CASROOT)\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;WNT;_DEBUG;_CONSOLE;DEBUG;MSVC_EXPRESS;_OCC64;Standard_EXPORT=;OCCGEOMETRY;OPENGL;_WIN32_WINNT=0x0502;NGINTERFACE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <ProjectReference>
-+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
-+    </ProjectReference>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2_64.lib;tcl85.lib;tk85.lib;tix84.lib;Togl17.lib;glu32.lib;opengl32.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <ShowProgress>NotSet</ShowProgress>
-+      <Version />
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\tcl-64\lib;$(SolutionDir)..\..\ext_libs\pthread-w64\lib;$(CASROOT)\win64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <EnableUAC>true</EnableUAC>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Console</SubSystem>
-+      <LinkTimeCodeGeneration />
-+      <ImportLibrary>$(OutDir)nginterface.lib</ImportLibrary>
-+      <TargetMachine>MachineX64</TargetMachine>
-+      <AllowIsolation>true</AllowIsolation>
-+    </Link>
-+    <PostBuildEvent>
-+      <Message>Running POSTBUILD Script....</Message>
-+      <Command>"$(ProjectDir)\postBuild_netgen.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)" "nginterface"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemGroup>
-+    <ClInclude Include="..\libsrc\csg\algprim.hpp" />
-+    <ClInclude Include="..\libsrc\csg\brick.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csg.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />
-+    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />
-+    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />
-+    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />
-+    <ClInclude Include="..\libsrc\csg\geoml.hpp" />
-+    <ClInclude Include="..\libsrc\csg\identify.hpp" />
-+    <ClInclude Include="..\libsrc\csg\manifold.hpp" />
-+    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />
-+    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />
-+    <ClInclude Include="..\libsrc\csg\revolution.hpp" />
-+    <ClInclude Include="..\libsrc\csg\singularref.hpp" />
-+    <ClInclude Include="..\libsrc\csg\solid.hpp" />
-+    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />
-+    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\surface.hpp" />
-+    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />
-+    <ClInclude Include="..\libsrc\csg\vscsg.hpp" />
-+    <ClInclude Include="..\libsrc\general\archive_base.hpp" />
-+    <ClInclude Include="..\libsrc\general\array.hpp" />
-+    <ClInclude Include="..\libsrc\general\autodiff.hpp" />
-+    <ClInclude Include="..\libsrc\general\autoptr.hpp" />
-+    <ClInclude Include="..\libsrc\general\bitarray.hpp" />
-+    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />
-+    <ClInclude Include="..\libsrc\general\flags.hpp" />
-+    <ClInclude Include="..\libsrc\general\gzstream.h" />
-+    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />
-+    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />
-+    <ClInclude Include="..\libsrc\general\myadt.hpp" />
-+    <ClInclude Include="..\libsrc\general\mystring.hpp" />
-+    <ClInclude Include="..\libsrc\general\netgenout.hpp" />
-+    <ClInclude Include="..\libsrc\general\ngexception.hpp" />
-+    <ClInclude Include="..\libsrc\general\optmem.hpp" />
-+    <ClInclude Include="..\libsrc\general\parthreads.hpp" />
-+    <ClInclude Include="..\libsrc\general\profiler.hpp" />
-+    <ClInclude Include="..\libsrc\general\seti.hpp" />
-+    <ClInclude Include="..\libsrc\general\sort.hpp" />
-+    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />
-+    <ClInclude Include="..\libsrc\general\stack.hpp" />
-+    <ClInclude Include="..\libsrc\general\symbolta.hpp" />
-+    <ClInclude Include="..\libsrc\general\table.hpp" />
-+    <ClInclude Include="..\libsrc\general\template.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\vsgeom2d.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\spline.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\splinegeometry.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />
-+    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />
-+    <ClInclude Include="..\libsrc\include\csg.hpp" />
-+    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />
-+    <ClInclude Include="..\libsrc\include\gprim.hpp" />
-+    <ClInclude Include="..\libsrc\include\incvis.hpp" />
-+    <ClInclude Include="..\libsrc\include\linalg.hpp" />
-+    <ClInclude Include="..\libsrc\include\meshing.hpp" />
-+    <ClInclude Include="..\libsrc\include\myadt.hpp" />
-+    <ClInclude Include="..\libsrc\include\mydefs.hpp" />
-+    <ClInclude Include="..\libsrc\include\mystdlib.h" />
-+    <ClInclude Include="..\libsrc\include\nginterface.h" />
-+    <ClInclude Include="..\libsrc\include\nginterface_v2.hpp" />
-+    <ClInclude Include="..\libsrc\include\nginterface_v2_impl.hpp" />
-+    <ClInclude Include="..\libsrc\include\occgeom.hpp" />
-+    <ClInclude Include="..\libsrc\include\opti.hpp" />
-+    <ClInclude Include="..\libsrc\include\parallel.hpp" />
-+    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />
-+    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />
-+    <ClInclude Include="..\libsrc\include\visual.hpp" />
-+    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\opti.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\vector.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\bcfunctions.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\findip.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\global.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\localh.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\specials.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\topology.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\validate.hpp" />
-+    <ClInclude Include="..\libsrc\occ\occgeom.hpp" />
-+    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />
-+    <ClInclude Include="..\libsrc\occ\utilities.h" />
-+    <ClInclude Include="..\libsrc\occ\vsocc.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\vsstl.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\meshdoc.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\mvdraw.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\soldata.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\vispar.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\visual.hpp" />
-+    <ClInclude Include="..\libsrc\visualization\vssolution.hpp" />
-+    <ClInclude Include="..\ng\demoview.hpp" />
-+    <ClInclude Include="..\ng\ng_acis.hpp" />
-+    <ClInclude Include="..\ng\parallelfunc.hpp" />
-+    <ClInclude Include="..\ng\togl_1_7.h" />
-+  </ItemGroup>
-+  <ItemGroup>
-+    <ClCompile Include="..\libsrc\csg\algprim.cpp" />
-+    <ClCompile Include="..\libsrc\csg\brick.cpp" />
-+    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />
-+    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />
-+    <ClCompile Include="..\libsrc\csg\csgpkg.cpp" />
-+    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />
-+    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />
-+    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />
-+    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />
-+    <ClCompile Include="..\libsrc\csg\identify.cpp" />
-+    <ClCompile Include="..\libsrc\csg\manifold.cpp" />
-+    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />
-+    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />
-+    <ClCompile Include="..\libsrc\csg\revolution.cpp" />
-+    <ClCompile Include="..\libsrc\csg\singularref.cpp" />
-+    <ClCompile Include="..\libsrc\csg\solid.cpp" />
-+    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />
-+    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\surface.cpp" />
-+    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />
-+    <ClCompile Include="..\libsrc\csg\vscsg.cpp" />
-+    <ClCompile Include="..\libsrc\general\array.cpp" />
-+    <ClCompile Include="..\libsrc\general\bitarray.cpp" />
-+    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />
-+    <ClCompile Include="..\libsrc\general\flags.cpp" />
-+    <ClCompile Include="..\libsrc\general\gzstream.cpp" />
-+    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />
-+    <ClCompile Include="..\libsrc\general\mpi_interface.cpp" />
-+    <ClCompile Include="..\libsrc\general\mystring.cpp" />
-+    <ClCompile Include="..\libsrc\general\ngexception.cpp" />
-+    <ClCompile Include="..\libsrc\general\optmem.cpp" />
-+    <ClCompile Include="..\libsrc\general\parthreads.cpp" />
-+    <ClCompile Include="..\libsrc\general\profiler.cpp" />
-+    <ClCompile Include="..\libsrc\general\seti.cpp" />
-+    <ClCompile Include="..\libsrc\general\sort.cpp" />
-+    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />
-+    <ClCompile Include="..\libsrc\general\symbolta.cpp" />
-+    <ClCompile Include="..\libsrc\general\table.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\geom2dpkg.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\vsgeom2d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\spline.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />
-+    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />
-+    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />
-+    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\readuser.cpp" />
-+    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetet.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />
-+    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\bcfunctions.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\global.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\localh.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\refine.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\specials.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\topology.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\validate.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occconstruction.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occpkg.cpp" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />
-+    <ClCompile Include="..\libsrc\occ\vsocc.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlpkg.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\vsstl.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\importsolution.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\meshdoc.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\mvdraw.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\vsfieldlines.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\vsmesh.cpp" />
-+    <ClCompile Include="..\libsrc\visualization\vssolution.cpp" />
-+    <ClCompile Include="..\ng\demoview.cpp" />
-+    <ClCompile Include="..\ng\ngappinit.cpp" />
-+    <ClCompile Include="..\ng\ngpkg.cpp" />
-+    <ClCompile Include="..\ng\onetcl.cpp" />
-+    <ClCompile Include="..\ng\parallelfunc.cpp" />
-+  </ItemGroup>
-+  <ItemGroup>
-+    <None Include="..\libsrc\occ\Partition_Inter2d.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Inter2d.jxx" />
-+    <None Include="..\libsrc\occ\Partition_Inter3d.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Inter3d.jxx" />
-+    <None Include="..\libsrc\occ\Partition_Loop.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Loop.jxx" />
-+    <None Include="..\libsrc\occ\Partition_Loop2d.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Loop2d.jxx" />
-+    <None Include="..\libsrc\occ\Partition_Loop3d.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Loop3d.jxx" />
-+    <None Include="..\libsrc\occ\Partition_Spliter.ixx" />
-+    <None Include="..\libsrc\occ\Partition_Spliter.jxx" />
-+    <None Include="resource." />
-+  </ItemGroup>
-+  <ItemGroup>
-+    <Image Include="netgen.ico" />
-+  </ItemGroup>
-+  <ItemGroup>
-+    <ResourceCompile Include="netgen.rc" />
-+  </ItemGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-+  <ImportGroup Label="ExtensionTargets">
-+  </ImportGroup>
-+  <ProjectExtensions>
-+    <VisualStudio>
-+      <UserProperties HPC_Debug="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;Properties xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;&lt;ProjectNameDisplay&gt;netgen&lt;/ProjectNameDisplay&gt;&lt;CollapseAdvanced&gt;true&lt;/CollapseAdvanced&gt;&lt;ApplicationPlatform&gt;x86&lt;/ApplicationPlatform&gt;&lt;/Properties&gt;" />
-+    </VisualStudio>
-+  </ProjectExtensions>
- </Project>
-\ No newline at end of file
-diff -Naur netgen-5.3.1_SRC_orig/windows/nglib.sln netgen-5.3.1_SRC_modif/windows/nglib.sln
---- netgen-5.3.1_SRC_orig/windows/nglib.sln    2014-08-29 13:53:59.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/nglib.sln   2019-11-14 16:56:26.918326014 +0300
-@@ -1,32 +1,32 @@
--\r
--Microsoft Visual Studio Solution File, Format Version 13.00\r
--# Visual Studio 2013\r
--Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nglib", "nglib.vcxproj", "{2E260C8C-595C-442A-A962-51AC06EF8143}"\r
--EndProject\r
--Global\r
--      GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
--              Debug|Win32 = Debug|Win32\r
--              Debug|x64 = Debug|x64\r
--              Release(OCC)|Win32 = Release(OCC)|Win32\r
--              Release(OCC)|x64 = Release(OCC)|x64\r
--              Release|Win32 = Release|Win32\r
--              Release|x64 = Release|x64\r
--      EndGlobalSection\r
--      GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.ActiveCfg = Debug|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.Build.0 = Debug|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.ActiveCfg = Debug|x64\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.Build.0 = Debug|x64\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.Build.0 = Release(OCC)|x64\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.ActiveCfg = Release|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.Build.0 = Release|Win32\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.ActiveCfg = Release|x64\r
--              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.Build.0 = Release|x64\r
--      EndGlobalSection\r
--      GlobalSection(SolutionProperties) = preSolution\r
--              HideSolutionNode = FALSE\r
--      EndGlobalSection\r
--EndGlobal\r
-+
-+Microsoft Visual Studio Solution File, Format Version 13.00
-+# Visual Studio 2013
-+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nglib", "nglib.vcxproj", "{2E260C8C-595C-442A-A962-51AC06EF8143}"
-+EndProject
-+Global
-+      GlobalSection(SolutionConfigurationPlatforms) = preSolution
-+              Debug|Win32 = Debug|Win32
-+              Debug|x64 = Debug|x64
-+              Release(OCC)|Win32 = Release(OCC)|Win32
-+              Release(OCC)|x64 = Release(OCC)|x64
-+              Release|Win32 = Release|Win32
-+              Release|x64 = Release|x64
-+      EndGlobalSection
-+      GlobalSection(ProjectConfigurationPlatforms) = postSolution
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.ActiveCfg = Debug|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|Win32.Build.0 = Debug|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.ActiveCfg = Debug|x64
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Debug|x64.Build.0 = Debug|x64
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.ActiveCfg = Release(OCC)|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|Win32.Build.0 = Release(OCC)|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.ActiveCfg = Release(OCC)|x64
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release(OCC)|x64.Build.0 = Release(OCC)|x64
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.ActiveCfg = Release|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|Win32.Build.0 = Release|Win32
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.ActiveCfg = Release|x64
-+              {2E260C8C-595C-442A-A962-51AC06EF8143}.Release|x64.Build.0 = Release|x64
-+      EndGlobalSection
-+      GlobalSection(SolutionProperties) = preSolution
-+              HideSolutionNode = FALSE
-+      EndGlobalSection
-+EndGlobal
-diff -Naur netgen-5.3.1_SRC_orig/windows/nglib.vcxproj netgen-5.3.1_SRC_modif/windows/nglib.vcxproj
---- netgen-5.3.1_SRC_orig/windows/nglib.vcxproj        2014-08-29 13:53:59.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/nglib.vcxproj       2019-11-14 16:56:26.882327022 +0300
-@@ -1,632 +1,632 @@
--<?xml version="1.0" encoding="utf-8"?>\r
--<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
--  <ItemGroup Label="ProjectConfigurations">\r
--    <ProjectConfiguration Include="Debug|Win32">\r
--      <Configuration>Debug</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Debug|x64">\r
--      <Configuration>Debug</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release(OCC)|Win32">\r
--      <Configuration>Release(OCC)</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release(OCC)|x64">\r
--      <Configuration>Release(OCC)</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release|Win32">\r
--      <Configuration>Release</Configuration>\r
--      <Platform>Win32</Platform>\r
--    </ProjectConfiguration>\r
--    <ProjectConfiguration Include="Release|x64">\r
--      <Configuration>Release</Configuration>\r
--      <Platform>x64</Platform>\r
--    </ProjectConfiguration>\r
--  </ItemGroup>\r
--  <PropertyGroup Label="Globals">\r
--    <ProjectGuid>{2E260C8C-595C-442A-A962-51AC06EF8143}</ProjectGuid>\r
--    <RootNamespace>nglib</RootNamespace>\r
--    <Keyword>Win32Proj</Keyword>\r
--  </PropertyGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--    <WholeProgramOptimization>true</WholeProgramOptimization>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--    <WholeProgramOptimization>true</WholeProgramOptimization>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--    <WholeProgramOptimization>true</WholeProgramOptimization>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--    <WholeProgramOptimization>true</WholeProgramOptimization>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
--    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
--    <PlatformToolset>CTP_Nov2013</PlatformToolset>\r
--    <CharacterSet>Unicode</CharacterSet>\r
--  </PropertyGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
--  <ImportGroup Label="ExtensionSettings">\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
--    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
--  </ImportGroup>\r
--  <PropertyGroup Label="UserMacros" />\r
--  <PropertyGroup>\r
--    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
--    <LinkIncremental>true</LinkIncremental>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
--    <LinkIncremental>true</LinkIncremental>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--  </PropertyGroup>\r
--  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
--    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>\r
--    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>\r
--    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>\r
--  </PropertyGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Windows</SubSystem>\r
--      <TargetMachine>MachineX86</TargetMachine>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Disabled</Optimization>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <MinimalRebuild>true</MinimalRebuild>\r
--      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
--      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
--      <PrecompiledHeader />\r
--      <WarningLevel>Level3</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2_64.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--      <GenerateDebugInformation>true</GenerateDebugInformation>\r
--      <SubSystem>Windows</SubSystem>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <FunctionLevelLinking>true</FunctionLevelLinking>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <ObjectFileName>$(IntDir)</ObjectFileName>\r
--      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
--      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;NOTCL;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <FunctionLevelLinking>true</FunctionLevelLinking>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <ObjectFileName>$(IntDir)</ObjectFileName>\r
--      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
--      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>\r
--    </BuildLog>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <FunctionLevelLinking>true</FunctionLevelLinking>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <ObjectFileName>$(IntDir)</ObjectFileName>\r
--      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
--      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(CASROOT)\win32\vc8\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">\r
--    <BuildLog>\r
--      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>\r
--    </BuildLog>\r
--    <Midl>\r
--      <TargetEnvironment>X64</TargetEnvironment>\r
--    </Midl>\r
--    <ClCompile>\r
--      <Optimization>Full</Optimization>\r
--      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
--      <IntrinsicFunctions>true</IntrinsicFunctions>\r
--      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
--      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;$(SolutionDir)..\..\ext_libs\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
--      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_OCC64;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
--      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
--      <FunctionLevelLinking>true</FunctionLevelLinking>\r
--      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>\r
--      <PrecompiledHeader />\r
--      <ObjectFileName>$(IntDir)</ObjectFileName>\r
--      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>\r
--      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>\r
--      <WarningLevel>Level2</WarningLevel>\r
--      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
--      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
--      <DisableSpecificWarnings>4250</DisableSpecificWarnings>\r
--    </ClCompile>\r
--    <Link>\r
--      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
--      <AdditionalLibraryDirectories>$(CASROOT)\win64\vc9\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
--      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>\r
--      <TargetMachine>MachineX64</TargetMachine>\r
--    </Link>\r
--    <Manifest>\r
--      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>\r
--    </Manifest>\r
--    <ManifestResourceCompile>\r
--      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>\r
--    </ManifestResourceCompile>\r
--    <PostBuildEvent>\r
--      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>\r
--    </PostBuildEvent>\r
--  </ItemDefinitionGroup>\r
--  <ItemGroup>\r
--    <ClCompile Include="..\libsrc\general\gzstream.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\algprim.cpp" />\r
--    <ClCompile Include="..\libsrc\general\array.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />\r
--    <ClCompile Include="..\libsrc\general\bitarray.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\brick.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />\r
--    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />\r
--    <ClCompile Include="..\libsrc\general\flags.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />\r
--    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\global.cpp" />\r
--    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\identify.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\localh.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\manifold.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />\r
--    <ClCompile Include="..\libsrc\general\mystring.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />\r
--    <ClCompile Include="..\libsrc\general\ngexception.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />\r
--    <ClCompile Include="..\nglib\nglib.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />\r
--    <ClCompile Include="..\libsrc\general\optmem.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />\r
--    <ClCompile Include="..\libsrc\general\parthreads.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />\r
--    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />\r
--    <ClCompile Include="..\libsrc\general\profiler.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\readuser.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\refine.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\revolution.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />\r
--    <ClCompile Include="..\libsrc\general\seti.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\singularref.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\solid.cpp" />\r
--    <ClCompile Include="..\libsrc\general\sort.cpp" />\r
--    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\specials.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\spline.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />\r
--    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\surface.cpp" />\r
--    <ClCompile Include="..\libsrc\general\symbolta.cpp" />\r
--    <ClCompile Include="..\libsrc\general\table.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\topology.cpp" />\r
--    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />\r
--    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\validate.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetet.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />\r
--    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />\r
--    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />\r
--    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />\r
--  </ItemGroup>\r
--  <ItemGroup>\r
--    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\algprim.hpp" />\r
--    <ClInclude Include="..\libsrc\general\array.hpp" />\r
--    <ClInclude Include="..\libsrc\general\autodiff.hpp" />\r
--    <ClInclude Include="..\libsrc\general\autoptr.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />\r
--    <ClInclude Include="..\libsrc\general\bitarray.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\brick.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />\r
--    <ClInclude Include="..\libsrc\include\csg.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csg.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />\r
--    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\findip.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />\r
--    <ClInclude Include="..\libsrc\general\flags.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />\r
--    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\geoml.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\global.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />\r
--    <ClInclude Include="..\libsrc\include\gprim.hpp" />\r
--    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\identify.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />\r
--    <ClInclude Include="..\libsrc\include\linalg.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\localh.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\manifold.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />\r
--    <ClInclude Include="..\libsrc\include\meshing.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />\r
--    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />\r
--    <ClInclude Include="..\libsrc\include\myadt.hpp" />\r
--    <ClInclude Include="..\libsrc\general\myadt.hpp" />\r
--    <ClInclude Include="..\libsrc\include\mydefs.hpp" />\r
--    <ClInclude Include="..\libsrc\include\mystdlib.h" />\r
--    <ClInclude Include="..\libsrc\general\mystring.hpp" />\r
--    <ClInclude Include="..\libsrc\general\netgenout.hpp" />\r
--    <ClInclude Include="..\libsrc\general\ngexception.hpp" />\r
--    <ClInclude Include="..\nglib\nglib.h" />\r
--    <ClInclude Include="..\libsrc\include\occgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />\r
--    <ClInclude Include="..\libsrc\include\opti.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\opti.hpp" />\r
--    <ClInclude Include="..\libsrc\general\optmem.hpp" />\r
--    <ClInclude Include="..\libsrc\include\parallel.hpp" />\r
--    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />\r
--    <ClInclude Include="..\libsrc\general\parthreads.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />\r
--    <ClInclude Include="..\libsrc\general\profiler.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\revolution.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />\r
--    <ClInclude Include="..\libsrc\general\seti.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\singularref.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\solid.hpp" />\r
--    <ClInclude Include="..\libsrc\general\sort.hpp" />\r
--    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\specials.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\spline.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\splinegeometry.hpp" />\r
--    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />\r
--    <ClInclude Include="..\libsrc\general\stack.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />\r
--    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\surface.hpp" />\r
--    <ClInclude Include="..\libsrc\general\symbolta.hpp" />\r
--    <ClInclude Include="..\libsrc\general\table.hpp" />\r
--    <ClInclude Include="..\libsrc\general\template.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\topology.hpp" />\r
--    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />\r
--    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />\r
--    <ClInclude Include="..\libsrc\meshing\validate.hpp" />\r
--    <ClInclude Include="..\libsrc\linalg\vector.hpp" />\r
--    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />\r
--    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />\r
--  </ItemGroup>\r
--  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
--  <ImportGroup Label="ExtensionTargets">\r
--  </ImportGroup>\r
-+<?xml version="1.0" encoding="utf-8"?>
-+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-+  <ItemGroup Label="ProjectConfigurations">
-+    <ProjectConfiguration Include="Debug|Win32">
-+      <Configuration>Debug</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Debug|x64">
-+      <Configuration>Debug</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release(OCC)|Win32">
-+      <Configuration>Release(OCC)</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release(OCC)|x64">
-+      <Configuration>Release(OCC)</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release|Win32">
-+      <Configuration>Release</Configuration>
-+      <Platform>Win32</Platform>
-+    </ProjectConfiguration>
-+    <ProjectConfiguration Include="Release|x64">
-+      <Configuration>Release</Configuration>
-+      <Platform>x64</Platform>
-+    </ProjectConfiguration>
-+  </ItemGroup>
-+  <PropertyGroup Label="Globals">
-+    <ProjectGuid>{2E260C8C-595C-442A-A962-51AC06EF8143}</ProjectGuid>
-+    <RootNamespace>nglib</RootNamespace>
-+    <Keyword>Win32Proj</Keyword>
-+  </PropertyGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <WholeProgramOptimization>true</WholeProgramOptimization>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <WholeProgramOptimization>true</WholeProgramOptimization>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <WholeProgramOptimization>true</WholeProgramOptimization>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+    <WholeProgramOptimization>true</WholeProgramOptimization>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-+    <ConfigurationType>DynamicLibrary</ConfigurationType>
-+    <PlatformToolset>CTP_Nov2013</PlatformToolset>
-+    <CharacterSet>Unicode</CharacterSet>
-+  </PropertyGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-+  <ImportGroup Label="ExtensionSettings">
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-+  </ImportGroup>
-+  <PropertyGroup Label="UserMacros" />
-+  <PropertyGroup>
-+    <_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
-+    <LinkIncremental>true</LinkIncremental>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
-+    <LinkIncremental>true</LinkIncremental>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+  </PropertyGroup>
-+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
-+    <OutDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\</OutDir>
-+    <IntDir>$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
-+    <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
-+  </PropertyGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w32\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Windows</SubSystem>
-+      <TargetMachine>MachineX86</TargetMachine>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Disabled</Optimization>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <MinimalRebuild>true</MinimalRebuild>
-+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-+      <PrecompiledHeader />
-+      <WarningLevel>Level3</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2_64.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthread-w64\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+      <GenerateDebugInformation>true</GenerateDebugInformation>
-+      <SubSystem>Windows</SubSystem>
-+      <TargetMachine>MachineX64</TargetMachine>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <FunctionLevelLinking>true</FunctionLevelLinking>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <ObjectFileName>$(IntDir)</ObjectFileName>
-+      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
-+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <AdditionalIncludeDirectories>$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;_WIN32_WINNT=0x0502;NOTCL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <FunctionLevelLinking>true</FunctionLevelLinking>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <ObjectFileName>$(IntDir)</ObjectFileName>
-+      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
-+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+      <TargetMachine>MachineX64</TargetMachine>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|Win32'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName).htm</Path>
-+    </BuildLog>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\..\ext_libs\zlib\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <FunctionLevelLinking>true</FunctionLevelLinking>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <ObjectFileName>$(IntDir)</ObjectFileName>
-+      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
-+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;zdll.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKDCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(CASROOT)\win32\vc8\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x86;$(SolutionDir)..\..\ext_libs\zlib\x86\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release(OCC)|x64'">
-+    <BuildLog>
-+      <Path>$(SolutionDir)\BuildLog_$(ProjectName)_$(Platform).htm</Path>
-+    </BuildLog>
-+    <Midl>
-+      <TargetEnvironment>X64</TargetEnvironment>
-+    </Midl>
-+    <ClCompile>
-+      <Optimization>Full</Optimization>
-+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
-+      <IntrinsicFunctions>true</IntrinsicFunctions>
-+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
-+      <AdditionalIncludeDirectories>$(CASROOT)\inc;$(SolutionDir)..\..\ext_libs\pthreads-Win32\include;$(SolutionDir)..\libsrc\include;$(SolutionDir)..\nglib;$(SolutionDir)..\;$(SolutionDir)..\..\ext_libs\zlib\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-+      <PreprocessorDefinitions>WNT;WIN32;NDEBUG;_WINDOWS;_USRDLL;NGLIB_EXPORTS;MSVC_EXPRESS;Standard_EXPORT=;OCCGEOMETRY;_OCC64;_WIN32_WINNT=0x0502;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-+      <FunctionLevelLinking>true</FunctionLevelLinking>
-+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
-+      <PrecompiledHeader />
-+      <ObjectFileName>$(IntDir)</ObjectFileName>
-+      <ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
-+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
-+      <WarningLevel>Level2</WarningLevel>
-+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
-+      <DisableSpecificWarnings>4250</DisableSpecificWarnings>
-+    </ClCompile>
-+    <Link>
-+      <AdditionalDependencies>pthreadVC2.lib;zlib1.lib;TKernel.lib;TKGeomBase.lib;TKMath.lib;TKG2d.lib;TKG3d.lib;TKXSBase.lib;TKOffset.lib;TKFillet.lib;TKShHealing.lib;TKMesh.lib;TKMeshVS.lib;TKTopAlgo.lib;TKGeomAlgo.lib;TKBool.lib;TKPrim.lib;TKBO.lib;TKIGES.lib;TKBRep.lib;TKSTEPBase.lib;TKSTEP.lib;TKSTL.lib;TKSTEPAttr.lib;TKSTEP209.lib;TKXDESTEP.lib;TKXDEIGES.lib;TKXCAF.lib;TKLCAF.lib;%(AdditionalDependencies)</AdditionalDependencies>
-+      <AdditionalLibraryDirectories>$(CASROOT)\win64\vc9\lib;$(SolutionDir)..\..\ext_libs\pthreads-Win32\lib\x64;$(SolutionDir)..\..\ext_libs\zlib\x64\\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-+      <ManifestFile>$(OutDir)$(TargetFileName).intermediate.manifest</ManifestFile>
-+      <TargetMachine>MachineX64</TargetMachine>
-+    </Link>
-+    <Manifest>
-+      <OutputManifestFile>$(OutDir)$(TargetFileName).embed.manifest</OutputManifestFile>
-+    </Manifest>
-+    <ManifestResourceCompile>
-+      <ResourceOutputFileName>$(OutDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
-+    </ManifestResourceCompile>
-+    <PostBuildEvent>
-+      <Command>"$(ProjectDir)\postBuild_nglib.bat" "$(ProjectName)" "$(TargetFileName)" "$(Configuration)" "$(Platform)" "$(ProjectDir)"</Command>
-+    </PostBuildEvent>
-+  </ItemDefinitionGroup>
-+  <ItemGroup>
-+    <ClCompile Include="..\libsrc\general\gzstream.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\adfront2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\adfront3.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\adtree.cpp" />
-+    <ClCompile Include="..\libsrc\csg\algprim.cpp" />
-+    <ClCompile Include="..\libsrc\general\array.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\basegeom.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\bfgs.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\bisect.cpp" />
-+    <ClCompile Include="..\libsrc\general\bitarray.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\boundarylayer.cpp" />
-+    <ClCompile Include="..\libsrc\csg\brick.cpp" />
-+    <ClCompile Include="..\libsrc\csg\bspline2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\clusters.cpp" />
-+    <ClCompile Include="..\libsrc\csg\csgeom.cpp" />
-+    <ClCompile Include="..\libsrc\csg\csgparser.cpp" />
-+    <ClCompile Include="..\libsrc\csg\curve2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\curvedelems.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\delaunay.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\delaunay2d.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\densemat.cpp" />
-+    <ClCompile Include="..\libsrc\general\dynamicmem.cpp" />
-+    <ClCompile Include="..\libsrc\csg\edgeflw.cpp" />
-+    <ClCompile Include="..\libsrc\csg\explicitcurve2d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\extrusion.cpp" />
-+    <ClCompile Include="..\libsrc\general\flags.cpp" />
-+    <ClCompile Include="..\libsrc\csg\gencyl.cpp" />
-+    <ClCompile Include="..\libsrc\csg\genmesh.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\genmesh2d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geom2d.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\geom2dmesh.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geom3d.cpp" />
-+    <ClCompile Include="..\libsrc\geom2d\geometry2d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geomfuncs.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\geomsearch.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\geomtest3d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\global.cpp" />
-+    <ClCompile Include="..\libsrc\general\hashtabl.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\hprefinement.cpp" />
-+    <ClCompile Include="..\libsrc\csg\identify.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve2gen.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\improve3.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\linopt.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\linsearch.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\localh.cpp" />
-+    <ClCompile Include="..\libsrc\csg\manifold.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshclass.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshfunc.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshfunc2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshing2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshing3.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\meshstlsurface.cpp" />
-+    <ClCompile Include="..\libsrc\csg\meshsurf.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshtool.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\meshtype.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\msghandler.cpp" />
-+    <ClCompile Include="..\libsrc\general\mystring.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\netrule2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\netrule3.cpp" />
-+    <ClCompile Include="..\libsrc\general\ngexception.cpp" />
-+    <ClCompile Include="..\libsrc\interface\nginterface.cpp" />
-+    <ClCompile Include="..\libsrc\interface\nginterface_v2.cpp" />
-+    <ClCompile Include="..\nglib\nglib.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occgenmesh.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occgeom.cpp" />
-+    <ClCompile Include="..\libsrc\occ\occmeshsurf.cpp" />
-+    <ClCompile Include="..\libsrc\general\optmem.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parallelmesh.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\paralleltop.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parser2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\parser3.cpp" />
-+    <ClCompile Include="..\libsrc\general\parthreads.cpp" />
-+    <ClCompile Include="..\libsrc\csg\polyhedra.cpp" />
-+    <ClCompile Include="..\libsrc\linalg\polynomial.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\prism2rls.cpp" />
-+    <ClCompile Include="..\libsrc\general\profiler.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\pyramid2rls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\pyramidrls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\quadrls.cpp" />
-+    <ClCompile Include="..\libsrc\interface\read_fnf_mesh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\readtetmesh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\readuser.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\refine.cpp" />
-+    <ClCompile Include="..\libsrc\csg\revolution.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\ruler2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\ruler3.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\secondorder.cpp" />
-+    <ClCompile Include="..\libsrc\general\seti.cpp" />
-+    <ClCompile Include="..\libsrc\csg\singularref.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing2.5.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing2.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\smoothing3.cpp" />
-+    <ClCompile Include="..\libsrc\csg\solid.cpp" />
-+    <ClCompile Include="..\libsrc\general\sort.cpp" />
-+    <ClCompile Include="..\libsrc\general\spbita2d.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\specials.cpp" />
-+    <ClCompile Include="..\libsrc\csg\specpoin.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\spline.cpp" />
-+    <ClCompile Include="..\libsrc\csg\spline3d.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\splinegeometry.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeom.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeomchart.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlgeommesh.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stlline.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stltool.cpp" />
-+    <ClCompile Include="..\libsrc\stlgeom\stltopology.cpp" />
-+    <ClCompile Include="..\libsrc\csg\surface.cpp" />
-+    <ClCompile Include="..\libsrc\general\symbolta.cpp" />
-+    <ClCompile Include="..\libsrc\general\table.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\tetrarls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\topology.cpp" />
-+    <ClCompile Include="..\libsrc\gprim\transform3d.cpp" />
-+    <ClCompile Include="..\libsrc\csg\triapprox.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\triarls.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\validate.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeabaqus.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writediffpack.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writedolfin.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeelmer.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writefeap.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writefluent.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writegmsh.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writegmsh2.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writejcm.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeOpenFOAM15x.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writepermas.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetecplot.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetet.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writetochnog.cpp" />
-+    <ClCompile Include="..\libsrc\interface\writeuser.cpp" />
-+    <ClCompile Include="..\libsrc\interface\wuchemnitz.cpp" />
-+    <ClCompile Include="..\libsrc\meshing\zrefine.cpp" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Inter2d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Inter3d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop2d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Loop3d.cxx" />
-+    <ClCompile Include="..\libsrc\occ\Partition_Spliter.cxx" />
-+  </ItemGroup>
-+  <ItemGroup>
-+    <ClInclude Include="..\libsrc\include\acisgeom.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\adfront2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\adfront3.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\adtree.hpp" />
-+    <ClInclude Include="..\libsrc\csg\algprim.hpp" />
-+    <ClInclude Include="..\libsrc\general\array.hpp" />
-+    <ClInclude Include="..\libsrc\general\autodiff.hpp" />
-+    <ClInclude Include="..\libsrc\general\autoptr.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\basegeom.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\bisect.hpp" />
-+    <ClInclude Include="..\libsrc\general\bitarray.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\boundarylayer.hpp" />
-+    <ClInclude Include="..\libsrc\csg\brick.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\classifyhpel.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\clusters.hpp" />
-+    <ClInclude Include="..\libsrc\include\csg.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csg.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csgeom.hpp" />
-+    <ClInclude Include="..\libsrc\csg\csgparser.hpp" />
-+    <ClInclude Include="..\libsrc\csg\curve2d.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\curvedelems.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\densemat.hpp" />
-+    <ClInclude Include="..\libsrc\general\dynamicmem.hpp" />
-+    <ClInclude Include="..\libsrc\csg\edgeflw.hpp" />
-+    <ClInclude Include="..\libsrc\csg\explicitcurve2d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\extrusion.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\findip.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\findip2.hpp" />
-+    <ClInclude Include="..\libsrc\general\flags.hpp" />
-+    <ClInclude Include="..\libsrc\csg\gencyl.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geom2d.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\geom2dmesh.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geom3d.hpp" />
-+    <ClInclude Include="..\libsrc\include\geometry2d.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\geometry2d.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomfuncs.hpp" />
-+    <ClInclude Include="..\libsrc\csg\geoml.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomobjects.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomobjects2.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomops.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomops2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\geomsearch.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\geomtest3d.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\global.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\gprim.hpp" />
-+    <ClInclude Include="..\libsrc\include\gprim.hpp" />
-+    <ClInclude Include="..\libsrc\general\hashtabl.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_hex.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_prism.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_pyramid.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_quad.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_segm.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_tet.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hpref_trig.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\hprefinement.hpp" />
-+    <ClInclude Include="..\libsrc\csg\identify.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\improve2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\improve3.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\linalg.hpp" />
-+    <ClInclude Include="..\libsrc\include\linalg.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\localh.hpp" />
-+    <ClInclude Include="..\libsrc\csg\manifold.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshclass.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshfunc.hpp" />
-+    <ClInclude Include="..\libsrc\include\meshing.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshing3.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\meshstlsurface.hpp" />
-+    <ClInclude Include="..\libsrc\csg\meshsurf.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshtool.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\meshtype.hpp" />
-+    <ClInclude Include="..\libsrc\general\mpi_interface.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\msghandler.hpp" />
-+    <ClInclude Include="..\libsrc\include\myadt.hpp" />
-+    <ClInclude Include="..\libsrc\general\myadt.hpp" />
-+    <ClInclude Include="..\libsrc\include\mydefs.hpp" />
-+    <ClInclude Include="..\libsrc\include\mystdlib.h" />
-+    <ClInclude Include="..\libsrc\general\mystring.hpp" />
-+    <ClInclude Include="..\libsrc\general\netgenout.hpp" />
-+    <ClInclude Include="..\libsrc\general\ngexception.hpp" />
-+    <ClInclude Include="..\nglib\nglib.h" />
-+    <ClInclude Include="..\libsrc\include\occgeom.hpp" />
-+    <ClInclude Include="..\libsrc\occ\occmeshsurf.hpp" />
-+    <ClInclude Include="..\libsrc\include\opti.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\opti.hpp" />
-+    <ClInclude Include="..\libsrc\general\optmem.hpp" />
-+    <ClInclude Include="..\libsrc\include\parallel.hpp" />
-+    <ClInclude Include="..\libsrc\include\parallelinterface.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\paralleltop.hpp" />
-+    <ClInclude Include="..\libsrc\general\parthreads.hpp" />
-+    <ClInclude Include="..\libsrc\csg\polyhedra.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\polynomial.hpp" />
-+    <ClInclude Include="..\libsrc\general\profiler.hpp" />
-+    <ClInclude Include="..\libsrc\csg\revolution.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\ruler2.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\ruler3.hpp" />
-+    <ClInclude Include="..\libsrc\general\seti.hpp" />
-+    <ClInclude Include="..\libsrc\csg\singularref.hpp" />
-+    <ClInclude Include="..\libsrc\csg\solid.hpp" />
-+    <ClInclude Include="..\libsrc\general\sort.hpp" />
-+    <ClInclude Include="..\libsrc\general\spbita2d.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\specials.hpp" />
-+    <ClInclude Include="..\libsrc\csg\specpoin.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\spline.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\spline2d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\spline3d.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\splinegeometry.hpp" />
-+    <ClInclude Include="..\libsrc\geom2d\splinegeometry2.hpp" />
-+    <ClInclude Include="..\libsrc\general\stack.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stlgeom.hpp" />
-+    <ClInclude Include="..\libsrc\include\stlgeom.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stlline.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stltool.hpp" />
-+    <ClInclude Include="..\libsrc\stlgeom\stltopology.hpp" />
-+    <ClInclude Include="..\libsrc\csg\surface.hpp" />
-+    <ClInclude Include="..\libsrc\general\symbolta.hpp" />
-+    <ClInclude Include="..\libsrc\general\table.hpp" />
-+    <ClInclude Include="..\libsrc\general\template.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\topology.hpp" />
-+    <ClInclude Include="..\libsrc\gprim\transform3d.hpp" />
-+    <ClInclude Include="..\libsrc\csg\triapprox.hpp" />
-+    <ClInclude Include="..\libsrc\meshing\validate.hpp" />
-+    <ClInclude Include="..\libsrc\linalg\vector.hpp" />
-+    <ClInclude Include="..\libsrc\interface\writeuser.hpp" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Inter2d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Inter3d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop2d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Loop3d.hxx" />
-+    <ClInclude Include="..\libsrc\occ\Partition_Spliter.hxx" />
-+  </ItemGroup>
-+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-+  <ImportGroup Label="ExtensionTargets">
-+  </ImportGroup>
- </Project>
-\ No newline at end of file
-diff -Naur netgen-5.3.1_SRC_orig/windows/postBuild_netgen.bat netgen-5.3.1_SRC_modif/windows/postBuild_netgen.bat
---- netgen-5.3.1_SRC_orig/windows/postBuild_netgen.bat 2014-10-06 14:59:42.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/postBuild_netgen.bat        2019-11-14 16:56:26.846328030 +0300
-@@ -1,162 +1,162 @@
--REM *********************************************************************************\r
--REM *** Netgen Windows Post-Build Script\r
--REM *** Author: Philippose Rajan\r
--REM *** Date: 31/01/2009\r
--REM ***\r
--REM *** Used to perform an "Install" of the generated executable \r
--REM *** along with the required *.tcl files\r
--REM ***\r
--REM *** Call from Visual C++ using:\r
--REM *** postBuild_netgen.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir) <lib filename>\r
--REM *********************************************************************************\r
--if [%1]==[] goto InputParamsFailed\r
--set PROJ_NAME=%~1\r
--set PROJ_EXEC=%~2\r
--set BUILD_TYPE=%~3\r
--set BUILD_ARCH=%~4\r
--set PROJ_DIR=%~5\r
--set LIB_NAME=%~6\r
--\r
--REM *** Change these Folders if required ***\r
--REM Check if the environment variable NETGENDIR exists, \r
--REM and use it as the installation folder\r
--set W_WO_OCC=%BUILD_TYPE:~-4,3%\r
--if defined NETGENDIR (\r
--   echo Environment variable NETGENDIR found: %NETGENDIR%\r
--   set INSTALL_FOLDER=%NETGENDIR%\..\r
--) else (\r
--   echo Environment variable NETGENDIR not found.... using default location!!!\r
--   if /i "%W_WO_OCC%" == "OCC" (\r
--      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%\r
--   ) else (\r
--      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%\r
--   )   \r
--)\r
--   \r
--set NETGEN_TCLSRC=%PROJ_DIR%..\ng\r
--set NETGEN_LIBINC=%PROJ_DIR%..\libsrc\include\r
--set NETGEN_NGSINC=%PROJ_DIR%..\libsrc\r
--\r
--REM *** Start the Installation procedure ***\r
--echo POSTBUILD Script for %PROJ_NAME% ........\r
--\r
--REM *** Embed the Windows Manifest into the Executable File ***\r
--REM echo Embedding Manifest into the executable: %PROJ_EXEC% ....\r
--REM mt.exe -manifest "%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%BUILD_TYPE%\%PROJ_EXEC%;#1" \r
--REM if errorlevel 1 goto ManifestFailed\r
--REM echo Embedding Manifest into the executable: Completed OK!!\r
--\r
--REM *** Copy the core TCL files into the Install Folder ***\r
--echo Installing core TCL files into %INSTALL_FOLDER%\bin ....\r
--xcopy  "%NETGEN_TCLSRC%\*.tcl" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--xcopy  "%NETGEN_TCLSRC%\*.ocf" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--if errorlevel 1 goto CoreTCLFailed\r
--echo Installing core TCL Files: Completed OK!!\r
--\r
--REM *** Copy any more auxiliary TCL files into the Install Folder ***\r
--REM if errorlevel 1 goto AuxTCLFailed\r
--REM echo Installing auxiliary TCL Files: Completed OK!!\r
--\r
--REM *** Copy the primary Netgen executable file into the Install Folder ***\r
--echo Installing %PROJ_EXEC% into %INSTALL_FOLDER%\bin ....\r
--if /i "%BUILD_ARCH%" == "win32" (\r
--   xcopy "%PROJ_DIR%%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--   if errorlevel 1 goto ExecInstallFailed\r
--)\r
--if /i "%BUILD_ARCH%" == "x64" (\r
--   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--   if errorlevel 1 goto ExecInstallFailed\r
--)   \r
--echo Installing %PROJ_EXEC%: Completed OK!!\r
--\r
--REM *** Copy the primary Netgen library and include files into the Install Folder ***\r
--echo Installing %LIB_NAME%.lib into %INSTALL_FOLDER%\lib ....\r
--if /i "%BUILD_ARCH%" == "win32" (\r
--   xcopy "%PROJ_DIR%%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
--   if errorlevel 1 goto LibInstallFailed\r
--)\r
--if /i "%BUILD_ARCH%" == "x64" (\r
--   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
--   if errorlevel 1 goto LibInstallFailed\r
--)   \r
--echo Installing %LIB_NAME%.lib: Completed OK!!\r
--\r
--echo Installing %LIB_NAME%.h into %INSTALL_FOLDER%\include ....\r
--xcopy "%NETGEN_LIBINC%\%LIB_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
--if errorlevel 1 goto LibInstallFailed\r
--echo Installing %LIB_NAME%.h: Completed OK!!\r
--\r
--echo Installing NgSolve dependent header files into %INSTALL_FOLDER%\include ....\r
--xcopy "%NETGEN_NGSINC%\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--xcopy "%NETGEN_NGSINC%\general\dynamicmem.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--xcopy "%NETGEN_NGSINC%\general\ngexception.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--xcopy "%NETGEN_NGSINC%\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--\r
--echo Installing external dependencies\r
--if /i "%BUILD_ARCH%" == "x64" (   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q\r
--   REM if errorlevel 1 goto externalInstallFailed\r
--)   \r
--\r
--if /i "%BUILD_ARCH%" == "win32" (   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x86\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q\r
--   REM if errorlevel 1 goto externalInstallFailed\r
--)\r
--\r
--REM *** Finally copy the FFMPEG dlls to the bin folder ***\r
--if /i "%BUILD_ARCH%"=="x64" (\r
--              echo Copying FFMPEG dlls\r
--              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y           \r
--)\r
--if /i "%BUILD_ARCH%"=="win32" (\r
--              echo Copying FFMPEG dlls\r
--              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\Win32\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y         \r
--)\r
--\r
--echo Copying tutorials\r
--xcopy "%PROJ_DIR%..\tutorials" "%INSTALL_FOLDER%\tutorials\" /i /d /y /e\r
--\r
--\r
--\r
--REM *** Done with the installation routine ***\r
--\r
--REM *** Clean up the build directory by deleting the OBJ files ***\r
--REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....\r
--REM rmdir %PROJ_DIR%%BUILD_TYPE% /s /q\r
--\r
--REM *** If there have been no errors so far, we are done ***\r
--goto BuildEventOK\r
--\r
--REM *** Error Messages for each stage of the post build process ***\r
--:InputParamsFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!\r
--exit 1\r
--:ManifestFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!\r
--exit 1\r
--:CoreTCLFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying core TCL Files into install folder!!!\r
--exit 1\r
--:ExecInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% executable into install folder!!!\r
--exit 1\r
--:LibInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %LIB_NAME%.lib or %LIB_NAME%.h into install folder!!!\r
--exit 1\r
--:externalInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying external dependencies to install folder!!!\r
--exit 1\r
--\r
--:BuildEventOK\r
--echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!\r
--\r
-+REM *********************************************************************************
-+REM *** Netgen Windows Post-Build Script
-+REM *** Author: Philippose Rajan
-+REM *** Date: 31/01/2009
-+REM ***
-+REM *** Used to perform an "Install" of the generated executable 
-+REM *** along with the required *.tcl files
-+REM ***
-+REM *** Call from Visual C++ using:
-+REM *** postBuild_netgen.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir) <lib filename>
-+REM *********************************************************************************
-+if [%1]==[] goto InputParamsFailed
-+set PROJ_NAME=%~1
-+set PROJ_EXEC=%~2
-+set BUILD_TYPE=%~3
-+set BUILD_ARCH=%~4
-+set PROJ_DIR=%~5
-+set LIB_NAME=%~6
-+
-+REM *** Change these Folders if required ***
-+REM Check if the environment variable NETGENDIR exists, 
-+REM and use it as the installation folder
-+set W_WO_OCC=%BUILD_TYPE:~-4,3%
-+if defined NETGENDIR (
-+   echo Environment variable NETGENDIR found: %NETGENDIR%
-+   set INSTALL_FOLDER=%NETGENDIR%\..
-+) else (
-+   echo Environment variable NETGENDIR not found.... using default location!!!
-+   if /i "%W_WO_OCC%" == "OCC" (
-+      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%
-+   ) else (
-+      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%
-+   )   
-+)
-+   
-+set NETGEN_TCLSRC=%PROJ_DIR%..\ng
-+set NETGEN_LIBINC=%PROJ_DIR%..\libsrc\include
-+set NETGEN_NGSINC=%PROJ_DIR%..\libsrc
-+
-+REM *** Start the Installation procedure ***
-+echo POSTBUILD Script for %PROJ_NAME% ........
-+
-+REM *** Embed the Windows Manifest into the Executable File ***
-+REM echo Embedding Manifest into the executable: %PROJ_EXEC% ....
-+REM mt.exe -manifest "%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%BUILD_TYPE%\%PROJ_EXEC%;#1" 
-+REM if errorlevel 1 goto ManifestFailed
-+REM echo Embedding Manifest into the executable: Completed OK!!
-+
-+REM *** Copy the core TCL files into the Install Folder ***
-+echo Installing core TCL files into %INSTALL_FOLDER%\bin ....
-+xcopy  "%NETGEN_TCLSRC%\*.tcl" "%INSTALL_FOLDER%\bin\" /i /d /y
-+xcopy  "%NETGEN_TCLSRC%\*.ocf" "%INSTALL_FOLDER%\bin\" /i /d /y
-+if errorlevel 1 goto CoreTCLFailed
-+echo Installing core TCL Files: Completed OK!!
-+
-+REM *** Copy any more auxiliary TCL files into the Install Folder ***
-+REM if errorlevel 1 goto AuxTCLFailed
-+REM echo Installing auxiliary TCL Files: Completed OK!!
-+
-+REM *** Copy the primary Netgen executable file into the Install Folder ***
-+echo Installing %PROJ_EXEC% into %INSTALL_FOLDER%\bin ....
-+if /i "%BUILD_ARCH%" == "win32" (
-+   xcopy "%PROJ_DIR%%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
-+   if errorlevel 1 goto ExecInstallFailed
-+)
-+if /i "%BUILD_ARCH%" == "x64" (
-+   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
-+   if errorlevel 1 goto ExecInstallFailed
-+)   
-+echo Installing %PROJ_EXEC%: Completed OK!!
-+
-+REM *** Copy the primary Netgen library and include files into the Install Folder ***
-+echo Installing %LIB_NAME%.lib into %INSTALL_FOLDER%\lib ....
-+if /i "%BUILD_ARCH%" == "win32" (
-+   xcopy "%PROJ_DIR%%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
-+   if errorlevel 1 goto LibInstallFailed
-+)
-+if /i "%BUILD_ARCH%" == "x64" (
-+   xcopy "%PROJ_DIR%%BUILD_ARCH%\%BUILD_TYPE%\%LIB_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
-+   if errorlevel 1 goto LibInstallFailed
-+)   
-+echo Installing %LIB_NAME%.lib: Completed OK!!
-+
-+echo Installing %LIB_NAME%.h into %INSTALL_FOLDER%\include ....
-+xcopy "%NETGEN_LIBINC%\%LIB_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y
-+if errorlevel 1 goto LibInstallFailed
-+echo Installing %LIB_NAME%.h: Completed OK!!
-+
-+echo Installing NgSolve dependent header files into %INSTALL_FOLDER%\include ....
-+xcopy "%NETGEN_NGSINC%\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+xcopy "%NETGEN_NGSINC%\general\dynamicmem.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+xcopy "%NETGEN_NGSINC%\general\ngexception.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+xcopy "%NETGEN_NGSINC%\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+
-+echo Installing external dependencies
-+if /i "%BUILD_ARCH%" == "x64" (   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x64\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q
-+   REM if errorlevel 1 goto externalInstallFailed
-+)   
-+
-+if /i "%BUILD_ARCH%" == "win32" (   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\bin\x86\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tcl8.5" "%INSTALL_FOLDER%\lib\tcl8.5" /i /d /y /e /q
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tix8.4.3" "%INSTALL_FOLDER%\lib\tix8.4.3" /i /d /y /e /q
-+   xcopy "%PROJ_DIR%..\..\ext_libs\tcl\lib\x86\tk8.5" "%INSTALL_FOLDER%\lib\tk8.5" /i /d /y /e /q
-+   REM if errorlevel 1 goto externalInstallFailed
-+)
-+
-+REM *** Finally copy the FFMPEG dlls to the bin folder ***
-+if /i "%BUILD_ARCH%"=="x64" (
-+              echo Copying FFMPEG dlls
-+              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\x64\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y           
-+)
-+if /i "%BUILD_ARCH%"=="win32" (
-+              echo Copying FFMPEG dlls
-+              xcopy "%PROJ_DIR%..\..\ext_libs\FFMPEG\dll\Win32\*.dll" "%INSTALL_FOLDER%\bin" /i /d /y         
-+)
-+
-+echo Copying tutorials
-+xcopy "%PROJ_DIR%..\tutorials" "%INSTALL_FOLDER%\tutorials\" /i /d /y /e
-+
-+
-+
-+REM *** Done with the installation routine ***
-+
-+REM *** Clean up the build directory by deleting the OBJ files ***
-+REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....
-+REM rmdir %PROJ_DIR%%BUILD_TYPE% /s /q
-+
-+REM *** If there have been no errors so far, we are done ***
-+goto BuildEventOK
-+
-+REM *** Error Messages for each stage of the post build process ***
-+:InputParamsFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!
-+exit 1
-+:ManifestFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!
-+exit 1
-+:CoreTCLFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying core TCL Files into install folder!!!
-+exit 1
-+:ExecInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% executable into install folder!!!
-+exit 1
-+:LibInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %LIB_NAME%.lib or %LIB_NAME%.h into install folder!!!
-+exit 1
-+:externalInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying external dependencies to install folder!!!
-+exit 1
-+
-+:BuildEventOK
-+echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!
-+
-diff -Naur netgen-5.3.1_SRC_orig/windows/postBuild_nglib.bat netgen-5.3.1_SRC_modif/windows/postBuild_nglib.bat
---- netgen-5.3.1_SRC_orig/windows/postBuild_nglib.bat  2014-08-29 13:53:59.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/postBuild_nglib.bat 2019-11-14 16:56:26.902326462 +0300
-@@ -1,117 +1,117 @@
--REM *********************************************************************************\r
--REM *** Netgen Library (nglib) Windows Post-Build Script\r
--REM *** Author: Philippose Rajan\r
--REM *** Date: 15/02/2009\r
--REM ***\r
--REM *** Used to perform an "Install" of the generated Dynamic Link Library (DLL)  \r
--REM *** and the corresponding LIB file.\r
--REM ***\r
--REM *** Call from Visual C++ using:\r
--REM *** postBuild_nglib.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir)\r
--REM *********************************************************************************\r
--if [%1]==[] goto InputParamsFailed\r
--set PROJ_NAME=%~1\r
--set PROJ_EXEC=%~2\r
--set BUILD_TYPE=%~3\r
--set BUILD_ARCH=%~4\r
--set PROJ_DIR=%~5\r
--\r
--REM *** Change these Folders if required ***\r
--REM Check if the environment variable NETGENDIR exists, \r
--REM and use it as the installation folder\r
--set W_WO_OCC=%BUILD_TYPE:~-4,3%\r
--if defined NETGENDIR (\r
--   echo Environment variable NETGENDIR found: %NETGENDIR%\r
--   set INSTALL_FOLDER=%NETGENDIR%\..\r
--) else (\r
--   echo Environment variable NETGENDIR not found.... using default location!!!\r
--   if /i "%W_WO_OCC%" == "OCC" (   \r
--      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%\r
--   ) else (\r
--      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%\r
--   )   \r
--)\r
--   \r
--set NGLIB_LIBINC=%PROJ_DIR%..\nglib\r
--\r
--\r
--echo POSTBUILD Script for %PROJ_NAME% ........\r
--\r
--REM *** Embed the Windows Manifest into the Executable File ***\r
--REM echo Embedding Manifest into the DLL: %PROJ_EXEC% ....\r
--REM mt.exe -manifest "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%;#2" \r
--REM if errorlevel 1 goto ManifestFailed\r
--REM echo Embedding Manifest into the DLL: Completed OK!!\r
--\r
--REM *** Copy the DLL and LIB Files into the install folder ***\r
--echo Installing required files into %INSTALL_FOLDER% ....\r
--if /i "%BUILD_ARCH%" == "win32" (\r
--   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--   if errorlevel 1 goto DLLInstallFailed\r
--)\r
--if /i "%BUILD_ARCH%" == "x64" (\r
--   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y\r
--   if errorlevel 1 goto DLLInstallFailed\r
--)   \r
--echo Installing %PROJ_EXEC%: Completed OK!!\r
--\r
--if /i "%BUILD_ARCH%" == "win32" (\r
--   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
--   if errorlevel 1 goto LibInstallFailed\r
--)\r
--if /i "%BUILD_ARCH%" == "x64" (\r
--   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y\r
--   if errorlevel 1 goto LibInstallFailed\r
--)   \r
--\r
--if /i "%BUILD_ARCH%" == "x64" (\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   \r
--   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
--\r
--   if errorlevel 1 goto ExternalInstallFailed\r
--)\r
--if /i "%BUILD_ARCH%" == "win32" (\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
--   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y\r
--   if errorlevel 1 goto ExternalInstallFailed\r
--)\r
--\r
--echo Installing %PROJ_NAME%.lib: Completed OK!!\r
--\r
--REM *** Copy the include file nglib.h into the install folder ***\r
--echo Installing %PROJ_NAME%.h into %INSTALL_FOLDER%\include ....\r
--xcopy "%NGLIB_LIBINC%\%PROJ_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
--echo  "%NGLIB_LIBINC%\..\libsrc\include\nginterface.hpp"\r
--xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface.h" "%INSTALL_FOLDER%\include\" /i /d /y\r
--xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--xcopy "%NGLIB_LIBINC%\..\libsrc\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y\r
--if errorlevel 1 goto LibInstallFailed\r
--echo Installing %PROJ_NAME%.h: Completed OK!!\r
--\r
--\r
--REM *** Clean up the build directory by deleting the OBJ files ***\r
--REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....\r
--REM rmdir %PROJ_DIR%%PROJ_NAME% /s /q\r
--\r
--REM *** If there have been no errors so far, we are done ***\r
--goto BuildEventOK\r
--\r
--REM *** Error Messages for each stage of the post build process ***\r
--:InputParamsFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!\r
--exit 1\r
--:ManifestFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!\r
--exit 1\r
--:DLLInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% DLL into install folder!!!\r
--exit 1\r
--:LibInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %PROJ_NAME%.lib or %PROJ_NAME%.h into install folder!!!\r
--exit 1\r
--:ExternalInstallFailed\r
--echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying pthreadVC2.dll into install folder!!!\r
--exit 1 \r
--\r
--:BuildEventOK\r
--echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!\r
-+REM *********************************************************************************
-+REM *** Netgen Library (nglib) Windows Post-Build Script
-+REM *** Author: Philippose Rajan
-+REM *** Date: 15/02/2009
-+REM ***
-+REM *** Used to perform an "Install" of the generated Dynamic Link Library (DLL)  
-+REM *** and the corresponding LIB file.
-+REM ***
-+REM *** Call from Visual C++ using:
-+REM *** postBuild_nglib.bat $(ProjectName) $(TargetFileName) $(ConfigurationName) $(ProjectDir)
-+REM *********************************************************************************
-+if [%1]==[] goto InputParamsFailed
-+set PROJ_NAME=%~1
-+set PROJ_EXEC=%~2
-+set BUILD_TYPE=%~3
-+set BUILD_ARCH=%~4
-+set PROJ_DIR=%~5
-+
-+REM *** Change these Folders if required ***
-+REM Check if the environment variable NETGENDIR exists, 
-+REM and use it as the installation folder
-+set W_WO_OCC=%BUILD_TYPE:~-4,3%
-+if defined NETGENDIR (
-+   echo Environment variable NETGENDIR found: %NETGENDIR%
-+   set INSTALL_FOLDER=%NETGENDIR%\..
-+) else (
-+   echo Environment variable NETGENDIR not found.... using default location!!!
-+   if /i "%W_WO_OCC%" == "OCC" (   
-+      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instOCC_%BUILD_ARCH%
-+   ) else (
-+      set INSTALL_FOLDER=%PROJ_DIR%..\..\%PROJ_NAME%-instNoOCC_%BUILD_ARCH%
-+   )   
-+)
-+   
-+set NGLIB_LIBINC=%PROJ_DIR%..\nglib
-+
-+
-+echo POSTBUILD Script for %PROJ_NAME% ........
-+
-+REM *** Embed the Windows Manifest into the Executable File ***
-+REM echo Embedding Manifest into the DLL: %PROJ_EXEC% ....
-+REM mt.exe -manifest "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%.intermediate.manifest" "-outputresource:%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%;#2" 
-+REM if errorlevel 1 goto ManifestFailed
-+REM echo Embedding Manifest into the DLL: Completed OK!!
-+
-+REM *** Copy the DLL and LIB Files into the install folder ***
-+echo Installing required files into %INSTALL_FOLDER% ....
-+if /i "%BUILD_ARCH%" == "win32" (
-+   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
-+   if errorlevel 1 goto DLLInstallFailed
-+)
-+if /i "%BUILD_ARCH%" == "x64" (
-+   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_EXEC%" "%INSTALL_FOLDER%\bin\" /i /d /y
-+   if errorlevel 1 goto DLLInstallFailed
-+)   
-+echo Installing %PROJ_EXEC%: Completed OK!!
-+
-+if /i "%BUILD_ARCH%" == "win32" (
-+   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
-+   if errorlevel 1 goto LibInstallFailed
-+)
-+if /i "%BUILD_ARCH%" == "x64" (
-+   xcopy "%PROJ_DIR%%PROJ_NAME%\%BUILD_ARCH%\%BUILD_TYPE%\%PROJ_NAME%.lib" "%INSTALL_FOLDER%\lib\" /i /d /y
-+   if errorlevel 1 goto LibInstallFailed
-+)   
-+
-+if /i "%BUILD_ARCH%" == "x64" (
-+   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x64\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y   
-+   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x64\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y
-+
-+   if errorlevel 1 goto ExternalInstallFailed
-+)
-+if /i "%BUILD_ARCH%" == "win32" (
-+   xcopy "%PROJ_DIR%..\..\ext_libs\pthreads-Win32\dll\x86\pthreadVC2.dll" "%INSTALL_FOLDER%\bin" /i /d /y
-+   xcopy "%PROJ_DIR%..\..\ext_libs\zlib\x86\lib\zlib1.dll" "%INSTALL_FOLDER%\bin" /i /d /y
-+   if errorlevel 1 goto ExternalInstallFailed
-+)
-+
-+echo Installing %PROJ_NAME%.lib: Completed OK!!
-+
-+REM *** Copy the include file nglib.h into the install folder ***
-+echo Installing %PROJ_NAME%.h into %INSTALL_FOLDER%\include ....
-+xcopy "%NGLIB_LIBINC%\%PROJ_NAME%.h" "%INSTALL_FOLDER%\include\" /i /d /y
-+echo  "%NGLIB_LIBINC%\..\libsrc\include\nginterface.hpp"
-+xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface.h" "%INSTALL_FOLDER%\include\" /i /d /y
-+xcopy "%NGLIB_LIBINC%\..\libsrc\include\nginterface_v2.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+xcopy "%NGLIB_LIBINC%\..\libsrc\visualization\soldata.hpp" "%INSTALL_FOLDER%\include\" /i /d /y
-+if errorlevel 1 goto LibInstallFailed
-+echo Installing %PROJ_NAME%.h: Completed OK!!
-+
-+
-+REM *** Clean up the build directory by deleting the OBJ files ***
-+REM echo Deleting the %PROJ_NAME% build folder %PROJ_DIR%%PROJ_NAME% ....
-+REM rmdir %PROJ_DIR%%PROJ_NAME% /s /q
-+
-+REM *** If there have been no errors so far, we are done ***
-+goto BuildEventOK
-+
-+REM *** Error Messages for each stage of the post build process ***
-+:InputParamsFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Invalid number of input parameters!!!
-+exit 1
-+:ManifestFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Manifest not successfully embedded!!!
-+exit 1
-+:DLLInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying the %PROJ_NAME% DLL into install folder!!!
-+exit 1
-+:LibInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying %PROJ_NAME%.lib or %PROJ_NAME%.h into install folder!!!
-+exit 1
-+:ExternalInstallFailed
-+echo POSTBUILD Script for %PROJ_NAME% FAILED..... Error copying pthreadVC2.dll into install folder!!!
-+exit 1 
-+
-+:BuildEventOK
-+echo POSTBUILD Script for %PROJ_NAME% completed OK.....!!
-diff -Naur netgen-5.3.1_SRC_orig/windows/resource.h netgen-5.3.1_SRC_modif/windows/resource.h
---- netgen-5.3.1_SRC_orig/windows/resource.h   2014-08-29 13:53:59.000000000 +0400
-+++ netgen-5.3.1_SRC_modif/windows/resource.h  2019-11-14 16:56:26.894326686 +0300
-@@ -1,25 +1,25 @@
--//{{NO_DEPENDENCIES}}\r
--// Microsoft Visual C++ generated include file.\r
--// Used by netgen.rc and nglib.rc\r
--//\r
--#define _USE_DECLSPECS_FOR_SAL          0\r
--#define _USE_ATTRIBUTES_FOR_SAL         0\r
--#define VS_VERSION_INFO                 1\r
--#define VFFF_ISSHAREDFILE               0x0001\r
--#define VFF_CURNEDEST                   0x0001\r
--#define VIFF_FORCEINSTALL               0x0001\r
--#define VFF_FILEINUSE                   0x0002\r
--#define VIFF_DONTDELETEOLD              0x0002\r
--#define VFF_BUFFTOOSMALL                0x0004\r
--#define VS_USER_DEFINED                 100\r
--\r
--// Next default values for new objects\r
--// \r
--#ifdef APSTUDIO_INVOKED\r
--#ifndef APSTUDIO_READONLY_SYMBOLS\r
--#define _APS_NEXT_RESOURCE_VALUE        101\r
--#define _APS_NEXT_COMMAND_VALUE         40001\r
--#define _APS_NEXT_CONTROL_VALUE         1000\r
--#define _APS_NEXT_SYMED_VALUE           101\r
--#endif\r
--#endif\r
-+//{{NO_DEPENDENCIES}}
-+// Microsoft Visual C++ generated include file.
-+// Used by netgen.rc and nglib.rc
-+//
-+#define _USE_DECLSPECS_FOR_SAL          0
-+#define _USE_ATTRIBUTES_FOR_SAL         0
-+#define VS_VERSION_INFO                 1
-+#define VFFF_ISSHAREDFILE               0x0001
-+#define VFF_CURNEDEST                   0x0001
-+#define VIFF_FORCEINSTALL               0x0001
-+#define VFF_FILEINUSE                   0x0002
-+#define VIFF_DONTDELETEOLD              0x0002
-+#define VFF_BUFFTOOSMALL                0x0004
-+#define VS_USER_DEFINED                 100
-+
-+// Next default values for new objects
-+// 
-+#ifdef APSTUDIO_INVOKED
-+#ifndef APSTUDIO_READONLY_SYMBOLS
-+#define _APS_NEXT_RESOURCE_VALUE        101
-+#define _APS_NEXT_COMMAND_VALUE         40001
-+#define _APS_NEXT_CONTROL_VALUE         1000
-+#define _APS_NEXT_SYMED_VALUE           101
-+#endif
-+#endif
diff --git a/config/patches/netgen.001.common.v6.patch b/config/patches/netgen.001.common.v6.patch
deleted file mode 100644 (file)
index 20c187b..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-diff --git a/libsrc/occ/occgenmesh.cpp b/libsrc/occ/occgenmesh.cpp
-index 314d405a..7c912bcc 100644
---- a/libsrc/occ/occgenmesh.cpp
-+++ b/libsrc/occ/occgenmesh.cpp
-@@ -49,7 +49,7 @@ namespace netgen
-   double ComputeH (double kappa, const MeshingParameters & mparam)\r
-   {\r
-     kappa *= mparam.curvaturesafety;\r
--    /*\r
-+    /**/\r
-     double hret;\r
\r
-     if (mparam.maxh * kappa < 1)\r
-@@ -61,7 +61,7 @@ namespace netgen
-       hret = mparam.maxh;\r
\r
-     return hret;\r
--    */\r
-+    /**/\r
-     // return min(mparam.maxh, 1/kappa);\r
-     return (mparam.maxh*kappa < 1) ? mparam.maxh : 1/kappa;\r
-   }\r
-@@ -253,10 +253,12 @@ namespace netgen
-       {\r
-         oldpnt = pnt;\r
-         pnt = c->Value(s0+(i/double(DIVIDEEDGESECTIONS))*(s1-s0));\r
-+        // !!! no more than 1 segment per <edge length>/DIVIDEEDGESECTIONS\r
-         hvalue[i] = hvalue[i-1] +\r
--          1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
--          pnt.Distance(oldpnt);\r
-+          min( 1.0,\r
-+               1.0/mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))*\r
-+               pnt.Distance(oldpnt));\r
\r
-         //(*testout) << "mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z())) " << mesh.GetH(Point3d(pnt.X(), pnt.Y(), pnt.Z()))\r
-         //       <<  " pnt.Distance(oldpnt) " << pnt.Distance(oldpnt) << endl;\r
\r
-@@ -299,7 +301,7 @@ namespace netgen
-         cout << "CORRECTED" << endl;\r
-         ps.SetSize (nsubedges-2);\r
-         params.SetSize (nsubedges);\r
--        params[nsubedges] = s1;\r
-+        params[nsubedges-1] = s1;\r
-       }\r
-   }\r
\r
-@@ -323,6 +325,8 @@ namespace netgen
\r
-     double eps = 1e-6 * geom.GetBoundingBox().Diam();\r
\r
-+    int first_vp = mesh.GetNP()+1;\r
-+\r
-     tsearch.Start();\r
-     for (int i = 1; i <= nvertices; i++)\r
-       {\r
-@@ -481,22 +485,107 @@ namespace netgen
\r
-                 if (!merge_solids)\r
-                   {\r
--                    pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge)) + PointIndex::BASE-1;\r
--                    pnums.Last() = geom.vmap.FindIndex (TopExp::LastVertex (edge)) + PointIndex::BASE-1;\r
-+                    //pnums[0] = geom.vmap.FindIndex (TopExp::FirstVertex (edge)) + PointIndex::BASE-1;\r
-+                    //pnums.Last() = geom.vmap.FindIndex (TopExp::LastVertex (edge)) + PointIndex::BASE-1;\r
-+                    const int dpi = PointIndex::BASE-1;\r
-+                    MeshPoint dfltP ( Point<3> ( 0, 0, 0 ) );\r
-+                    PointIndex *ipp[] = { &pnums[0], &pnums.Last() };\r
-+                    TopoDS_Iterator vIt( edge, false );\r
-+                    TopoDS_Vertex v[2];\r
-+                    v[0] = TopoDS::Vertex( vIt.Value() ); vIt.Next();\r
-+                    v[1] = TopoDS::Vertex( vIt.Value() );\r
-+                    if ( v[0].Orientation() == TopAbs_REVERSED )\r
-+                      std::swap( v[0], v[1] );\r
-+                    for ( int i = 0; i < 2; ++i)\r
-+                    {\r
-+                      PointIndex &ip = *ipp[i];\r
-+                      ip = geom.vmap.FindIndex ( v[i] ) + dpi;\r
-+                      if ( ip == dpi || ip > nvertices + dpi )\r
-+                      {\r
-+                        PointIndex iv = ip;\r
-+                        if ( ip == dpi )\r
-+                          ip = iv = const_cast<OCCGeometry&>(geom).vmap.Add( v[i] );\r
-+                        gp_Pnt pnt = BRep_Tool::Pnt( v[i] );\r
-+                        MeshPoint mp( Point<3>(pnt.X(), pnt.Y(), pnt.Z()) );\r
-+                        for (PointIndex pi = 1; pi < first_vp; pi++)\r
-+                          if ( Dist2 (mesh.Point(pi), Point<3>(mp)) < 1e-100 )\r
-+                          {\r
-+                            ip = pi;\r
-+                            if ( mesh.Point(ip).GetLayer() != dfltP.GetLayer() && mesh.Point(ip).GetLayer() != iv )\r
-+                              continue;\r
-+                            if ( mesh.Point(ip).GetLayer() == dfltP.GetLayer())\r
-+                              mesh.Point(ip) = MeshPoint( mesh.Point(ip), iv );\r
-+                            break;\r
-+                          }\r
-+                      }\r
-+                      else\r
-+                      {\r
-+                        ip += first_vp - 1;\r
-+                      }\r
-+                    }\r
-                   }\r
-                 else\r
-                   {\r
--                    Point<3> fp = occ2ng (BRep_Tool::Pnt (TopExp::FirstVertex (edge)));\r
--                    Point<3> lp = occ2ng (BRep_Tool::Pnt (TopExp::LastVertex (edge)));\r
-+                    TopoDS_Iterator vIt( edge, false );\r
-+                    TopoDS_Vertex v1 = TopoDS::Vertex( vIt.Value() ); vIt.Next();\r
-+                    TopoDS_Vertex v2 = TopoDS::Vertex( vIt.Value() );\r
-+                    if ( v1.Orientation() == TopAbs_REVERSED )\r
-+                      std::swap( v1, v2 );\r
-+                    const bool isClosedEdge = v1.IsSame( v2 );\r
-+\r
-+                    Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));\r
-+                    Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));\r
-+                    double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));\r
-+                    if ( isClosedEdge )\r
-+                      tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );\r
\r
-                     pnums[0] = PointIndex::INVALID;\r
-                     pnums.Last() = PointIndex::INVALID;\r
-                     for (PointIndex pi : vertexrange)\r
-                       {\r
--                        if (Dist2 (mesh[pi], fp) < eps*eps) pnums[0] = pi;\r
--                        if (Dist2 (mesh[pi], lp) < eps*eps) pnums.Last() = pi;\r
-+                        if (Dist2 (mesh[pi], fp) < tol2) pnums[0] = pi;\r
-+                        if (Dist2 (mesh[pi], lp) < tol2) pnums.Last() = pi;\r
-                       }\r
--                  }\r
-+                    if (( isClosedEdge && pnums[0] != pnums.Last() ) ||\r
-+                        ( !isClosedEdge && pnums[0] == pnums.Last() ))\r
-+                      pnums[0] = pnums.Last() = PointIndex::INVALID;\r
-+                    if ( pnums[0] < PointIndex::BASE || pnums.Last() < PointIndex::BASE )\r
-+                    {\r
-+                      // take into account a possible large gap between a vertex and an edge curve\r
-+                      // end and a large vertex tolerance covering the whole edge\r
-+                      if ( pnums[0] < PointIndex::BASE )\r
-+                      {\r
-+                        double tol = BRep_Tool::Tolerance( v1 );\r
-+                        for (PointIndex pi = 1; pi < first_ep; pi++)\r
-+                          if (pi != pnums.Last() && Dist2 (mesh[pi], fp) < 2*tol*tol)\r
-+                            pnums[0] = pi;\r
-+\r
-+                        if ( pnums[0] < PointIndex::BASE )\r
-+                          pnums[0] = first_ep-1 - nvertices + geom.vmap.FindIndex ( v1 );\r
-+                      }\r
-+                      if ( isClosedEdge )\r
-+                      {\r
-+                        pnums.Last() = pnums[0];\r
-+                      }\r
-+                      else\r
-+                      {\r
-+                        if ( pnums.Last() < PointIndex::BASE )\r
-+                        {\r
-+                          double tol = BRep_Tool::Tolerance( v2 );\r
-+                          for (PointIndex pi = 1; pi < first_ep; pi++)\r
-+                            if (pi != pnums[0] && Dist2 (mesh[pi], lp) < 2*tol*tol)\r
-+                              pnums.Last() = pi;\r
-+\r
-+                          if ( pnums.Last() < PointIndex::BASE )\r
-+                            pnums.Last() = first_ep-1-nvertices + geom.vmap.FindIndex ( v2 );\r
-+                        }\r
-+\r
-+                        if ( Dist2( fp, mesh[PointIndex(pnums[0])]) >\r
-+                             Dist2( lp, mesh[PointIndex(pnums.Last())]))\r
-+                          std::swap( pnums[0], pnums.Last() );\r
-+                      }\r
-+                    }\r
-+                 }\r
\r
-                 for (size_t i = 1; i <= mp.Size(); i++)\r
-                   {\r
-@@ -505,17 +594,19 @@ namespace netgen
\r
-                     // for (PointIndex j = first_ep; j < mesh.Points().End(); j++)\r
-                     for (PointIndex j = first_ep; j < *mesh.Points().Range().end(); j++)\r
-+                    {\r
-+                      if (!merge_solids && mesh.Point(j).GetLayer() != geomedgenr ) continue;\r
-                       if ((mesh.Point(j)-Point<3>(mp[i-1])).Length() < eps)\r
-                         {\r
-                           exists = true;\r
-                           pnums[i] = j;\r
-                           break;\r
-                         }\r
--                      \r
-+                    }\r
-                     tsearch.Stop();\r
-                     \r
-                     if (!exists)\r
--                      pnums[i] = mesh.AddPoint (mp[i-1]);\r
-+                      pnums[i] = mesh.AddPoint (mp[i-1], geomedgenr);\r
-                   }\r
-                 if(geom.enames.Size() && geom.enames[curr-1] != "")\r
-                   mesh.SetCD2Name(geomedgenr, geom.enames[curr-1]);\r
-@@ -599,6 +690,9 @@ namespace netgen
-     //                                << " p1 " << mesh.LineSegment(i)[0] << " p2 " << mesh.LineSegment(i)[1] << endl;\r
-     //        exit(10);\r
\r
-+    for (int j = 1; j <= mesh.GetNP(); j++) // support SALOME fuse edges: set level to zero\r
-+      mesh.Point(j) = MeshPoint( (Point<3>&) mesh.Point(j) );\r
-+\r
-     mesh.CalcSurfacesOfNode();\r
-     multithread.task = savetask;\r
-   }\r
-@@ -652,7 +746,7 @@ namespace netgen
\r
-         Box<3> bb = geom.GetBoundingBox();\r
\r
--        int projecttype = PLANESPACE;\r
-+        //int projecttype = PLANESPACE;\r
-         \r
-         static Timer tinit("init");\r
-         tinit.Start();\r
-diff --git a/libsrc/occ/occmeshsurf.cpp b/libsrc/occ/occmeshsurf.cpp
-index 7fa5d237..9e05fd95 100644
---- a/libsrc/occ/occmeshsurf.cpp
-+++ b/libsrc/occ/occmeshsurf.cpp
-@@ -173,50 +173,6 @@ namespace netgen
-       gp_Vec du, dv;
-       occface->D1 (geominfo1.u, geominfo1.v, pnt, du, dv);
--        // static Timer t("occ-defintangplane calculations");
--        // RegionTimer reg(t);
--
--        Mat<3,2> D1_;
--      D1_(0,0) = du.X(); D1_(1,0) = du.Y(); D1_(2,0) = du.Z();
--      D1_(0,1) = dv.X(); D1_(1,1) = dv.Y(); D1_(2,1) = dv.Z();
--        auto D1T_ = Trans(D1_);
--      auto D1TD1_ = D1T_*D1_;
--      if (Det (D1TD1_) == 0) throw SingularMatrixException();
--        Mat<2,2> DDTinv_;
--        CalcInverse (D1TD1_, DDTinv_);
--
--        Mat<3,2> Y_;
--      Vec<3> y1_ = (ap2-ap1).Normalize();
--      Vec<3> y2_ = Cross(n, y1_).Normalize();
--      for (int i = 0; i < 3; i++)
--        {
--          Y_(i,0) = y1_(i);
--          Y_(i,1) = y2_(i);
--        }
--
--        auto A_ = DDTinv_ * D1T_ * Y_;
--      Mat<2,2> Ainv_;
--      if (Det(A_) == 0) throw SingularMatrixException();
--      CalcInverse (A_, Ainv_);
--
--      Vec<2> temp_ = Ainv_ * (psp2-psp1);
--      double r_ = temp_.Length();
--        Mat<2,2> R_;
--        R_(0,0) = temp_(0)/r_;
--        R_(1,0) = temp_(1)/r_;
--        R_(0,1) = -R_(1,0);
--        R_(1,1) = R_(0,0);
--
--        A_ = A_ * R_;
--        Ainv_ = Trans(R_) * Ainv_;
--
--        Amat = A_;
--        Amatinv = Ainv_;
--        
--      // temp = Amatinv * (psp2-psp1);
--        
--
--#ifdef OLD
-       DenseMatrix D1(3,2), D1T(2,3), DDTinv(2,2);
-       D1(0,0) = du.X(); D1(1,0) = du.Y(); D1(2,0) = du.Z();
-       D1(0,1) = dv.X(); D1(1,1) = dv.Y(); D1(2,1) = dv.Z();
-@@ -289,8 +245,7 @@ namespace netgen
-           }
-         // cout << "=?= Ainv = " << endl << Ainv << endl;
-       temp = Amatinv * (psp2-psp1);
--        cout << " =?= Amatinv = " << Amatinv << endl;        
--#endif
-+        // cout << " =?= Amatinv = " << Amatinv << endl;        
-       };
-  
-   }
-@@ -380,6 +335,7 @@ namespace netgen
-     double u = gi.u;
-     double v = gi.v;
-+    if ( 0 ) { // exclude Newton's method
-     gp_Pnt x = occface->Value (u,v);
-     if (p.SquareDistance(x) <= sqr(PROJECTION_TOLERANCE)) return;
-@@ -429,7 +385,7 @@ namespace netgen
-           }
-       }
-     while (count < 20);
--    
-+    }    
-     // Newton did not converge, use OCC projection
diff --git a/config/patches/netgen.002.version.v6.patch b/config/patches/netgen.002.version.v6.patch
deleted file mode 100644 (file)
index 9a67397..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- netgen-6.2.2101_orig/cmake/generate_version_file.cmake     2021-09-21 17:05:13.000000000 +0300
-+++ netgen-6.2.2101_new/cmake/generate_version_file.cmake      2021-10-25 18:10:29.562193300 +0300
-@@ -15,8 +15,8 @@
-       string(REGEX REPLACE "^netgen(.*)" "\\1" git_version_string "${git_version_string}")
-     endif()
-   else()
--    MESSAGE(WARNING "Could not determine git-version from source code - assuming 6.2.0.0")
--    set(git_version_string "v6.2.0.0")
-+    MESSAGE(WARNING "Could not determine git-version from source code - assuming 6.2.0-0")
-+    set(git_version_string "v6.2.0-0")
-   endif()
- endif()
diff --git a/config/patches/netgen.003.pthread.v6.patch b/config/patches/netgen.003.pthread.v6.patch
deleted file mode 100644 (file)
index e6ad4bd..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- netgen-6.2.2101_orig/CMakeLists.txt        2021-09-21 17:05:13.000000000 +0300
-+++ netgen-6.2.2101_new/CMakeLists.txt 2021-10-25 16:31:45.656379721 +0300
-@@ -233,6 +233,11 @@
- endif(NOT ZLIB_INCLUDE_DIRS)
- include_directories(${ZLIB_INCLUDE_DIRS})
-+find_package(Threads REQUIRED)
-+if(NOT WIN32)
-+  string(APPEND CMAKE_CXX_STANDARD_LIBRARIES " -dl")
-+endif()
-+
- #######################################################################
- if (USE_GUI)
-     find_package(TCL 8.5 REQUIRED)
diff --git a/config/patches/numpy.001_shell.patch b/config/patches/numpy.001_shell.patch
deleted file mode 100644 (file)
index 13b28ef..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur numpy-1.15.1_SRC_orig/numpy/distutils/exec_command.py numpy-1.15.1_SRC_modif/numpy/distutils/exec_command.py
---- numpy-1.15.1_SRC_orig/numpy/distutils/exec_command.py      2018-08-19 11:17:10.000000000 +0300
-+++ numpy-1.15.1_SRC_modif/numpy/distutils/exec_command.py     2018-09-26 11:44:07.000000000 +0300
-@@ -234,9 +234,9 @@
-         # On POSIX, subprocess always uses /bin/sh, override
-         sh = os.environ.get('SHELL', '/bin/sh')
-         if is_sequence(command):
--            command = [sh, '-c', ' '.join(command)]
-+            command = [sh, '-cf', ' '.join(command)]
-         else:
--            command = [sh, '-c', command]
-+            command = [sh, '-cf', command]
-         use_shell = False
-     elif os.name == 'nt' and is_sequence(command):
diff --git a/config/patches/occt.001_transparency.patch b/config/patches/occt.001_transparency.patch
deleted file mode 100644 (file)
index 175bd7e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur OCCT-7.5.0p1_SRC_orig/src/OpenGl/OpenGl_LayerList.cxx OCCT-7.5.0p1_SRC_modif/src/OpenGl/OpenGl_LayerList.cxx
---- OCCT-7.5.0p1_SRC_orig/src/OpenGl/OpenGl_LayerList.cxx
-+++ OCCT-7.5.0p1_SRC_modif/src/OpenGl/OpenGl_LayerList.cxx
-@@ -889,7 +889,7 @@
-   }
-   else
-   {
--    aCtx->core11fwd->glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-+    aCtx->core15fwd->glBlendFuncSeparate (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-   }
-   // During blended order-independent transparency pass the depth test
-diff -Naur OCCT-7.5.0p1_SRC_orig/src/OpenGl/OpenGl_View_Redraw.cxx OCCT-7.5.0p1_SRC_modif/src/OpenGl/OpenGl_View_Redraw.cxx
---- OCCT-7.5.0p1_SRC_orig/src/OpenGl/OpenGl_View_Redraw.cxx
-+++ OCCT-7.5.0p1_SRC_modif/src/OpenGl/OpenGl_View_Redraw.cxx
-@@ -933,7 +933,7 @@
- #endif
-   const OpenGl_Vec4 aBgColor = aCtx->Vec4FromQuantityColor (myBgColor);
--  glClearColor (aBgColor.r(), aBgColor.g(), aBgColor.b(), 0.0f);
-+  glClearColor (aBgColor.r(), aBgColor.g(), aBgColor.b(), 1.0f);
-   glClear (toClear);
-
diff --git a/config/patches/opencv.001_compile.patch b/config/patches/opencv.001_compile.patch
deleted file mode 100644 (file)
index f035ade..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake
---- opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake    2016-12-23 15:54:44.000000000 +0300
-+++ opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake   2019-11-14 17:51:34.265254970 +0300
-@@ -28,17 +28,17 @@
-   set(ENABLE_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE)
- endif()
--if(MINGW OR (X86 AND UNIX AND NOT APPLE))
--  # mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O2 instead
-+if(1 OR MINGW OR (X86 AND UNIX AND NOT APPLE))
-+  # mingw compiler is known to produce unstable SSE code with -O3 hence we are trying to use -O0 instead
-   if(CMAKE_COMPILER_IS_GNUCXX)
-     foreach(flags CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
--      string(REPLACE "-O3" "-O2" ${flags} "${${flags}}")
-+      string(REPLACE "-O3" "-O0" ${flags} "${${flags}}")
-     endforeach()
-   endif()
-   if(CMAKE_COMPILER_IS_GNUCC)
-     foreach(flags CMAKE_C_FLAGS CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_DEBUG)
--      string(REPLACE "-O3" "-O2" ${flags} "${${flags}}")
-+      string(REPLACE "-O3" "-O0" ${flags} "${${flags}}")
-     endforeach()
-   endif()
- endif()
diff --git a/config/patches/opencv.002_cmake.patch b/config/patches/opencv.002_cmake.patch
deleted file mode 100644 (file)
index 28d186e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake
---- opencv-3.2.0_SRC_orig/cmake/OpenCVCompilerOptions.cmake    2019-09-02 17:10:46.940341420 +0300
-+++ opencv-3.2.0_SRC_modif/cmake/OpenCVCompilerOptions.cmake   2019-09-02 17:12:49.592741875 +0300
-@@ -18,9 +18,9 @@
-         message(STATUS "Unable to compile program with enabled ccache, reverting...")
-         set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${__OLD_RULE_LAUNCH_COMPILE}")
-       endif()
--    else()
--      message(STATUS "Looking for ccache - not found")
-     endif()
-+  else()
-+    message(STATUS "Looking for ccache - not found")
-   endif()
- endif()
diff --git a/config/patches/paraview.0001-LATA-reader.patch b/config/patches/paraview.0001-LATA-reader.patch
deleted file mode 100644 (file)
index 873c94d..0000000
+++ /dev/null
@@ -1,20242 +0,0 @@
-From 8b92e13269c76f0c4b3422cd2774412bb24368b7 Mon Sep 17 00:00:00 2001
-From: Antoine Gerschenfeld <antoine.gerschenfeld@cea.fr>
-Date: Sun, 19 May 2019 20:24:42 +0200
-Subject: [PATCH 1/3] LATA reader
-
----
- databases/CMakeLists.txt                      |    1 +
- databases/readers/Lata/ArrOfBit.C             |  179 ++
- databases/readers/Lata/ArrOfBit.h             |  110 +
- databases/readers/Lata/ArrOfDouble.C          | 1185 +++++++++
- databases/readers/Lata/ArrOfDouble.h          |  353 +++
- databases/readers/Lata/ArrOfFloat.C           | 1185 +++++++++
- databases/readers/Lata/ArrOfFloat.h           |  353 +++
- databases/readers/Lata/ArrOfInt.C             | 1110 ++++++++
- databases/readers/Lata/ArrOfInt.h             |  343 +++
- .../readers/Lata/ArrOf_Scalar_Prototype.cpp.h | 1168 +++++++++
- .../readers/Lata/ArrOf_Scalar_Prototype.h     |  357 +++
- databases/readers/Lata/CMakeLists.txt         |   35 +
- .../readers/Lata/Connectivite_som_elem.C      |  189 ++
- .../readers/Lata/Connectivite_som_elem.h      |   44 +
- databases/readers/Lata/DoubleTab.h            |   30 +
- databases/readers/Lata/EFichier.h             |   60 +
- databases/readers/Lata/Entree.h               |   77 +
- databases/readers/Lata/FloatTab.h             |   30 +
- databases/readers/Lata/IntTab.h               |   31 +
- databases/readers/Lata/LataDB.C               | 2313 +++++++++++++++++
- databases/readers/Lata/LataDB.h               |  303 +++
- databases/readers/Lata/LataDBmed.h            |  586 +++++
- databases/readers/Lata/LataFilter.C           | 1106 ++++++++
- databases/readers/Lata/LataFilter.h           |  261 ++
- databases/readers/Lata/LataJournal.h          |   36 +
- databases/readers/Lata/LataStructures.C       |  743 ++++++
- databases/readers/Lata/LataStructures.h       |  332 +++
- .../readers/Lata/LataV1_field_definitions.C   |   84 +
- .../readers/Lata/LataV1_field_definitions.h   |   35 +
- databases/readers/Lata/LataVector.h           |   64 +
- databases/readers/Lata/LataWriter.C           |  331 +++
- databases/readers/Lata/LataWriter.h           |   61 +
- databases/readers/Lata/Lata_tools.C           |  128 +
- databases/readers/Lata/Lata_tools.h           |  194 ++
- databases/readers/Lata/LmlReader.C            |  435 ++++
- databases/readers/Lata/LmlReader.h            |   38 +
- databases/readers/Lata/Motcle.C               |  142 +
- databases/readers/Lata/Motcle.h               |  150 ++
- databases/readers/Lata/Noms.h                 |   29 +
- databases/readers/Lata/Objet_U.h              |   41 +
- databases/readers/Lata/Octree_Double.C        |  395 +++
- databases/readers/Lata/Octree_Double.h        |   89 +
- databases/readers/Lata/Octree_Int.C           |  485 ++++
- databases/readers/Lata/Octree_Int.h           |  103 +
- databases/readers/Lata/OpenDXWriter.C         |  335 +++
- databases/readers/Lata/OpenDXWriter.h         |   83 +
- databases/readers/Lata/Operator.h             |  224 ++
- databases/readers/Lata/OperatorBoundary.C     |  227 ++
- databases/readers/Lata/OperatorDualMesh.C     |  222 ++
- databases/readers/Lata/OperatorFacesMesh.C    |  130 +
- databases/readers/Lata/OperatorReconnect.C    |  125 +
- databases/readers/Lata/OperatorRegularize.C   |  296 +++
- .../readers/Lata/Rebuild_virtual_layer.C      |  141 +
- .../readers/Lata/Rebuild_virtual_layer.h      |   35 +
- databases/readers/Lata/Sortie.h               |   44 +
- databases/readers/Lata/Static_Int_Lists.C     |  128 +
- databases/readers/Lata/Static_Int_Lists.h     |  110 +
- databases/readers/Lata/UserFields.C           | 1038 ++++++++
- databases/readers/Lata/UserFields.h           |  108 +
- databases/readers/Lata/Vect.h                 |   34 +
- databases/readers/Lata/VectArrOfInt.h         |   34 +
- databases/readers/Lata/arch.h                 |   34 +
- databases/readers/Lata/avtlataFileFormat.C    |  865 ++++++
- databases/readers/Lata/avtlataFileFormat.h    |  114 +
- databases/readers/Lata/simd_interface.h       |   31 +
- databases/visit_readers.xml                   |   13 +
- 66 files changed, 19695 insertions(+)
- create mode 100644 databases/readers/Lata/ArrOfBit.C
- create mode 100644 databases/readers/Lata/ArrOfBit.h
- create mode 100644 databases/readers/Lata/ArrOfDouble.C
- create mode 100644 databases/readers/Lata/ArrOfDouble.h
- create mode 100644 databases/readers/Lata/ArrOfFloat.C
- create mode 100644 databases/readers/Lata/ArrOfFloat.h
- create mode 100644 databases/readers/Lata/ArrOfInt.C
- create mode 100644 databases/readers/Lata/ArrOfInt.h
- create mode 100644 databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h
- create mode 100644 databases/readers/Lata/ArrOf_Scalar_Prototype.h
- create mode 100644 databases/readers/Lata/CMakeLists.txt
- create mode 100644 databases/readers/Lata/Connectivite_som_elem.C
- create mode 100644 databases/readers/Lata/Connectivite_som_elem.h
- create mode 100644 databases/readers/Lata/DoubleTab.h
- create mode 100644 databases/readers/Lata/EFichier.h
- create mode 100644 databases/readers/Lata/Entree.h
- create mode 100644 databases/readers/Lata/FloatTab.h
- create mode 100644 databases/readers/Lata/IntTab.h
- create mode 100644 databases/readers/Lata/LataDB.C
- create mode 100644 databases/readers/Lata/LataDB.h
- create mode 100644 databases/readers/Lata/LataDBmed.h
- create mode 100644 databases/readers/Lata/LataFilter.C
- create mode 100644 databases/readers/Lata/LataFilter.h
- create mode 100644 databases/readers/Lata/LataJournal.h
- create mode 100644 databases/readers/Lata/LataStructures.C
- create mode 100644 databases/readers/Lata/LataStructures.h
- create mode 100644 databases/readers/Lata/LataV1_field_definitions.C
- create mode 100644 databases/readers/Lata/LataV1_field_definitions.h
- create mode 100644 databases/readers/Lata/LataVector.h
- create mode 100644 databases/readers/Lata/LataWriter.C
- create mode 100644 databases/readers/Lata/LataWriter.h
- create mode 100644 databases/readers/Lata/Lata_tools.C
- create mode 100644 databases/readers/Lata/Lata_tools.h
- create mode 100644 databases/readers/Lata/LmlReader.C
- create mode 100644 databases/readers/Lata/LmlReader.h
- create mode 100644 databases/readers/Lata/Motcle.C
- create mode 100644 databases/readers/Lata/Motcle.h
- create mode 100644 databases/readers/Lata/Noms.h
- create mode 100644 databases/readers/Lata/Objet_U.h
- create mode 100644 databases/readers/Lata/Octree_Double.C
- create mode 100644 databases/readers/Lata/Octree_Double.h
- create mode 100644 databases/readers/Lata/Octree_Int.C
- create mode 100644 databases/readers/Lata/Octree_Int.h
- create mode 100644 databases/readers/Lata/OpenDXWriter.C
- create mode 100644 databases/readers/Lata/OpenDXWriter.h
- create mode 100644 databases/readers/Lata/Operator.h
- create mode 100644 databases/readers/Lata/OperatorBoundary.C
- create mode 100644 databases/readers/Lata/OperatorDualMesh.C
- create mode 100644 databases/readers/Lata/OperatorFacesMesh.C
- create mode 100644 databases/readers/Lata/OperatorReconnect.C
- create mode 100644 databases/readers/Lata/OperatorRegularize.C
- create mode 100644 databases/readers/Lata/Rebuild_virtual_layer.C
- create mode 100644 databases/readers/Lata/Rebuild_virtual_layer.h
- create mode 100644 databases/readers/Lata/Sortie.h
- create mode 100644 databases/readers/Lata/Static_Int_Lists.C
- create mode 100644 databases/readers/Lata/Static_Int_Lists.h
- create mode 100644 databases/readers/Lata/UserFields.C
- create mode 100644 databases/readers/Lata/UserFields.h
- create mode 100644 databases/readers/Lata/Vect.h
- create mode 100644 databases/readers/Lata/VectArrOfInt.h
- create mode 100644 databases/readers/Lata/arch.h
- create mode 100644 databases/readers/Lata/avtlataFileFormat.C
- create mode 100644 databases/readers/Lata/avtlataFileFormat.h
- create mode 100644 databases/readers/Lata/simd_interface.h
-
-diff --git a/databases/CMakeLists.txt b/databases/CMakeLists.txt
-index a3d1b03..7b4bd48 100644
---- a/databases/CMakeLists.txt
-+++ b/databases/CMakeLists.txt
-@@ -35,6 +35,7 @@ set(DEFAULT_BRIDGE_READERS
-   H5Nimrod
-   Image
-   LAMMPS
-+  Lata
-   Lines
-   M3D
-   M3DC1
-diff --git a/databases/readers/Lata/ArrOfBit.C b/databases/readers/Lata/ArrOfBit.C
-new file mode 100644
-index 0000000..c1b4b45
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfBit.C
-@@ -0,0 +1,179 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <ArrOfBit.h>
-+#include <string.h>
-+//Implemente_instanciable_sans_constructeur_ni_destructeur(ArrOfBit,"ArrOfBit",Objet_U);
-+
-+const unsigned int ArrOfBit::SIZE_OF_INT_BITS = 5;
-+const unsigned int ArrOfBit::DRAPEAUX_INT = 31;
-+
-+// Description: Constructeur d'un tableau de taille n, non initialise
-+ArrOfBit::ArrOfBit(entier n)
-+{
-+  taille = 0;
-+  data = 0;
-+  resize_array(n);
-+}
-+
-+// Description: Destructeur.
-+ArrOfBit::~ArrOfBit()
-+{
-+  if (data)
-+    delete[] data;
-+  data = 0;
-+}
-+
-+// Description: Constructeur par copie (deep copy)
-+ArrOfBit::ArrOfBit(const ArrOfBit& array)
-+{
-+  taille = 0;
-+  data = 0;
-+  operator=(array);
-+}
-+
-+// Description:
-+// Taille en "int" du tableau requis pour stocker un tableau de bits
-+// de taille donnees.
-+entier ArrOfBit::calculer_int_size(entier taille) const
-+{
-+  assert(taille >= 0);
-+  entier siz = taille >> SIZE_OF_INT_BITS;
-+  if (taille & DRAPEAUX_INT)
-+    siz++;
-+  return siz;
-+}
-+
-+// Description: Change la taille du tableau et copie les donnees
-+// existantes. Si la taille est plus petite, les donnees sont
-+// tronquees, et si la taille est plus grande, les nouveaux elements
-+// ne sont pas initialises.
-+ArrOfBit& ArrOfBit::resize_array(entier n)
-+{
-+  if (taille == n)
-+    return *this;
-+  assert(n >= 0);
-+  if (n > 0)
-+    {
-+      entier oldsize = calculer_int_size(taille);
-+      entier newsize = calculer_int_size(n);
-+      unsigned int * newdata = new unsigned int[newsize];
-+      entier size_copy = (newsize > oldsize) ? oldsize : newsize;
-+      if (size_copy)
-+        {
-+          memcpy(newdata, data, size_copy);
-+          delete[] data;
-+        }
-+      data = newdata;
-+      taille = n;
-+    }
-+  else
-+    {
-+      delete[] data; // data!=0 sinon taille==n et on ne serait pas ici
-+      data = 0;
-+      taille = 0;
-+    }
-+  return *this;
-+}
-+
-+// Description: Operateur copie (deep copy).
-+ArrOfBit& ArrOfBit::operator=(const ArrOfBit& array)
-+{
-+  entier newsize = calculer_int_size(array.taille);
-+  if (taille != array.taille)
-+    {
-+      if (data)
-+        {
-+          delete[] data;
-+          data = 0;
-+        }
-+      if (newsize > 0)
-+        data = new unsigned int[newsize];
-+    }
-+  taille = array.taille;
-+  if (taille)
-+    memcpy(data, array.data, newsize * sizeof(unsigned int));
-+  return *this;
-+}
-+
-+// Description: Si la valeur est non nulle, met la valeur 1 dans
-+// tous les elements du tableau, sinon met la valeur 0.
-+
-+ArrOfBit& ArrOfBit::operator=(entier val)
-+{
-+  unsigned int valeur = val ? (~((unsigned int) 0)) : 0;
-+  entier size = calculer_int_size(taille);
-+  entier i;
-+  for (i = 0; i < size; i++)
-+    data[i] = valeur;
-+  return *this;
-+}
-+
-+// Description: Ecriture du tableau. Format:
-+// n
-+// 0 1 0 0 1 0 ... (n valeurs)
-+Sortie& ArrOfBit::printOn(Sortie& os) const
-+{
-+  os << taille << finl;
-+  entier i;
-+  // Un retour a la ligne tous les 32 bits,
-+  // Une espace tous les 8 bits
-+  for (i = 0; i < taille; i++)
-+    {
-+      os << operator[](i);
-+      if ((i & 7) == 7)
-+        os << " ";
-+      if ((i & 31) == 31)
-+        os << finl;
-+    }
-+  // Un retour a la ligne si la derniere ligne n'etait pas terminee
-+  if (i & 31)
-+    os << finl;
-+  return os;
-+}
-+
-+// Description: Lecture du tableau. Format:
-+// n
-+// 0 1 0 0 1 0 ... (n valeurs)
-+Entree& ArrOfBit::readOn(Entree& is)
-+{
-+  entier newsize;
-+  is >> newsize;
-+  resize_array(newsize);
-+  operator=(0);
-+
-+  entier i;
-+  for (i = 0; i < taille; i++)
-+    {
-+      entier bit;
-+      is >> bit;
-+      if (bit) setbit(i);
-+    }
-+  return is;
-+}
-diff --git a/databases/readers/Lata/ArrOfBit.h b/databases/readers/Lata/ArrOfBit.h
-new file mode 100644
-index 0000000..ed21f48
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfBit.h
-@@ -0,0 +1,110 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+
-+#ifndef ARROFBIT_H
-+#define ARROFBIT_H
-+
-+#include <assert.h>
-+#include <Objet_U.h>
-+
-+class ArrOfBit // : public Objet_U
-+{
-+// Declare_instanciable_sans_constructeur_ni_destructeur(ArrOfBit);
-+protected:
-+  Entree& readOn(Entree& is);
-+  Sortie& printOn(Sortie& os) const;
-+public:
-+  ArrOfBit(entier n=0);
-+  ArrOfBit(const ArrOfBit& array);              // Constructeur par copie
-+  ~ArrOfBit();                                  // Destructeur
-+  ArrOfBit& operator=(const ArrOfBit& array);   // Operateur copie
-+  ArrOfBit& operator=(entier i);
-+  inline entier operator[](entier i) const;
-+  inline void setbit(entier i) const;
-+  inline entier testsetbit(entier i) const;
-+  inline void clearbit(entier i) const;
-+  inline entier size_array() const;
-+  ArrOfBit& resize_array(entier n);
-+  entier calculer_int_size(entier taille) const;
-+protected:
-+  entier taille;
-+  unsigned int *data;
-+  static const unsigned int SIZE_OF_INT_BITS;
-+  static const unsigned int DRAPEAUX_INT;
-+};
-+
-+// Description: Renvoie 1 si le bit e est mis, 0 sinon.
-+inline entier ArrOfBit::operator[](entier e) const
-+{
-+  assert(e >= 0 && e < taille);
-+  unsigned int i = (unsigned int) e;
-+  unsigned int x = data[i >> SIZE_OF_INT_BITS];
-+  unsigned int flag = 1 << (i & DRAPEAUX_INT);
-+  entier resultat = ((x & flag) != 0) ? 1 : 0;
-+  return resultat;
-+}
-+
-+// Description: Met le bit e a 1.
-+inline void ArrOfBit::setbit(entier e) const
-+{
-+  assert(e >= 0 && e < taille);
-+  unsigned int i = (unsigned int) e;
-+  unsigned int flag = 1 << (i & DRAPEAUX_INT);
-+  data[i >> SIZE_OF_INT_BITS] |= flag;
-+}
-+
-+// Description: Renvoie la valeur du bit e, puis met le bit e a 1.
-+inline entier ArrOfBit::testsetbit(entier e) const
-+{
-+  assert(e >= 0 && e < taille);
-+  unsigned int i = (unsigned int) e;
-+  unsigned int flag = 1 << (i & DRAPEAUX_INT);
-+  entier index = i >> SIZE_OF_INT_BITS;
-+  unsigned int old = data[index];
-+  data[index] = old | flag;
-+  return ((old & flag) != 0) ? 1 : 0;
-+}
-+
-+// Description: Met le bit e a 0.
-+inline void ArrOfBit::clearbit(entier e) const
-+{
-+  assert(e >= 0 && e < taille);
-+  unsigned int i = (unsigned int) e;
-+  unsigned int flag = 1 << (i & DRAPEAUX_INT);
-+  data[i >> SIZE_OF_INT_BITS] &= ~flag;
-+}
-+
-+// Description: Renvoie la taille du tableau en bits
-+inline entier ArrOfBit::size_array() const
-+{
-+  return taille;
-+}
-+
-+#endif
-diff --git a/databases/readers/Lata/ArrOfDouble.C b/databases/readers/Lata/ArrOfDouble.C
-new file mode 100644
-index 0000000..5605a0d
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfDouble.C
-@@ -0,0 +1,1185 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.cpp.h
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#include <ArrOfDouble.h>
-+#include <math.h>
-+#include <stdlib.h>
-+#include <Objet_U.h>
-+#include <iostream>
-+#include <stdlib.h>
-+#include <string.h>
-+#include "simd_interface.h"
-+
-+using namespace std;
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de VDoubledata
-+//
-+// ******************************************************************
-+////////////////////////////////////////////////////////////////////
-+// .NOM        ArrOfDouble
-+// .ENTETE     TRUST Math
-+// .LIBRAIRIE  libtmath
-+// .FILE       ArrOfDouble.h
-+// .FILE       ArrOfDouble.cpp
-+//
-+// .DESCRIPTION
-+// VDoubledata alloue une zone de memoire de la taille specifiee au
-+// constructeur, et libere la zone de memoire a la destruction.
-+//
-+// "ref_count" compte le nombre de pointeurs qui font reference a "this".
-+// (permet au dernier utilisateur de l'objet de le detruire), voir
-+// ArrOfDouble.
-+//
-+// .SECTION voir aussi
-+// .CONTRAINTES
-+// .INVARIANTS
-+// .HTML
-+// .EPS
-+///////////////////////////////////////////////////////////////////
-+
-+class VDoubledata
-+{
-+public:
-+  VDoubledata(entier size, ArrOfDouble::Storage storage);
-+  ~VDoubledata();
-+  entier          add_one_ref();
-+  entier          suppr_one_ref();
-+  double *        get_data();
-+  const double *  get_data() const;
-+  inline entier   ref_count() const;
-+  inline entier   get_size() const;
-+private:
-+  // Le constructeur par copie et l'operateur= sont interdits.
-+  VDoubledata(const VDoubledata& v);
-+  VDoubledata& operator=(const VDoubledata& v);
-+
-+  // "data" est un pointeur sur une zone de memoire de taille
-+  // sz * sizeof(double), allouee par le
-+  // constructeur et liberee par le destructeur.
-+  // Ce pointeur n'est jamais nul meme si size_==0
-+  double * data_;
-+  // Compteur incremente par add_one_ref et decremente par suppr_one_ref.
-+  // Contient le nombre d'objets ArrOfDouble dont le membre "p" pointe
-+  // vers "this". On a ref_count_ >= 0.
-+  entier ref_count_;
-+  // "sz" est la taille du tableau "data_" alloue
-+  // On a sz >= 0.
-+  entier size_;
-+  ArrOfDouble::Storage storage_;
-+};
-+
-+
-+// Description:
-+//    Construit un VDoubledata de taille size >= 0
-+// Parametre: entier s
-+//    Signification: taille du VDoubledata, il faut size >= 0
-+// Parametre: Storage storage
-+//    Signification: indique si la memoire doit etre allouee
-+//                   avec "new" ou avec "simd_malloc"
-+//    Valeurs par defaut: STANDARD (allocation avec "new")
-+// Postcondition:
-+//    data_ n'est jamais nul, meme si size==0
-+VDoubledata::VDoubledata(entier size, ArrOfDouble::Storage storage)
-+{
-+  if (size == 0)
-+    storage = ArrOfDouble::STANDARD;
-+
-+  switch (storage)
-+    {
-+    case ArrOfDouble::STANDARD:
-+      {
-+#ifdef _EXCEPTION_
-+        // Allocation de la memoire sur le tas
-+        try
-+          {
-+            data_ = new double[size];
-+          }
-+        catch(...)
-+          {
-+            Cerr << "impossible d'allouer " << size << " double " << finl;
-+            throw;
-+          }
-+#else
-+        data_ = new double[size];
-+        if(!data_)
-+          {
-+            Cerr << "impossible d'allouer " << size << "double " << finl;
-+            throw ;
-+          }
-+#endif
-+        break;
-+      }
-+    case ArrOfDouble::SIMD_ALIGNED:
-+      {
-+#ifdef SIMD_TOOLS_H
-+        data_ = (double*) simd_malloc (sizeof(double) * size);
-+#else
-+        Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+        throw;
-+#endif
-+        break;
-+      }
-+    default:
-+      throw;
-+    }
-+  ref_count_ = 1;
-+  size_ = size;
-+  storage_ = storage;
-+  assert(data_ != 0);
-+}
-+
-+// Description:
-+//  Detruit la zone de memoire allouee.
-+// Precondition:
-+//  ref_count == 0 (la zone de memoire ne doit etre referencee nulle part)
-+VDoubledata::~VDoubledata()
-+{
-+  assert(ref_count_ == 0);
-+
-+  // Stockage STANDARD
-+  switch(storage_)
-+    {
-+    case ArrOfDouble::STANDARD:
-+      delete[] data_;
-+      break;
-+    case ArrOfDouble::SIMD_ALIGNED:
-+#ifdef SIMD_TOOLS_H
-+      simd_free(data_);
-+#else
-+      Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+      throw;
-+#endif
-+      break;
-+    default:
-+      throw;
-+    }
-+
-+  data_ = 0;  // paranoia: si size_==-1 c'est qu'on pointe sur un zombie
-+  size_ = -1; //  (pointeur vers un objet qui a ete detruit)
-+  storage_ = ArrOfDouble::STANDARD;
-+}
-+
-+// Description: renvoie ref_count_
-+inline entier VDoubledata::ref_count() const
-+{
-+  return ref_count_;
-+}
-+
-+// Description: renvoie size_
-+inline entier VDoubledata::get_size() const
-+{
-+  return size_;
-+}
-+
-+// Description:
-+//     Un nouveau tableau utilise cette zone memoire :
-+//     incremente ref_count
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VDoubledata::add_one_ref()
-+{
-+  return ++ref_count_;
-+}
-+
-+// Description:
-+//     Un tableau de moins utilise cette zone memoire
-+//     decremente ref_count
-+// Precondition:
-+//     ref_count_ > 0
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VDoubledata::suppr_one_ref()
-+{
-+  assert(ref_count_ > 0);
-+  return (--ref_count_);
-+}
-+
-+// Description: renvoie data_
-+inline double * VDoubledata::get_data()
-+{
-+  return data_;
-+}
-+
-+// Description: renvoie data_
-+inline const double * VDoubledata::get_data() const
-+{
-+  return data_;
-+}
-+
-+// Description: Constructeur par copie. Interdit : genere une erreur !
-+VDoubledata::VDoubledata(const VDoubledata& v)
-+{
-+  Cerr << "Erreur dans VDoubledata::VDoubledata(const VDoubledata & v)" << finl;
-+  throw;
-+}
-+
-+// Description: Operateur= interdit. Genere une erreur !
-+VDoubledata& VDoubledata::operator=(const VDoubledata& v)
-+{
-+  Cerr << "Erreur dans VDoubledata::operator=(const VDoubledata & v)" << finl;
-+  throw;
-+  return *this;
-+}
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de ArrOfDouble
-+//
-+// ******************************************************************
-+
-+
-+// Definition des constantes pour les options de memory_resize
-+const entier ArrOfDouble::COPY_OLD = 1;
-+const entier ArrOfDouble::INITIALIZE_NEW = 2;
-+
-+// Description:
-+//  Destructeur : appelle detach_array()
-+ArrOfDouble::~ArrOfDouble()
-+{
-+  detach_array();
-+  size_array_ = -1; // Paranoia: si size_array_==-1, c'est un zombie
-+}
-+
-+// Description:
-+//  Constructeur par defaut: cree un tableau "detache",
-+//  soit p_==0, data_==0, size_array_==0, smart_resize_==0
-+ArrOfDouble::ArrOfDouble() :
-+  p_(0),
-+  data_(0),
-+  size_array_(0),
-+  memory_size_(0),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n avec allocation standard
-+//     (voir set_mem_storage).
-+//     Valeur de remplissage par defaut: voir fill_default_value
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+ArrOfDouble::ArrOfDouble(entier n) :
-+  p_(new VDoubledata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  if (n > 0)
-+    fill_default_value(0, n);
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n
-+//     toutes les cases sont initialisees a x
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+// Parametre: double x
-+//    Signification: valeur pour initialiser le tableau
-+ArrOfDouble::ArrOfDouble(entier n, double x) :
-+  p_(new VDoubledata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  *this = x;
-+}
-+
-+// Description:
-+//     Constructeur par copie. On alloue une nouvelle zone de memoire
-+//     et on copie le contenu du tableau. L'attribut smart_resize_ est
-+//     copie aussi.
-+//     Si le tableau A est de taille nulle, on cree un tableau "detache",
-+//     sinon on cree un tableau "normal".
-+// Parametre: const ArrOfDouble& A
-+//    Signification: le tableau a copier
-+ArrOfDouble::ArrOfDouble(const ArrOfDouble& A)
-+{
-+  const entier size = A.size_array();
-+  if (size > 0)
-+    {
-+      // Creation d'un tableau "normal"
-+      storage_type_ = STANDARD;
-+      p_ = new VDoubledata(size, STANDARD);
-+      data_ = p_->get_data();
-+      size_array_ = size;
-+      memory_size_ = size;
-+      smart_resize_ = A.smart_resize_;
-+      inject_array(A);
-+    }
-+  else
-+    {
-+      // Creation d'un tableau "detache"
-+      p_ = 0;
-+      data_ = 0;
-+      size_array_ = 0;
-+      memory_size_ = 0;
-+      smart_resize_ = 0;
-+      storage_type_ = STANDARD;
-+    }
-+}
-+
-+// Description:
-+//   Change le mode d'allocation memoire lors des resize
-+//   (voir VDoubledata et Double_ptr_trav)
-+//   Exemple pour creer un tableau avec allocation temporaire:
-+//    DoubleTab tab; // Creation d'un tableau vide
-+//    tab.set_mem_storage(TEMP_STORAGE); // Changement de mode d'allocation
-+//    tab.resize(n); // Allocation memoire
-+void ArrOfDouble::set_mem_storage(const Storage storage)
-+{
-+  storage_type_ = storage;
-+}
-+
-+// Description:
-+//   Renvoie le mode d'allocation du tableau (qui sera utilise
-+//   lors du prochain resize si changement de taille).
-+//   (voir VDoubledata et Double_ptr_trav)
-+enum ArrOfDouble::Storage ArrOfDouble::get_mem_storage() const
-+{
-+  return storage_type_;
-+}
-+
-+// Description:
-+//   Change le mode l'allocation memoire: reallocation d'un tableau
-+//   a chaque changement de taille (flag = 0) ou reallocation
-+//   uniquement si la taille augmente et par doublement de la taille
-+//   du tableau (flag = 1).
-+void ArrOfDouble::set_smart_resize(entier flag)
-+{
-+  assert(flag == 0 || flag == 1);
-+  smart_resize_ = flag;
-+}
-+
-+// Description:
-+//    Remet le tableau dans l'etat obtenu avec le constructeur par defaut
-+//    (libere la memoire mais conserve le mode d'allocation memoire actuel)
-+void ArrOfDouble::reset()
-+{
-+  detach_array();
-+}
-+
-+// Description:
-+//    Copie les donnees du tableau m.
-+//    Si "m" n'a pas la meme taille que "*this", on fait un resize_array.
-+//    Ensuite, on copie les valeurs de "m" dans "*this".
-+//    Le type de tableau (methode d'allocation) n'est pas copie.
-+// Precondition:
-+//    Si le tableau n'a pas la meme taille que "m", alors *this doit
-+//    etre "resizable" (ne pas etre de type "ref_data" et "ref_count == 1")
-+// Parametre: const ArrOfDouble& m
-+//    Signification: la tableau a copier
-+// Retour:  ArrOfDouble&
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::operator=(const ArrOfDouble& m)
-+{
-+  if (&m != this)
-+    {
-+      const entier new_size = m.size_array();
-+      // Le code suivant est quasiment une copie de ArrOfDouble::resize()
-+      // SAUF: memory_resize est appele avec NO_INITIALIZE (la zone de memoire
-+      //  n'est pas initialisee)
-+      if (new_size != size_array())
-+        {
-+          if ((smart_resize_ == 0) || (new_size > memory_size_))
-+            memory_resize(new_size, 0); // Pas d'initialisation
-+          size_array_ = new_size;
-+        }
-+      inject_array(m);
-+    }
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     x est affecte a toutes les cases
-+// Precondition:
-+// Parametre: double x
-+//    Signification: la valeur a affecter a toutes les cases du tableau
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfDouble& ArrOfDouble::operator=(double x)
-+{
-+  const entier n = size_array();
-+  double *data = addr();
-+  for (entier i = 0; i < n; i++)
-+    {
-+      data[i] = x;
-+    }
-+  return *this;
-+}
-+
-+// Description: appelle operator=(a)
-+ArrOfDouble& ArrOfDouble::copy_array(const ArrOfDouble& a)
-+{
-+  operator=(a);
-+  return *this;
-+}
-+
-+// Description:
-+//  Si besoin, alloue une nouvelle zone de memoire,
-+//  copie les donnees et efface l'ancienne zone de memoire.
-+//  Attention, on suppose que cette methode est appelee par
-+//  resize_array().
-+//  Attention: si ref_count_>1, l'appel a resize_array() est
-+//  autorise uniquement si la nouvelle taille est identique
-+//  a la precedente.
-+// Precondition:
-+//  Le tableau doit etre de type "detache" ou "normal" avec
-+//  ref_count==1, et il faut new_size >= 0
-+//  On suppose que size_array contient encore le nombre d'elements
-+//  valides avant changement de taille.
-+// Parametre: new_size
-+//  Signification: nouvelle taille demandee pour le tableau.
-+// Parametre: options
-+//  Signification: COPY_OLD => on recopie les anciennes donnees dans le nouveau
-+//                  tableau (jusqu'au max de l'ancienne et de la nouvelle taille).
-+//                 INITIALIZE_NEW => initialisation des cases non copiees
-+// Postcondition:
-+//  p_ et data_ sont mis a jour, mais pas size_array_ !!!
-+//  (on suppose que c'est fait dans resize_array()).
-+//  Si la nouvelle taille est nulle, on detache le tableau.
-+void  ArrOfDouble::memory_resize(entier new_size, entier options)
-+{
-+  assert(new_size >= 0);
-+
-+  // Occupation memoire de l'ancien tableau:
-+  entier old_mem_size = 0;
-+  if (p_)
-+    old_mem_size = p_->get_size();
-+
-+  // Occupation memoire du nouveau tableau :
-+  // Si smart_resize, on prend au moins deux fois la taille
-+  // precedente, ou new_size
-+  entier new_mem_size = new_size;
-+  if (smart_resize_ && (old_mem_size * 2 > new_size))
-+    new_mem_size = old_mem_size * 2;
-+
-+  if (new_mem_size != old_mem_size)
-+    {
-+      // detach_array() efface le contenu de size_array_. On le met de cote:
-+      const entier old_size_array = size_array_;
-+      // On va reellement changer l'adresse du tableau.
-+      // Il ne faut pas qu'il existe d'autre reference a ce tableau.
-+      assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+      if (new_mem_size == 0)
-+        {
-+          // La nouvelle taille est nulle, on cree un tableau "detache"
-+          detach_array();
-+        }
-+      else
-+        {
-+          // Allocation d'une nouvelle zone
-+          VDoubledata * new_p = new VDoubledata(new_mem_size, storage_type_);
-+          double * new_data = new_p->get_data();
-+          // Raccourci si le tableau etait "detache", inutile de copier
-+          // les anciennes donnees. On copie si COPY_OLD est demande
-+          entier copy_size = 0;
-+          if (data_ != 0)
-+            {
-+              // Calcul du nombre d'elements a copier vers la nouvelle
-+              // zone de memoire : c'est le min de l'ancienne et de
-+              // la nouvelle taille.
-+              if (options & COPY_OLD)
-+                {
-+                  copy_size = size_array_;
-+                  if (new_size < copy_size)
-+                    copy_size = new_size;
-+                  // Copie des valeurs dans le nouveau tableau
-+                  for (entier i = 0; i < copy_size; i++)
-+                    new_data[i] = data_[i];
-+                }
-+              // Destruction de l'ancienne zone (si plus aucune reference)
-+              detach_array();
-+            }
-+          // On attache la nouvelle zone de memoire
-+          p_ = new_p;
-+          data_ = new_data;
-+          memory_size_ = new_mem_size;
-+          // Initialisation des cases supplementaires avec une valeur par defaut
-+          if (options & INITIALIZE_NEW)
-+            fill_default_value(copy_size, new_mem_size - copy_size);
-+          // Restaure l'ancienne valeur de size_array_
-+          size_array_ = old_size_array;
-+        }
-+    }
-+}
-+
-+// Description:
-+//  Remplit "nb" cases consecutives du tableau a partir de la case "first"
-+//  avec une valeur par defaut.
-+//  Cette fonction est appelee lors d'un resize pour initialiser les
-+//  cases nouvellement creees.
-+//  Le comportement depend actuellement du type de tableau :
-+//  * Tableau de type "smart_resize":
-+//    * en mode debug (macro NDEBUG non definie) le tableau est initialise
-+//      avec une valeur invalide.
-+//    * en optimise, le tableau n'est pas initialise
-+//  * Tableau normal :
-+//    Le tableau est initialise avec la valeur 0. Ce comportement est choisi
-+//    pour des raisons de compatibilite avec l'implementation precedente.
-+//    Cette specification pourrait etre modifiee prochainement pour des raisons
-+//    de performances (pour ne pas avoir a initialiser inutilement les tableaux).
-+//    DONC: il faut supposer desormais que les nouvelles cases ne sont pas
-+//    initialisees lors d'un resize.
-+// Parametre: first
-+//  Signification: premiere case a initialiser.
-+//  Contrainte:    (nb==0) ou (0 <= first < memory_size_)
-+// Parametre: nb
-+//  Signification: nombre de cases a initialiser.
-+//  Contrainte:    (nb==0) ou (0 < nb <= memory_size_ - first)
-+void  ArrOfDouble::fill_default_value(entier first, entier nb)
-+{
-+  assert((nb == 0) || (first >= 0 && first < memory_size_));
-+  assert((nb == 0) || (nb > 0 && nb <= memory_size_ - first));
-+  double * data = addr();
-+  assert(data!=0 || nb==0);
-+  data += first;
-+  if (smart_resize_)
-+    {
-+      /*
-+          // On initialise uniquement en mode debug
-+      #ifndef NDEBUG
-+          // Ceci represente un NAN. N'importe quelle operation avec ca fait encore un NAN.
-+          // Si c'est pas portable, on peut remplacer par DMAX_FLOAT sur les autres machines.
-+          static const unsigned long long  VALEUR_INVALIDE =
-+            0x7ff7ffffffffffffULL;
-+
-+          // On utilise "memcpy" et non "=" car "=" peut provoquer une exception
-+          // si la copie passe par le fpu.
-+          for (entier i = 0; i < nb; i++)
-+            memcpy(data + i, & VALEUR_INVALIDE, sizeof(double));
-+      #endif
-+      */
-+    }
-+  else
-+    {
-+      // Comportement pour les tableaux normaux : compatibilite avec la
-+      // version precedente : on initialise avec 0.
-+      for (entier i = 0; i < nb; i++)
-+        data[i] = (double) 0;
-+    }
-+}
-+
-+// ****************************************************************
-+//
-+//         Fonctions non membres de la classe ArrOfDouble
-+//
-+// ****************************************************************
-+
-+// Description:
-+//  Renvoie 1 si les tableaux "v" et "a" sont de la meme taille
-+//  et contiennent les memes valeurs au sens strict, sinon renvoie 0.
-+//  Le test est !(v[i]!=a[i])
-+entier operator==(const ArrOfDouble& v, const ArrOfDouble& a)
-+{
-+  const entier n = v.size_array();
-+  const entier na = a.size_array();
-+  entier resu = 1;
-+  if (n != na)
-+    {
-+      resu = 0;
-+    }
-+  else
-+    {
-+      const double* vv = v.addr();
-+      const double* av = a.addr();
-+      entier i;
-+      for (i = 0; i < n; i++)
-+        {
-+          if (av[i] != vv[i])
-+            {
-+              resu = 0;
-+              break;
-+            }
-+        }
-+    }
-+  return resu;
-+}
-+
-+// Description:
-+//    Retourne l'indice du min ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfDouble& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du min
-+entier imin_array(const ArrOfDouble& dx)
-+{
-+  entier indice_min = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_min = 0;
-+      double valeur_min = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const double val = dx[i];
-+          if(val < valeur_min)
-+            {
-+              indice_min = i;
-+              valeur_min = val;
-+            }
-+        }
-+    }
-+  return indice_min;
-+}
-+
-+// Description:
-+//    Retourne l'indice du max ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfDouble& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du max
-+entier imax_array(const ArrOfDouble& dx)
-+{
-+  entier indice_max = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_max = 0;
-+      double valeur_max = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const double val = dx[i];
-+          if(val > valeur_max)
-+            {
-+              indice_max = i;
-+              valeur_max = val;
-+            }
-+        }
-+    }
-+  return indice_max;
-+}
-+
-+// Description:
-+//    Retourne la valeur minimale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfDouble& dx
-+//    Signification: tableau a utiliser
-+// Retour: double
-+//    Signification: valeur du min
-+double min_array(const ArrOfDouble& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  double valeur_min = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const double val = dx[i];
-+      if (val < valeur_min)
-+        valeur_min = val;
-+    }
-+  return valeur_min;
-+}
-+
-+// Description:
-+//    Retourne la valeur maximale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfDouble& dx
-+//    Signification: tableau a utiliser
-+// Retour: double
-+//    Signification: valeur du max
-+double max_array(const ArrOfDouble& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  double valeur_max = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const double val = dx[i];
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//   Fonction de comparaison utilisee pour trier le tableau
-+//   dans ArrOfDouble::trier(). Voir man qsort
-+static int fonction_compare_arrofdouble_ordonner(const void * data1, const void * data2)
-+{
-+  const double x = *(const double*)data1;
-+  const double y = *(const double*)data2;
-+  if (x < y)
-+    return -1;
-+  else if (x > y)
-+    return 1;
-+  else
-+    return 0;
-+}
-+
-+// Description:
-+//   Tri des valeurs du tableau dans l'ordre croissant.
-+//   La fonction utilisee est qsort de stdlib (elle est en n*log(n)).
-+void ArrOfDouble::ordonne_array()
-+{
-+  const entier size = size_array();
-+  if (size > 1)
-+    {
-+      double * data = addr();
-+      qsort(data, size, sizeof(double),
-+            fonction_compare_arrofdouble_ordonner);
-+    }
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers les memes donnees qu'un tableau
-+//    existant. Le tableau sera du meme type que le tableau m ("detache",
-+//    "normal"). Le tableau m ne doit pas etre de type "ref_data"
-+//    Les donnes existantes sont perdues si elles
-+//    ne sont pas referencees ailleurs.
-+// Precondition:
-+// Parametre: const ArrOfDouble& m
-+//    Signification: le tableau a referencer (pas de type "ref_data"
-+//                   et different de *this !!!)
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfDouble& ArrOfDouble::ref_array(const ArrOfDouble& m)
-+{
-+  assert(&m != this);
-+  // La condition 'm n'est pas de type "ref_data"' est necessaire pour
-+  // attach_array().
-+  detach_array();
-+  attach_array(m);
-+  return *this;
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers la zone de memoire "data_".
-+//    On detache la zone de memoire existante. Le tableau devient
-+//    de type "ref_data". Attention : ptr doit etre non nul.
-+//    La taille est initialisee avec size.
-+//    Cette methode est appelee notamment par DoubleVect::adopter.
-+// Parametre: double*
-+//    Signification: le tableau a recuperer. Si pointeur nul alors size
-+//                   doit etre nulle aussi et le tableau reste detache
-+// Parametre: entier size
-+//    Signification: le nombre d'elements du tableau.
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::ref_data(double* ptr, entier size)
-+{
-+  assert(ptr != 0 || size == 0);
-+  assert(size >= 0);
-+  detach_array();
-+  data_ = ptr;
-+  size_array_ = size;
-+  return *this;
-+}
-+
-+// Description:
-+//  Amene le tableau dans l'etat "detache". C'est a dire:
-+//  Si le tableau est "detache" :
-+//   * ne rien faire
-+//  Si le tableau est "normal" :
-+//   * decremente le nombre de references a *p
-+//   * detruit *p si p->ref_count==0
-+//   * annule p_, data_ et size_array_
-+//  Si le tableau est "ref_data" :
-+//   * annule data_ et size_array_
-+// Retour: int
-+//    Signification: 1 si les donnees du tableau ont ete supprimees
-+// Precondition:
-+// Postcondition:
-+//  On a p_==0, data_==0 et size_array_==0, memory_size_ = 0
-+//  L'attribut smart_resize_ est conserve.
-+entier ArrOfDouble::detach_array()
-+{
-+  entier retour = 0;
-+  if (p_)
-+    {
-+      // Le tableau est de type "normal"
-+      // Si la zone de memoire n'est plus utilisee par personne,
-+      // on la detruit.
-+      if ((p_->suppr_one_ref()) == 0)
-+        {
-+          delete p_;
-+          retour = 1;
-+        }
-+      p_ = 0;
-+    }
-+  data_ = 0;
-+  size_array_ = 0;
-+  memory_size_ = 0;
-+  return retour;
-+}
-+
-+// Description:
-+//    Amene le tableau dans l'etat "normal", "detache" ou "ref_array"
-+//    en associant la meme zone de memoire que le tableau m.
-+// Precondition:
-+//    Le tableau doit etre "detache"
-+// Parametre: const ArrOfDouble& m
-+//    Signification: tableau a utiliser
-+//                   le tableau doit etre different de *this !!!
-+// Retour:
-+//    Signification:
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+//    Si m est detache, le tableau reste detache,
-+//    si m est "ref_array", le tableau devient "ref_array",
-+//    sinon le tableau est "normal", avec ref_count > 1
-+//    Si m est de taille nulle, le tableau reste detache + Warning dans fichier .log
-+void ArrOfDouble::attach_array(const ArrOfDouble& m)
-+{
-+  // Le tableau doit etre detache
-+  assert(data_ == 0 && p_ == 0);
-+  // Le tableau doit etre different de *this
-+  assert(&m != this);
-+
-+  if (m.size_array() > 0)
-+    {
-+      p_ = m.p_;
-+      if (p_)
-+        p_->add_one_ref();
-+      data_ = m.data_;
-+      size_array_ = m.size_array_;
-+      memory_size_ = m.memory_size_;
-+      smart_resize_ = m.smart_resize_;
-+    }
-+  else
-+    {
-+      // Cas particulier ou on attache un tableau de taille nulle:
-+      //  en theorie, c'est pareil qu'un tableau de taille non nulle, MAIS
-+      //  dans les operateurs (ex:Op_Dift_VDF_Face_Axi), une ref est construite
-+      //  avant que le tableau ne prenne sa taille definitive. Donc, pour ne pas
-+      //  empecher le resize, il ne faut pas attacher le tableau s'il n'a pas
-+      //  encore la bonne taille. Solution propre: reecrire les operateurs pour
-+      //  qu'ils ne prennent pas une ref avant que le tableau ne soit valide
-+      //  et faire p_ = m.p_ dans tous les cas.
-+    }
-+}
-+
-+// Description:
-+//    Copie les elements source[first_element_source + i]
-+//    dans les elements  (*this)[first_element_dest + i] pour 0 <= i < nb_elements
-+//    Les autres elements de (*this) sont inchanges.
-+// Precondition:
-+// Parametre:       const ArrOfDouble& m
-+//  Signification:   le tableau a utiliser, doit etre different de *this !
-+// Parametre:       entier nb_elements
-+//  Signification:   nombre d'elements a copier, nb_elements >= -1.
-+//                   Si nb_elements==-1, on copie tout le tableau m.
-+//  Valeurs par defaut: -1
-+// Parametre:       entier first_element_dest
-+//  Valeurs par defaut: 0
-+// Parametre:       entier first_element_source
-+//  Valeurs par defaut: 0
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+//    Sort en erreur si la taille du tableau m est plus grande que la
-+//    taille de tableau this.
-+// Effets de bord:
-+// Postcondition:
-+ArrOfDouble& ArrOfDouble::inject_array(const ArrOfDouble& source,
-+                                       entier nb_elements,
-+                                       entier first_element_dest,
-+                                       entier first_element_source)
-+{
-+  assert(&source != this);
-+  assert(nb_elements >= -1);
-+  assert(first_element_dest >= 0);
-+  assert(first_element_source >= 0);
-+
-+  if (nb_elements < 0)
-+    nb_elements = source.size_array();
-+
-+  assert(first_element_source + nb_elements <= source.size_array());
-+  assert(first_element_dest + nb_elements <= size_array());
-+
-+  if (nb_elements > 0)
-+    {
-+      double * addr_dest = addr() + first_element_dest;
-+      const double * addr_source = source.addr() + first_element_source;
-+      // memcpy(addr_dest , addr_source, nb_elements * sizeof(double));
-+      entier i;
-+      for (i = 0; i < nb_elements; i++)
-+        {
-+          addr_dest[i] = addr_source[i];
-+        }
-+    }
-+  return *this;
-+}
-+
-+// Description:
-+//    Retourne le nombre de references des donnees du tableau
-+//    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
-+// Retour: int
-+//    Signification: ref_count_
-+entier ArrOfDouble::ref_count() const
-+{
-+  if (p_)
-+    return p_->ref_count();
-+  else
-+    return -1;
-+}
-+
-+// Description:
-+//    Addition case a case sur toutes les cases du tableau
-+// Precondition:
-+//    la taille de y doit etre au moins egale a la taille de this
-+// Parametre: const ArrOfDouble& y
-+//    Signification: tableau a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfDouble& ArrOfDouble::operator+=(const ArrOfDouble& y)
-+{
-+  assert(size_array()==y.size_array());
-+  double* dx = addr();
-+  const double* dy = y.addr();
-+  const entier n = size_array();
-+  for (entier i=0; i<n; i++)
-+    dx[i] += dy[i];
-+  return *this;
-+}
-+
-+// Description:
-+//     ajoute la meme valeur a toutes les cases du tableau
-+// Precondition:
-+// Parametre: const double dy
-+//    Signification: valeur a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfDouble
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfDouble& ArrOfDouble::operator+=(const double dy)
-+{
-+  double * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] += dy;
-+  return *this;
-+}
-+// Description:
-+//    Soustraction case a case sur toutes les cases du tableau
-+// Parametre: const ArrOfDouble& y
-+//    Signification: tableau de meme taille que *this
-+// Retour: ArrOfDouble&
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::operator-=(const ArrOfDouble& y)
-+{
-+  const entier size = size_array();
-+  assert(size == y.size_array());
-+  double * data = addr();
-+  const double * data_y = y.addr();
-+  for (entier i=0; i < size; i++)
-+    data[i] -= data_y[i];
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     soustrait la meme valeur a toutes les cases
-+// Retour: ArrOfDouble &
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::operator-=(const double dy)
-+{
-+  double * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] -= dy;
-+  return *this;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+//   Attention, l'adresse peut changer apres un appel
-+//   a resize_array(), ref_data, ref_array, ...
-+// Precondition:
-+// Retour: const double*
-+//   Signification: pointeur sur le premier element du tableau
-+const double* ArrOfDouble::addr() const
-+{
-+  return data_;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+// Precondition:
-+// Retour: const double*
-+//    Signification: la zone memoire du tableau
-+double* ArrOfDouble::addr()
-+{
-+  return data_;
-+}
-+
-+
-+// Description:
-+//    Retourne le max des abs(i)
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfDouble& dx
-+//    Signification: tableau a utiliser
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: double
-+//    Signification: valeur du max des valeurs absolues
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+double max_abs_array(const ArrOfDouble& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  double valeur_max = fabs(dx[0]);
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const double val = fabs(dx[i]);
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//     muliplie toutes les cases par dy
-+// Retour: ArrOfDouble &
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::operator*= (const double dy)
-+{
-+  double * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] *= dy;
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     divise toutes les cases par dy
-+// Retour: ArrOfDouble &
-+//    Signification: *this
-+ArrOfDouble& ArrOfDouble::operator/= (const double dy)
-+{
-+  // En theorie: les deux lignes suivantes sont plus efficaces, mais
-+  //  cela produit des differences sur certains cas tests
-+  //  (Hyd_C_VEF_Smago et Lambda_var_VEF_turb). Ca veut dire qu'il y
-+  //  a un probleme autre part mais pour l'instant on laisse l'ancien
-+  //  codage.
-+  // const double i_dy = 1. / dy;
-+  // operator*=(i_dy);
-+
-+  double * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] /= dy;
-+
-+  return *this;
-+}
-+
-+DoubleTab::DoubleTab()
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-+DoubleTab::DoubleTab(const DoubleTab& tab) :
-+  ArrOfDouble(tab)
-+{
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+}
-+DoubleTab::DoubleTab(const entier i, const entier j) :
-+  ArrOfDouble(i*j)
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+}
-+
-+DoubleTab& DoubleTab::operator=(const DoubleTab& tab)
-+{
-+  ArrOfDouble::operator=(tab);
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+  return *this;
-+}
-+
-+void DoubleTab::reset()
-+{
-+  ArrOfDouble::reset();
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-diff --git a/databases/readers/Lata/ArrOfDouble.h b/databases/readers/Lata/ArrOfDouble.h
-new file mode 100644
-index 0000000..fcc08f1
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfDouble.h
-@@ -0,0 +1,353 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.h.P
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#ifndef ArrOfDouble_H
-+#define ArrOfDouble_H
-+
-+#include <assert.h>
-+#include <arch.h>
-+#include <Objet_U.h>
-+
-+#if ! defined(DMAXFLOAT)
-+#define DMAXFLOAT 1e40
-+#endif
-+
-+class VDoubledata;
-+
-+class ArrOfDouble
-+{
-+public:
-+  //
-+  // Destructeur
-+  //
-+  virtual ~ArrOfDouble();
-+  //
-+  // Constructeurs
-+  //
-+  ArrOfDouble();
-+  ArrOfDouble(entier size);
-+  ArrOfDouble(entier size, double initial_value);
-+  // Constructeur par copie : deep copy (on duplique les donnees)
-+  ArrOfDouble(const ArrOfDouble& );
-+  //
-+  // Methodes de construction tardive (on cree un tableau vide avec ArrOfDouble()
-+  // puis on appelle ces methodes pour modifier les caracteristiques du tableau :
-+  //
-+  // Change le nombre d'elements du tableau
-+  inline ArrOfDouble& resize_array(entier new_size);
-+
-+  // Methodes de gestion de l'allocation memoire:
-+  // Assigne une valeur au drapeau "smart_resize"
-+  // (reallocation uniquement si la taille augmente)
-+  void    set_smart_resize(entier flag);
-+  // Gestion du type de memoire alouee (standard ou pool de memoire Trio-U)
-+  enum    Storage { STANDARD, TEMP_STORAGE, SIMD_ALIGNED };
-+  void    set_mem_storage(const Storage storage);
-+  Storage get_mem_storage() const;
-+
-+  // Construction de tableaux qui pointent vers des donnees existantes
-+  // !!! Utiliser ref_data avec precaution (attention a size_array_)
-+  ArrOfDouble& ref_data(double* ptr, entier size);
-+  ArrOfDouble& ref_array(const ArrOfDouble&);
-+  // Operateur copie
-+  ArrOfDouble& operator=(const ArrOfDouble&);
-+  // Remise du tableau dans l'etat initial (obtenu par le constructeur par defaut)
-+  virtual void reset();
-+
-+  //
-+  // Methodes d'acces aux donnees et aux caracteristiques du tableau
-+  //
-+  // Remplit le tableau avec la valeur en parametre
-+  ArrOfDouble& operator=(double valeur);
-+
-+  inline       double& operator[](entier i);
-+  inline const double& operator[](entier i) const;
-+
-+  // Ces methodes renvoient un pointeur vers le premier element du tableau.
-+  const double * addr() const;
-+  double * addr();
-+  // Renvoie le nombre d'elements du tableau (et non la taille allouee)
-+  inline entier size_array() const;
-+  // Renvoie le nombre de tableaux qui pointent vers la stucture "*p_"
-+  entier ref_count() const;
-+  // Ajoute une case en fin de tableau et y stocke la "valeur"
-+  inline void   append_array(double valeur);
-+
-+  //
-+  // Operateurs divers
-+  //
-+  ArrOfDouble& operator+=(const ArrOfDouble&);
-+  ArrOfDouble& operator+=(const double);
-+  ArrOfDouble& operator-=(const ArrOfDouble&);
-+  ArrOfDouble& operator-=(const double);
-+  ArrOfDouble& inject_array(const ArrOfDouble& source,
-+                            entier nb_elements = -1,
-+                            entier first_element_dest = 0,
-+                            entier first_element_source = 0);
-+  ArrOfDouble& copy_array(const ArrOfDouble&);
-+
-+  ArrOfDouble& operator*= (const double) ;
-+  ArrOfDouble& operator/= (const double) ;
-+
-+  void             ordonne_array();
-+
-+protected:
-+  //
-+  // Methodes accessibles depuis les descendants de ArrOfDouble
-+  //
-+  void   attach_array(const ArrOfDouble&);
-+  entier detach_array();
-+  void   fill_default_value(entier first, entier nb);
-+private:
-+  // B. Mathieu 22/06/2004 : je mets ces membres "private" pour forcer
-+  // le passage par les accesseurs dans les classes derivees, au cas ou
-+  // on voudrait modifier l'implementation.
-+
-+  // Zone de memoire contenant les valeurs du tableau.
-+  // Pointeur nul => le tableau est "detache" ou "ref_data"
-+  // Pointeur non nul => le tableau est "normal"
-+  VDoubledata* p_;
-+
-+  // Pointeur vers le premier element du tableau (egal a p_->data si p_!=0)
-+  // Pointeur nul => le tableau est "detache".
-+  // Pointeur non nul => le tableau est "normal" ou "ref_data"
-+  double*   data_;
-+
-+  // Nombre d'elements du tableau (inferieur ou egal a memory_size_).
-+  // Si le tableau est "detache", alors size_array_=0
-+  entier    size_array_;
-+  // Taille memoire reellement allouee pour le tableau
-+  // (pour le mecanisme smart_resize_). memory_size_ est nul
-+  // si le tableau est de type "ref_data". Sinon memory_size_
-+  // est egal a p_->size_.
-+  entier    memory_size_;
-+
-+  // Drapeau indiquant si on applique une strategie d'allocation
-+  // preventive (la memoire alouee augmente d'un facteur constant
-+  // si la taille devient insuffisante).
-+  // Si smart_resize_ == 0, alors on a toujours p_->size_ == size
-+  entier    smart_resize_;
-+
-+  // Drapeau indiquant si l'allocation memoire a lieu avec un new classique
-+  // ou dans le pool de memoire temporaire de Trio
-+  Storage   storage_type_;
-+
-+  // Partie non inline de resize_array():
-+  // Declaration des constantes pour les options de memory_resize
-+  static const entier COPY_OLD;
-+  static const entier INITIALIZE_NEW;
-+  void memory_resize(entier new_size, entier options);
-+};
-+
-+#define MAXDIMDoubleTab 2
-+
-+class DoubleTab : public ArrOfDouble
-+{
-+public:
-+  DoubleTab();
-+  DoubleTab(const DoubleTab&);
-+  DoubleTab(const entier i, const entier j);
-+  DoubleTab&    operator=(const DoubleTab&);
-+  void              reset();
-+
-+  inline double& operator()(entier i, entier j);
-+  inline double   operator()(entier i, entier j) const;
-+
-+  inline entier resize(entier i, entier j);
-+  inline entier dimension(entier i) const;
-+  inline entier dimension_tot(entier i) const;
-+
-+protected:
-+  // In order to mimic TRUST behavior, operator[] is forbidden
-+  // for 2 dimensionnal matrices, you must cast to ArrOf to use it..
-+  double&        operator[](entier i);
-+  const double& operator[](entier i) const;
-+
-+private:
-+  //  entier nb_dim_;
-+  entier dimensions_[MAXDIMDoubleTab];
-+};
-+
-+inline double& DoubleTab::operator()(entier i, entier j)
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  double& x = ArrOfDouble::operator[] (n);
-+  return x;
-+}
-+
-+inline double   DoubleTab::operator()(entier i, entier j) const
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  double x = ArrOfDouble::operator[] (n);
-+  return x;
-+}
-+
-+inline entier DoubleTab::resize(entier i, entier j)
-+{
-+  assert(i >= 0 && j >= 0);
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+  ArrOfDouble::resize_array(i * j);
-+  return i*j;
-+}
-+
-+inline entier DoubleTab::dimension(entier i) const
-+{
-+  assert(i >= 0 && i < 2);
-+  return dimensions_[i];
-+}
-+
-+// Description: renvoie la meme valeur que dimension.
-+inline entier DoubleTab::dimension_tot(entier i) const
-+{
-+  return dimension(i);
-+}
-+
-+//
-+// Declarations des fonctions non membres de la classe ArrOfDouble
-+//
-+entier operator==(const ArrOfDouble& x, const ArrOfDouble& y) ;
-+entier imin_array(const ArrOfDouble&) ;
-+entier imax_array(const ArrOfDouble&) ;
-+double min_array(const ArrOfDouble&) ;
-+double max_array(const ArrOfDouble&) ;
-+
-+double max_abs_array(const ArrOfDouble&) ;
-+
-+// ******************************************************************
-+//                   FONCTIONS MEMBRES DE ArrOfDouble
-+// ******************************************************************
-+
-+// Description :
-+//  Change le nombre d'elements du tableau. Cette fonction est inline
-+//  car elle doit etre tres rapide dans le cas ou smart_resize_==1
-+//  (utilisation frequente de resize_array())
-+//  Si smart_resize est non nul :
-+//   Si la nouvelle taille est inferieure ou egale a la taille
-+//   alouee (p->get_size()) on ne realloue pas de memoire
-+//   sinon, on realloue et on copie les donnees existantes.
-+//  Astuce pour ne pas copier les anciennes donnees:
-+//   resize(0); resize(n);
-+//  Si smart_resize est nul, on realloue une nouvelle zone memoire
-+//   uniquement si la nouvelle taille est differente de l'ancienne.
-+// Precondition :
-+//  Si "new_size" est egal a la taille du tableau, aucune condition.
-+//  Sinon, le tableau doit etre soit detache, soit normal (pas de type "ref_data")
-+//  et ref_count doit etre egal a 1 (pas d'autre reference au tableau).
-+//
-+inline ArrOfDouble& ArrOfDouble::resize_array(entier new_size)
-+{
-+  assert(new_size >= 0);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau,
-+  // ou alors la taille ne doit pas changer.
-+  assert(new_size == size_array_ || data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if ((smart_resize_ == 0) || (new_size > memory_size_))
-+    memory_resize(new_size, COPY_OLD + INITIALIZE_NEW);
-+  size_array_ = new_size;
-+  return *this;
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+//    assert si i n'est pas dans l'intervalle
-+inline double& ArrOfDouble::operator[](entier i)
-+{
-+  assert(i >= 0 && i < size_array_);
-+  assert((smart_resize_==1)|| (data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT));
-+  return data_[i];
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+//    assert si i n'est pas dans l'intervalle
-+inline const double& ArrOfDouble::operator[](entier i) const
-+{
-+  assert(i >= 0 && i < size_array_);
-+  assert(data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT);
-+  return data_[i];
-+}
-+
-+// Description:
-+//    Renvoie la taille du tableau (nombre d'elements declares
-+//    a la construction ou a resize_array()).
-+//    C'est le nombre d'elements accessibles a operator[]
-+// Retour: entier
-+inline entier  ArrOfDouble::size_array() const
-+{
-+  return size_array_;
-+}
-+
-+// Description:
-+//  Ajoute une case en fin de tableau et y stocke la "valeur"
-+// Precondition:
-+//  Tableau doit etre de type "smart_resize" (sinon, ecroulement
-+//  des performances). De plus, le tableau ne doit pas etre "ref_data",
-+//  et il ne doit pas y avoir plus d'une reference a la zone de
-+//  memoire pointee (meme precondition que resize_array())
-+inline void   ArrOfDouble::append_array(double valeur)
-+{
-+  assert(smart_resize_);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau.
-+  assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if (size_array_+1 > memory_size_)
-+    memory_resize(size_array_+1, COPY_OLD);
-+  data_[size_array_] = valeur;
-+  size_array_++;
-+}
-+
-+// ArrOfDouble_H
-+#endif
-+
-diff --git a/databases/readers/Lata/ArrOfFloat.C b/databases/readers/Lata/ArrOfFloat.C
-new file mode 100644
-index 0000000..dd59a24
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfFloat.C
-@@ -0,0 +1,1185 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.cpp.h
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#include <ArrOfFloat.h>
-+#include <math.h>
-+#include <stdlib.h>
-+#include <Objet_U.h>
-+#include <iostream>
-+#include <stdlib.h>
-+#include <string.h>
-+#include "simd_interface.h"
-+
-+using namespace std;
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de VFloatdata
-+//
-+// ******************************************************************
-+////////////////////////////////////////////////////////////////////
-+// .NOM        ArrOfFloat
-+// .ENTETE     TRUST Math
-+// .LIBRAIRIE  libtmath
-+// .FILE       ArrOfFloat.h
-+// .FILE       ArrOfFloat.cpp
-+//
-+// .DESCRIPTION
-+// VFloatdata alloue une zone de memoire de la taille specifiee au
-+// constructeur, et libere la zone de memoire a la destruction.
-+//
-+// "ref_count" compte le nombre de pointeurs qui font reference a "this".
-+// (permet au dernier utilisateur de l'objet de le detruire), voir
-+// ArrOfFloat.
-+//
-+// .SECTION voir aussi
-+// .CONTRAINTES
-+// .INVARIANTS
-+// .HTML
-+// .EPS
-+///////////////////////////////////////////////////////////////////
-+
-+class VFloatdata
-+{
-+public:
-+  VFloatdata(entier size, ArrOfFloat::Storage storage);
-+  ~VFloatdata();
-+  entier          add_one_ref();
-+  entier          suppr_one_ref();
-+  float *        get_data();
-+  const float *  get_data() const;
-+  inline entier   ref_count() const;
-+  inline entier   get_size() const;
-+private:
-+  // Le constructeur par copie et l'operateur= sont interdits.
-+  VFloatdata(const VFloatdata& v);
-+  VFloatdata& operator=(const VFloatdata& v);
-+
-+  // "data" est un pointeur sur une zone de memoire de taille
-+  // sz * sizeof(float), allouee par le
-+  // constructeur et liberee par le destructeur.
-+  // Ce pointeur n'est jamais nul meme si size_==0
-+  float * data_;
-+  // Compteur incremente par add_one_ref et decremente par suppr_one_ref.
-+  // Contient le nombre d'objets ArrOfFloat dont le membre "p" pointe
-+  // vers "this". On a ref_count_ >= 0.
-+  entier ref_count_;
-+  // "sz" est la taille du tableau "data_" alloue
-+  // On a sz >= 0.
-+  entier size_;
-+  ArrOfFloat::Storage storage_;
-+};
-+
-+
-+// Description:
-+//    Construit un VFloatdata de taille size >= 0
-+// Parametre: entier s
-+//    Signification: taille du VFloatdata, il faut size >= 0
-+// Parametre: Storage storage
-+//    Signification: indique si la memoire doit etre allouee
-+//                   avec "new" ou avec "simd_malloc"
-+//    Valeurs par defaut: STANDARD (allocation avec "new")
-+// Postcondition:
-+//    data_ n'est jamais nul, meme si size==0
-+VFloatdata::VFloatdata(entier size, ArrOfFloat::Storage storage)
-+{
-+  if (size == 0)
-+    storage = ArrOfFloat::STANDARD;
-+
-+  switch (storage)
-+    {
-+    case ArrOfFloat::STANDARD:
-+      {
-+#ifdef _EXCEPTION_
-+        // Allocation de la memoire sur le tas
-+        try
-+          {
-+            data_ = new float[size];
-+          }
-+        catch(...)
-+          {
-+            Cerr << "impossible d'allouer " << size << " float " << finl;
-+            throw;
-+          }
-+#else
-+        data_ = new float[size];
-+        if(!data_)
-+          {
-+            Cerr << "impossible d'allouer " << size << "float " << finl;
-+            throw ;
-+          }
-+#endif
-+        break;
-+      }
-+    case ArrOfFloat::SIMD_ALIGNED:
-+      {
-+#ifdef SIMD_TOOLS_H
-+        data_ = (float*) simd_malloc (sizeof(float) * size);
-+#else
-+        Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+        throw;
-+#endif
-+        break;
-+      }
-+    default:
-+      throw;
-+    }
-+  ref_count_ = 1;
-+  size_ = size;
-+  storage_ = storage;
-+  assert(data_ != 0);
-+}
-+
-+// Description:
-+//  Detruit la zone de memoire allouee.
-+// Precondition:
-+//  ref_count == 0 (la zone de memoire ne doit etre referencee nulle part)
-+VFloatdata::~VFloatdata()
-+{
-+  assert(ref_count_ == 0);
-+
-+  // Stockage STANDARD
-+  switch(storage_)
-+    {
-+    case ArrOfFloat::STANDARD:
-+      delete[] data_;
-+      break;
-+    case ArrOfFloat::SIMD_ALIGNED:
-+#ifdef SIMD_TOOLS_H
-+      simd_free(data_);
-+#else
-+      Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+      throw;
-+#endif
-+      break;
-+    default:
-+      throw;
-+    }
-+
-+  data_ = 0;  // paranoia: si size_==-1 c'est qu'on pointe sur un zombie
-+  size_ = -1; //  (pointeur vers un objet qui a ete detruit)
-+  storage_ = ArrOfFloat::STANDARD;
-+}
-+
-+// Description: renvoie ref_count_
-+inline entier VFloatdata::ref_count() const
-+{
-+  return ref_count_;
-+}
-+
-+// Description: renvoie size_
-+inline entier VFloatdata::get_size() const
-+{
-+  return size_;
-+}
-+
-+// Description:
-+//     Un nouveau tableau utilise cette zone memoire :
-+//     incremente ref_count
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VFloatdata::add_one_ref()
-+{
-+  return ++ref_count_;
-+}
-+
-+// Description:
-+//     Un tableau de moins utilise cette zone memoire
-+//     decremente ref_count
-+// Precondition:
-+//     ref_count_ > 0
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VFloatdata::suppr_one_ref()
-+{
-+  assert(ref_count_ > 0);
-+  return (--ref_count_);
-+}
-+
-+// Description: renvoie data_
-+inline float * VFloatdata::get_data()
-+{
-+  return data_;
-+}
-+
-+// Description: renvoie data_
-+inline const float * VFloatdata::get_data() const
-+{
-+  return data_;
-+}
-+
-+// Description: Constructeur par copie. Interdit : genere une erreur !
-+VFloatdata::VFloatdata(const VFloatdata& v)
-+{
-+  Cerr << "Erreur dans VFloatdata::VFloatdata(const VFloatdata & v)" << finl;
-+  throw;
-+}
-+
-+// Description: Operateur= interdit. Genere une erreur !
-+VFloatdata& VFloatdata::operator=(const VFloatdata& v)
-+{
-+  Cerr << "Erreur dans VFloatdata::operator=(const VFloatdata & v)" << finl;
-+  throw;
-+  return *this;
-+}
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de ArrOfFloat
-+//
-+// ******************************************************************
-+
-+
-+// Definition des constantes pour les options de memory_resize
-+const entier ArrOfFloat::COPY_OLD = 1;
-+const entier ArrOfFloat::INITIALIZE_NEW = 2;
-+
-+// Description:
-+//  Destructeur : appelle detach_array()
-+ArrOfFloat::~ArrOfFloat()
-+{
-+  detach_array();
-+  size_array_ = -1; // Paranoia: si size_array_==-1, c'est un zombie
-+}
-+
-+// Description:
-+//  Constructeur par defaut: cree un tableau "detache",
-+//  soit p_==0, data_==0, size_array_==0, smart_resize_==0
-+ArrOfFloat::ArrOfFloat() :
-+  p_(0),
-+  data_(0),
-+  size_array_(0),
-+  memory_size_(0),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n avec allocation standard
-+//     (voir set_mem_storage).
-+//     Valeur de remplissage par defaut: voir fill_default_value
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+ArrOfFloat::ArrOfFloat(entier n) :
-+  p_(new VFloatdata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  if (n > 0)
-+    fill_default_value(0, n);
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n
-+//     toutes les cases sont initialisees a x
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+// Parametre: float x
-+//    Signification: valeur pour initialiser le tableau
-+ArrOfFloat::ArrOfFloat(entier n, float x) :
-+  p_(new VFloatdata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  *this = x;
-+}
-+
-+// Description:
-+//     Constructeur par copie. On alloue une nouvelle zone de memoire
-+//     et on copie le contenu du tableau. L'attribut smart_resize_ est
-+//     copie aussi.
-+//     Si le tableau A est de taille nulle, on cree un tableau "detache",
-+//     sinon on cree un tableau "normal".
-+// Parametre: const ArrOfFloat& A
-+//    Signification: le tableau a copier
-+ArrOfFloat::ArrOfFloat(const ArrOfFloat& A)
-+{
-+  const entier size = A.size_array();
-+  if (size > 0)
-+    {
-+      // Creation d'un tableau "normal"
-+      storage_type_ = STANDARD;
-+      p_ = new VFloatdata(size, STANDARD);
-+      data_ = p_->get_data();
-+      size_array_ = size;
-+      memory_size_ = size;
-+      smart_resize_ = A.smart_resize_;
-+      inject_array(A);
-+    }
-+  else
-+    {
-+      // Creation d'un tableau "detache"
-+      p_ = 0;
-+      data_ = 0;
-+      size_array_ = 0;
-+      memory_size_ = 0;
-+      smart_resize_ = 0;
-+      storage_type_ = STANDARD;
-+    }
-+}
-+
-+// Description:
-+//   Change le mode d'allocation memoire lors des resize
-+//   (voir VFloatdata et Float_ptr_trav)
-+//   Exemple pour creer un tableau avec allocation temporaire:
-+//    DoubleTab tab; // Creation d'un tableau vide
-+//    tab.set_mem_storage(TEMP_STORAGE); // Changement de mode d'allocation
-+//    tab.resize(n); // Allocation memoire
-+void ArrOfFloat::set_mem_storage(const Storage storage)
-+{
-+  storage_type_ = storage;
-+}
-+
-+// Description:
-+//   Renvoie le mode d'allocation du tableau (qui sera utilise
-+//   lors du prochain resize si changement de taille).
-+//   (voir VFloatdata et Float_ptr_trav)
-+enum ArrOfFloat::Storage ArrOfFloat::get_mem_storage() const
-+{
-+  return storage_type_;
-+}
-+
-+// Description:
-+//   Change le mode l'allocation memoire: reallocation d'un tableau
-+//   a chaque changement de taille (flag = 0) ou reallocation
-+//   uniquement si la taille augmente et par doublement de la taille
-+//   du tableau (flag = 1).
-+void ArrOfFloat::set_smart_resize(entier flag)
-+{
-+  assert(flag == 0 || flag == 1);
-+  smart_resize_ = flag;
-+}
-+
-+// Description:
-+//    Remet le tableau dans l'etat obtenu avec le constructeur par defaut
-+//    (libere la memoire mais conserve le mode d'allocation memoire actuel)
-+void ArrOfFloat::reset()
-+{
-+  detach_array();
-+}
-+
-+// Description:
-+//    Copie les donnees du tableau m.
-+//    Si "m" n'a pas la meme taille que "*this", on fait un resize_array.
-+//    Ensuite, on copie les valeurs de "m" dans "*this".
-+//    Le type de tableau (methode d'allocation) n'est pas copie.
-+// Precondition:
-+//    Si le tableau n'a pas la meme taille que "m", alors *this doit
-+//    etre "resizable" (ne pas etre de type "ref_data" et "ref_count == 1")
-+// Parametre: const ArrOfFloat& m
-+//    Signification: la tableau a copier
-+// Retour:  ArrOfFloat&
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::operator=(const ArrOfFloat& m)
-+{
-+  if (&m != this)
-+    {
-+      const entier new_size = m.size_array();
-+      // Le code suivant est quasiment une copie de ArrOfFloat::resize()
-+      // SAUF: memory_resize est appele avec NO_INITIALIZE (la zone de memoire
-+      //  n'est pas initialisee)
-+      if (new_size != size_array())
-+        {
-+          if ((smart_resize_ == 0) || (new_size > memory_size_))
-+            memory_resize(new_size, 0); // Pas d'initialisation
-+          size_array_ = new_size;
-+        }
-+      inject_array(m);
-+    }
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     x est affecte a toutes les cases
-+// Precondition:
-+// Parametre: float x
-+//    Signification: la valeur a affecter a toutes les cases du tableau
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfFloat& ArrOfFloat::operator=(float x)
-+{
-+  const entier n = size_array();
-+  float *data = addr();
-+  for (entier i = 0; i < n; i++)
-+    {
-+      data[i] = x;
-+    }
-+  return *this;
-+}
-+
-+// Description: appelle operator=(a)
-+ArrOfFloat& ArrOfFloat::copy_array(const ArrOfFloat& a)
-+{
-+  operator=(a);
-+  return *this;
-+}
-+
-+// Description:
-+//  Si besoin, alloue une nouvelle zone de memoire,
-+//  copie les donnees et efface l'ancienne zone de memoire.
-+//  Attention, on suppose que cette methode est appelee par
-+//  resize_array().
-+//  Attention: si ref_count_>1, l'appel a resize_array() est
-+//  autorise uniquement si la nouvelle taille est identique
-+//  a la precedente.
-+// Precondition:
-+//  Le tableau doit etre de type "detache" ou "normal" avec
-+//  ref_count==1, et il faut new_size >= 0
-+//  On suppose que size_array contient encore le nombre d'elements
-+//  valides avant changement de taille.
-+// Parametre: new_size
-+//  Signification: nouvelle taille demandee pour le tableau.
-+// Parametre: options
-+//  Signification: COPY_OLD => on recopie les anciennes donnees dans le nouveau
-+//                  tableau (jusqu'au max de l'ancienne et de la nouvelle taille).
-+//                 INITIALIZE_NEW => initialisation des cases non copiees
-+// Postcondition:
-+//  p_ et data_ sont mis a jour, mais pas size_array_ !!!
-+//  (on suppose que c'est fait dans resize_array()).
-+//  Si la nouvelle taille est nulle, on detache le tableau.
-+void  ArrOfFloat::memory_resize(entier new_size, entier options)
-+{
-+  assert(new_size >= 0);
-+
-+  // Occupation memoire de l'ancien tableau:
-+  entier old_mem_size = 0;
-+  if (p_)
-+    old_mem_size = p_->get_size();
-+
-+  // Occupation memoire du nouveau tableau :
-+  // Si smart_resize, on prend au moins deux fois la taille
-+  // precedente, ou new_size
-+  entier new_mem_size = new_size;
-+  if (smart_resize_ && (old_mem_size * 2 > new_size))
-+    new_mem_size = old_mem_size * 2;
-+
-+  if (new_mem_size != old_mem_size)
-+    {
-+      // detach_array() efface le contenu de size_array_. On le met de cote:
-+      const entier old_size_array = size_array_;
-+      // On va reellement changer l'adresse du tableau.
-+      // Il ne faut pas qu'il existe d'autre reference a ce tableau.
-+      assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+      if (new_mem_size == 0)
-+        {
-+          // La nouvelle taille est nulle, on cree un tableau "detache"
-+          detach_array();
-+        }
-+      else
-+        {
-+          // Allocation d'une nouvelle zone
-+          VFloatdata * new_p = new VFloatdata(new_mem_size, storage_type_);
-+          float * new_data = new_p->get_data();
-+          // Raccourci si le tableau etait "detache", inutile de copier
-+          // les anciennes donnees. On copie si COPY_OLD est demande
-+          entier copy_size = 0;
-+          if (data_ != 0)
-+            {
-+              // Calcul du nombre d'elements a copier vers la nouvelle
-+              // zone de memoire : c'est le min de l'ancienne et de
-+              // la nouvelle taille.
-+              if (options & COPY_OLD)
-+                {
-+                  copy_size = size_array_;
-+                  if (new_size < copy_size)
-+                    copy_size = new_size;
-+                  // Copie des valeurs dans le nouveau tableau
-+                  for (entier i = 0; i < copy_size; i++)
-+                    new_data[i] = data_[i];
-+                }
-+              // Destruction de l'ancienne zone (si plus aucune reference)
-+              detach_array();
-+            }
-+          // On attache la nouvelle zone de memoire
-+          p_ = new_p;
-+          data_ = new_data;
-+          memory_size_ = new_mem_size;
-+          // Initialisation des cases supplementaires avec une valeur par defaut
-+          if (options & INITIALIZE_NEW)
-+            fill_default_value(copy_size, new_mem_size - copy_size);
-+          // Restaure l'ancienne valeur de size_array_
-+          size_array_ = old_size_array;
-+        }
-+    }
-+}
-+
-+// Description:
-+//  Remplit "nb" cases consecutives du tableau a partir de la case "first"
-+//  avec une valeur par defaut.
-+//  Cette fonction est appelee lors d'un resize pour initialiser les
-+//  cases nouvellement creees.
-+//  Le comportement depend actuellement du type de tableau :
-+//  * Tableau de type "smart_resize":
-+//    * en mode debug (macro NDEBUG non definie) le tableau est initialise
-+//      avec une valeur invalide.
-+//    * en optimise, le tableau n'est pas initialise
-+//  * Tableau normal :
-+//    Le tableau est initialise avec la valeur 0. Ce comportement est choisi
-+//    pour des raisons de compatibilite avec l'implementation precedente.
-+//    Cette specification pourrait etre modifiee prochainement pour des raisons
-+//    de performances (pour ne pas avoir a initialiser inutilement les tableaux).
-+//    DONC: il faut supposer desormais que les nouvelles cases ne sont pas
-+//    initialisees lors d'un resize.
-+// Parametre: first
-+//  Signification: premiere case a initialiser.
-+//  Contrainte:    (nb==0) ou (0 <= first < memory_size_)
-+// Parametre: nb
-+//  Signification: nombre de cases a initialiser.
-+//  Contrainte:    (nb==0) ou (0 < nb <= memory_size_ - first)
-+void  ArrOfFloat::fill_default_value(entier first, entier nb)
-+{
-+  assert((nb == 0) || (first >= 0 && first < memory_size_));
-+  assert((nb == 0) || (nb > 0 && nb <= memory_size_ - first));
-+  float * data = addr();
-+  assert(data!=0 || nb==0);
-+  data += first;
-+  if (smart_resize_)
-+    {
-+      /*
-+          // On initialise uniquement en mode debug
-+      #ifndef NDEBUG
-+          // Ceci represente un NAN. N'importe quelle operation avec ca fait encore un NAN.
-+          // Si c'est pas portable, on peut remplacer par DMAX_FLOAT sur les autres machines.
-+          static const unsigned long long  VALEUR_INVALIDE =
-+            0x7ff7ffffffffffffULL;
-+
-+          // On utilise "memcpy" et non "=" car "=" peut provoquer une exception
-+          // si la copie passe par le fpu.
-+          for (entier i = 0; i < nb; i++)
-+            memcpy(data + i, & VALEUR_INVALIDE, sizeof(float));
-+      #endif
-+      */
-+    }
-+  else
-+    {
-+      // Comportement pour les tableaux normaux : compatibilite avec la
-+      // version precedente : on initialise avec 0.
-+      for (entier i = 0; i < nb; i++)
-+        data[i] = (float) 0;
-+    }
-+}
-+
-+// ****************************************************************
-+//
-+//         Fonctions non membres de la classe ArrOfFloat
-+//
-+// ****************************************************************
-+
-+// Description:
-+//  Renvoie 1 si les tableaux "v" et "a" sont de la meme taille
-+//  et contiennent les memes valeurs au sens strict, sinon renvoie 0.
-+//  Le test est !(v[i]!=a[i])
-+entier operator==(const ArrOfFloat& v, const ArrOfFloat& a)
-+{
-+  const entier n = v.size_array();
-+  const entier na = a.size_array();
-+  entier resu = 1;
-+  if (n != na)
-+    {
-+      resu = 0;
-+    }
-+  else
-+    {
-+      const float* vv = v.addr();
-+      const float* av = a.addr();
-+      entier i;
-+      for (i = 0; i < n; i++)
-+        {
-+          if (av[i] != vv[i])
-+            {
-+              resu = 0;
-+              break;
-+            }
-+        }
-+    }
-+  return resu;
-+}
-+
-+// Description:
-+//    Retourne l'indice du min ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfFloat& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du min
-+entier imin_array(const ArrOfFloat& dx)
-+{
-+  entier indice_min = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_min = 0;
-+      float valeur_min = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const float val = dx[i];
-+          if(val < valeur_min)
-+            {
-+              indice_min = i;
-+              valeur_min = val;
-+            }
-+        }
-+    }
-+  return indice_min;
-+}
-+
-+// Description:
-+//    Retourne l'indice du max ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfFloat& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du max
-+entier imax_array(const ArrOfFloat& dx)
-+{
-+  entier indice_max = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_max = 0;
-+      float valeur_max = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const float val = dx[i];
-+          if(val > valeur_max)
-+            {
-+              indice_max = i;
-+              valeur_max = val;
-+            }
-+        }
-+    }
-+  return indice_max;
-+}
-+
-+// Description:
-+//    Retourne la valeur minimale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfFloat& dx
-+//    Signification: tableau a utiliser
-+// Retour: float
-+//    Signification: valeur du min
-+float min_array(const ArrOfFloat& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  float valeur_min = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const float val = dx[i];
-+      if (val < valeur_min)
-+        valeur_min = val;
-+    }
-+  return valeur_min;
-+}
-+
-+// Description:
-+//    Retourne la valeur maximale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfFloat& dx
-+//    Signification: tableau a utiliser
-+// Retour: float
-+//    Signification: valeur du max
-+float max_array(const ArrOfFloat& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  float valeur_max = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const float val = dx[i];
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//   Fonction de comparaison utilisee pour trier le tableau
-+//   dans ArrOfFloat::trier(). Voir man qsort
-+static int fonction_compare_arroffloat_ordonner(const void * data1, const void * data2)
-+{
-+  const float x = *(const float*)data1;
-+  const float y = *(const float*)data2;
-+  if (x < y)
-+    return -1;
-+  else if (x > y)
-+    return 1;
-+  else
-+    return 0;
-+}
-+
-+// Description:
-+//   Tri des valeurs du tableau dans l'ordre croissant.
-+//   La fonction utilisee est qsort de stdlib (elle est en n*log(n)).
-+void ArrOfFloat::ordonne_array()
-+{
-+  const entier size = size_array();
-+  if (size > 1)
-+    {
-+      float * data = addr();
-+      qsort(data, size, sizeof(float),
-+            fonction_compare_arroffloat_ordonner);
-+    }
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers les memes donnees qu'un tableau
-+//    existant. Le tableau sera du meme type que le tableau m ("detache",
-+//    "normal"). Le tableau m ne doit pas etre de type "ref_data"
-+//    Les donnes existantes sont perdues si elles
-+//    ne sont pas referencees ailleurs.
-+// Precondition:
-+// Parametre: const ArrOfFloat& m
-+//    Signification: le tableau a referencer (pas de type "ref_data"
-+//                   et different de *this !!!)
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfFloat& ArrOfFloat::ref_array(const ArrOfFloat& m)
-+{
-+  assert(&m != this);
-+  // La condition 'm n'est pas de type "ref_data"' est necessaire pour
-+  // attach_array().
-+  detach_array();
-+  attach_array(m);
-+  return *this;
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers la zone de memoire "data_".
-+//    On detache la zone de memoire existante. Le tableau devient
-+//    de type "ref_data". Attention : ptr doit etre non nul.
-+//    La taille est initialisee avec size.
-+//    Cette methode est appelee notamment par FloatVect::adopter.
-+// Parametre: float*
-+//    Signification: le tableau a recuperer. Si pointeur nul alors size
-+//                   doit etre nulle aussi et le tableau reste detache
-+// Parametre: entier size
-+//    Signification: le nombre d'elements du tableau.
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::ref_data(float* ptr, entier size)
-+{
-+  assert(ptr != 0 || size == 0);
-+  assert(size >= 0);
-+  detach_array();
-+  data_ = ptr;
-+  size_array_ = size;
-+  return *this;
-+}
-+
-+// Description:
-+//  Amene le tableau dans l'etat "detache". C'est a dire:
-+//  Si le tableau est "detache" :
-+//   * ne rien faire
-+//  Si le tableau est "normal" :
-+//   * decremente le nombre de references a *p
-+//   * detruit *p si p->ref_count==0
-+//   * annule p_, data_ et size_array_
-+//  Si le tableau est "ref_data" :
-+//   * annule data_ et size_array_
-+// Retour: int
-+//    Signification: 1 si les donnees du tableau ont ete supprimees
-+// Precondition:
-+// Postcondition:
-+//  On a p_==0, data_==0 et size_array_==0, memory_size_ = 0
-+//  L'attribut smart_resize_ est conserve.
-+entier ArrOfFloat::detach_array()
-+{
-+  entier retour = 0;
-+  if (p_)
-+    {
-+      // Le tableau est de type "normal"
-+      // Si la zone de memoire n'est plus utilisee par personne,
-+      // on la detruit.
-+      if ((p_->suppr_one_ref()) == 0)
-+        {
-+          delete p_;
-+          retour = 1;
-+        }
-+      p_ = 0;
-+    }
-+  data_ = 0;
-+  size_array_ = 0;
-+  memory_size_ = 0;
-+  return retour;
-+}
-+
-+// Description:
-+//    Amene le tableau dans l'etat "normal", "detache" ou "ref_array"
-+//    en associant la meme zone de memoire que le tableau m.
-+// Precondition:
-+//    Le tableau doit etre "detache"
-+// Parametre: const ArrOfFloat& m
-+//    Signification: tableau a utiliser
-+//                   le tableau doit etre different de *this !!!
-+// Retour:
-+//    Signification:
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+//    Si m est detache, le tableau reste detache,
-+//    si m est "ref_array", le tableau devient "ref_array",
-+//    sinon le tableau est "normal", avec ref_count > 1
-+//    Si m est de taille nulle, le tableau reste detache + Warning dans fichier .log
-+void ArrOfFloat::attach_array(const ArrOfFloat& m)
-+{
-+  // Le tableau doit etre detache
-+  assert(data_ == 0 && p_ == 0);
-+  // Le tableau doit etre different de *this
-+  assert(&m != this);
-+
-+  if (m.size_array() > 0)
-+    {
-+      p_ = m.p_;
-+      if (p_)
-+        p_->add_one_ref();
-+      data_ = m.data_;
-+      size_array_ = m.size_array_;
-+      memory_size_ = m.memory_size_;
-+      smart_resize_ = m.smart_resize_;
-+    }
-+  else
-+    {
-+      // Cas particulier ou on attache un tableau de taille nulle:
-+      //  en theorie, c'est pareil qu'un tableau de taille non nulle, MAIS
-+      //  dans les operateurs (ex:Op_Dift_VDF_Face_Axi), une ref est construite
-+      //  avant que le tableau ne prenne sa taille definitive. Donc, pour ne pas
-+      //  empecher le resize, il ne faut pas attacher le tableau s'il n'a pas
-+      //  encore la bonne taille. Solution propre: reecrire les operateurs pour
-+      //  qu'ils ne prennent pas une ref avant que le tableau ne soit valide
-+      //  et faire p_ = m.p_ dans tous les cas.
-+    }
-+}
-+
-+// Description:
-+//    Copie les elements source[first_element_source + i]
-+//    dans les elements  (*this)[first_element_dest + i] pour 0 <= i < nb_elements
-+//    Les autres elements de (*this) sont inchanges.
-+// Precondition:
-+// Parametre:       const ArrOfFloat& m
-+//  Signification:   le tableau a utiliser, doit etre different de *this !
-+// Parametre:       entier nb_elements
-+//  Signification:   nombre d'elements a copier, nb_elements >= -1.
-+//                   Si nb_elements==-1, on copie tout le tableau m.
-+//  Valeurs par defaut: -1
-+// Parametre:       entier first_element_dest
-+//  Valeurs par defaut: 0
-+// Parametre:       entier first_element_source
-+//  Valeurs par defaut: 0
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+//    Sort en erreur si la taille du tableau m est plus grande que la
-+//    taille de tableau this.
-+// Effets de bord:
-+// Postcondition:
-+ArrOfFloat& ArrOfFloat::inject_array(const ArrOfFloat& source,
-+                                     entier nb_elements,
-+                                     entier first_element_dest,
-+                                     entier first_element_source)
-+{
-+  assert(&source != this);
-+  assert(nb_elements >= -1);
-+  assert(first_element_dest >= 0);
-+  assert(first_element_source >= 0);
-+
-+  if (nb_elements < 0)
-+    nb_elements = source.size_array();
-+
-+  assert(first_element_source + nb_elements <= source.size_array());
-+  assert(first_element_dest + nb_elements <= size_array());
-+
-+  if (nb_elements > 0)
-+    {
-+      float * addr_dest = addr() + first_element_dest;
-+      const float * addr_source = source.addr() + first_element_source;
-+      // memcpy(addr_dest , addr_source, nb_elements * sizeof(float));
-+      entier i;
-+      for (i = 0; i < nb_elements; i++)
-+        {
-+          addr_dest[i] = addr_source[i];
-+        }
-+    }
-+  return *this;
-+}
-+
-+// Description:
-+//    Retourne le nombre de references des donnees du tableau
-+//    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
-+// Retour: int
-+//    Signification: ref_count_
-+entier ArrOfFloat::ref_count() const
-+{
-+  if (p_)
-+    return p_->ref_count();
-+  else
-+    return -1;
-+}
-+
-+// Description:
-+//    Addition case a case sur toutes les cases du tableau
-+// Precondition:
-+//    la taille de y doit etre au moins egale a la taille de this
-+// Parametre: const ArrOfFloat& y
-+//    Signification: tableau a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfFloat& ArrOfFloat::operator+=(const ArrOfFloat& y)
-+{
-+  assert(size_array()==y.size_array());
-+  float* dx = addr();
-+  const float* dy = y.addr();
-+  const entier n = size_array();
-+  for (entier i=0; i<n; i++)
-+    dx[i] += dy[i];
-+  return *this;
-+}
-+
-+// Description:
-+//     ajoute la meme valeur a toutes les cases du tableau
-+// Precondition:
-+// Parametre: const float dy
-+//    Signification: valeur a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfFloat
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfFloat& ArrOfFloat::operator+=(const float dy)
-+{
-+  float * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] += dy;
-+  return *this;
-+}
-+// Description:
-+//    Soustraction case a case sur toutes les cases du tableau
-+// Parametre: const ArrOfFloat& y
-+//    Signification: tableau de meme taille que *this
-+// Retour: ArrOfFloat&
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::operator-=(const ArrOfFloat& y)
-+{
-+  const entier size = size_array();
-+  assert(size == y.size_array());
-+  float * data = addr();
-+  const float * data_y = y.addr();
-+  for (entier i=0; i < size; i++)
-+    data[i] -= data_y[i];
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     soustrait la meme valeur a toutes les cases
-+// Retour: ArrOfFloat &
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::operator-=(const float dy)
-+{
-+  float * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] -= dy;
-+  return *this;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+//   Attention, l'adresse peut changer apres un appel
-+//   a resize_array(), ref_data, ref_array, ...
-+// Precondition:
-+// Retour: const float*
-+//   Signification: pointeur sur le premier element du tableau
-+const float* ArrOfFloat::addr() const
-+{
-+  return data_;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+// Precondition:
-+// Retour: const float*
-+//    Signification: la zone memoire du tableau
-+float* ArrOfFloat::addr()
-+{
-+  return data_;
-+}
-+
-+
-+// Description:
-+//    Retourne le max des abs(i)
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfFloat& dx
-+//    Signification: tableau a utiliser
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: float
-+//    Signification: valeur du max des valeurs absolues
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+float max_abs_array(const ArrOfFloat& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  float valeur_max = fabs(dx[0]);
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const float val = fabs(dx[i]);
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//     muliplie toutes les cases par dy
-+// Retour: ArrOfFloat &
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::operator*= (const float dy)
-+{
-+  float * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] *= dy;
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     divise toutes les cases par dy
-+// Retour: ArrOfFloat &
-+//    Signification: *this
-+ArrOfFloat& ArrOfFloat::operator/= (const float dy)
-+{
-+  // En theorie: les deux lignes suivantes sont plus efficaces, mais
-+  //  cela produit des differences sur certains cas tests
-+  //  (Hyd_C_VEF_Smago et Lambda_var_VEF_turb). Ca veut dire qu'il y
-+  //  a un probleme autre part mais pour l'instant on laisse l'ancien
-+  //  codage.
-+  // const float i_dy = 1. / dy;
-+  // operator*=(i_dy);
-+
-+  float * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] /= dy;
-+
-+  return *this;
-+}
-+
-+FloatTab::FloatTab()
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-+FloatTab::FloatTab(const FloatTab& tab) :
-+  ArrOfFloat(tab)
-+{
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+}
-+FloatTab::FloatTab(const entier i, const entier j) :
-+  ArrOfFloat(i*j)
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+}
-+
-+FloatTab& FloatTab::operator=(const FloatTab& tab)
-+{
-+  ArrOfFloat::operator=(tab);
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+  return *this;
-+}
-+
-+void FloatTab::reset()
-+{
-+  ArrOfFloat::reset();
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-diff --git a/databases/readers/Lata/ArrOfFloat.h b/databases/readers/Lata/ArrOfFloat.h
-new file mode 100644
-index 0000000..f80d4ee
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfFloat.h
-@@ -0,0 +1,353 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.h.P
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#ifndef ArrOfFloat_H
-+#define ArrOfFloat_H
-+
-+#include <assert.h>
-+#include <arch.h>
-+#include <Objet_U.h>
-+
-+#if ! defined(DMAXFLOAT)
-+#define DMAXFLOAT 1e40
-+#endif
-+
-+class VFloatdata;
-+
-+class ArrOfFloat
-+{
-+public:
-+  //
-+  // Destructeur
-+  //
-+  virtual ~ArrOfFloat();
-+  //
-+  // Constructeurs
-+  //
-+  ArrOfFloat();
-+  ArrOfFloat(entier size);
-+  ArrOfFloat(entier size, float initial_value);
-+  // Constructeur par copie : deep copy (on duplique les donnees)
-+  ArrOfFloat(const ArrOfFloat& );
-+  //
-+  // Methodes de construction tardive (on cree un tableau vide avec ArrOfFloat()
-+  // puis on appelle ces methodes pour modifier les caracteristiques du tableau :
-+  //
-+  // Change le nombre d'elements du tableau
-+  inline ArrOfFloat& resize_array(entier new_size);
-+
-+  // Methodes de gestion de l'allocation memoire:
-+  // Assigne une valeur au drapeau "smart_resize"
-+  // (reallocation uniquement si la taille augmente)
-+  void    set_smart_resize(entier flag);
-+  // Gestion du type de memoire alouee (standard ou pool de memoire Trio-U)
-+  enum    Storage { STANDARD, TEMP_STORAGE, SIMD_ALIGNED };
-+  void    set_mem_storage(const Storage storage);
-+  Storage get_mem_storage() const;
-+
-+  // Construction de tableaux qui pointent vers des donnees existantes
-+  // !!! Utiliser ref_data avec precaution (attention a size_array_)
-+  ArrOfFloat& ref_data(float* ptr, entier size);
-+  ArrOfFloat& ref_array(const ArrOfFloat&);
-+  // Operateur copie
-+  ArrOfFloat& operator=(const ArrOfFloat&);
-+  // Remise du tableau dans l'etat initial (obtenu par le constructeur par defaut)
-+  virtual void reset();
-+
-+  //
-+  // Methodes d'acces aux donnees et aux caracteristiques du tableau
-+  //
-+  // Remplit le tableau avec la valeur en parametre
-+  ArrOfFloat& operator=(float valeur);
-+
-+  inline       float& operator[](entier i);
-+  inline const float& operator[](entier i) const;
-+
-+  // Ces methodes renvoient un pointeur vers le premier element du tableau.
-+  const float * addr() const;
-+  float * addr();
-+  // Renvoie le nombre d'elements du tableau (et non la taille allouee)
-+  inline entier size_array() const;
-+  // Renvoie le nombre de tableaux qui pointent vers la stucture "*p_"
-+  entier ref_count() const;
-+  // Ajoute une case en fin de tableau et y stocke la "valeur"
-+  inline void   append_array(float valeur);
-+
-+  //
-+  // Operateurs divers
-+  //
-+  ArrOfFloat& operator+=(const ArrOfFloat&);
-+  ArrOfFloat& operator+=(const float);
-+  ArrOfFloat& operator-=(const ArrOfFloat&);
-+  ArrOfFloat& operator-=(const float);
-+  ArrOfFloat& inject_array(const ArrOfFloat& source,
-+                           entier nb_elements = -1,
-+                           entier first_element_dest = 0,
-+                           entier first_element_source = 0);
-+  ArrOfFloat& copy_array(const ArrOfFloat&);
-+
-+  ArrOfFloat& operator*= (const float) ;
-+  ArrOfFloat& operator/= (const float) ;
-+
-+  void             ordonne_array();
-+
-+protected:
-+  //
-+  // Methodes accessibles depuis les descendants de ArrOfFloat
-+  //
-+  void   attach_array(const ArrOfFloat&);
-+  entier detach_array();
-+  void   fill_default_value(entier first, entier nb);
-+private:
-+  // B. Mathieu 22/06/2004 : je mets ces membres "private" pour forcer
-+  // le passage par les accesseurs dans les classes derivees, au cas ou
-+  // on voudrait modifier l'implementation.
-+
-+  // Zone de memoire contenant les valeurs du tableau.
-+  // Pointeur nul => le tableau est "detache" ou "ref_data"
-+  // Pointeur non nul => le tableau est "normal"
-+  VFloatdata* p_;
-+
-+  // Pointeur vers le premier element du tableau (egal a p_->data si p_!=0)
-+  // Pointeur nul => le tableau est "detache".
-+  // Pointeur non nul => le tableau est "normal" ou "ref_data"
-+  float*   data_;
-+
-+  // Nombre d'elements du tableau (inferieur ou egal a memory_size_).
-+  // Si le tableau est "detache", alors size_array_=0
-+  entier    size_array_;
-+  // Taille memoire reellement allouee pour le tableau
-+  // (pour le mecanisme smart_resize_). memory_size_ est nul
-+  // si le tableau est de type "ref_data". Sinon memory_size_
-+  // est egal a p_->size_.
-+  entier    memory_size_;
-+
-+  // Drapeau indiquant si on applique une strategie d'allocation
-+  // preventive (la memoire alouee augmente d'un facteur constant
-+  // si la taille devient insuffisante).
-+  // Si smart_resize_ == 0, alors on a toujours p_->size_ == size
-+  entier    smart_resize_;
-+
-+  // Drapeau indiquant si l'allocation memoire a lieu avec un new classique
-+  // ou dans le pool de memoire temporaire de Trio
-+  Storage   storage_type_;
-+
-+  // Partie non inline de resize_array():
-+  // Declaration des constantes pour les options de memory_resize
-+  static const entier COPY_OLD;
-+  static const entier INITIALIZE_NEW;
-+  void memory_resize(entier new_size, entier options);
-+};
-+
-+#define MAXDIMFloatTab 2
-+
-+class FloatTab : public ArrOfFloat
-+{
-+public:
-+  FloatTab();
-+  FloatTab(const FloatTab&);
-+  FloatTab(const entier i, const entier j);
-+  FloatTab&    operator=(const FloatTab&);
-+  void              reset();
-+
-+  inline float& operator()(entier i, entier j);
-+  inline float   operator()(entier i, entier j) const;
-+
-+  inline entier resize(entier i, entier j);
-+  inline entier dimension(entier i) const;
-+  inline entier dimension_tot(entier i) const;
-+
-+protected:
-+  // In order to mimic TRUST behavior, operator[] is forbidden
-+  // for 2 dimensionnal matrices, you must cast to ArrOf to use it..
-+  double&        operator[](entier i);
-+  const double& operator[](entier i) const;
-+
-+private:
-+  //  entier nb_dim_;
-+  entier dimensions_[MAXDIMFloatTab];
-+};
-+
-+inline float& FloatTab::operator()(entier i, entier j)
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  float& x = ArrOfFloat::operator[] (n);
-+  return x;
-+}
-+
-+inline float   FloatTab::operator()(entier i, entier j) const
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  float x = ArrOfFloat::operator[] (n);
-+  return x;
-+}
-+
-+inline entier FloatTab::resize(entier i, entier j)
-+{
-+  assert(i >= 0 && j >= 0);
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+  ArrOfFloat::resize_array(i * j);
-+  return i*j;
-+}
-+
-+inline entier FloatTab::dimension(entier i) const
-+{
-+  assert(i >= 0 && i < 2);
-+  return dimensions_[i];
-+}
-+
-+// Description: renvoie la meme valeur que dimension.
-+inline entier FloatTab::dimension_tot(entier i) const
-+{
-+  return dimension(i);
-+}
-+
-+//
-+// Declarations des fonctions non membres de la classe ArrOfFloat
-+//
-+entier operator==(const ArrOfFloat& x, const ArrOfFloat& y) ;
-+entier imin_array(const ArrOfFloat&) ;
-+entier imax_array(const ArrOfFloat&) ;
-+float min_array(const ArrOfFloat&) ;
-+float max_array(const ArrOfFloat&) ;
-+
-+float max_abs_array(const ArrOfFloat&) ;
-+
-+// ******************************************************************
-+//                   FONCTIONS MEMBRES DE ArrOfFloat
-+// ******************************************************************
-+
-+// Description :
-+//  Change le nombre d'elements du tableau. Cette fonction est inline
-+//  car elle doit etre tres rapide dans le cas ou smart_resize_==1
-+//  (utilisation frequente de resize_array())
-+//  Si smart_resize est non nul :
-+//   Si la nouvelle taille est inferieure ou egale a la taille
-+//   alouee (p->get_size()) on ne realloue pas de memoire
-+//   sinon, on realloue et on copie les donnees existantes.
-+//  Astuce pour ne pas copier les anciennes donnees:
-+//   resize(0); resize(n);
-+//  Si smart_resize est nul, on realloue une nouvelle zone memoire
-+//   uniquement si la nouvelle taille est differente de l'ancienne.
-+// Precondition :
-+//  Si "new_size" est egal a la taille du tableau, aucune condition.
-+//  Sinon, le tableau doit etre soit detache, soit normal (pas de type "ref_data")
-+//  et ref_count doit etre egal a 1 (pas d'autre reference au tableau).
-+//
-+inline ArrOfFloat& ArrOfFloat::resize_array(entier new_size)
-+{
-+  assert(new_size >= 0);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau,
-+  // ou alors la taille ne doit pas changer.
-+  assert(new_size == size_array_ || data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if ((smart_resize_ == 0) || (new_size > memory_size_))
-+    memory_resize(new_size, COPY_OLD + INITIALIZE_NEW);
-+  size_array_ = new_size;
-+  return *this;
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+//    assert si i n'est pas dans l'intervalle
-+inline float& ArrOfFloat::operator[](entier i)
-+{
-+  assert(i >= 0 && i < size_array_);
-+  assert((smart_resize_==1)|| (data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT));
-+  return data_[i];
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+//    assert si i n'est pas dans l'intervalle
-+inline const float& ArrOfFloat::operator[](entier i) const
-+{
-+  assert(i >= 0 && i < size_array_);
-+  assert(data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT);
-+  return data_[i];
-+}
-+
-+// Description:
-+//    Renvoie la taille du tableau (nombre d'elements declares
-+//    a la construction ou a resize_array()).
-+//    C'est le nombre d'elements accessibles a operator[]
-+// Retour: entier
-+inline entier  ArrOfFloat::size_array() const
-+{
-+  return size_array_;
-+}
-+
-+// Description:
-+//  Ajoute une case en fin de tableau et y stocke la "valeur"
-+// Precondition:
-+//  Tableau doit etre de type "smart_resize" (sinon, ecroulement
-+//  des performances). De plus, le tableau ne doit pas etre "ref_data",
-+//  et il ne doit pas y avoir plus d'une reference a la zone de
-+//  memoire pointee (meme precondition que resize_array())
-+inline void   ArrOfFloat::append_array(float valeur)
-+{
-+  assert(smart_resize_);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau.
-+  assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if (size_array_+1 > memory_size_)
-+    memory_resize(size_array_+1, COPY_OLD);
-+  data_[size_array_] = valeur;
-+  size_array_++;
-+}
-+
-+// ArrOfFloat_H
-+#endif
-+
-diff --git a/databases/readers/Lata/ArrOfInt.C b/databases/readers/Lata/ArrOfInt.C
-new file mode 100644
-index 0000000..a4a150b
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfInt.C
-@@ -0,0 +1,1110 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.cpp.h
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#include <ArrOfInt.h>
-+// limits.h definit INT_MIN, SHRT_MIN, ...
-+#include <limits.h>
-+#include <stdlib.h>
-+#include <Objet_U.h>
-+#include <iostream>
-+#include <stdlib.h>
-+#include <string.h>
-+#include "simd_interface.h"
-+
-+using namespace std;
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de VIntdata
-+//
-+// ******************************************************************
-+////////////////////////////////////////////////////////////////////
-+// .NOM        ArrOfInt
-+// .ENTETE     TRUST Math
-+// .LIBRAIRIE  libtmath
-+// .FILE       ArrOfInt.h
-+// .FILE       ArrOfInt.cpp
-+//
-+// .DESCRIPTION
-+// VIntdata alloue une zone de memoire de la taille specifiee au
-+// constructeur, et libere la zone de memoire a la destruction.
-+//
-+// "ref_count" compte le nombre de pointeurs qui font reference a "this".
-+// (permet au dernier utilisateur de l'objet de le detruire), voir
-+// ArrOfInt.
-+//
-+// .SECTION voir aussi
-+// .CONTRAINTES
-+// .INVARIANTS
-+// .HTML
-+// .EPS
-+///////////////////////////////////////////////////////////////////
-+
-+class VIntdata
-+{
-+public:
-+  VIntdata(entier size, ArrOfInt::Storage storage);
-+  ~VIntdata();
-+  entier          add_one_ref();
-+  entier          suppr_one_ref();
-+  entier *        get_data();
-+  const entier *  get_data() const;
-+  inline entier   ref_count() const;
-+  inline entier   get_size() const;
-+private:
-+  // Le constructeur par copie et l'operateur= sont interdits.
-+  VIntdata(const VIntdata& v);
-+  VIntdata& operator=(const VIntdata& v);
-+
-+  // "data" est un pointeur sur une zone de memoire de taille
-+  // sz * sizeof(entier), allouee par le
-+  // constructeur et liberee par le destructeur.
-+  // Ce pointeur n'est jamais nul meme si size_==0
-+  entier * data_;
-+  // Compteur incremente par add_one_ref et decremente par suppr_one_ref.
-+  // Contient le nombre d'objets ArrOfInt dont le membre "p" pointe
-+  // vers "this". On a ref_count_ >= 0.
-+  entier ref_count_;
-+  // "sz" est la taille du tableau "data_" alloue
-+  // On a sz >= 0.
-+  entier size_;
-+  ArrOfInt::Storage storage_;
-+};
-+
-+
-+// Description:
-+//    Construit un VIntdata de taille size >= 0
-+// Parametre: entier s
-+//    Signification: taille du VIntdata, il faut size >= 0
-+// Parametre: Storage storage
-+//    Signification: indique si la memoire doit etre allouee
-+//                   avec "new" ou avec "simd_malloc"
-+//    Valeurs par defaut: STANDARD (allocation avec "new")
-+// Postcondition:
-+//    data_ n'est jamais nul, meme si size==0
-+VIntdata::VIntdata(entier size, ArrOfInt::Storage storage)
-+{
-+  if (size == 0)
-+    storage = ArrOfInt::STANDARD;
-+
-+  switch (storage)
-+    {
-+    case ArrOfInt::STANDARD:
-+      {
-+#ifdef _EXCEPTION_
-+        // Allocation de la memoire sur le tas
-+        try
-+          {
-+            data_ = new entier[size];
-+          }
-+        catch(...)
-+          {
-+            Cerr << "impossible d'allouer " << size << " entier " << finl;
-+            throw;
-+          }
-+#else
-+        data_ = new entier[size];
-+        if(!data_)
-+          {
-+            Cerr << "impossible d'allouer " << size << "entier " << finl;
-+            throw ;
-+          }
-+#endif
-+        break;
-+      }
-+    case ArrOfInt::SIMD_ALIGNED:
-+      {
-+#ifdef SIMD_TOOLS_H
-+        data_ = (entier*) simd_malloc (sizeof(entier) * size);
-+#else
-+        Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+        throw;
-+#endif
-+        break;
-+      }
-+    default:
-+      throw;
-+    }
-+  ref_count_ = 1;
-+  size_ = size;
-+  storage_ = storage;
-+  assert(data_ != 0);
-+}
-+
-+// Description:
-+//  Detruit la zone de memoire allouee.
-+// Precondition:
-+//  ref_count == 0 (la zone de memoire ne doit etre referencee nulle part)
-+VIntdata::~VIntdata()
-+{
-+  assert(ref_count_ == 0);
-+
-+  // Stockage STANDARD
-+  switch(storage_)
-+    {
-+    case ArrOfInt::STANDARD:
-+      delete[] data_;
-+      break;
-+    case ArrOfInt::SIMD_ALIGNED:
-+#ifdef SIMD_TOOLS_H
-+      simd_free(data_);
-+#else
-+      Cerr<<"unable to allocate simd_aligned, version compiled without simd "<<finl;
-+      throw;
-+#endif
-+      break;
-+    default:
-+      throw;
-+    }
-+
-+  data_ = 0;  // paranoia: si size_==-1 c'est qu'on pointe sur un zombie
-+  size_ = -1; //  (pointeur vers un objet qui a ete detruit)
-+  storage_ = ArrOfInt::STANDARD;
-+}
-+
-+// Description: renvoie ref_count_
-+inline entier VIntdata::ref_count() const
-+{
-+  return ref_count_;
-+}
-+
-+// Description: renvoie size_
-+inline entier VIntdata::get_size() const
-+{
-+  return size_;
-+}
-+
-+// Description:
-+//     Un nouveau tableau utilise cette zone memoire :
-+//     incremente ref_count
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VIntdata::add_one_ref()
-+{
-+  return ++ref_count_;
-+}
-+
-+// Description:
-+//     Un tableau de moins utilise cette zone memoire
-+//     decremente ref_count
-+// Precondition:
-+//     ref_count_ > 0
-+// Retour: int
-+//    Signification: ref_count
-+inline entier VIntdata::suppr_one_ref()
-+{
-+  assert(ref_count_ > 0);
-+  return (--ref_count_);
-+}
-+
-+// Description: renvoie data_
-+inline entier * VIntdata::get_data()
-+{
-+  return data_;
-+}
-+
-+// Description: renvoie data_
-+inline const entier * VIntdata::get_data() const
-+{
-+  return data_;
-+}
-+
-+// Description: Constructeur par copie. Interdit : genere une erreur !
-+VIntdata::VIntdata(const VIntdata& v)
-+{
-+  Cerr << "Erreur dans VIntdata::VIntdata(const VIntdata & v)" << finl;
-+  throw;
-+}
-+
-+// Description: Operateur= interdit. Genere une erreur !
-+VIntdata& VIntdata::operator=(const VIntdata& v)
-+{
-+  Cerr << "Erreur dans VIntdata::operator=(const VIntdata & v)" << finl;
-+  throw;
-+  return *this;
-+}
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de ArrOfInt
-+//
-+// ******************************************************************
-+
-+
-+// Definition des constantes pour les options de memory_resize
-+const entier ArrOfInt::COPY_OLD = 1;
-+const entier ArrOfInt::INITIALIZE_NEW = 2;
-+
-+// Description:
-+//  Destructeur : appelle detach_array()
-+ArrOfInt::~ArrOfInt()
-+{
-+  detach_array();
-+  size_array_ = -1; // Paranoia: si size_array_==-1, c'est un zombie
-+}
-+
-+// Description:
-+//  Constructeur par defaut: cree un tableau "detache",
-+//  soit p_==0, data_==0, size_array_==0, smart_resize_==0
-+ArrOfInt::ArrOfInt() :
-+  p_(0),
-+  data_(0),
-+  size_array_(0),
-+  memory_size_(0),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n avec allocation standard
-+//     (voir set_mem_storage).
-+//     Valeur de remplissage par defaut: voir fill_default_value
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+ArrOfInt::ArrOfInt(entier n) :
-+  p_(new VIntdata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  if (n > 0)
-+    fill_default_value(0, n);
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n
-+//     toutes les cases sont initialisees a x
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+// Parametre: entier x
-+//    Signification: valeur pour initialiser le tableau
-+ArrOfInt::ArrOfInt(entier n, entier x) :
-+  p_(new VIntdata(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  *this = x;
-+}
-+
-+// Description:
-+//     Constructeur par copie. On alloue une nouvelle zone de memoire
-+//     et on copie le contenu du tableau. L'attribut smart_resize_ est
-+//     copie aussi.
-+//     Si le tableau A est de taille nulle, on cree un tableau "detache",
-+//     sinon on cree un tableau "normal".
-+// Parametre: const ArrOfInt& A
-+//    Signification: le tableau a copier
-+ArrOfInt::ArrOfInt(const ArrOfInt& A)
-+{
-+  const entier size = A.size_array();
-+  if (size > 0)
-+    {
-+      // Creation d'un tableau "normal"
-+      storage_type_ = STANDARD;
-+      p_ = new VIntdata(size, STANDARD);
-+      data_ = p_->get_data();
-+      size_array_ = size;
-+      memory_size_ = size;
-+      smart_resize_ = A.smart_resize_;
-+      inject_array(A);
-+    }
-+  else
-+    {
-+      // Creation d'un tableau "detache"
-+      p_ = 0;
-+      data_ = 0;
-+      size_array_ = 0;
-+      memory_size_ = 0;
-+      smart_resize_ = 0;
-+      storage_type_ = STANDARD;
-+    }
-+}
-+
-+// Description:
-+//   Change le mode d'allocation memoire lors des resize
-+//   (voir VIntdata et Int_ptr_trav)
-+//   Exemple pour creer un tableau avec allocation temporaire:
-+//    DoubleTab tab; // Creation d'un tableau vide
-+//    tab.set_mem_storage(TEMP_STORAGE); // Changement de mode d'allocation
-+//    tab.resize(n); // Allocation memoire
-+void ArrOfInt::set_mem_storage(const Storage storage)
-+{
-+  storage_type_ = storage;
-+}
-+
-+// Description:
-+//   Renvoie le mode d'allocation du tableau (qui sera utilise
-+//   lors du prochain resize si changement de taille).
-+//   (voir VIntdata et Int_ptr_trav)
-+enum ArrOfInt::Storage ArrOfInt::get_mem_storage() const
-+{
-+  return storage_type_;
-+}
-+
-+// Description:
-+//   Change le mode l'allocation memoire: reallocation d'un tableau
-+//   a chaque changement de taille (flag = 0) ou reallocation
-+//   uniquement si la taille augmente et par doublement de la taille
-+//   du tableau (flag = 1).
-+void ArrOfInt::set_smart_resize(entier flag)
-+{
-+  assert(flag == 0 || flag == 1);
-+  smart_resize_ = flag;
-+}
-+
-+// Description:
-+//    Remet le tableau dans l'etat obtenu avec le constructeur par defaut
-+//    (libere la memoire mais conserve le mode d'allocation memoire actuel)
-+void ArrOfInt::reset()
-+{
-+  detach_array();
-+}
-+
-+// Description:
-+//    Copie les donnees du tableau m.
-+//    Si "m" n'a pas la meme taille que "*this", on fait un resize_array.
-+//    Ensuite, on copie les valeurs de "m" dans "*this".
-+//    Le type de tableau (methode d'allocation) n'est pas copie.
-+// Precondition:
-+//    Si le tableau n'a pas la meme taille que "m", alors *this doit
-+//    etre "resizable" (ne pas etre de type "ref_data" et "ref_count == 1")
-+// Parametre: const ArrOfInt& m
-+//    Signification: la tableau a copier
-+// Retour:  ArrOfInt&
-+//    Signification: *this
-+ArrOfInt& ArrOfInt::operator=(const ArrOfInt& m)
-+{
-+  if (&m != this)
-+    {
-+      const entier new_size = m.size_array();
-+      // Le code suivant est quasiment une copie de ArrOfInt::resize()
-+      // SAUF: memory_resize est appele avec NO_INITIALIZE (la zone de memoire
-+      //  n'est pas initialisee)
-+      if (new_size != size_array())
-+        {
-+          if ((smart_resize_ == 0) || (new_size > memory_size_))
-+            memory_resize(new_size, 0); // Pas d'initialisation
-+          size_array_ = new_size;
-+        }
-+      inject_array(m);
-+    }
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     x est affecte a toutes les cases
-+// Precondition:
-+// Parametre: entier x
-+//    Signification: la valeur a affecter a toutes les cases du tableau
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfInt& ArrOfInt::operator=(entier x)
-+{
-+  const entier n = size_array();
-+  entier *data = addr();
-+  for (entier i = 0; i < n; i++)
-+    {
-+      data[i] = x;
-+    }
-+  return *this;
-+}
-+
-+// Description: appelle operator=(a)
-+ArrOfInt& ArrOfInt::copy_array(const ArrOfInt& a)
-+{
-+  operator=(a);
-+  return *this;
-+}
-+
-+// Description:
-+//  Si besoin, alloue une nouvelle zone de memoire,
-+//  copie les donnees et efface l'ancienne zone de memoire.
-+//  Attention, on suppose que cette methode est appelee par
-+//  resize_array().
-+//  Attention: si ref_count_>1, l'appel a resize_array() est
-+//  autorise uniquement si la nouvelle taille est identique
-+//  a la precedente.
-+// Precondition:
-+//  Le tableau doit etre de type "detache" ou "normal" avec
-+//  ref_count==1, et il faut new_size >= 0
-+//  On suppose que size_array contient encore le nombre d'elements
-+//  valides avant changement de taille.
-+// Parametre: new_size
-+//  Signification: nouvelle taille demandee pour le tableau.
-+// Parametre: options
-+//  Signification: COPY_OLD => on recopie les anciennes donnees dans le nouveau
-+//                  tableau (jusqu'au max de l'ancienne et de la nouvelle taille).
-+//                 INITIALIZE_NEW => initialisation des cases non copiees
-+// Postcondition:
-+//  p_ et data_ sont mis a jour, mais pas size_array_ !!!
-+//  (on suppose que c'est fait dans resize_array()).
-+//  Si la nouvelle taille est nulle, on detache le tableau.
-+void  ArrOfInt::memory_resize(entier new_size, entier options)
-+{
-+  assert(new_size >= 0);
-+
-+  // Occupation memoire de l'ancien tableau:
-+  entier old_mem_size = 0;
-+  if (p_)
-+    old_mem_size = p_->get_size();
-+
-+  // Occupation memoire du nouveau tableau :
-+  // Si smart_resize, on prend au moins deux fois la taille
-+  // precedente, ou new_size
-+  entier new_mem_size = new_size;
-+  if (smart_resize_ && (old_mem_size * 2 > new_size))
-+    new_mem_size = old_mem_size * 2;
-+
-+  if (new_mem_size != old_mem_size)
-+    {
-+      // detach_array() efface le contenu de size_array_. On le met de cote:
-+      const entier old_size_array = size_array_;
-+      // On va reellement changer l'adresse du tableau.
-+      // Il ne faut pas qu'il existe d'autre reference a ce tableau.
-+      assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+      if (new_mem_size == 0)
-+        {
-+          // La nouvelle taille est nulle, on cree un tableau "detache"
-+          detach_array();
-+        }
-+      else
-+        {
-+          // Allocation d'une nouvelle zone
-+          VIntdata * new_p = new VIntdata(new_mem_size, storage_type_);
-+          entier * new_data = new_p->get_data();
-+          // Raccourci si le tableau etait "detache", inutile de copier
-+          // les anciennes donnees. On copie si COPY_OLD est demande
-+          entier copy_size = 0;
-+          if (data_ != 0)
-+            {
-+              // Calcul du nombre d'elements a copier vers la nouvelle
-+              // zone de memoire : c'est le min de l'ancienne et de
-+              // la nouvelle taille.
-+              if (options & COPY_OLD)
-+                {
-+                  copy_size = size_array_;
-+                  if (new_size < copy_size)
-+                    copy_size = new_size;
-+                  // Copie des valeurs dans le nouveau tableau
-+                  for (entier i = 0; i < copy_size; i++)
-+                    new_data[i] = data_[i];
-+                }
-+              // Destruction de l'ancienne zone (si plus aucune reference)
-+              detach_array();
-+            }
-+          // On attache la nouvelle zone de memoire
-+          p_ = new_p;
-+          data_ = new_data;
-+          memory_size_ = new_mem_size;
-+          // Initialisation des cases supplementaires avec une valeur par defaut
-+          if (options & INITIALIZE_NEW)
-+            fill_default_value(copy_size, new_mem_size - copy_size);
-+          // Restaure l'ancienne valeur de size_array_
-+          size_array_ = old_size_array;
-+        }
-+    }
-+}
-+
-+// Description:
-+//  Remplit "nb" cases consecutives du tableau a partir de la case "first"
-+//  avec une valeur par defaut.
-+//  Cette fonction est appelee lors d'un resize pour initialiser les
-+//  cases nouvellement creees.
-+//  Le comportement depend actuellement du type de tableau :
-+//  * Tableau de type "smart_resize":
-+//    * en mode debug (macro NDEBUG non definie) le tableau est initialise
-+//      avec une valeur invalide.
-+//    * en optimise, le tableau n'est pas initialise
-+//  * Tableau normal :
-+//    Le tableau est initialise avec la valeur 0. Ce comportement est choisi
-+//    pour des raisons de compatibilite avec l'implementation precedente.
-+//    Cette specification pourrait etre modifiee prochainement pour des raisons
-+//    de performances (pour ne pas avoir a initialiser inutilement les tableaux).
-+//    DONC: il faut supposer desormais que les nouvelles cases ne sont pas
-+//    initialisees lors d'un resize.
-+// Parametre: first
-+//  Signification: premiere case a initialiser.
-+//  Contrainte:    (nb==0) ou (0 <= first < memory_size_)
-+// Parametre: nb
-+//  Signification: nombre de cases a initialiser.
-+//  Contrainte:    (nb==0) ou (0 < nb <= memory_size_ - first)
-+void  ArrOfInt::fill_default_value(entier first, entier nb)
-+{
-+  assert((nb == 0) || (first >= 0 && first < memory_size_));
-+  assert((nb == 0) || (nb > 0 && nb <= memory_size_ - first));
-+  entier * data = addr();
-+  assert(data!=0 || nb==0);
-+  data += first;
-+  if (smart_resize_)
-+    {
-+      /*
-+          // On initialise uniquement en mode debug
-+      #ifndef NDEBUG
-+          static const entier ENTIER_INVALIDE = INT_MIN;
-+          for (entier i = 0; i < nb; i++)
-+            data[i] = ENTIER_INVALIDE;
-+      #endif
-+      */
-+    }
-+  else
-+    {
-+      // Comportement pour les tableaux normaux : compatibilite avec la
-+      // version precedente : on initialise avec 0.
-+      for (entier i = 0; i < nb; i++)
-+        data[i] = (entier) 0;
-+    }
-+}
-+
-+// ****************************************************************
-+//
-+//         Fonctions non membres de la classe ArrOfInt
-+//
-+// ****************************************************************
-+
-+// Description:
-+//  Renvoie 1 si les tableaux "v" et "a" sont de la meme taille
-+//  et contiennent les memes valeurs au sens strict, sinon renvoie 0.
-+//  Le test est !(v[i]!=a[i])
-+entier operator==(const ArrOfInt& v, const ArrOfInt& a)
-+{
-+  const entier n = v.size_array();
-+  const entier na = a.size_array();
-+  entier resu = 1;
-+  if (n != na)
-+    {
-+      resu = 0;
-+    }
-+  else
-+    {
-+      const entier* vv = v.addr();
-+      const entier* av = a.addr();
-+      entier i;
-+      for (i = 0; i < n; i++)
-+        {
-+          if (av[i] != vv[i])
-+            {
-+              resu = 0;
-+              break;
-+            }
-+        }
-+    }
-+  return resu;
-+}
-+
-+// Description:
-+//    Retourne l'indice du min ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfInt& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du min
-+entier imin_array(const ArrOfInt& dx)
-+{
-+  entier indice_min = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_min = 0;
-+      entier valeur_min = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const entier val = dx[i];
-+          if(val < valeur_min)
-+            {
-+              indice_min = i;
-+              valeur_min = val;
-+            }
-+        }
-+    }
-+  return indice_min;
-+}
-+
-+// Description:
-+//    Retourne l'indice du max ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOfInt& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du max
-+entier imax_array(const ArrOfInt& dx)
-+{
-+  entier indice_max = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_max = 0;
-+      entier valeur_max = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const entier val = dx[i];
-+          if(val > valeur_max)
-+            {
-+              indice_max = i;
-+              valeur_max = val;
-+            }
-+        }
-+    }
-+  return indice_max;
-+}
-+
-+// Description:
-+//    Retourne la valeur minimale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfInt& dx
-+//    Signification: tableau a utiliser
-+// Retour: entier
-+//    Signification: valeur du min
-+entier min_array(const ArrOfInt& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  entier valeur_min = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const entier val = dx[i];
-+      if (val < valeur_min)
-+        valeur_min = val;
-+    }
-+  return valeur_min;
-+}
-+
-+// Description:
-+//    Retourne la valeur maximale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOfInt& dx
-+//    Signification: tableau a utiliser
-+// Retour: entier
-+//    Signification: valeur du max
-+entier max_array(const ArrOfInt& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  entier valeur_max = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const entier val = dx[i];
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//   Fonction de comparaison utilisee pour trier le tableau
-+//   dans ArrOfInt::trier(). Voir man qsort
-+static int fonction_compare_arrofentier_ordonner(const void * data1, const void * data2)
-+{
-+  const entier x = *(const entier*)data1;
-+  const entier y = *(const entier*)data2;
-+  return x - y;
-+}
-+
-+// Description:
-+//   Tri des valeurs du tableau dans l'ordre croissant.
-+//   La fonction utilisee est qsort de stdlib (elle est en n*log(n)).
-+void ArrOfInt::ordonne_array()
-+{
-+  const entier size = size_array();
-+  if (size > 1)
-+    {
-+      entier * data = addr();
-+      qsort(data, size, sizeof(entier),
-+            fonction_compare_arrofentier_ordonner);
-+    }
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers les memes donnees qu'un tableau
-+//    existant. Le tableau sera du meme type que le tableau m ("detache",
-+//    "normal"). Le tableau m ne doit pas etre de type "ref_data"
-+//    Les donnes existantes sont perdues si elles
-+//    ne sont pas referencees ailleurs.
-+// Precondition:
-+// Parametre: const ArrOfInt& m
-+//    Signification: le tableau a referencer (pas de type "ref_data"
-+//                   et different de *this !!!)
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfInt& ArrOfInt::ref_array(const ArrOfInt& m)
-+{
-+  assert(&m != this);
-+  // La condition 'm n'est pas de type "ref_data"' est necessaire pour
-+  // attach_array().
-+  detach_array();
-+  attach_array(m);
-+  return *this;
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers la zone de memoire "data_".
-+//    On detache la zone de memoire existante. Le tableau devient
-+//    de type "ref_data". Attention : ptr doit etre non nul.
-+//    La taille est initialisee avec size.
-+//    Cette methode est appelee notamment par IntVect::adopter.
-+// Parametre: entier*
-+//    Signification: le tableau a recuperer. Si pointeur nul alors size
-+//                   doit etre nulle aussi et le tableau reste detache
-+// Parametre: entier size
-+//    Signification: le nombre d'elements du tableau.
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+ArrOfInt& ArrOfInt::ref_data(entier* ptr, entier size)
-+{
-+  assert(ptr != 0 || size == 0);
-+  assert(size >= 0);
-+  detach_array();
-+  data_ = ptr;
-+  size_array_ = size;
-+  return *this;
-+}
-+
-+// Description:
-+//  Amene le tableau dans l'etat "detache". C'est a dire:
-+//  Si le tableau est "detache" :
-+//   * ne rien faire
-+//  Si le tableau est "normal" :
-+//   * decremente le nombre de references a *p
-+//   * detruit *p si p->ref_count==0
-+//   * annule p_, data_ et size_array_
-+//  Si le tableau est "ref_data" :
-+//   * annule data_ et size_array_
-+// Retour: int
-+//    Signification: 1 si les donnees du tableau ont ete supprimees
-+// Precondition:
-+// Postcondition:
-+//  On a p_==0, data_==0 et size_array_==0, memory_size_ = 0
-+//  L'attribut smart_resize_ est conserve.
-+entier ArrOfInt::detach_array()
-+{
-+  entier retour = 0;
-+  if (p_)
-+    {
-+      // Le tableau est de type "normal"
-+      // Si la zone de memoire n'est plus utilisee par personne,
-+      // on la detruit.
-+      if ((p_->suppr_one_ref()) == 0)
-+        {
-+          delete p_;
-+          retour = 1;
-+        }
-+      p_ = 0;
-+    }
-+  data_ = 0;
-+  size_array_ = 0;
-+  memory_size_ = 0;
-+  return retour;
-+}
-+
-+// Description:
-+//    Amene le tableau dans l'etat "normal", "detache" ou "ref_array"
-+//    en associant la meme zone de memoire que le tableau m.
-+// Precondition:
-+//    Le tableau doit etre "detache"
-+// Parametre: const ArrOfInt& m
-+//    Signification: tableau a utiliser
-+//                   le tableau doit etre different de *this !!!
-+// Retour:
-+//    Signification:
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+//    Si m est detache, le tableau reste detache,
-+//    si m est "ref_array", le tableau devient "ref_array",
-+//    sinon le tableau est "normal", avec ref_count > 1
-+//    Si m est de taille nulle, le tableau reste detache + Warning dans fichier .log
-+void ArrOfInt::attach_array(const ArrOfInt& m)
-+{
-+  // Le tableau doit etre detache
-+  assert(data_ == 0 && p_ == 0);
-+  // Le tableau doit etre different de *this
-+  assert(&m != this);
-+
-+  if (m.size_array() > 0)
-+    {
-+      p_ = m.p_;
-+      if (p_)
-+        p_->add_one_ref();
-+      data_ = m.data_;
-+      size_array_ = m.size_array_;
-+      memory_size_ = m.memory_size_;
-+      smart_resize_ = m.smart_resize_;
-+    }
-+  else
-+    {
-+      // Cas particulier ou on attache un tableau de taille nulle:
-+      //  en theorie, c'est pareil qu'un tableau de taille non nulle, MAIS
-+      //  dans les operateurs (ex:Op_Dift_VDF_Face_Axi), une ref est construite
-+      //  avant que le tableau ne prenne sa taille definitive. Donc, pour ne pas
-+      //  empecher le resize, il ne faut pas attacher le tableau s'il n'a pas
-+      //  encore la bonne taille. Solution propre: reecrire les operateurs pour
-+      //  qu'ils ne prennent pas une ref avant que le tableau ne soit valide
-+      //  et faire p_ = m.p_ dans tous les cas.
-+    }
-+}
-+
-+// Description:
-+//    Copie les elements source[first_element_source + i]
-+//    dans les elements  (*this)[first_element_dest + i] pour 0 <= i < nb_elements
-+//    Les autres elements de (*this) sont inchanges.
-+// Precondition:
-+// Parametre:       const ArrOfInt& m
-+//  Signification:   le tableau a utiliser, doit etre different de *this !
-+// Parametre:       entier nb_elements
-+//  Signification:   nombre d'elements a copier, nb_elements >= -1.
-+//                   Si nb_elements==-1, on copie tout le tableau m.
-+//  Valeurs par defaut: -1
-+// Parametre:       entier first_element_dest
-+//  Valeurs par defaut: 0
-+// Parametre:       entier first_element_source
-+//  Valeurs par defaut: 0
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+//    Sort en erreur si la taille du tableau m est plus grande que la
-+//    taille de tableau this.
-+// Effets de bord:
-+// Postcondition:
-+ArrOfInt& ArrOfInt::inject_array(const ArrOfInt& source,
-+                                 entier nb_elements,
-+                                 entier first_element_dest,
-+                                 entier first_element_source)
-+{
-+  assert(&source != this);
-+  assert(nb_elements >= -1);
-+  assert(first_element_dest >= 0);
-+  assert(first_element_source >= 0);
-+
-+  if (nb_elements < 0)
-+    nb_elements = source.size_array();
-+
-+  assert(first_element_source + nb_elements <= source.size_array());
-+  assert(first_element_dest + nb_elements <= size_array());
-+
-+  if (nb_elements > 0)
-+    {
-+      entier * addr_dest = addr() + first_element_dest;
-+      const entier * addr_source = source.addr() + first_element_source;
-+      // memcpy(addr_dest , addr_source, nb_elements * sizeof(entier));
-+      entier i;
-+      for (i = 0; i < nb_elements; i++)
-+        {
-+          addr_dest[i] = addr_source[i];
-+        }
-+    }
-+  return *this;
-+}
-+
-+// Description:
-+//    Retourne le nombre de references des donnees du tableau
-+//    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
-+// Retour: int
-+//    Signification: ref_count_
-+entier ArrOfInt::ref_count() const
-+{
-+  if (p_)
-+    return p_->ref_count();
-+  else
-+    return -1;
-+}
-+
-+// Description:
-+//    Addition case a case sur toutes les cases du tableau
-+// Precondition:
-+//    la taille de y doit etre au moins egale a la taille de this
-+// Parametre: const ArrOfInt& y
-+//    Signification: tableau a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfInt& ArrOfInt::operator+=(const ArrOfInt& y)
-+{
-+  assert(size_array()==y.size_array());
-+  entier* dx = addr();
-+  const entier* dy = y.addr();
-+  const entier n = size_array();
-+  for (entier i=0; i<n; i++)
-+    dx[i] += dy[i];
-+  return *this;
-+}
-+
-+// Description:
-+//     ajoute la meme valeur a toutes les cases du tableau
-+// Precondition:
-+// Parametre: const entier dy
-+//    Signification: valeur a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOfInt
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOfInt& ArrOfInt::operator+=(const entier dy)
-+{
-+  entier * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] += dy;
-+  return *this;
-+}
-+// Description:
-+//    Soustraction case a case sur toutes les cases du tableau
-+// Parametre: const ArrOfInt& y
-+//    Signification: tableau de meme taille que *this
-+// Retour: ArrOfInt&
-+//    Signification: *this
-+ArrOfInt& ArrOfInt::operator-=(const ArrOfInt& y)
-+{
-+  const entier size = size_array();
-+  assert(size == y.size_array());
-+  entier * data = addr();
-+  const entier * data_y = y.addr();
-+  for (entier i=0; i < size; i++)
-+    data[i] -= data_y[i];
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     soustrait la meme valeur a toutes les cases
-+// Retour: ArrOfInt &
-+//    Signification: *this
-+ArrOfInt& ArrOfInt::operator-=(const entier dy)
-+{
-+  entier * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] -= dy;
-+  return *this;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+//   Attention, l'adresse peut changer apres un appel
-+//   a resize_array(), ref_data, ref_array, ...
-+// Precondition:
-+// Retour: const entier*
-+//   Signification: pointeur sur le premier element du tableau
-+const entier* ArrOfInt::addr() const
-+{
-+  return data_;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+// Precondition:
-+// Retour: const entier*
-+//    Signification: la zone memoire du tableau
-+entier* ArrOfInt::addr()
-+{
-+  return data_;
-+}
-+
-+
-+IntTab::IntTab()
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-+IntTab::IntTab(const IntTab& tab) :
-+  ArrOfInt(tab)
-+{
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+}
-+IntTab::IntTab(const entier i, const entier j) :
-+  ArrOfInt(i*j)
-+{
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+}
-+
-+IntTab& IntTab::operator=(const IntTab& tab)
-+{
-+  ArrOfInt::operator=(tab);
-+  // nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+  return *this;
-+}
-+
-+void IntTab::reset()
-+{
-+  ArrOfInt::reset();
-+  // nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-diff --git a/databases/readers/Lata/ArrOfInt.h b/databases/readers/Lata/ArrOfInt.h
-new file mode 100644
-index 0000000..9d9a542
---- /dev/null
-+++ b/databases/readers/Lata/ArrOfInt.h
-@@ -0,0 +1,343 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+////////////////////////////////////////////////////////////
-+//
-+// Warning : DO NOT EDIT !
-+//         Please update ArrOf_Scalar_Prototype.h.P
-+//         and this file will be generated automatically
-+//           by the script file check.sh
-+////////////////////////////////////////////////////////////
-+
-+#ifndef ArrOfInt_H
-+#define ArrOfInt_H
-+
-+#include <assert.h>
-+#include <arch.h>
-+#include <Objet_U.h>
-+
-+
-+class VIntdata;
-+
-+class ArrOfInt
-+{
-+public:
-+  //
-+  // Destructeur
-+  //
-+  virtual ~ArrOfInt();
-+  //
-+  // Constructeurs
-+  //
-+  ArrOfInt();
-+  ArrOfInt(entier size);
-+  ArrOfInt(entier size, entier initial_value);
-+  // Constructeur par copie : deep copy (on duplique les donnees)
-+  ArrOfInt(const ArrOfInt& );
-+  //
-+  // Methodes de construction tardive (on cree un tableau vide avec ArrOfInt()
-+  // puis on appelle ces methodes pour modifier les caracteristiques du tableau :
-+  //
-+  // Change le nombre d'elements du tableau
-+  inline ArrOfInt& resize_array(entier new_size);
-+
-+  // Methodes de gestion de l'allocation memoire:
-+  // Assigne une valeur au drapeau "smart_resize"
-+  // (reallocation uniquement si la taille augmente)
-+  void    set_smart_resize(entier flag);
-+  // Gestion du type de memoire alouee (standard ou pool de memoire Trio-U)
-+  enum    Storage { STANDARD, TEMP_STORAGE, SIMD_ALIGNED };
-+  void    set_mem_storage(const Storage storage);
-+  Storage get_mem_storage() const;
-+
-+  // Construction de tableaux qui pointent vers des donnees existantes
-+  // !!! Utiliser ref_data avec precaution (attention a size_array_)
-+  ArrOfInt& ref_data(entier* ptr, entier size);
-+  ArrOfInt& ref_array(const ArrOfInt&);
-+  // Operateur copie
-+  ArrOfInt& operator=(const ArrOfInt&);
-+  // Remise du tableau dans l'etat initial (obtenu par le constructeur par defaut)
-+  virtual void reset();
-+
-+  //
-+  // Methodes d'acces aux donnees et aux caracteristiques du tableau
-+  //
-+  // Remplit le tableau avec la valeur en parametre
-+  ArrOfInt& operator=(entier valeur);
-+
-+  inline       entier& operator[](entier i);
-+  inline const entier& operator[](entier i) const;
-+
-+  // Ces methodes renvoient un pointeur vers le premier element du tableau.
-+  const entier * addr() const;
-+  entier * addr();
-+  // Renvoie le nombre d'elements du tableau (et non la taille allouee)
-+  inline entier size_array() const;
-+  // Renvoie le nombre de tableaux qui pointent vers la stucture "*p_"
-+  entier ref_count() const;
-+  // Ajoute une case en fin de tableau et y stocke la "valeur"
-+  inline void   append_array(entier valeur);
-+
-+  //
-+  // Operateurs divers
-+  //
-+  ArrOfInt& operator+=(const ArrOfInt&);
-+  ArrOfInt& operator+=(const entier);
-+  ArrOfInt& operator-=(const ArrOfInt&);
-+  ArrOfInt& operator-=(const entier);
-+  ArrOfInt& inject_array(const ArrOfInt& source,
-+                         entier nb_elements = -1,
-+                         entier first_element_dest = 0,
-+                         entier first_element_source = 0);
-+  ArrOfInt& copy_array(const ArrOfInt&);
-+
-+
-+  void             ordonne_array();
-+
-+protected:
-+  //
-+  // Methodes accessibles depuis les descendants de ArrOfInt
-+  //
-+  void   attach_array(const ArrOfInt&);
-+  entier detach_array();
-+  void   fill_default_value(entier first, entier nb);
-+private:
-+  // B. Mathieu 22/06/2004 : je mets ces membres "private" pour forcer
-+  // le passage par les accesseurs dans les classes derivees, au cas ou
-+  // on voudrait modifier l'implementation.
-+
-+  // Zone de memoire contenant les valeurs du tableau.
-+  // Pointeur nul => le tableau est "detache" ou "ref_data"
-+  // Pointeur non nul => le tableau est "normal"
-+  VIntdata* p_;
-+
-+  // Pointeur vers le premier element du tableau (egal a p_->data si p_!=0)
-+  // Pointeur nul => le tableau est "detache".
-+  // Pointeur non nul => le tableau est "normal" ou "ref_data"
-+  entier*   data_;
-+
-+  // Nombre d'elements du tableau (inferieur ou egal a memory_size_).
-+  // Si le tableau est "detache", alors size_array_=0
-+  entier    size_array_;
-+  // Taille memoire reellement allouee pour le tableau
-+  // (pour le mecanisme smart_resize_). memory_size_ est nul
-+  // si le tableau est de type "ref_data". Sinon memory_size_
-+  // est egal a p_->size_.
-+  entier    memory_size_;
-+
-+  // Drapeau indiquant si on applique une strategie d'allocation
-+  // preventive (la memoire alouee augmente d'un facteur constant
-+  // si la taille devient insuffisante).
-+  // Si smart_resize_ == 0, alors on a toujours p_->size_ == size
-+  entier    smart_resize_;
-+
-+  // Drapeau indiquant si l'allocation memoire a lieu avec un new classique
-+  // ou dans le pool de memoire temporaire de Trio
-+  Storage   storage_type_;
-+
-+  // Partie non inline de resize_array():
-+  // Declaration des constantes pour les options de memory_resize
-+  static const entier COPY_OLD;
-+  static const entier INITIALIZE_NEW;
-+  void memory_resize(entier new_size, entier options);
-+};
-+
-+#define MAXDIMIntTab 2
-+
-+class IntTab : public ArrOfInt
-+{
-+public:
-+  IntTab();
-+  IntTab(const IntTab&);
-+  IntTab(const entier i, const entier j);
-+  IntTab&    operator=(const IntTab&);
-+  void              reset();
-+
-+  inline entier& operator()(entier i, entier j);
-+  inline entier   operator()(entier i, entier j) const;
-+
-+  inline entier resize(entier i, entier j);
-+  inline entier dimension(entier i) const;
-+  inline entier dimension_tot(entier i) const;
-+
-+protected:
-+  // In order to mimic TRUST behavior, operator[] is forbidden
-+  // for 2 dimensionnal matrices, you must cast to ArrOf to use it..
-+  double&        operator[](entier i);
-+  const double& operator[](entier i) const;
-+
-+private:
-+  //  entier nb_dim_;
-+  entier dimensions_[MAXDIMIntTab];
-+};
-+
-+inline entier& IntTab::operator()(entier i, entier j)
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  entier& x = ArrOfInt::operator[] (n);
-+  return x;
-+}
-+
-+inline entier   IntTab::operator()(entier i, entier j) const
-+{
-+  // assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  entier x = ArrOfInt::operator[] (n);
-+  return x;
-+}
-+
-+inline entier IntTab::resize(entier i, entier j)
-+{
-+  assert(i >= 0 && j >= 0);
-+  // nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+  ArrOfInt::resize_array(i * j);
-+  return i*j;
-+}
-+
-+inline entier IntTab::dimension(entier i) const
-+{
-+  assert(i >= 0 && i < 2);
-+  return dimensions_[i];
-+}
-+
-+// Description: renvoie la meme valeur que dimension.
-+inline entier IntTab::dimension_tot(entier i) const
-+{
-+  return dimension(i);
-+}
-+
-+//
-+// Declarations des fonctions non membres de la classe ArrOfInt
-+//
-+entier operator==(const ArrOfInt& x, const ArrOfInt& y) ;
-+entier imin_array(const ArrOfInt&) ;
-+entier imax_array(const ArrOfInt&) ;
-+entier min_array(const ArrOfInt&) ;
-+entier max_array(const ArrOfInt&) ;
-+
-+
-+// ******************************************************************
-+//                   FONCTIONS MEMBRES DE ArrOfInt
-+// ******************************************************************
-+
-+// Description :
-+//  Change le nombre d'elements du tableau. Cette fonction est inline
-+//  car elle doit etre tres rapide dans le cas ou smart_resize_==1
-+//  (utilisation frequente de resize_array())
-+//  Si smart_resize est non nul :
-+//   Si la nouvelle taille est inferieure ou egale a la taille
-+//   alouee (p->get_size()) on ne realloue pas de memoire
-+//   sinon, on realloue et on copie les donnees existantes.
-+//  Astuce pour ne pas copier les anciennes donnees:
-+//   resize(0); resize(n);
-+//  Si smart_resize est nul, on realloue une nouvelle zone memoire
-+//   uniquement si la nouvelle taille est differente de l'ancienne.
-+// Precondition :
-+//  Si "new_size" est egal a la taille du tableau, aucune condition.
-+//  Sinon, le tableau doit etre soit detache, soit normal (pas de type "ref_data")
-+//  et ref_count doit etre egal a 1 (pas d'autre reference au tableau).
-+//
-+inline ArrOfInt& ArrOfInt::resize_array(entier new_size)
-+{
-+  assert(new_size >= 0);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau,
-+  // ou alors la taille ne doit pas changer.
-+  assert(new_size == size_array_ || data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if ((smart_resize_ == 0) || (new_size > memory_size_))
-+    memory_resize(new_size, COPY_OLD + INITIALIZE_NEW);
-+  size_array_ = new_size;
-+  return *this;
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si i n'est pas dans l'intervalle
-+inline entier& ArrOfInt::operator[](entier i)
-+{
-+  assert(i >= 0 && i < size_array_);
-+  return data_[i];
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+//    assert si i n'est pas dans l'intervalle
-+inline const entier& ArrOfInt::operator[](entier i) const
-+{
-+  assert(i >= 0 && i < size_array_);
-+  return data_[i];
-+}
-+
-+// Description:
-+//    Renvoie la taille du tableau (nombre d'elements declares
-+//    a la construction ou a resize_array()).
-+//    C'est le nombre d'elements accessibles a operator[]
-+// Retour: entier
-+inline entier  ArrOfInt::size_array() const
-+{
-+  return size_array_;
-+}
-+
-+// Description:
-+//  Ajoute une case en fin de tableau et y stocke la "valeur"
-+// Precondition:
-+//  Tableau doit etre de type "smart_resize" (sinon, ecroulement
-+//  des performances). De plus, le tableau ne doit pas etre "ref_data",
-+//  et il ne doit pas y avoir plus d'une reference a la zone de
-+//  memoire pointee (meme precondition que resize_array())
-+inline void   ArrOfInt::append_array(entier valeur)
-+{
-+  assert(smart_resize_);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau.
-+  assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if (size_array_+1 > memory_size_)
-+    memory_resize(size_array_+1, COPY_OLD);
-+  data_[size_array_] = valeur;
-+  size_array_++;
-+}
-+
-+// ArrOfInt_H
-+#endif
-+
-diff --git a/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h b/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h
-new file mode 100644
-index 0000000..b881750
---- /dev/null
-+++ b/databases/readers/Lata/ArrOf_Scalar_Prototype.cpp.h
-@@ -0,0 +1,1168 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <ArrOf__Scalar__.h>
-+__DoubleOnlyBegin__
-+#include <math.h>
-+__DoubleOnlyEnd__
-+__IntOnlyBegin__
-+// limits.h definit INT_MIN, SHRT_MIN, ...
-+#include <limits.h>
-+__IntOnlyEnd__
-+#include <stdlib.h>
-+#include <Objet_U.h>
-+#include <iostream>
-+#include <stdlib.h>
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de V__Scalar__data
-+//
-+// ******************************************************************
-+////////////////////////////////////////////////////////////////////
-+// .NOM        ArrOf__Scalar__
-+// .ENTETE     TRUST Math
-+// .LIBRAIRIE  libtmath
-+// .FILE       ArrOf__Scalar__.h
-+// .FILE       ArrOf__Scalar__.cpp
-+//
-+// .DESCRIPTION
-+// V__Scalar__data alloue une zone de memoire de la taille specifiee au
-+// constructeur, et libere la zone de memoire a la destruction.
-+// La memoire peut etre allouee sur le tas (avec new) ou par le
-+// mecanisme Memoire::add_trav___scalar__.
-+//
-+// "ref_count" compte le nombre de pointeurs qui font reference a "this".
-+// (permet au dernier utilisateur de l'objet de le detruire), voir
-+// ArrOf__Scalar__.
-+//
-+// .SECTION voir aussi
-+// .CONTRAINTES
-+// .INVARIANTS
-+// .HTML
-+// .EPS
-+///////////////////////////////////////////////////////////////////
-+
-+class V__Scalar__data
-+{
-+public:
-+  V__Scalar__data(entier size, ArrOf__Scalar__::Storage storage);
-+  ~V__Scalar__data();
-+  entier          add_one_ref();
-+  entier          suppr_one_ref();
-+  __scalar__ *        get_data();
-+  const __scalar__ *  get_data() const;
-+  inline entier   ref_count() const;
-+  inline entier   get_size() const;
-+private:
-+  // Le constructeur par copie et l'operateur= sont interdits.
-+  V__Scalar__data(const V__Scalar__data& v);
-+  V__Scalar__data& operator=(const V__Scalar__data& v);
-+
-+  // "data" est un pointeur sur une zone de memoire de taille
-+  // sz * sizeof(__scalar__), allouee par le
-+  // constructeur et liberee par le destructeur.
-+  // Ce pointeur n'est jamais nul meme si size_==0
-+  __scalar__ * data_;
-+  // Compteur incremente par add_one_ref et decremente par suppr_one_ref.
-+  // Contient le nombre d'objets ArrOf__Scalar__ dont le membre "p" pointe
-+  // vers "this". On a ref_count_ >= 0.
-+  entier ref_count_;
-+  // "sz" est la taille du tableau "data_" alloue
-+  // On a sz >= 0.
-+  entier size_;
-+  // Si storage est de type TEMP_STORAGE, d_ptr_trav porte la reference
-+  // a la zone allouee, sinon le pointeur est nul.
-+  //__Scalar___ptr_trav * d_ptr_trav_;
-+};
-+
-+
-+// Description:
-+//    Construit un V__Scalar__data de taille size >= 0
-+// Parametre: entier s
-+//    Signification: taille du V__Scalar__data, il faut size >= 0
-+// Parametre: Storage storage
-+//    Signification: indique si la memoire doit etre allouee
-+//                   avec "new" ou avec "memoire.add_trav___scalar__()"
-+//    Valeurs par defaut: STANDARD (allocation avec "new")
-+// Postcondition:
-+//    data_ n'est jamais nul, meme si size==0
-+V__Scalar__data::V__Scalar__data(entier size, ArrOf__Scalar__::Storage storage)
-+{
-+  if (size == 0)
-+    storage = ArrOf__Scalar__::STANDARD;
-+
-+  switch (storage)
-+    {
-+    case ArrOf__Scalar__::STANDARD:
-+      {
-+#ifdef _EXCEPTION_
-+        // Allocation de la memoire sur le tas
-+        try
-+          {
-+            data_ = new __scalar__[size];
-+          }
-+        catch(...)
-+          {
-+            Cerr << "impossible d'allouer " << size << " __scalar__ " << finl;
-+            throw;
-+          }
-+#else
-+        data_ = new __scalar__[size];
-+        if(!data_)
-+          {
-+            Cerr << "impossible d'allouer " << size << "__scalar__ " << finl;
-+            throw ;
-+          }
-+#endif
-+        break;
-+      }
-+    default:
-+      throw;
-+    }
-+  ref_count_ = 1;
-+  size_ = size;
-+
-+  assert(data_ != 0);
-+}
-+
-+// Description:
-+//  Detruit la zone de memoire allouee.
-+// Precondition:
-+//  ref_count == 0 (la zone de memoire ne doit etre referencee nulle part)
-+V__Scalar__data::~V__Scalar__data()
-+{
-+  assert(ref_count_ == 0);
-+
-+  // Stockage STANDARD
-+  delete[] data_;
-+
-+  data_ = 0;  // paranoia: si size_==-1 c'est qu'on pointe sur un zombie
-+  size_ = -1; //  (pointeur vers un objet qui a ete detruit)
-+}
-+
-+// Description: renvoie ref_count_
-+inline entier V__Scalar__data::ref_count() const
-+{
-+  return ref_count_;
-+}
-+
-+// Description: renvoie size_
-+inline entier V__Scalar__data::get_size() const
-+{
-+  return size_;
-+}
-+
-+// Description:
-+//     Un nouveau tableau utilise cette zone memoire :
-+//     incremente ref_count
-+// Retour: int
-+//    Signification: ref_count
-+inline entier V__Scalar__data::add_one_ref()
-+{
-+  return ++ref_count_;
-+}
-+
-+// Description:
-+//     Un tableau de moins utilise cette zone memoire
-+//     decremente ref_count
-+// Precondition:
-+//     ref_count_ > 0
-+// Retour: int
-+//    Signification: ref_count
-+inline entier V__Scalar__data::suppr_one_ref()
-+{
-+  assert(ref_count_ > 0);
-+  return (--ref_count_);
-+}
-+
-+// Description: renvoie data_
-+inline __scalar__ * V__Scalar__data::get_data()
-+{
-+  return data_;
-+}
-+
-+// Description: renvoie data_
-+inline const __scalar__ * V__Scalar__data::get_data() const
-+{
-+  return data_;
-+}
-+
-+// Description: Constructeur par copie. Interdit : genere une erreur !
-+V__Scalar__data::V__Scalar__data(const V__Scalar__data& v)
-+{
-+  Cerr << "Erreur dans V__Scalar__data::V__Scalar__data(const V__Scalar__data & v)" << finl;
-+  throw;
-+}
-+
-+// Description: Operateur= interdit. Genere une erreur !
-+V__Scalar__data& V__Scalar__data::operator=(const V__Scalar__data& v)
-+{
-+  Cerr << "Erreur dans V__Scalar__data::operator=(const V__Scalar__data & v)" << finl;
-+  throw;
-+  return *this;
-+}
-+
-+// ******************************************************************
-+//
-+//             Implementation des methodes de ArrOf__Scalar__
-+//
-+// ******************************************************************
-+
-+
-+// Definition des constantes pour les options de memory_resize
-+const entier ArrOf__Scalar__::COPY_OLD = 1;
-+const entier ArrOf__Scalar__::INITIALIZE_NEW = 2;
-+
-+// Description:
-+//  Destructeur : appelle detach_array()
-+ArrOf__Scalar__::~ArrOf__Scalar__()
-+{
-+  detach_array();
-+  size_array_ = -1; // Paranoia: si size_array_==-1, c'est un zombie
-+}
-+
-+// Description:
-+//  Constructeur par defaut: cree un tableau "detache",
-+//  soit p_==0, data_==0, size_array_==0, smart_resize_==0
-+ArrOf__Scalar__::ArrOf__Scalar__() :
-+  p_(0),
-+  data_(0),
-+  size_array_(0),
-+  memory_size_(0),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n avec allocation standard
-+//     (voir set_mem_storage).
-+//     Valeur de remplissage par defaut: voir fill_default_value
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+ArrOf__Scalar__::ArrOf__Scalar__(entier n) :
-+  p_(new V__Scalar__data(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  if (n > 0)
-+    fill_default_value(0, n);
-+}
-+
-+// Description:
-+//     Cree un tableau de taille n
-+//     toutes les cases sont initialisees a x
-+// Precondition:
-+// Parametre: entier n
-+//    Signification: taille du tableau
-+// Parametre: __scalar__ x
-+//    Signification: valeur pour initialiser le tableau
-+ArrOf__Scalar__::ArrOf__Scalar__(entier n, __scalar__ x) :
-+  p_(new V__Scalar__data(n, STANDARD)),
-+  data_(p_->get_data()),
-+  size_array_(n),
-+  memory_size_(n),
-+  smart_resize_(0),
-+  storage_type_(STANDARD)
-+{
-+  *this = x;
-+}
-+
-+// Description:
-+//     Constructeur par copie. On alloue une nouvelle zone de memoire
-+//     et on copie le contenu du tableau. L'attribut smart_resize_ est
-+//     copie aussi.
-+//     Si le tableau A est de taille nulle, on cree un tableau "detache",
-+//     sinon on cree un tableau "normal".
-+// Parametre: const ArrOf__Scalar__& A
-+//    Signification: le tableau a copier
-+ArrOf__Scalar__::ArrOf__Scalar__(const ArrOf__Scalar__& A)
-+{
-+  const entier size = A.size_array();
-+  if (size > 0)
-+    {
-+      // Creation d'un tableau "normal"
-+      storage_type_ = STANDARD;
-+      p_ = new V__Scalar__data(size, STANDARD);
-+      data_ = p_->get_data();
-+      size_array_ = size;
-+      memory_size_ = size;
-+      smart_resize_ = A.smart_resize_;
-+      inject_array(A);
-+    }
-+  else
-+    {
-+      // Creation d'un tableau "detache"
-+      p_ = 0;
-+      data_ = 0;
-+      size_array_ = 0;
-+      memory_size_ = 0;
-+      smart_resize_ = 0;
-+      storage_type_ = STANDARD;
-+    }
-+}
-+
-+// Description:
-+//   Change le mode d'allocation memoire lors des resize
-+//   (voir V__Scalar__data et __Scalar___ptr_trav)
-+//   Exemple pour creer un tableau avec allocation temporaire:
-+//    DoubleTab tab; // Creation d'un tableau vide
-+//    tab.set_mem_storage(TEMP_STORAGE); // Changement de mode d'allocation
-+//    tab.resize(n); // Allocation memoire
-+void ArrOf__Scalar__::set_mem_storage(const Storage storage)
-+{
-+  storage_type_ = storage;
-+}
-+
-+// Description:
-+//   Renvoie le mode d'allocation du tableau (qui sera utilise
-+//   lors du prochain resize si changement de taille).
-+//   (voir V__Scalar__data et __Scalar___ptr_trav)
-+enum ArrOf__Scalar__::Storage ArrOf__Scalar__::get_mem_storage() const
-+{
-+  return storage_type_;
-+}
-+
-+// Description:
-+//   Change le mode l'allocation memoire: reallocation d'un tableau
-+//   a chaque changement de taille (flag = 0) ou reallocation
-+//   uniquement si la taille augmente et par doublement de la taille
-+//   du tableau (flag = 1).
-+void ArrOf__Scalar__::set_smart_resize(entier flag)
-+{
-+  assert(flag == 0 || flag == 1);
-+  smart_resize_ = flag;
-+}
-+
-+// Description:
-+//    Remet le tableau dans l'etat obtenu avec le constructeur par defaut
-+//    (libere la memoire mais conserve le mode d'allocation memoire actuel)
-+void ArrOf__Scalar__::reset()
-+{
-+  detach_array();
-+}
-+
-+// Description:
-+//    Copie les donnees du tableau m.
-+//    Si "m" n'a pas la meme taille que "*this", on fait un resize_array.
-+//    Ensuite, on copie les valeurs de "m" dans "*this".
-+//    Le type de tableau (methode d'allocation) n'est pas copie.
-+// Precondition:
-+//    Si le tableau n'a pas la meme taille que "m", alors *this doit
-+//    etre "resizable" (ne pas etre de type "ref_data" et "ref_count == 1")
-+// Parametre: const ArrOf__Scalar__& m
-+//    Signification: la tableau a copier
-+// Retour:  ArrOf__Scalar__&
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::operator=(const ArrOf__Scalar__& m)
-+{
-+  if (&m != this)
-+    {
-+      const entier new_size = m.size_array();
-+      // Le code suivant est quasiment une copie de ArrOf__Scalar__::resize()
-+      // SAUF: memory_resize est appele avec NO_INITIALIZE (la zone de memoire
-+      //  n'est pas initialisee)
-+      if (new_size != size_array())
-+        {
-+          if ((smart_resize_ == 0) || (new_size > memory_size_))
-+            memory_resize(new_size, 0); // Pas d'initialisation
-+          size_array_ = new_size;
-+        }
-+      inject_array(m);
-+    }
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     x est affecte a toutes les cases
-+// Precondition:
-+// Parametre: __scalar__ x
-+//    Signification: la valeur a affecter a toutes les cases du tableau
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOf__Scalar__& ArrOf__Scalar__::operator=(__scalar__ x)
-+{
-+  const entier n = size_array();
-+  __scalar__ *data = addr();
-+  for (entier i = 0; i < n; i++)
-+    {
-+      data[i] = x;
-+    }
-+  return *this;
-+}
-+
-+// Description: appelle operator=(a)
-+ArrOf__Scalar__& ArrOf__Scalar__::copy_array(const ArrOf__Scalar__ & a)
-+{
-+  operator=(a);
-+  return *this;
-+}
-+
-+// Description:
-+//  Si besoin, alloue une nouvelle zone de memoire,
-+//  copie les donnees et efface l'ancienne zone de memoire.
-+//  Attention, on suppose que cette methode est appelee par
-+//  resize_array().
-+//  Attention: si ref_count_>1, l'appel a resize_array() est
-+//  autorise uniquement si la nouvelle taille est identique
-+//  a la precedente.
-+// Precondition:
-+//  Le tableau doit etre de type "detache" ou "normal" avec
-+//  ref_count==1, et il faut new_size >= 0
-+//  On suppose que size_array contient encore le nombre d'elements
-+//  valides avant changement de taille.
-+// Parametre: new_size
-+//  Signification: nouvelle taille demandee pour le tableau.
-+// Parametre: options
-+//  Signification: COPY_OLD => on recopie les anciennes donnees dans le nouveau
-+//                  tableau (jusqu'au max de l'ancienne et de la nouvelle taille).
-+//                 INITIALIZE_NEW => initialisation des cases non copiees
-+// Postcondition:
-+//  p_ et data_ sont mis a jour, mais pas size_array_ !!!
-+//  (on suppose que c'est fait dans resize_array()).
-+//  Si la nouvelle taille est nulle, on detache le tableau.
-+void  ArrOf__Scalar__::memory_resize(entier new_size, entier options)
-+{
-+  assert(new_size >= 0);
-+
-+  // Occupation memoire de l'ancien tableau:
-+  entier old_mem_size = 0;
-+  if (p_)
-+    old_mem_size = p_->get_size();
-+
-+  // Occupation memoire du nouveau tableau :
-+  // Si smart_resize, on prend au moins deux fois la taille
-+  // precedente, ou new_size
-+  entier new_mem_size = new_size;
-+  if (smart_resize_ && (old_mem_size * 2 > new_size))
-+    new_mem_size = old_mem_size * 2;
-+
-+  if (new_mem_size != old_mem_size)
-+    {
-+      // detach_array() efface le contenu de size_array_. On le met de cote:
-+      const entier old_size_array = size_array_;
-+      // On va reellement changer l'adresse du tableau.
-+      // Il ne faut pas qu'il existe d'autre reference a ce tableau.
-+      assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+      if (new_mem_size == 0)
-+        {
-+          // La nouvelle taille est nulle, on cree un tableau "detache"
-+          detach_array();
-+        }
-+      else
-+        {
-+          // Allocation d'une nouvelle zone
-+          V__Scalar__data * new_p = new V__Scalar__data(new_mem_size, storage_type_);
-+          __scalar__ * new_data = new_p->get_data();
-+          // Raccourci si le tableau etait "detache", inutile de copier
-+          // les anciennes donnees. On copie si COPY_OLD est demande
-+          entier copy_size = 0;
-+          if (data_ != 0)
-+            {
-+              // Calcul du nombre d'elements a copier vers la nouvelle
-+              // zone de memoire : c'est le min de l'ancienne et de
-+              // la nouvelle taille.
-+              if (options & COPY_OLD)
-+                {
-+                  copy_size = size_array_;
-+                  if (new_size < copy_size)
-+                    copy_size = new_size;
-+                  // Copie des valeurs dans le nouveau tableau
-+                  for (entier i = 0; i < copy_size; i++)
-+                    new_data[i] = data_[i];
-+                }
-+              // Destruction de l'ancienne zone (si plus aucune reference)
-+              detach_array();
-+            }
-+          // On attache la nouvelle zone de memoire
-+          p_ = new_p;
-+          data_ = new_data;
-+          memory_size_ = new_mem_size;
-+          // Initialisation des cases supplementaires avec une valeur par defaut
-+          if (options & INITIALIZE_NEW)
-+            fill_default_value(copy_size, new_mem_size - copy_size);
-+          // Restaure l'ancienne valeur de size_array_
-+          size_array_ = old_size_array;
-+        }
-+    }
-+}
-+
-+// Description:
-+//  Remplit "nb" cases consecutives du tableau a partir de la case "first"
-+//  avec une valeur par defaut.
-+//  Cette fonction est appelee lors d'un resize pour initialiser les
-+//  cases nouvellement creees.
-+//  Le comportement depend actuellement du type de tableau :
-+//  * Tableau de type "smart_resize":
-+//    * en mode debug (macro NDEBUG non definie) le tableau est initialise
-+//      avec une valeur invalide.
-+//    * en optimise, le tableau n'est pas initialise
-+//  * Tableau normal :
-+//    Le tableau est initialise avec la valeur 0. Ce comportement est choisi
-+//    pour des raisons de compatibilite avec l'implementation precedente.
-+//    Cette specification pourrait etre modifiee prochainement pour des raisons
-+//    de performances (pour ne pas avoir a initialiser inutilement les tableaux).
-+//    DONC: il faut supposer desormais que les nouvelles cases ne sont pas
-+//    initialisees lors d'un resize.
-+// Parametre: first
-+//  Signification: premiere case a initialiser.
-+//  Contrainte:    (nb==0) ou (0 <= first < memory_size_)
-+// Parametre: nb
-+//  Signification: nombre de cases a initialiser.
-+//  Contrainte:    (nb==0) ou (0 < nb <= memory_size_ - first)
-+void  ArrOf__Scalar__::fill_default_value(entier first, entier nb)
-+{
-+  assert((nb == 0) || (first >= 0 && first < memory_size_));
-+  assert((nb == 0) || (nb > 0 && nb <= memory_size_ - first));
-+  __scalar__ * data = addr();
-+  assert(data!=0 || nb==0);
-+  data += first;
-+  if (smart_resize_)
-+    {
-+      // On initialise uniquement en mode debug
-+#ifndef NDEBUG
-+      __IntOnlyBegin__
-+      static const entier ENTIER_INVALIDE = INT_MIN;
-+      for (entier i = 0; i < nb; i++)
-+        data[i] = ENTIER_INVALIDE;
-+      __IntOnlyEnd__
-+      __DoubleOnlyBegin__
-+      // Ceci represente un NAN. N'importe quelle operation avec ca fait encore un NAN.
-+      // Si c'est pas portable, on peut remplacer par DMAX_FLOAT sur les autres machines.
-+      static const unsigned long long  VALEUR_INVALIDE =
-+        0x7ff7ffffffffffffULL;
-+
-+      // On utilise "memcpy" et non "=" car "=" peut provoquer une exception
-+      // si la copie passe par le fpu.
-+      for (entier i = 0; i < nb; i++)
-+        memcpy(data + i, & VALEUR_INVALIDE, sizeof(__scalar__));
-+      __DoubleOnlyEnd__
-+#endif
-+    }
-+  else
-+    {
-+      // Comportement pour les tableaux normaux : compatibilite avec la
-+      // version precedente : on initialise avec 0.
-+      for (entier i = 0; i < nb; i++)
-+        data[i] = (__scalar__) 0;
-+    }
-+}
-+
-+// ****************************************************************
-+//
-+//         Fonctions non membres de la classe ArrOf__Scalar__
-+//
-+// ****************************************************************
-+
-+// Description:
-+//  Renvoie 1 si les tableaux "v" et "a" sont de la meme taille
-+//  et contiennent les memes valeurs au sens strict, sinon renvoie 0.
-+//  Le test est !(v[i]!=a[i])
-+entier operator==(const ArrOf__Scalar__& v, const ArrOf__Scalar__& a)
-+{
-+  const entier n = v.size_array();
-+  const entier na = a.size_array();
-+  entier resu = 1;
-+  if (n != na)
-+    {
-+      resu = 0;
-+    }
-+  else
-+    {
-+      const __scalar__* vv = v.addr();
-+      const __scalar__* av = a.addr();
-+      entier i;
-+      for (i = 0; i < n; i++)
-+        {
-+          if (av[i] != vv[i])
-+            {
-+              resu = 0;
-+              break;
-+            }
-+        }
-+    }
-+  return resu;
-+}
-+
-+// Description:
-+//    Retourne l'indice du min ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOf__Scalar__& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du min
-+entier imin_array(const ArrOf__Scalar__& dx)
-+{
-+  entier indice_min = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_min = 0;
-+      __scalar__ valeur_min = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const __scalar__ val = dx[i];
-+          if(val < valeur_min)
-+            {
-+              indice_min = i;
-+              valeur_min = val;
-+            }
-+        }
-+    }
-+  return indice_min;
-+}
-+
-+// Description:
-+//    Retourne l'indice du max ou -1 si le tableau est vide
-+// Precondition:
-+// Parametre: const ArrOf__Scalar__& dx
-+//    Signification: tableau a utiliser
-+// Retour: int
-+//    Signification: indice du max
-+entier imax_array(const ArrOf__Scalar__& dx)
-+{
-+  entier indice_max = -1;
-+  const entier size = dx.size_array();
-+  if (size > 0)
-+    {
-+      indice_max = 0;
-+      __scalar__ valeur_max = dx[0];
-+      for(entier i = 1; i < size; i++)
-+        {
-+          const __scalar__ val = dx[i];
-+          if(val > valeur_max)
-+            {
-+              indice_max = i;
-+              valeur_max = val;
-+            }
-+        }
-+    }
-+  return indice_max;
-+}
-+
-+// Description:
-+//    Retourne la valeur minimale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOf__Scalar__& dx
-+//    Signification: tableau a utiliser
-+// Retour: __scalar__
-+//    Signification: valeur du min
-+__scalar__ min_array(const ArrOf__Scalar__& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  __scalar__ valeur_min = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const __scalar__ val = dx[i];
-+      if (val < valeur_min)
-+        valeur_min = val;
-+    }
-+  return valeur_min;
-+}
-+
-+// Description:
-+//    Retourne la valeur maximale
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOf__Scalar__& dx
-+//    Signification: tableau a utiliser
-+// Retour: __scalar__
-+//    Signification: valeur du max
-+__scalar__ max_array(const ArrOf__Scalar__& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  __scalar__ valeur_max = dx[0];
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const __scalar__ val = dx[i];
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//   Fonction de comparaison utilisee pour trier le tableau
-+//   dans ArrOf__Scalar__::trier(). Voir man qsort
-+static int fonction_compare_arrof__scalar___ordonner(const void * data1, const void * data2)
-+{
-+  const __scalar__ x = *(const __scalar__*)data1;
-+  const __scalar__ y = *(const __scalar__*)data2;
-+  __DoubleOnlyBegin__
-+  if (x < y)
-+    return -1;
-+  else if (x > y)
-+    return 1;
-+  else
-+    return 0;
-+  __DoubleOnlyEnd__
-+  __IntOnlyBegin__
-+  return x - y;
-+  __IntOnlyEnd__
-+}
-+
-+// Description:
-+//   Tri des valeurs du tableau dans l'ordre croissant.
-+//   La fonction utilisee est qsort de stdlib (elle est en n*log(n)).
-+void ArrOf__Scalar__::ordonne_array()
-+{
-+  const entier size = size_array();
-+  if (size > 1)
-+    {
-+      __scalar__ * data = addr();
-+      qsort(data, size, sizeof(__scalar__),
-+            fonction_compare_arrof__scalar___ordonner);
-+    }
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers les memes donnees qu'un tableau
-+//    existant. Le tableau sera du meme type que le tableau m ("detache",
-+//    "normal"). Le tableau m ne doit pas etre de type "ref_data"
-+//    Les donnes existantes sont perdues si elles
-+//    ne sont pas referencees ailleurs.
-+// Precondition:
-+// Parametre: const ArrOf__Scalar__& m
-+//    Signification: le tableau a referencer (pas de type "ref_data"
-+//                   et different de *this !!!)
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOf__Scalar__& ArrOf__Scalar__::ref_array(const ArrOf__Scalar__& m)
-+{
-+  assert(&m != this);
-+  // La condition 'm n'est pas de type "ref_data"' est necessaire pour
-+  // attach_array().
-+  detach_array();
-+  attach_array(m);
-+  return *this;
-+}
-+
-+// Description:
-+//    Fait pointer le tableau vers la zone de memoire "data_".
-+//    On detache la zone de memoire existante. Le tableau devient
-+//    de type "ref_data". Attention : ptr doit etre non nul.
-+//    La taille est initialisee avec size.
-+//    Cette methode est appelee notamment par __Scalar__Vect::adopter.
-+// Parametre: __scalar__*
-+//    Signification: le tableau a recuperer. Si pointeur nul alors size
-+//                   doit etre nulle aussi et le tableau reste detache
-+// Parametre: entier size
-+//    Signification: le nombre d'elements du tableau.
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::ref_data(__scalar__* ptr, entier size)
-+{
-+  assert(ptr != 0 || size == 0);
-+  assert(size >= 0);
-+  detach_array();
-+  data_ = ptr;
-+  size_array_ = size;
-+  return *this;
-+}
-+
-+// Description:
-+//  Amene le tableau dans l'etat "detache". C'est a dire:
-+//  Si le tableau est "detache" :
-+//   * ne rien faire
-+//  Si le tableau est "normal" :
-+//   * decremente le nombre de references a *p
-+//   * detruit *p si p->ref_count==0
-+//   * annule p_, data_ et size_array_
-+//  Si le tableau est "ref_data" :
-+//   * annule data_ et size_array_
-+// Retour: int
-+//    Signification: 1 si les donnees du tableau ont ete supprimees
-+// Precondition:
-+// Postcondition:
-+//  On a p_==0, data_==0 et size_array_==0, memory_size_ = 0
-+//  L'attribut smart_resize_ est conserve.
-+entier ArrOf__Scalar__::detach_array()
-+{
-+  entier retour = 0;
-+  if (p_)
-+    {
-+      // Le tableau est de type "normal"
-+      // Si la zone de memoire n'est plus utilisee par personne,
-+      // on la detruit.
-+      if ((p_->suppr_one_ref()) == 0)
-+        {
-+          delete p_;
-+          retour = 1;
-+        }
-+      p_ = 0;
-+    }
-+  data_ = 0;
-+  size_array_ = 0;
-+  memory_size_ = 0;
-+  return retour;
-+}
-+
-+// Description:
-+//    Amene le tableau dans l'etat "normal", "detache" ou "ref_array"
-+//    en associant la meme zone de memoire que le tableau m.
-+// Precondition:
-+//    Le tableau doit etre "detache"
-+// Parametre: const ArrOf__Scalar__& m
-+//    Signification: tableau a utiliser
-+//                   le tableau doit etre different de *this !!!
-+// Retour:
-+//    Signification:
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+//    Si m est detache, le tableau reste detache,
-+//    si m est "ref_array", le tableau devient "ref_array",
-+//    sinon le tableau est "normal", avec ref_count > 1
-+//    Si m est de taille nulle, le tableau reste detache + Warning dans fichier .log
-+void ArrOf__Scalar__::attach_array(const ArrOf__Scalar__& m)
-+{
-+  // Le tableau doit etre detache
-+  assert(data_ == 0 && p_ == 0);
-+  // Le tableau doit etre different de *this
-+  assert(&m != this);
-+
-+  if (m.size_array() > 0)
-+    {
-+      p_ = m.p_;
-+      if (p_)
-+        p_->add_one_ref();
-+      data_ = m.data_;
-+      size_array_ = m.size_array_;
-+      memory_size_ = m.memory_size_;
-+      smart_resize_ = m.smart_resize_;
-+    }
-+  else
-+    {
-+      // Cas particulier ou on attache un tableau de taille nulle:
-+      //  en theorie, c'est pareil qu'un tableau de taille non nulle, MAIS
-+      //  dans les operateurs (ex:Op_Dift_VDF_Face_Axi), une ref est construite
-+      //  avant que le tableau ne prenne sa taille definitive. Donc, pour ne pas
-+      //  empecher le resize, il ne faut pas attacher le tableau s'il n'a pas
-+      //  encore la bonne taille. Solution propre: reecrire les operateurs pour
-+      //  qu'ils ne prennent pas une ref avant que le tableau ne soit valide
-+      //  et faire p_ = m.p_ dans tous les cas.
-+    }
-+}
-+
-+// Description:
-+//    Copie les elements source[first_element_source + i]
-+//    dans les elements  (*this)[first_element_dest + i] pour 0 <= i < nb_elements
-+//    Les autres elements de (*this) sont inchanges.
-+// Precondition:
-+// Parametre:       const ArrOf__Scalar__& m
-+//  Signification:   le tableau a utiliser, doit etre different de *this !
-+// Parametre:       entier nb_elements
-+//  Signification:   nombre d'elements a copier, nb_elements >= -1.
-+//                   Si nb_elements==-1, on copie tout le tableau m.
-+//  Valeurs par defaut: -1
-+// Parametre:       entier first_element_dest
-+//  Valeurs par defaut: 0
-+// Parametre:       entier first_element_source
-+//  Valeurs par defaut: 0
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+//    Sort en erreur si la taille du tableau m est plus grande que la
-+//    taille de tableau this.
-+// Effets de bord:
-+// Postcondition:
-+ArrOf__Scalar__& ArrOf__Scalar__::inject_array(const ArrOf__Scalar__& source,
-+    entier nb_elements,
-+    entier first_element_dest,
-+    entier first_element_source)
-+{
-+  assert(&source != this);
-+  assert(nb_elements >= -1);
-+  assert(first_element_dest >= 0);
-+  assert(first_element_source >= 0);
-+
-+  if (nb_elements < 0)
-+    nb_elements = source.size_array();
-+
-+  assert(first_element_source + nb_elements <= source.size_array());
-+  assert(first_element_dest + nb_elements <= size_array());
-+
-+  if (nb_elements > 0)
-+    {
-+      __scalar__ * addr_dest = addr() + first_element_dest;
-+      const __scalar__ * addr_source = source.addr() + first_element_source;
-+      // memcpy(addr_dest , addr_source, nb_elements * sizeof(__scalar__));
-+      entier i;
-+      for (i = 0; i < nb_elements; i++)
-+        {
-+          addr_dest[i] = addr_source[i];
-+        }
-+    }
-+  return *this;
-+}
-+
-+// Description:
-+//    Retourne le nombre de references des donnees du tableau
-+//    si le tableau est "normal", -1 s'il est "detache" ou "ref_data"
-+// Retour: int
-+//    Signification: ref_count_
-+entier ArrOf__Scalar__::ref_count() const
-+{
-+  if (p_)
-+    return p_->ref_count();
-+  else
-+    return -1;
-+}
-+
-+// Description:
-+//    Addition case a case sur toutes les cases du tableau
-+// Precondition:
-+//    la taille de y doit etre au moins egale a la taille de this
-+// Parametre: const ArrOf__Scalar__& y
-+//    Signification: tableau a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOf__Scalar__& ArrOf__Scalar__::operator+=(const ArrOf__Scalar__& y)
-+{
-+  assert(size_array()==y.size_array());
-+  __scalar__* dx = addr();
-+  const __scalar__* dy = y.addr();
-+  const entier n = size_array();
-+  for (entier i=0; i<n; i++)
-+    dx[i] += dy[i];
-+  return *this;
-+}
-+
-+// Description:
-+//     ajoute la meme valeur a toutes les cases du tableau
-+// Precondition:
-+// Parametre: const __scalar__ dy
-+//    Signification: valeur a ajouter
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: ArrOf__Scalar__
-+//    Signification: *this
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+ArrOf__Scalar__& ArrOf__Scalar__::operator+=(const __scalar__ dy)
-+{
-+  __scalar__ * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] += dy;
-+  return *this;
-+}
-+// Description:
-+//    Soustraction case a case sur toutes les cases du tableau
-+// Parametre: const ArrOf__Scalar__& y
-+//    Signification: tableau de meme taille que *this
-+// Retour: ArrOf__Scalar__&
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::operator-=(const ArrOf__Scalar__& y)
-+{
-+  const entier size = size_array();
-+  assert(size == y.size_array());
-+  __scalar__ * data = addr();
-+  const __scalar__ * data_y = y.addr();
-+  for (entier i=0; i < size; i++)
-+    data[i] -= data_y[i];
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     soustrait la meme valeur a toutes les cases
-+// Retour: ArrOf__Scalar__ &
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::operator-=(const __scalar__ dy)
-+{
-+  __scalar__ * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] -= dy;
-+  return *this;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+//   Attention, l'adresse peut changer apres un appel
-+//   a resize_array(), ref_data, ref_array, ...
-+// Precondition:
-+// Retour: const __scalar__*
-+//   Signification: pointeur sur le premier element du tableau
-+const __scalar__* ArrOf__Scalar__::addr() const
-+{
-+  return data_;
-+}
-+
-+// Description:
-+//   Renvoie un pointeur sur le premier element du tableau.
-+//   Le pointeur est nul si le tableau est "detache".
-+// Precondition:
-+// Retour: const __scalar__*
-+//    Signification: la zone memoire du tableau
-+__scalar__* ArrOf__Scalar__::addr()
-+{
-+  return data_;
-+}
-+
-+__DoubleOnlyBegin__
-+
-+// Description:
-+//    Retourne le max des abs(i)
-+// Precondition:
-+//    Le tableau doit contenir au moins une valeur
-+// Parametre: const ArrOf__Scalar__& dx
-+//    Signification: tableau a utiliser
-+//    Valeurs par defaut:
-+//    Contraintes:
-+//    Acces:
-+// Retour: __scalar__
-+//    Signification: valeur du max des valeurs absolues
-+//    Contraintes:
-+// Exception:
-+// Effets de bord:
-+// Postcondition:
-+__scalar__ max_abs_array(const ArrOf__Scalar__& dx)
-+{
-+  const entier size = dx.size_array();
-+  assert(size > 0);
-+  __scalar__ valeur_max = fabs(dx[0]);
-+  for(entier i = 1; i < size; i++)
-+    {
-+      const __scalar__ val = fabs(dx[i]);
-+      if (val > valeur_max)
-+        valeur_max = val;
-+    }
-+  return valeur_max;
-+}
-+
-+// Description:
-+//     muliplie toutes les cases par dy
-+// Retour: ArrOf__Scalar__ &
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::operator*= (const __scalar__ dy)
-+{
-+  __scalar__ * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] *= dy;
-+  return *this;
-+}
-+
-+
-+// Description:
-+//     divise toutes les cases par dy
-+// Retour: ArrOf__Scalar__ &
-+//    Signification: *this
-+ArrOf__Scalar__& ArrOf__Scalar__::operator/= (const __scalar__ dy)
-+{
-+  // En theorie: les deux lignes suivantes sont plus efficaces, mais
-+  //  cela produit des differences sur certains cas tests
-+  //  (Hyd_C_VEF_Smago et Lambda_var_VEF_turb). Ca veut dire qu'il y
-+  //  a un probleme autre part mais pour l'instant on laisse l'ancien
-+  //  codage.
-+  // const __scalar__ i_dy = 1. / dy;
-+  // operator*=(i_dy);
-+
-+  __scalar__ * data = addr();
-+  const entier n = size_array();
-+  for(entier i=0; i < n; i++)
-+    data[i] /= dy;
-+
-+  return *this;
-+}
-+__DoubleOnlyEnd__
-+
-+__Scalar__Tab::__Scalar__Tab()
-+{
-+  nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-+
-+__Scalar__Tab::__Scalar__Tab(const __Scalar__Tab& tab) :
-+  ArrOf__Scalar__(tab)
-+{
-+  nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+}
-+__Scalar__Tab::__Scalar__Tab(const entier i, const entier j) :
-+  ArrOf__Scalar__(i*j)
-+{
-+  nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+}
-+
-+__Scalar__Tab& __Scalar__Tab::operator=(const __Scalar__Tab& tab)
-+{
-+  ArrOf__Scalar__::operator=(tab);
-+  nb_dim_ = tab.nb_dim_;
-+  dimensions_[0] = tab.dimensions_[0];
-+  dimensions_[1] = tab.dimensions_[1];
-+  return *this;
-+}
-+
-+void __Scalar__Tab::reset()
-+{
-+  ArrOf__Scalar__::reset();
-+  nb_dim_ = 2;
-+  dimensions_[0] = 0;
-+  dimensions_[1] = 0;
-+}
-diff --git a/databases/readers/Lata/ArrOf_Scalar_Prototype.h b/databases/readers/Lata/ArrOf_Scalar_Prototype.h
-new file mode 100644
-index 0000000..689932f
---- /dev/null
-+++ b/databases/readers/Lata/ArrOf_Scalar_Prototype.h
-@@ -0,0 +1,357 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+
-+#ifndef ArrOf__Scalar___H
-+#define ArrOf__Scalar___H
-+
-+#include <assert.h>
-+#include <arch.h>
-+#include <Objet_U.h>
-+
-+__DoubleOnlyBegin__
-+#define DMAXFLOAT 1e40
-+__DoubleOnlyEnd__
-+
-+class V__Scalar__data;
-+
-+class ArrOf__Scalar__
-+{
-+public:
-+  //
-+  // Destructeur
-+  //
-+  virtual ~ArrOf__Scalar__();
-+  //
-+  // Constructeurs
-+  //
-+  ArrOf__Scalar__();
-+  ArrOf__Scalar__(entier size);
-+  ArrOf__Scalar__(entier size, __scalar__ initial_value);
-+  // Constructeur par copie : deep copy (on duplique les donnees)
-+  ArrOf__Scalar__(const ArrOf__Scalar__& );
-+  //
-+  // Methodes de construction tardive (on cree un tableau vide avec ArrOf__Scalar__()
-+  // puis on appelle ces methodes pour modifier les caracteristiques du tableau :
-+  //
-+  // Change le nombre d'elements du tableau
-+  inline ArrOf__Scalar__& resize_array(entier new_size);
-+
-+  // Methodes de gestion de l'allocation memoire:
-+  // Assigne une valeur au drapeau "smart_resize"
-+  // (reallocation uniquement si la taille augmente)
-+  void    set_smart_resize(entier flag);
-+  // Gestion du type de memoire alouee (standard ou pool de memoire Trio-U)
-+  enum    Storage { STANDARD, TEMP_STORAGE };
-+  void    set_mem_storage(const Storage storage);
-+  Storage get_mem_storage() const;
-+
-+  // Construction de tableaux qui pointent vers des donnees existantes
-+  // !!! Utiliser ref_data avec precaution (attention a size_array_)
-+  ArrOf__Scalar__& ref_data(__scalar__* ptr, entier size);
-+  ArrOf__Scalar__& ref_array(const ArrOf__Scalar__&);
-+  // Operateur copie
-+  ArrOf__Scalar__& operator=(const ArrOf__Scalar__&);
-+  // Remise du tableau dans l'etat initial (obtenu par le constructeur par defaut)
-+  virtual void reset();
-+
-+  //
-+  // Methodes d'acces aux donnees et aux caracteristiques du tableau
-+  //
-+  // Remplit le tableau avec la valeur en parametre
-+  ArrOf__Scalar__& operator=(__scalar__ valeur);
-+
-+  inline       __scalar__& operator[](entier i);
-+  inline const __scalar__& operator[](entier i) const;
-+
-+  // Ces methodes renvoient un pointeur vers le premier element du tableau.
-+  const __scalar__ * addr() const;
-+  __scalar__ * addr();
-+  // Renvoie le nombre d'elements du tableau (et non la taille allouee)
-+  inline entier size_array() const;
-+  // Renvoie le nombre de tableaux qui pointent vers la stucture "*p_"
-+  entier ref_count() const;
-+  // Ajoute une case en fin de tableau et y stocke la "valeur"
-+  inline void   append_array(__scalar__ valeur);
-+
-+  //
-+  // Operateurs divers
-+  //
-+  ArrOf__Scalar__& operator+=(const ArrOf__Scalar__&);
-+  ArrOf__Scalar__& operator+=(const __scalar__);
-+  ArrOf__Scalar__& operator-=(const ArrOf__Scalar__&);
-+  ArrOf__Scalar__& operator-=(const __scalar__);
-+  ArrOf__Scalar__& inject_array(const ArrOf__Scalar__ & source,
-+                                entier nb_elements = -1,
-+                                entier first_element_dest = 0,
-+                                entier first_element_source = 0);
-+  ArrOf__Scalar__& copy_array(const ArrOf__Scalar__&);
-+
-+  __DoubleOnlyBegin__
-+  ArrOf__Scalar__& operator*= (const __scalar__) ;
-+  ArrOf__Scalar__& operator/= (const __scalar__) ;
-+  __DoubleOnlyEnd__
-+
-+  void             ordonne_array();
-+
-+protected:
-+  //
-+  // Methodes accessibles depuis les descendants de ArrOf__Scalar__
-+  //
-+  void   attach_array(const ArrOf__Scalar__&);
-+  entier detach_array();
-+  void   fill_default_value(entier first, entier nb);
-+private:
-+  // B. Mathieu 22/06/2004 : je mets ces membres "private" pour forcer
-+  // le passage par les accesseurs dans les classes derivees, au cas ou
-+  // on voudrait modifier l'implementation.
-+
-+  // Zone de memoire contenant les valeurs du tableau.
-+  // Pointeur nul => le tableau est "detache" ou "ref_data"
-+  // Pointeur non nul => le tableau est "normal"
-+  V__Scalar__data* p_;
-+
-+  // Pointeur vers le premier element du tableau (egal a p_->data si p_!=0)
-+  // Pointeur nul => le tableau est "detache".
-+  // Pointeur non nul => le tableau est "normal" ou "ref_data"
-+  __scalar__*   data_;
-+
-+  // Nombre d'elements du tableau (inferieur ou egal a memory_size_).
-+  // Si le tableau est "detache", alors size_array_=0
-+  entier    size_array_;
-+  // Taille memoire reellement allouee pour le tableau
-+  // (pour le mecanisme smart_resize_). memory_size_ est nul
-+  // si le tableau est de type "ref_data". Sinon memory_size_
-+  // est egal a p_->size_.
-+  entier    memory_size_;
-+
-+  // Drapeau indiquant si on applique une strategie d'allocation
-+  // preventive (la memoire alouee augmente d'un facteur constant
-+  // si la taille devient insuffisante).
-+  // Si smart_resize_ == 0, alors on a toujours p_->size_ == size
-+  entier    smart_resize_;
-+
-+  // Drapeau indiquant si l'allocation memoire a lieu avec un new classique
-+  // ou dans le pool de memoire temporaire de Trio
-+  Storage   storage_type_;
-+
-+  // Partie non inline de resize_array():
-+  // Declaration des constantes pour les options de memory_resize
-+  static const entier COPY_OLD;
-+  static const entier INITIALIZE_NEW;
-+  void memory_resize(entier new_size, entier options);
-+};
-+
-+#define MAXDIM__Scalar__Tab 2
-+
-+class __Scalar__Tab : public ArrOf__Scalar__
-+{
-+public:
-+  __Scalar__Tab();
-+  __Scalar__Tab(const __Scalar__Tab&);
-+  __Scalar__Tab(const entier i, const entier j);
-+  __Scalar__Tab&    operator=(const __Scalar__Tab&);
-+  void              reset();
-+
-+  inline __scalar__& operator()(entier i, entier j);
-+  inline __scalar__   operator()(entier i, entier j) const;
-+
-+  inline entier resize(entier i, entier j);
-+  inline entier dimension(entier i) const;
-+  inline entier dimension_tot(entier i) const;
-+
-+protected:
-+  // In order to mimic TRUST behavior, operator[] is forbidden
-+  // for 2 dimensionnal matrices, you must cast to ArrOf to use it..
-+  double&        operator[](entier i);
-+  const double& operator[](entier i) const;
-+
-+private:
-+  entier nb_dim_;
-+  entier dimensions_[MAXDIM__Scalar__Tab];
-+};
-+
-+inline __scalar__& __Scalar__Tab::operator()(entier i, entier j)
-+{
-+  assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  __scalar__ & x = ArrOf__Scalar__::operator[] (n);
-+  return x;
-+}
-+
-+inline __scalar__   __Scalar__Tab::operator()(entier i, entier j) const
-+{
-+  assert(nb_dim_ == 2);
-+  assert(i >= 0 && i < dimensions_[0] && j >= 0 && j < dimensions_[1]);
-+  const entier n = i * dimensions_[1] + j;
-+  __scalar__ x = ArrOf__Scalar__::operator[] (n);
-+  return x;
-+}
-+
-+inline entier __Scalar__Tab::resize(entier i, entier j)
-+{
-+  assert(i >= 0 && j >= 0);
-+  nb_dim_ = 2;
-+  dimensions_[0] = i;
-+  dimensions_[1] = j;
-+  ArrOf__Scalar__::resize_array(i * j);
-+  return i*j;
-+}
-+
-+inline entier __Scalar__Tab::dimension(entier i) const
-+{
-+  assert(i >= 0 && i < nb_dim_);
-+  return dimensions_[i];
-+}
-+
-+// Description: renvoie la meme valeur que dimension.
-+inline entier __Scalar__Tab::dimension_tot(entier i) const
-+{
-+  return dimension(i);
-+}
-+
-+//
-+// Declarations des fonctions non membres de la classe ArrOf__Scalar__
-+//
-+entier operator==(const ArrOf__Scalar__& x, const ArrOf__Scalar__& y) ;
-+entier imin_array(const ArrOf__Scalar__&) ;
-+entier imax_array(const ArrOf__Scalar__&) ;
-+__scalar__ min_array(const ArrOf__Scalar__&) ;
-+__scalar__ max_array(const ArrOf__Scalar__&) ;
-+
-+__DoubleOnlyBegin__
-+__scalar__ max_abs_array(const ArrOf__Scalar__&) ;
-+__DoubleOnlyEnd__
-+
-+// ******************************************************************
-+//                   FONCTIONS MEMBRES DE ArrOf__Scalar__
-+// ******************************************************************
-+
-+// Description :
-+//  Change le nombre d'elements du tableau. Cette fonction est inline
-+//  car elle doit etre tres rapide dans le cas ou smart_resize_==1
-+//  (utilisation frequente de resize_array())
-+//  Si smart_resize est non nul :
-+//   Si la nouvelle taille est inferieure ou egale a la taille
-+//   alouee (p->get_size()) on ne realloue pas de memoire
-+//   sinon, on realloue et on copie les donnees existantes.
-+//  Astuce pour ne pas copier les anciennes donnees:
-+//   resize(0); resize(n);
-+//  Si smart_resize est nul, on realloue une nouvelle zone memoire
-+//   uniquement si la nouvelle taille est differente de l'ancienne.
-+// Precondition :
-+//  Si "new_size" est egal a la taille du tableau, aucune condition.
-+//  Sinon, le tableau doit etre soit detache, soit normal (pas de type "ref_data")
-+//  et ref_count doit etre egal a 1 (pas d'autre reference au tableau).
-+//
-+inline ArrOf__Scalar__& ArrOf__Scalar__::resize_array(entier new_size)
-+{
-+  assert(new_size >= 0);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau,
-+  // ou alors la taille ne doit pas changer.
-+  assert(new_size == size_array_ || data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if ((smart_resize_ == 0) || (new_size > memory_size_))
-+    memory_resize(new_size, COPY_OLD + INITIALIZE_NEW);
-+  size_array_ = new_size;
-+  return *this;
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+__DoubleOnlyBegin__
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+__DoubleOnlyEnd__
-+//    assert si i n'est pas dans l'intervalle
-+inline __scalar__& ArrOf__Scalar__::operator[](entier i)
-+{
-+  assert(i >= 0 && i < size_array_);
-+  __DoubleOnlyBegin__
-+  assert(data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT);
-+  __DoubleOnlyEnd__
-+  return data_[i];
-+}
-+
-+// Description:
-+//     operateur [] retourne le ieme element du tableau
-+// Precondition:
-+// Parametre: entier i
-+//    Signification: indice dans l'intervalle 0 <= i < size_array()
-+// Exception:
-+__DoubleOnlyBegin__
-+//    assert si la valeur sort de l'intervalle : [ -DMAXFLOAT,DMAXFLOAT ]
-+__DoubleOnlyEnd__
-+//    assert si i n'est pas dans l'intervalle
-+inline const __scalar__& ArrOf__Scalar__::operator[](entier i) const
-+{
-+  assert(i >= 0 && i < size_array_);
-+  __DoubleOnlyBegin__
-+  assert(data_[i] > -DMAXFLOAT && data_[i] < DMAXFLOAT);
-+  __DoubleOnlyEnd__
-+  return data_[i];
-+}
-+
-+// Description:
-+//    Renvoie la taille du tableau (nombre d'elements declares
-+//    a la construction ou a resize_array()).
-+//    C'est le nombre d'elements accessibles a operator[]
-+// Retour: entier
-+inline entier  ArrOf__Scalar__::size_array() const
-+{
-+  return size_array_;
-+}
-+
-+// Description:
-+//  Ajoute une case en fin de tableau et y stocke la "valeur"
-+// Precondition:
-+//  Tableau doit etre de type "smart_resize" (sinon, ecroulement
-+//  des performances). De plus, le tableau ne doit pas etre "ref_data",
-+//  et il ne doit pas y avoir plus d'une reference a la zone de
-+//  memoire pointee (meme precondition que resize_array())
-+inline void   ArrOf__Scalar__::append_array(__scalar__ valeur)
-+{
-+  assert(smart_resize_);
-+  // Soit le tableau est detache (data_==0), soit il est normal (p_!=0)
-+  // S'il est normal, il ne faut pas qu'il y ait d'autre reference au tableau.
-+  assert(data_ == 0 || (p_ != 0 && ref_count() == 1));
-+
-+  if (size_array_+1 > memory_size_)
-+    memory_resize(size_array_+1, COPY_OLD);
-+  data_[size_array_] = valeur;
-+  size_array_++;
-+}
-+
-+// ArrOf__Scalar___H
-+#endif
-diff --git a/databases/readers/Lata/CMakeLists.txt b/databases/readers/Lata/CMakeLists.txt
-new file mode 100644
-index 0000000..be611f3
---- /dev/null
-+++ b/databases/readers/Lata/CMakeLists.txt
-@@ -0,0 +1,35 @@
-+set(SOURCES
-+  avtlataFileFormat.C
-+  LataDB.C
-+  LataFilter.C
-+  LataStructures.C
-+  Lata_tools.C
-+  LataV1_field_definitions.C
-+  LataWriter.C
-+  LmlReader.C
-+  OpenDXWriter.C
-+  OperatorBoundary.C
-+  OperatorDualMesh.C
-+  OperatorFacesMesh.C
-+  OperatorReconnect.C
-+  OperatorRegularize.C
-+  Rebuild_virtual_layer.C
-+  UserFields.C
-+  ArrOfBit.C
-+  ArrOfDouble.C
-+  ArrOfFloat.C
-+  ArrOfInt.C
-+  Connectivite_som_elem.C
-+  Motcle.C
-+  Octree_Double.C
-+  Octree_Int.C
-+  Static_Int_Lists.C
-+  )
-+
-+MESSAGE("Here I am")
-+
-+ADD_VISIT_READER(VisItLataReader "1.0"
-+  VISIT_READER_TYPE "MTMD"
-+  VISIT_READER_NAME "avtlataFileFormat"
-+  SERVER_SOURCES ${SOURCES}
-+  )
-diff --git a/databases/readers/Lata/Connectivite_som_elem.C b/databases/readers/Lata/Connectivite_som_elem.C
-new file mode 100644
-index 0000000..2a268cc
---- /dev/null
-+++ b/databases/readers/Lata/Connectivite_som_elem.C
-@@ -0,0 +1,189 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Connectivite_som_elem.h>
-+#include <Static_Int_Lists.h>
-+#include <IntTab.h>
-+
-+// Description: construction de la structure som_elem pour la zone donnee
-+//  On cree pour chaque sommet i la liste des elements adjacents a ce sommet
-+//  (c'est la liste des elements k tels que il existe j tel que les_elems(k,j) == i)
-+// Parametre:   nb_sommets
-+// Description: nombre de sommets utilises dans les elements (som_elem contiendra
-+//              autant de listes). Si include_virtual==1, c'est le nombre de sommets
-+//              total, sinon c'est le nombre de sommets reels
-+// Parametre:   les_elems
-+// Description: tableau des elements (contient les numeros des sommets de chaque element)
-+//              Les valeurs du tableau doivent etre inferieurs a nb_sommets.
-+// Parametre:   som_elem
-+// Description: la structure dans laquelle on stocke le resultat. L'ancien
-+//   contenu est perdu. Chaque liste d'elements est triee dans l'ordre croissant
-+// Parametre:   include_virtual
-+// Description: 0 => seuls les elements reels sont inclus dans la structure
-+//              1 => on inclut les elements virtuels (donc les sommets virtuels)
-+void construire_connectivite_som_elem(const entier       nb_sommets,
-+                                      const IntTab&      les_elems,
-+                                      Static_Int_Lists& som_elem,
-+                                      const entier       include_virtual)
-+{
-+  // Nombre d'elements du domaine
-+  const entier nb_elem = (include_virtual) ? les_elems.dimension_tot(0) : les_elems.dimension(0);
-+  // Nombre de sommets par element
-+  const entier nb_sommets_par_element = les_elems.dimension(1);
-+
-+  // Construction d'un tableau initialise a zero : pour chaque sommet,
-+  // nombre d'elements voisins de ce sommet
-+  ArrOfInt nb_elements_voisins(nb_sommets, 0);
-+
-+  // Premier passage : on calcule le nombre d'elements voisins de chaque
-+  // sommet pour creer la structure de donnees
-+  entier elem, i;
-+
-+  for (elem = 0; elem < nb_elem; elem++)
-+    {
-+      for (i = 0; i < nb_sommets_par_element; i++)
-+        {
-+          entier sommet = les_elems(elem, i);
-+          // GF cas des polyedres
-+          if (sommet==-1) break;
-+          nb_elements_voisins[sommet]++;
-+        }
-+    }
-+
-+  som_elem.set_list_sizes(nb_elements_voisins);
-+
-+  // On reutilise le tableau pour stocker le nombre d'elements dans
-+  // chaque liste pendant qu'on la remplit
-+  nb_elements_voisins = 0;
-+
-+  // Remplissage du tableau des elements voisins.
-+  for (elem = 0; elem < nb_elem; elem++)
-+    {
-+      for (i = 0; i < nb_sommets_par_element; i++)
-+        {
-+          entier sommet = les_elems(elem, i);
-+          // GF cas des polyedres
-+          if (sommet==-1) break;
-+          entier n = (nb_elements_voisins[sommet])++;
-+          som_elem.set_value(sommet, n, elem);
-+        }
-+    }
-+
-+  // Tri de toutes les listes dans l'ordre croissant
-+  som_elem.trier_liste(-1);
-+}
-+
-+// Description: Cherche les elements qui contiennent tous les sommets
-+//  du tableau sommets_to_find (permet de trouver les elements
-+//  adjacents a une face ou une arete)
-+// Parametre:     som_elem
-+// Signification: pour chaque sommet, liste triee des elements adjacents
-+//                (voir construire_connectivite_som_elem)
-+// Parametre:     sommets_to_find
-+// Signification: une liste de sommets
-+// Parametre:     elements
-+// Signification: resultat de la recherche: la liste des elements qui
-+//                contiennent tous les sommets de sommets_to_find.
-+//                Si sommets_to_find est vide, on renvoie un tableau vide.
-+//                (en cas d'appels repetes a cette fonction, il est
-+//                 conseille de mettre le drapeau "smart_resize")
-+void find_adjacent_elements(const Static_Int_Lists& som_elem,
-+                            const ArrOfInt& sommets_to_find,
-+                            ArrOfInt& elements)
-+{
-+  entier nb_som_to_find = sommets_to_find.size_array();
-+  // on retire les sommets valant -1 (cas ou plusieurs types de faces)
-+  while (sommets_to_find[nb_som_to_find-1]==-1) nb_som_to_find--;
-+  if (nb_som_to_find == 0)
-+    {
-+      elements.resize_array(0);
-+      return;
-+    }
-+  // Algorithme: on initialise elements avec tous les elements adjacents
-+  //  au premier sommet de la liste.
-+  //  Puis pour chacun des autres sommets de la liste, on retire du tableau
-+  //  "elements" les elements qui ne sont pas voisins du sommet.
-+  //  A la fin, il ne reste que les elements qui sont dans toutes les listes.
-+  {
-+    // Initialisation avec les elements adjacents au premier sommet
-+    const entier sommet = sommets_to_find[0];
-+    som_elem.copy_list_to_array(sommet, elements);
-+  }
-+  entier nb_elem_found = elements.size_array();
-+  entier i_sommet;
-+  for (i_sommet = 1; i_sommet < nb_som_to_find; i_sommet++)
-+    {
-+      const entier sommet = sommets_to_find[i_sommet];
-+      // Calcul des elements communs entre elements[.] et som_elem(sommet,.)
-+      // Nombre d'elements communs entre elements et la nouvelle liste de sommets
-+      entier nb_elems_restants = 0;
-+      // Nombre d'elements adjacents au "sommet"
-+      const entier nb_elem_liste = som_elem.get_list_size(sommet);
-+      // On suppose que les listes d'elements sont triees dans l'ordre croissant
-+      // On parcourt simultanement les deux listes et on conserve les elements
-+      // communs.
-+      entier i = 0;
-+      entier j = 0;
-+      if (nb_elem_found == 0)
-+        break;
-+      if (nb_elem_liste > 0)
-+        {
-+          while (1)
-+            {
-+              const entier elem_i = elements[i];
-+              const entier elem_j = som_elem(sommet, j);
-+              if (elem_i == elem_j)
-+                {
-+                  // Element commun aux deux listes, on le garde
-+                  elements[nb_elems_restants] = elem_i;
-+                  nb_elems_restants++;
-+                }
-+              if (elem_i >= elem_j)
-+                {
-+                  j++;
-+                  if (j >= nb_elem_liste)
-+                    break;
-+                }
-+              if (elem_j >= elem_i)
-+                {
-+                  i++;
-+                  if (i >= nb_elem_found)
-+                    break;
-+                }
-+            }
-+        }
-+      else
-+        {
-+          nb_elems_restants = 0;
-+        }
-+      nb_elem_found = nb_elems_restants;
-+    }
-+  elements.resize_array(nb_elem_found);
-+}
-+
-diff --git a/databases/readers/Lata/Connectivite_som_elem.h b/databases/readers/Lata/Connectivite_som_elem.h
-new file mode 100644
-index 0000000..758b030
---- /dev/null
-+++ b/databases/readers/Lata/Connectivite_som_elem.h
-@@ -0,0 +1,44 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+
-+#include <arch.h>
-+
-+class IntTab;
-+class ArrOfInt;
-+class Static_Int_Lists;
-+
-+void construire_connectivite_som_elem(const entier       nb_sommets,
-+                                      const IntTab&      les_elems,
-+                                      Static_Int_Lists& som_elem,
-+                                      const entier       include_virtual);
-+
-+void find_adjacent_elements(const Static_Int_Lists& som_elem,
-+                            const ArrOfInt& sommets_to_find,
-+                            ArrOfInt& elements);
-diff --git a/databases/readers/Lata/DoubleTab.h b/databases/readers/Lata/DoubleTab.h
-new file mode 100644
-index 0000000..1731563
---- /dev/null
-+++ b/databases/readers/Lata/DoubleTab.h
-@@ -0,0 +1,30 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <ArrOfDouble.h>
-diff --git a/databases/readers/Lata/EFichier.h b/databases/readers/Lata/EFichier.h
-new file mode 100644
-index 0000000..3cf0ee8
---- /dev/null
-+++ b/databases/readers/Lata/EFichier.h
-@@ -0,0 +1,60 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef EFichier_H
-+#define EFichier_H
-+#include <Entree.h>
-+class EFichier : public Entree
-+{
-+public:
-+  int ouvrir(const char *name)
-+  {
-+    is_.open(name);
-+    return is_.good();
-+  }
-+  operator std::istream& ()
-+  {
-+    return is_;
-+  }
-+  int eof()
-+  {
-+    return is_.eof();
-+  }
-+  int good()
-+  {
-+    return is_.good();
-+  }
-+  std::istream& get_istream()
-+  {
-+    return is_;
-+  }
-+private:
-+  std::ifstream is_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/Entree.h b/databases/readers/Lata/Entree.h
-new file mode 100644
-index 0000000..2f36fea
---- /dev/null
-+++ b/databases/readers/Lata/Entree.h
-@@ -0,0 +1,77 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Entree_H
-+#define Entree_H
-+#include <iostream>
-+#include <fstream>
-+#include <Motcle.h>
-+// This class emulates the main functionalities of the Entree and EFichier classes in TRUST
-+class Entree
-+{
-+public:
-+  virtual operator std::istream& () = 0;
-+  virtual int eof() = 0;
-+  virtual int good() = 0;
-+  virtual ~Entree() {};
-+  virtual std::istream& get_istream() = 0;
-+};
-+
-+inline Entree& operator>>(Entree& is, double& t)
-+{
-+  is.get_istream() >> t;
-+  return is;
-+}
-+inline Entree& operator>>(Entree& is, float& t)
-+{
-+  is.get_istream() >> t;
-+  return is;
-+}
-+inline Entree& operator>>(Entree& is, Nom& n)
-+{
-+  is.get_istream() >> n;
-+  return is;
-+}
-+inline Entree& operator>>(Entree& is, Motcle& n)
-+{
-+  is.get_istream() >> n;
-+  return is;
-+}
-+inline Entree& operator>>(Entree& is, entier& n)
-+{
-+  is.get_istream() >> n;
-+  return is;
-+}
-+class ArrOfInt;
-+// For Static_Int_Lists:
-+inline Entree& operator>>(Entree& is, ArrOfInt& t)
-+{
-+  throw;
-+}
-+#endif
-diff --git a/databases/readers/Lata/FloatTab.h b/databases/readers/Lata/FloatTab.h
-new file mode 100644
-index 0000000..351313d
---- /dev/null
-+++ b/databases/readers/Lata/FloatTab.h
-@@ -0,0 +1,30 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <ArrOfFloat.h>
-diff --git a/databases/readers/Lata/IntTab.h b/databases/readers/Lata/IntTab.h
-new file mode 100644
-index 0000000..c8cb65c
---- /dev/null
-+++ b/databases/readers/Lata/IntTab.h
-@@ -0,0 +1,31 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <ArrOfInt.h>
-+
-diff --git a/databases/readers/Lata/LataDB.C b/databases/readers/Lata/LataDB.C
-new file mode 100644
-index 0000000..84e4cc4
---- /dev/null
-+++ b/databases/readers/Lata/LataDB.C
-@@ -0,0 +1,2313 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <errno.h>
-+#include <LataDB.h>
-+#include <stdio.h>
-+#include <EFichier.h>
-+#include <LataV1_field_definitions.h>
-+#include <iostream>
-+#include <fstream>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+#include <LataDBmed.h>
-+
-+// Verbose level for which main lata file interpretation should be printed:
-+//  Dump one line for the whole file at verb_level-1
-+//  Dump one line for each Geometry, Temps, or Champ at verb_level
-+//  Detailed Geometry and Champ metadata is printed out at verb_level+1
-+#define verb_level 4
-+// Verbose level for data bloc reading:
-+//  Dump one line for each read data bloc at this level
-+//  Dump detailed subbloc interpretation at level+1
-+#define verb_level_data_bloc 5
-+
-+typedef int LataDBInt32;
-+typedef long long int LataDBInt64;
-+
-+void arch_check()
-+{
-+  if (sizeof(LataDBInt32)!=4)
-+    Journal() << "Error in LataDB arch_check : wrong LataDBInt32" << endl;
-+  if (sizeof(LataDBInt64)!=8)
-+    Journal() << "Error in LataDB arch_check : wrong LataDBInt64" << endl;
-+}
-+
-+const char * LataDBField::memory_buffer_file()
-+{
-+  return "MEMORY_BUFFERED_DATA";
-+}
-+
-+Field_UName::Field_UName()
-+{
-+}
-+
-+Field_UName::Field_UName(const Field_UName & f) :
-+  geometry_(f.geometry_), field_name_(f.field_name_), loc_(f.loc_)
-+{
-+}
-+
-+Field_UName::Field_UName(const char *domain_name, const char *field_name, const char *loc) :
-+  geometry_(domain_name), field_name_(field_name), loc_(loc)
-+{
-+  if (loc_ == "??")
-+    loc_ = "";
-+}
-+
-+Field_UName & Field_UName::operator=(const Field_UName & f)
-+{
-+  geometry_ = f.geometry_;
-+  field_name_ = f.field_name_;
-+  loc_ = f.loc_;
-+  return *this;
-+}
-+
-+Nom Field_UName::build_string() const
-+{
-+  Nom n(geometry_);
-+  n += "_";
-+  n += field_name_;
-+  if (loc_ != "" && loc_ != "??") {
-+    n += "_";
-+    n += loc_;
-+  }
-+  return n;
-+}
-+
-+void Field_UName::set_field_name(const Nom & n)
-+{
-+  field_name_ = n;
-+}
-+
-+int Field_UName::operator==(const Field_UName & f) const
-+{
-+  return (geometry_ == f.geometry_) && (field_name_ == f.field_name_) && (loc_ == f.loc_);
-+}
-+
-+std::ostream & operator<<(std::ostream & os, const Field_UName & uname)
-+{
-+  os << uname.build_string();
-+  return os;
-+}
-+
-+// This is a duplicate of Domain... only used for old latav1 compatibility
-+// (otherwise, LataDB should not have to know about element types !)
-+LataDB::Element LataDB::element_type_from_string(const Motcle & type_elem)
-+{
-+  Element type;
-+  if (type_elem == "HEXAEDRE")
-+    type=hexa;
-+  else if (type_elem == "HEXAEDRE_AXI")
-+    type=hexa;
-+  else if (type_elem == "HEXAEDRE_VEF")
-+    type=hexa;
-+  else if (type_elem == "QUADRANGLE")
-+    type=quadri;
-+  else if (type_elem == "QUADRANGLE_3D")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE_2D_AXI")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE_AXI")
-+    type=quadri;
-+  else if (type_elem == "SEGMENT")
-+    type=line;
-+  else if (type_elem == "SEGMENT_2D")
-+    type=line;
-+  else if (type_elem == "TETRAEDRE")
-+    type=tetra;
-+  else if (type_elem == "TRIANGLE")
-+    type=triangle;
-+  else if (type_elem == "TRIANGLE_3D")
-+    type=triangle;
-+  else if (type_elem.debute_par("POLYEDRE"))
-+    type=polyedre;
-+  else if (type_elem.debute_par("POLYGONE"))
-+    type=polygone;
-+  else {
-+    Journal() << "Error in elem_type_from_string: unknown element type " << type_elem << endl;
-+    throw(LataDBError(LataDBError::BAD_ELEM_TYPE));
-+  }
-+  return type;
-+}
-+
-+void LataDB::get_element_data(const Motcle & elemtype, entier & dimension, entier & elem_shape, entier & face_shape, entier & nb_elem_faces)
-+{
-+  Element elem = element_type_from_string(elemtype);
-+  switch(elem) {
-+  case line:        dimension = 2; elem_shape=2; face_shape=1; nb_elem_faces=2; break;
-+  case triangle:    dimension = (elemtype=="TRIANGLE") ? 2 : 3; 
-+    elem_shape=3; face_shape=2; nb_elem_faces=3; break;
-+  case quadri:      dimension = (elemtype=="QUADRANGLE_3D") ? 3 : 2;
-+    elem_shape=4; face_shape=2; nb_elem_faces=4; break;
-+  case tetra:       dimension = 3; elem_shape=4; face_shape=3; nb_elem_faces=4; break;
-+  case hexa:        dimension = 3; elem_shape=8; face_shape=4; nb_elem_faces=6; break;
-+  case polyedre:    dimension = 3; elem_shape=-1; face_shape=-1; nb_elem_faces=-1; break;
-+  case polygone:    dimension = 2; elem_shape=-1; face_shape=-1; nb_elem_faces=-1; break;
-+  default:
-+    Journal() << "LataDB::get_element_data element is unspecified" << endl;
-+    throw(LataDBError(LataDBError::BAD_ELEM_TYPE));
-+  }    
-+}
-+
-+// Description: in lata v1 format, the number of components in a Champ entry
-+//  is implicitely defined by the field name and the discretisation
-+entier LataDB::lata_v1_get_nb_comp(const Nom & fieldname, const Motcle & localisation, 
-+                                   const LataDBGeometry & dom, entier dim, LataDBField::Nature & nature,
-+                                   LataDBDataType::DataOrdering & ordering)
-+{
-+  // Search component name in std_components
-+  entier nb_comp = latav1_component_shape(fieldname);
-+  Motcle maj_field(fieldname);
-+  ordering = LataDBDataType::C_ORDERING;
-+  nature = LataDBField::SCALAR;
-+  Journal(verb_level+1) << " LataV2 known component name found : " << fieldname << endl;
-+  if (nb_comp == -1) {
-+    // This is a vector component. If it's not a VDF faces, nb_comp = dimension of the problem
-+    Element elt = element_type_from_string(dom.elem_type_);
-+    if (localisation == "FACES" && (elt == quadri || elt == hexa)) {
-+      nb_comp = 1;
-+      Journal(verb_level+1) << " Vector field. Detected a VDF faces discretisation => nb_comp=1" << endl;
-+    } else {
-+      nb_comp = dim;
-+      nature = LataDBField::VECTOR;
-+      ordering = LataDBDataType::F_ORDERING;
-+      Journal(verb_level+1) << " Vector field. nb_comp = dimension = " << nb_comp << endl;
-+      Journal(verb_level+1) << " Assume fortran ordering" << endl;
-+    }
-+  } else if (nb_comp == -2) {
-+    // This is the vorticity: scalar in 2D, vector in 3D
-+    if (dim == 2)
-+    {
-+      nb_comp = 1;
-+      Journal(verb_level+1) << " Scalar field, nb_comp=" << nb_comp << endl; 
-+    }
-+    else 
-+    {
-+      nb_comp = dim;
-+      nature = LataDBField::VECTOR;
-+      ordering = LataDBDataType::F_ORDERING;
-+      Journal(verb_level+1) << " Vector field. nb_comp = dimension = " << nb_comp << endl;
-+      Journal(verb_level+1) << " Assume fortran ordering" << endl;      
-+    }
-+  } else {
-+    //if (maj_field == "K_EPS") {
-+    if (nb_comp>1) {
-+      ordering = LataDBDataType::F_ORDERING;
-+      Journal(verb_level+1) << " Special K_EPS => Assume fortran ordering" << endl;
-+    }
-+    Journal(verb_level+1) << " Scalar field, nb_comp=" << nb_comp << endl; 
-+  }
-+  return nb_comp;
-+}
-+
-+// Description: in lata v1 format, the localisation is implicitely defined by the
-+//  file name of the data file:
-+void lata_v1_get_localisation(const char * filename, Nom & localisation_)
-+{
-+  if (strstr(filename, ".SOM."))
-+    localisation_ = "SOM";
-+  else if (strstr(filename, ".ELEM."))
-+    localisation_ = "ELEM";
-+  else if (strstr(filename, ".FACES."))
-+    localisation_ = "FACES";
-+  else {
-+    Journal() << "Error in lata_v1_get_localisation. Unable to find localisation in filename\n"
-+              << filename << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+}
-+
-+class LataDataFile
-+{
-+public:
-+  enum Mode { READ, WRITE, APPEND };
-+  LataDataFile(std::iostream & mem_buffer, const char *prefix, const char *name, const LataDBDataType::MSB& msb, Mode mode = READ)
-+  {
-+    exception_ = 1;
-+    msb_=msb;
-+    if (strcmp(name, LataDBField::memory_buffer_file()) == 0) {
-+      stream_ = &mem_buffer;
-+      fname_ = name;
-+      Journal(verb_level_data_bloc) << "LataDB: opening internal memory_buffer for read/write" << endl;
-+      if (mode == READ)
-+        (*stream_).seekg(0, std::ios::beg);
-+      else if (mode == WRITE) 
-+      { // on ne repositionne pas sur un fichier vide, Visual ne supporte pas
-+        // et c'est inutil
-+        if ((*stream_).tellp()>=0)
-+          (*stream_).seekp(0, std::ios::beg);
-+      }
-+      else
-+      {
-+        if ((*stream_).tellp()>=0)
-+          (*stream_).seekp(0, std::ios::end);
-+      }
-+      Journal(verb_level_data_bloc+1) << " current position: " << position() << endl;
-+      if (!fstream_.good()) {
-+        Journal() << "LataDataFile: Memory stream error" << endl;
-+        throw LataDBError(LataDBError::DATA_ERROR);
-+      }
-+    } else {
-+      stream_ = &fstream_;
-+      fname_ = prefix;;
-+      fname_ += name;
-+      Journal(verb_level_data_bloc) << "LataDB: opening data file " << fname_ << endl;
-+      if (msb_ == LataDBDataType::ASCII) {
-+      switch(mode) {
-+      case READ: fstream_.open(fname_, std::fstream::in); break;
-+      case WRITE: fstream_.open(fname_, std::fstream::out); break;
-+      case APPEND: fstream_.open(fname_, std::fstream::out | std::fstream::app); break;
-+      }
-+      }
-+      else 
-+        {
-+          if (msb_ != LataDBDataType::machine_msb_) {
-+            Journal() << "LataDB LataDataFile::write(int) not coded for reverse binary msb" << endl;
-+            throw;
-+          }
-+          switch(mode) {
-+          case READ: fstream_.open(fname_, std::fstream::in|std::fstream::binary); break;
-+          case WRITE: fstream_.open(fname_, std::fstream::out|std::fstream::binary); break;
-+          case APPEND: fstream_.open(fname_, std::fstream::out | std::fstream::app|std::fstream::binary); break;
-+          }
-+        }
-+      if (!fstream_.good()) {
-+        Journal() << "File not found " << fname_ << endl;
-+        throw LataDBError(LataDBError::FILE_NOT_FOUND);
-+      }
-+    }
-+  }
-+  void set_exception(int i) { exception_ = i; }
-+  FileOffset position() { return (*stream_).tellp(); };
-+  enum SeekType { ABSOLUTE, RELATIVE };
-+  void seek(FileOffset pos, SeekType seekt) {
-+    Journal(verb_level_data_bloc+1) << "Seeking file " << fname_ 
-+                                    << ((seekt == ABSOLUTE) ? " absolute position " : " relative position ")
-+                                    << pos << endl;
-+    if (seekt == ABSOLUTE)
-+      (*stream_).seekg(pos, std::ios::beg);
-+    else
-+      (*stream_).seekg(pos, std::ios::cur);
-+  
-+    if (exception_ && !(*stream_).good()) {
-+      Journal() << "Error seeking to position " << pos << " in file " << fname_ << endl;
-+      throw LataDBError(LataDBError::DATA_ERROR);
-+    }
-+  }
-+  void set_encoding(LataDBDataType::MSB msb, LataDBDataType::Type type) { msb_ = msb; type_ = type; };
-+  void set_err_message(const char *message) { message_ = message; };
-+  LataDataFile & operator>>(LataDBInt32 & x) { read(&x, 1); return *this; };
-+  LataDataFile & operator>>(float & x) { read(&x, 1); return *this; };
-+  LataDataFile & operator>>(Nom & n) {
-+    n = "";
-+    if (msb_ != LataDBDataType::ASCII) {
-+      for (;;) {
-+        char c[2];
-+        c[1] = 0;
-+        (*stream_).get(c[0]);
-+
-+        if (!(*stream_).good())
-+          break;
-+
-+        if (c[0] == '\0')
-+          break;
-+
-+        n += c;
-+      }
-+    } else {
-+      std::string tmp;
-+      (*stream_) >> tmp;
-+      if ((*stream_).good())
-+        n = tmp.c_str();
-+    }
-+    if (exception_ && !(*stream_).good()) {
-+      Journal() << "Error reading string in file " << fname_ << endl;
-+      throw LataDBError(LataDBError::DATA_ERROR);
-+    }
-+    return *this;
-+  }
-+  void read(LataDBInt32 *ptr, BigEntier n);
-+  void read(float *ptr, BigEntier n);
-+  LataDataFile & operator<<(LataDBInt32 & x) { write(&x, 1, 1); return *this; };
-+  LataDataFile & operator<<(float & x) { write(&x, 1, 1); return *this; };
-+  void write(const LataDBInt32 *ptr, BigEntier n, BigEntier col);
-+  void write(const float *ptr, BigEntier n, BigEntier col);
-+
-+protected:
-+  Nom fname_;
-+  const char * message_; // Message printed if error.
-+  std::fstream fstream_;
-+  std::iostream *stream_; // Points to fstream_ or mem_buffer passed to constructor
-+  LataDBDataType::MSB msb_;
-+  LataDBDataType::Type type_;
-+  int exception_;
-+};
-+
-+void LataDataFile::read(LataDBInt32 *ptr, BigEntier n)
-+{
-+  if (type_ != LataDBDataType::INT32 && type_ != LataDBDataType::INT64) {
-+    Journal() << "Error in lataDB bloc read: trying to read non integer data into integer array" << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR); 
-+  }
-+  if (msb_ == LataDBDataType::ASCII) {
-+    BigEntier i;
-+    if (ptr)
-+      Journal(verb_level_data_bloc+1) << "Reading ascii int data bloc size=" << n << endl;
-+    else
-+      Journal(verb_level_data_bloc+1) << "Skipping ascii int data bloc size=" << n << endl;
-+    LataDBInt32 toto;
-+    for (i = 0; i < n; i++) {
-+      if (ptr)
-+        (*stream_) >> ptr[i];
-+      else
-+        (*stream_) >> toto;
-+      if (exception_ && !(*stream_).good()) {
-+        Journal() << "Error reading ascii file " << fname_ << " LataDBInt32[" << n << "] at index " 
-+                  << i << endl << (message_?message_:"") << endl;
-+        throw LataDBError(LataDBError::DATA_ERROR);
-+      }
-+    }
-+  } else {
-+    if (type_ != LataDBDataType::INT32) {
-+      Journal() << "Internal error in LataDB.cpp LataDataFile::read(LataDBInt32) : size conversion not coded" << endl;
-+      throw;
-+    }
-+    if (ptr) {
-+      Journal(verb_level_data_bloc+1) << "Reading binary int data bloc size=" << n << endl;
-+      (*stream_).read((char*)ptr, n * sizeof(LataDBInt32));
-+    } else {
-+      Journal(verb_level_data_bloc+1) << "Skipping binary int data bloc size=" << n << endl;
-+      seek(n * sizeof(LataDBInt32), RELATIVE);
-+    }
-+    if (exception_ && !(*stream_).good()) {
-+      Journal() << "Error reading binary file " << fname_ << " LataDBInt32[" << n << "]" 
-+                << endl << (message_?message_:"") << endl;
-+      throw LataDBError(LataDBError::DATA_ERROR);
-+    }
-+    if (msb_ != LataDBDataType::machine_msb_) {
-+      Journal() << "LataDB LataDataFile::read(LataDBInt32) not coded for reverse binary msb" << endl;
-+      throw;
-+      // Put code here (and test !) to reverse bytes in the binary bloc:
-+    }
-+  } 
-+}
-+
-+void LataDataFile::read(float *ptr, BigEntier n)
-+{
-+  if (type_ != LataDBDataType::REAL32) {
-+    Journal() << "Error in lataDB bloc read: trying to read non float data into float array" << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR); 
-+  }
-+  if (msb_ == LataDBDataType::ASCII) {
-+    BigEntier i;
-+    if (ptr)
-+      Journal(verb_level_data_bloc+1) << "Reading ascii float data bloc size=" << n << endl;
-+    else
-+      Journal(verb_level_data_bloc+1) << "Skipping ascii float data bloc size=" << n << endl;
-+    float toto;
-+    for (i = 0; i < n; i++) {
-+      if (ptr)
-+        (*stream_) >> ptr[i];
-+      else
-+        (*stream_) >> toto;
-+      if (exception_ && !(*stream_).good()) {
-+        Journal() << "Error reading ascii file " << fname_ << " float[" << n << "] at index " 
-+                  << i << endl << message_ << endl;
-+        throw LataDBError(LataDBError::DATA_ERROR);
-+      }
-+    }
-+  } else {
-+    if (ptr) {
-+      Journal(verb_level_data_bloc+1) << "Reading binary float data bloc size=" << n << endl;
-+      (*stream_).read((char*)ptr, n * sizeof(float));
-+    } else {
-+      Journal(verb_level_data_bloc+1) << "Skipping binary float data bloc size=" << n << endl;
-+      seek(n * sizeof(float), RELATIVE);
-+    }
-+    if (exception_ && !(*stream_).good()) {
-+      Journal() << "Error reading binary file " << fname_ << " float[" << n << "]" 
-+                << endl << message_ << endl;
-+      throw LataDBError(LataDBError::DATA_ERROR);
-+    }
-+    if (msb_ != LataDBDataType::machine_msb_) {
-+      Journal() << "LataDB LataDataFile::read(float) not coded for reverse binary msb" << endl;
-+      throw;
-+      // Put code here (and test !) to reverse bytes in the binary bloc:
-+    }
-+  } 
-+}
-+
-+void LataDataFile::write(const LataDBInt32 *ptr, BigEntier n, BigEntier columns)
-+{
-+  Journal(verb_level_data_bloc+1) << "Writing int data bloc size=" << n << endl;
-+  if (type_ != LataDBDataType::INT32) {
-+    Journal() << "Error in lataDB bloc write: trying to write integer data to non integer file block" << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR); 
-+  }
-+  if (msb_ == LataDBDataType::ASCII) {
-+    for (BigEntier i = 0; i < n; i+=columns) {
-+      BigEntier j;
-+      for (j = 0; j < columns-1; j++)
-+        (*stream_) << ptr[i+j] << " ";
-+      (*stream_) << ptr[i+j] << endl;
-+    }
-+  } else {
-+    if (msb_ != LataDBDataType::machine_msb_) {
-+      Journal() << "LataDB LataDataFile::write(int) not coded for reverse binary msb" << endl;
-+      throw;
-+      // Put code here (and test !) to reverse bytes in the binary bloc:
-+    }
-+    (*stream_).write((char*)ptr, n * sizeof(LataDBInt32));    
-+  }
-+  (*stream_).seekg(0, std::ios::end);
-+  if (exception_ && !(*stream_).good()) {
-+    Journal() << "Error writing file " << fname_ << " int[" << n << "]" 
-+              << endl << message_ << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR);
-+  }
-+}
-+
-+void LataDataFile::write(const float *ptr, BigEntier n, BigEntier columns)
-+{
-+  Journal(verb_level_data_bloc+1) << "Writing float data bloc size=" << n << endl;
-+  if (type_ != LataDBDataType::REAL32) {
-+    Journal() << "Error in lataDB bloc write: trying to write float data to non float file block" << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR); 
-+  }
-+  if (msb_ == LataDBDataType::ASCII) {
-+    for (BigEntier i = 0; i < n; i+=columns) {
-+      BigEntier j;
-+      for (j = 0; j < columns-1; j++)
-+        (*stream_) << ptr[i+j] << " ";
-+      (*stream_) << ptr[i+j] << endl;
-+    }
-+  } else {
-+    if (msb_ != LataDBDataType::machine_msb_) {
-+      Journal() << "LataDB LataDataFile::write(float) not coded for reverse binary msb" << endl;
-+      throw;
-+      // Put code here (and test !) to reverse bytes in the binary bloc:
-+    }
-+    (*stream_).write((char*)ptr, n * sizeof(float));    
-+  }
-+  (*stream_).seekg(0, std::ios::end);
-+  if (exception_ && !(*stream_).good()) {
-+    Journal() << "Error writing file " << fname_ << " float[" << n << "]" 
-+              << endl << message_ << endl;
-+    throw LataDBError(LataDBError::DATA_ERROR);
-+  }
-+}
-+
-+// Description: skips a fortran bloc size descriptor.
-+void skip_blocksize(LataDataFile & f, const LataDBDataType & type)
-+{
-+  if (type.fortran_bloc_markers_ == LataDBDataType::NO_BLOC_MARKER)
-+    return;
-+  f.set_err_message("Error reading fortran blocsize");
-+  f.set_encoding(type.msb_, type.bloc_marker_type_);
-+  int i;
-+  f >> i;
-+  Journal(verb_level_data_bloc+1) << "Skipping blocsize marker value=" << i << endl;
-+}
-+
-+template<class DEST_TYPE>
-+DEST_TYPE int_conversion(LataDBInt64 x, const char * err_msg = 0)
-+{
-+  DEST_TYPE result = (DEST_TYPE) x;
-+  if ((LataDBInt64) result != x) {
-+    if (err_msg)
-+      Journal() << "LataDB integer conversion failed: " << err_msg << endl;
-+    else 
-+      Journal() << "LataDB integer conversion failed: " << endl;
-+    throw(LataDBError(LataDBError::INTEGER_OVERFLOW));
-+  }
-+  return result;
-+}
-+
-+void write_blocksize(LataDataFile & f, const LataDBDataType & type, entier sz)
-+{
-+  if (type.fortran_bloc_markers_ == LataDBDataType::NO_BLOC_MARKER)
-+    return;
-+
-+  Journal(verb_level_data_bloc+1) << "Writing blocsize marker value=" << sz << endl;
-+  f.set_err_message("Error writing fortran blocsize");
-+  f.set_encoding(type.msb_, type.bloc_marker_type_);
-+  f << sz;
-+}
-+
-+void bloc_read_skip(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type, BigEntier size)
-+{
-+  f.set_encoding(msb, type);
-+  switch(type) {
-+  case LataDBDataType::INT32: f.read((LataDBInt32*) 0, size); break;
-+  case LataDBDataType::REAL32: f.read((float*) 0, size); break;
-+  default:
-+    Journal() << "Internal error: bloc read skip not code for this type" << endl;
-+    throw;
-+  }
-+}
-+
-+// Description: Read "tab.size_array()" values from file "f" at current file location
-+//  into the "tab" array. "msb" and "type" must match the data type written in the file.
-+void bloc_read(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
-+               ArrOfInt & tab)
-+{
-+  f.set_encoding(msb, type);
-+  f.read(tab.addr(), tab.size_array());
-+}
-+
-+void bloc_read(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
-+               ArrOfFloat & tab)
-+{
-+  f.set_encoding(msb, type);
-+  f.read(tab.addr(), tab.size_array());
-+}
-+
-+void bloc_write(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
-+                const ArrOfInt & tab, int columns)
-+{
-+  f.set_encoding(msb, type);
-+  f.write(tab.addr(), tab.size_array(), columns);
-+}
-+
-+void bloc_write(LataDataFile & f, LataDBDataType::MSB msb, LataDBDataType::Type type,
-+                const ArrOfFloat & tab, int columns)
-+{
-+  f.set_encoding(msb, type);
-+  f.write(tab.addr(), tab.size_array(), columns);
-+}
-+
-+LataDBDataType::MSB LataDBDataType::machine_msb_ = (mymachine_msb) ? LataDBDataType::MSB_BIG_ENDIAN : LataDBDataType::MSB_LITTLE_ENDIAN;
-+
-+void LataDB::add(entier tstep, const LataDBGeometry & item)
-+{
-+  Noms names = geometry_names(tstep);
-+  if (names.rang(item.name_) >= 0) {
-+    Journal() << "Error in LataDBTimestep::add(const LataDBGeometry &): duplicate geometry name " << item.name_ << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+  timesteps_[tstep].geoms_.add(item);
-+}
-+
-+void LataDB::add(entier tstep, const LataDBField & item)
-+{
-+  LataDBField & field = timesteps_[tstep].fields_.add(item);
-+  field.timestep_ = tstep;
-+  field.uname_ = Field_UName(item.geometry_, item.name_, item.localisation_);
-+  Journal(verb_level+1) << "LataDB::add " << tstep << " " << field.uname_ << endl;
-+}
-+
-+// Description: returns the number of timesteps in the database
-+//  (timestep 0 contains geometries and fields defined before the first TEMPS entry,
-+//   hence nb_timesteps() == number of TEMPS entries plus 1)
-+// Exceptions: BAD_TIMESTEP
-+entier LataDB::nb_timesteps() const
-+{ 
-+  return timesteps_.size(); 
-+}
-+
-+// Description: returns the physical time for this timestep
-+// Exceptions: BAD_TIMESTEP
-+double LataDB::get_time(entier tstep) const
-+{
-+  return get_tstep(tstep).time_;
-+}
-+
-+// Description: returns the requested geometry in the requested timestep
-+//  "where" tells where to seach this geometry (in the current timestep or
-+//  also in the first timestep.
-+// Exceptions: BAD_TIMESTEP NAME_NOT_FOUND
-+const LataDBGeometry & LataDB::get_geometry(entier tstep, const char* name,
-+                                            TStepSelector where) const
-+{
-+  if (!name)
-+    throw(LataDBError(LataDBError::NAME_NOT_FOUND));
-+  while (1) {
-+    const LataDBTimestep & t = get_tstep(tstep);
-+    const entier n = t.geoms_.size();
-+    for (entier i = 0; i < n; i++) {
-+      const LataDBGeometry & geom = t.geoms_[i];
-+      if (geom.name_ == name)
-+        return geom;
-+    }
-+    if (where == FIRST_AND_CURRENT && tstep > 0)
-+      tstep = 0;
-+    else
-+      break;
-+  }
-+  throw(LataDBError(LataDBError::NAME_NOT_FOUND));
-+}
-+
-+// Description: returns the requested field in the requested timestep.
-+// Exceptions: BAD_TIMESTEP NAME_NOT_FOUND
-+const LataDBField & LataDB::get_field(entier tstep, const Field_UName & uname,
-+                                      TStepSelector where) const
-+{
-+  while (1) {
-+    const LataDBTimestep & t = get_tstep(tstep);
-+    const entier n = t.fields_.size();
-+    for (entier i = 0; i < n; i++) {
-+      const LataDBField & field = t.fields_[i];
-+      if (field.uname_ == uname)
-+        return field;
-+    }
-+    if (where == FIRST_AND_CURRENT && tstep > 0)
-+      tstep = 0;
-+    else
-+      break;
-+  }
-+  throw(LataDBError(LataDBError::NAME_NOT_FOUND));
-+}
-+
-+// Description: shortcut, works only if the specified field exists and is unique.
-+const LataDBField & LataDB::get_field(entier tstep, const char *geom, const char *name, const char *loc,
-+                                      TStepSelector which_tstep) const
-+{
-+  Field_UNames fields = field_unames(tstep, geom, name, which_tstep);
-+  if (fields.size() > 1)
-+    cerr << "get_field(char *geom, char *name, ...) returned more than one field !" << endl;
-+  if (fields.size() != 1)
-+    throw(LataDBError(LataDBError::NAME_NOT_FOUND));
-+  return get_field(tstep, fields[0], which_tstep);
-+}
-+
-+// Description: return 1 if the field exists AND is unique. (means you can call get_field with the
-+//  same parameters)
-+entier LataDB::field_exists(entier tstep, const char *geom, const char *name, 
-+                            TStepSelector which_tstep) const
-+{
-+  Field_UNames fields = field_unames(tstep, geom, name, which_tstep);
-+  return fields.size() == 1;
-+}
-+
-+
-+LataDBField & LataDB::getset_field(entier tstep, const Field_UName & uname, TStepSelector which_tstep)
-+{
-+  return (LataDBField&) get_field(tstep, uname, which_tstep);
-+}
-+
-+// Description: returns the names of all geometries defined in the timestep
-+//  which_tstep tell where to search for geometries.
-+// Exceptions: BAD_TIMESTEP 
-+Noms LataDB::geometry_names(entier tstep, TStepSelector which_tstep) const
-+{
-+  Noms names;
-+  const LataDBTimestep & t = get_tstep(tstep);
-+  entier n = t.geoms_.size();
-+  for (entier i = 0; i < n; i++)
-+    names.add(t.geoms_[i].name_);
-+  if (which_tstep == FIRST_AND_CURRENT && tstep > 0) {
-+    const LataDBTimestep & t0 = get_tstep(0);
-+    entier n2 = t0.geoms_.size();
-+    for (entier i = 0; i < n2; i++)
-+      // add if not:
-+      if (names.rang(t0.geoms_[i].name_) < 0)
-+        names.add(t0.geoms_[i].name_);
-+  }
-+  return names;
-+}
-+
-+// Description: returns the unique_identifiers of all fields defined in the timestep and for which
-+//  the associated geometry is "geometry" and the name is "name". Some fields may have no associated geometry,
-+//  give a null pointer or empty string to get these fields.
-+//  If geometry="*", returns list for all geometries
-+//  If name="*", returns list for all field names
-+// Exceptions: BAD_TIMESTEP 
-+LataVector<Field_UName> LataDB::field_unames(entier tstep, const char * geometry, const char * name, TStepSelector which_tstep) const
-+{
-+  LataVector<Field_UName> unames;
-+  if (!geometry)
-+    geometry = "";
-+  for (;;) {
-+    const LataDBTimestep & t = get_tstep(tstep);
-+    entier n = t.fields_.size();
-+    for (entier i = 0; i < n; i++) {
-+      const LataDBField & field = t.fields_[i];
-+      if ((field.geometry_ == geometry || strcmp(geometry, "*")==0 )
-+          && (field.name_ == name || strcmp(name,"*")==0 ))
-+        unames.add(field.uname_);
-+    }
-+    if (tstep == 0 || which_tstep != FIRST_AND_CURRENT)
-+      break;
-+    tstep = 0;
-+  }
-+  return unames;
-+}
-+
-+void check(Entree & is, const char * msg)
-+{
-+  if (!is.good()) {
-+    Journal() << "LataDB::read_master_file " << msg << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+}
-+void read_keyword_nom(Entree & is, Nom& motlu)
-+{
-+  is >> motlu;
-+  if (is.eof()) {
-+    Journal(verb_level) << "LataDB::read_master_file end of file" << endl;
-+    motlu = "Fin";
-+  } else {
-+    check(is, "read string error but not eof !");
-+  }
-+  
-+}
-+
-+void read_keyword(Entree & is, Nom& nomlu, Motcle& motlu)
-+{
-+  read_keyword_nom(is,nomlu);
-+  motlu=nomlu;
-+}
-+
-+// On suppose que motlu contient "blabla=VALEUR". On extrait valeur et on la met dans "param".
-+// Bidouille: pour traiter le cas "blabla= VALEUR", s'il n'y a rien apres "=" dans motlu, on 
-+//  relit un mot dans is.
-+void read_long_param(Entree & is, const Motcle & motlu, LataDBInt64 & param, const char * err_msg)
-+{
-+  // Cherche le "="
-+  const char *s = motlu;
-+  while (((*s) != ('=')) && ((*s) != 0))
-+    s++;
-+  if (s==0) {
-+    Journal() << "LataDB::read_master_file error: " << err_msg << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+  s++;
-+  Nom tmp;
-+  if (*s==0) {
-+    // il y a une espace entre le = et le parametre ?
-+    read_keyword_nom(is, tmp);
-+    s = tmp;
-+  }
-+  errno = 0;
-+  char *errorptr = 0;
-+  param = strtoll(s, &errorptr, 0 /* base 10 par defaut */);
-+  if (errno || *errorptr != 0) {
-+    Journal() << "LataDB::read_master_file error: " << err_msg << endl
-+              << "Error converting a string to type long int : string = " << s << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+}
-+
-+void read_int_param(Entree & is, const Motcle & motlu, LataDBInt32 & param, const char * err_msg)
-+{
-+  LataDBInt64 i;
-+  read_long_param(is, motlu, i, err_msg);
-+  param = int_conversion<LataDBInt32>(i, err_msg);
-+}
-+
-+
-+// Idem que read_int_param pour des chaines de caracteres.
-+void read_string_param(Entree & is, const Nom & motlu, Nom & param, const char * err_msg)
-+{
-+  // Cherche le "="
-+  const char *s = motlu;
-+  while (((*s) != ('=')) && ((*s) != 0))
-+    s++;
-+  if (s==0) {
-+    Journal() << "LataDB::read_master_file error: " << err_msg << endl;
-+    throw(LataDBError(LataDBError::READ_ERROR));
-+  }
-+  s++;
-+  param = s;
-+  // S'il n'y a rien apres =, on lit un mot de plus.
-+  if (param == "")
-+    read_keyword_nom(is, param);
-+}
-+
-+
-+void read_noms_param(Entree & is, const Nom & motlu, Noms & param, const char * err_msg)
-+{
-+  Nom tmp;
-+  read_string_param(is,motlu,tmp,err_msg);
-+  /*
-+
-+  a faire extraire pour de vrai les differents mots de motlu
-+  Nom motlu2(tmp);
-+  int nb_comp=1;
-+  {
-+    const char *s = tmp;
-+    int p=0;
-+    while ( ((*s) != 0))
-+      {
-+        if ((*s) == (','))
-+          {
-+            nb_comp++;
-+            //    motlu2[p]='\0';
-+          }
-+        p++;
-+        s++;
-+      }
-+  }
-+  //  cerr<<nb_comp<<" "<<motlu2<<endl;
-+  // provisoire non fini
-+  param=Noms(nb_comp);
-+  {
-+    const char *s=motlu2;
-+    for (int i=0;i<nb_comp;i++)
-+      {
-+        
-+        int j=motlu2.find(",");
-+        if (j==-1) j=0;
-+        param[i]=(s+j);
-+        cerr<<param[i]<<endl;
-+      }
-+  }
-+  */
-+}
-+
-+// Description: internal tool: checks for valid i and returns the timestep
-+// Exceptions: BAD_TIMESTEP
-+const LataDBTimestep & LataDB::get_tstep(entier i) const
-+{
-+  if (i < 0 || i >= timesteps_.size()) {
-+    Journal() << "LataDB::timestep(" << i << ") : wrong timestep" << endl;
-+    throw(LataDBError(LataDBError::BAD_TIMESTEP));
-+  }
-+  return timesteps_[i];
-+}
-+
-+// Description: clears the database
-+void LataDB::reset()
-+{
-+  path_prefix_ = "";
-+  header_ = "";
-+  case_ = "";
-+  software_id_ = "";
-+  timesteps_.reset();
-+  std::string empty;
-+  internal_data_buffer_.str(empty);
-+}
-+
-+// We update only fields found in the string
-+// A string can contain both an int type and a float type: we get both in int_type and float_type
-+static void read_format_string(const Motcle & n, LataDBDataType & data_type, 
-+                               LataDBDataType::Type & int_type,
-+                               LataDBDataType::Type & float_type)
-+{
-+  int_type = LataDBDataType::UNKNOWN_TYPE;
-+  float_type = LataDBDataType::UNKNOWN_TYPE;
-+
-+  if (n.find("ASCII")>=0)
-+    data_type.msb_ = LataDBDataType::ASCII;
-+  if (n.find("BIG_ENDIAN")>=0)
-+    data_type.msb_ = LataDBDataType::MSB_BIG_ENDIAN;
-+  if (n.find("LITTLE_ENDIAN")>=0)
-+    data_type.msb_ = LataDBDataType::MSB_LITTLE_ENDIAN;
-+
-+  if (n.find("INT32")>=0) {
-+    int_type = data_type.type_ = LataDBDataType::INT32;
-+    data_type.bloc_marker_type_ = LataDBDataType::INT32;
-+  }
-+  if (n.find("INT64")>=0) {
-+    int_type = data_type.type_ = LataDBDataType::INT64;
-+    data_type.bloc_marker_type_ = LataDBDataType::INT64;
-+  }
-+  if (n.find("REAL32")>=0)
-+    float_type = data_type.type_ = LataDBDataType::REAL32;
-+  if (n.find("REAL64")>=0)
-+    float_type = data_type.type_ = LataDBDataType::REAL64;
-+
-+  if (n.find("C_INDEXING")>=0)
-+    data_type.array_index_ = LataDBDataType::C_INDEXING;
-+  if (n.find("F_INDEXING")>=0)
-+    data_type.array_index_ = LataDBDataType::F_INDEXING;
-+  if (n.find("NO_INDEXING")>=0)
-+    data_type.array_index_ = LataDBDataType::NOT_AN_INDEX;
-+  
-+  if (n.find("C_ORDERING")>=0)
-+    data_type.data_ordering_ = LataDBDataType::C_ORDERING;
-+  if (n.find("F_ORDERING")>=0)
-+    data_type.data_ordering_ = LataDBDataType::F_ORDERING;
-+
-+  if (n.find("F_MARKERS_NO")>=0)
-+    data_type.fortran_bloc_markers_ = LataDBDataType::NO_BLOC_MARKER;
-+  if (n.find("F_MARKERS_SINGLE")>=0)
-+    data_type.fortran_bloc_markers_ = LataDBDataType::BLOC_MARKERS_SINGLE_WRITE;
-+  if (n.find("F_MARKERS_MULTIPLE")>=0)
-+    data_type.fortran_bloc_markers_ = LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES;
-+
-+  // Fortran bloc markers are tested after INT32 and INT64 because they
-+  //  override the default value:
-+  if (n.find("MARKERS32")>=0)
-+    data_type.bloc_marker_type_ = LataDBDataType::INT32;
-+  if (n.find("MARKERS64")>=0)
-+    data_type.bloc_marker_type_ = LataDBDataType::INT64;
-+}
-+
-+// This must work together with read_format_string:
-+void build_format_string(const LataDBDataType & default_type, 
-+                         const LataDBDataType & type,
-+                         Motcle & n)
-+{
-+  n = "";
-+  if (type.msb_ != default_type.msb_) {
-+    switch(type.msb_) {
-+    case LataDBDataType::ASCII: n += "ASCII,"; break;
-+    case LataDBDataType::MSB_BIG_ENDIAN: n += "BIG_ENDIAN,"; break;
-+    case LataDBDataType::MSB_LITTLE_ENDIAN: n += "LITTLE_ENDIAN,"; break;
-+    default: 
-+      Journal() << "write master lata: invalid MSB" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+  }
-+
-+  // Is an integer type specified in the format string: then the default
-+  //  fortran bloc marker_type will be changed (look for MARKER32 in read_format_string)
-+  LataDBDataType::Type default_fortran_bloc_type = default_type.bloc_marker_type_;
-+
-+  if (type.type_ != default_type.type_) {
-+    switch(type.type_) {
-+    case LataDBDataType::INT32: n += "INT32,"; default_fortran_bloc_type = LataDBDataType::INT32; break;
-+    case LataDBDataType::INT64: n += "INT64,"; default_fortran_bloc_type = LataDBDataType::INT64; break;
-+    case LataDBDataType::REAL32: n += "REAL32,"; break;
-+    case LataDBDataType::REAL64: n += "REAL64,"; break;
-+    default:
-+      Journal() << "write master lata: invalid type" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+  }
-+
-+  // Specify indexing only if integer type:
-+  if ((type.type_ == LataDBDataType::INT32 || type.type_ == LataDBDataType::INT64)
-+      && type.array_index_ != default_type.array_index_)
-+    switch(type.array_index_) {
-+    case LataDBDataType::C_INDEXING: n += "C_INDEXING,"; break;
-+    case LataDBDataType::F_INDEXING: n += "F_INDEXING,"; break;
-+    case LataDBDataType::NOT_AN_INDEX: n += "NO_INDEXING,"; break;
-+    default:
-+      Journal() << "write master lata: invalid array_index_" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+
-+  if (type.data_ordering_ != default_type.data_ordering_) {
-+    switch(type.data_ordering_) {
-+    case LataDBDataType::C_ORDERING: n += "C_ORDERING,"; break;
-+    case LataDBDataType::F_ORDERING: n += "F_ORDERING,"; break;
-+    default:
-+      Journal() << "write master lata: invalid data_ordering_" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+  }
-+
-+  if (type.fortran_bloc_markers_ != default_type.fortran_bloc_markers_) {
-+    switch(type.fortran_bloc_markers_) {
-+    case LataDBDataType::NO_BLOC_MARKER: n += "F_MARKERS_NO,"; break;
-+    case LataDBDataType::BLOC_MARKERS_SINGLE_WRITE: n += "F_MARKERS_SINGLE,"; break;
-+    case LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES: n += "F_MARKERS_MULTIPLE,"; break;
-+    default:
-+      Journal() << "write master lata: invalid fortran_bloc_markers_" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+  }
-+  
-+  // Warning : tricky code to determine if we have to specify fortran bloc marker size:
-+  // If we specify a type_ and this type_ is an integer type, then the fortran bloc
-+  //  marker has implicitely the same type. We want to override this type if
-+  //  this assumption is wrong:
-+  if (type.fortran_bloc_markers_ != LataDBDataType::NO_BLOC_MARKER
-+      && default_fortran_bloc_type != type.bloc_marker_type_) {
-+    switch(type.bloc_marker_type_) {
-+    case LataDBDataType::INT32: n += "MARKER32,"; break;
-+    case LataDBDataType::INT64: n += "MARKER64,"; break;
-+    default:
-+      Journal() << "write master lata: invalid fortran bloc marker type" << endl;
-+      throw(LataDBError(LataDBError::INVALID_OPERATION));
-+    }
-+  }
-+
-+  // Remove trailing "," if any.
-+  n.prefix(",");
-+}
-+
-+// Description: returns the content of the third line of the file
-+// Exceptions: FILE_NOT_FOUND, BAD_HEADER (means that this is not a lata file)
-+Nom LataDB::read_master_file_options(const char *filename)
-+{
-+  LataDB db;
-+  EFichier is;
-+  db.read_master_file_header(filename, is);
-+  return db.software_id_; // Returns the content of the third line
-+}
-+
-+// Description:
-+//  Opens the file and reads the three firt lines.
-+//  Fills the following attributes of the class:
-+//   header_
-+//   case_
-+//   software_id_
-+//   old_style_lata_
-+void LataDB::read_master_file_header(const char *filename, EFichier & is)
-+{
-+  if (!filename)
-+    filename = ""; // Will trigger an error for sure !
-+  is.ouvrir(filename);
-+  if (!is.good()) { // isnogood ?
-+    Journal() << "LataDB::read_master_file_options failed opening file " << filename << endl;
-+    throw(LataDBError(LataDBError::FILE_NOT_FOUND));
-+  }
-+  Journal(verb_level-1) << "Trying to read master lata file format LATA " 
-+                        << filename << endl;
-+
-+  const entier bufsize=1024;
-+  char s[bufsize+1];
-+  // Lecture de l'entete:
-+  is.get_istream().getline(s, bufsize);
-+  check(is, "failed reading line 1");
-+  const char * lata_header = "LATA_V2.";
-+  old_style_lata_ = 0;
-+  if (strncmp(s, lata_header, strlen(lata_header)) == 0) {
-+    Journal(2) << "LataDB::read_master_file found lata format " << lata_header << endl;
-+    old_style_lata_ = 0;
-+  } else if ((Motcle(s).debute_par("Trio_U"))||(Motcle(s).debute_par("TRUST"))) {
-+    Journal(2) << "LataDB::read_master_file found old style lata format" << endl;
-+    old_style_lata_ = 1;
-+  } else {
-+    Journal(2) << "LataDB::read_master_file error reading header: expected LATA_V2.0 or TRUST" 
-+               << " instead of " << s << endl;
-+    throw(LataDBError(LataDBError::BAD_HEADER));
-+  }
-+  header_ = s;
-+  is.get_istream().getline(s, bufsize);
-+  check(is, "failed reading line 2");
-+  case_ = s;
-+  is.get_istream().getline(s, bufsize);
-+  check(is, "failed reading line 3");
-+  software_id_ = s; 
-+}
-+
-+int is_med(const char* filename)
-+{
-+  Motcle motcle_nom_fic(filename);
-+  
-+  if (motcle_nom_fic.finit_par(".med"))
-+    return 1;
-+  return 0;
-+}
-+
-+// Description: Reads the .lata database in the given file indicating than the 
-+//  associated data files will be found in directory "prefix".
-+//  If not empty, "prefix" must finish with a '/'.
-+//  For "prefix" and "filename", if they do not begin with '/', are relative to pwd.
-+// Exceptions: 
-+//  BAD_HEADER  means that the header found in this stream is not LATA_V2
-+//  READ_ERROR  means that an error has been found in the file (premature eof,
-+//              io error, bad keyword, ...)
-+//  FILE_NOT_FOUND means that, well, the lata file could not be opened
-+void LataDB::read_master_file(const char *prefix, const char *filename)
-+{
-+  reset();
-+
-+  if (!prefix)
-+    prefix = "";
-+  path_prefix_ = prefix;
-+
-+  if (is_med(filename)) 
-+    {
-+      path_prefix_ = ""; 
-+      read_master_file_med(prefix,filename);
-+      return;
-+    }
-+
-+  //Journal() << "RECOMPILED PLUGIN !" << endl;
-+
-+  EFichier is;
-+  read_master_file_header(filename, is);
-+
-+  // Defaults for lataV1
-+  default_type_int_.msb_ = LataDBDataType::ASCII;
-+  default_type_int_.type_ = LataDBDataType::INT32;
-+  default_type_int_.array_index_ = LataDBDataType::F_INDEXING;
-+  default_type_int_.data_ordering_ = LataDBDataType::C_ORDERING;
-+  default_type_int_.fortran_bloc_markers_ = LataDBDataType::BLOC_MARKERS_SINGLE_WRITE;
-+  default_type_int_.bloc_marker_type_ = LataDBDataType::INT32;
-+  default_float_type_ = LataDBDataType::REAL32;
-+  
-+  // Create timestep 0 (global domain and fields)
-+  timesteps_.add(LataDBTimestep());
-+  entier interface_file_not_found = 0;
-+  Nom nomlu;
-+  Motcle motlu;
-+  read_keyword(is, nomlu,motlu);
-+
-+  while (1) {
-+    if (motlu == "Fin") 
-+      {
-+        Journal(verb_level) << "End of file by FIN" << endl;
-+        break;
-+      } 
-+    else if (motlu == "Format") 
-+      {
-+        Journal(verb_level) << "Reading Format " << endl;
-+        read_keyword(is, nomlu, motlu);
-+        LataDBDataType::Type tmp_int_type;
-+        read_format_string(motlu, default_type_int_, tmp_int_type, default_float_type_);
-+        default_type_int_.type_ = tmp_int_type;
-+        read_keyword(is, nomlu, motlu);
-+      } 
-+    else if (motlu == "Temps") 
-+      {
-+        LataDBTimestep & t = timesteps_.add(LataDBTimestep());
-+        const entier i = timesteps_.size() - 1;
-+        is >> t.time_;
-+        check(is, "failed reading time parameter");
-+        Journal(verb_level) << "Reading timestep " << i << " t=" << t.time_ << endl;
-+        read_keyword(is, nomlu, motlu);
-+      }
-+    else if (motlu == "Geom")
-+      {
-+        // This is the new syntax to declare a geometry.
-+        // nodes, elements faces, files are declared in separate "champ" entries
-+        LataDBGeometry dom;
-+        dom.timestep_ = timesteps_.size()-1;
-+        is >> dom.name_;
-+        check(is, "failed reading domain name");
-+        Journal(verb_level) << "New domain " << dom.name_ << endl;
-+        while (1) {
-+          read_keyword(is, nomlu, motlu);
-+          if (motlu.debute_par("type_elem=")) {
-+            read_string_param(is, motlu, dom.elem_type_, "error reading type_elem parameter");
-+            Journal(verb_level+1) << " type_elem=" << dom.elem_type_ << endl;
-+          } else
-+            break;
-+        }
-+        if (dom.elem_type_ == "") {
-+          Journal() << "Error reading Geometry: missing type_elem parameter" << endl;
-+          throw(LataDBError(LataDBError::READ_ERROR));
-+        }
-+        add(timesteps_.size() - 1, dom);
-+      }
-+    else if (motlu == "Geometrie") 
-+      {
-+        // Declare a geometry: nodes and elements are embedded in a single file described here
-+        // (legacy syntax)
-+        LataDBGeometry dom;
-+        LataDBField som;
-+        // Name
-+        is >> dom.name_;
-+        dom.timestep_ = timesteps_.size()-1;
-+        check(is, "failed reading domain name");
-+        Journal(verb_level) << "Reading domain " << dom.name_ << endl;
-+        som.name_ = "SOMMETS";
-+        som.geometry_ = dom.name_;
-+        // Filenames
-+        Nom n;
-+        is >> n;
-+        check(is, "failed reading domain filename");
-+        som.filename_ = n;
-+        long long nb_elem = -1;
-+        long long nb_faces = -1;
-+        entier nproc = -1;
-+        Nom file_decal_som;
-+        Nom file_decal_elem;
-+        Nom file_decal_faces;
-+        while (1) {
-+          read_keyword(is, nomlu, motlu);
-+          if (motlu.debute_par("nb_som_tot=")) {
-+            read_long_param(is, motlu, som.size_, "bad nb_som_tot parameter");
-+          } else if (motlu.debute_par("nb_elem_tot=")) {
-+            read_long_param(is, motlu, nb_elem, "bad nb_elem_tot parameter");
-+          } else if (motlu.debute_par("type_elem=")) {
-+            read_string_param(is, motlu, dom.elem_type_, "error reading type_elem parameter");
-+          } else if (motlu.debute_par("nb_faces_tot=")) {
-+            read_long_param(is, motlu, nb_faces, "bad nb_elem_tot parameter");
-+          } else if (motlu.debute_par("format=")) {
-+            Motcle fmt;
-+            read_string_param(is, motlu, fmt, "bad format parameter");
-+            if (fmt=="BINARY") {
-+              default_type_int_.msb_ = LataDBDataType::machine_msb_;
-+            }
-+          } else if (motlu.debute_par("joints_sommets")) {
-+            read_keyword(is, nomlu, motlu);
-+            read_int_param(is, motlu, nproc, "bad nproc parameter");
-+            read_keyword(is, nomlu, motlu);
-+            read_string_param(is, nomlu, file_decal_som, "bad decalage file parameter");
-+            Journal(verb_level+1) << " decal_som " << nproc;
-+          } else if (motlu.debute_par("joints_elements")) {
-+            read_keyword(is, nomlu, motlu);
-+            read_int_param(is, motlu, nproc, "bad nproc parameter");
-+            read_keyword(is, nomlu, motlu);
-+            read_string_param(is, nomlu, file_decal_elem, "bad decalage file parameter");            
-+            Journal(verb_level+1) << " decal_elem " << nproc;
-+          } else if (motlu.debute_par("joints_faces")) {
-+            read_keyword(is, nomlu, motlu);
-+            read_int_param(is, motlu, nproc, "bad nproc parameter");
-+            read_keyword(is, nomlu, motlu);
-+            read_string_param(is, nomlu, file_decal_faces, "bad decalage file parameter");            
-+            Journal(verb_level+1) << " decal_faces " << nproc;
-+          } else
-+            break;
-+          Journal(verb_level+1) << " " << motlu << endl;
-+        }
-+        som.datatype_ = default_type_float();
-+        LataDBField elem(som);
-+        elem.size_ = nb_elem;
-+        elem.datatype_ = default_type_int_;
-+        LataDBField faces(elem); // copy filename_
-+        faces.size_ = nb_faces;
-+        LataDBField elem_faces(elem);
-+        elem_faces.size_ = nb_elem;
-+        elem.name_ = "ELEMENTS";
-+        faces.name_ = "FACES";
-+        elem_faces.name_ = "ELEM_FACES";
-+        elem.geometry_ = dom.name_;
-+        faces.geometry_ = dom.name_;
-+        elem_faces.geometry_ = dom.name_;
-+
-+        if (som.size_ < 0 || elem.size_ < 0) {
-+          Journal() << "Error reading Geometry: missing or bad nb_som_tot or nb_elem_tot parameter" << endl;
-+          throw(LataDBError(LataDBError::READ_ERROR));
-+        }
-+        if (dom.elem_type_ == "") {
-+          Journal() << "Error reading Geometry: missing type_elem parameter" << endl;
-+          throw(LataDBError(LataDBError::READ_ERROR));
-+        }
-+        get_element_data(dom.elem_type_, som.nb_comp_, elem.nb_comp_, faces.nb_comp_, elem_faces.nb_comp_);
-+
-+        // Add domain and som which are complete. We need the "som" to be in the database
-+        //  for the "old lata 2D hack" in read_data2_()
-+        add(timesteps_.size() - 1, dom);
-+        add(timesteps_.size() - 1, som);
-+        // Parse the geometry file to find file_offsets 
-+        {
-+          Journal(verb_level) << " Parsing geometry file to find file offset of data blocs" << endl;
-+          LataDataFile f(internal_data_buffer_, path_prefix_, som.filename_,som.datatype_.msb_);
-+          IntTab * null = 0; // Null pointer => don't actually read the data
-+          read_data2_(f, som, null);
-+          elem.datatype_.file_offset_ = f.position();
-+          Journal(verb_level+1) << "  elements at file offset " << elem.datatype_.file_offset_ << endl;
-+          if (faces.size_ >= 0) {
-+            read_data2_(f, elem, null);
-+            faces.datatype_.file_offset_ = f.position();
-+            Journal(verb_level+1) << "  faces at file offset " << faces.datatype_.file_offset_ << endl;
-+            read_data2_(f, faces, null);
-+            elem_faces.datatype_.file_offset_ = f.position();
-+            Journal(verb_level+1) << "  elem_faces at file offset " << elem_faces.datatype_.file_offset_ << endl;
-+          }
-+        }
-+
-+        add(timesteps_.size() - 1, elem);
-+        if (faces.size_ >= 0) {
-+          Journal(verb_level+1) << " Adding FACES and ELEM_FACES " << faces.size_ << endl;
-+          add(timesteps_.size() - 1, faces);
-+          add(timesteps_.size() - 1, elem_faces);
-+        }
-+        if (nproc > -1) {
-+          LataDBField joint(elem);
-+          joint.datatype_.file_offset_ = 0;
-+          joint.size_ = nproc;
-+          joint.nb_comp_ = 2;
-+          joint.reference_ = "";
-+          joint.name_ = "JOINTS_SOMMETS";
-+          joint.filename_ = file_decal_som;
-+          add(timesteps_.size() - 1, joint);
-+          joint.reference_ = "";
-+          joint.name_ = "JOINTS_ELEMENTS";
-+          joint.filename_ = file_decal_elem;
-+          add(timesteps_.size() - 1, joint);
-+          if (file_decal_faces != "??") {
-+            joint.reference_ = "";
-+            joint.name_ = "JOINTS_FACES";
-+            joint.filename_ = file_decal_faces;
-+            add(timesteps_.size() - 1, joint);
-+          }
-+        }
-+      }
-+    else if (motlu == "Champ")
-+      {
-+        LataDBField field;
-+        field.datatype_ = default_type_float();
-+        is >> field.name_;
-+        check(is, "failed reading field name");
-+        Journal(verb_level) << "Reading field " << field.name_ << endl; 
-+        Nom n;
-+        is >> n;
-+        check(is, "failed reading field filename");
-+        field.filename_ = n;
-+        Journal(verb_level+1) << " filename=" << n << endl;
-+
-+        if ((field.name_ == "INTERFACES" || field.name_ == "PARTICULES") && old_style_lata_) {
-+          // This is the old dirty syntax for moving meshes
-+
-+          Journal(verb_level+1) << " Parsing an oldstyle interface file" << endl;
-+          // Open the file and read the content
-+          try {
-+            LataDBDataType::MSB msb = default_type_int_.msb_;
-+            LataDataFile f(internal_data_buffer_, path_prefix_, field.filename_,msb);
-+           
-+            LataDBDataType::Type int_type = default_type_int_.type_;
-+            LataDBDataType::Type float_type = default_float_type_;
-+            LataDBGeometry dom;
-+            dom.timestep_ = timesteps_.size()-1;
-+            dom.name_ = field.name_;
-+            LataDBField som;
-+            som.name_ = "SOMMETS";
-+            som.filename_ = field.filename_;
-+            som.geometry_ = field.name_;
-+            som.datatype_ = default_type_float();
-+            som.datatype_.fortran_bloc_markers_ = LataDBDataType::NO_BLOC_MARKER;
-+            ArrOfInt tmptab(2);
-+            bloc_read(f, msb, int_type, tmptab);
-+            som.nb_comp_ = tmptab[0]; // dimension
-+            som.size_ = tmptab[1]; // nb nodes
-+            Journal(verb_level+1) << " Nb nodes=" << som.size_ << " dimension=" << som.nb_comp_ << endl;
-+            som.datatype_.file_offset_ = f.position();
-+            bloc_read_skip(f, msb, float_type, som.size_ * som.nb_comp_);
-+            LataDBField elem;
-+            elem.name_ = "ELEMENTS";
-+            elem.filename_ = field.filename_;
-+            elem.geometry_ = field.name_;
-+            elem.datatype_ = default_type_int_;
-+            elem.datatype_.fortran_bloc_markers_ = LataDBDataType::NO_BLOC_MARKER;
-+            elem.datatype_.array_index_ = LataDBDataType::C_INDEXING;
-+            bloc_read(f, msb, int_type, tmptab);
-+            elem.nb_comp_ = tmptab[0];
-+            elem.size_ = tmptab[1];
-+            Journal(verb_level+1) << " Nb elements=" << elem.size_ << " shape=" << elem.nb_comp_ << endl;
-+            if (field.name_ == "PARTICULES") {
-+              // Special case for front-tracking markers
-+              Journal(verb_level+1) << " PARTICULES: element type = point" << endl;
-+              dom.elem_type_ = "POINT";
-+            } else {
-+              if (elem.nb_comp_ == 2)
-+                dom.elem_type_ = "SEGMENT";
-+              else if (elem.nb_comp_ == 3)
-+                dom.elem_type_ = "TRIANGLE_3D";
-+              else {
-+                Journal() << "Error reading an interface: invalid element shape " << elem.nb_comp_ << endl;
-+                throw(LataDBError(LataDBError::READ_ERROR));
-+              }
-+            }
-+            elem.datatype_.file_offset_ = f.position();
-+            bloc_read_skip(f, msb, int_type, elem.size_ * elem.nb_comp_);
-+            add(timesteps_.size() - 1, dom);
-+            add(timesteps_.size() - 1, som);
-+            add(timesteps_.size() - 1, elem);
-+            // Read components:
-+            while(1) {
-+              LataDBField fieldbis;
-+              f.set_encoding(msb, int_type);
-+              f.set_exception(0);
-+              f >> fieldbis.localisation_;
-+              f.set_exception(1);
-+              if (fieldbis.localisation_ == "")
-+                break;
-+              fieldbis.filename_ = som.filename_;
-+              fieldbis.geometry_ = som.geometry_;
-+              fieldbis.datatype_ = som.datatype_;
-+              tmptab.resize_array(1);
-+              bloc_read(f, msb, int_type, tmptab);
-+              fieldbis.nb_comp_ = tmptab[0];
-+              if (fieldbis.nb_comp_ == som.nb_comp_)
-+                fieldbis.nature_ = LataDBField::VECTOR;
-+              else
-+                fieldbis.nature_ = LataDBField::SCALAR;
-+              f >> fieldbis.name_;
-+              if (fieldbis.localisation_ == "SOM") {
-+                fieldbis.size_ = som.size_;
-+              } else {
-+                fieldbis.size_ = elem.size_;
-+              }
-+              Journal(verb_level+1) << " Interface field " << fieldbis.localisation_ << " "
-+                                    << fieldbis.name_ << endl;
-+              fieldbis.datatype_.file_offset_ = f.position();
-+              bloc_read_skip(f, msb, float_type, fieldbis.size_ * fieldbis.nb_comp_);
-+              add(timesteps_.size() - 1, fieldbis);
-+            }
-+          }
-+          catch (LataDBError err) {
-+            // If file is missing, issue the "missing file" message and continue
-+            if (err.err_ != LataDBError::FILE_NOT_FOUND)
-+              throw;
-+            else
-+              interface_file_not_found++;
-+          }
-+          // Read next keyword:
-+          read_keyword(is, nomlu, motlu);
-+        } else {
-+          if (old_style_lata_) {
-+            // Old (legacy) syntax for champs: we must guess the properties from the filename!
-+
-+            field.datatype_ = default_type_float();
-+            // Extract other data from filename (nb_comp_, localisation_, etc)
-+            // find geometry name
-+            Noms dom_names = geometry_names(0 /* timestep */);
-+            const entier nb_geom = dom_names.size();
-+            entier i;
-+            for (i = 0; i < nb_geom; i++) {
-+              Nom testname(".");
-+              testname += dom_names[i];
-+              testname += ".";
-+              if (Motcle(n).find(testname)>=0)
-+                break;
-+            }
-+            if (i == nb_geom) {
-+              Journal() << "Error in LataDB_V1::read_master_file: could not find domain for Champ " << n << endl;
-+              throw(LataDBError(LataDBError::READ_ERROR));
-+            }
-+            Journal(verb_level+1) << " geometry=" << dom_names[i] << endl;
-+            const LataDBGeometry & dom = get_geometry(0, dom_names[i]);
-+            field.geometry_ = dom_names[i];
-+            lata_v1_get_localisation(n, field.localisation_);
-+            Journal(verb_level+1) << " localisation=" << field.localisation_ << endl;
-+            const LataDBField & sommets = get_field(0 /* timestep */, dom_names[i], "SOMMETS", "*");
-+            const entier dim = sommets.nb_comp_;
-+            field.nb_comp_ = lata_v1_get_nb_comp(field.name_, field.localisation_, dom, dim, field.nature_, field.datatype_.data_ordering_);
-+            Journal(verb_level+1) << " composantes=" << field.nb_comp_ << endl;
-+            if (field.localisation_.debute_par("SOM"))
-+              field.size_ = sommets.size_;
-+            else if (field.localisation_.debute_par("ELEM"))
-+              field.size_ = get_field(0 /* timestep */, dom_names[i], "ELEMENTS", "*").size_;
-+            else if (field.localisation_.debute_par("FACE"))
-+              field.size_ = get_field(0 /* timestep */, dom_names[i], "FACES", "*").size_;
-+            else {
-+              Journal() << "Error in LataDB_V1::read_master_file: invalid localisation "
-+                        << field.localisation_ << endl;
-+              throw(LataDBError(LataDBError::READ_ERROR));
-+            }
-+            // Read next keyword:
-+            read_keyword(is, nomlu, motlu);
-+          } else {
-+            // NEW LATAV2 SYNTAX for fields
-+            // The default data type is "float_"
-+            field.datatype_ = default_type_float();
-+            field.size_ = -1;
-+            while(1) {
-+              read_keyword(is, nomlu, motlu);
-+              if (motlu.debute_par("geometrie=")) {
-+                read_string_param(is, nomlu, field.geometry_, "error reading geometrie parameter");
-+                // Check that the geometry exists
-+                get_geometry(timesteps_.size() - 1, field.geometry_, FIRST_AND_CURRENT);
-+              } else if (motlu.debute_par("composantes=")) {
-+                read_int_param(is, motlu, field.nb_comp_, "bad composantes parameter");
-+              } else if (motlu.debute_par("localisation=")) {
-+                read_string_param(is, motlu, field.localisation_, "error reading localisation parameter");
-+              } else if (motlu.debute_par("format=")) {
-+                LataDBDataType::Type tmp_int_type; // Unused
-+                LataDBDataType::Type tmp_float_type; // unused
-+                read_format_string(motlu, field.datatype_, tmp_int_type, tmp_float_type);
-+              } else if (motlu.debute_par("size=")) {
-+                read_long_param(is, motlu, field.size_, "error reading size parameter");
-+              } else if (motlu.debute_par("file_offset=")) {
-+                read_long_param(is, motlu, field.datatype_.file_offset_, "error reading file offset parameter");
-+              } else if (motlu.debute_par("nature=")) {
-+                Motcle nat;
-+                read_string_param(is, motlu, nat, "error reading nature parameter");
-+                if (nat.find("SCALAR")>=0)
-+                  field.nature_ = LataDBField::SCALAR;
-+                else if (nat.find("VECTOR")>=0)
-+                  field.nature_ = LataDBField::VECTOR;
-+                else {
-+                  Journal() << "Error in LataDB_V1::read_master_file: invalid nature "
-+                            << nat << endl;
-+                  throw(LataDBError(LataDBError::READ_ERROR));
-+                }
-+              } else if (motlu.debute_par("reference=")) {
-+                Nom ref;
-+                read_string_param(is, motlu, ref, "error reading reference parameter");
-+                field.reference_ = ref;
-+              } else if (motlu.debute_par("noms_compo=")) {
-+                Noms ref;
-+                read_noms_param(is, motlu, ref, "error reading noms_compo");
-+                Journal(verb_level+1)<<"noms_compos pas interprete "<<motlu<<endl;
-+              }
-+              else
-+                break;
-+              Journal(verb_level+1) << " " << motlu << endl;
-+            }
-+            if (field.size_ < 0) {
-+              // This is untested. Deactivate for the moment.
-+              //              Journal(verb_level) << " No size parameter given. Take size of the localisation field: ";
-+              // if (field_exists(timesteps_.size() - 1, field.geometry_, field.localisation_, FIRST_AND_CURRENT)) {
-+              // field.size_ = get_field(timesteps_.size() - 1, field.geometry_, field.localisation_, FIRST_AND_CURRENT).size_;
-+              // } else {
-+              Journal() << " Error, no size parameter for field " << field.name_ << " and localisation " << field.localisation_ 
-+                        << " does not match any existing field" << endl;
-+              throw(LataDBError(LataDBError::READ_ERROR));
-+              // }
-+            }
-+          }
-+          add(timesteps_.size() - 1, field);
-+        }
-+      }
-+    else if (motlu == "import_file")
-+      {
-+        // Load another lata master file recursively and merge timesteps
-+        Nom filenamebis;
-+        is >> filenamebis; // Read filename (without prefix)
-+        LataDB newdb;
-+        Nom filename2(prefix);
-+        filename2 += filenamebis;
-+        Journal(verb_level) << "Importing another lata database from file: " << filename << endl;
-+        newdb.read_master_file(prefix, filename2);
-+      }
-+    else
-+      {
-+        Journal() << "Error: unknown keyword: " << motlu << endl;
-+        throw(LataDBError(LataDBError::READ_ERROR));
-+      }
-+  }
-+  if (interface_file_not_found)
-+    throw LataDBError(LataDBError::FILE_NOT_FOUND);
-+}
-+
-+// Read field data from file f into data array "data".
-+//  If data is a null pointer, just skip the data bloc and leave the file pointer
-+//  at the beginning of the next data bloc (used to parse the geometry file if file_offset
-+//  are not specified in the lata master file)
-+template <class C_Tab>
-+void LataDB::read_data2_(LataDataFile & f,
-+                         const LataDBField & fld,
-+                         C_Tab * const data, // const pointer to non const data !
-+                         long long debut, entier n, const ArrOfInt *lines_to_read) const
-+{
-+
-+  if (is_med(fld.filename_))
-+    {
-+      read_data2_med_(fld,data,debut,n,lines_to_read);
-+      return;
-+    }
-+  // Si file_offset_ vaut 0 on y va car on peut avoir lu a un autre endroit avant.
-+  if (fld.datatype_.file_offset_ >= 0) {
-+    Journal(verb_level_data_bloc+1) << " Seeking at position " << fld.datatype_.file_offset_ << endl; 
-+    f.seek(fld.datatype_.file_offset_, LataDataFile::ABSOLUTE);
-+  }
-+  if (n < 0) {
-+    if (lines_to_read)
-+      n = lines_to_read->size_array();
-+    else
-+      n = fld.size_;
-+  }
-+
-+  // in old lata format, 2d data is written as 3d:
-+  // Yeah: dirty specs make dirty code...
-+  long long size_in_file = fld.size_;
-+  entier nb_comp_in_file = fld.nb_comp_;
-+  // entier old_lata_hack = 0;
-+  if (old_style_lata_ && (Motcle(fld.geometry_) != "INTERFACES") && (Motcle(fld.geometry_) != "PARTICULES")) {
-+    const LataDBField & som = get_field(0, fld.geometry_, "SOMMETS", "*");
-+    if (som.nb_comp_ == 2) {
-+      //old_lata_hack = 1;
-+      if (fld.name_ == "ELEMENTS") {
-+        nb_comp_in_file *= 2;
-+      } else if (fld.name_ == "SOMMETS") {
-+        nb_comp_in_file = 3; // all coordinates in 3D
-+        size_in_file *= 2;
-+      } // else if (fld.localisation_.debute_par("SOM")) {
-+        // size_in_file *= 2;
-+      // }
-+      Journal(verb_level_data_bloc+1) << "Old lata hack for 2D" << endl;
-+    }
-+  }
-+  
-+  if (fld.nb_comp_ < 0 || fld.size_ < 0) {
-+    Journal() << "Error in LataDB::read_data_: nb_comp_ or size_ not initialized for component " << fld.name_ << endl;
-+    throw;
-+  }
-+
-+  if ((!lines_to_read) && (debut < 0 || debut + n > fld.size_)) {
-+    Journal() << "Error in LataDB::read_data_: [debut,debut+n] invalid range (size=" << fld.size_ << ")" << endl;
-+    throw;
-+  }
-+
-+  if (data)
-+    data->resize(n, nb_comp_in_file);
-+
-+  switch (fld.datatype_.data_ordering_) {
-+  case LataDBDataType::C_ORDERING:
-+    // data written like this: tab(0,0) tab(0,1) tab(0,2) ... tab(1,0) tab(1,1) tab(1,2) ...
-+    if (fld.datatype_.fortran_bloc_markers_ == LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES) {
-+      Journal() << "Error in LataDB::read_data_: fortran_bloc_markers_=MULTIPLE_WRITES is incompatible with data_ordering=C" << endl;
-+      throw LataDBError(LataDBError::DATA_ERROR);
-+    }
-+    skip_blocksize(f, fld.datatype_);
-+    if (data) {
-+      if (!lines_to_read) {
-+        bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (FileOffset)debut * nb_comp_in_file);
-+        bloc_read(f, fld.datatype_.msb_, fld.datatype_.type_, *data);
-+        bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (FileOffset)(size_in_file - debut - n) * nb_comp_in_file);
-+      } else {
-+        C_Tab tmp;
-+        // Read 1024 lines chunks at a time even if only some values are needed inside
-+        long long chunk_size = 0;
-+        long long current_chunk_pos = 0;
-+        long long current_file_pos = 0;
-+        const entier nl = lines_to_read->size_array();
-+        for (entier i = 0; i < nl; i++) {
-+          const long long next_line = (*lines_to_read)[i];
-+          // Is this line in the current chunk ?
-+          if (next_line >= current_chunk_pos + chunk_size) {
-+            // No => read the chunk containing this line
-+            chunk_size = size_in_file - next_line;
-+            if (chunk_size > 1024)
-+              chunk_size = 1024;
-+            tmp.resize(chunk_size, nb_comp_in_file);
-+            bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (next_line - current_file_pos) * nb_comp_in_file);
-+            bloc_read(f, fld.datatype_.msb_, fld.datatype_.type_, tmp);
-+            current_chunk_pos = next_line;
-+            current_file_pos = next_line + chunk_size;
-+          }
-+          // Extract data from tmp array
-+          const long long tmp_index = next_line - current_chunk_pos;
-+          for (entier j = 0; j < nb_comp_in_file; j++)
-+            (*data)(i, j) = tmp(tmp_index, j);
-+        }
-+        if (current_file_pos != size_in_file)
-+          bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (size_in_file - current_file_pos) * nb_comp_in_file);
-+      }
-+    } else {
-+      // just skip the data
-+      bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, size_in_file *  nb_comp_in_file);
-+    }
-+    skip_blocksize(f, fld.datatype_);
-+    break;
-+  case LataDBDataType::F_ORDERING:
-+    {
-+      // data written like this: tab(0,0) tab(1,0) tab(2,0) ... tab(0,1) tab(1,1) tab(2,1) ... tab(0,2) tab(1,2) tab(2,2) ...
-+      entier multiple_bloc_markers = (fld.datatype_.fortran_bloc_markers_ == LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES);
-+      // reverse rows and columns of the array
-+      C_Tab tmp;
-+      if (!multiple_bloc_markers)
-+        skip_blocksize(f, fld.datatype_);
-+      for (entier i = 0; i < nb_comp_in_file; i++) {
-+        if (multiple_bloc_markers)
-+          skip_blocksize(f, fld.datatype_);
-+        if (data) {
-+          if (!lines_to_read) {
-+            tmp.resize(n, 1);
-+            bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, debut);
-+            bloc_read(f, fld.datatype_.msb_, fld.datatype_.type_, tmp);
-+            bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, size_in_file - debut - n);
-+            for (entier j = 0; j < n; j++)
-+              (*data)(j, i) = tmp(j, 0);
-+          } else {
-+
-+            // Read 1024 lines chunks at a time even if only some values are needed inside
-+            long long chunk_size = 0;
-+            long long current_chunk_pos = 0;
-+            long long current_file_pos = 0;
-+            const entier nl = lines_to_read->size_array();
-+            for (entier j = 0; j < nl; j++) {
-+              const long long next_line = (*lines_to_read)[j];
-+              // Is this line in the current chunk ?
-+              if (next_line >= current_chunk_pos + chunk_size) {
-+                // No => read the chunk containing this line
-+                chunk_size = size_in_file - next_line;
-+                if (chunk_size > 1024)
-+                  chunk_size = 1024;
-+                tmp.resize(chunk_size, 1);
-+                bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (next_line - current_file_pos));
-+                bloc_read(f, fld.datatype_.msb_, fld.datatype_.type_, tmp);
-+                current_chunk_pos = next_line;
-+                current_file_pos = next_line + chunk_size;
-+              }
-+              // Extract data from tmp array
-+              const entier tmp_index = (entier)(next_line - current_chunk_pos);
-+              (*data)(j, i) = tmp(tmp_index, 0);
-+            }
-+            if (current_file_pos != size_in_file)
-+              bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, (size_in_file - current_file_pos));
-+          }
-+        } else {
-+          bloc_read_skip(f, fld.datatype_.msb_, fld.datatype_.type_, size_in_file);
-+        }
-+        if (multiple_bloc_markers)
-+          skip_blocksize(f, fld.datatype_);
-+      }
-+      if (!multiple_bloc_markers)
-+        skip_blocksize(f, fld.datatype_);
-+      break;
-+    }
-+  default:
-+    Journal() << "Error in LataDB::read_data_: data_ordering not implemented" << endl;
-+    throw;
-+  }
-+  
-+  // old lata 2d hack :
-+  if (data && nb_comp_in_file != fld.nb_comp_) {
-+    // drop column in data array
-+    C_Tab tmp(*data);
-+    data->resize(n, fld.nb_comp_);
-+    for (entier i = 0; i < n; i++) 
-+      for (entier j = 0; j < fld.nb_comp_; j++)
-+        (*data)(i,j) = tmp(i,j);
-+  }
-+}
-+
-+// Description: 
-+//  Read n * fld.nb_comp_ values in the file filename_, starting from debut * fld.nb_comp_
-+template <class C_Tab>
-+void LataDB::read_data_(const LataDBField & fld, 
-+                        C_Tab & data, long long debut, entier n) const
-+{
-+  Journal(verb_level_data_bloc) << "LataDB::read_data(" << fld.timestep_ << "," << fld.uname_
-+                                << ") Reading " << path_prefix_ << fld.filename_ << " start at " << debut << " size "
-+                                << n << endl;
-+
-+  LataDataFile f(internal_data_buffer_, path_prefix_, fld.filename_,fld.datatype_.msb_);
-+  read_data2_(f, fld, &data, debut, n);
-+
-+}
-+
-+// Description: 
-+//  Read n * fld.nb_comp_ values in the file filename_, starting from debut * fld.nb_comp_
-+template <class C_Tab>
-+void LataDB::read_data_(const LataDBField & fld,
-+                        C_Tab & data, const ArrOfInt & lines_to_read) const
-+{
-+  Journal(verb_level_data_bloc) << "LataDB::read_data(" << fld.timestep_ << "," << fld.uname_
-+                                << ") Reading " << path_prefix_ << fld.filename_ << ",  " << lines_to_read.size_array() << " non contiguous lines" 
-+                                << endl;
-+
-+  LataDataFile f(internal_data_buffer_, path_prefix_, fld.filename_,fld.datatype_.msb_);
-+  read_data2_(f, fld, &data, -1, -1, &lines_to_read);
-+}
-+
-+// Description: reads n * nb_comp values in the file filename_ starting from debut*nb_comp_
-+//  If array_index is F_STYLE, substract 1 to all values.
-+void LataDB::read_data(const LataDBField & fld, IntTab & data, long long debut, entier n) const
-+{
-+  read_data_(fld, data, debut, n);
-+  if (fld.datatype_.array_index_ == LataDBDataType::F_INDEXING) {
-+    ArrOfInt & data2 = data;
-+    const entier n2 = data2.size_array();
-+    for (entier i = 0; i < n2; i++)
-+      data2[i]--;
-+  }
-+}
-+
-+// Description: reads n * nb_comp values in the file filename_ starting from debut*nb_comp_
-+void LataDB::read_data(const LataDBField & fld, DoubleTab & data, long long debut, entier n) const
-+{
-+  Journal() << "LataDB::read_data not coded for double" << endl;
-+  throw;
-+}
-+
-+void LataDB::read_data(const LataDBField & fld, FloatTab & data, long long debut, entier n) const
-+{
-+  read_data_(fld, data, debut, n);
-+}
-+
-+// Description: reads lines_to_read.size_array() * nb_comp values.
-+//  If array_index is F_STYLE, substract 1 to all values.
-+void LataDB::read_data(const LataDBField & fld, IntTab & data, const ArrOfInt & lines_to_read) const
-+{
-+  read_data_(fld, data, lines_to_read);
-+  if (fld.datatype_.array_index_ == LataDBDataType::F_INDEXING) {
-+    ArrOfInt & data2 = data;
-+    const entier n = data2.size_array();
-+    for (entier i = 0; i < n; i++)
-+      data2[i]--;
-+  }
-+}
-+
-+// Description: reads lines_to_read.size_array() * nb_comp values.
-+void LataDB::read_data(const LataDBField & fld, DoubleTab & data, const ArrOfInt & lines_to_read) const
-+{
-+  Journal() << "LataDB::read_data not coded for double" << endl;
-+  throw;
-+}
-+
-+// Description: reads lines_to_read.size_array() * nb_comp values.
-+void LataDB::read_data(const LataDBField & fld, FloatTab & data, const ArrOfInt & lines_to_read) const
-+{
-+  read_data_(fld, data, lines_to_read);
-+}
-+
-+
-+// Description: copy the source LataDB object, keeping only timesteps, geometries and fields
-+//  that are specified (timestep 0 is always included, do not put it in the list).
-+//  field_nms can contain field.name_ (like VITESSE), or extended name with localisation
-+//  (like VITESSE_ELEM)
-+void LataDB::filter_db(const LataDB & source,
-+                       const Motcles & geometry_nms,
-+                       const Motcles & field_nms,
-+                       const ArrOfInt & timesteps)
-+{
-+  path_prefix_ = source.path_prefix_;
-+  header_ = source.header_;
-+  case_ = source.case_;
-+  software_id_ = source.software_id_;
-+  old_style_lata_ = source.old_style_lata_;
-+  default_type_int_ = source.default_type_int_;
-+  default_float_type_ = source.default_float_type_;
-+  
-+  const entier nb_tsteps = timesteps.size_array();
-+  for (entier it = 0; it < nb_tsteps + 1; it++) {
-+    entier src_tstep = 0;
-+    if (it > 0)
-+      src_tstep = timesteps[it-1];
-+    LataDBTimestep & tstep = timesteps_.add(LataDBTimestep());
-+    tstep.time_ = source.get_time(src_tstep);
-+    // Copy geometries
-+    Motcles geoms = noms_to_motcles(source.geometry_names(src_tstep));
-+    entier ig;
-+    for (ig = 0; ig < geoms.size(); ig++)
-+      if (geometry_nms.rang(geoms[ig]) >= 0)
-+        tstep.geoms_.add(source.get_geometry(src_tstep, geoms[ig]));
-+    // Copy fields
-+    geoms = noms_to_motcles(geometry_names(nb_timesteps()-1, FIRST_AND_CURRENT));
-+    for (ig = 0; ig < geoms.size(); ig++) {
-+      LataVector<Field_UName> unames = source.field_unames(src_tstep, geoms[ig], "*");
-+      for (entier i_f = 0; i_f < unames.size(); i_f++) {
-+        const LataDBField & src = source.get_field(src_tstep, unames[i_f]);
-+        Nom name_loc = src.name_;
-+        name_loc += "_";
-+        name_loc += src.localisation_;
-+        if (field_nms.rang(src.name_) >= 0 || field_nms.rang(name_loc) >= 0) 
-+          tstep.fields_.add(src);
-+      }
-+    }
-+  }
-+}
-+
-+// Description: set the default value of the path prefix where write_data() will write the data
-+// Warning: there is no check that the master lata file is actually written at the same place 
-+//  and that all the files and data blocks mentionned in the database actually exist.
-+// For the file_offset_ field, -2 is considered "unknown".
-+void LataDB::set_path_prefix(const char * s)
-+{
-+  path_prefix_ = s;
-+}
-+
-+#define UPDATE_MACRO(x,unknown) if (((old_type.x==unknown)||(type.x==old_type.x))&&(new_type.x!=unknown)) type.x=new_type.x
-+
-+// Description: changes the data type of all fields in the database.
-+//  The property "x" is changed to "new_type.x" if "new_type.x" is not "unknown"
-+//  and if "old_type.x" is "unknown" or "equal to the previous property" 
-+// Example: convert all data to ASCII:
-+//   LataDBDataType old_type; // All defaults to "unknown" => we update all fields
-+//   LataDBDataType new_type;
-+//   new_type.msb_ = LataDBDataType::ASCII; // Change msb_ property to ASCII:
-+// Example 2: change all REAL32 data to REAL64
-+//   LataDBDataType old_type;
-+//   old_type.type_ = LataDBDataType::REAL32;
-+//   LataDBDataType new_type;
-+//   new_type.msb_ = LataDBDataType::REAL64;
-+void LataDB::change_all_data_types(const LataDBDataType & old_type, const LataDBDataType & new_type)
-+{
-+  const entier nb_tsteps = timesteps_.size();
-+  for (entier src_tstep = 0; src_tstep < nb_tsteps; src_tstep++) {
-+    LataVector<LataDBField> & fields = timesteps_[src_tstep].fields_;
-+    const entier nb_fields = fields.size();
-+    for (entier i_field = 0; i_field < nb_fields; i_field++) {
-+      LataDBDataType & type = fields[i_field].datatype_;
-+      // For each field, if "old_type" is "unknown" or equal to the previous value,
-+      //  and if "new_type" is not "unknown, then update the field
-+      UPDATE_MACRO(msb_, LataDBDataType::UNKNOWN_MSB);
-+      UPDATE_MACRO(type_, LataDBDataType::UNKNOWN_TYPE);
-+      UPDATE_MACRO(array_index_, LataDBDataType::UNKNOWN_ARRAYINDEX);
-+      UPDATE_MACRO(data_ordering_, LataDBDataType::UNKNOWN_ORDERING);
-+      UPDATE_MACRO(fortran_bloc_markers_, LataDBDataType::UNKNOWN_MARKERS);
-+      UPDATE_MACRO(bloc_marker_type_, LataDBDataType::UNKNOWN_TYPE);
-+    }
-+  }
-+}
-+#undef UPDATE_MACRO
-+
-+void LataDB::change_all_data_filenames(const Nom & old_prefix, const Nom & new_prefix)
-+{
-+  const entier nb_tsteps = timesteps_.size();
-+  for (entier i = 0; i < nb_tsteps; i++) {
-+    LataVector<LataDBField> & fields = timesteps_[i].fields_;
-+    // Browse all fields:
-+    const entier nb_fields = fields.size();
-+    for (entier j = 0; j < nb_fields; j++) {
-+      Nom & filename = fields[j].filename_;
-+      Nom old_filename = filename;
-+      filename = new_prefix;
-+      if (old_filename.debute_par(old_prefix)) {
-+        const entier n = old_filename.longueur()-1;
-+        const char * s = old_filename;
-+        for (entier ii = old_prefix.longueur()-1; ii < n; ii++)
-+          filename += Nom(s[ii]);
-+      } else if (old_filename == LataDBField::memory_buffer_file()) {
-+        filename += Nom(".data");
-+      } else {
-+        filename += Nom('_');
-+        filename += old_filename;
-+      }
-+      Journal(verb_level+1) << " Changing filename " << old_filename << " -> " << filename << endl;
-+    }
-+  } 
-+}
-+
-+// This method takes all filenames mentionned in the database and sets the file_offset_ entry:
-+//  - set to 0 for the first field where a given filename appears,
-+//  - then for all subsequent files referring to the same name:
-+//      If split_files != 0, rename the files by appending a "_number" and set file_offset to 0
-+//      otherwise set file_offset_ to 1
-+void LataDB::check_all_data_fileoffsets(entier split_files)
-+{
-+  Noms existing_filenames;
-+  ArrOfInt counts; // For each filenames, number of fields referring to it
-+  counts.set_smart_resize(1);
-+
-+  const entier nb_tsteps = timesteps_.size();
-+  for (entier i = 0; i < nb_tsteps; i++) {
-+    LataVector<LataDBField> & fields = timesteps_[i].fields_;
-+    // Browse all fields:
-+    const entier nb_fields = fields.size();
-+    for (entier j = 0; j < nb_fields; j++) {
-+      LataDBField & field = fields[j];
-+      const entier rank = existing_filenames.rang(field.filename_);
-+      if (rank < 0) {
-+        // New filename
-+        existing_filenames.add(field.filename_);
-+        counts.append_array(1);
-+        field.datatype_.file_offset_ = 0;
-+        Journal(verb_level+1) << " Changing fileoffset to 0 for file " << field.filename_ 
-+                              << " " << field.name_ << endl;
-+      } else {
-+        // Existing filename
-+        if (split_files) {
-+          entier n = counts[rank]++;
-+          field.filename_ += "_";
-+          field.filename_ += Nom(n);
-+          field.datatype_.file_offset_ = 0;
-+          Journal(verb_level+1) << " Changing fileoffset to 0 and renaming file " << field.filename_  
-+                                << " " << field.name_ << endl;
-+        } else {
-+          field.datatype_.file_offset_ = 1;
-+          Journal(verb_level+1) << " Changing fileoffset to 1 for file " << field.filename_  
-+                                << " " << field.name_ << endl; 
-+        }
-+      }
-+    }
-+  }  
-+}
-+
-+// Returns the rank of the created timestep (always at the end)
-+entier LataDB::add_timestep(double time)
-+{
-+  const entier n = nb_timesteps();
-+  // Timestep 0 can have any time: test only versus other timesteps:
-+  if (n > 1 && time <= get_time(n-1)) {
-+    Journal() << "Error in LataDB::add_timestep(" << time 
-+              << "): time is below or equal to last timestep " << get_time(n-1) << endl;
-+    throw(LataDBError(LataDBError::INVALID_OPERATION));
-+  }
-+  LataDBTimestep & t = timesteps_.add(LataDBTimestep());
-+  t.time_ = time;
-+  Journal(verb_level+1) << "LataDB::add_timestep " << n << " " << time << endl;
-+  return n;
-+}
-+
-+static void add_geom_check(const LataDBGeometry & geom, entier test_flag, const char *message)
-+{
-+  if (!test_flag) {
-+    Journal() << "Error in LataDB::add_geometry, name_=" << geom.name_ << endl
-+              << " geometry data is invalid because of: " << message << endl;
-+    throw(LataDBError(LataDBError::INVALID_OPERATION));
-+  }
-+}
-+
-+void LataDB::add_geometry(const LataDBGeometry & geom)
-+{  
-+  add_geom_check(geom, geom.timestep_ >= 0 && geom.timestep_ < nb_timesteps(), "timestep");
-+  Noms geoms= geometry_names(geom.timestep_, CURRENT);
-+  add_geom_check(geom, geom.name_ != "" && geom.name_ != "??" && geoms.rang(geom.name_) < 0, "empty or already existing name"); 
-+
-+  add(geom.timestep_, geom);
-+  Journal(verb_level+1) << "LataDB::add_geometry " << geom.name_ << endl;
-+}
-+
-+void LataDB::set_elemtype(entier tstep, const char *geom_name, const char *elem_type)
-+{
-+  LataDBGeometry & geom = (LataDBGeometry&) get_geometry(tstep, geom_name);
-+  geom.elem_type_ = elem_type;
-+}
-+
-+
-+static void add_field_check(const LataDBField & field, entier test_flag, const char *message)
-+{
-+  if (!test_flag) {
-+    Journal() << "Error in LataDB::add_field, name_=" << field.name_ << " geometry=" << field.geometry_ << endl
-+              << " field data is invalid because of: " << message << endl;
-+    throw(LataDBError(LataDBError::INVALID_OPERATION));
-+  }
-+}
-+
-+// Adds a new field to the database.
-+// The field.datatype_.file_offset_ will be interpreted in a particular way if the data is
-+//  written with write_data(), see write_data() documentation.
-+// Take special care if the same file is referenced more than once in the database:
-+//  only one file should have file_offset_ <= 0 and this one will have to be written first 
-+//  with write_data()  (or you know what you are doing...)
-+void LataDB::add_field(const LataDBField & field)
-+{
-+  add_field_check(field, field.timestep_ >= 0 && field.timestep_ < nb_timesteps(), "timestep");
-+  add_field_check(field, field.filename_ != "" && field.filename_ != "??", "filename");
-+  add_field_check(field, field.nb_comp_ > 0, "nb_comp");
-+  Noms geoms = geometry_names(field.timestep_, FIRST_AND_CURRENT);
-+  add_field_check(field, field.geometry_ == "" || geoms.rang(field.geometry_) >= 0, "unknown geometry name");
-+  add_field_check(field, field.name_ != "" && field.name_ != "??", "empty name"); 
-+  add_field_check(field, field.component_names_.size() == 0 || field.component_names_.size() == field.nb_comp_, "number of component_names");
-+  add_field_check(field, field.size_ >= 0, "size");
-+  add_field_check(field, field.datatype_.msb_ != LataDBDataType::UNKNOWN_MSB, "datatype msb unspecified");
-+  add_field_check(field, field.datatype_.type_ == LataDBDataType::INT32
-+                  || field.datatype_.type_ == LataDBDataType::INT64
-+                  || field.datatype_.type_ == LataDBDataType::REAL32
-+                  || field.datatype_.type_ == LataDBDataType::REAL64, "datatype type unspecified");
-+  // If integer type, we must say the indexing type:
-+  add_field_check(field, 
-+                  field.datatype_.type_ == LataDBDataType::REAL32
-+                  || field.datatype_.type_ == LataDBDataType::REAL64
-+                  || field.datatype_.array_index_ != LataDBDataType::UNKNOWN_ARRAYINDEX, 
-+                  "datatype array indexing unspecified");
-+  add_field_check(field, field.datatype_.data_ordering_ != LataDBDataType::UNKNOWN_ORDERING, "datatype data ordering unspecified");
-+  add_field_check(field, field.datatype_.fortran_bloc_markers_ != LataDBDataType::UNKNOWN_MARKERS, "datatype fortran bloc markers unspecified");
-+  add_field_check(field, field.datatype_.file_offset_ >= 0, "datatype file_offset_");
-+  // ouf...
-+  add(field.timestep_, field);
-+  Journal(verb_level+1) << "LataDB::add_field : " << field.name_ << " " << field.geometry_ << " " << field.filename_ << " " << field.uname_ << endl;
-+}
-+
-+LataDBDataType LataDB::default_type_float() const
-+{
-+  LataDBDataType type = default_type_int_;
-+  type.type_ = default_float_type_;
-+  return type;
-+}
-+
-+// Description: Writes the lata master file to filename (filename must contain the path
-+//  if you don't want to write in the current working directory). All data contained
-+//  in the database is dumped to the file. 
-+void LataDB::write_master_file(const char *filename) const
-+{
-+  if (!filename) {
-+    Journal() << "LataDB::write_master_file got a null filename !!!" << endl;
-+    throw(LataDBError(LataDBError::INVALID_OPERATION));    
-+  }
-+  std::ofstream os(filename);
-+  if (!os.good()) { // isnogood ?
-+    Journal() << "LataDB::write_master_file failed opening file " << filename << endl;
-+    throw(LataDBError(LataDBError::FILE_NOT_FOUND));
-+  }
-+  // Try to write, if error, catch and close the file:
-+  Journal(verb_level-1) << "Writing lata master file:" << filename << endl;
-+  os << "LATA_V2.1" << endl;
-+  os << case_ << endl;
-+  os << software_id_ << endl;
-+  
-+  // ****************************************************************
-+  // Writing data format information:
-+  {
-+    Motcle fmt, fmt2;
-+    build_format_string(LataDBDataType(), default_type_int_, fmt);
-+    build_format_string(default_type_int_, default_type_float(), fmt2);
-+    os << "Format " << fmt << "," << fmt2 << endl;
-+  }
-+
-+  // ***************************************************************
-+  // Writing timesteps:
-+  const entier nb_tsteps = nb_timesteps();
-+  for (entier tstep = 0; tstep < nb_tsteps; tstep++) {
-+    if (tstep > 0)
-+      os << "TEMPS " << get_time(tstep) << endl;
-+
-+    Noms geoms = geometry_names(tstep);
-+    const entier nb_geoms = geoms.size();
-+    for (entier i_geom = 0; i_geom < nb_geoms; i_geom++) {
-+      const LataDBGeometry & geom = get_geometry(tstep, geoms[i_geom], FIRST_AND_CURRENT);
-+      // Do not write geometries of the first timestep
-+      if (geom.timestep_ == tstep)
-+        os << "GEOM  " << geom.name_ << " type_elem=" << geom.elem_type_ << endl;
-+    }
-+    Field_UNames unames = field_unames(tstep, "*", "*");
-+    for (entier i_field = 0; i_field < unames.size(); i_field++) {
-+      const LataDBField & field = get_field(tstep, unames[i_field]);
-+      os << "CHAMP " << field.name_ 
-+         << " " << field.filename_;
-+      if (field.geometry_ != "")
-+        os << " geometrie=" << field.geometry_;
-+      os << " size=" << field.size_;
-+      os << " composantes=" << field.nb_comp_;
-+      if (field.localisation_ != "??" && field.localisation_ != "")
-+        os << " localisation=" << field.localisation_;
-+      if (field.component_names_.size() > 0) {
-+        os << " noms_compo=";
-+        const entier n = field.component_names_.size();
-+        for (entier i = 0; i < n; i++) {
-+          os << field.component_names_[i];
-+          if (i < n-1)
-+            os << ",";
-+        }
-+      }
-+      switch(field.nature_) {
-+      case LataDBField::UNKNOWN: break;
-+      case LataDBField::SCALAR: os << " nature=scalar"; break;
-+      case LataDBField::VECTOR: os << " nature=vector"; break;
-+      default:
-+        Journal() << "LataDB::write_master_file error: unknown NATURE" << endl;
-+        throw(LataDBError(LataDBError::INVALID_OPERATION));
-+      }
-+      if (field.reference_ != "" && field.reference_ != "??")
-+        os << " reference=" << field.reference_;
-+      Motcle format_string;
-+      build_format_string(default_type_float(), field.datatype_, format_string);
-+      if (format_string != "") 
-+        os << " format=" << format_string;
-+      if (field.datatype_.file_offset_ > 0)
-+        os << " file_offset=" << field.datatype_.file_offset_;
-+      os << endl;
-+    }
-+  }
-+  os << "FIN" << endl;
-+  write_master_file_to_call_ = 0;
-+}
-+
-+// Description: internal template to write a data block. We provide explicit methods write_data()
-+//  to the user instead of a template.
-+template <class C_Tab>
-+FileOffset LataDB::write_data_(entier tstep, const Field_UName & uname, const C_Tab & data)
-+{
-+  LataDBField & fld = getset_field(tstep, uname);
-+
-+  LataDataFile f(internal_data_buffer_, path_prefix_, fld.filename_,
-+                 fld.datatype_.msb_,
-+                 (fld.datatype_.file_offset_ <= 0) ? LataDataFile::WRITE : LataDataFile::APPEND);
-+  fld.datatype_.file_offset_ = f.position();
-+  Journal(verb_level_data_bloc) << "Writing block data at offset " << fld.datatype_.file_offset_ << endl;
-+  if (fld.nb_comp_ != data.dimension(1) || fld.size_ != data.dimension(0)) {
-+    Journal() << "Error in LataDB::write_data_: nb_comp_ or size_ declared in the field doesnt match array dimensions." << fld.name_ << endl;
-+    throw;
-+  }
-+
-+  const entier n = fld.size_;
-+  
-+  switch (fld.datatype_.data_ordering_) {
-+  case LataDBDataType::C_ORDERING: 
-+    {
-+      if (fld.datatype_.fortran_bloc_markers_ == LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES) {
-+        Journal() << "Error in LataDB::write_data_: fortran_bloc_markers_=MULTIPLE_WRITES is incompatible with data_ordering=C" << endl;
-+        throw LataDBError(LataDBError::DATA_ERROR);
-+      }
-+      const entier sz = data.size_array();
-+      write_blocksize(f, fld.datatype_, sz);
-+      bloc_write(f, fld.datatype_.msb_, fld.datatype_.type_, data, fld.nb_comp_);
-+      write_blocksize(f, fld.datatype_, sz);
-+      break;
-+    }
-+  case LataDBDataType::F_ORDERING:
-+    {
-+      entier multiple_bloc_markers = (fld.datatype_.fortran_bloc_markers_ == LataDBDataType::BLOC_MARKERS_MULTIPLE_WRITES);
-+      // reverse rows and columns of the array
-+      C_Tab tmp;
-+      tmp.resize(n, 1);
-+      if (!multiple_bloc_markers)
-+        write_blocksize(f, fld.datatype_, data.size_array());
-+      for (entier i = 0; i < fld.nb_comp_; i++) {
-+        if (multiple_bloc_markers)
-+          write_blocksize(f, fld.datatype_, n);
-+        for (entier j = 0; j < n; j++)
-+          tmp(j, 0) = data(j, i);
-+        bloc_write(f, fld.datatype_.msb_, fld.datatype_.type_, tmp, 1);
-+        if (multiple_bloc_markers)
-+          write_blocksize(f, fld.datatype_, n);
-+      }
-+      if (!multiple_bloc_markers)
-+        write_blocksize(f, fld.datatype_, data.size_array());
-+      break;
-+    }
-+  default:
-+    Journal() << "Error in LataDB::write_data_: data_ordering not implemented" << endl;
-+    throw;
-+  }
-+  write_master_file_to_call_ = 1;
-+  return f.position();
-+}
-+
-+// Writes the data to disk according to datatype_ of the field.
-+// The filename will be "path_prefix_ + field.filename_".
-+// The path_prefix_ can be changed with set_path_prefix()
-+// If field.datatype_.file_offset_<=0, any existing file is deleted and the data is written at offset 0
-+// otherwise the data is written at the end of the file and file_offset_ for this field is updated.
-+// Returns the FileOffset of the file pointer after writing the data (points to the end of the file)
-+// The call to write_master_file() must be done after all write_data (otherwise the file_offset_ might be wrong)
-+FileOffset LataDB::write_data(entier tstep, const Field_UName & uname, const DoubleTab &tab)
-+{
-+  Journal() << " LataDB::write_data not coded for double" << endl;
-+  throw;
-+  return 0;
-+}
-+
-+// See write_data(..., const DoubleTab &)
-+FileOffset LataDB::write_data(entier tstep, const Field_UName & uname, const FloatTab &tab)
-+{
-+  return write_data_(tstep, uname, tab);
-+}
-+
-+// See write_data(..., const DoubleTab &)
-+FileOffset LataDB::write_data(entier tstep, const Field_UName & uname, const IntTab &tab)
-+{
-+  if (get_field(tstep, uname).datatype_.array_index_ == LataDBDataType::F_INDEXING) {
-+    IntTab tmp;
-+    tmp.set_smart_resize(1);
-+    tmp.resize(tab.dimension(0), tab.dimension(1));
-+    ArrOfInt & array = tmp;
-+    const ArrOfInt & src = tab;
-+    for (entier i = 0; i < array.size_array(); i++)
-+      array[i] = src[i] + 1;
-+    return write_data_(tstep, uname, tmp);
-+  }
-+
-+  return write_data_(tstep, uname, tab);
-+}
-+
-+LataDB::~LataDB()
-+{
-+#if 0
-+  if (write_master_file_to_call_) {
-+    Journal() << "Internal Error !!! write_data() has been called without calling write_master_file() after." << endl;
-+//    exit(); // In c++ it is forbidden to throw exceptions in a destructor.
-+  }
-+#endif
-+}
-+
-+const char *LataDBError::describe() const
-+{
-+  switch(err_) {
-+  case READ_ERROR: return "READ_ERROR"; break;
-+  case BAD_HEADER: return "BAD_HEADER"; break;
-+  case BAD_TIMESTEP: return "BAD_TIMESTEP"; break;
-+  case NAME_NOT_FOUND: return "NAME_NOT_FOUND"; break;
-+  case DATA_ERROR: return "DATA_ERROR"; break;
-+  case FILE_NOT_FOUND: return "FILE_NOT_FOUND"; break;
-+  case BAD_ELEM_TYPE: return "BAD_ELEM_TYPE"; break;
-+  case INVALID_OPERATION: return "INVALID_OPERATION"; break;
-+  case INTEGER_OVERFLOW: return "INTEGER_OVERFLOW"; break;
-+  default: ;
-+  }
-+  return "LataDB_unknown_error";
-+}
-+#undef verb_level
-+#undef verb_level_data_bloc
-diff --git a/databases/readers/Lata/LataDB.h b/databases/readers/Lata/LataDB.h
-new file mode 100644
-index 0000000..8862d3c
---- /dev/null
-+++ b/databases/readers/Lata/LataDB.h
-@@ -0,0 +1,303 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataDB_include_
-+#define LataDB_include_
-+#include <Lata_tools.h>
-+#include <sstream>
-+
-+// This file describes the LataDB class and all associated data structures.
-+//  LataDB stores all the meta contained in the .lata master file, and not more.
-+//  It provides services to add meta-data, read data to a user specified array,
-+//  and write data to a lata file.
-+
-+typedef BigEntier FileOffset;
-+
-+// .Description: LataDBError is the type used for thrown exceptions in LataDBxxx classes
-+class LataDBError
-+{
-+public:
-+  // READ_ERROR: low level io error while reading .lata file
-+  // BAD_HEADER: the header in the .lata file is not correct
-+  // BAD_TIMESTEP: request for a non existant timestep
-+  // NAME_NOT_FOUND: request for a non existant domain or field name
-+  // DATA_ERROR: low level io error while reading a data bloc file
-+  // FILE_NOT_FOUND: a file (.lata or data) couldn't be opened on disc.
-+  // INVALID_OPERATION: trying to read from a modified database, etc...
-+  // INTEGER_OVERFLOW: trying to convert an integer to a too small data type
-+  //  (if error when reading a data file, you must recompile with typedef long long entier,
-+  //   if error when writing a data file, you must use INT64 type_ for data blocks)
-+  enum ErrType { READ_ERROR, BAD_HEADER, BAD_TIMESTEP, NAME_NOT_FOUND, DATA_ERROR,
-+                 FILE_NOT_FOUND, BAD_ELEM_TYPE, INVALID_OPERATION, INTEGER_OVERFLOW };
-+  LataDBError(ErrType err) : err_(err) {};
-+  ErrType err_;
-+  const char *describe() const;
-+};
-+
-+// .Description: This is the data type for a specific part of a data bloc.
-+//  In order to read a data bloc, we need a LataDBDataType for the "bloc size" id (this is an integer),
-+//  and a LataDBDataType for the bloc content. LataDBGeometry blocs need two types, one for
-+//  the node coordinates and one for the elements
-+class LataDBDataType
-+{
-+public:
-+  enum MSB { UNKNOWN_MSB, MSB_BIG_ENDIAN, MSB_LITTLE_ENDIAN, ASCII };
-+  MSB msb_;
-+  enum Type { UNKNOWN_TYPE, INT32, INT64, REAL32, REAL64 };
-+  Type type_;
-+  // Array index is ignored if type_ is REAL.
-+  // NOT_AN_INDEX: array does not contain indexes.
-+  // C_INDEXING: If array contains indexes to other items, 0 <= array[i] < nb_items
-+  // F_INDEXING: 1 <= array[i] <= nb_items (Fortran index)
-+  // See LataDB::read_data
-+  enum ArrayIndex { UNKNOWN_ARRAYINDEX, NOT_AN_INDEX, C_INDEXING, F_INDEXING };
-+  ArrayIndex array_index_;
-+  // C_ORDERING: If multidimensionnal array is read, data ordering is like in C
-+  //               (all components for first node, then all components for second node, etc)
-+  // F_ORDERING: like in fortran (first all values for component 0 then all values for compo 1 etc)
-+  enum DataOrdering { UNKNOWN_ORDERING, C_ORDERING, F_ORDERING };
-+  DataOrdering data_ordering_;
-+
-+  //   _NO_BLOC:         no fortran bloc marker
-+  //   _SINGLE_WRITE:    all data written in one fortran write instruction
-+  //   _MULTIPLE_WRITES: one fortran write instruction for each component
-+  enum FortranBlocMarkers { UNKNOWN_MARKERS, NO_BLOC_MARKER, BLOC_MARKERS_SINGLE_WRITE, BLOC_MARKERS_MULTIPLE_WRITES };
-+  FortranBlocMarkers fortran_bloc_markers_;
-+
-+  // The data type for fortran bloc markers
-+  Type bloc_marker_type_;
-+
-+  // Data is located at this offset in the file
-+  FileOffset file_offset_;
-+
-+  LataDBDataType() : msb_(UNKNOWN_MSB), type_(UNKNOWN_TYPE), array_index_(UNKNOWN_ARRAYINDEX), 
-+                     data_ordering_(UNKNOWN_ORDERING), fortran_bloc_markers_(UNKNOWN_MARKERS), bloc_marker_type_(UNKNOWN_TYPE),
-+                     file_offset_(0)
-+  {};
-+  static MSB machine_msb_;
-+};
-+
-+// .Description: Description of a geometry (= a mesh)
-+class LataDBGeometry
-+{
-+public:
-+  LataDBGeometry() { timestep_ = -1; }
-+  // Item name
-+  Nom name_;
-+  // Type of elements
-+  Motcle elem_type_;
-+  entier timestep_;
-+};
-+
-+// This is a unique identifier for fields
-+//  at this time, contains domain name, field name and localisation,
-+//  might be further extended if needed
-+class Field_UName
-+{
-+public:
-+  Field_UName();
-+  Field_UName(const char *domain_name, const char *field_name, const char *loc);
-+  Field_UName(const Field_UName &);
-+  int operator==(const Field_UName &) const;
-+  Field_UName & operator=(const Field_UName &);
-+  Nom build_string() const;
-+  const Motcle & get_localisation() const { return loc_; }
-+  const Motcle & get_field_name() const { return field_name_; }
-+  const Motcle & get_geometry() const { return geometry_; }
-+  void        set_field_name(const Nom &);
-+protected:
-+  Motcle geometry_;
-+  Motcle field_name_;
-+  Motcle loc_;
-+};
-+
-+std::ostream & operator<<(std::ostream &, const Field_UName &);
-+
-+typedef LataVector<Field_UName> Field_UNames;
-+class EFichier;
-+
-+// .Description: Description of a field
-+class LataDBField
-+{
-+public:
-+  LataDBField() { timestep_ = -1; nb_comp_ = -1; nature_ = UNKNOWN; size_ = -1; }
-+
-+  // Unique identifier
-+  Field_UName uname_;
-+  // Field name (without localisation spec)
-+  Nom name_;
-+  // Where is it ?
-+  int timestep_;
-+  // Filename containing the data
-+  // Special names: memory_buffer_file() => data stored in the LataDB memory buffer.
-+  Nom filename_;
-+  // Number of components
-+  entier nb_comp_;
-+  // LataDBGeometry
-+  Nom geometry_;
-+  // Name of the components
-+  Noms component_names_;
-+  Noms unites_;
-+  // Scalar or vector ?
-+  enum Nature { UNKNOWN, SCALAR, VECTOR };
-+  Nature nature_;
-+  // Type and formatting info of the data
-+  LataDBDataType datatype_;
-+  // Localisation (elem, som, faces, ...)
-+  Motcle localisation_;
-+  // Ref
-+  Nom reference_;
-+  // Size (number of lines) 
-+  long long size_;
-+  
-+  static const char * memory_buffer_file();
-+};
-+
-+// .Description: Description of one timestep (contains a vector of items)
-+class LataDBTimestep
-+{
-+public:
-+  LataDBTimestep() { time_ = -1.; }
-+  double time_;
-+protected:
-+  friend class LataDB;
-+  LataVector<LataDBGeometry> geoms_;
-+  LataVector<LataDBField> fields_;
-+};
-+
-+class LataDataFile;
-+class ArrOfInt;
-+class LataDB
-+{
-+public:
-+  LataDB() : internal_data_buffer_(std::ios::in | std::ios::out | std::ios::app | std::ios::binary) { old_style_lata_ = 0; path_prefix_ = ""; write_master_file_to_call_ = 0; }
-+  LataDB(const LataDB & src) :
-+    header_(src.header_),
-+    case_(src.case_),
-+    software_id_(src.software_id_),
-+    default_type_int_(src.default_type_int_),
-+    default_float_type_(src.default_float_type_),
-+    timesteps_(src.timesteps_),    
-+    path_prefix_(src.path_prefix_),
-+    old_style_lata_(src.old_style_lata_),
-+    write_master_file_to_call_(src.write_master_file_to_call_) {
-+    // Note B.M. il faudrait copier internal_data_buffer_ pour faire marcher lml->lata mais je ne sais pas faire...
-+  }
-+  virtual ~LataDB();
-+  void reset();
-+  virtual void read_master_file(const char * path_prefix_, const char * filename);
-+  void read_master_file_med(const char *prefix, const char *filename);
-+  static Nom   read_master_file_options(const char * filename);
-+  
-+  virtual void filter_db(const LataDB & source,
-+                         const Motcles & geometry_names,
-+                         const Motcles & field_names,
-+                         const ArrOfInt & timesteps);
-+
-+  entier                 nb_timesteps() const;
-+  double                 get_time(entier tstep) const;
-+  enum TStepSelector { CURRENT, FIRST_AND_CURRENT };
-+  Noms                   geometry_names(entier tstep, TStepSelector which_tstep = CURRENT) const;
-+  Field_UNames           field_unames(entier tstep, const char * geometry, const char * name, TStepSelector which_tstep = CURRENT) const;
-+  const LataDBGeometry & get_geometry(entier tstep, const char * name, TStepSelector which_tstep = CURRENT) const;
-+  entier                 field_exists(entier tstep, const char *geom, const char *name, TStepSelector which_tstep = CURRENT) const;
-+  const LataDBField &    get_field(entier tstep, const Field_UName & uname, TStepSelector which_tstep = CURRENT) const;
-+  const LataDBField &    get_field(entier tstep, const char *geom, const char *name, const char *loc, TStepSelector which_tstep = CURRENT) const;
-+  const Nom &            path_prefix() const { return path_prefix_; };
-+  void                   set_path_prefix(const char * s);
-+
-+  // First line in the .lata file
-+  Nom header_;
-+  // Second line in the .lata file
-+  Nom case_;
-+  // Third line in the .lata file
-+  Nom software_id_;
-+
-+  LataDBDataType default_type_float() const; // Everything same as int, but type_=default_float_type_
-+  LataDBDataType default_type_int_;
-+  LataDBDataType::Type default_float_type_;
-+
-+  virtual void read_data(const LataDBField &, DoubleTab & data, long long debut = 0, entier n = -1) const;
-+  virtual void read_data(const LataDBField &, FloatTab & data, long long debut = 0, entier n = -1) const;
-+  virtual void read_data(const LataDBField &, IntTab & data, long long debut = 0, entier n = -1) const;
-+  virtual void read_data(const LataDBField &, DoubleTab & data, const ArrOfInt & lines_to_read) const;
-+  virtual void read_data(const LataDBField &, FloatTab & data, const ArrOfInt & lines_to_read) const;
-+  virtual void read_data(const LataDBField &, IntTab & data, const ArrOfInt & lines_to_read) const;
-+
-+  enum Element { line, triangle, quadri, tetra, hexa, triangle_3D, quadri_3D, polyedre,polygone, unspecified };
-+  static Element element_type_from_string(const Motcle & type_elem);
-+
-+  // Tools to create/update the database and write lata data to disk
-+  void   change_all_data_types(const LataDBDataType & old_type, const LataDBDataType & new_type);
-+  void   change_all_data_filenames(const Nom & old_prefix, const Nom & new_prefix);
-+  void   check_all_data_fileoffsets(entier split_files);
-+  entier add_timestep(double time);
-+  void   add_geometry(const LataDBGeometry & geom);
-+  void   set_elemtype(entier tstep, const char *geom_name, const char *elem_type);  
-+  entier check_duplicate_filename(const char *filename) const;
-+  void   add_field(const LataDBField & field);
-+  void   write_master_file(const char *filename) const;
-+  FileOffset write_data(entier tstep, const Field_UName &, const DoubleTab &);
-+  FileOffset write_data(entier tstep, const Field_UName &, const FloatTab &);
-+  FileOffset write_data(entier tstep, const Field_UName &, const IntTab &);
-+
-+protected:
-+  LataDBField & getset_field(entier tstep, const Field_UName & uname, TStepSelector which_tstep = CURRENT);
-+  void          read_master_file_header(const char *filename, EFichier & is);
-+  static entier lata_v1_dim_from_elem_type(const Motcle & elem_type);
-+  static entier lata_v1_get_nb_comp(const Nom & fieldname, const Motcle & localisation, const LataDBGeometry & dom, entier dim, LataDBField::Nature & nature, LataDBDataType::DataOrdering &);
-+  static void get_element_data(const Motcle & elemtype, entier & dimension, entier & elem_shape, entier & face_shape, entier & nb_elem_faces);
-+
-+  const LataDBTimestep & get_tstep(entier i) const;
-+  void add(entier tstep, const LataDBGeometry & item);
-+  void add(entier tstep, const LataDBField & item);
-+  template <class C_Tab> void read_data_(const LataDBField &, C_Tab & data, long long debut, entier n) const;
-+  template <class C_Tab> void read_data_(const LataDBField &, C_Tab & data, const ArrOfInt & lines_to_read) const;
-+  template <class C_Tab> void read_data2_(LataDataFile & f, const LataDBField & fld, C_Tab * const data, long long debut = 0, entier n = -1, const ArrOfInt *lines_to_read = 0) const;
-+  template <class C_Tab> void read_data2_med_( const LataDBField & fld, C_Tab * const data, entier debut = 0, entier n = -1, const ArrOfInt *lines_to_read = 0) const;
-+  template <class C_Tab> FileOffset write_data_(entier tstep, const Field_UName & uname, const C_Tab &);
-+
-+  // Timestep 0 contains global domains and field definition
-+  // Timestep 1..size()-1 contain the data for each "TEMPS" entry
-+  LataVector<LataDBTimestep> timesteps_;
-+
-+  // Path prefix for all data blocks (used by read_data() and write_data())
-+  Nom path_prefix_;
-+
-+  // Is this an old-style lata file ? (with INTERFACES special files and 2D elements expanded to 3D elements)
-+  entier old_style_lata_;
-+
-+  // This flag tells if some write_data calls have been made since the last write_master_file
-+  // If yes, issue a message to say that's wrong !
-+  mutable entier write_master_file_to_call_;
-+
-+  // This is a memory buffer where data can be written to create a temporary data base
-+  mutable std::stringstream internal_data_buffer_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/LataDBmed.h b/databases/readers/Lata/LataDBmed.h
-new file mode 100644
-index 0000000..13cfdbe
---- /dev/null
-+++ b/databases/readers/Lata/LataDBmed.h
-@@ -0,0 +1,586 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+//#define WITH_MEDLOADER
-+#ifndef WITH_MEDLOADER
-+void LataDB::read_master_file_med(const char *prefix, const char *filename)
-+{
-+  Journal() << "MED PLUGIN not compiled!" << endl;
-+  throw;
-+}
-+template <class C_Tab> void LataDB::read_data2_med_(
-+                         const LataDBField & fld,
-+                         C_Tab * const data, // const pointer to non const data !
-+                         entier debut, entier n, const ArrOfInt *lines_to_read) const
-+{
-+   Journal() << "MED PLUGIN not compiled!" << endl;
-+  
-+   throw;    
-+}
-+#else
-+
-+#include <MEDLoader.hxx>
-+#include <MEDCouplingMemArray.hxx>
-+#include <MEDCouplingUMesh.hxx>
-+#include <MEDCouplingFieldDouble.hxx>
-+#include <CellModel.hxx>
-+#include <MEDFileField.hxx>
-+
-+using std::vector;
-+using std::pair;
-+using std::string;
-+
-+
-+Nom latadb_name_from_type_geo(const med_geometry_type& type_geo)
-+{
-+  Nom type_elem;
-+  switch(type_geo)
-+    {
-+      case MED_QUAD4:
-+        type_elem="Rectangle";
-+        break;
-+      case MED_HEXA8:
-+        type_elem="Hexaedre";      
-+        break;
-+      case MED_TRIA3:
-+        type_elem="Triangle";break;
-+      case MED_TETRA4:
-+        type_elem="Tetraedre";break;
-+      case MED_PENTA6:
-+        type_elem="Prisme";break;
-+      case MED_POLYHEDRON:
-+        type_elem="Polyedre"; break;
-+      case MED_POLYGON:
-+        type_elem="Polygone"; break;
-+      case MED_SEG2:
-+        type_elem="Segment"; break;
-+      default:
-+        Cerr<<"type_geo " << (int)type_geo <<" is not a supported element."<<finl;
-+      throw;
-+        break;
-+      }
-+  return type_elem;
-+}
-+
-+
-+// passage de la connectivite trio a MED si sens=1
-+// de MED a trio si sens=-1
-+ArrOfInt renum_conn(const LataDB::Element& type)
-+{
-+  //  cerr<<"type elem "<<type_elem<<endl;
-+  ArrOfInt filter;
-+  if (type==LataDB::quadri ) {
-+      filter.resize_array(4) ;
-+   
-+      filter[0] = 0 ;
-+      filter[1] = 2 ;
-+      filter[2] = 3 ;
-+      filter[3] = 1 ;
-+
-+      
-+    }
-+ 
-+  if (type== LataDB::hexa  )  {
-+      filter.resize_array(8) ;
-+ 
-+        
-+      filter[0] = 0 ;
-+      filter[1] = 2 ;
-+      filter[2] = 3 ;
-+      filter[3] = 1 ;
-+      filter[4] = 4 ;
-+      filter[5] = 6 ;
-+      filter[6] = 7 ;
-+      filter[7] = 5 ;        
-+      
-+    }
-+   
-+    
-+  return filter;
-+
-+}
-+
-+extern med_geometry_type typmai3[MED_N_CELL_FIXED_GEO];
-+
-+void latadb_get_info_mesh_med(const char* filename,const char* meshname,med_geometry_type& type_geo,int& ncells,int& nnodes,int& spacedim, int &nbcomp,int& is_structured, std::vector<int>& NIJK)
-+{
-+    is_structured=0;
-+  int meshDim, i;
-+  try {
-+  std::vector< std::vector< std::pair<INTERP_KERNEL::NormalizedCellType,int> > > res = MEDCoupling::GetUMeshGlobalInfo(filename, meshname, meshDim, spacedim, nnodes);
-+  
-+
-+  // on prend que la dimension la plus grande et on verifie que l'on a qu'un type elt 
-+  if (res.size()>1)
-+    {
-+      cerr<<"error multi dimension in "<<meshname<<endl;
-+      //throw;
-+    }
-+  if (res[0].size()>1)
-+    { 
-+      cerr<<"error multi elements in "<<meshname<<endl;
-+      throw;
-+    } 
-+  type_geo=typmai3[res[0][0].first];
-+
-+  if ((type_geo==MED_POLYGON)||(type_geo==MED_POLYHEDRON))
-+    {
-+      //on est force de lire le maillage pour avoir le bon nombre de cellules  
-+      MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(filename,meshname);
-+      ncells = mesh->getNumberOfCells();
-+      const int *idx = mesh->getNodalConnectivityIndex()->getConstPointer();
-+      for (i = 0, nbcomp = 0; i < ncells; i++) if (nbcomp < idx[i + 1] - idx[i] - 1) nbcomp = idx[i + 1] - idx[i] - 1;
-+      mesh->decrRef();
-+    }
-+  else
-+    ncells=res[0][0].second;
-+    }
-+  catch (...)
-+  {
-+    // No UMesh try CMesh
-+      MEDCoupling::MEDCouplingMesh* mesh=  MEDCoupling::ReadMeshFromFile(filename, meshname);
-+      /* 
-+        type_geo,int& ncells,int& nnodes,int& spacedim, int &nbcomp
-+       */
-+      MEDCoupling::MEDCouplingCMesh* cmesh = dynamic_cast<MEDCoupling::MEDCouplingCMesh*>(mesh);
-+      spacedim=cmesh-> getSpaceDimension() ;
-+      
-+      NIJK= cmesh->getNodeGridStructure();
-+      ncells=mesh->getNumberOfCells();
-+      nnodes=mesh->getNumberOfNodes();
-+      
-+    
-+   // std::cout << ncells<< " "<<sizes[2]<<std::endl;
-+      mesh->decrRef();
-+      
-+      if (spacedim==3)
-+            type_geo =MED_HEXA8;
-+      else if (spacedim==2)
-+           type_geo =MED_QUAD4;
-+        else 
-+         abort();
-+        is_structured=1;
-+      //abort();
-+      return;
-+  }
-+}
-+
-+
-+
-+// Description: Reads the .lata database in the given file indicating than the 
-+//  associated data files will be found in directory "prefix".
-+//  If not empty, "prefix" must finish with a '/'.
-+//  For "prefix" and "filename", if they do not begin with '/', are relative to pwd.
-+// Exceptions: 
-+//  BAD_HEADER  means that the header found in this stream is not LATA_V2
-+//  READ_ERROR  means that an error has been found in the file (premature eof,
-+//              io error, bad keyword, ...)
-+//  FILE_NOT_FOUND means that, well, the lata file could not be opened
-+void LataDB::read_master_file_med(const char *prefix, const char *filename)
-+{
-+  
-+  
-+  Journal() << "MED PLUGIN !" << endl;
-+
-+  // Defaults for lataV1
-+  default_type_int_.msb_ = LataDBDataType::ASCII;
-+  default_type_int_.type_ = LataDBDataType::INT32;
-+  default_type_int_.array_index_ = LataDBDataType::F_INDEXING;
-+  default_type_int_.data_ordering_ = LataDBDataType::C_ORDERING;
-+  default_type_int_.fortran_bloc_markers_ = LataDBDataType::BLOC_MARKERS_SINGLE_WRITE;
-+  default_type_int_.bloc_marker_type_ = LataDBDataType::INT32;
-+  default_float_type_ = LataDBDataType::REAL32;
-+  
-+  
-+
-+  // Create timestep 0 (global domain and fields)
-+  timesteps_.add(LataDBTimestep());
-+
-+
-+  // on ajoute les geom 
-+  // on verra apres pour les champs elem et som
-+  vector<string> geoms= MEDCoupling::GetMeshNames(filename);
-+  
-+  vector<double> times;
-+  LataDBTimestep  table; 
-+  int first=1;
-+  
-+  for (int i=0;i<geoms.size();i++)
-+    {
-+      LataDBGeometry dom;
-+      dom.timestep_ = timesteps_.size()-1;
-+      dom.name_=geoms[i];
-+      med_geometry_type type_geo;
-+      int ncells,nnodes,spacedim, nbcomp;
-+      int is_structured;
-+      std::vector<int> NIJK;
-+      latadb_get_info_mesh_med(filename,geoms[i].c_str(),type_geo,ncells,nnodes,spacedim,nbcomp,is_structured,NIJK);
-+            
-+      dom.elem_type_=latadb_name_from_type_geo(type_geo);
-+
-+      if (is_structured==0)
-+      {
-+      LataDBField som;
-+      som.name_ = "SOMMETS";
-+      som.geometry_ = dom.name_;
-+      som.filename_ = filename;
-+      som.size_=nnodes;
-+      som.datatype_ = default_type_float(); // ??
-+      som.nb_comp_=spacedim;
-+      
-+      LataDBField elem;
-+      elem.name_ = "ELEMENTS";
-+      elem.geometry_ = dom.name_;
-+      elem.filename_ = filename;
-+      elem.size_=ncells;
-+      elem.datatype_ = default_type_float(); // ??
-+
-+      int dim,ff,ef;
-+      get_element_data(dom.elem_type_, dim, elem.nb_comp_, ff, ef);
-+      if (elem.nb_comp_ == -1) elem.nb_comp_ = nbcomp;
-+      
-+      add(timesteps_.size() - 1, dom);
-+      add(timesteps_.size() - 1, som);
-+      add(timesteps_.size() - 1, elem);
-+      }
-+      else
-+      {
-+      add(timesteps_.size() - 1, dom);
-+       {
-+        LataDBField som;
-+        som.name_ = "SOMMETS_IJK_I";
-+        som.geometry_ = dom.name_;
-+        som.filename_ = filename;
-+        som.size_=NIJK[0];
-+        som.datatype_ = default_type_float(); // ??
-+        som.nb_comp_=1;
-+        add(timesteps_.size() - 1, som);
-+      }
-+       {
-+        LataDBField som;
-+        som.name_ = "SOMMETS_IJK_J";
-+        som.geometry_ = dom.name_;
-+        som.filename_ = filename;
-+        som.size_=NIJK[1];
-+        som.datatype_ = default_type_float(); // ??
-+        som.nb_comp_=1;
-+        add(timesteps_.size() - 1, som);
-+      }
-+       {
-+        LataDBField som;
-+        som.name_ = "SOMMETS_IJK_K";
-+        som.geometry_ = dom.name_;
-+        som.filename_ = filename;
-+        som.size_=NIJK[2];
-+        som.datatype_ = default_type_float(); // ??
-+        som.nb_comp_=1;
-+        add(timesteps_.size() - 1, som);
-+      }
-+          
-+      }
-+      
-+    
-+  vector<string> fields; 
-+  fields= MEDCoupling::GetAllFieldNamesOnMesh(filename,dom.name_.getString());
-+  
-+
-+  for (int i=0;i<fields.size();i++)
-+    {
-+      LataDBField som;
-+      som.name_ = fields[i];
-+      
-+      som.filename_ = filename;
-+      
-+      som.datatype_ = default_type_float(); // ??
-+      
-+      som.nature_ = LataDBField::SCALAR;
-+  
-+  
-+      const Nom& meshname = dom.name_; 
-+      som.geometry_ = meshname;
-+      Motcle newname(fields[i].c_str());
-+      Motcle ajout("_");
-+
-+      // cerr<<"field " <<fields[i]<< " "<< meshname<<" ";
-+      vector< MEDCoupling::TypeOfField > ltypes=MEDCoupling::GetTypesOfField(filename,meshname.getString(),fields[i].c_str());
-+      //if (ltypes.size()!=1) throw;
-+      for (int t=0;t<ltypes.size();t++)
-+      {
-+      switch (ltypes[t])
-+      {
-+        //    case :
-+      case MEDCoupling::ON_CELLS :
-+        //cerr<<"elem"<<endl;
-+        som.size_=ncells;
-+        som.localisation_="ELEM";
-+        break;
-+      case  MEDCoupling::ON_NODES :
-+        //cerr<<"som"<<endl;
-+        som.size_=nnodes;
-+        som.localisation_="SOM";
-+        break;
-+      default:
-+        cerr<<"type inconnu "<<endl;throw;
-+      }
-+
-+      som.nb_comp_=1;
-+      // pour recupere nb_comp !!!
-+      
-+      som.nb_comp_=MEDCoupling::GetComponentsNamesOfField(filename,fields[i].c_str()).size();
-+
-+      
-+      if (spacedim==som.nb_comp_)
-+      som.nature_ = LataDBField::VECTOR;
-+      ajout+=som.localisation_;
-+      ajout+="_";
-+      ajout+=meshname;
-+      newname=newname.prefix(ajout);
-+     
-+      som.name_=newname;
-+     
-+      //som.uname_= Field_UName(meshname, newname, som.localisation_);
-+      
-+      table.fields_.add(som);
-+    
-+      if (1) 
-+      {
-+      if (ltypes.size()>1)
-+        {
-+          vector<pair< int, int > > iters= MEDCoupling::GetFieldIterations(ltypes[t],filename,meshname.getString(),fields[i].c_str());
-+          for (int iter=0;iter<iters.size();iter++)
-+            {
-+              double t= MEDCoupling::GetTimeAttachedOnFieldIteration(filename,fields[i].c_str(),iters[iter].first,iters[iter].second);
-+              if (first==1)
-+                {
-+                  times.push_back(t);
-+                  //cerr<<"M ici  "<<t <<" "<<iters[iter].first<<" "<<iters[iter].second<<endl;
-+                }
-+              else
-+                {
-+                  if (times[iter]!=t)
-+                    {
-+                      cerr<<"field " <<fields[i]<<" M time "<< t << " diff "<<times[iter] << endl;
-+                      //throw;
-+                    }
-+                }
-+            }
-+          
-+        }
-+      else
-+        {
-+          vector<pair<pair<int,int>,double> > vtimes=MEDCoupling::GetAllFieldIterations(filename,/*meshname,*/fields[i].c_str());
-+          for (int it=0;it<vtimes.size();it++)
-+            {
-+              
-+              double t=vtimes[it].second;
-+              if (first==1)
-+                {
-+                  times.push_back(t);
-+                  //  cerr<<" ici  "<<t <<endl;
-+                }
-+              else
-+                {
-+                  if (times[it]!=t)
-+                    {
-+                      cerr<<"field " <<fields[i]<<" time "<< t << " diff "<<times[it] << endl;
-+                      //throw;
-+                    }
-+                }
-+            }
-+
-+        }
-+      }
-+      first=0;
-+    }
-+    }
-+    }
-+  if (times.size()>0)
-+    for (int i=0;i<times.size();i++)
-+    {
-+      
-+      //LataDBTimestep & t = timesteps_.add(table);
-+      LataDBTimestep& t = timesteps_.add(LataDBTimestep());
-+      t.time_=times[i];
-+      for (int f=0;f<table.fields_.size();f++)
-+      add(i+1,table.fields_[f]);
-+    
-+    }
-+  for (int i=0;i<times.size()*0;i++)
-+    cerr<<" time "<<times[i]<<endl;
-+}
-+
-+
-+template <class C_Tab>
-+void LataDB::read_data2_med_(
-+                         const LataDBField & fld,
-+                         C_Tab * const data, // const pointer to non const data !
-+                         entier debut, entier n, const ArrOfInt *lines_to_read) const
-+{
-+  assert(debut==0);
-+  //assert(n==-1);
-+  assert(lines_to_read==NULL);
-+ 
-+  if (fld.name_=="SOMMETS")
-+    {
-+      //    cerr<<"load sommets "<<endl;
-+      MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
-+      const  MEDCoupling::DataArrayDouble* coords=mesh->getCoords();
-+      data->resize(fld.size_,fld.nb_comp_);
-+      for (int i=0;i<fld.size_;i++)
-+      for (int j=0;j<fld.nb_comp_;j++)
-+        {
-+          (*data)(i,j)=coords->getIJ(i,j);
-+        }
-+      mesh->decrRef();
-+      
-+    }
-+  else if (fld.name_=="ELEMENTS")
-+    {
-+      // cerr<<"load elements "<<endl;
-+      Nom type_elem=get_geometry(fld.timestep_,fld.geometry_).elem_type_;
-+      LataDB::Element type =LataDB::element_type_from_string(type_elem);
-+      ArrOfInt filter=renum_conn(type);
-+      MEDCoupling::MEDCouplingUMesh * mesh=  MEDCoupling::ReadUMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
-+      const  MEDCoupling::DataArrayInt *elems = mesh->getNodalConnectivity(), *idx = mesh->getNodalConnectivityIndex();
-+      const int *ptr_elems=elems->getConstPointer(), *ptr_idx = idx->getConstPointer();
-+      data->resize(fld.size_,fld.nb_comp_);
-+      int compt=0;
-+      for (int i=0;i<fld.size_;i++)
-+      {
-+          compt++;
-+          for (int j=0;j<fld.nb_comp_;j++)
-+          {
-+              int reel = j + ptr_idx[i] + 1 < ptr_idx[i + 1];
-+              (*data)(i,filter.size_array()>0 ? filter[j] : j) = reel ? ptr_elems[compt] + 1 : 0;
-+              compt += reel;
-+          }
-+      }
-+      mesh->decrRef();
-+    }
-+  else if (fld.name_.debute_par("SOMMETS_IJK_"))
-+    {
-+      MEDCoupling::MEDCouplingMesh * mesh=  MEDCoupling::ReadMeshFromFile(fld.filename_.getString(),fld.geometry_.getString());
-+      data->resize(fld.size_,fld.nb_comp_);
-+      MEDCoupling::MEDCouplingCMesh* cmesh = dynamic_cast<MEDCoupling::MEDCouplingCMesh*>(mesh);
-+      int dir;
-+      if (fld.name_=="SOMMETS_IJK_I")
-+          dir=0;
-+      else  if (fld.name_=="SOMMETS_IJK_J")
-+          dir=1;
-+      else if (fld.name_=="SOMMETS_IJK_K")
-+          dir=2;
-+      else
-+          abort();
-+      const MEDCoupling::DataArrayDouble* coords=cmesh->getCoordsAt(dir);
-+      for (int i=0;i<fld.size_;i++)
-+      for (int j=0;j<fld.nb_comp_;j++)
-+        {
-+          (*data)(i,j)=coords->getIJ(i,j);
-+        }
-+      mesh->decrRef();
-+    }
-+  
-+  else 
-+    {
-+      
-+      data->resize(fld.size_,fld.nb_comp_);
-+     
-+      //  if (fld.timestep_==1) iter.first=1;
-+      // double t;
-+      Nom fieldname=fld.name_;
-+      fieldname+="_";
-+      fieldname+=fld.localisation_;
-+      fieldname+="_";
-+      fieldname+=fld.geometry_;
-+      
-+      int ok=0;
-+   
-+      vector<string> fields= MEDCoupling::GetAllFieldNamesOnMesh(fld.filename_.getString(),fld.geometry_.getString());
-+      
-+      for (int f=0;f<fields.size();f++)
-+      {
-+        if (fieldname==fields[f].c_str())
-+          {
-+            ok=1;
-+            break;
-+          }
-+      }
-+      if (ok==0)
-+      {
-+        fieldname=fld.name_;
-+      }
-+      vector<pair<pair<int,int>,double> > vtimes=MEDCoupling::GetAllFieldIterations(fld.filename_.getString(),fieldname.getString());
-+
-+      int it=fld.timestep_-1;
-+      pair <int,int> iter(fld.timestep_-1,-1);
-+      if (fld.timestep_==1) it=0;
-+      //Cerr<<iter.first <<" 00 "<<vtimes.size()<<finl;
-+    
-+      iter.first=vtimes[it].first.first;
-+      iter.second=vtimes[it].first.second;
-+      // Cerr<<"iiii"<<iter.first<<" "<< it<<finl;
-+      double t=MEDCoupling::GetTimeAttachedOnFieldIteration(fld.filename_.getString(),fieldname.getString(),iter.first,iter.second);
-+        
-+      
-+      MEDCoupling::TypeOfField type;
-+      if (fld.localisation_=="ELEM")
-+      type=MEDCoupling::ON_CELLS;
-+      else
-+      {
-+        type=MEDCoupling::ON_NODES;
-+        assert(fld.localisation_=="SOM");
-+      }
-+      MEDCoupling::MEDFileField1TS *  field ;
-+      
-+      
-+      field =  MEDCoupling::MEDFileField1TS::New(fld.filename_.getString(),fieldname.getString(),iter.first,iter.second);
-+
-+      const MEDCoupling::DataArrayDouble * values=field->getUndergroundDataArray();
-+     
-+      if (field->getNumberOfComponents()!=fld.nb_comp_)
-+      {
-+        cerr<<field->getNumberOfComponents()<<" test "<< endl;
-+        Journal()<<fieldname<<" not loaded "<<endl;
-+      }
-+      else
-+      {
-+        assert(field->getNumberOfComponents()==fld.nb_comp_);
-+        const double* ptr=values->getConstPointer();
-+        for (int i=0;i<fld.size_;i++)
-+          {
-+            for (int j=0;j<fld.nb_comp_;j++)
-+              {                
-+                (*data)(i,j)=ptr[i*fld.nb_comp_+j];
-+              }
-+          }
-+      }
-+      field->decrRef();
-+    }
-+}
-+#endif
-diff --git a/databases/readers/Lata/LataFilter.C b/databases/readers/Lata/LataFilter.C
-new file mode 100644
-index 0000000..5c4a764
---- /dev/null
-+++ b/databases/readers/Lata/LataFilter.C
-@@ -0,0 +1,1106 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <iostream>
-+#include <fstream>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <stdarg.h>
-+#include <math.h>
-+#include <assert.h>
-+#include <LataFilter.h>
-+#include <list>
-+#include <Static_Int_Lists.h>
-+#include <Connectivite_som_elem.h>
-+#include <LataDB.h>
-+#include <Lata_tools.h>
-+#include <Operator.h>
-+#include <errno.h>
-+#include <UserFields.h>
-+#include <string.h>
-+static const entier cache_info_level = 5;
-+static const entier filter_info_level = 4;
-+
-+entier LataOptions::read_int_opt(const Nom & s)
-+{
-+  const char *ptr = strstr(s, "=");
-+  if (!ptr) 
-+    ptr = s;
-+  errno = 0;
-+  char *errorptr = 0;
-+  entier x = strtol(ptr+1, &errorptr, 0 /* base 10 par defaut */);
-+  if (errno || *errorptr != 0) {
-+    Journal() << "LataOptions error reading int parameter: " << s << endl;
-+    throw;
-+  }
-+  return x;
-+}
-+
-+double LataOptions::read_float_opt(const Nom & s)
-+{
-+  const char *ptr = strstr(s, "=");
-+  if (!ptr) 
-+    ptr = s;
-+  errno = 0;
-+  char *errorptr = 0;
-+  double x = strtod(ptr+1, &errorptr);
-+  if (errno || *errorptr != 0) {
-+    Journal() << "LataOptions error reading float parameter: " << s << endl;
-+    throw;
-+  }
-+  return x;
-+}
-+
-+Nom LataOptions::read_string_opt(const Nom & s)
-+{
-+  const char *ptr = strstr(s, "=");
-+  if (!ptr) 
-+    return s;
-+  else
-+    return Nom(ptr+1);
-+}
-+
-+Noms extract_list(const Nom & n) 
-+{
-+  Noms liste;
-+  if (n == "")
-+    return liste;
-+  const char *ptr = n;
-+  Nom tmp("");
-+  while (*ptr) {
-+    if (*ptr == ',') {
-+      liste.add(tmp);
-+      tmp = "";
-+    } else {
-+      tmp += Nom(*ptr);
-+    }
-+  }
-+  liste.add(tmp);
-+  return liste;
-+}
-+
-+void LataOptions::describe()
-+{
-+  cerr << "Data processing options (provided by the LataFilter module)" << endl;
-+  cerr << " reconnect=tolerance : Find duplicate positions, and redefine connections to use" << endl;
-+  cerr << "           always the same positions. tolerance is the maximum distance between" << endl;
-+  cerr << "           positions that are considered equal." << endl;
-+  cerr << "           Useful for results of parallel runs, where the domain could" << endl;
-+  cerr << "           appear fragmented in as many subdomains as procs used." << endl;
-+  cerr << "           This operator modifies the loaded domain, does not create a new domain." << endl;
-+  cerr << " regularize=tolerance : Try to transform the irregular domain in a ijk domain." << endl;
-+  cerr << "            tolerance is the maximum dx, dy or dz between positions that are" << endl;
-+  cerr << "            considered to have the same x, y or z." << endl;
-+  cerr << "            !Attention! regularize recalculates positions, connections, and fields" << endl;
-+  cerr << "            Except in particularly simple cases, you cannot use a regularized domain" << endl;
-+  cerr << "            for a field that has not been regularized the same way." << endl;
-+  cerr << "            Create a new domain DOM -> DOM_IJK" << endl;
-+  cerr << " regularize_polyedre=N : tells how to convert polyedre elements to VTK:" << endl;
-+  cerr << "                         N=0 (default): any shape, handled as general VTK_CONVEX_POINT_SET" << endl;
-+  cerr << "                         N=1: all elements are extruded in the Z direction (faster and nicer)" << endl;
-+  cerr << " ijk_mesh_nb_parts=N : When loading an IJK mesh, automatically split the mesh into" << endl;
-+  cerr << "            N blocks (N must be <= number of elements in the K direction, usefull in visit)" << endl;
-+  cerr << " invalidate : together with regularize, create \"invalid positions\" and \"invalid connections\"" << endl;
-+  cerr << "            components. Otherwise only set the values of the field to zeroes." << endl;
-+  cerr << " extend_domain=n : When regularizing, add n nodes in each directions to have a layer" << endl;
-+  cerr << "           of invalid positions and connections." << endl;
-+  cerr << " dualmesh: Build and export the dual mesh" << endl;
-+  cerr << "           (control volume for the velocities in VEF)" << endl;
-+  cerr << "           data at faces become data at elements on the dual mesh." << endl;
-+  cerr << "           Create a new domain DOM -> DOM_dual" << endl;
-+  cerr << " facesmesh: Build and export the faces mesh" << endl;
-+  cerr << "           (control volume for the velocities in VEF)" << endl;
-+  cerr << "           data at faces become data at elements on the faces mesh." << endl;
-+  cerr << "           Create a new domain DOM -> DOM_faces" << endl;
-+
-+  //cerr << " ncmesh:   Build and export a non-conforming mesh" << endl;
-+  //cerr << "           (each mesh element has its proprietary nodes, elements are not topologically connected)" << endl;
-+  //cerr << "           face dependent data become position dependent data on the new mesh." << endl;
-+  //cerr << "           Create a new domain DOM -> DOM_nc" << endl;
-+  cerr << " boundarymesh: Build new domains containing the boundaries only" << endl;
-+  cerr << "            Create a new domain DOM -> DOM_Boundary" << endl;
-+  //cerr << " clipbox=xmin,ymin,zmin,xmax,ymax,zmax : remove from all meshes all nodes," << endl;
-+  //cerr << "           connections and faces outside of this box" << endl;
-+  cerr << " load_virtual_elements: Read the VIRTUAL_ELEMENTS data in the input database, if available" << endl
-+       << "           and merge nodes, elements and faces to each requested subdomain (using reconnect)" << endl;
-+  cerr << "           Does not create a new domain, but modifies the loaded domain" << endl;
-+  cerr << " ijk_virt_layer=N: load N layers of virtual elements if domain is ijk in lata file" << endl;
-+  cerr << " reconnect_tolerance=: specify tolerance for all reconnect operations" << endl;
-+  cerr << "           (reconnection is applied with load_virtual_elements)" << endl;
-+  cerr << " user_fields: activate the User_Fields module (WARN: this module is often application specific," << endl;
-+  cerr << "           it will fail if some requiered domains/fields are missing in the input database)" << endl;
-+  cerr << " export_fields_at_faces: tells to export fields located at faces" << endl;
-+  cerr << endl;
-+  user_fields_options_.print_help_option();
-+}
-+
-+entier LataOptions::parse_option(const Nom & s)
-+{
-+  if (s.debute_par("verbosity=")) {
-+    entier level = read_int_opt(s);
-+    set_Journal_level(level);
-+  } else if (s.debute_par("regularize=")) {
-+    regularize = true;
-+    regularize_tolerance = read_float_opt(s);
-+  } else if (s.debute_par("regularize_polyedre=")) {
-+    regularize_polyedre = read_int_opt(s);
-+  } else if (s.debute_par("extend_domain=")) {
-+    extend_domain = read_int_opt(s);
-+  } else if (s == "invalidate") {
-+    invalidate = true;
-+  } else if (s.debute_par("reconnect=")) {
-+    reconnect = true;
-+    reconnect_tolerance = read_float_opt(s);   
-+  } else if (s.debute_par("reconnect_tolerance=")) {
-+    reconnect_tolerance = read_float_opt(s);   
-+  } else if (s == "dualmesh") {
-+    dual_mesh = true;
-+  } else if (s == "nodualmesh") {
-+    dual_mesh = false;
-+  } else if (s == "ncmesh") {
-+    nc_mesh = true;
-+  } else if (s == "facesmesh") {
-+    faces_mesh = true;
-+  } else if (s == "nofacesmesh") {
-+    faces_mesh = false;
-+  } else if (s == "boundarymesh") {
-+    boundary_mesh = true;
-+  } else if (s.debute_par("clipbox=")) {
-+    Noms list = extract_list(((const char*)s)+8);
-+    if (list.size() != 6) {
-+      Journal() << "Error : clipbox parameters expects 6 values" << endl;
-+      throw;
-+    }
-+    for (entier i = 0; i < 3; i++) {
-+      clipbox_min[i] = read_float_opt(list[i]);
-+      clipbox_max[i] = read_float_opt(list[i+3]);
-+    }
-+  } else if (s == "load_virtual_elements") {
-+    load_virtual_elements = true;
-+  } else if (s == "user_fields") {
-+    user_fields_ = true;
-+    Journal() << "Option: User_fields ON" << endl;
-+  } else if (s.debute_par("ijk_mesh_nb_parts")) {
-+    ijk_mesh_nb_parts_ = read_int_opt(s);
-+  } else if (s == "export_fields_at_faces") {
-+    export_fields_at_faces_ = 1;
-+  } else if (s.debute_par("ijk_virt_layer=")) {
-+    ijk_virt_layer = read_int_opt(s);
-+  } else
-+    return user_fields_options_.parse_option(s);;
-+  return 1;
-+}
-+
-+void LataFilterCache::set_cache_properties(entier clear_on_tstep_change, BigEntier mem_limit)
-+{ 
-+  clear_cache_on_tstep_change_ = clear_on_tstep_change;
-+  cache_memory_limit_ = mem_limit;
-+}
-+
-+// Description: if an entry with "id" tag and timestep exists in the cache,
-+//  returns the entry, otherwise returns a reference to an empty DERIV that
-+//  is stored in the cache and stores the associated "id" and timestep.
-+//  The entry is locked and given a new last_access_time_ to show that it has
-+//  been used recently.
-+//  The entry must be released by release_item() when we are finished working
-+//  with it.
-+LataDeriv<LataObject> & LataFilterCache::get_item_(const Nom & id, entier tstep)
-+{
-+  entier i;
-+  const entier n = data_.size();
-+  for (i = 0; i < n; i++) {
-+    const DataCacheItem & item = data_[i];
-+    if (item.id_ == id && item.tstep_ == tstep)
-+      break;
-+  }
-+  if (i == n) {
-+    // Look for an empty slot:
-+    for (i = 0; i < n; i++)
-+      if (data_[i].id_ == "??")
-+        break;
-+    // No empty slot: create a new slot:
-+    if (i == n)
-+      data_.add();
-+    DataCacheItem & item = data_[i];
-+    item.id_ = id;
-+    item.tstep_ = tstep;
-+    item.lock_ = 0;
-+    Journal(cache_info_level) << "LataFilterCache<C>::get " << id << " (new cache entry " << i << ")." << endl;
-+  } else {
-+    Journal(cache_info_level) << "LataFilterCache<C>::get " << id << " (existing cache entry " << i << ")." << endl;
-+  }
-+  // Mark item and lock it:
-+  DataCacheItem & item = data_[i];
-+  item.last_access_time_ = cache_data_access_count_++;
-+  item.lock_++;
-+  return item.item_;
-+}
-+
-+
-+// Description: tells that if needed the item can be deleted from cache
-+//  (there is no reference to it anymore outside of the cache).
-+//  We update the memory size of this item here.
-+void LataFilterCache::release_item(const Nom & id)
-+{
-+  Journal(cache_info_level) << "LataFilterCache::release_item " << id << endl;
-+  const entier n = data_.size();
-+  entier i;
-+  for (i = 0; i < n; i++) {
-+    const DataCacheItem & item = data_[i];
-+    if (item.id_ == id)
-+      break;
-+  }
-+  if (i == n) {
-+    Journal() << "LataFilterCache::release_item internal error: unknown item " << id << endl;
-+    throw;
-+  }
-+  if (data_[i].lock_ <= 0) {
-+    Journal() << "LataFilterCache::release_item internal error: item is already unlocked" << id << endl;
-+    throw;
-+  }
-+  data_[i].last_access_time_ = cache_data_access_count_++;
-+  data_[i].lock_--;
-+  if (data_[i].item_.non_nul())
-+    data_[i].memory_size_ = data_[i].item_.valeur().compute_memory_size();
-+  else
-+    data_[i].memory_size_ = 0;
-+}
-+
-+// Description: removes from the cache the oldest items until the total
-+//  memory used by the cache is below max_mem_size (in bytes), and
-+//  if tstep_to_keep > 0, also removes all timesteps except 0 and tstep_to_keep
-+void LataFilterCache::cleanup_cache(entier tstep_to_keep)
-+{
-+  if (clear_cache_on_tstep_change_ && tstep_to_keep > 0) {
-+    Journal(cache_info_level) << "LataFilterCache::clear_cache_tsteps except 0 and " << tstep_to_keep << endl;
-+    const entier n = data_.size();
-+    for (entier i = 0; i < n; i++) {
-+      DataCacheItem & item = data_[i];
-+      if (item.id_ != "??") {
-+        if (item.tstep_ == 0 || item.tstep_ == tstep_to_keep) {
-+          Journal(cache_info_level+1) << " item " << item.id_ << " timestep " << item.tstep_ << " kept" << endl;
-+        } else if (item.lock_) {
-+          Journal(cache_info_level+1) << " item " << item.id_ << " locked" << endl;
-+        } else {
-+          Journal(cache_info_level) << " deleting item " << item.id_ << " " << item.tstep_ << endl;
-+          item.item_.reset();
-+          item.id_ = "??";
-+          item.tstep_ = -1;
-+        }
-+      }
-+    }
-+  }
-+  if (cache_memory_limit_ >= 0) {
-+    Journal(cache_info_level) << "LataFilterCache::clear_cache_memory " << cache_memory_limit_ << endl;
-+    do {
-+      const entier n = data_.size();
-+      // Scan cached data, looking for the oldest item and summing up memory
-+      BigEntier total_memsize = 0;
-+      entier oldest = -1;
-+      BigEntier oldest_time = cache_data_access_count_;
-+      for (entier i = 0; i < n; i++) {
-+        const DataCacheItem & item = data_[i];
-+        if (item.id_ != "??") {
-+          total_memsize += item.memory_size_;
-+          if (!item.lock_ && item.last_access_time_ < oldest_time) {
-+            oldest_time = item.last_access_time_;
-+            oldest = i;
-+          }
-+        }
-+      }
-+      if (oldest < 0 || total_memsize < cache_memory_limit_) 
-+        break;
-+      
-+      DataCacheItem & item = data_[oldest];
-+      Journal(cache_info_level) << " deleting item " << item.id_ << " " << item.tstep_ << endl;
-+      item.item_.reset();
-+      item.id_ = "??";
-+      item.tstep_ = -1;
-+    } while(1);
-+  }
-+}
-+
-+// Description: Cleanup everything, associate the lata_db and fills metadata information.
-+void LataFilter::initialize(const LataOptions & opt, const LataDB & lata_db)
-+{
-+  opt_ = opt;
-+  data_cache_.reset();
-+  lataDB__ = &lata_db;
-+  if (opt_.user_fields_) {
-+    user_fields_.instancie(UserFields);
-+    user_fields_.valeur().set_options(opt_.user_fields_options_);
-+  }
-+
-+  get_all_metadata(geoms_metadata_, fields_metadata_);
-+}
-+
-+void LataFilter::set_cache_properties(BigEntier max_memory, const entier keep_all_timesteps)
-+{
-+  data_cache_.set_cache_properties(!keep_all_timesteps, max_memory);
-+}
-+
-+// Description: Return the number of timesteps in the database
-+//   (=number of physical timesteps + one containing global definitions at timestep 0)
-+entier LataFilter::get_nb_timesteps() const
-+{
-+  return lataDB().nb_timesteps();
-+}
-+
-+// Description: Return the physical time for this timestep.
-+//  returns -1.0 for timestep 0 (global definitions)
-+double LataFilter::get_timestep(entier i) const
-+{
-+  if (i == 0)
-+    return -1.0;
-+  else
-+    return lataDB().get_time(i);
-+}
-+
-+static void add_fields_to_metadata_list(const LataDB & lataDB, 
-+                                        const Nom & lata_geom, 
-+                                        const Nom & dest_geom, 
-+                                        const Nom & options,
-+                                        entier dim,
-+                                        LataVector<LataFieldMetaData> & fields_data,
-+                                        const Motcle & source,
-+                                        const Nom & source_domain)
-+{
-+  if (lataDB.nb_timesteps()<2) return;
-+  // Query for existing fields in the latadb :
-+  Field_UNames lata_fields = lataDB.field_unames(1, lata_geom, "*", LataDB::FIRST_AND_CURRENT);
-+  const entier nb_fields = lata_fields.size();
-+  for (entier i_field = 0; i_field < nb_fields; i_field++) {
-+    const LataDBField & lata_field = lataDB.get_field(1, lata_fields[i_field], LataDB::FIRST_AND_CURRENT);
-+    LataField_base::Elem_som loc = LataField_base::localisation_from_string(lata_field.localisation_);
-+
-+    // Hidden special fields
-+    if (Motcle(lata_field.name_) == "INVALID_CONNECTIONS")
-+      continue;
-+   if (Motcle(lata_field.name_) == "ELEMENTS")
-+      continue;
-+   if (Motcle(lata_field.name_) == "FACES")
-+      continue;
-+   if (Motcle(lata_field.name_) == "ELEM_FACES")
-+     continue;
-+    LataFieldMetaData data;
-+    data.name_ = lata_field.name_;
-+    data.geometry_name_ = dest_geom;
-+    data.component_names_ = lata_field.component_names_;
-+    data.nb_components_ = lata_field.nb_comp_;
-+    data.source_localisation_ = lata_field.localisation_;
-+
-+    if (options.find("to_vector")>=0) {
-+      data.is_vector_ = 1;
-+      data.nb_components_ = dim;
-+    } else 
-+      data.is_vector_ = (lata_field.nature_ == LataDBField::VECTOR);
-+
-+    if (options.find("to_elem")>=0)
-+      data.localisation_ = LataField_base::ELEM;
-+    else if (options.find("to_som")>=0)
-+      data.localisation_ = LataField_base::SOM;
-+    else if (options.find("to_faces")>=0)
-+      data.localisation_ = LataField_base::FACES;
-+    else
-+      data.localisation_ = loc;
-+
-+    data.source_ = source;
-+    data.uname_ = Field_UName(data.geometry_name_, 
-+                              data.name_, 
-+                              LataField_base::localisation_to_string(data.localisation_));
-+    data.source_field_ = Field_UName(source_domain,
-+                                     data.name_,
-+                                     lata_fields[i_field].get_localisation());
-+
-+    if ((loc == LataField_base::ELEM && options.find("from_elem")>=0)
-+        || (loc == LataField_base::SOM && options.find("from_som")>=0)
-+        || (loc == LataField_base::FACES && options.find("from_faces")>=0)) {
-+      Journal(filter_info_level) << " register field metadata: " << data.uname_ << endl;
-+      fields_data.add(data);
-+    }
-+  }
-+}
-+
-+// Process the content of the source LataDB structure and builds the metadata for
-+//  all geometries and fields that the filter can export (depending on options,
-+//  for example, provide dual mesh geometry and fields only if dualmesh option is on).
-+void LataFilter::get_all_metadata(LataVector<LataGeometryMetaData> & geoms_data, LataVector<LataFieldMetaData> & fields_data)
-+{
-+  geoms_data.reset();
-+  fields_data.reset();
-+  entier current_tstep = 1;
-+  // If no real timestep, just check timestep 0
-+  if (lataDB().nb_timesteps() < 2)
-+    current_tstep = 0;
-+  Noms lata_geoms_names = lataDB().geometry_names(current_tstep, LataDB::FIRST_AND_CURRENT);
-+  const entier nb_geoms = lata_geoms_names.size();
-+  for (entier i_geom = 0; i_geom < nb_geoms; i_geom++) {
-+    // Name of the current geometry (from lataDB)
-+    const Nom & lata_geom_name = lata_geoms_names[i_geom];
-+    const LataDBGeometry & lata_geom = lataDB().get_geometry(current_tstep, lata_geom_name, LataDB::FIRST_AND_CURRENT);
-+    // Query properties from LataDB:
-+    // Is it a dynamic mesh ?
-+    const entier dynamic = lata_geom.timestep_ > 0;
-+    // Element type ?
-+    Domain::Element element_type = Domain::element_type_from_string(lata_geom.elem_type_);
-+    // Query for dimension
-+    const entier domain_already_ijk = lataDB().field_exists(current_tstep, lata_geom_name, "SOMMETS_IJK_I", LataDB::FIRST_AND_CURRENT);
-+
-+    // Do we have faces ?
-+    const entier have_faces = 
-+      domain_already_ijk ||
-+      (lataDB().field_exists(current_tstep, lata_geom_name, "FACES", LataDB::FIRST_AND_CURRENT)
-+       && lataDB().field_exists(current_tstep, lata_geom_name, "ELEM_FACES", LataDB::FIRST_AND_CURRENT));
-+
-+    entier dim = 1;
-+    // Query for number of blocks in the lata file:
-+    entier nblocks = 1;
-+    if (domain_already_ijk) {
-+      if (lataDB().field_exists(current_tstep, lata_geom_name, "SOMMETS_IJK_K", LataDB::FIRST_AND_CURRENT))
-+        dim = 3;
-+      else
-+        dim = 2;
-+      nblocks = opt_.ijk_mesh_nb_parts_;
-+      Nom nom_sommets;
-+      if (dim == 2)
-+        nom_sommets = "SOMMETS_IJK_J";
-+      else
-+        nom_sommets = "SOMMETS_IJK_K";
-+      const LataDBField & coord = lataDB().get_field(current_tstep, lata_geom_name, nom_sommets, "", LataDB::FIRST_AND_CURRENT);
-+      // Nombre d'elements dans la direction du decoupage parallele:
-+      const entier nelem = coord.size_ - 1;
-+      // Si les tranches sont trop petites diminuer le nombre de blocs
-+      if (nblocks > (nelem + 3) / 4)
-+        nblocks = (nelem + 3) / 4;
-+    } else {
-+      dim = lataDB().get_field(current_tstep, lata_geom_name, "SOMMETS", "*", LataDB::FIRST_AND_CURRENT).nb_comp_;
-+      if (lataDB().field_exists(current_tstep, lata_geom_name, "JOINTS_SOMMETS", LataDB::FIRST_AND_CURRENT))
-+        nblocks = lataDB().get_field(current_tstep, lata_geom_name, "JOINTS_SOMMETS", "*", LataDB::FIRST_AND_CURRENT).size_;
-+    }
-+
-+    // Initialize data common to all domains:
-+    LataGeometryMetaData data;
-+    data.dynamic_ = dynamic;
-+    data.dimension_ = dim;
-+    data.element_type_ = element_type;
-+    data.is_ijk_=domain_already_ijk;
-+     
-+    // If we reconnect all subdomains, always load all of them:
-+    if (!opt_.reconnect)
-+      data.nblocks_ = nblocks;
-+    else
-+      data.nblocks_ = 1;
-+
-+    data.internal_name_ = lata_geom_name;
-+    data.displayed_name_ = lata_geom_name;
-+    
-+    Nom separ("boundaries_");
-+    int m=data.displayed_name_.find(separ);
-+    if (m>0)
-+      {
-+      const Nom& name= data.displayed_name_;
-+      // on remplace boundaries_ par boundaries/
-+      const char* jj =name;
-+      Nom disp(name);
-+      disp.prefix(jj+m-1);
-+      // GF le nom du domaine existe t il siuoi on a peut etre postraite sur un bord
-+      if  (lata_geoms_names.rang(disp)>-1)
-+        {
-+          Nom bord(jj+m+separ.longueur()-1);
-+          disp+=Nom("_boundaries/");
-+          disp+=bord;
-+          data.displayed_name_=disp;
-+        }
-+      }
-+    //   cerr<< data.displayed_name_<<endl;
-+    data.source_ = "latadb";
-+    Journal(filter_info_level) << " metadata: adding geometry " << lata_geom_name << " displayed name=" << data.displayed_name_ << endl;
-+    geoms_data.add(data);
-+    // Add fields at som and elem:
-+    add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                "from_elem,from_som,from_faces", dim, fields_data,
-+                                "latadb",
-+                                "??");
-+    // It is regularizable ?
-+    entier regularizable = (((element_type == Domain::quadri)&&(data.dimension_==2)) || ((element_type == Domain::hexa)&&(data.dimension_==3)))
-+      && (lata_geom.elem_type_ != "HEXAEDRE_AXI") && (lata_geom.elem_type_ != "RECTANGLE_AXI");
-+    Journal(filter_info_level) << " metadata: geometry " << lata_geom_name << " element type says regularizable=" << regularizable << endl;
-+    if (regularizable && ((opt_.regularize_tolerance < 0) || (!opt_.regularize))) {
-+      regularizable = 0;
-+      Journal(filter_info_level) << " regularize option not set: don't build ijk domain" << endl;
-+    }
-+    if (regularizable && domain_already_ijk) {
-+      regularizable = 0;
-+      Journal(filter_info_level) << " domain is already IJK: do not regularize" << endl;
-+    }
-+
-+    // opt_.regularize == 2 means: provide ijk only if faces are present
-+    if (regularizable && opt_.regularize == 2) {
-+      if (!have_faces) {
-+        Journal(filter_info_level) << " regularize option==2 and no faces => do not regularize" << endl;
-+        regularizable = 0;
-+      }
-+    }
-+    if (regularizable) {
-+      data.internal_name_ = lata_geom_name;
-+      data.internal_name_ += "_IJK";
-+      data.is_ijk_=1;
-+      data.displayed_name_ = lata_geom_name;
-+      data.source_ = "operator_ijk";
-+      data.source_domain_ = lata_geom_name;
-+      geoms_data.add(data);
-+      Journal(filter_info_level) << " metadata: adding geometry " << data.internal_name_ << " displayed name=" << data.displayed_name_ << endl;
-+      // Add fields at som and elem:
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  "from_elem,from_som,from_faces", dim, fields_data,
-+                                  "operator_ijk",
-+                                  data.source_domain_);
-+    }
-+
-+    // Provide dual mesh
-+    if (opt_.dual_mesh && have_faces) {
-+      data.internal_name_ = lata_geom_name;
-+      
-+      // If it's quadri or hexa, we need the regular mesh
-+      data.source_domain_ = data.internal_name_;
-+      if (regularizable) {
-+        data.internal_name_ += "_IJK";
-+        data.source_domain_ += "_IJK";
-+      data.is_ijk_=1;
-+      }
-+      data.internal_name_ += "_dual";
-+      data.displayed_name_ += "_dual";
-+
-+      data.source_ = "operator_dual";
-+      geoms_data.add(data);
-+      Journal(filter_info_level) << " metadata: adding geometry " << data.internal_name_ << " displayed name=" << data.displayed_name_ << endl;
-+      // Add fields at faces, localisation will be at elements,
-+      //  forced to vector type if vdf:
-+      Nom options("from_faces,to_elem");
-+      if (regularizable)
-+        options += ",to_vector";
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  options, dim, fields_data,
-+                                  "operator_dual",
-+                                  data.source_domain_);      
-+    }
-+
-+    // Provide nc mesh if possible
-+    if (opt_.nc_mesh && have_faces && !regularizable /* doesn't work for vdf */) {
-+      data.internal_name_ = lata_geom_name;
-+      data.internal_name_ += "_nc";
-+      data.displayed_name_ = data.internal_name_;
-+      data.source_ = "operator_nc";
-+      data.source_domain_ = lata_geom_name;
-+      geoms_data.add(data);
-+      Journal(filter_info_level) << " metadata: adding geometry " << data.internal_name_ << " displayed name=" << data.displayed_name_ << endl;
-+      // Add fields at faces, localisation will be at nodes
-+      Nom options("from_faces,to_som");
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  options, dim, fields_data,
-+                                  "operator_nc",
-+                                  data.source_domain_);
-+    }
-+    // Provide faces mesh if possible
-+    if (opt_.faces_mesh && have_faces && !regularizable /* doesn't work for vdf */ &&  !(domain_already_ijk) ) {
-+   
-+      data.internal_name_ = lata_geom_name;
-+      data.internal_name_ += "_centerfaces";
-+      data.displayed_name_ = data.internal_name_;
-+      data.source_ = "operator_faces";
-+      data.source_domain_ = lata_geom_name;
-+      if (data.element_type_ == Domain::triangle)
-+        data.element_type_=Domain::line;
-+      else if ( data.element_type_ == Domain::tetra)
-+        data.element_type_=Domain::triangle;
-+
-+      geoms_data.add(data);
-+      Journal(filter_info_level) << " metadata: adding geometry " << data.internal_name_ << " displayed name=" << data.displayed_name_ << endl;
-+      // Add fields at faces, localisation will be at nodes
-+      Nom options("from_faces,to_elem");
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  options, dim, fields_data,
-+                                  "operator_faces",
-+                                  data.source_domain_);
-+    }
-+    // Provide boundary mesh
-+    if (opt_.boundary_mesh && (element_type == Domain::hexa || element_type == Domain::tetra)) {
-+      data.internal_name_ = lata_geom_name;
-+      data.internal_name_ += "_Boundary";
-+      data.displayed_name_ = data.internal_name_;
-+      data.source_ = "operator_boundary";
-+      data.source_domain_ = lata_geom_name;
-+      geoms_data.add(data);
-+      Journal(filter_info_level) << " metadata: adding geometry " << data.internal_name_ << " displayed name=" << data.displayed_name_ << endl;
-+      Nom options("from_elem,from_som");
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  options, dim, fields_data,
-+                                  "operator_boundary",
-+                                  data.source_domain_);
-+      options = "from_faces,to_elem";
-+      add_fields_to_metadata_list(lataDB(), lata_geom_name, data.internal_name_,
-+                                  options, dim, fields_data,
-+                                  "operator_boundary",
-+                                  data.source_domain_);
-+    }
-+  }
-+
-+  if (user_fields_.non_nul())
-+    user_fields_.valeur().new_fields_metadata(*this, fields_data);
-+}
-+
-+// Description: Return a list of domain names available from get_geometry_metadata()
-+//  and that we want to show to the user.
-+//  This includes the domains loaded from the lata file plus new constructed domains
-+//  (nc_mesh, dual_mesh, boundary_mesh, etc) if requested in options and if available
-+//  (depending if requiered data (eg faces, ...)
-+Noms LataFilter::get_exportable_geometry_names() const
-+{
-+  Noms names;
-+  entier i;
-+  for (i = 0; i < geoms_metadata_.size(); i++)
-+    names.add(geoms_metadata_[i].internal_name_);
-+
-+  // If an IJK domain is here, don't show the original domain:
-+  Noms names2;
-+  for (i = 0; i < names.size(); i++) {
-+    Nom n(names[i]);
-+    n += "_IJK";
-+    if (names.rang(n) < 0)
-+      names2.add(names[i]);
-+  }
-+  return names2;
-+}
-+
-+// Description: the same, with field names...
-+//  If geometry=="*", returns all fields
-+//  Currently, doesn't show fields located at faces...
-+Field_UNames LataFilter::get_exportable_field_unames(const char * geometry) const
-+{
-+  Field_UNames unames;
-+  Motcle geom(geometry);
-+  for (entier i = 0; i < fields_metadata_.size(); i++)
-+    if (geom == fields_metadata_[i].geometry_name_ || geom == "*") 
-+      // Do not show faces located fields to the user...
-+      if (fields_metadata_[i].localisation_ != LataField_base::FACES || opt_.export_fields_at_faces_)
-+        unames.add(fields_metadata_[i].uname_);
-+
-+  return unames;
-+}
-+
-+// Description: fill "data" for the requested "geometry". "geometry" must be a name
-+//  returned by get_exportable_geometry_names()
-+const LataGeometryMetaData & LataFilter::get_geometry_metadata(const char * geometry) const
-+{
-+  Motcle geom(geometry);
-+  for (entier i = 0; i < geoms_metadata_.size(); i++)
-+    if (geom == geoms_metadata_[i].internal_name_)
-+      return geoms_metadata_[i];
-+
-+  Journal() << "Error in LataFilter::get_geometry_metadata: unknown geometry " << geometry << endl;
-+  throw LataError(LataError::INVALID_DOMAIN,"unknown geometry");
-+  return geoms_metadata_[0];
-+}
-+
-+// Description: fill "data" for the requested "geometry/field". "geometry"  and "field" must be names
-+//  returned by get_exportable_geometry_names() and get_exportable_field_names()
-+const LataFieldMetaData & LataFilter::get_field_metadata(const Field_UName & uname) const
-+{
-+  for (entier i = 0; i < fields_metadata_.size(); i++)
-+    if (fields_metadata_[i].uname_ == uname)
-+      return fields_metadata_[i];
-+  
-+  Journal() << "Error in LataFilter::get_field_metadata: unknown field " << uname << endl;
-+  throw LataError(LataError::INVALID_COMPONENT,"unknown field");
-+  return fields_metadata_[0];
-+}
-+
-+// Description: 
-+//  Returns a reference to the requested geometry.
-+//  If the geometry is not found at the requested timestep, it
-+//  is seached in the first timestep.
-+//  If the geometry does not exist in the cache, all needed data is loaded
-+//   and the geometry is allocated and built in the internal cache.
-+//  The reference is valid until the user calls release_geometry()
-+//  The user MUST call release_geometry() to allow the data to be
-+//   removed from the data cache.
-+const Domain & LataFilter::get_geometry(const Domain_Id & id)
-+{
-+  Journal(filter_info_level) << "LataFilter::get_geometry " 
-+                             << id.name_ << " time=" << id.timestep_ 
-+                             << " bloc=" << id.block_ << endl;
-+  data_cache_.cleanup_cache(id.timestep_);
-+
-+  Domain_Id requested_id(id);
-+  // Get the real timestep where this domain is stored:
-+  const LataGeometryMetaData & geom_metadata = get_geometry_metadata(id.name_);
-+  if (geom_metadata.dynamic_) 
-+    requested_id.timestep_ = id.timestep_;
-+  else
-+    requested_id.timestep_ = 0;
-+
-+  LataDeriv<Domain> & dom_ptr = get_cached_domain(requested_id);
-+  if (!dom_ptr.non_nul()) {
-+    if (geom_metadata.source_ == "latadb") {
-+      // Request for a native domain : load it from lataDB
-+      // If reconnect and loading all subdomains, go ! Don't store the operator in cache since it's
-+      //  not required to process fields.
-+      
-+      // Is it a structured or unstructured mesh ?
-+      if (lataDB().field_exists(requested_id.timestep_, requested_id.name_, "SOMMETS")) 
-+        {
-+          DomainUnstructured & dom = dom_ptr.instancie(DomainUnstructured);
-+      
-+          if (opt_.reconnect) {
-+            // Bloc demande, peut etre le bloc 0 ou le bloc -1:
-+            const entier req_block = requested_id.block_;
-+            if (requested_id.block_ > 0) {
-+              Cerr << "Error: requesting block " << requested_id.block_ << " with reconnect option" << endl;
-+            throw;
-+            }
-+            requested_id.block_ = -1; // load all blocks
-+            dom.fill_domain_from_lataDB(lataDB(), requested_id, 1 /* faces */, 0);
-+            Reconnect::reconnect_geometry(dom, opt_.reconnect_tolerance);
-+            dom.id_.block_ = req_block;
-+          } else {
-+            dom.fill_domain_from_lataDB(lataDB(), requested_id, 1 /* faces */, opt_.load_virtual_elements ? 1 : 0);
-+            if (opt_.load_virtual_elements && dom.nb_virt_items(LataField_base::ELEM) > 0) {
-+              Reconnect::reconnect_geometry(dom, opt_.reconnect_tolerance,
-+                                            dom.nb_nodes() - dom.nb_virt_items(LataField_base::SOM));
-+            }
-+          }
-+        }
-+      else
-+        {
-+          // Structured ijk:
-+          DomainIJK & dom = dom_ptr.instancie(DomainIJK);
-+          if (opt_.reconnect || requested_id.block_ < 0) {
-+            dom.fill_domain_from_lataDB(lataDB(), requested_id, 1 /* parallel splitting */, 
-+                                        0 /* no virtual elements */);
-+          } else {
-+            const entier nparts = opt_.ijk_mesh_nb_parts_;
-+            const entier virtual_size = opt_.load_virtual_elements ? opt_.ijk_virt_layer : 0;
-+            dom.fill_domain_from_lataDB(lataDB(), requested_id, nparts /* parallel splitting */, 
-+                                        virtual_size /* with virtual elements */);
-+          }
-+        }
-+    } else if (geom_metadata.source_.debute_par("OPERATOR")) {
-+      const Domain & src_domain = get_geometry(Domain_Id(geom_metadata.source_domain_, 
-+                                                         requested_id.timestep_,
-+                                                         requested_id.block_));
-+      Operator & op = get_set_operator(requested_id);
-+      op.build_geometry(src_domain, dom_ptr);
-+      dom_ptr.valeur().id_ = requested_id;
-+      release_cached_operator(requested_id);
-+      release_geometry(src_domain);
-+    } else {
-+      Journal() << "Unknown source in geometry metadata " << geom_metadata.source_ << endl;
-+      throw;
-+    }
-+  }
-+
-+  return dom_ptr.valeur();
-+}
-+
-+Operator & LataFilter::get_set_operator(const Domain_Id & id)
-+{
-+  LataDeriv<Operator> & op_ptr  = get_cached_operator(id);
-+  if (!op_ptr.non_nul()) {
-+    // Operator not in the cache ? Build it:
-+    if (id.name_.finit_par("_IJK")) {
-+      OperatorRegularize & op = op_ptr.instancie(OperatorRegularize);
-+      op.set_tolerance(opt_.regularize_tolerance);
-+      op.set_extend_layer(opt_.extend_domain);
-+    } else if (id.name_.finit_par("_dual")) {
-+      op_ptr.instancie(OperatorDualMesh);
-+    } else if (id.name_.finit_par("_Boundary")) {
-+      op_ptr.instancie(OperatorBoundary);
-+    } else if (id.name_.finit_par("_centerfaces")) {
-+      op_ptr.instancie(OperatorFacesMesh);
-+    } else {
-+      Journal() << "Internal error in LataFilter::get_operator: forgot to implement operator choice for " << id.name_ << endl;
-+      throw;
-+    }
-+  }
-+  return op_ptr.valeur();
-+}
-+
-+
-+// Description: returns the requested field, computing it if it is not
-+//  already in the cache. You MUST call release_field() on the returned field
-+//  when you don't need it any more...
-+//  See also class Field_Id
-+const LataField_base & LataFilter::get_field(const Field_Id & id)
-+{
-+  Journal(filter_info_level) << "LataFilter::get_field " 
-+                             << id.uname_ << " time=" << id.timestep_ 
-+                             << " bloc=" << id.block_ << endl;
-+
-+  data_cache_.cleanup_cache(id.timestep_);
-+
-+  const LataFieldMetaData & field_metadata = get_field_metadata(id.uname_);
-+
-+  LataDeriv<LataField_base> & field_ptr = get_cached_field(id);
-+  if (!field_ptr.non_nul()) {
-+    if (field_metadata.source_ == "latadb") {
-+      // Request for a native field : load it from lataDB
-+      const Domain & dom = get_geometry(id);
-+      dom.fill_field_from_lataDB(lataDB(), id, field_ptr);
-+      release_geometry(dom);
-+    } else if (field_metadata.source_.debute_par("OPERATOR")) {
-+      const Field_Id src_id(field_metadata.source_field_,
-+                            id.timestep_,
-+                            id.block_);
-+      const Domain & src_domain = get_geometry(src_id);
-+      const LataField_base & src_field = get_field(src_id);
-+      const Domain & dest_domain = get_geometry(id);
-+      Operator & op = get_set_operator(dest_domain.id_);
-+      op.build_field(src_domain, src_field, dest_domain, field_ptr);
-+      field_ptr.valeur().id_ = Field_Id(field_metadata.uname_, src_field.id_.timestep_, src_field.id_.block_);
-+      release_field(src_field);
-+      release_geometry(src_domain);
-+      release_geometry(dest_domain);
-+      release_cached_operator(dest_domain.id_);
-+    } else if (field_metadata.source_ == "user_fields") {
-+      Field<FloatTab> & f = field_ptr.instancie(Field<FloatTab> );
-+      f = user_fields_.valeur().get_field(id);
-+      // Force field id to correct value:
-+      f.id_ = id;
-+      f.component_names_ = field_metadata.component_names_;
-+      f.nature_ = field_metadata.is_vector_ ? LataDBField::VECTOR : LataDBField::SCALAR;
-+      f.localisation_ = field_metadata.localisation_;
-+    }
-+  }
-+
-+  return field_ptr.valeur();
-+}
-+
-+// Description: returns the requested float field, computing it if it is not
-+//  already in the cache. You MUST call release_field() on the returned field
-+//  when you don't need it any more...
-+//  See also class Field_Id
-+const FieldFloat & LataFilter::get_float_field(const Field_Id & id) 
-+{
-+  const LataField_base & field = get_field(id);
-+  const FieldFloat * float_field_ptr = dynamic_cast<const FieldFloat*>(&field);
-+  if (! float_field_ptr) { /*assert(! float_field_ptr);*/ throw LataError(LataError::INVALID_COMPONENT,"unknown field");}
-+  const FieldFloat & fld = *float_field_ptr;
-+  return fld;
-+}
-+void LataFilter::release_geometry(const Domain & dom)
-+{
-+  Journal(filter_info_level) << "LataFilter::release_geometry " 
-+                             << dom.id_.name_ << " time=" << dom.id_.timestep_ 
-+                             << " bloc=" << dom.id_.block_ << endl;
-+  release_cached_domain(dom.id_);
-+}
-+
-+void LataFilter::release_field(const LataField_base & field)
-+{
-+  Journal(filter_info_level) << "LataFilter::release_field " 
-+                             << field.id_.uname_ << " time=" << field.id_.timestep_ 
-+                             << " bloc=" << field.id_.block_ << endl;
-+  release_cached_field(field.id_);
-+}
-+  
-+void build_mangeld_domain_name(const Domain_Id & id, Nom & name)
-+{
-+  name = id.name_;
-+  name += "_";
-+  name += Nom(id.timestep_);
-+  name += "_";
-+  name += Nom(id.block_);
-+  name.majuscule();
-+}
-+
-+void build_mangeld_field_name(const Field_Id & id, Nom & name)
-+{
-+  name = id.uname_.build_string();
-+  name += "_";
-+  name += Nom(id.timestep_);
-+  name += "_";
-+  name += Nom(id.block_);
-+  name.majuscule();
-+}
-+
-+LataDeriv<LataField_base> & LataFilter::get_cached_field(const Field_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_field_name(id, n);
-+  return data_cache_.get_item<LataDeriv<LataField_base> >(n, id.timestep_);
-+}
-+LataDeriv<Domain> &     LataFilter::get_cached_domain(const Domain_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_domain_name(id, n);
-+  return data_cache_.get_item<LataDeriv<Domain> >(n, id.timestep_);
-+}
-+LataDeriv<Operator> &   LataFilter::get_cached_operator(const Domain_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_domain_name(id, n);
-+  n += "_OP";
-+  return data_cache_.get_item<LataDeriv<Operator> >(n, id.timestep_);  
-+}
-+void LataFilter::release_cached_domain(const Domain_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_domain_name(id, n);
-+  data_cache_.release_item(n);
-+}
-+void LataFilter::release_cached_field(const Field_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_field_name(id, n);
-+  data_cache_.release_item(n);
-+}
-+void LataFilter::release_cached_operator(const Domain_Id& id)
-+{
-+  Nom n;
-+  build_mangeld_domain_name(id, n);
-+  n += "_OP";
-+  data_cache_.release_item(n);  
-+}
-+
-+void LataOptions::extract_path_basename(const char * s, Nom & path_prefix, Nom & basename)
-+{
-+  int i;
-+  for (i=(int)strlen(s)-1;i>=0;i--)
-+    if ((s[i]==PATH_SEPARATOR) ||(s[i]=='\\'))
-+      break;
-+  path_prefix = "";
-+  int j;
-+  for (j = 0; j <= i; j++)
-+    path_prefix += Nom(s[j]);
-+  
-+  // Parse basename : if extension given, remove it
-+  int n = (int)strlen(s);
-+  if (n > 5 && strcmp(s+n-5,".lata") == 0)
-+    n -= 5;
-+  basename = "";
-+  for (j = i+1; j < n; j++)
-+    basename += Nom(s[j]);
-+  //  Journal(9)<<" prefix "<<path_prefix<< " "<<i<<endl;
-+}
-+
-+LataOptions::LataOptions()
-+{
-+  dual_mesh = false;
-+  faces_mesh=false;
-+  nc_mesh = false;
-+  boundary_mesh = false;
-+  reconnect = false;
-+  reconnect_tolerance = 1e-6;
-+  regularize = false;
-+  extend_domain = 0;
-+  regularize_tolerance = 1e-6;
-+  invalidate = false;
-+  load_virtual_elements = false;
-+  user_fields_ = false;
-+  ijk_mesh_nb_parts_ = 1;
-+  ijk_virt_layer = 1;
-+  export_fields_at_faces_ = 0;
-+  regularize_polyedre=0;
-+}
-+
-+void build_geometry_(Operator & op, const Domain & src, LataDeriv<Domain> & dest)
-+{
-+  Journal() << "Error in an operator: build_geometry not coded for this Operator/Domain" << endl;
-+  throw;
-+}
-+
-+void build_field_(Operator & op, const Domain & src, const Domain & dest, 
-+                  const LataField_base & srcf, LataField_base & destf)
-+{
-+  Journal() << "Error in an operator: build_field not coded for this Operator/Domain/Field" << endl;
-+  throw;  
-+}
-+
-+void LataDB_apply_input_filter(const LataDB & lata_db, LataDB & filtered_db, 
-+                        const ArrOfInt & input_timesteps_filter,
-+                        const Noms & input_domains_filter,
-+                        const Noms & input_components_filter)
-+{
-+  ArrOfInt timesteps_filter(input_timesteps_filter);
-+  Noms domains_filter(input_domains_filter);
-+  Noms components_filter(input_components_filter);
-+
-+  // Build a list of all available geometries and components
-+  Noms list_all_domains = lata_db.geometry_names(lata_db.nb_timesteps()-1, LataDB::FIRST_AND_CURRENT);
-+  Noms list_all_fields;
-+  {
-+    Field_UNames fields = lata_db.field_unames(lata_db.nb_timesteps()-1, "*", "*", LataDB::FIRST_AND_CURRENT);
-+    for (entier i = 0; i < fields.size(); i++) {
-+      const Nom & n = fields[i].get_field_name();
-+      if (list_all_fields.rang(n) < 0)
-+        list_all_fields.add(n);
-+    }
-+  }
-+
-+  if (timesteps_filter.size_array() == 0) {
-+    // Add all timesteps, timestep 0 is implicitely added.
-+    entier n = lata_db.nb_timesteps();
-+    timesteps_filter.resize_array(n-1);
-+    for (entier i = 1; i < n; i++)
-+      timesteps_filter[i-1] = i;
-+    Journal(3) << " Exporting all " << n-1 << " timesteps" << endl;
-+  } else if (timesteps_filter[0] < 0) {
-+    timesteps_filter.resize_array(0);
-+    Journal(3) << " Request timestep -1: Exporting only global time independent data" << endl;
-+  }
-+  if (domains_filter.size() == 0) {
-+    // Add all geometries
-+    domains_filter = list_all_domains;
-+    Journal(3) << " Exporting all geometries" << endl;
-+  } 
-+  if (components_filter.size() == 0) {
-+    // Add all fields of the selected geometries
-+    components_filter = list_all_fields;
-+    Journal(3) << " Exporting all fields:" << endl;
-+  } else {
-+    // Add all known geometry data fields
-+    components_filter.add("SOMMETS");
-+    components_filter.add("ELEMENTS");
-+    components_filter.add("FACES");
-+    components_filter.add("ELEM_FACES");
-+    components_filter.add("JOINTS_SOMMETS");
-+    components_filter.add("JOINTS_ELEMENTS");
-+    components_filter.add("JOINTS_FACES");
-+    components_filter.add("VIRTUAL_ELEMENTS");
-+    // these are for ijk meshs:
-+    components_filter.add("SOMMETS_IJK_I");
-+    components_filter.add("SOMMETS_IJK_J");
-+    components_filter.add("SOMMETS_IJK_K");
-+    components_filter.add("INVALID_CONNECTIONS");
-+  }
-+  filtered_db.filter_db(lata_db,
-+                        noms_to_motcles(domains_filter),
-+                        noms_to_motcles(components_filter),
-+                        timesteps_filter);
-+}
-diff --git a/databases/readers/Lata/LataFilter.h b/databases/readers/Lata/LataFilter.h
-new file mode 100644
-index 0000000..77f24d9
---- /dev/null
-+++ b/databases/readers/Lata/LataFilter.h
-@@ -0,0 +1,261 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LATA_H_INCLUDE
-+#define LATA_H_INCLUDE
-+
-+#include <LataDB.h>
-+#include <LataStructures.h>
-+#include <UserFields.h>
-+
-+typedef Field<FloatTab> FieldFloat;
-+
-+// This file provides the LataFilter class: it is a dynamic mesh
-+//  and field generator which is able to load data from a lata file,
-+//  apply operators. Once computed, the data is kept in a data cache
-+//  to speed up further access to the same data.
-+
-+// This class holds the LataFilter configuration (determines which 
-+//   combination of operators should be applied to the data)
-+class LataOptions 
-+{
-+public :
-+  static void extract_path_basename(const char * s, Nom & path_prefix, Nom & basename);
-+  static entier read_int_opt(const Nom & s);
-+  static double read_float_opt(const Nom & s);
-+  static Nom read_string_opt(const Nom & s);
-+
-+  Nom basename; // Name of the case. 
-+  Nom path_prefix; // Path for the case.
-+
-+  // Generate de the following meshes and associated data, if the flag is set.
-+  bool dual_mesh;
-+  bool nc_mesh;
-+  bool faces_mesh;
-+  bool boundary_mesh;
-+
-+  bool   reconnect;  // Do we want to reconnect multiblock meshes
-+  float  reconnect_tolerance;
-+  int regularize_polyedre ; // if 1 Treate polyedre as poyledre extruder
-+  int    regularize;    // Do we want to force regularize the domain ie convert the mesh to a structured ijk (not necessary except for dual-mesh vdf)
-+                        // special value 2 means "regularize if faces present and vdf"
-+  int    extend_domain; // Extend the regularized domaine by n layers of cells
-+  float  regularize_tolerance;
-+  bool   invalidate; // invalidate unused positions and connections;
-+  bool   load_virtual_elements; // Do we want to extend the loaded mesh subblocks with a layer of virtual elements
-+  bool   export_fields_at_faces_; // Should we show these fields in exportable fields
-+  
-+  // When loading ijk regular meshes, virtually create this number of blocks in the K direction:
-+  int    ijk_mesh_nb_parts_;
-+  // When loading ijk regular meshes, merge N layers of virtual elements (default=1)
-+  int    ijk_virt_layer;
-+
-+  bool   user_fields_; //activate user fields ?
-+
-+  ArrOfDouble clipbox_min;
-+  ArrOfDouble clipbox_max;
-+
-+  UserFields_options user_fields_options_;
-+
-+  LataOptions();
-+  virtual entier parse_option(const Nom &);
-+  virtual void describe();
-+  virtual ~LataOptions() {};
-+};
-+
-+class Operator : public LataObject
-+{
-+public:
-+  virtual void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                           const Domain & dest_domain, LataDeriv<LataField_base> & dest) = 0;
-+  virtual void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest) = 0;
-+protected:
-+};
-+
-+struct LataGeometryMetaData
-+{
-+  Nom internal_name_; // Internal full name (eg DOM_IJK)
-+  Nom displayed_name_; // Short name showed to the user (DOM for DOM_IJK, ?? if the geometry should not be exported)
-+  entier dynamic_; // Is the geometry changing at each timestep ?
-+  entier dimension_; // spatial dimension of coordinates
-+  Domain::Element element_type_;
-+  entier nblocks_; // Number of sub_blocks in the geometry (parallel computation)
-+  Motcle source_; // How to build this domain ("latadb", "operator_ijk", "operator_dual", "operator_boundary", "user_fields")
-+  Nom source_domain_;
-+  entier is_ijk_;
-+};
-+
-+struct LataFieldMetaData
-+{
-+  Field_UName uname_;
-+  Nom name_;
-+  Nom geometry_name_;
-+  Noms component_names_;
-+  entier nb_components_;
-+  entier is_vector_; // Yes => nb_components is equal to spatial dimension
-+  LataField_base::Elem_som localisation_;
-+  Nom source_localisation_; // Localisation of source field (for displayed name in visit)
-+  Motcle source_; // How to build this field ("latadb", "operator_ijk", "operator_dual", "operator_boundary", "user_fields")
-+  Field_UName source_field_;
-+};
-+
-+class DataCacheItem
-+{
-+public:
-+  DataCacheItem() : tstep_(-1), last_access_time_(0), lock_(0), memory_size_(0) {}
-+  LataDeriv<LataObject> item_; // The cached item
-+  Nom id_; // The id for this item
-+  entier tstep_; // The timestep of the cached data (for cache cleanup)
-+  BigEntier last_access_time_; // Last time this item has been accessed (for cache cleanup)
-+  // Is the item locked ? => cannot be deleted by clear_cache()
-+  // This is a counter: get_item increases, release_item dereases.
-+  // (this is when we simultaneously need several items, we must lock them to be sure)
-+  entier lock_; 
-+  // The memory size is computed when the item is released
-+  BigEntier memory_size_;
-+};
-+
-+class LataFilterCache 
-+{
-+public:
-+  LataFilterCache() : cache_data_access_count_(0),
-+                      clear_cache_on_tstep_change_(1), cache_memory_limit_(-1) {};
-+  void reset() { data_.reset(); cache_data_access_count_ = 0; }
-+  void set_cache_properties(entier clear_on_tstep_change, BigEntier mem_limit);
-+  template<class C> C & get_item(const Nom & id, entier tstep)
-+  {
-+    LataDeriv<LataObject> & obj = get_item_(id, tstep);
-+    if (obj.non_nul())
-+      return obj.refcast(C);
-+    else
-+      return obj.instancie(C);
-+  }
-+  void release_item(const Nom & id);
-+  void remove_item(const Nom & id);
-+  void cleanup_cache(entier tstep_to_keep);
-+protected:
-+  LataDeriv<LataObject> & get_item_(const Nom & id, entier tstep);
-+  // Stored data (depends on caching strategy)
-+  // data_ grows when needed. 
-+  LataVector<DataCacheItem> data_;
-+  BigEntier cache_data_access_count_;
-+  // If nonzero, whenever we ask a timestep,
-+  //  remove all cached data from other timesteps
-+  entier clear_cache_on_tstep_change_;
-+  // If before getting a new geometry or field, the data cache
-+  //  uses more than the limit, remove old data until we are below.
-+  // -1 means "no limit"
-+  BigEntier cache_memory_limit_; // Limit in bytes
-+};
-+
-+// Description: This is the MAIN class for the lata filter tool:
-+//  It reads data from a lata database on disk (initialize), 
-+//   and proposes several geometries and fields (get_exportable...) to the user.
-+//  The user can get them with get_geometry and get_field.
-+//  He must then call release_geometry and release_field to free the memory.
-+//  The user can also get metadata information (available without loading all
-+//   the data from disk) for geometries and fields and also timestep informations.
-+//  Timestep 0 contains global geometry and field definitions, timestep 1..n
-+//  are associated with each "TEMPS" entry in the lata file.
-+//
-+// LataFilter uses a data cache internally: it keeps fields and geometries after
-+// the user calls release_xxx(). The cache is controlled by set_cache_properties()
-+class LataFilter {
-+public:
-+  LataFilter() : lataDB__(0) {};
-+  void initialize(const LataOptions & opt, const LataDB & db);
-+  void set_cache_properties(BigEntier max_memory, const entier keep_all_timesteps);
-+  Noms get_exportable_geometry_names() const;
-+  const LataGeometryMetaData & get_geometry_metadata(const char * geometry) const;
-+  LataVector<Field_UName> get_exportable_field_unames(const char * geometry) const;
-+  const LataFieldMetaData & get_field_metadata(const Field_UName & uname) const;
-+  entier get_nb_timesteps() const;
-+  double get_timestep(entier i) const;
-+
-+  const Domain &     get_geometry(const Domain_Id &);  
-+
-+  void               release_geometry(const Domain &);
-+  const LataField_base & get_field(const Field_Id &);
-+  const FieldFloat & get_float_field(const Field_Id &) ;
-+
-+  void               release_field(const LataField_base &);
-+
-+  const LataDB & get_lataDB() const { return lataDB(); }
-+
-+  const LataOptions & get_options() const { return opt_; }
-+protected:
-+  Operator &              get_set_operator(const Domain_Id & id);
-+  LataDeriv<LataField_base> & get_cached_field(const Field_Id&);
-+  LataDeriv<Domain> &     get_cached_domain(const Domain_Id&);
-+  LataDeriv<Operator> &   get_cached_operator(const Domain_Id&);
-+  void release_cached_domain(const Domain_Id&);
-+  void release_cached_field(const Field_Id&);
-+  void release_cached_operator(const Domain_Id&);
-+  const Domain & get_geom_field_(const Field_Id & id, LataRef<const LataField_base> & field_result);
-+  void get_all_metadata(LataVector<LataGeometryMetaData> & geoms_data, LataVector<LataFieldMetaData> & fields_data);
-+  // LataDB       & lataDB() { return lataDB__; }
-+  const LataDB & lataDB() const { assert(lataDB__); return *lataDB__; }
-+
-+  // We store in the cache objects of type:
-+  //  LataDeriv<Domain>
-+  //  derived types of Operator
-+  //  LataDeriv<LataField_base>
-+  LataFilterCache data_cache_;
-+
-+  // LataV2 masterfile database 
-+  const LataDB *lataDB__;
-+  LataOptions opt_;
-+  // Metadata information for all fields and geometries (built in initialize)
-+  LataVector<LataGeometryMetaData> geoms_metadata_;
-+  LataVector<LataFieldMetaData>    fields_metadata_;
-+
-+  LataDeriv<UserFields> user_fields_;
-+};
-+
-+struct LataError
-+{
-+  enum ErrorCode { NEED_REGULAR, NO_FACES, WRONG_ELT_TYPE, INVALID_TSTEP, INVALID_COMPONENT, 
-+                   INVALID_DOMAIN, OTHER};
-+  LataError(ErrorCode code, const char * msg) : code_(code), msg_(msg) {};
-+  ErrorCode code_;
-+  const char *msg_;
-+};
-+
-+struct InternalError
-+{
-+  InternalError(const char *msg) : msg_(msg) {};
-+  const char *msg_;
-+};
-+
-+void LataDB_apply_input_filter(const LataDB & lata_db, LataDB & filtered_db, 
-+                               const ArrOfInt & input_timesteps_filter,
-+                               const Noms & input_domains_filter,
-+                               const Noms & input_components_filter);
-+#endif
-+
-diff --git a/databases/readers/Lata/LataJournal.h b/databases/readers/Lata/LataJournal.h
-new file mode 100644
-index 0000000..acc68e3
---- /dev/null
-+++ b/databases/readers/Lata/LataJournal.h
-@@ -0,0 +1,36 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataJournal_H
-+#define LataJournal_H
-+#include <iostream>
-+#include <arch.h>
-+std::ostream & Journal(entier level=0);
-+void set_Journal_level(entier level);
-+#endif
-diff --git a/databases/readers/Lata/LataStructures.C b/databases/readers/Lata/LataStructures.C
-new file mode 100644
-index 0000000..390d289
---- /dev/null
-+++ b/databases/readers/Lata/LataStructures.C
-@@ -0,0 +1,743 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataStructures.h>
-+#include <LataDB.h>
-+#include <stdlib.h>
-+static const entier info_level = 4;
-+
-+// Description: returns the number of items of the given type
-+entier Domain::nb_items(const LataField_base::Elem_som loc) const
-+{
-+  entier n = -1;
-+  switch (loc) {
-+  case LataField_base::SOM: n = nb_nodes(); break;
-+  case LataField_base::ELEM: n = nb_elements(); break;
-+  case LataField_base::FACES: n = nb_faces(); break;
-+  default:
-+    Journal() << "Invalid localisation " << (int) loc << " in Domain::nb_items" << endl;
-+    throw;
-+  }
-+  return n;
-+}
-+
-+// Description: returns the offset in the lata block on disk of the first
-+//  item for this Domain.id_.block_ (parallel computation).
-+//  (this value must be set with set_lata_block_offset)
-+entier Domain::lata_block_offset(const LataField_base::Elem_som loc) const
-+{
-+  entier n = -1;
-+  switch (loc) {
-+  case LataField_base::SOM: n = decal_nodes_lata_; break;
-+  case LataField_base::ELEM: n = decal_elements_lata_; break;
-+  case LataField_base::FACES: n = decal_faces_lata_; break;
-+  default:
-+    Journal() << "Invalid localisation " << (int) loc << " in Domain::lata_block_offset" << endl;
-+    throw;
-+  }
-+  if (n < 0) {
-+    Journal() << "Error: lata_block_offset not set for localisation " << (int) loc << endl;
-+    throw;
-+  }
-+  return n;
-+}
-+
-+// Description: set the lata_block_offset (see lata_block_offset)
-+void Domain::set_lata_block_offset(const LataField_base::Elem_som loc, entier n)
-+{
-+  switch (loc) {
-+  case LataField_base::SOM: decal_nodes_lata_ = n; break;
-+  case LataField_base::ELEM: decal_elements_lata_ = n; break;
-+  case LataField_base::FACES: decal_faces_lata_ = n; break;
-+  default:
-+    Journal() << "Invalid localisation " << (int) loc << " in Domain::set_lata_block_offset" << endl;
-+    throw;
-+  }
-+}
-+
-+template<class TabType>
-+void DomainUnstructured::compute_cell_center_coordinates(TabType & coord, entier index_begin) const
-+{
-+  const entier dim = nodes_.dimension(1);
-+  const entier nb_elem = elements_.dimension(0);
-+  const entier nb_som_elem = elements_.dimension(1);
-+  const double facteur = 1. / (double) nb_som_elem;
-+  double tmp[3];
-+  for (int i = 0; i < nb_elem; i++) {
-+    int j, k;
-+    tmp[0] = tmp[1] = tmp[2] = 0.;
-+    for (j = 0; j < nb_som_elem; j++) {
-+      int som = elements_(i, j);
-+      for (k = 0; k < loop_max(dim, 3); k++) {
-+        tmp[k] += nodes_(som, k);
-+        break_loop(k, dim);
-+      }
-+    }
-+    for (k = 0; k < loop_max(dim, 3); k++) {
-+      coord(index_begin + i, k) = tmp[k] * facteur;
-+      break_loop(k, dim);
-+    }
-+  }
-+}
-+
-+template
-+void DomainUnstructured::compute_cell_center_coordinates(FloatTab & coord, entier index_begin) const;
-+template
-+void DomainUnstructured::compute_cell_center_coordinates(DoubleTab & coord, entier index_begin) const;
-+
-+
-+LataField_base::Elem_som LataField_base::localisation_from_string(const Motcle & loc)
-+{
-+  if (loc.debute_par("SOM"))
-+    return SOM;
-+  else if (loc.debute_par("ELEM"))
-+    return ELEM;
-+  else if (loc.debute_par("FACE"))
-+    return FACES;
-+  else
-+    return UNKNOWN;
-+}
-+
-+Nom LataField_base::localisation_to_string(const Elem_som loc)
-+{
-+  Nom n;
-+  switch(loc) {
-+  case SOM: n = "SOM"; break;
-+  case ELEM: n = "ELEM"; break;
-+  case FACES: n = "FACES"; break;
-+  case UNKNOWN: n = "";
-+  }
-+  return n;
-+}
-+
-+Motcle Domain::lata_element_name(Domain::Element type)
-+{
-+  switch(type) {
-+  case point: return "POINT"; break;
-+  case line: return "SEGMENT"; break;
-+  case triangle: return "TRIANGLE"; break;
-+  case quadri: return "QUADRANGLE"; break;
-+  case tetra: return "TETRAEDRE"; break;
-+  case hexa: return "HEXAEDRE"; break;
-+  case prism6: return "PRISM6"; break;
-+  case polyedre: return "POLYEDRE"; break;
-+  case polygone: return "POLYGONE"; break;
-+  default: return "UNSPECIFIED";
-+  }
-+  return "UNSPECIFIED";
-+}
-+
-+Domain::Element Domain::element_type_from_string(const Motcle & type_elem)
-+{
-+  Element type;
-+  if (type_elem == "HEXAEDRE")
-+    type=hexa;
-+  else if (type_elem == "HEXAEDRE_AXI")
-+    type=hexa;
-+  else if (type_elem == "HEXAEDRE_VEF")
-+    type=hexa;
-+  else if (type_elem == "QUADRANGLE")
-+    type=quadri;
-+  else if (type_elem == "QUADRANGLE_3D")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE_2D_AXI")
-+    type=quadri;
-+  else if (type_elem == "RECTANGLE_AXI")
-+    type=quadri;
-+  else if (type_elem == "SEGMENT")
-+    type=line;
-+  else if (type_elem == "SEGMENT_2D")
-+    type=line;
-+  else if (type_elem == "TETRAEDRE")
-+    type=tetra;
-+  else if (type_elem == "TRIANGLE")
-+    type=triangle;
-+  else if (type_elem == "TRIANGLE_3D")
-+    type=triangle;
-+  else if (type_elem == "POINT")
-+    type=point;
-+  else if ((type_elem == "PRISM6")||(type_elem == "PRISME"))
-+    type=prism6;
-+  else if (type_elem.debute_par("POLYEDRE"))
-+    type=polyedre;
-+  else if (type_elem.debute_par("POLYGONE"))
-+    type=polygone;
-+  else {
-+    Journal() << "Error in elem_type_from_string: unknown element type " << type_elem << endl;
-+    throw;
-+  }
-+  return type;
-+}
-+
-+Nom Domain::element_type_to_string(Element type)
-+{
-+  Nom n;
-+  switch(type) {
-+  case point:       n = "POINT"; break;
-+  case line:        n = "SEGMENT"; break;
-+  case triangle:    n = "TRIANGLE"; break;
-+  case quadri:      n = "QUADRANGLE"; break;
-+  case tetra:       n = "TETRAEDRE"; break;
-+  case hexa:        n = "HEXAEDRE"; break;
-+  case prism6:      n = "PRISM6"; break;
-+  case polyedre:    n = "POLYEDRE_0"; break;
-+  case polygone:    n = "POLYGONE"; break;
-+  case unspecified: n = "UNKNOWN"; break;
-+  }
-+  return n;
-+}
-+
-+// Description: read the specified geometry from the lataDB_ structure and put it in "dom".
-+//  load_faces: flag, tells if we should read faces definitions in the lata file
-+//  merge_virtual_elements: flag, if a "VIRTUAL_ELEMENTS" array is present in the lata file,
-+//   merges these elements to the requested block.
-+void DomainUnstructured::fill_domain_from_lataDB(const LataDB & lataDB,
-+                                                 const Domain_Id & id,
-+                                                 entier load_faces, 
-+                                                 entier merge_virtual_elements) 
-+{
-+  operator=(DomainUnstructured()); // Reset all data.
-+
-+  id_ = id;
-+  const LataDBGeometry & geom = lataDB.get_geometry(id.timestep_, id.name_);
-+
-+  // ********************************
-+  // 1) Look for the sub-block items to read (parallel computation)
-+  entier decal_nodes = 0;
-+  entier decal_elements = 0;
-+  entier decal_faces = 0;
-+  entier nb_sommets = -1;
-+  entier nbelements = -1;
-+  entier nbfaces = -1;
-+
-+  entier domain_has_faces = load_faces && lataDB.field_exists(id.timestep_, id.name_, "FACES");
-+  
-+  // Tableau de 3 joints (SOM, ELEM et FACES)
-+  LataVector<IntTab> joints;
-+  entier nproc = 1;
-+  for (entier i_item = 0; i_item < 3; i_item++) {
-+    //    LataField_base::Elem_som loc = LataField_base::SOM;
-+    Nom nom("JOINTS_SOMMETS");
-+    Nom nom2("SOMMETS");
-+    if (i_item == 1) {
-+      //loc = LataField_base::ELEM;
-+      nom = "JOINTS_ELEMENTS";
-+      nom2 = "ELEMENTS";
-+    } else if (i_item == 2) {
-+      // loc = LataField_base::FACES;
-+      nom = "JOINTS_FACES";
-+      nom2 = "FACES";
-+    }
-+
-+    IntTab & joint = joints.add();
-+    if (lataDB.field_exists(id.timestep_, id.name_, nom)) {
-+      entier nbitems = lataDB.get_field(id.timestep_, id.name_, nom2, "*").size_;
-+      IntTab tmp;
-+      lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, nom, "*"), tmp);
-+      nproc = tmp.dimension(0);
-+      // Recalcule la deuxieme colonne en fonction de la premiere
-+      joint.resize(nproc, 2);
-+      for (entier i = 0; i < nproc; i++) {
-+        joint(i, 0) = tmp(i, 0);
-+        if (i < nproc-1)
-+          joint(i, 1) = tmp(i+1, 0) - tmp(i, 0);
-+        else 
-+          joint(i, 1) = nbitems - tmp(i, 0);
-+      }
-+    } 
-+  }
-+
-+  if (id_.block_ < 0 || nproc == 1) {
-+    // read all blocks at once default values are ok
-+    set_joints(LataField_base::SOM) = joints[0];
-+    set_joints(LataField_base::ELEM) = joints[1];
-+    set_joints(LataField_base::FACES) = joints[2];
-+  } else {
-+    if (id_.block_ >= nproc) {
-+      Journal() << "LataFilter::get_geometry : request non existant block " << id.block_ 
-+                << " in geometry " << id.name_ << endl;
-+      throw;
-+    }
-+    const entier n = id_.block_;
-+    decal_nodes = joints[0](n, 0);
-+    nb_sommets = joints[0](n, 1);
-+    decal_elements = joints[1](n, 0);
-+    nbelements = joints[1](n, 1);
-+    if (domain_has_faces) {
-+      decal_faces = joints[2](n, 0);
-+      nbfaces = joints[2](n, 1);
-+    }
-+  }
-+
-+  // ******************************
-+  // 2) Read nodes, elements and faces data
-+  elt_type_ = Domain::element_type_from_string(geom.elem_type_);
-+
-+  lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "SOMMETS", "*"), nodes_, decal_nodes, nb_sommets);
-+  lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "ELEMENTS", "*"), elements_, decal_elements, nbelements);
-+  set_lata_block_offset(LataField_base::SOM, decal_nodes);
-+  set_lata_block_offset(LataField_base::ELEM, decal_elements);
-+  if (decal_nodes > 0) {
-+    // Nodes are stored with global numbering in the lata file: transform to sub_block numbering :
-+    elements_ -= decal_nodes;
-+  }
-+  if (domain_has_faces) {
-+    set_lata_block_offset(LataField_base::FACES, decal_faces);
-+    lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "FACES", "*"), faces_, decal_faces, nbfaces);
-+    if (decal_nodes > 0)
-+      faces_ -= decal_nodes;
-+    lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "ELEM_FACES", "*"), elem_faces_, decal_elements, nbelements);
-+    if (decal_faces > 0)
-+      elem_faces_ -= decal_faces;
-+  }
-+
-+  // *************************
-+  // 3) Merge virtual elements if requested
-+  if (merge_virtual_elements && lataDB.field_exists(id.timestep_, id.name_, "VIRTUAL_ELEMENTS") && id.block_ >= 0) 
-+    {
-+      Journal(info_level) << " Merging virtual elements" << endl;
-+      // joints_virt_elems(sub_block, 0) = index of first virtual element in the VIRTUAL_ELEMENTS array
-+      IntTab joints_virt_elems;
-+      // Load the virtual elements (nodes are in global numbering)
-+      //  First: find the index and number of virtual elements for block number id.block_:
-+      lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "JOINTS_VIRTUAL_ELEMENTS", "*"), joints_virt_elems);
-+      entier nb_virt_elems;
-+      if (id.block_ < nproc-1)
-+        nb_virt_elems = joints_virt_elems(id.block_+1, 0) - joints_virt_elems(id.block_, 0);
-+      else
-+        nb_virt_elems = lataDB.get_field(id.timestep_, id.name_, "VIRTUAL_ELEMENTS", "*").size_ - joints_virt_elems(id.block_, 0);
-+      Journal(info_level+1) << " Number of virtual elements for block " << id.block_ << "=" << nb_virt_elems << endl;
-+      //  Second: load the indexes of the virtual elements to load:
-+      IntTab virt_elems;
-+      lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "VIRTUAL_ELEMENTS", "*"), virt_elems, joints_virt_elems(id.block_,0), nb_virt_elems);
-+      set_virt_items(LataField_base::ELEM, virt_elems);
-+
-+      {
-+        //  Third: load the virtual elements (virt_elems contains the global indexes of the elements to
-+        //  load and virt_elem_som will contain global nodes indexes of the virtual elements)
-+        IntTab virt_elem_som;
-+        lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "ELEMENTS", "*"), virt_elem_som, virt_elems);
-+        // Find which virtual nodes are required and load them: virtual nodes to load are
-+        // all nodes of the virtual elements (they have duplicates).
-+        ArrOfInt index;
-+        ArrOfInt & virt_elem_som_array = virt_elem_som; // Array seen as monodimensionnal
-+        array_sort_indirect(virt_elem_som_array, index);
-+        // Global nodes indexes of needed virtual nodes 
-+        ArrOfInt nodes_to_read;
-+        nodes_to_read.set_smart_resize(1);
-+        {
-+          const entier n = index.size_array();
-+          // Global index of the last loaded node:
-+          entier last_node = -1;
-+          // Local index of the new loaded node:
-+          entier new_node_index = nodes_.dimension(0)-1;
-+          for (entier i = 0; i < n; i++) {
-+            // Take nodes to load in ascending order of their global numbers:
-+            const entier idx = index[i];
-+            const entier node = virt_elem_som_array[idx];
-+            if (node != last_node) {
-+              // Node not yet encountered
-+              nodes_to_read.append_array(node);
-+              new_node_index++;
-+              last_node = node;
-+            }
-+            virt_elem_som_array[idx] = new_node_index;
-+          }
-+        }
-+        set_virt_items(LataField_base::SOM, nodes_to_read);
-+        // Copy virtual elements to elements_
-+        entier debut = elements_.size_array();
-+        elements_.resize(elements_.dimension(0) + virt_elem_som.dimension(0),
-+                         elements_.dimension(1));
-+        elements_.inject_array(virt_elem_som, virt_elem_som.size_array(), debut);
-+        // Load virtual nodes
-+        FloatTab tmp_nodes;
-+        lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "SOMMETS", "*"), tmp_nodes, nodes_to_read);
-+        // Copy to nodes_
-+        debut = nodes_.size_array();
-+        nodes_.resize(nodes_.dimension(0) + tmp_nodes.dimension(0),
-+                      nodes_.dimension(1));
-+        nodes_.inject_array(tmp_nodes, tmp_nodes.size_array(), debut);
-+      }
-+
-+      if (domain_has_faces) {
-+        // Find which virtual faces are required and load them
-+        // For each virtual element, index of its faces (like virt_elem_som)
-+        IntTab virt_elem_faces; 
-+        lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "ELEM_FACES", "*"), virt_elem_faces, virt_elems);
-+        // Build the list of missing faces:
-+        ArrOfInt index;
-+        ArrOfInt & virt_elem_faces_array = virt_elem_faces; // Array seen as monodimensionnal
-+        array_sort_indirect(virt_elem_faces_array, index);
-+        ArrOfInt faces_to_read;
-+        faces_to_read.set_smart_resize(1);
-+        {
-+          const entier n = index.size_array();
-+          // Global index of the last loaded face:
-+          entier last_face = -1;
-+          // Local index of the new loaded node:
-+          entier new_face_index = faces_.dimension(0)-1;
-+          for (entier i = 0; i < n; i++) {
-+            // Take nodes to load in ascending order of their global numbers:
-+            const entier idx = index[i];
-+            const entier face = virt_elem_faces_array[idx];
-+            if (face != last_face) {
-+              // Node not yet encountered
-+              faces_to_read.append_array(face);
-+              new_face_index++;
-+              last_face = face;
-+            }
-+            virt_elem_faces_array[idx] = new_face_index;
-+          }
-+        }
-+        set_virt_items(LataField_base::FACES, faces_to_read);
-+        // Copy virtual elem_faces to elem_faces
-+        entier debut = elem_faces_.size_array();
-+        elem_faces_.resize(elem_faces_.dimension(0) + virt_elem_faces.dimension(0),
-+                           elem_faces_.dimension(1));
-+        elem_faces_.inject_array(virt_elem_faces, virt_elem_faces.size_array(), debut);
-+
-+        // Load virtual faces
-+        IntTab tmp_faces_nodes;
-+        lataDB.read_data(lataDB.get_field(id.timestep_, id.name_, "FACES", "*"), tmp_faces_nodes, faces_to_read);
-+        // Convert global nodes indexes to local loaded nodes indexes in tmp_faces_nodes
-+        {
-+          // sort tmp_faces in ascending order so that the search requires linear time
-+          ArrOfInt & array_tmp_faces_nodes = tmp_faces_nodes;
-+          index.reset();
-+          array_sort_indirect(array_tmp_faces_nodes, index);
-+          const entier n = array_tmp_faces_nodes.size_array();
-+          // Take nodes in tmp_faces_nodes in ascending order and find the corresponding node in nodes_to_read
-+          // (which is also in sorted)
-+          entier i1; // index in array_tmp_faces_nodes (the current node to convert)
-+          entier i2 = 0; // index in nodes_to_read
-+          const entier index_of_first_virtual_node = nodes_.dimension(0) - nb_virt_items(LataField_base::SOM);
-+          const ArrOfInt & nodes_to_read = get_virt_items(LataField_base::SOM);
-+          const entier max_i2 = nodes_to_read.size_array();
-+          for (i1 = 0; i1 < n; i1++) {
-+            const entier j = index[i1];
-+            const entier global_node_index_to_find = array_tmp_faces_nodes[j];
-+            // find the matching node in nodes_to_read (nodes_to_read is in ascending order)
-+            while (nodes_to_read[i2] != global_node_index_to_find) {
-+              i2++;
-+              if (i2 >= max_i2) {
-+                cerr << "Internal error in DomainUnstructured::fill_domain_from_lataDB:\n"
-+                     << " node " << global_node_index_to_find << " of a virtual face does not belong to a virtual element" << endl;
-+              throw;
-+              }
-+            }
-+            array_tmp_faces_nodes[j] = index_of_first_virtual_node + i2; // index of this node in the local nodes_ array
-+          }
-+        }
-+        // Copy to faces_ array
-+        debut = faces_.size_array();
-+        faces_.resize(faces_.dimension(0) + tmp_faces_nodes.dimension(0),
-+                      faces_.dimension(1));
-+        faces_.inject_array(tmp_faces_nodes, tmp_faces_nodes.size_array(), debut);
-+      }
-+    }
-+}
-+
-+void Domain::fill_field_from_lataDB(const LataDB & lataDB,
-+                                    const Field_Id & id, 
-+                                    LataDeriv<LataField_base> & field) const
-+{
-+  Journal() << "Error : fill_field_from_lataDB not coded for this domain type" << endl;
-+  throw;
-+}
-+
-+// Reads the requested field to "field" structure.
-+// id.block_ is not used, the data block read is the same as the domain.
-+void DomainUnstructured::fill_field_from_lataDB(const LataDB & lataDB,
-+                                                const Field_Id & id, 
-+                                                LataDeriv<LataField_base> & field) const
-+{
-+  const LataDBField & lata_field = lataDB.get_field(id.timestep_, id.uname_);
-+  LataField_base::Elem_som loc = LataField_base::localisation_from_string(lata_field.localisation_);
-+  const entier decal = lata_block_offset(loc);
-+
-+  const ArrOfInt & virt_items = get_virt_items(loc);
-+  const entier virt_size = virt_items.size_array();
-+  const entier size = nb_items(loc) - virt_size;
-+
-+  const LataDBDataType & type = lata_field.datatype_;
-+  switch(type.type_) {
-+  case LataDBDataType::REAL32: {
-+    FloatTab & data = field.instancie(Field<FloatTab> ).data_;
-+    lataDB.read_data(lata_field, data, decal, size);
-+    if (virt_size > 0) {
-+      FloatTab tmp;
-+      lataDB.read_data(lata_field, tmp, virt_items);
-+      const entier debut = data.size_array();
-+      data.resize(data.dimension(0)+virt_size, data.dimension(1));
-+      data.inject_array(tmp, virt_size, debut);
-+    }
-+    break;
-+  }
-+  case LataDBDataType::REAL64: {
-+    DoubleTab & data = field.instancie(Field<DoubleTab> ).data_; 
-+    lataDB.read_data(lata_field, data, decal, size);
-+    if (virt_size > 0) {
-+      DoubleTab tmp;
-+      lataDB.read_data(lata_field, tmp, virt_items);
-+      const entier debut = data.size_array();
-+      data.resize(data.dimension(0)+virt_size, data.dimension(1));
-+      data.inject_array(tmp, virt_size, debut);
-+    }
-+    break;
-+  }
-+  case LataDBDataType::INT32:
-+  case LataDBDataType::INT64: {
-+    IntTab & data = field.instancie(Field<IntTab> ).data_; 
-+    lataDB.read_data(lata_field, data, decal, size);
-+    if (virt_size > 0) {
-+      IntTab tmp;
-+      lataDB.read_data(lata_field, tmp, virt_items);
-+      const entier debut = data.size_array();
-+      data.resize(data.dimension(0)+virt_size, data.dimension(1));
-+      data.inject_array(tmp, virt_size, debut);
-+    }
-+    break;
-+  }
-+  default:
-+    Journal() << "LataFilter::get_field_from_lataDB " << id.uname_ << ": data type not implemented" << endl;
-+    throw;
-+  }
-+  field.valeur().id_ = id;
-+  field.valeur().component_names_ = lata_field.component_names_;
-+  field.valeur().localisation_ = loc;
-+  field.valeur().nature_ = lata_field.nature_;
-+}
-+
-+DomainIJK::DomainIJK()
-+{
-+  part_begin_ = 0;
-+  part_end_ = 0;
-+  virtual_layer_begin_ = 0;
-+  virtual_layer_end_ = 0;
-+}
-+
-+void DomainIJK::fill_domain_from_lataDB(const LataDB & lataDB,
-+                                        const Domain_Id & id,                                        
-+                                        entier split_in_N_parts,
-+                                        const entier virt_layer_size)
-+{
-+  if (virt_layer_size < 0) {
-+    Journal() << "Error in DomainIJK::fill_domain_from_lataDB: virt_layer_size < 0" << endl;
-+    throw;
-+  }
-+  id_ = id;
-+
-+  Journal(info_level) << "Filling ijk domain " << id.name_ << " tstep " << id.timestep_ << " block " << id.block_ << endl;
-+  coord_.reset();
-+  entier dim3 = lataDB.field_exists(id.timestep_, id.name_, "SOMMETS_IJK_K", LataDB::FIRST_AND_CURRENT /* timestep */);
-+  {
-+    const LataDBField & coord = lataDB.get_field(id.timestep_, 
-+                                                 Field_UName(id.name_, "SOMMETS_IJK_I", ""),
-+                                                 LataDB::FIRST_AND_CURRENT /* timestep */);
-+    FloatTab tmp;
-+    lataDB.read_data(coord, tmp);
-+    coord_.add();
-+    coord_[0] = tmp;
-+  }
-+  {
-+    const LataDBField & coord = lataDB.get_field(id.timestep_, 
-+                                                 Field_UName(id.name_, "SOMMETS_IJK_J", ""),
-+                                                 LataDB::FIRST_AND_CURRENT /* timestep */);
-+    FloatTab tmp;
-+    lataDB.read_data(coord, tmp);
-+    coord_.add();
-+    coord_[1] = tmp;
-+  }
-+  if (dim3) {
-+    const LataDBField & coord = lataDB.get_field(id.timestep_, 
-+                                                 Field_UName(id.name_, "SOMMETS_IJK_K", ""),
-+                                                 LataDB::FIRST_AND_CURRENT /* timestep */);
-+    FloatTab tmp;
-+    lataDB.read_data(coord, tmp);
-+    coord_.add();
-+    coord_[2] = tmp;
-+  }
-+
-+  elt_type_ = dim3 ? hexa : quadri;
-+
-+  entier block = (id.block_) < 0 ? 0 : id.block_;
-+
-+  if (id.block_ >= split_in_N_parts) {
-+    Journal() << "Error in DomainIJK::fill_domain_from_lataDB: invalid block " << id.block_ << endl;
-+    throw;
-+  }
-+
-+  // Load the N-th part
-+  //  The ijk domain is virtually split in the Z direction (or Y en 2D)
-+  entier maxdim = coord_.size() - 1;
-+  // Number of elements in the Z direction:
-+  const entier nelem = coord_[maxdim].size_array() - 1;
-+  entier part_size = nelem / split_in_N_parts;
-+  if (part_size * split_in_N_parts < nelem)
-+    part_size++;
-+  
-+  // Begin and end of the requested part:
-+  part_begin_ = part_size * block - virt_layer_size;
-+  if (part_begin_ < 0)
-+    part_begin_ = 0;
-+  part_end_ = part_size * block + part_size + virt_layer_size;
-+  if (part_end_ > nelem)
-+    part_end_ = nelem;
-+  if (part_begin_ > part_end_)
-+    // empty block
-+    part_begin_ = part_end_ = 0; 
-+
-+  if (block > 0 && part_end_ > part_begin_)
-+    // There is a virtual layer at the begin
-+    virtual_layer_begin_ = virt_layer_size;
-+  if (block < split_in_N_parts-1 && part_end_ > part_begin_)
-+    virtual_layer_end_ = virt_layer_size;
-+
-+  // Extract coordinates:
-+  ArrOfFloat tmp(coord_[maxdim]);
-+  const entier n = part_end_ - part_begin_ + 1;
-+  coord_[maxdim].resize_array(n);
-+  for (entier i = 0; i < n; i++)
-+    coord_[maxdim][i] = tmp[i + part_begin_];
-+
-+  Journal(info_level) << "Domain " << id.name_ << " has number of nodes: [ ";
-+  for (entier dim = 0; dim < coord_.size(); dim++) 
-+    Journal(info_level) << coord_[dim].size_array() << " ";
-+  Journal(info_level) << "]" << endl;
-+
-+  if (part_end_ > part_begin_ // part might be empty if too many processors
-+      && lataDB.field_exists(id.timestep_, id.name_, "INVALID_CONNECTIONS", LataDB::FIRST_AND_CURRENT /* timestep */))
-+    {
-+      Journal(info_level) << " loading invalid_connections" << endl;
-+      IntTab Itmp;
-+      entier ij = 0, offset = 0, sz = 0;
-+      // Product of number of elements in directions I and J
-+      ij = coord_[0].size_array() - 1;
-+      if (coord_.size() > 2)
-+        ij *= coord_[1].size_array() - 1;
-+      // Select a range of elements in direction K
-+      offset = ij * part_begin_;
-+      sz = nb_elements();
-+      const LataDBField & lata_field = lataDB.get_field(id.timestep_,  id.name_, "INVALID_CONNECTIONS", "ELEM",
-+                                                        LataDB::FIRST_AND_CURRENT);
-+      
-+      lataDB.read_data(lata_field, Itmp, offset, sz);
-+
-+      invalid_connections_.resize_array(nb_elements());
-+      invalid_connections_ = 0; // everything valid by default
-+      
-+      for (entier i = 0; i < sz; i++) {
-+        if (Itmp(i, 0) != 0)
-+          invalid_connections_.setbit(i);
-+      }
-+    }
-+}
-+
-+void DomainIJK::fill_field_from_lataDB(const LataDB & lataDB,
-+                                       const Field_Id & id, 
-+                                       LataDeriv<LataField_base> & field) const
-+{
-+  const LataDBField & lata_field = lataDB.get_field(id.timestep_, id.uname_);
-+  LataField_base::Elem_som loc = LataField_base::localisation_from_string(lata_field.localisation_);
-+
-+  entier ij = 0, offset = 0, sz = 0;
-+  switch(loc) {
-+  case LataField_base::ELEM: 
-+    // Product of number of elements in directions I and J
-+    ij = coord_[0].size_array() - 1;
-+    if (coord_.size() > 2)
-+      ij *= coord_[1].size_array() - 1;
-+    // Select a range of elements in direction K
-+    offset = ij * part_begin_;
-+    sz = ij * (part_end_ - part_begin_);
-+    break;
-+  case LataField_base::SOM:
-+  case LataField_base::FACES:
-+    // Product of number of nodes in directions I and J
-+    ij = coord_[0].size_array();
-+    if (coord_.size() > 2)
-+      ij *= coord_[1].size_array();
-+    offset = ij * part_begin_;
-+    sz = ij * (part_end_ + 1 - part_begin_);
-+    break;
-+  default:
-+    Journal() << "Error in DomainIJK::fill_field_from_lataDB: unknown localisation" << endl;
-+    throw;
-+  }
-+  
-+  const LataDBDataType & type = lata_field.datatype_;
-+  switch(type.type_) {
-+  case LataDBDataType::REAL32: {
-+    FloatTab & data = field.instancie(Field<FloatTab> ).data_;
-+    lataDB.read_data(lata_field, data, offset, sz);
-+    break;
-+  }
-+  case LataDBDataType::REAL64: {
-+    DoubleTab & data = field.instancie(Field<DoubleTab> ).data_; 
-+    lataDB.read_data(lata_field, data, offset, sz);
-+    break;
-+  }
-+  case LataDBDataType::INT32:
-+  case LataDBDataType::INT64: {
-+    IntTab & data = field.instancie(Field<IntTab> ).data_; 
-+    lataDB.read_data(lata_field, data, offset, sz);
-+    break;
-+  }
-+  default:
-+    Journal() << "LataFilter::get_field_from_lataDB " << id.uname_ << ": data type not implemented" << endl;
-+    throw;
-+  }
-+  field.valeur().id_ = id;
-+  field.valeur().component_names_ = lata_field.component_names_;
-+  field.valeur().localisation_ = loc;
-+  field.valeur().nature_ = lata_field.nature_;
-+}
-+
-+
-+Domain::DomainType Domain::get_domain_type() const
-+{
-+  const DomainUnstructured* geom_ptr = dynamic_cast<const DomainUnstructured*>(this);
-+  if (geom_ptr!=0)
-+    return UNSTRUCTURED;
-+  const DomainIJK* ijk_ptr = dynamic_cast<const DomainIJK*>(this);
-+  if (ijk_ptr!=0)
-+    return IJK;
-+  throw ("Not implemeneted");
-+}
-+const DomainUnstructured & Domain::cast_DomainUnstructured() const
-+{
-+  return dynamic_cast<const DomainUnstructured&>(*this);
-+}
-+const DomainIJK &  Domain::cast_DomainIJK() const
-+{
-+  return dynamic_cast<const DomainIJK&>(*this);
-+}
-diff --git a/databases/readers/Lata/LataStructures.h b/databases/readers/Lata/LataStructures.h
-new file mode 100644
-index 0000000..74fa765
---- /dev/null
-+++ b/databases/readers/Lata/LataStructures.h
-@@ -0,0 +1,332 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataStructures_H
-+#define LataStructures_H
-+
-+#include <ArrOfBit.h>
-+#include <Lata_tools.h>
-+#include <LataDB.h>
-+
-+// This file contains definitions of data structures containind meshes and fields
-+//  used by LataFilter.
-+
-+// Description: Domain_Id is what you need to identify the content
-+//  of a Domain object (at this time, the domain name, the timestep and the 
-+//  parallel sub_block number)
-+class Domain_Id
-+{
-+public:
-+  Domain_Id(const char * name = "??", int t = 0, int block = -1) :
-+    name_(name), timestep_(t), block_(block) {};
-+  // Domain name
-+  Nom name_;
-+  // At which timestep (needed for dynamic domains)
-+  int timestep_;
-+  // Which block of the parallel computation ? -1 => all blocks
-+  int block_;
-+};
-+
-+// Description: Field_Id is what you need to identify the content of a
-+//  LataField_base structure (at this time, the field uname, 
-+//  the timestep and the parallel sub_block number)
-+class Field_Id
-+{
-+public:
-+  Field_Id() : timestep_(0) {};
-+  Field_Id(const Field_UName & uname, int timestep, int block) :
-+    timestep_(timestep), block_(block), uname_(uname)  {};
-+  
-+  int         timestep_;
-+  int         block_;
-+  Field_UName uname_;
-+
-+  operator Domain_Id() const { return Domain_Id(uname_.get_geometry(), timestep_, block_); }
-+};
-+
-+// Description: This structure contains a discrete data array for a specific
-+//  field, at one timestep, for one sub_block of the geometry, with
-+//  one localisation (but many components)
-+class LataField_base : public LataObject
-+{
-+public:
-+  LataField_base() { localisation_ = UNKNOWN; nature_ = LataDBField::UNKNOWN; }
-+  Field_Id  id_;
-+  Noms      component_names_;
-+  enum Elem_som { ELEM, SOM, FACES, UNKNOWN };
-+  Elem_som  localisation_;
-+  LataDBField::Nature nature_;
-+
-+  static Elem_som localisation_from_string(const Motcle &);
-+  static Nom      localisation_to_string(const Elem_som);
-+};
-+class DomainUnstructured;
-+class DomainIJK;
-+
-+// This class stores the geometry of a domain
-+class Domain : public LataObject
-+{
-+public:
-+  Domain_Id id_;
-+  enum Element { point, line, triangle, quadri, tetra, hexa, prism6, polyedre, polygone, unspecified };
-+  enum DomainType { IJK, UNSTRUCTURED };
-+  static Element element_type_from_string(const Motcle & type_elem);
-+  static Nom     element_type_to_string(Element type);
-+  Element elt_type_;
-+
-+  Domain() : 
-+    elt_type_(unspecified),
-+    decal_nodes_lata_(-1), // -1 indicates: value not set. see lata_block_offset
-+    decal_elements_lata_(-1), 
-+    decal_faces_lata_(-1) {};
-+    DomainType get_domain_type() const;
-+    const DomainUnstructured & cast_DomainUnstructured() const;
-+    const DomainIJK &  cast_DomainIJK() const;
-+  virtual entier dimension() const = 0;
-+  virtual entier nb_nodes() const = 0;
-+  virtual entier nb_elements() const = 0;
-+  virtual entier nb_faces() const = 0;
-+  virtual entier nb_items(const LataField_base::Elem_som) const;
-+  virtual entier lata_block_offset(const LataField_base::Elem_som) const;
-+  virtual void   set_lata_block_offset(const LataField_base::Elem_som, entier n);
-+
-+  virtual void fill_field_from_lataDB(const LataDB & lataDB,
-+                                      const Field_Id & id, 
-+                                      LataDeriv<LataField_base> & field) const = 0;
-+
-+  static Motcle lata_element_name(Domain::Element type);
-+
-+protected:
-+  // If the Domain has been loaded from a lata file and it's not the
-+  // first block this is the offset in the lata file:
-+  entier decal_nodes_lata_;
-+  entier decal_elements_lata_;
-+  entier decal_faces_lata_;
-+};
-+
-+class DomainUnstructured : public Domain
-+{
-+public:
-+  DomainUnstructured() { nb_virt_nodes_ = 0; nb_virt_elements_ = 0; nb_virt_faces_ = 0; }
-+
-+  FloatTab  nodes_;
-+  // For each element, indexes of the nodes (first node is at index 0)
-+  // Nodes ordering in an element is the same as in TRUST
-+  IntTab    elements_;
-+  // For each face, indexes of the nodes (if present in lata file)
-+  IntTab    faces_;
-+  // For each elements, indexes of the faces (first face at index 0, if present in lata file)
-+  // Faces ordering in an element is the same as in TRUST
-+  IntTab    elem_faces_;
-+
-+  entier dimension() const { return nodes_.dimension(1); }
-+  entier nb_nodes() const { return nodes_.dimension(0); }
-+  entier nb_elements() const { return elements_.dimension(0); }
-+  entier nb_faces() const { return faces_.dimension(0); }
-+  // Tests if the geometry contains faces description
-+  entier faces_ok() const { return elem_faces_.dimension(0) == elements_.dimension(0); }
-+  template<class TabType>
-+  void compute_cell_center_coordinates(TabType & coord, entier index_begin) const;
-+  BigEntier compute_memory_size() const
-+  { return
-+      memory_size(nodes_)
-+      + memory_size(elements_)
-+      + memory_size(faces_)
-+      + memory_size(elem_faces_); 
-+  }
-+  const IntTab & get_joints(LataField_base::Elem_som loc) const { 
-+    const IntTab * ptr = 0;
-+    switch(loc) {
-+    case LataField_base::SOM: ptr = &joints_sommets_; break;
-+    case LataField_base::ELEM: ptr = &joints_elements_; break;
-+    case LataField_base::FACES: ptr = &joints_faces_; break;
-+    default: throw;
-+    }
-+    if (ptr->dimension(1) == 0) throw;
-+    return *ptr;
-+  }
-+  IntTab & set_joints(LataField_base::Elem_som loc) {
-+    IntTab * ptr = 0;
-+    switch(loc) {
-+    case LataField_base::SOM: ptr = &joints_sommets_; break;
-+    case LataField_base::ELEM: ptr = &joints_elements_; break;
-+    case LataField_base::FACES: ptr = &joints_faces_; break;
-+    default: throw;
-+    }
-+    return *ptr;
-+  }
-+  const ArrOfInt & get_virt_items(LataField_base::Elem_som loc) const {
-+    switch(loc) {
-+    case LataField_base::SOM: return virt_nodes_; break;
-+    case LataField_base::ELEM: return virt_elements_; break;
-+    case LataField_base::FACES: return virt_faces_; break;
-+    default: throw;
-+    }
-+    return virt_nodes_;
-+  }
-+  void set_virt_items(LataField_base::Elem_som loc, const ArrOfInt & list) {
-+    switch(loc) {
-+    case LataField_base::SOM: virt_nodes_ = list; nb_virt_nodes_ = list.size_array(); break;
-+    case LataField_base::ELEM: virt_elements_ = list; nb_virt_elements_ = list.size_array(); break;
-+    case LataField_base::FACES: virt_faces_ = list; nb_virt_faces_ = list.size_array(); break;
-+    default: throw;
-+    }
-+  };
-+  void set_nb_virt_items(LataField_base::Elem_som loc, entier n) {
-+    switch(loc) {
-+    case LataField_base::SOM:   nb_virt_nodes_ = n; break;
-+    case LataField_base::ELEM:  nb_virt_elements_ = n; break;
-+    case LataField_base::FACES: nb_virt_faces_ = n; break;
-+    default: throw;
-+    }
-+  };
-+  entier nb_virt_items(LataField_base::Elem_som loc) const {
-+    switch(loc) {
-+    case LataField_base::SOM: return nb_virt_nodes_; break;
-+    case LataField_base::ELEM: return nb_virt_elements_; break;
-+    case LataField_base::FACES: return nb_virt_faces_; break;
-+    default: throw;
-+    }
-+    return nb_virt_nodes_;
-+  }
-+
-+  virtual void fill_domain_from_lataDB(const LataDB & lataDB,
-+                                       const Domain_Id & id,
-+                                       entier load_faces = 1, 
-+                                       entier merge_virtual_elements = 0);
-+  virtual void fill_field_from_lataDB(const LataDB & lataDB,
-+                                      const Field_Id & id, 
-+                                      LataDeriv<LataField_base> & field) const;
-+
-+protected:
-+  // data not always filled:
-+  IntTab joints_sommets_;
-+  IntTab joints_elements_;
-+  IntTab joints_faces_;
-+  ArrOfInt virt_nodes_; // Global indexes of virtual nodes to load
-+  ArrOfInt virt_elements_; // Global indexes of virtual elements to load
-+  ArrOfInt virt_faces_; // Global indexes of virtual faces to load
-+  entier nb_virt_nodes_;
-+  entier nb_virt_elements_;
-+  entier nb_virt_faces_;
-+};
-+
-+// This is a structured grid, grid axes aligned on X, Y and Z.
-+// The grid can have "invalid_positions_" and "invalid_connections_".
-+// Nodes are numbered like this:
-+//  node_index(i,j,k) = (k * nb_nodes_y + j) * nb_nodes_x + i
-+// Elements are numbered like this:
-+//  element_index(i,j,k) = (k * nb_elements_y + j) * nb_elements_x + i
-+// Faces are numbered like this: faces of each direction have a numbering starting at zero.
-+//  The number of a particular face is the smallest number of its nodes.
-+//  Hence some numbers are not used (le last face of each "row" depending on the
-+//  direction)
-+class DomainIJK : public Domain
-+{
-+public:
-+  DomainIJK();
-+  // In each spatial direction, ordered list of coordinates of the IJK grid
-+  LataVector<ArrOfFloat> coord_;
-+
-+  // For each node and each element, flag indicates if it is valid or not
-+  // (eg, has usable field values)
-+  // If array is empty, all data is valid.
-+  ArrOfBit invalid_positions_;
-+  ArrOfBit invalid_connections_;
-+
-+  entier dimension() const { return coord_.size(); }
-+  entier nb_nodes() const {
-+    entier n = 1, d = coord_.size(); 
-+    for (entier i=0; i<d; i++) 
-+      n *= coord_[i].size_array();
-+    return n; 
-+  }
-+  entier nb_elements() const {
-+    entier n = 1, d = coord_.size(); 
-+    for (entier i=0; i<d; i++) 
-+      n *= coord_[i].size_array()-1;
-+    return n; 
-+  }
-+  // Dimension(0) des tableaux de valeurs aux faces
-+  //  (voir convention sur la numerotation des faces)
-+  //  les champs associes aux faces des differentes directions sont
-+  //  stockes dans les composantes du champ.
-+  entier nb_faces() const { return nb_nodes(); }
-+  BigEntier compute_memory_size() const
-+  { 
-+    BigEntier x = 0;
-+    const entier n = coord_.size();
-+    for (entier i = 0; i < n; i++) 
-+      x += memory_size(coord_[i]);
-+    return x + memory_size(invalid_positions_) + memory_size(invalid_connections_);
-+  }
-+
-+  // renvoie le nombre de sommets dans la direction dir
-+  //  (renvoie 1 si dir >= dimension())
-+  entier nb_som_dir(entier dir) const {
-+    if (dir >= dimension())
-+      return 1;
-+    else
-+      return coord_[dir].size_array();
-+  }
-+  // renvoie le nombre d'elements dans la direction dir
-+  //  (renvoie 1 si dir >= dimension())
-+  entier nb_elem_dir(entier dir) const {
-+    if (dir >= dimension())
-+      return 1;
-+    else
-+      return coord_[dir].size_array() - 1;
-+  }
-+
-+  virtual void fill_domain_from_lataDB(const LataDB & lataDB,
-+                                       const Domain_Id & id,
-+                                       const entier split_in_nparts = 1,
-+                                       const entier virt_layer_size = 1);
-+  virtual void fill_field_from_lataDB(const LataDB & lataDB,
-+                                      const Field_Id & id, 
-+                                      LataDeriv<LataField_base> & field) const;
-+
-+  // when loading fields, we will load elements (i,j,k) with 
-+  //   part_begin_ <= k < part_end_
-+  // (or j in 2D), part_begin_ and part_end_ include the virtual layer
-+  entier part_begin_;
-+  entier part_end_;
-+  // number of layers of virtual elements at each side:
-+  entier virtual_layer_begin_;
-+  entier virtual_layer_end_;
-+};
-+
-+template <class TabType>
-+class Field : public LataField_base
-+{
-+public:
-+  TabType data_;
-+  BigEntier compute_memory_size() const { return memory_size(data_); }
-+};
-+#endif
-diff --git a/databases/readers/Lata/LataV1_field_definitions.C b/databases/readers/Lata/LataV1_field_definitions.C
-new file mode 100644
-index 0000000..7bb0e2f
---- /dev/null
-+++ b/databases/readers/Lata/LataV1_field_definitions.C
-@@ -0,0 +1,84 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataV1_field_definitions.h>
-+#include <Motcle.h>
-+
-+typedef struct {
-+  const char * name;
-+  int shape; // Vector size (-1 => dimension of the problem)
-+} StdComponents;
-+
-+// COMPOSANTES EN MAJUSCULES !!!!!
-+// Components are checked in the same order than this array.
-+// We assume that the component has been found if component
-+// name begins with the string in this array. For example
-+// if the lata file contains INDICATRICE_INTERF, we will
-+// find that it is an "INDICATRICE" component.
-+// Therefore, long names must be placed before short names:
-+// If we have a component "K" and a component "K_EPS", then
-+// "K_EPS" must be placed before "K", otherwise "K_EPS" will
-+// never be found.
-+const StdComponents std_components[] =
-+  { 
-+    { "VITESSE",             -1 },
-+    { "primal",              -1 },
-+    { "VORTICITE",           -2 },
-+    { "MOYENNE_VITESSE",     -1 },
-+    { "ECART_TYPE_VITESSE",  -1 },
-+    { "MOYENNE_VORTICITE",   -2 },
-+    { "ECART_TYPE_VORTICITE", -2 },
-+    { "GRADIENT_PRESSION",            -1 },
-+    { "DERIVEE_U_ETOILE",             -1 },
-+    { "TERME_DIFFUSION_VITESSE",      -1 },
-+    { "TERME_CONVECTION_VITESSE",     -1 },
-+    { "TERME_SOURCE_VITESSE",         -1 },
-+    { "GRAD",         -1 },
-+    { "NORMALE_INTERFACE",            -1 },
-+    { "K_EPS",                             2 },
-+    { "ACCELERATION",        -1 },
-+    { "CHAMP_VECTORIEL",     -1},
-+    { "2_",     2},
-+    { "3_",     3},
-+    { "6_",     6},
-+    { "9_",     9},
-+    { "",                  1 }
-+    // Empty label means end of the table
-+  };
-+
-+int latav1_component_shape(const Motcle & compo)
-+{
-+  entier i = 0;
-+  while (std_components[i].name[0] != 0) {
-+    if (compo.debute_par(std_components[i].name))
-+      return std_components[i].shape;
-+    i++;
-+  }
-+  return 1;
-+}
-diff --git a/databases/readers/Lata/LataV1_field_definitions.h b/databases/readers/Lata/LataV1_field_definitions.h
-new file mode 100644
-index 0000000..8aaca6a
---- /dev/null
-+++ b/databases/readers/Lata/LataV1_field_definitions.h
-@@ -0,0 +1,35 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+// This file is included in LataDB.cpp (and only there)
-+// It contains fields definitions for the old LataV1 format
-+// (separated from LataDB.cpp so that changes in this file are
-+//  easily identified)
-+class Motcle;
-+int latav1_component_shape(const Motcle & compo);
-diff --git a/databases/readers/Lata/LataVector.h b/databases/readers/Lata/LataVector.h
-new file mode 100644
-index 0000000..18e46f6
---- /dev/null
-+++ b/databases/readers/Lata/LataVector.h
-@@ -0,0 +1,64 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataVector_H
-+#define LataVector_H
-+#include <assert.h>
-+#include <arch.h>
-+// This vector class uses an array of pointers so that objects stored are never
-+// moved in memory when the array is resized.
-+template <class C>
-+class LataVector
-+{
-+public:
-+  LataVector() : n_(0), data_(0) { }
-+  LataVector(const LataVector<C> & x) : n_(0), data_(0) { operator=(x); }
-+  LataVector(entier n) : n_(0), data_(0) { for (entier i=0; i<n; i++) add(); }
-+  ~LataVector() { reset(); }
-+  void reset() { for (int i=0; i<n_; i++) { delete data_[i]; }; delete[] data_; n_ = 0; data_ = 0; }
-+  const C & operator[](entier i) const { assert(i>=0 && i<n_); return *(data_[i]); }
-+  C & operator[](entier i) { assert(i>=0 && i<n_); return *(data_[i]); }
-+  C & add(const C & item) { return add_item(new C(item)); }
-+  C & add() { return add_item(new C); }
-+  entier size() const { return n_; }
-+  entier rang(const C & c) const { for (entier i = 0; i < n_; i++) if (*(data_[i]) == c) return i; return -1; }
-+  LataVector<C> & operator=(const LataVector<C> & x) { reset(); for (int i=0; i<x.n_; i++) add(x[i]); return *this; }
-+private:
-+  C & add_item(C* added_item) {
-+    C** old = data_; 
-+    data_ = new C*[n_+1]; 
-+    for (int i=0; i<n_; i++) data_[i] = old[i]; 
-+    delete[] old;
-+    data_[n_++] = added_item;
-+    return *added_item;
-+  }
-+  entier n_;
-+  C** data_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/LataWriter.C b/databases/readers/Lata/LataWriter.C
-new file mode 100644
-index 0000000..3387570
---- /dev/null
-+++ b/databases/readers/Lata/LataWriter.C
-@@ -0,0 +1,331 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataWriter.h>
-+#include <LataStructures.h>
-+
-+// Path, if not empty, must include a trailing '/'
-+// basename must not include the .lata extension
-+void LataWriter::init_file(const Nom & path, const Nom & basename,
-+                           const LataDBDataType & default_int_format, 
-+                           LataDBDataType::Type default_float_type)
-+{
-+  db_.reset();
-+  db_.set_path_prefix(path);
-+  basename_ = basename;
-+  db_.default_type_int_ = default_int_format;
-+  db_.default_float_type_ = default_float_type;
-+  db_.header_ = "Lata V2";
-+  db_.case_ = "lata2dx";
-+  db_.software_id_ = "Trio_U";
-+  //split_ = split;
-+
-+  // Global geometries and fields:
-+  db_.add_timestep(0.);
-+}
-+
-+// Add a new timestep to the lata database (new TEMPS entry)
-+// Geometries and fields are always written in the last added timestep
-+//  (the timestep stored within the domain or field is ignored)
-+// Those written before the first call to write_time() go into global
-+//  fields and geometry definitions.
-+void LataWriter::write_time(double t)
-+{
-+  db_.add_timestep(t);
-+}
-+
-+void LataWriter::write_geometry(const Domain & dom)
-+{
-+  // Index of the last timestep:
-+  const entier tstep = db_.nb_timesteps() - 1;
-+
-+  // Build a geometry database entry and add it to database
-+  LataDBGeometry geom;
-+  geom.name_ = dom.id_.name_;
-+  geom.elem_type_ = dom.element_type_to_string(dom.elt_type_);
-+  geom.timestep_ = tstep;
-+  db_.add_geometry(geom);
-+
-+  // Write geometry data
-+  const DomainUnstructured * dom1_ptr = dynamic_cast<const DomainUnstructured*>(&dom);
-+  const DomainIJK * dom2_ptr = dynamic_cast<const DomainIJK*>(&dom);
-+  
-+  if (dom1_ptr)
-+    {
-+      // For unstructured meshes, we write the following fields:
-+      //  SOMMETS
-+      //  ELEMENTS
-+      //  [ FACES ]
-+      //  [ ELEM_FACES ]
-+      const DomainUnstructured & domain = *dom1_ptr;
-+      LataDBField field;
-+      // Write nodes
-+      Nom fieldname = "SOMMETS";
-+      field.uname_ = Field_UName(geom.name_, fieldname, "" /* localisation */);
-+      field.name_ = fieldname;
-+      field.timestep_ = tstep;
-+
-+      field.filename_ = basename_;
-+      field.filename_ += ".lata.";
-+      field.filename_ += fieldname;
-+      field.filename_ += ".";
-+      field.filename_ += geom.name_;
-+      if (tstep > 0) { 
-+        field.filename_ += ".";
-+        field.filename_ += Nom(tstep);
-+      }
-+      field.nb_comp_ = domain.dimension();
-+      field.geometry_ = geom.name_;
-+      field.datatype_ = db_.default_type_float();
-+      field.localisation_ = "";
-+      field.reference_ = "";
-+      field.size_ = domain.nb_nodes();
-+
-+      db_.add_field(field);
-+      db_.write_data(tstep, field.uname_, domain.nodes_);
-+
-+      // Write elements
-+      fieldname = "ELEMENTS";
-+      field.uname_ = Field_UName(geom.name_, fieldname, "" /* localisation */);
-+      field.name_ = fieldname;
-+      field.timestep_ = tstep;
-+
-+      field.filename_ = basename_;
-+      field.filename_ += ".lata.";
-+      field.filename_ += fieldname;
-+      field.filename_ += ".";
-+      field.filename_ += geom.name_;
-+      if (tstep > 0) { 
-+        field.filename_ += ".";
-+        field.filename_ += Nom(tstep);
-+      }
-+      field.nb_comp_ = domain.elements_.dimension(1);
-+      field.geometry_ = geom.name_;
-+      field.datatype_ = db_.default_type_int_;
-+      field.localisation_ = "";
-+      field.reference_ = "SOMMETS";
-+      field.size_ = domain.nb_elements();
-+      
-+      db_.add_field(field);
-+      db_.write_data(tstep, field.uname_, domain.elements_);
-+
-+      // Write faces
-+      if (domain.faces_ok()) {
-+       fieldname = "FACES";
-+       field.uname_ = Field_UName(geom.name_, fieldname, "" /* localisation */);
-+       field.name_ = fieldname;
-+       field.timestep_ = tstep; 
-+
-+       field.filename_ = basename_;
-+       field.filename_ += ".lata.";
-+       field.filename_ += fieldname;
-+       field.filename_ += ".";
-+       field.filename_ += geom.name_;
-+       if (tstep > 0) { 
-+        field.filename_ += ".";
-+        field.filename_ += Nom(tstep);
-+       }
-+       field.nb_comp_ = domain.faces_.dimension(1);
-+       field.geometry_ = geom.name_;
-+       field.datatype_ = db_.default_type_int_;
-+       field.localisation_ = "";
-+       field.reference_ = "SOMMETS";
-+       field.size_ = domain.nb_faces();
-+      
-+       db_.add_field(field);
-+       db_.write_data(tstep, field.uname_, domain.faces_);
-+
-+       fieldname = "ELEM_FACES";
-+       field.uname_ = Field_UName(geom.name_, fieldname, "" /* localisation */);
-+       field.name_ = fieldname;
-+       field.timestep_ = tstep; 
-+
-+       field.filename_ = basename_;
-+       field.filename_ += ".lata.";
-+       field.filename_ += fieldname;
-+       field.filename_ += ".";
-+       field.filename_ += geom.name_;
-+       if (tstep > 0) { 
-+        field.filename_ += ".";
-+        field.filename_ += Nom(tstep);
-+       }
-+       field.nb_comp_ = domain.elem_faces_.dimension(1);
-+       field.geometry_ = geom.name_;
-+       field.datatype_ = db_.default_type_int_;
-+       field.localisation_ = "";
-+       field.reference_ = "FACES";
-+       field.size_ = domain.nb_elements();
-+      
-+       db_.add_field(field);
-+       db_.write_data(tstep, field.uname_, domain.elem_faces_);
-+     }
-+    }
-+  else if (dom2_ptr)
-+    {
-+      // For IJK we write 2 or 3 fields containing 1-dimensionnal arrays with
-+      //  the nodes coordinates in each direction:
-+      //  SOMMETS_IJK_I, SOMMETS_IJK_J, SOMMETS_IJK_K.
-+
-+      const DomainIJK & domain = *dom2_ptr;
-+      // Write coordinates
-+      const entier dim = domain.coord_.size();
-+      if (dim > 3) {
-+        Journal() << "Error in LataWriter::write_geometry: dimension > 3" << endl;
-+        throw InternalError;
-+      }
-+      Noms dir_names(3);
-+      dir_names[0] = "I";
-+      dir_names[1] = "J";
-+      dir_names[2] = "K";
-+      for (entier i_dim = 0; i_dim < dim; i_dim++) {
-+        FloatTab coord;
-+        {
-+          const ArrOfFloat & x = domain.coord_[i_dim];
-+          const entier n = x.size_array();
-+          coord.resize(n, 1);
-+          for (entier i = 0; i < n; i++)
-+            coord(i, 0) = x[i];
-+        }
-+        
-+        Nom fieldname = "SOMMETS_IJK_";
-+        fieldname += dir_names[i_dim];
-+        LataDBField field;
-+        field.uname_ = Field_UName(geom.name_, fieldname, "" /* localisation */);
-+        field.name_ = fieldname;
-+        field.timestep_ = tstep;
-+
-+        field.filename_ = basename_;
-+        field.filename_ += ".lata.";
-+        field.filename_ += fieldname;
-+        field.filename_ += ".";
-+        field.filename_ += geom.name_;
-+        if (tstep > 0) { 
-+          field.filename_ += ".";
-+          field.filename_ += Nom(tstep);
-+        }
-+        field.nb_comp_ = 1;
-+        field.geometry_ = geom.name_;
-+        field.datatype_ = db_.default_type_float();
-+        field.localisation_ = "";
-+        field.reference_ = "";
-+        field.size_ = coord.dimension(0);
-+
-+        db_.add_field(field);
-+        db_.write_data(tstep, field.uname_, coord);
-+      }
-+      
-+      if (domain.invalid_connections_.size_array() > 0) {
-+        const entier n = domain.invalid_connections_.size_array();
-+        IntTab tmp(n, 1);
-+        for (entier i = 0; i < n; i++) 
-+          tmp(i, 0) = domain.invalid_connections_[i];
-+
-+        Nom fieldname = "INVALID_CONNECTIONS";
-+        LataDBField field;
-+        field.uname_ = Field_UName(geom.name_, fieldname, "ELEM" /* localisation */);
-+        field.name_ = fieldname;
-+        field.timestep_ = tstep;
-+
-+        field.filename_ = basename_;
-+        field.filename_ += ".lata.";
-+        field.filename_ += fieldname;
-+        field.filename_ += ".";
-+        field.filename_ += geom.name_;
-+        if (tstep > 0) { 
-+          field.filename_ += ".";
-+          field.filename_ += Nom(tstep);
-+        }
-+        field.nb_comp_ = 1;
-+        field.geometry_ = geom.name_;
-+        field.datatype_ = db_.default_type_int_;
-+        field.datatype_.array_index_ = LataDBDataType::NOT_AN_INDEX;
-+        field.localisation_ = "ELEM";
-+        field.reference_ = "";
-+        field.size_ = n;
-+
-+        db_.add_field(field);
-+        db_.write_data(tstep, field.uname_, tmp);
-+      }
-+    }
-+  else
-+    {
-+      Journal() << "Error LataWriter::write_geometry domain type not supported" << endl;
-+      throw InternalError;
-+    }
-+}
-+
-+void LataWriter::write_component(const LataField_base & field)
-+{
-+  // Index of the last timestep:
-+  const entier tstep = db_.nb_timesteps() - 1;
-+  
-+  LataDBField lata_field;
-+  
-+  lata_field.uname_ = field.id_.uname_;
-+  lata_field.name_ = field.id_.uname_.get_field_name();
-+  lata_field.timestep_ = tstep;
-+  lata_field.filename_ = basename_;
-+  lata_field.filename_ += ".lata.";
-+  lata_field.filename_ += lata_field.uname_.build_string();
-+  if (tstep > 0) { 
-+    lata_field.filename_ += ".";
-+    lata_field.filename_ += Nom(tstep);
-+  }
-+  lata_field.geometry_ = field.id_.uname_.get_geometry();
-+  lata_field.component_names_ = field.component_names_;
-+  // Unites a remplir
-+  // Size = -1 => valeur par defaut cherchee dans la geometrie
-+  lata_field.localisation_ = LataField_base::localisation_to_string(field.localisation_);
-+  lata_field.nature_ = field.nature_;
-+
-+  const Field<FloatTab> * float_f = dynamic_cast<const Field<FloatTab>*>(&field);
-+  const Field<IntTab>* int_f = dynamic_cast<const Field<IntTab>*>(&field);
-+  if (int_f) {
-+    lata_field.nb_comp_ = int_f->data_.dimension(1);
-+    lata_field.size_ = int_f->data_.dimension(0);
-+    lata_field.datatype_ = db_.default_type_int_;
-+    lata_field.datatype_.array_index_ = LataDBDataType::NOT_AN_INDEX;
-+    db_.add_field(lata_field);
-+    db_.write_data(tstep, lata_field.uname_, int_f->data_);
-+  } else if (float_f) {
-+    lata_field.nb_comp_ = float_f->data_.dimension(1);
-+    lata_field.size_ = float_f->data_.dimension(0);
-+    lata_field.datatype_ = db_.default_type_float();
-+    db_.add_field(lata_field);
-+    db_.write_data(tstep, lata_field.uname_, float_f->data_);
-+  }
-+}
-+
-+void LataWriter::finish()
-+{
-+  Nom n(db_.path_prefix());
-+  n += basename_;
-+  n += ".lata";
-+  db_.write_master_file(n);
-+}
-diff --git a/databases/readers/Lata/LataWriter.h b/databases/readers/Lata/LataWriter.h
-new file mode 100644
-index 0000000..d17c413
---- /dev/null
-+++ b/databases/readers/Lata/LataWriter.h
-@@ -0,0 +1,61 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataWriter_H
-+#define LataWriter_H
-+#include <LataDB.h>
-+class Domain;
-+class LataField_base;
-+
-+// This class provides general services to write lata files
-+//  from the "high level" objects Domain and Field (the LataDB class provides
-+//  only low level services to write arrays)
-+class LataWriter
-+{
-+public:
-+  enum FileSplittingOption { MULTIPLE_FILES, SINGLE_FILE };
-+  void init_file(const Nom & path, const Nom & basename,
-+                 const LataDBDataType & default_int_format, 
-+                 LataDBDataType::Type default_float_type);
-+
-+  void write_time(double t);
-+  void write_geometry(const Domain & dom);
-+  void write_component(const LataField_base & field);
-+
-+  void finish();
-+  enum ERRORS { InternalError };
-+
-+protected:
-+  // This is the database where we put all data...
-+  LataDB db_;
-+  // Basename for files and lata master file:
-+  Nom basename_;
-+  // FileSplittingOption split_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/Lata_tools.C b/databases/readers/Lata/Lata_tools.C
-new file mode 100644
-index 0000000..fb97479
---- /dev/null
-+++ b/databases/readers/Lata/Lata_tools.C
-@@ -0,0 +1,128 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Lata_tools.h>
-+#include <ArrOfInt.h>
-+#include <ArrOfDouble.h>
-+#include <ArrOfFloat.h>
-+#include <ArrOfBit.h>
-+#include <sstream>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+static int journal_level = 0;
-+
-+void set_Journal_level(entier level)
-+{
-+  if (journal_level==level) return;
-+  journal_level = level;
-+  Journal() << "Changed lata journal level: " << journal_level << endl;
-+}
-+
-+static std::ostringstream junk_journal;
-+
-+std::ostream & Journal(entier level)
-+{
-+  if (level <= journal_level) {
-+    cerr << "[" << level << "] ";
-+    return cerr;
-+  } else {
-+    junk_journal.seekp(0);
-+    return junk_journal;
-+  }
-+}
-+
-+// Description: this method must return the total memory consumption
-+//  of the object (used to compute the size of the data cache)
-+BigEntier LataObject::compute_memory_size() const
-+{
-+  Journal() << "Error in LataObject::compute_memory_size(): function not implemented" << endl;
-+  throw;
-+}
-+
-+BigEntier memory_size(const ArrOfInt & tab)
-+{
-+  // On ne tient pas compte du caractere smart_resize ou ref du tableau
-+  // c'est pas tres grave pour l'instant pour ce qu'on en fait...
-+  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(entier);
-+}
-+
-+BigEntier memory_size(const ArrOfDouble & tab)
-+{
-+  // on ne tient pas compte du caractere smart_resize ou ref du tableau
-+  // c'est pas tres grave pour l'instant pour ce qu'on en fait...
-+  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(double);
-+}
-+
-+BigEntier memory_size(const ArrOfFloat & tab)
-+{
-+  // on ne tient pas compte du caractere smart_resize ou ref du tableau
-+  // c'est pas tres grave pour l'instant pour ce qu'on en fait...
-+  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(float);
-+}
-+
-+BigEntier memory_size(const ArrOfBit & tab)
-+{
-+  return ((BigEntier)sizeof(tab)) + ((BigEntier)tab.size_array()) * sizeof(int) / 32; 
-+}
-+
-+void split_path_filename(const char *s, Nom & path, Nom & filename)
-+{
-+  int i;
-+  for (i=(int)strlen(s)-1;i>=0;i--)
-+    if ((s[i]==PATH_SEPARATOR) || (s[i]=='\\'))
-+      break;
-+  path = "";
-+  int j;
-+  for (j = 0; j <= i; j++)
-+    path += Nom(s[j]);
-+  
-+  // Parse basename : if extension given, remove it
-+  filename = s+i+1;
-+}
-+
-+static const ArrOfInt * array_to_sort_ptr = 0;
-+int compare_indirect(const void *ptr1, const void *ptr2)
-+{
-+  entier i1 = *(const entier*)ptr1;
-+  entier i2 = *(const entier*)ptr2;
-+  entier diff = (*array_to_sort_ptr)[i1] - (*array_to_sort_ptr)[i2];
-+  return (diff>0) ? 1 : ((diff==0) ? 0 : -1);
-+}
-+
-+void array_sort_indirect(const ArrOfInt & array_to_sort, ArrOfInt & index)
-+{
-+  const entier n = array_to_sort.size_array();
-+  index.set_smart_resize(1);
-+  index.resize_array(n);
-+  for (entier i = 0; i < n; i++)
-+    index[i] = i;
-+  array_to_sort_ptr = &array_to_sort;
-+  qsort(index.addr(), n, sizeof(entier), compare_indirect);
-+}
-diff --git a/databases/readers/Lata/Lata_tools.h b/databases/readers/Lata/Lata_tools.h
-new file mode 100644
-index 0000000..940fc54
---- /dev/null
-+++ b/databases/readers/Lata/Lata_tools.h
-@@ -0,0 +1,194 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Lata_tools_include_
-+#define Lata_tools_include_
-+#include <assert.h>
-+#include <arch.h>
-+
-+
-+
-+
-+
-+#ifdef WIN32
-+#define __BIG_ENDIAN    111
-+#define __LITTLE_ENDIAN 121
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-+
-+#define strtoll _strtoi64
-+// This must be able to contain a total memory size
-+// or a very big operation counter.
-+typedef __int64 BigEntier;
-+
-+#else
-+#ifdef __APPLE__
-+// Assume we only have x86, x86_64 based Macs.
-+#define __BIG_ENDIAN    111
-+#define __LITTLE_ENDIAN 121
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-+#endif
-+
-+// This must be able to contain a total memory size
-+// or a very big operation counter.
-+typedef long long BigEntier;
-+#endif
-+
-+#ifndef __BYTE_ORDER
-+#include <endian.h>
-+#endif
-+
-+#include <LataVector.h>
-+
-+
-+#define PATH_SEPARATOR '/'
-+
-+#ifndef __BYTE_ORDER
-+#error "Byte order not defined."
-+#endif
-+#if (__BYTE_ORDER == __BIG_ENDIAN)
-+const bool mymachine_msb =  true;
-+#elif (__BYTE_ORDER == __LITTLE_ENDIAN)
-+const bool mymachine_msb =  false;
-+#else
-+#error "Byte order is neither __BIG_ENDIAN nor __LITTLE_ENDIAN : "
-+#endif
-+
-+class ArrOfInt;
-+class ArrOfDouble;
-+class ArrOfFloat;
-+class ArrOfBit;
-+BigEntier memory_size(const ArrOfInt &);
-+BigEntier memory_size(const ArrOfDouble &);
-+BigEntier memory_size(const ArrOfFloat &);
-+BigEntier memory_size(const ArrOfBit &);
-+
-+class LataObject
-+{
-+public:
-+  virtual ~LataObject() {};
-+  virtual BigEntier compute_memory_size() const;
-+};
-+
-+// A 'LataDeriv<X> ptr' object can hold an object of class Y which is any derived type of X.
-+// The contained object can be accessed via "valeur()" (you get an object of type X)
-+//   or "refcast()" (get an object of any derived type Z between X and Y)
-+//   (refcast() throws an exception if you try to cast with a wrong type)
-+// It can also be null (hold no object). valeur() will then throw an exception.
-+// Example:
-+//  LataDeriv<X> deriv_x;
-+//  Y & y = deriv_x.instancie(Y); // Creates an instance of type Y within deriv_x
-+//  X & x = deriv_x.valeur(); // Get a reference to the contained object
-+//  Y & y2 = deriv_x.refcast(Y); // Same, but you get a reference of type Y
-+//  Z & z = deriv_x.refcast(Z); // Throw an exception if Z is not a derived class of X and a base class of Y
-+//  x.reset(); // Destroys the contained object (also destroyed when deriv_x is destroyed)
-+#define instancie(x) instancie_(new x)
-+#define refcast(x) refcast_((x*) 0)
-+
-+template <class C>
-+class LataDeriv : public LataObject
-+{
-+public:
-+  enum DERIV_ERROR { ERROR_TYPE, ERROR_NULL };
-+  LataDeriv() : ptr_(0) { };
-+  ~LataDeriv() { delete ptr_; ptr_ = 0; }
-+  void reset() { delete ptr_; ptr_ = 0; }
-+  entier non_nul() const { return ptr_ != 0; }
-+  // operator C &() { return valeur(); }
-+  // operator const C &() const { return valeur(); }
-+  C & valeur() { if (!ptr_) throw ERROR_NULL; return *ptr_; }
-+  const C & valeur() const { if (!ptr_) throw ERROR_NULL; return *ptr_; }
-+  template<class DER_C> DER_C & instancie_(DER_C *ptr) {
-+    reset();
-+    ptr_ = ptr;
-+    if (!dynamic_cast<C*>(ptr_)) {
-+      delete ptr_;
-+      throw ERROR_TYPE; // DER_C is not a derived type of C
-+    }
-+    return (DER_C &) (*ptr_); 
-+  }
-+  template<class DER_C> DER_C & refcast_(DER_C *cast_type) {
-+    if (!ptr_)
-+      throw ERROR_NULL;
-+    DER_C * x = dynamic_cast<DER_C *>(ptr_);
-+    if (!x)
-+      throw ERROR_TYPE;
-+    return *x;
-+  }
-+  BigEntier compute_memory_size() const { if (ptr_) return ptr_->compute_memory_size(); else return 0; }
-+protected:
-+  LataDeriv(const LataDeriv<C> & c) { ptr_ = 0; operator=(c); }
-+  LataDeriv(const C & c) { ptr_ = 0; operator=(c); }
-+  LataDeriv<C> & operator=(const LataDeriv<C> &);
-+  LataDeriv<C> & operator=(const C &);
-+  C *ptr_;
-+};
-+
-+// This is a reference to an object of type C, but thr reference can be null
-+template<class C>
-+class LataRef
-+{
-+public:
-+  enum REF_ERROR { ERROR_NULL };
-+  LataRef() : ptr_(0) { }
-+  ~LataRef() { ptr_ = 0; }
-+  LataRef(const LataRef<C> & x) : ptr_(x.ptr_) { }
-+  LataRef(C & x) : ptr_(&x) { }
-+  LataRef<C> & operator=(LataRef<C> & x) { ptr_ = x.ptr_; return *this; }
-+  LataRef<C> & operator=(C & x) { ptr_ = &x; return *this; }
-+  void reset() { ptr_ = 0; }
-+  operator C&() { if (!ptr_) throw ERROR_NULL; return *ptr_; }  
-+  C& valeur() { if (!ptr_) throw ERROR_NULL; return *ptr_; }  
-+  entier non_nul() const { return ptr_ != 0; }
-+protected:
-+  C *ptr_;
-+};
-+
-+void array_sort_indirect(const ArrOfInt & array_to_sort, ArrOfInt & index);
-+
-+class Nom;
-+void split_path_filename(const char *full_name, Nom & path, Nom & filename);
-+
-+// To optimize small loops: replace for(i=0;i<n;i++) with n<=3 by
-+//  for (i=0; i<loop_max(n,3); i++) {
-+//    loop_instructions();...
-+//    break_loop(i,n);
-+//  }
-+#define loop_max(nloops,max) max
-+#define break_loop(index,nloops) if (index >= nloops-1) break
-+
-+#include <LataJournal.h>
-+#include <Motcle.h>
-+#include <Noms.h>
-+#include <DoubleTab.h>
-+#include <IntTab.h>
-+#include <FloatTab.h>
-+
-+Motcles noms_to_motcles(const Noms & noms);
-+
-+#endif
-diff --git a/databases/readers/Lata/LmlReader.C b/databases/readers/Lata/LmlReader.C
-new file mode 100644
-index 0000000..1b1b7d2
---- /dev/null
-+++ b/databases/readers/Lata/LmlReader.C
-@@ -0,0 +1,435 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#define BUFSZ 1000
-+#include <iostream>
-+#include <EFichier.h>
-+#include <LataDB.h>
-+#include <LataFilter.h>
-+#include <stdlib.h>
-+#include <string.h>
-+// lml files contain double precision values that can overflow or underflow
-+//  if converted to float. Check for overflow, ignore underflow
-+static inline float double_to_float(double x)
-+{
-+  // Written like this, the code will also stop on NAN values:
-+  if (!(x < 1.e38 && x > -1.e38)) {
-+    Journal() << "lml reader: Error converting double value " << x << " to float" << endl;
-+    throw LataDBError(LataDBError::READ_ERROR);
-+  }
-+  return (float) x;
-+}
-+
-+// Reads the lml file, fills the lata_db and writes the data (coordinates, elements and
-+//  fields data) to a unique file data_filename.
-+// The default format used to write data in the data_filename is lata_db.default_type_*
-+// data_filename must not contain the path but only a filename with extension.
-+// The path to the data file must be set by lata_db.set_path_prefix() before.
-+// If data_filename is a null pointer, data files are not written and file offsets in lata_db will
-+//  be wrong (useful for just getting metadata)
-+void lml_reader(const char * lmlfilename, const char * data_filename, LataDB & lata_db)
-+{
-+  Nom filename_in_master_file;
-+  if (!data_filename)
-+    filename_in_master_file = "DATA_NOT_WRITTEN";
-+  else
-+    filename_in_master_file = data_filename;
-+  
-+  const entier lmllevel=4;
-+  EFichier is;
-+  Journal(lmllevel) << "lml_reader: " << endl;
-+  is.ouvrir(lmlfilename);
-+  if (!is.good()) {
-+    Journal() << "Error: cannot open lml file " << lmlfilename << endl;
-+    throw;
-+  }
-+  char s[BUFSZ+1];
-+  is.get_istream().getline(s, BUFSZ);
-+  if (!is.good()) {
-+    Journal() << "Lml file " << lmlfilename << " is empty" << endl;
-+    // Just put an empty initial timestep:
-+    lata_db.add_timestep(-1.);
-+    return;
-+  }
-+  lata_db.header_ = s;
-+  Journal(lmllevel) << "Header: " << s << endl;
-+  is.get_istream().getline(s, BUFSZ);
-+  lata_db.case_ = s;
-+  Journal(lmllevel) << "Case: " << s << endl;
-+  is.get_istream().getline(s, BUFSZ);
-+  lata_db.software_id_ = s;
-+  Journal(lmllevel) << "Software_id: " << s << endl;
-+
-+  Noms liste_noms_geoms;
-+  Noms liste_noms_topo;
-+  // Create first timestep (global definitions)
-+  lata_db.add_timestep(-1.);
-+  // file_offset_blurb:
-+  // the file offset will be computed by LataDB::write_data(),
-+  // but we must tell write_data() if it must put the data at the beginning
-+  //  (file_offset==0) or append the data at the end of the file (file_offset!=0)
-+  // file_offset is 0 for the first data block and it is incremented for each block.
-+  entier file_offset = 0;
-+  LataDBField sommets;
-+  FloatTab nodes;
-+  while(1) {
-+    const entier tstep = lata_db.nb_timesteps() - 1;
-+    Motcle motlu;
-+    is >> motlu;
-+    if (!is.good()) break;
-+    if (motlu == "GRILLE") {
-+      LataDBGeometry geom;
-+      sommets.name_ = "SOMMETS";
-+      geom.timestep_ = sommets.timestep_ = tstep;
-+      sommets.filename_ = filename_in_master_file;
-+      Nom mottmp;
-+      is >> mottmp;
-+      geom.name_ = ((const char*)mottmp)+7; // retire GRILLE_ du nom
-+      Journal(lmllevel) << "lml_reader: GRILLE " << geom.name_ << endl;
-+      is >> sommets.nb_comp_;
-+      {
-+      int tmp;
-+      is >> tmp; 
-+      sommets.size_ = tmp; // size_ est long long...
-+      }
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      sommets.geometry_ = geom.name_;
-+      sommets.uname_ = Field_UName(sommets.geometry_, sommets.name_, "");
-+      sommets.datatype_ = lata_db.default_type_float();
-+      sommets.datatype_.file_offset_ = file_offset++; // see file_offset_blurb
-+      nodes.resize(sommets.size_, sommets.nb_comp_);
-+      for (entier i = 0; i < sommets.size_; i++)
-+        for (entier j = 0; j < sommets.nb_comp_; j++) {
-+          double x;
-+          is >> x;
-+          if (!is.good())
-+            throw LataDBError(LataDBError::READ_ERROR);
-+          nodes(i,j) = double_to_float(x);
-+        }
-+      Journal(lmllevel+1) << "Finished reading nodes" << endl;
-+      
-+      lata_db.add_geometry(geom);
-+      // Write nodes to disk later: in 2D they will be cropped
-+    } else if (motlu == "TOPOLOGIE") {
-+      LataDBField elements;
-+      elements.name_ = "ELEMENTS";
-+      elements.timestep_ = tstep;
-+      elements.filename_ = filename_in_master_file;
-+      elements.datatype_ = lata_db.default_type_int_;
-+      elements.datatype_.file_offset_ = file_offset++; // see file_offset_blurb
-+      Nom ident;
-+      is >> ident; // Topologie_MAILLAGE_VOLUMIQUE_XXX
-+      Nom mottmp;
-+      is >> mottmp;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      elements.geometry_ = ((const char*)mottmp)+7; // retire GRILLE_ du nom
-+      elements.uname_ = Field_UName(elements.geometry_, elements.name_, "");
-+      liste_noms_geoms.add(elements.geometry_);
-+      liste_noms_topo.add(ident);
-+      is >> motlu;
-+      if (motlu != "MAILLE") {
-+        Journal() << "Error reading TOPOLOGIE: expected MAILLE" << endl;
-+        throw;
-+      }
-+      {
-+      int tmp;
-+      is >> tmp; // size_ est long long...
-+      elements.size_ = tmp;
-+      }
-+      is >> motlu;
-+      int borne_index_min=0;
-+      if (motlu == "TETRA4") {
-+        lata_db.set_elemtype(tstep, elements.geometry_, "TETRAEDRE");
-+        elements.nb_comp_ = 4;
-+      } else if (motlu == "TRIANGLE_3D") {
-+        elements.nb_comp_ = 3;
-+        lata_db.set_elemtype(tstep, elements.geometry_, "TRIANGLE_3D");
-+      } else if (motlu == "QUADRANGLE_3D") {
-+        elements.nb_comp_ = 4;
-+        lata_db.set_elemtype(tstep, elements.geometry_, "QUADRANGLE_3D");
-+      } else if (motlu == "VOXEL8") {
-+        elements.nb_comp_ = 8;
-+        lata_db.set_elemtype(tstep, elements.geometry_, "HEXAEDRE");
-+      } else if (motlu == "SEGMENT") {
-+        elements.nb_comp_ = 2;
-+        lata_db.set_elemtype(tstep, elements.geometry_, "SEGMENT");
-+      } else if (motlu == "POINT") {
-+        elements.nb_comp_ = 1;
-+        lata_db.set_elemtype(tstep, elements.geometry_, "POINT");
-+      } else if (motlu == "PRISM6") {
-+        lata_db.set_elemtype(tstep, elements.geometry_, "PRISM6");
-+        elements.nb_comp_ = 6;
-+      } else if (motlu.debute_par("POLYEDRE_")) {
-+        lata_db.set_elemtype(tstep, elements.geometry_, motlu);
-+        elements.nb_comp_ = atoi(((const char *)motlu) + strlen("polyedre_"));
-+        borne_index_min=-1;
-+      } else if (motlu.debute_par("POLYGONE_")) {
-+        lata_db.set_elemtype(tstep, elements.geometry_, motlu);
-+        elements.nb_comp_ = atoi(((const char *)motlu) + strlen("polygone_"));
-+        borne_index_min=-1;
-+      } else {
-+        Journal() << "Error reading TOPOLOGIE: unknown element type" << endl;
-+        throw;
-+      }
-+
-+      Journal(lmllevel+1) << " " << elements.size_ << " elements " << motlu << endl;
-+      IntTab elems;
-+      elems.resize(elements.size_, elements.nb_comp_);
-+      for (entier i = 0; i < elements.size_; i++) {
-+        if (i != 0) {
-+          is >> motlu; // element type
-+          if (!is.good())
-+            throw LataDBError(LataDBError::READ_ERROR);
-+        }
-+        entier j;
-+        for (j = 0; j < elements.nb_comp_; j++) {
-+          is >> elems(i,j);
-+          if (!is.good())
-+            throw LataDBError(LataDBError::READ_ERROR);
-+          elems(i,j)--;
-+          if (elems(i,j) < borne_index_min || elems(i,j) >= sommets.size_ ) {
-+            Journal() << "Error reading TOPOLOGIE: bad node number elem(" << i << "," << j << ")=" << elems(i,j) << endl;
-+            throw;
-+          }
-+        }
-+      }
-+      Journal(lmllevel+1) << " finished reading elements" << endl;
-+      lata_db.add_field(sommets);
-+      if (data_filename)
-+        lata_db.write_data(tstep, sommets.uname_, nodes);
-+      lata_db.add_field(elements);
-+      if (data_filename)
-+        lata_db.write_data(tstep, elements.uname_, elems);
-+    } else if (motlu == "FACE") {
-+      int n;
-+      is >> n;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      Journal(lmllevel+1) << " faces " << n << endl;      
-+    } else if (motlu == "TEMPS") {
-+      double t;
-+      is >> t;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      lata_db.add_timestep(t);
-+      Journal(lmllevel+1) << " new time: " << t << endl;      
-+    } else if (motlu == "CHAMPMAILLE" || motlu == "CHAMPPOINT") {
-+      LataDBField field;
-+      is >> field.name_;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      Journal(lmllevel+1) << " new field: " << field.name_ << endl;      
-+      field.timestep_ = tstep;
-+      field.filename_ = filename_in_master_file;
-+      if (motlu == "CHAMPMAILLE")
-+        field.localisation_ = "ELEM";
-+      else
-+        field.localisation_ ="SOM";
-+      Nom nom_topo;
-+      is >> nom_topo;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+
-+      const entier rang_topo = liste_noms_topo.rang(nom_topo);
-+      if (rang_topo < 0) {
-+        Journal() << "Error reading lml file : unknown topology name " << nom_topo << endl;
-+        throw;
-+      }
-+      field.geometry_ = liste_noms_geoms[rang_topo];
-+      Motcle mottmp(field.name_);
-+      Motcle tmp2("_");
-+      tmp2 += field.localisation_;
-+      tmp2 += "_";
-+      tmp2 += field.geometry_;
-+      mottmp.prefix(tmp2); // Retire _SOM_dom du nom
-+      field.name_ = mottmp;
-+      field.uname_ = Field_UName(field.geometry_, field.name_, field.localisation_);
-+      double t;
-+      is >> t; // Unused time value
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      is >> motlu; // Repeat fieldname
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      is >> field.nb_comp_;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      Nom unit;
-+      is >> unit;
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      field.unites_.add(unit);
-+      is >> motlu; // type0
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      {
-+      int tmp;
-+      is >> tmp;
-+      field.size_ = tmp; // long long convert
-+      }
-+      if (!is.good())
-+        throw LataDBError(LataDBError::READ_ERROR);
-+      // By default, 3 components fields are vectors:
-+      if (field.nb_comp_ == 3) {
-+        Journal(lmllevel+1) << " 3 components=> say it's a vector" << endl;
-+        field.nature_ = LataDBField::VECTOR;
-+      } else {
-+        field.nature_ = LataDBField::SCALAR;
-+      }
-+      field.datatype_ = lata_db.default_type_float();
-+      field.datatype_.file_offset_ = file_offset++; // see file_offset_blurb
-+      FloatTab tab;
-+      tab.resize(field.size_, field.nb_comp_);
-+      for (entier i = 0; i < field.size_; i++) {
-+        entier n;
-+        is >> n;
-+        if (!is.good())
-+          throw LataDBError(LataDBError::READ_ERROR);
-+        for (entier j = 0; j < field.nb_comp_; j++) {
-+          double x;
-+          is >> x;
-+          if (!is.good())
-+            throw LataDBError(LataDBError::READ_ERROR);
-+          tab(i,j) = double_to_float(x);
-+        }
-+      }
-+      Journal(lmllevel+1) << " finished reading field " << field.name_ << endl;
-+      lata_db.add_field(field);
-+      if (data_filename)
-+        lata_db.write_data(tstep, field.uname_, tab);
-+    } else if (motlu == "FIN") {
-+      break;
-+    } else {
-+      Journal() << "Error reading lml file, unknown keyword " << motlu << endl;
-+      throw;
-+    }
-+  }
-+}
-+
-+void lml_to_lata(const char *lmlname, const char *latafilename, 
-+                 entier ascii, entier fortran_blocs, entier fortran_ordering, entier fortran_indexing)
-+{
-+  const entier lmllevel=4;
-+  Journal(lmllevel) << "lml_to_lata " << lmlname << " -> " << latafilename << endl;
-+  LataDB lata_db;
-+  Nom dest_prefix, dest_name;
-+  LataOptions::extract_path_basename(latafilename, dest_prefix, dest_name);
-+  // Nom du fichier .data a ecrire (sans le chemin)
-+  Nom datafile(dest_name);
-+  datafile += ".lata.data";
-+  lata_db.set_path_prefix(dest_prefix);
-+  // Nom complet du fichier lml a lire
-+  LataDBDataType type;
-+  if (ascii)
-+    type.msb_ = LataDBDataType::ASCII;
-+  else
-+    type.msb_ = LataDBDataType::machine_msb_;
-+  type.type_ = LataDBDataType::INT32;
-+  type.array_index_ = fortran_indexing ? LataDBDataType::F_INDEXING : LataDBDataType::C_INDEXING;
-+  type.data_ordering_ = fortran_ordering ? LataDBDataType::F_ORDERING : LataDBDataType::C_ORDERING;
-+  type.fortran_bloc_markers_ = fortran_blocs ? LataDBDataType::BLOC_MARKERS_SINGLE_WRITE : LataDBDataType::NO_BLOC_MARKER;
-+  type.bloc_marker_type_ = LataDBDataType::INT32;
-+  type.file_offset_ = 0;
-+  lata_db.default_type_int_ = type;
-+  lata_db.default_float_type_ =  LataDBDataType::REAL32;
-+  
-+  lml_reader(lmlname, datafile, lata_db);
-+  Journal(lmllevel) << "lml_to_lata writing lata master file" << endl;
-+  lata_db.write_master_file(latafilename);
-+}
-+
-+// Reads lml or lata file into lata_db. lml data is loaded in an internal memory buffer
-+//  file: full name with path
-+//  path_prefix: the path (used to access lata data files)
-+// If dest_file_if_lml is not null, puts lml data into this file...
-+// In this case, you must set lata_db.default_type* to tell which format to use.
-+void read_any_format(const char * file, const Nom & path_prefix, LataDB & lata_db)
-+{
-+  // Is it an lml ?
-+  Motcle motcle_nom_fic(file);
-+  if (motcle_nom_fic.finit_par(".lml")) {
-+    Journal(1) << "Detected lml file : " << file << endl;
-+    // Nom complet du fichier lml a lire
-+    Journal(1) << "Reading lml file to memory buffer" << endl;
-+    // data will be put in an internal memory buffer.
-+    // choose appropriate data format:
-+    LataDBDataType type;
-+    type.msb_ = LataDBDataType::machine_msb_;
-+    type.type_ = LataDBDataType::INT32;
-+    type.array_index_ = LataDBDataType::C_INDEXING;
-+    type.data_ordering_ = LataDBDataType::C_ORDERING;
-+    type.fortran_bloc_markers_ = LataDBDataType::NO_BLOC_MARKER;
-+    type.bloc_marker_type_ = LataDBDataType::INT32;
-+    type.file_offset_ = 0;
-+    lata_db.default_type_int_ = type;
-+    lata_db.default_float_type_ =  LataDBDataType::REAL32;
-+    lml_reader(file, LataDBField::memory_buffer_file(), lata_db);
-+  } else {
-+    Journal(1) << "Detected lata file : " << file << endl;
-+    lata_db.read_master_file(path_prefix, file);
-+  }
-+}
-+
-+// Description: if the file is a lata file, read the third line and interprets it as options
-+//  if lml format, do nothing
-+//  otherwise, error.
-+void read_any_format_options(const char * file, LataOptions & opt)
-+{
-+  Motcle nom_fic(file);
-+  if (nom_fic.finit_par(".lml")) {
-+    // do nothing
-+  } else if (nom_fic.finit_par(".med")) {
-+        // do nothing
-+  } else if (nom_fic.finit_par(".lata")) {
-+    Journal(1) << "Lata file: Interpreting LataFilter options on third line" << endl;
-+    Nom ligne = LataDB::read_master_file_options(file);
-+    const char *s = ligne;
-+    while (*s) {
-+      Nom toto("");
-+      while ((*s) != ' ' && (*s) != 0) {
-+        toto += Nom(*s);
-+        s++;
-+      }
-+      if ((toto != "Trio_U")&&(toto != "TRUST" )) {
-+        if (!opt.parse_option(toto)) {
-+          Journal(0) << "Interpreting option: " << toto <<"  Failed." << endl;
-+          throw LataDBError::BAD_HEADER;
-+        } else
-+          Journal(1) << "Interpreting option: " << toto <<"  Success." << endl;
-+      }
-+      while ((*s) == ' ')
-+        s++;
-+    }
-+  } else {
-+    Journal(0) << "read_any_format_options: file " << nom_fic << " has unsupported extension" << endl;
-+    throw LataDBError::BAD_HEADER;
-+  }
-+}
-diff --git a/databases/readers/Lata/LmlReader.h b/databases/readers/Lata/LmlReader.h
-new file mode 100644
-index 0000000..9a37ab5
---- /dev/null
-+++ b/databases/readers/Lata/LmlReader.h
-@@ -0,0 +1,38 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LMLREADER_H
-+#define LMLREADER_H
-+void lml_reader(const char * lmlfilename, const char * data_filename, LataDB & lata_db);
-+void lml_to_lata(const char *lmlfilename, const char *latafilename, 
-+                 entier ascii = 0, entier fortran_blocs = 1, entier fortran_ordering = 0, entier fortran_indexing = 1);
-+void read_any_format(const char * file, const Nom & path_prefix, LataDB & lata_db);
-+void read_any_format_options(const char * file, LataOptions & opt);
-+#endif
-+
-diff --git a/databases/readers/Lata/Motcle.C b/databases/readers/Lata/Motcle.C
-new file mode 100644
-index 0000000..4227be6
---- /dev/null
-+++ b/databases/readers/Lata/Motcle.C
-@@ -0,0 +1,142 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Motcle.h>
-+#include <string.h>
-+#include <istream>
-+#include <ostream>
-+#include <string>
-+Nom& Nom::majuscule()
-+{
-+  const int n = longueur()-1;
-+  for (int i = 0; i < n; i++)
-+    {
-+      char c = s_[i];
-+      if (c >= 'a' && c <= 'z')
-+        s_[i] = c + 'A' - 'a';
-+    }
-+  return *this;
-+}
-+
-+static inline char char_uppercase(char c)
-+{
-+  if (c >= 'a' && c <= 'z')
-+    c += 'A' - 'a';
-+  return c;
-+}
-+
-+
-+// opt=0 => comparaison des chaines completes
-+// opt=1 => le debut de n1 doit etre egal a n2
-+int Motcle::strcmp_uppercase(const char *n1, const char *n2, int opt)
-+{
-+  entier i = 0;
-+  unsigned char c1, c2;
-+  entier delta;
-+  do
-+    {
-+      c1 = (unsigned char) char_uppercase(n1[i]);
-+      c2 = (unsigned char) char_uppercase(n2[i]);
-+      delta = c1 - c2;
-+      i++;
-+      if (c2 == 0 && opt == 1)
-+        {
-+          // Fin de la deuxieme chaine et opt=1 (fonction "debute_par"):
-+          // Test ok
-+          return 0;
-+        }
-+    }
-+  while ((delta == 0) && (c1 != 0) && (c2 != 0));
-+  return delta;
-+}
-+
-+int Nom::debute_par(const char * s) const
-+{
-+  const int l1 = longueur()-1;
-+  const int l2 = (int)strlen(s);
-+  return (l1>=l2) ? (strncmp(s_.c_str(), s, l2) == 0) : 0;
-+}
-+
-+int Nom::finit_par(const char * s) const
-+{
-+  const int l1 = longueur()-1;
-+  const int l2 = (int)strlen(s);
-+  return (l1>=l2) ? (strncmp(s_.c_str()+(l1-l2), s, l2) == 0) : 0;
-+}
-+
-+entier Nom::find(const char * n) const
-+{
-+  std::size_t x = s_.find(n);
-+  return (x != std::string::npos) ? x : -1;
-+}
-+
-+Nom& Nom::prefix(const char *s)
-+{
-+  if (finit_par(s))
-+    {
-+      entier n = strlen(s_.c_str());
-+      entier n2 = strlen(s);
-+      s_.erase(n-n2,n2);
-+    }
-+  return *this;
-+}
-+
-+int Motcle::debute_par(const char * s) const
-+{
-+  return (strcmp_uppercase(s_.c_str(), s, 1) == 0);
-+}
-+
-+int Motcle::finit_par(const char * s) const
-+{
-+  const int l1 = longueur()-1;
-+  const int l2 = (int)strlen(s);
-+  return (l1>=l2) ? (strcmp_uppercase(s_.c_str()+(l1-l2), s) == 0) : 0;
-+}
-+
-+Motcles noms_to_motcles(const Noms& a)
-+{
-+  Motcles b;
-+  entier n = a.size();
-+  for (entier i = 0; i < n; i++)
-+    b.add() = a[i]; // ouais, ecriture bizarre mais la plus efficace...
-+  return b;
-+}
-+
-+std::istream& operator>>(std::istream& is, Nom& nom)
-+{
-+  nom.read(is);
-+  return is;
-+}
-+
-+std::ostream& operator<<(std::ostream& os, const Nom& nom)
-+{
-+  nom.write(os);
-+  return os;
-+}
-+
-diff --git a/databases/readers/Lata/Motcle.h b/databases/readers/Lata/Motcle.h
-new file mode 100644
-index 0000000..e1a992d
---- /dev/null
-+++ b/databases/readers/Lata/Motcle.h
-@@ -0,0 +1,150 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef LataMotcle_H
-+#define LataMotcle_H
-+#include <string>
-+#include <iostream>
-+#include <LataVector.h>
-+#include <arch.h>
-+// pour gcc 2.96:
-+#include <stdio.h>
-+
-+class Motcle;
-+
-+class Nom
-+{
-+public:
-+  Nom()
-+  {
-+    s_ = "??";
-+  };
-+
-+
-+
-+  Nom(std::string str)
-+  {
-+    s_ = str;
-+  }
-+
-+  inline const std::string& getString() const { return s_; }
-+
-+  virtual ~Nom() { };
-+  Nom(const char * nom)  : s_(nom) { };
-+  Nom(char c)
-+  {
-+    s_ = c;
-+  };
-+  Nom(int i)
-+  {
-+    char s[30];
-+    sprintf(s, "%d", i);
-+    s_ = s;
-+  }
-+  operator const char *() const
-+  {
-+    return s_.c_str();
-+  }
-+  virtual Nom& operator=(const char * nom)
-+  {
-+    s_ = nom;
-+    return *this;
-+  }
-+  virtual entier longueur() const
-+  {
-+    return static_cast<entier>(s_.length())+1; /*ATTENTION: +1 pour compatibilite avec TRUST*/
-+  }
-+  virtual void read(std::istream& is)
-+  {
-+    is >> s_;
-+  }
-+  virtual void write(std::ostream& os) const
-+  {
-+    os << s_;
-+  }
-+  virtual int operator==(const char * s) const
-+  {
-+    return (s_ == s);
-+  }
-+  virtual int operator!=(const char * s) const
-+  {
-+    return !operator==(s);
-+  }
-+  virtual Nom& operator+=(const char * n)
-+  {
-+    s_ += n;
-+    return *this;
-+  }
-+  virtual entier find(const char * n) const;
-+  virtual int debute_par(const char * s) const;
-+  virtual int finit_par(const char * s) const;
-+  virtual Nom& prefix(const char * s);
-+  Nom&          majuscule();
-+protected:
-+  friend class Motcle;
-+  std::string s_;
-+};
-+
-+class Motcle : public Nom
-+{
-+public:
-+  Motcle() {};
-+  Motcle(const char * s) : Nom(s) {};
-+  Motcle(const Nom& n) : Nom(n) {};
-+  ~Motcle() {};
-+  int operator==(const char * s) const
-+  {
-+    return (strcmp_uppercase(s_.c_str(), s) == 0);
-+  }
-+  int operator!=(const char * s) const
-+  {
-+    return !operator==(s);
-+  }
-+  Motcle& operator+=(const char * n)
-+  {
-+    s_ += n;
-+    return *this;
-+  }
-+  int debute_par(const char * s) const;
-+  int finit_par(const char * s) const;
-+
-+  static int strcmp_uppercase(const char * s1, const char * s2, int opt = 0);
-+  virtual entier find(const char * n) const
-+  {
-+    return Nom(*this).majuscule().find(Nom(n).majuscule());
-+  }
-+};
-+
-+typedef LataVector<Motcle> Motcles;
-+typedef LataVector<Nom> Noms;
-+
-+std::istream& operator>>(std::istream& is, Nom& nom);
-+std::ostream& operator<<(std::ostream& os, const Nom& nom);
-+
-+#endif
-diff --git a/databases/readers/Lata/Noms.h b/databases/readers/Lata/Noms.h
-new file mode 100644
-index 0000000..d9231d2
---- /dev/null
-+++ b/databases/readers/Lata/Noms.h
-@@ -0,0 +1,29 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-diff --git a/databases/readers/Lata/Objet_U.h b/databases/readers/Lata/Objet_U.h
-new file mode 100644
-index 0000000..1f63425
---- /dev/null
-+++ b/databases/readers/Lata/Objet_U.h
-@@ -0,0 +1,41 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+// Class declared for compatibility with TRUST
-+#ifndef Objet_U_inclu
-+#define Objet_U_inclu
-+#include <LataJournal.h>
-+#include <Sortie.h>
-+#include <Entree.h>
-+#include <math.h>
-+
-+#define Cerr Journal()
-+#define finl std::endl
-+
-+#endif
-diff --git a/databases/readers/Lata/Octree_Double.C b/databases/readers/Lata/Octree_Double.C
-new file mode 100644
-index 0000000..f7cb229
---- /dev/null
-+++ b/databases/readers/Lata/Octree_Double.C
-@@ -0,0 +1,395 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Octree_Double.h>
-+#include <DoubleTab.h>
-+#include <FloatTab.h>
-+
-+Octree_Double::Octree_Double()
-+{
-+  dim_ = 0;
-+}
-+
-+void Octree_Double::reset()
-+{
-+  dim_ = 0;
-+  octree_int_.reset();
-+  origin_.reset();
-+  factor_.reset();
-+}
-+
-+// Description: Convertit une coordonnees reele en coordonnee entiere pour l'octree_int
-+// Valeur de retour: 1 si ok, 0 si coordonnee hors de l'octree
-+inline entier Octree_Double::integer_position(double x, entier direction, entier& ix) const
-+{
-+  const double coord_max = (double) Octree_Int::coord_max_;
-+  double rnd_x = (x - origin_[direction]) * factor_[direction];
-+  // 0.49 permet d'accepter une coordonnee x egale a xmin ou xmax de l'octree,
-+  //  sinon pour un octree cree a partir de sommets, il y a un risque
-+  //  de ne pas trouver les coordonnees des points qu'on avait mis au bord de l'octree.
-+  if (rnd_x >= -0.49 && rnd_x <= coord_max + 0.49)
-+    {
-+      ix = (entier) floor(rnd_x + 0.5);
-+      return 1;
-+    }
-+  return 0;
-+}
-+
-+// Valeur de retour: 1 s'il y a une intersection non vide avec l'octree, 0 sinon
-+inline entier Octree_Double::integer_position_clip(double xmin, double xmax,
-+    entier& x0, entier& x1,
-+    entier direction) const
-+{
-+  const double coord_max = (double) Octree_Int::coord_max_;
-+  xmin = (xmin - origin_[direction]) * factor_[direction];
-+  xmax = (xmax - origin_[direction]) * factor_[direction];
-+  // pas de marge ici comme on cherche avec une boite, l'epsilon est deja
-+  // dans la dimension de la boite.
-+  if (xmin > coord_max || xmax < 0.)
-+    return 0;
-+  if (xmin < .0)
-+    x0 = 0;
-+  else
-+    x0 = (entier) (floor(xmin+0.5));
-+  if (xmax > coord_max)
-+    x1 = Octree_Int::coord_max_;
-+  else
-+    x1 = (entier) (floor(xmax+0.5));
-+  return 1;
-+}
-+
-+// Description: cherche les elements ou les points contenus dans l'octree_floor qui
-+//  contient le point (x,y,z). Renvoie le nombre n de ces elements.
-+//  Les indices des elements sont dans floor_elements()[index+i] pour 0 <= i < n
-+entier Octree_Double::search_elements(double x, double y, double z, entier& index) const
-+{
-+  if (dim_ == 0)
-+    return 0; // octree vide
-+  entier ix = 0, iy = 0, iz = 0;
-+  entier ok = integer_position(x, 0, ix)
-+              && integer_position(y, 1, iy)
-+              && integer_position(z, 2, iz);
-+  if (ok)
-+    {
-+      return octree_int_.search_elements(ix, iy, iz, index);
-+    }
-+  else
-+    {
-+      return 0;
-+    }
-+}
-+
-+// Description: methode outil pour build_nodes et build_elements
-+//  (calcul des facteurs de conversion entre reels et entiers pour Octree_Int
-+void Octree_Double::compute_origin_factors(const DoubleTab& coords,
-+    const double epsilon,
-+    const entier include_virtual)
-+{
-+  // Recherche des coordonnees min et max du domaine
-+  const entier nb_som = include_virtual ? coords.dimension_tot(0) : coords.dimension(0);
-+  if (nb_som == 0)
-+    return; // octree vide
-+
-+  const entier dim = coords.dimension(1);
-+  dim_ = dim;
-+  origin_.resize_array(3);
-+  factor_.resize_array(3);
-+  ArrOfDouble xmin(dim, 1.e37);
-+  ArrOfDouble xmax(dim, -1.e-37);
-+  assert(dim >= 1 && dim <= 3);
-+  entier i, j;
-+  for (i = 0; i < nb_som; i++)
-+    {
-+      for (j = 0; j < dim; j++)
-+        {
-+          const double x = coords(i, j);
-+          if (x < xmin[j])
-+            xmin[j] = x;
-+          if (x > xmax[j])
-+            xmax[j] = x;
-+        }
-+    }
-+  const double coord_max = (double) Octree_Int::coord_max_;
-+  for (j = 0; j < dim; j++)
-+    {
-+      xmin[j] -= epsilon;
-+      xmax[j] += epsilon;
-+      origin_[j] = xmin[j];
-+      if (xmax[j] - xmin[j] > 0.)
-+        {
-+          factor_[j] = coord_max / (xmax[j] - xmin[j]);
-+        }
-+      else
-+        factor_[j] = 0.;
-+    }
-+}
-+void Octree_Double::compute_origin_factors(const FloatTab& coords,
-+    const double epsilon,
-+    const entier include_virtual)
-+{
-+  // Recherche des coordonnees min et max du domaine
-+  const entier nb_som = include_virtual ? coords.dimension_tot(0) : coords.dimension(0);
-+  if (nb_som == 0)
-+    return; // octree vide
-+
-+  const entier dim = coords.dimension(1);
-+  dim_ = dim;
-+  origin_.resize_array(3);
-+  factor_.resize_array(3);
-+  ArrOfDouble xmin(dim, 1.e37);
-+  ArrOfDouble xmax(dim, -1.e-37);
-+  assert(dim >= 1 && dim <= 3);
-+  entier i, j;
-+  for (i = 0; i < nb_som; i++)
-+    {
-+      for (j = 0; j < dim; j++)
-+        {
-+          const double x = coords(i, j);
-+          if (x < xmin[j])
-+            xmin[j] = x;
-+          if (x > xmax[j])
-+            xmax[j] = x;
-+        }
-+    }
-+  const double coord_max = (double) Octree_Int::coord_max_;
-+  for (j = 0; j < dim; j++)
-+    {
-+      xmin[j] -= epsilon;
-+      xmax[j] += epsilon;
-+      origin_[j] = xmin[j];
-+      if (xmax[j] - xmin[j] > 0.)
-+        {
-+          factor_[j] = coord_max / (xmax[j] - xmin[j]);
-+        }
-+      else
-+        factor_[j] = 0.;
-+    }
-+}
-+
-+// Description: construit un octree contenant les points de coordonnees coords.
-+//  Si include_virtual=1, on stocke coords.dimension_tot(0) elements, sinon on en
-+//  stocke coords.dimension(0)
-+void Octree_Double::build_nodes(const DoubleTab& coords, const entier include_virtual)
-+{
-+  octree_int_.reset();
-+  compute_origin_factors(coords, 0. /* epsilon */, include_virtual);
-+  const entier nb_som = include_virtual ? coords.dimension_tot(0) : coords.dimension(0);
-+  if (nb_som == 0)
-+    return; // octree vide
-+  const entier dim = coords.dimension(1);
-+  IntTab elements_boxes(nb_som, dim);
-+  for (entier i = 0; i < nb_som; i++)
-+    {
-+      for (entier j = 0; j < dim; j++)
-+        {
-+          entier pos1 = 0;
-+          const double x = coords(i, j);
-+          if (!integer_position(x, j, pos1))
-+            {
-+              Cerr << "Fatal error in octree : integer position outside octree" << finl;
-+              throw;
-+            }
-+          elements_boxes(i, j) = pos1;
-+        }
-+    }
-+  octree_int_.build(dim, elements_boxes);
-+}
-+
-+// Description: Construit un octree a partir d'elements volumiques decrits par des
-+//  ensembles de sommets. On stocke dans l'octree les parallelipipdes englobant chaque
-+//  element (contenant tous les sommets de l'element) plus une marge de epsilon.
-+//  Si include_virtual=1, on stocke elements.dimension_tot(0) elements, sinon on en
-+//  stocke elements.dimension(0)
-+void Octree_Double::build_elements(const DoubleTab& coords, const IntTab& elements,
-+                                   const double epsilon, const entier include_virtual)
-+{
-+  octree_int_.reset();
-+  compute_origin_factors(coords, epsilon, include_virtual);
-+
-+  const entier nb_elems = include_virtual ? elements.dimension_tot(0) : elements.dimension(0);
-+  const entier nb_som_elem = elements.dimension(1);
-+  const entier dim = coords.dimension(1);
-+  IntTab elements_boxes(nb_elems, dim * 2);
-+  for (entier i = 0; i < nb_elems; i++)
-+    {
-+      for (entier j = 0; j < dim; j++)
-+        {
-+          double xmin = 1.e37;
-+          double xmax = -1.e37;
-+          for (entier k = 0; k < nb_som_elem; k++)
-+            {
-+              const entier som = elements(i, k);
-+                        if (som>=0) { // polyedre som peut valoir -1
-+              const double x = coords(som, j);
-+              xmin = (x<xmin) ? x : xmin;
-+              xmax = (x>xmax) ? x : xmax;
-+                        }
-+            }
-+          entier pos1 = 0, pos2 = 0;
-+          if (!integer_position(xmin, j, pos1) || !integer_position(xmax, j, pos2))
-+            {
-+              Cerr << "Fatal error in octree : integer position outside octree" << finl;
-+              throw;
-+            }
-+          elements_boxes(i, j) = pos1;
-+          elements_boxes(i, j+dim) = pos2;
-+        }
-+    }
-+  octree_int_.build(dim, elements_boxes);
-+}
-+
-+void Octree_Double::build_elements(const FloatTab& coords, const IntTab& elements,
-+                                   const double epsilon, const entier include_virtual)
-+{
-+  octree_int_.reset();
-+  compute_origin_factors(coords, epsilon, include_virtual);
-+
-+  const entier nb_elems = include_virtual ? elements.dimension_tot(0) : elements.dimension(0);
-+  const entier nb_som_elem = elements.dimension(1);
-+  const entier dim = coords.dimension(1);
-+  IntTab elements_boxes(nb_elems, dim * 2);
-+  for (entier i = 0; i < nb_elems; i++)
-+    {
-+      for (entier j = 0; j < dim; j++)
-+        {
-+          double xmin = 1.e37;
-+          double xmax = -1.e37;
-+          for (entier k = 0; k < nb_som_elem; k++)
-+            {
-+              const entier som = elements(i, k);
-+                        if (som>=0) { // polyedre som peut valoir -1
-+              const double x = coords(som, j);
-+              xmin = (x<xmin) ? x : xmin;
-+              xmax = (x>xmax) ? x : xmax;
-+                        }
-+            }
-+          entier pos1 = 0, pos2 = 0;
-+          if (!integer_position(xmin, j, pos1) || !integer_position(xmax, j, pos2))
-+            {
-+              Cerr << "Fatal error in octree : integer position outside octree" << finl;
-+              throw;
-+            }
-+          elements_boxes(i, j) = pos1;
-+          elements_boxes(i, j+dim) = pos2;
-+        }
-+    }
-+  octree_int_.build(dim, elements_boxes);
-+}
-+
-+// Description: cherche tous les elements ou points ayant potentiellement une intersection
-+//  non vide avec la boite donnee.
-+entier Octree_Double::search_elements_box(double xmin, double ymin, double zmin,
-+    double xmax, double ymax, double zmax,
-+    ArrOfInt& elements) const
-+{
-+  const entier dim = dim_;
-+  if (dim == 0)
-+    {
-+      elements.resize_array(0);
-+      return 0;
-+    }
-+  entier x0 = 0, x1 = 0, y0 = 0, y1 = 0, z0 = 0, z1 = 0;
-+  entier ok = integer_position_clip(xmin, xmax, x0, x1, 0);
-+  if (ok && dim >= 1)
-+    {
-+      ok = integer_position_clip(ymin, ymax, y0, y1, 1);
-+      if (ok && dim >= 2)
-+        ok = integer_position_clip(zmin, zmax, z0, z1, 2);
-+    }
-+  if (ok)
-+    octree_int_.search_elements_box(x0, y0, z0, x1, y1, z1, elements);
-+  else
-+    elements.resize_array(0);
-+  return elements.size_array();
-+}
-+
-+// Description: cherche tous les elements ou points ayant potentiellement une intersection
-+//  non vide avec la boite donnee (centre + ou - radius dans chaque direction)
-+entier Octree_Double::search_elements_box(const ArrOfDouble& center, const double radius,
-+    ArrOfInt& elements) const
-+{
-+  entier dim = center.size_array();
-+  double x = center[0];
-+  double y = (dim>=2) ? center[1] : 0.;
-+  double z = (dim>2) ? center[2] : 0.;
-+  entier i = search_elements_box(x-radius, y-radius, z-radius,
-+                                 x+radius, y+radius, z+radius,
-+                                 elements);
-+  return i;
-+}
-+
-+// Description: Methode hors classe
-+//  Cherche parmi les sommets de la liste node_list ceux qui sont a une
-+//  distance inferieure a epsilon du point (x,y,z). node_list contient des indices de
-+//  sommets dans le tableau coords. La liste des noeuds verifiant le critere est mise
-+//  dans node_list. On renvoie l'indice dans le tableau coords du sommet le plus proche.
-+entier Octree_Double::search_nodes_close_to(double x, double y, double z,
-+    const DoubleTab& coords, ArrOfInt& node_list,
-+    double epsilon)
-+{
-+  const entier n = node_list.size_array();
-+  double eps2 = epsilon * epsilon;
-+  entier count = 0;
-+  const entier dim = coords.dimension(1);
-+  double dmin = eps2;
-+  entier nearest = -1;
-+  for (entier i = 0; i < n; i++)
-+    {
-+      const entier som = node_list[i];
-+      double dx = x - coords(som, 0);
-+      double dy = (dim >= 2) ? y - coords(som, 1) : 0.;
-+      double dz = (dim >= 3) ? z - coords(som, 2) : 0.;
-+      double d2 = dx * dx + dy * dy + dz * dz;
-+      if (d2 < eps2)
-+        {
-+          node_list[count] = som;
-+          if (d2 < dmin)
-+            {
-+              dmin = d2;
-+              nearest = som;
-+            }
-+          count++;
-+        }
-+    }
-+  node_list.resize_array(count);
-+  return nearest;
-+}
-+
-+// Description: Idem que search_nodes_close_to(double x, double y, double z, ...)
-+entier Octree_Double::search_nodes_close_to(const ArrOfDouble& point,
-+    const DoubleTab& coords, ArrOfInt& node_list,
-+    double epsilon)
-+{
-+  entier dim = point.size_array();
-+  double x = point[0];
-+  double y = (dim>=2) ? point[1] : 0.;
-+  double z = (dim>2) ? point[2] : 0.;
-+  entier i = search_nodes_close_to(x, y, z, coords, node_list, epsilon);
-+  return i;
-+}
-diff --git a/databases/readers/Lata/Octree_Double.h b/databases/readers/Lata/Octree_Double.h
-new file mode 100644
-index 0000000..abf3258
---- /dev/null
-+++ b/databases/readers/Lata/Octree_Double.h
-@@ -0,0 +1,89 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+
-+#ifndef Octree_Double_inclu
-+#define Octree_Double_inclu
-+#include <Octree_Int.h>
-+#include <ArrOfDouble.h>
-+class DoubleTab;
-+class FloatTab;
-+
-+// .DESCRIPTION : Un octree permettant de chercher dans l'espace des elements ou des points
-+//  decrits par des coordonnees reeles. Cet objet est base sur Octree_Int.
-+class Octree_Double
-+{
-+public:
-+  Octree_Double();
-+  void   reset();
-+  void   build_elements(const FloatTab& coords, const IntTab& elements,
-+                        const double epsilon, const entier include_virtual);
-+  void   build_elements(const DoubleTab& coords, const IntTab& elements,
-+                        const double epsilon, const entier include_virtual);
-+  void   build_nodes(const DoubleTab& coords, const entier include_virtual);
-+  entier search_elements(double x, double y, double z, entier& index) const;
-+  entier search_elements_box(double xmin, double ymin, double zmin,
-+                             double xmax, double ymax, double zmax,
-+                             ArrOfInt& elements) const;
-+  static entier search_nodes_close_to(double x, double y, double z,
-+                                      const DoubleTab& coords, ArrOfInt& node_list,
-+                                      double epsilon);
-+  entier search_elements_box(const ArrOfDouble& center, const double radius,
-+                             ArrOfInt& elements) const;
-+  static entier search_nodes_close_to(const ArrOfDouble& point,
-+                                      const DoubleTab& coords, ArrOfInt& node_list,
-+                                      double epsilon);
-+  entier dimension() const
-+  {
-+    assert(dim_ > 0);
-+    return dim_;
-+  }
-+  inline const ArrOfInt& floor_elements() const
-+  {
-+    return octree_int_.floor_elements();
-+  };
-+protected:
-+  inline entier integer_position(double x, entier direction, entier& ix) const;
-+  inline entier integer_position_clip(double xmin, double xmax,
-+                                      entier& x0, entier& x1,
-+                                      entier direction) const;
-+  void compute_origin_factors(const DoubleTab& coords,
-+                              const double epsilon,
-+                              const entier include_virtual);
-+  void compute_origin_factors(const FloatTab& coords,
-+                              const double epsilon,
-+                              const entier include_virtual);
-+
-+  Octree_Int octree_int_;
-+  // Ces deux tableaux sont toujours de taille 3 par commodite
-+  ArrOfDouble origin_;
-+  ArrOfDouble factor_;
-+  entier dim_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/Octree_Int.C b/databases/readers/Lata/Octree_Int.C
-new file mode 100644
-index 0000000..4f96b7c
---- /dev/null
-+++ b/databases/readers/Lata/Octree_Int.C
-@@ -0,0 +1,485 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Octree_Int.h>
-+#include <ArrOfBit.h>
-+
-+static const entier max_levels_ = 32; // 1 de plus que le nombre de bits=1 dans coords_max
-+// La valeur suivante doit etre une puissance de deux
-+const entier Octree_Int::root_octree_half_width_ = 1073741824; /* 2^30   = 0100 0000  0000 0000  0000 0000  0000 0000b */
-+// La valeur suivante doit etre egale a (root_octree_half_width_ * 2 - 1)
-+const entier Octree_Int::coord_max_ = 2147483647;              /* 2^31-1 = 0111 1111  1111 1111  1111 1111  1111 1111b */
-+
-+// Description: construction d'un octree_id (voir octree_structure_)
-+//  Si type==EMPTY, on l'octree_id est 0
-+//  Si type==OCTREE, on suppose que index est un indice dans octree_structure_
-+//  Si type==FLOOR, on suppose que index est un indice dans floor_elements_
-+inline entier Octree_Int::octree_id(entier index, Octree_Type type)
-+{
-+  switch(type)
-+    {
-+    case EMPTY:
-+      return 0;
-+    case OCTREE:
-+      return index + 1;
-+    case FLOOR:
-+      return - index - 1;
-+    }
-+  return -1;
-+}
-+
-+// Description: calcul de l'index de l'octree dans octree_structure ou floor_elements
-+//  en fonction du type de l'octree et de son octree_id.
-+//  En general on a deja determine le type avant, on le passe en parametre pour optimiser.
-+inline entier Octree_Int::octree_index(entier octree_id, Octree_Type type)
-+{
-+  assert(type==octree_type(octree_id));
-+  switch(type)
-+    {
-+    case EMPTY:
-+      return -1;
-+    case OCTREE:
-+      return octree_id - 1;
-+    case FLOOR:
-+      return - octree_id - 1;
-+    }
-+  return -1;
-+}
-+
-+// Description: Renvoie le type d'un octree en fonction de son octree_id.
-+inline Octree_Int::Octree_Type Octree_Int::octree_type(entier octree_id)
-+{
-+  if (octree_id > 0)
-+    return OCTREE;
-+  else if (octree_id == 0)
-+    return EMPTY;
-+  else
-+    return FLOOR;
-+}
-+
-+// Description: construction de l'octree. On donne la dimension (1, 2 ou 3)
-+//  et un tableau d'elements a stocker dans l'octree. Deux possibilites:
-+//  1) les elements sont ponctuels si elements_boxes.dimension(1) == dimension.
-+//     Dans ce cas, chaque element se trouve dans un et un seul octree_floor
-+//  2) les elements sont des parallelipipedes, si elements_boxes.dimension(1) == dimension*2
-+//     Les "dimension" premieres colonnes sont les coordonnees inferieures,
-+//     les "dimension" suivantes sont les coordonnees superieures.
-+//     Un parallelipipede peut etre affecte a plusieurs octree_floor.
-+//  Les coordonnees stockees dans elements_boxes peuvent aller de 0 a coord_max_ inclus.
-+//  Il vaut mieux utiliser toute la plage des entiers en multipliant par un facteur adequat.
-+void Octree_Int::build(const entier dimension, const IntTab& elements_boxes)
-+{
-+  assert(dimension >= 1 && dimension <= 3);
-+  assert(elements_boxes.dimension(1) == dimension
-+         || elements_boxes.dimension(1) == dimension * 2 );
-+
-+  const entier nb_elems = elements_boxes.dimension(0);
-+  nb_elements_ = nb_elems;
-+  entier i;
-+  octree_structure_.set_smart_resize(1);
-+  floor_elements_.set_smart_resize(1);
-+  floor_elements_.resize_array(0);
-+  const entier nb_octrees = 1 << dimension;
-+  octree_structure_.resize(0, nb_octrees);
-+
-+  assert(elements_boxes.size_array() == 0
-+         || (min_array(elements_boxes) >= 0 && max_array(elements_boxes) <= coord_max_));
-+
-+  VECT(ArrOfInt) tmp_elem_flags(max_levels_);
-+  VECT(ArrOfInt) tmp_elem_list(max_levels_);
-+  for (i = 0; i < max_levels_; i++)
-+    {
-+      tmp_elem_flags[i].set_smart_resize(1);
-+      tmp_elem_list[i].set_smart_resize(1);
-+    }
-+  ArrOfInt& elements_list = tmp_elem_list[0];
-+  elements_list.resize_array(nb_elems);
-+  for (entier i = 0; i < nb_elems; i++)
-+    elements_list[i] = i;
-+
-+  root_octree_id_ = build_octree_recursively(root_octree_half_width_,root_octree_half_width_,root_octree_half_width_,
-+                    root_octree_half_width_,
-+                    elements_boxes,
-+                    tmp_elem_list,
-+                    0,
-+                    tmp_elem_flags);
-+}
-+
-+// Description: renvoie la liste des elements contenant potentiellement le point (x,y,z)
-+//  On renvoie n=nombre d'elements de la liste et les elements sont dans
-+//  floor_elements()[index+i] pour 0 <= i < n.
-+//  En realite on renvoie tous les elements qui ont une intersection non vide avec l'octree_floor
-+//  contenant le point (x,y,z)
-+entier Octree_Int::search_elements(entier x, entier y, entier z, entier& index) const
-+{
-+  const entier nb_octrees = octree_structure_.dimension(1);
-+  if (nb_octrees == 2)
-+    y = 0; // important pour ne pas tomber sur des cubes inexistants
-+  if (nb_octrees <= 4)
-+    z = 0; // idem
-+  assert(x >= 0 && x <= coord_max_);
-+  assert(y >= 0 && y <= coord_max_);
-+  assert(z >= 0 && z <= coord_max_);
-+
-+  const entier octree_id = search_octree_floor(x, y, z);
-+
-+  if (octree_type(octree_id) == EMPTY)
-+    {
-+      return 0;
-+    }
-+  const entier idx = octree_index(octree_id, FLOOR);
-+  const entier n = floor_elements_[idx];
-+  index = idx + 1;
-+  return n;
-+}
-+
-+struct IntBoxData
-+{
-+  IntBoxData(entier xmin, entier ymin, entier zmin,
-+             entier xmax, entier ymax, entier zmax,
-+             ArrOfInt& elements,
-+             ArrOfBit *markers) :
-+    xmin_(xmin), ymin_(ymin), zmin_(zmin),
-+    xmax_(xmax), ymax_(ymax), zmax_(zmax),
-+    elements_(elements),
-+    markers_(markers) { };
-+  entier xmin_, ymin_, zmin_;
-+  entier xmax_, ymax_, zmax_;
-+  ArrOfInt& elements_;
-+  ArrOfBit *markers_;
-+};
-+
-+// Description: cherche les elements ayant potentiellement une intersection non vide avec la
-+//  boite xmin..zmax. Le tableau elements doit etre de type smart_resize(1).
-+//  Les elements peuvent apparaitre plusieurs fois dans le tableau "elements"
-+entier Octree_Int::search_elements_box(entier xmin, entier ymin, entier zmin,
-+                                       entier xmax, entier ymax, entier zmax,
-+                                       ArrOfInt& elements) const
-+{
-+  const entier nb_octrees = octree_structure_.dimension(1);
-+  if (nb_octrees == 2)
-+    ymin = ymax = 0; // important pour ne pas tomber sur des cubes inexistants
-+  if (nb_octrees <= 4)
-+    zmin = zmax = 0; // idem
-+  assert(xmin >= 0 && xmin <= coord_max_);
-+  assert(ymin >= 0 && ymin <= coord_max_);
-+  assert(zmin >= 0 && zmin <= coord_max_);
-+  assert(xmax >= 0 && xmax <= coord_max_);
-+  assert(ymax >= 0 && ymax <= coord_max_);
-+  assert(zmax >= 0 && zmax <= coord_max_);
-+
-+  elements.resize_array(0);
-+  IntBoxData boxdata(xmin, ymin, zmin, xmax, ymax, zmax, elements, 0);
-+  switch(octree_type(root_octree_id_))
-+    {
-+    case FLOOR:
-+      search_elements_box_floor(boxdata, root_octree_id_);
-+      break;
-+    case OCTREE:
-+      search_elements_box_recursively(boxdata, root_octree_id_,
-+                                      root_octree_half_width_,root_octree_half_width_,root_octree_half_width_,
-+                                      root_octree_half_width_);
-+      break;
-+    case EMPTY:
-+      break;
-+    }
-+  const entier n = elements.size_array();
-+  return n;
-+}
-+
-+// Description: ajoute des elements de l'octree_floor a boxdata.elements_
-+void Octree_Int::search_elements_box_floor(IntBoxData& boxdata,
-+    entier octree_floor_id) const
-+{
-+  const entier idx = octree_index(octree_floor_id, FLOOR);
-+  const entier n = floor_elements_[idx];
-+  if (boxdata.markers_)
-+    for (entier i = 0; i < n; i++)
-+      {
-+        const entier elem = floor_elements_[idx+1+i];
-+        if (!boxdata.markers_->testsetbit(elem))
-+          boxdata.elements_.append_array(elem);
-+      }
-+  else
-+    for (entier i = 0; i < n; i++)
-+      {
-+        const entier elem = floor_elements_[idx+1+i];
-+        boxdata.elements_.append_array(elem);
-+      }
-+}
-+
-+// Pour chaque direction, drapeaux des cubes de la rangee inferieure
-+static entier sub_cube_flags_min[3] = { 1+4+16+64, /* drapeaux des cubes 0,2,4,6 */
-+                                        1+2+16+32, /* drapeaux des cubes 0,1,4,5 */
-+                                        1+2+4+8    /* drapeaux des cubes 0,1,2,3 */
-+                                      };
-+static entier sub_cube_flags_max[3] = { 2+8+32+128, /* drapeaux des cubes 1,3,5,7 */
-+                                        4+8+64+128, /* drapeaux des cubes 2,3,7,8 */
-+                                        16+32+64+128 /* drapeaux des cubes 4,5,6,7 */
-+                                      };
-+
-+// Description: cherche recursivement les elements inclus dans la boite
-+//  boxdata pour l'octree_id donne, de centre cx, cy, cz.
-+
-+void Octree_Int::search_elements_box_recursively(IntBoxData& boxdata,
-+    entier octree_id,
-+    entier cx, entier cy, entier cz,
-+    entier half_width) const
-+{
-+  entier flags = 255;
-+  if (cx > boxdata.xmax_) // les cubes superieurs en x ne sont pas dedans
-+    flags &= sub_cube_flags_min[0];
-+  if (cx <= boxdata.xmin_) // les cubes inferieurs ne sont pas dedans
-+    flags &= sub_cube_flags_max[0];
-+  if (cy > boxdata.ymax_)
-+    flags &= sub_cube_flags_min[1];
-+  if (cy <= boxdata.ymin_)
-+    flags &= sub_cube_flags_max[1];
-+  if (cz > boxdata.zmax_)
-+    flags &= sub_cube_flags_min[2];
-+  if (cz <= boxdata.zmin_)
-+    flags &= sub_cube_flags_max[2];
-+  entier test_flag = 1;
-+  const entier idx = octree_index(octree_id, OCTREE);
-+  const entier half_width_2 = half_width >> 1;
-+  const entier mhalf_width = - half_width_2;
-+  entier cx2, cy2, cz2;
-+  for (entier i = 0; i < 8; i++, test_flag <<= 1)
-+    {
-+      if ((flags & test_flag) != 0)
-+        {
-+          const entier id = octree_structure_(idx, i);
-+          switch(octree_type(id))
-+            {
-+            case FLOOR:
-+              search_elements_box_floor(boxdata, id);
-+              break;
-+            case OCTREE:
-+              cx2 = cx + ((i & 1) ? half_width_2 : mhalf_width);
-+              cy2 = cy + ((i & 2) ? half_width_2 : mhalf_width);
-+              cz2 = cz + ((i & 4) ? half_width_2 : mhalf_width);
-+              search_elements_box_recursively(boxdata, id,
-+                                              cx2, cy2, cz2,
-+                                              half_width_2);
-+              break;
-+            case EMPTY:
-+              break;
-+            }
-+        }
-+    }
-+}
-+
-+void Octree_Int::reset()
-+{
-+  root_octree_id_ = octree_id(0, EMPTY);
-+  nb_elements_ = 0;
-+  octree_structure_.reset();
-+  floor_elements_.reset();
-+}
-+
-+// Description: construit un octree_floor avec la liste d'elements donnee et
-+//  renvoie l'octree_id de cet octree_floor
-+entier Octree_Int::build_octree_floor(const ArrOfInt& elements_list)
-+{
-+  const entier nb_elems = elements_list.size_array();
-+  const entier index = floor_elements_.size_array();
-+  floor_elements_.resize_array(index + nb_elems + 1);
-+  floor_elements_[index] = nb_elems;
-+  for (entier i = 0; i < nb_elems; i++)
-+    floor_elements_[index + 1 + i] = elements_list[i];
-+  return octree_id(index, FLOOR);
-+}
-+
-+// Description:
-+//  octree_center_i est le premier entier de la moitie superieure de l'octree dans la direction i.
-+//  octree_half_width est une puissance de 2 egale a octree_center_i-octree_min_i (octree_min_i
-+//   est le premier entier inclu dans cet octree dans la direction i)
-+// Valeur de retour: octree_id de l'octree construit (void octree_structure_)
-+entier Octree_Int::build_octree_recursively(const entier octree_center_x,
-+    const entier octree_center_y,
-+    const entier octree_center_z,
-+    const entier octree_half_width,
-+    const IntTab& elements_boxes,
-+    VECT(ArrOfInt) & vect_elements_list,
-+    const entier level,
-+    VECT(ArrOfInt) & tmp_elem_flags)
-+{
-+  // Criteres d'arret de la subdivision:
-+  // Nombre maximal d'elements dans un sous-cube floor
-+  static const entier octree_floor_max_elems = 8;
-+  // S'il y a beaucoup d'elements dupliques, mais pas trop, et que le nombre d'elements
-+  //  dans l'octree est superieur a cette valeur, on subdivise quand-meme
-+  static const entier octree_duplicate_elements_limit = 32;
-+  const ArrOfInt& elements_list = vect_elements_list[level];
-+  // Si le nombre d'elements est inferieur a la limite, on cree un floor_element,
-+  // sinon on subdivise
-+  const entier nb_elems = elements_list.size_array();
-+  if (nb_elems == 0)
-+    return octree_id(0, EMPTY);
-+
-+  if (nb_elems < octree_floor_max_elems || octree_half_width == 1 /* dernier niveau */)
-+    {
-+      const entier octree_id = build_octree_floor(elements_list);
-+      return octree_id;
-+    }
-+
-+  ArrOfInt& elem_flags = tmp_elem_flags[level];
-+  elem_flags.resize_array(0); // Ne pas conserver les anciennes valeurs
-+  elem_flags.resize_array(nb_elems);
-+
-+  const entier nb_octrees = octree_structure_.dimension(1);
-+  assert(nb_octrees == 2 || nb_octrees == 4 || nb_octrees == 8);
-+  const entier elem_box_dim = elements_boxes.dimension(1);
-+  // Soit elements_boxes contient dimension colonnes, soit dimension*2
-+  const entier box_delta = (elem_box_dim > 3) ? (elem_box_dim >> 1) : 0;
-+  // Nombre d'elements stockes en double dans l'octree (a cause des elements a cheval
-+  //  sur plusieurs sous-octrees)
-+  entier nb_duplicate_elements = 0;
-+  // On range les elements de la liste dans 8 sous-cubes (remplissage de elem_flags)
-+  for (entier i_elem = 0; i_elem < nb_elems; i_elem++)
-+    {
-+      const entier elem = elements_list[i_elem];
-+      // dir_flag vaut 1 pour la direction x, 2 pour y et 4 pour z
-+      entier dir_flag = 1;
-+      // sub_cube_flags contient 2^dim drapeaux binaires (1 par sous-cube),
-+      // et indique les sous-cubes coupes par l'element
-+      entier octree_flags = 255;
-+      // dans combien de sous-octree cet element est-il stocke ?
-+      entier nb_duplicates = 1;
-+
-+      for (entier direction = 0; direction < 3; direction++)
-+        {
-+          const entier elem_min = elements_boxes(elem, direction);
-+          const entier elem_max = elements_boxes(elem, box_delta+direction);
-+          assert(elem_max >= elem_min);
-+          // coordonnee du centre du cube dans la direction j:
-+          const entier center = (direction==0) ? octree_center_x : ((direction==1) ? octree_center_y : octree_center_z);
-+          // L'element coupe-t-il la partie inferieure et la partie superieure du cube dans la "direction" ?
-+          if (elem_min >= center) // non -> on retire les flags des cubes de la partie inferieure
-+            octree_flags &= sub_cube_flags_max[direction];
-+          else if (elem_max < center) // non -> on retire les flags des cubes de la partie superieure
-+            octree_flags &= sub_cube_flags_min[direction];
-+          else
-+            nb_duplicates <<= 1; // l'element coupe les deux parties !
-+          dir_flag = dir_flag << 1;
-+          if (dir_flag == nb_octrees)
-+            break;
-+        }
-+      elem_flags[i_elem] = octree_flags;
-+      nb_duplicate_elements += nb_duplicates - 1;
-+    }
-+
-+  // Critere un peu complique : s'il y a vraiment beaucoup d'elements
-+  //  dans cet octree, on autorise jusqu'a dupliquer tous les elements,
-+  //  ce qui permet de ranger des elements tres alonges qui sont forcement
-+  //  dupliques dans une direction (>octree_duplicate_elements_limit).
-+  if ((nb_duplicate_elements * 2 >= nb_elems && nb_elems < octree_duplicate_elements_limit)
-+      || nb_duplicate_elements > nb_elems)
-+    {
-+      const entier octree_id = build_octree_floor(elements_list);
-+      // On renvoie un index d'octreefloor
-+      return octree_id;
-+    }
-+
-+  // On reserve une case a la fin de octree_structure pour stocker cet octree:
-+  const entier index_octree = octree_structure_.dimension(0);
-+  octree_structure_.resize(index_octree + 1, nb_octrees);
-+  ArrOfInt& new_liste_elems = vect_elements_list[level+1];
-+  new_liste_elems.resize_array(0);
-+  const entier width = octree_half_width >> 1;
-+  const entier m_width = - width;
-+  // Traitement recursif des sous-cubes de l'octree:
-+  entier i_cube;
-+  for (i_cube = 0; i_cube < nb_octrees; i_cube++)
-+    {
-+      const entier octree_flag = 1 << i_cube;
-+      new_liste_elems.resize_array(0); // ne pas conserver les anciennes valeurs
-+      new_liste_elems.resize_array(nb_elems);
-+      entier count = 0;
-+      // Liste des elements inclus dans le sous-cube:
-+      for (entier i_elem = 0; i_elem < nb_elems; i_elem++)
-+        if ((elem_flags[i_elem] & octree_flag) != 0)
-+          new_liste_elems[count++] = elements_list[i_elem];
-+      new_liste_elems.resize_array(count);
-+
-+      entier sub_octree_id;
-+      if (new_liste_elems.size_array() == 0)
-+        {
-+          sub_octree_id = octree_id(-1, EMPTY);
-+        }
-+      else
-+        {
-+          // Coordonnees du nouveau sous-cube
-+          const entier cx = octree_center_x + ((i_cube&1) ? width : m_width);
-+          const entier cy = octree_center_y + ((i_cube&2) ? width : m_width);
-+          const entier cz = octree_center_z + ((i_cube&4) ? width : m_width);
-+          sub_octree_id = build_octree_recursively(cx, cy, cz, width,
-+                          elements_boxes,
-+                          vect_elements_list,
-+                          level+1,
-+                          tmp_elem_flags);
-+        }
-+      octree_structure_(index_octree, i_cube) = sub_octree_id;
-+    }
-+
-+  return octree_id(index_octree, OCTREE);
-+}
-+
-+// Description: renvoie l'octree_id de l'octree_floor contenant le sommet (x,y,z)
-+//  (peut renvoyer l'octree EMPTY)
-+entier Octree_Int::search_octree_floor(entier x, entier y, entier z) const
-+{
-+  if (octree_type(root_octree_id_) != OCTREE)
-+    return root_octree_id_;
-+  // Le test pour savoir si on est dans la partie superieure ou
-+  // inferieure d'un octree au niveau i consiste simplement a tester
-+  // le i-ieme bit de la position.
-+  entier flag = root_octree_half_width_;
-+
-+  entier index = octree_index(root_octree_id_, OCTREE);
-+
-+  // Descendre dans la hierarchie d'octree subdivises jusqu'au cube
-+  //  le plus petit
-+  while (1)
-+    {
-+      // Numero du sous-cube dans lequel se trouve le sommet x,y,z
-+      const entier ix = (x & flag) ? 1 : 0;
-+      const entier iy = (y & flag) ? 2 : 0;
-+      const entier iz = (z & flag) ? 4 : 0;
-+      entier i_sous_cube = ix + iy + iz;
-+      // On entre dans le sous-cube :
-+      const entier octree_id = octree_structure_(index, i_sous_cube);
-+      if (octree_type(octree_id) != OCTREE)
-+        return octree_id;
-+
-+      index = octree_index(octree_id, OCTREE);
-+      flag >>= 1;
-+    }
-+  return -1; // On n'arrive jamais ici !
-+}
-diff --git a/databases/readers/Lata/Octree_Int.h b/databases/readers/Lata/Octree_Int.h
-new file mode 100644
-index 0000000..ace9c2d
---- /dev/null
-+++ b/databases/readers/Lata/Octree_Int.h
-@@ -0,0 +1,103 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Octree_Int_inclus
-+#define Octree_Int_inclus
-+#include <IntTab.h>
-+#include <VectArrOfInt.h>
-+
-+struct IntBoxData;
-+class ArrOfBit;
-+
-+// .DESCRIPTION : Un octree permettant de retrouver des objets ponctuels ou
-+//   parallelipipediques dans un espace 1D, 2D ou 3D et des coordonnees entieres
-+class Octree_Int
-+{
-+public:
-+  void   build(const entier dimension, const IntTab& elements_boxes);
-+  entier search_elements(entier x, entier y, entier z, entier& floor_elements_index) const;
-+  entier search_elements_box(entier xmin, entier ymin, entier zmin,
-+                             entier xmax, entier ymax, entier zmax,
-+                             ArrOfInt& elements) const;
-+  void   reset();
-+
-+  inline const ArrOfInt& floor_elements() const
-+  {
-+    return floor_elements_;
-+  };
-+
-+  // Le plus grand entier autorise pour les coordonnees (du type 2^n - 1)
-+  static const entier coord_max_;
-+  // Premier entier de la moitie superieure de l'octree root (si coord_max_=2^n-1, half_width_=2^(n-1))
-+  static const entier root_octree_half_width_;
-+protected:
-+  entier build_octree_recursively(const entier octree_center_x, const entier octree_center_y, const entier octree_center_z,
-+                                  const entier octree_half_width,
-+                                  const IntTab& elements_boxes,
-+                                  VECT(ArrOfInt) & vect_elements_list,
-+                                  const entier level,
-+                                  VECT(ArrOfInt) & tmp_elem_flags);
-+  entier build_octree_floor(const ArrOfInt& elements_list);
-+
-+  entier search_octree_floor(entier x_pos, entier y_pos, entier z_pos) const;
-+  void   search_elements_box_floor(IntBoxData& boxdata,
-+                                   entier octree_floor_id) const;
-+  void   search_elements_box_recursively(IntBoxData& boxdata,
-+                                         entier octree_id,
-+                                         entier cx, entier cy, entier cz,
-+                                         entier half_width) const;
-+
-+  // Un octree peut etre soit vide, soit subdivise en nb_octrees autres octrees,
-+  // soit un octree_floor contenant une liste d'elements.
-+  enum Octree_Type { EMPTY, OCTREE, FLOOR };
-+
-+  static inline entier octree_id(entier index, Octree_Type type);
-+  static inline entier octree_index(entier octree_id, Octree_Type type);
-+  static inline Octree_Type octree_type(entier octree_id);
-+
-+  // Octree_id du cube principal : peut etre EMPTY, OCTREE ou FLOOR
-+  entier root_octree_id_;
-+  // Nombre d'elements stockes (dimension(0) du tableau elements_boxes)
-+  entier nb_elements_;
-+  // Tableau contenant tous les cubes qui sont divises en sous-cubes
-+  //  octree_structure_(i, j) decrit le contenu du sous-cube j du cube d'index i.
-+  //  pour 0 <= j < nombre de sous-cubes par cube.
-+  //  On appelle "octree_id" une valeur X=octree_structure_(i,j) (identifiant octree)
-+  //  L'octree id encode a la fois le type de l'octree et l'index ou
-+  //  il se trouve dans les tableaux (voir octree_id(entier, Octree_Type))
-+  IntTab octree_structure_;
-+
-+  // Tableau contenant la liste des elements de chaque sous-cube final non subdivise.
-+  // Si X < 0, on note i_debut = -X-1.
-+  // floor_elements_(i_debut) = n = nombre d'elements dans ce sous-cube
-+  // floor_elements_[i_debut+j] = numero d'un element qui coupe ce sous-cube pour 1 <= j <= n
-+  ArrOfInt floor_elements_;
-+};
-+
-+#endif
-diff --git a/databases/readers/Lata/OpenDXWriter.C b/databases/readers/Lata/OpenDXWriter.C
-new file mode 100644
-index 0000000..7add5ed
---- /dev/null
-+++ b/databases/readers/Lata/OpenDXWriter.C
-@@ -0,0 +1,335 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <OpenDXWriter.h>
-+#include <LataFilter.h>
-+#include <iostream>
-+#include <fstream>
-+#include <iosfwd>
-+
-+class DX_stream;
-+
-+class DX_stream
-+{
-+public:
-+  DX_stream() : os_to_cout_(0), os_(0) {};
-+  void init_cout(int is_ascii) 
-+  { 
-+    reset();
-+    os_to_cout_ = 1;
-+    ascii_ = is_ascii;
-+    os_ = &std::cout;
-+  }
-+  void init_file(const char *fname, int is_ascii)
-+  {
-+    reset();
-+    os_to_cout_ = 0;
-+    ascii_ = is_ascii;
-+    os_ = new std::ofstream(fname);
-+  }
-+  ~DX_stream() { reset(); }
-+  void reset()
-+  {
-+    if (!os_to_cout_)
-+      delete os_;
-+    os_ = 0;
-+    os_to_cout_ = 0;
-+  }
-+  DX_stream & operator<<(const float f) { (*os_) << f; return *this; }
-+  DX_stream & operator<<(const int i) { (*os_) << i; return *this; }
-+  DX_stream & operator<<(const char * s) { (*os_) << s; return *this; }
-+  DX_stream & operator<<(DX_stream & f(DX_stream &)) { return f(*this); }
-+
-+  void write(char * ptr, int sz) { os_->write(ptr, sz); }
-+  entier ok() { return os_ != 0; }
-+  entier ascii() { return ascii_; }
-+  std::ostream & stream() { return *os_; }
-+protected:
-+  int os_to_cout_;
-+  int ascii_;
-+  std::ostream *os_;
-+};
-+
-+DX_stream & endl(DX_stream & os) 
-+{ 
-+  os.stream() << std::endl; 
-+  return os; 
-+}
-+
-+void DX_write_vect(DX_stream & os, int dxobject, const ArrOfFloat & v)
-+{
-+  const int places = v.size_array();
-+  os << "object " << dxobject << " class array" << endl;
-+  os << "type float rank 1 shape 1 items " << places << " ";
-+
-+  if (!os.ascii()) {
-+    os << (mymachine_msb ? "msb ieee" : "lsb ieee") << " data follows" << endl;
-+    os.write((char*)v.addr(), sizeof(float) * places);
-+  } else {
-+    os << "ascii data follows" << endl;
-+    for (int i=0;i<places;i++) {
-+      os << v[i] << " ";
-+      os << endl;
-+    }
-+  }
-+}
-+void DX_write_vect(DX_stream & os, int dxobject, const FloatTab & v)
-+{
-+  const int places = v.dimension(0);
-+  const int shape  = v.dimension(1);
-+  os << "object " << dxobject << " class array" << endl;
-+  os << "type float rank 1 shape " << shape << " items " << places << " ";
-+
-+  if (!os.ascii()) {
-+    os << (mymachine_msb ? "msb ieee" : "lsb ieee") << " data follows" << endl;
-+    os.write((char*)v.addr(), sizeof(float) * places * shape);
-+  } else {
-+    os << "ascii data follows" << endl;
-+    for (int i=0;i<places;i++) {
-+      for (int j=0;j<shape;j++)
-+        os << v(i, j) << " ";
-+      os << endl;
-+    }
-+  }
-+}
-+
-+void DX_write_vect(DX_stream & os, int dxobject, const IntTab & v)
-+{
-+  if (sizeof(int) != 4) {
-+    Journal() << "Error DX_write_vect : int size != 32 bits" << endl;
-+    throw OpenDXWriter::DXInternalError;
-+  }
-+  const int places = v.dimension(0);
-+  const int shape  = v.dimension(1);
-+  os << "object " << dxobject << " class array" << endl;
-+  os << "type int rank 1 shape " << shape << " items " << places << " ";
-+
-+  if (!os.ascii()) {
-+    os << (mymachine_msb ? "msb ieee" : "lsb ieee") << " data follows" << endl;
-+    os.write((char*)v.addr(), sizeof(int) * places * shape);
-+  } else {
-+    os << "ascii data follows" << endl;
-+    for (int i=0;i<places;i++) {
-+      for (int j=0;j<shape;j++)
-+        os << v(i, j) << " ";
-+      os << endl;
-+    }
-+  }
-+}
-+
-+OpenDXWriter::OpenDXWriter()
-+{
-+  os_ = new DX_stream;
-+}
-+
-+OpenDXWriter::~OpenDXWriter()
-+{
-+  delete os_;
-+}
-+
-+void OpenDXWriter::reset()
-+{
-+  index_counter_ = 0;
-+  fields_indexes_.resize_array(0);
-+  fields_indexes_.set_smart_resize(1);
-+  fields_names_ = Noms();
-+  nodes_index_ = -1;
-+  finish_geometry(); // reset geometry data
-+}
-+
-+void OpenDXWriter::init_cout(double time, int ascii)
-+{
-+  reset();
-+  os_->init_cout(ascii);
-+  dx_time_index_ = ++index_counter_;
-+  FloatTab t;
-+  t.resize(1,1);
-+  t(0,0) = time;
-+  DX_write_vect(*os_, dx_time_index_, t);
-+}
-+
-+void OpenDXWriter::init_file(double time, Nom & filename_, int ascii)
-+{
-+  reset();
-+  os_->init_file(filename_, ascii);
-+  dx_time_index_ = ++index_counter_;
-+  FloatTab t;
-+  t.resize(1,1);
-+  t(0,0) = time;
-+  DX_write_vect(*os_, dx_time_index_, t);
-+}
-+
-+const char * DX_element_name(Domain::Element elem)
-+{
-+  switch(elem) {
-+  case Domain::line: return "lines";
-+  case Domain::triangle: return "triangles";
-+  case Domain::quadri: return "quads";
-+  case Domain::tetra: return "tetrahedra";
-+  case Domain::hexa: return "cubes";
-+  default:
-+    Journal() << "DX_element_name unknown element" << endl;
-+    throw OpenDXWriter::DXInternalError;
-+  }
-+}
-+
-+void OpenDXWriter::write_geometry(const Domain & dom)
-+{
-+  // Write last geometry and begin a new one
-+  finish_geometry();
-+  const DomainUnstructured * dom1 = dynamic_cast<const DomainUnstructured*>(&dom);
-+  const DomainIJK * dom2 = dynamic_cast<const DomainIJK*>(&dom);
-+  DX_stream & os = *os_;
-+  if (dom1) {
-+    nodes_index_ = ++index_counter_;
-+    DX_write_vect(os, nodes_index_, dom1->nodes_);
-+    elements_index_ = ++index_counter_;
-+    DX_write_vect(os, elements_index_, dom1->elements_);
-+    os << "attribute \"element type\" string \"" << DX_element_name(dom.elt_type_) << "\"" << endl;
-+    os << "attribute \"ref\" string \"positions\"" << endl;
-+  } else if (dom2) {
-+    const entier dim = dom.dimension();
-+    ArrOfInt dx_coord_index(dim);
-+    for (entier i = 0; i < dim; i++) {
-+      dx_coord_index[i] = ++index_counter_;
-+      const entier n = dom2->coord_[i].size_array();
-+      FloatTab tmp;
-+      tmp.resize(n, 3);
-+      for (entier j = 0; j < n; j++)
-+        tmp(j, i) = dom2->coord_[i][j];
-+      DX_write_vect(os, dx_coord_index[i], tmp);
-+    }
-+    nodes_index_ = ++index_counter_;
-+    os << "object " << nodes_index_ << " class productarray" << endl;
-+    entier i;
-+    for (i = dim-1; i >= 0; i--)
-+      os << " term " << dx_coord_index[i] << endl;
-+    elements_index_ = ++index_counter_;
-+    os << "object " << elements_index_ << " class gridconnections counts";
-+    for (i = dim-1; i >= 0; i--)
-+      os << " " << dom2->coord_[i].size_array();
-+    os << endl;
-+    os << "attribute \"element type\" string \"" << ((dim==2)?"quads":"cubes") << "\"" << endl;
-+    os << "attribute \"ref\" string \"positions\"" << endl;
-+    const entier n1 = dom2->invalid_positions_.size_array();
-+    if (n1 > 0) {
-+      invalid_positions_ = ++index_counter_;
-+      IntTab tmp;
-+      tmp.resize(n1, 1);
-+      ArrOfInt & array = tmp;
-+      for (entier ii = 0; ii < n1; ii++) array[ii] = dom2->invalid_positions_[ii];
-+      DX_write_vect(os, invalid_positions_, tmp);
-+      os << "attribute \"ref\" string \"positions\"" << endl;
-+    }
-+#if 0
-+    if (n2 > 0) {
-+      IntTab tmp;
-+      tmp.resize(n2, 1);
-+      ArrOfInt & array = tmp;
-+      for (entier i = 0; i < n2; i++) array[i] = dom2->invalid_connections_[i];
-+      DX_write_vect(os, invalid_connections_, tmp);
-+      os << "attribute \"ref\" string \"connections\"" << endl;
-+    }
-+#endif
-+  } else {
-+    Journal() << "Error OpenDXWriter::write_geometry domain type not supported" << endl;
-+    throw DXInternalError;
-+  }
-+  fields_names_.add(dom.id_.name_);
-+}
-+
-+void OpenDXWriter::finish_geometry()
-+{
-+  if (nodes_index_ >= 0) {
-+    index_counter_++;
-+    fields_indexes_.append_array(index_counter_);
-+    DX_stream & os = *os_;
-+    os << "object " << index_counter_ << " class field" << endl;
-+    os << " component \"positions\" " << nodes_index_ << endl;
-+    os << " component \"connections\" " << elements_index_ << endl;
-+    if (invalid_positions_ >= 0)
-+      os << " component \"invalid positions\" " << invalid_positions_ << endl;
-+    if (invalid_connections_ >= 0)
-+      os << " component \"invalid connections\" " << invalid_connections_ << endl;
-+    os << " component \"TIME\" " << dx_time_index_ << endl;
-+
-+    for (entier i=0; i < components_indexes_.size_array(); i++)
-+      os << " component \"" << components_names_[i] << "\" " << components_indexes_[i] << endl;
-+  }
-+  nodes_index_ = -1;
-+  elements_index_ = -1;
-+  components_indexes_.resize_array(0);
-+  components_indexes_.set_smart_resize(1);
-+  components_names_ = Noms();
-+  invalid_positions_ = -1;
-+  invalid_connections_ = -1;
-+}
-+
-+void OpenDXWriter::write_component(const LataField_base & field)
-+{
-+  index_counter_++;
-+  const Field<IntTab> * int_field = dynamic_cast<const Field<IntTab>*>(&field);
-+  const Field<FloatTab> * float_field = dynamic_cast<const Field<FloatTab>*>(&field);
-+  if (int_field)
-+    DX_write_vect(*os_, index_counter_, int_field->data_);
-+  else if (float_field)
-+    DX_write_vect(*os_, index_counter_, float_field->data_);
-+  else {
-+    Journal() << "Error OpenDXWriter::write_component: unknown field type" << endl;
-+    throw;
-+  }
-+  if (field.localisation_ == LataField_base::ELEM)
-+    (*os_) << "attribute \"dep\" string \"connections\"" << endl;
-+  else if (field.localisation_ == LataField_base::SOM)
-+    (*os_) << "attribute \"dep\" string \"positions\"" << endl;
-+  else
-+   {
-+    ; // no attribute
-+   }
-+  components_indexes_.append_array(index_counter_);
-+  Nom n = field.id_.uname_.get_field_name();
-+  n += "_";
-+  n += field.id_.uname_.get_localisation();
-+  components_names_.add(n);
-+}
-+
-+entier OpenDXWriter::finish(int force_group)
-+{
-+  DX_stream & os = *os_;
-+  finish_geometry();
-+  if (force_group || fields_indexes_.size_array() > 1) {
-+    //DX_stream & os = *os_;
-+    os << "object " << ++index_counter_ << " class group" << endl;
-+    for (entier i = 0; i < fields_indexes_.size_array(); i++) {
-+      os << " member \"" << fields_names_[i] << "\" value " << fields_indexes_[i] << endl;
-+    }
-+  }
-+  os << "END" << endl;
-+  return index_counter_;
-+}
-diff --git a/databases/readers/Lata/OpenDXWriter.h b/databases/readers/Lata/OpenDXWriter.h
-new file mode 100644
-index 0000000..e8f6358
---- /dev/null
-+++ b/databases/readers/Lata/OpenDXWriter.h
-@@ -0,0 +1,83 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef OpenDXWriter_H_
-+#define OpenDXWriter_H_
-+#include <ArrOfInt.h>
-+#include <Lata_tools.h>
-+
-+class Domain;
-+class LataField_base;
-+// Usage:
-+//   init_cout(...) or init_file(...)
-+//   for (i=0; i < nb_geometries; i++) {
-+//     write_geometry(...);
-+//     for (j=0; j < nb_fields; j++)
-+//       write_component(...);
-+//   }
-+//   finish();
-+class DX_stream;
-+class OpenDXWriter
-+{
-+public:
-+  OpenDXWriter();
-+  ~OpenDXWriter();
-+  void init_cout(double time, int ascii = 0);
-+  void init_file(double time, Nom & filename_, int ascii = 0);
-+
-+  void write_geometry(const Domain & dom);
-+  void write_component(const LataField_base & field);
-+
-+  entier finish(int force_group = 0);
-+  enum DXErrors { DXInternalError };
-+protected:
-+  void reset();
-+  void finish_geometry();
-+
-+  int dx_time_index_;
-+  int index_counter_;
-+  // Indexes of all DXfield objects in the file (to build the final group)
-+  ArrOfInt fields_indexes_;
-+  // Names of the DXfields:
-+  Noms fields_names_;
-+
-+  // Index of the nodes array of the last geometry
-+  int nodes_index_;
-+  // Index of the elements array of the last geometry
-+  int elements_index_;
-+  // Index of these arrays:
-+  int invalid_positions_;
-+  int invalid_connections_;
-+  // Indexes of the components associated with the last geometry
-+  ArrOfInt components_indexes_;
-+  Noms components_names_;
-+
-+  DX_stream * os_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/Operator.h b/databases/readers/Lata/Operator.h
-new file mode 100644
-index 0000000..2ae94bf
---- /dev/null
-+++ b/databases/readers/Lata/Operator.h
-@@ -0,0 +1,224 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef OPERATORS_H
-+#define OPERATORS_H
-+#include <LataFilter.h>
-+
-+// A tool to "reconnect" several subdomains of a parallel computation:
-+//  reconnect_geometry() searches for duplicate node coordinates and 
-+//  changes the elements_ and faces_ arrays to use the smallest node
-+//  index that has the same coordinate. Hence, we recover the connectivity
-+//  between blocks.
-+class Reconnect
-+{
-+public:
-+  static void reconnect_geometry(DomainUnstructured & geom, double tolerance, entier nb_nodes_untouched = 0);
-+  static void apply_renumbering(const ArrOfInt & nodes_renumber, ArrOfInt & data);
-+  static void search_duplicate_nodes(const FloatTab & src_coord,
-+                                     ArrOfInt & nodes_renumber,
-+                                     double eps,
-+                                     entier nb_nodes_untouched = 0);
-+};
-+
-+class OperatorClipbox : public Operator
-+{
-+public:
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);
-+  // Renumerotation des sommets, elements et faces par rapport aux donnees brutes lues
-+  // renum_truc_[new_index] = index in lata file;
-+  // La renumerotation vient de clip_box et de regularize
-+  ArrOfInt renum_nodes_;
-+  ArrOfInt renum_elements_;
-+  ArrOfInt renum_faces_;
-+};
-+
-+class OperatorBoundary : public Operator
-+{
-+public:
-+  OperatorBoundary() { geom_init_ = 0; }
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);
-+  BigEntier compute_memory_size() const {
-+    return
-+      memory_size(src_nodes_)
-+      + memory_size(src_element_)
-+      + memory_size(src_face_);
-+  }
-+  // Renumerotation des sommets, elements et faces par rapport aux donnees brutes lues
-+  // renum_truc_[new_index] = index in lata file;
-+  // La renumerotation vient de clip_box et de regularize
-+  ArrOfInt src_nodes_; // for each boundary node, which node is it in source domain ?
-+  ArrOfInt src_element_; // same for boundary face vs source domain element
-+  ArrOfInt src_face_; // local face number on src_element_
-+  entier geom_init_;
-+};
-+
-+class OperatorRegularize : public Operator
-+{
-+public:
-+  OperatorRegularize() { tolerance_ = -1.; geom_init_ = 0; extend_layer_ = 0; }
-+  void set_tolerance(double epsilon) { tolerance_ = epsilon; }
-+  void set_extend_layer(entier n) { if (n >= 0) extend_layer_ = n; else extend_layer_ = 0; }
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);
-+  
-+  BigEntier compute_memory_size() const {
-+    return
-+      memory_size(renum_nodes_)
-+      + memory_size(renum_elements_)
-+      + memory_size(renum_faces_);
-+  }
-+  // Renumerotation des sommets, elements et faces par rapport aux donnees brutes lues
-+  // renum_truc_[old_index] = new_index;
-+  ArrOfInt renum_nodes_;
-+  ArrOfInt renum_elements_;
-+  // Pour les faces: les faces de chaque direction du domaine ijk sont numerotees 
-+  //  separement: faces de normales X entre 0 et N, faces de normales Y entre 0 et N, etc...
-+  // Le numero d'une face est egal au plus petit des numeros de ses sommets du le maillage ijk.
-+  // Renum faces contient le codage suivant:
-+  //  numero de la face = renum_faces_[i] >> 2;
-+  //  direction de la face  = (renum_faces_ & 3)
-+  ArrOfInt renum_faces_;
-+  double tolerance_;
-+  entier extend_layer_;
-+  entier geom_init_;
-+};
-+
-+class OperatorDualMesh : public Operator
-+{
-+public:
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);
-+  BigEntier compute_memory_size() const { return 0; }
-+};
-+class OperatorFacesMesh : public Operator
-+{
-+public:
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);
-+  BigEntier compute_memory_size() const { return 0; }
-+};
-+
-+class OperatorNCMesh : public Operator
-+{
-+public:
-+  void build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest);
-+  void build_field(const Domain & src_domain, const LataField_base & src_field, 
-+                   const Domain & dest_domain, LataDeriv<LataField_base> & dest);  
-+  BigEntier compute_memory_size() const { return 0; }
-+};
-+
-+// These generic methods just say that the particular function does not exist:
-+void build_geometry_(Operator & op, const Domain & src, LataDeriv<Domain> & dest);
-+void build_field_(Operator & op, const Domain & src, const Domain & dest, 
-+                  const LataField_base & srcf, LataField_base & destf);
-+
-+template<class Op>
-+void apply_geometry(Op & op, const Domain & src_domain, LataDeriv<Domain> & dest)
-+{
-+  const DomainUnstructured *src1 = dynamic_cast<const DomainUnstructured*>(&src_domain);
-+  const DomainIJK *src2 = dynamic_cast<const DomainIJK*>(&src_domain);
-+
-+  if (src1) {
-+    build_geometry_(op, *src1, dest);
-+  } else if (src2) {
-+    build_geometry_(op, *src2, dest);
-+  } else {
-+    Journal() << "Error in OperatorDualMesh::build_geometry: unsupported domain type" << endl;
-+    throw;
-+  } 
-+}
-+
-+// See apply_field
-+template <class Op, class DomSrc, class DomDest>
-+void apply_field3(Op & op, const DomSrc & src_domain, const LataField_base & src_field,
-+                  const DomDest & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  const Field<DoubleTab> *src1 = dynamic_cast<const Field<DoubleTab>*> (&src_field);
-+  const Field<FloatTab>  *src2 = dynamic_cast<const Field<FloatTab>*> (&src_field);
-+  const Field<IntTab>    *src3 = dynamic_cast<const Field<IntTab>*> (&src_field);
-+  
-+  if (src1)
-+    build_field_(op, src_domain, dest_domain, *src1, dest.instancie(Field<DoubleTab> ));
-+  else if (src2)
-+    build_field_(op, src_domain, dest_domain, *src2, dest.instancie(Field<FloatTab> ));
-+  else if (src3)
-+    build_field_(op, src_domain, dest_domain, *src3, dest.instancie(Field<IntTab> ));
-+  else {
-+    Journal() << "Error in apply_field3: unsupported field type" << endl;
-+    throw;
-+  }
-+}
-+
-+// See apply_field
-+template <class Op, class DomSrc>
-+void apply_field2(Op & op, const DomSrc & src_domain, const LataField_base & src_field,
-+                  const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  const DomainUnstructured *d1 = dynamic_cast<const DomainUnstructured*>(&dest_domain);
-+  const DomainIJK          *d2 = dynamic_cast<const DomainIJK*>(&dest_domain);
-+  if (d1)
-+    apply_field3(op, src_domain, src_field, *d1, dest);
-+  else if (d2)
-+    apply_field3(op, src_domain, src_field, *d2, dest);
-+  else {
-+    Journal() << "Error in apply_field2: unsupported destination domain type" << endl;
-+    throw;
-+  }
-+}
-+
-+// This template calls the appropriate "build_field_()" method in the given operator.
-+//  The operator should implement non virtual methods for any usefull combination
-+//  of source domain type, destination domain type and source field type. This template
-+//  will call the correct method depending on the effective type of the parameters
-+//  (determined with dynamic_cast).
-+template <class Op>
-+void apply_field(Op & op, const Domain & src_domain, const LataField_base & src_field,
-+                 const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  const DomainUnstructured *d1 = dynamic_cast<const DomainUnstructured*>(&src_domain);
-+  const DomainIJK          *d2 = dynamic_cast<const DomainIJK*>(&src_domain);
-+  if (d1)
-+    apply_field2(op, *d1, src_field, dest_domain, dest);
-+  else if (d2)
-+    apply_field2(op, *d2, src_field, dest_domain, dest);
-+  else {
-+    Journal() << "Error in apply_field: unsupported source domain type" << endl;
-+    throw;
-+  }
-+}
-+
-+#endif
-diff --git a/databases/readers/Lata/OperatorBoundary.C b/databases/readers/Lata/OperatorBoundary.C
-new file mode 100644
-index 0000000..1e10d1a
---- /dev/null
-+++ b/databases/readers/Lata/OperatorBoundary.C
-@@ -0,0 +1,227 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataFilter.h>
-+#include <Operator.h>
-+#include <Static_Int_Lists.h>
-+#include <Connectivite_som_elem.h>
-+
-+// Journal level for messages
-+#define verb_level 4
-+
-+void build_ref_elem_face(const Domain::Element elt_type, IntTab & ref_elem_face)
-+{
-+  static entier faces_sommets_tetra[4][3] = 
-+    { { 1, 2, 3 },
-+      { 0, 3, 2 },
-+      { 3, 0, 1 },
-+      { 0, 2, 1 } };
-+  static entier faces_sommets_hexa[6][4] = 
-+    { { 0, 2, 4, 6 },
-+      { 0, 1, 4, 5 },
-+      { 0, 1, 2, 3 },
-+      { 1, 3, 5, 7 },
-+      { 2, 3, 6, 7 },
-+      { 4, 5, 6, 7 } };
-+
-+  int i, j;
-+  switch(elt_type) {
-+  case Domain::tetra:
-+    ref_elem_face.resize(4,3);
-+    for(i=0;i<4;i++)
-+      for(j=0;j<3;j++)
-+        ref_elem_face(i,j) = faces_sommets_tetra[i][j];
-+    break;
-+  case Domain::hexa:
-+    ref_elem_face.resize(6,4);
-+    for(i=0;i<6;i++)
-+      for(j=0;j<4;j++)
-+        ref_elem_face(i,j) = faces_sommets_hexa[i][j];
-+    break;
-+  default:
-+    Journal() << "build_ref_elem_face : non code pour element "
-+              << endl;
-+  }
-+}
-+
-+void build_geometry_(OperatorBoundary & op,
-+                     const DomainUnstructured & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorBoundary domain " << src.id_.name_ << endl;
-+  DomainUnstructured & dest = dest_domain.instancie(DomainUnstructured);
-+  switch(src.elt_type_) {
-+  case Domain::tetra: dest.elt_type_ = Domain::triangle; break;
-+  case Domain::hexa:  dest.elt_type_ = Domain::quadri; break;
-+  default:
-+    Journal() << "Error in OperatorBoundary: element type not supported" << endl;
-+    throw;
-+  }
-+
-+  Static_Int_Lists som_elem;
-+  construire_connectivite_som_elem(src.nb_nodes(), src.elements_, som_elem, 0);
-+  // For each element:
-+  //  for each face of this element
-+  //    how many neighbouring elements ?
-+  //      if only one neighbour, it's a boundary face !
-+
-+  IntTab element_faces;
-+  build_ref_elem_face(src.elt_type_, element_faces);
-+  op.src_element_.set_smart_resize(1);
-+  op.src_face_.set_smart_resize(1);
-+  op.src_nodes_.set_smart_resize(1);
-+  const int nb_nodes_per_face = element_faces.dimension(1);
-+  const int nb_faces_per_element = element_faces.dimension(0);
-+
-+  ArrOfInt one_face(nb_nodes_per_face);
-+  ArrOfInt adjacent_elements;
-+
-+  // For each node in the source domain, node number on the boundary:
-+  ArrOfInt nodes_renumber;
-+  nodes_renumber.resize_array(src.nb_nodes());
-+  nodes_renumber = -1;
-+
-+  entier element_index, local_face_index;
-+  // Browse only real elements (so we don't see boundaries between processors)
-+  const entier nelem = src.nb_elements() - src.nb_virt_items(LataField_base::ELEM);
-+  entier i;
-+  entier count = 0;
-+  for (element_index = 0; element_index < nelem; element_index++) {
-+    for (local_face_index = 0; local_face_index < nb_faces_per_element; local_face_index++) {
-+      for (i = 0; i < nb_nodes_per_face; i++) {
-+        int local_node = element_faces(local_face_index, i);
-+        int node = src.elements_(element_index, local_node);
-+        one_face[i] = node;
-+      }
-+      find_adjacent_elements(som_elem, one_face, adjacent_elements);
-+      if (adjacent_elements.size_array() == 1) {
-+        op.src_element_.append_array(element_index);
-+        op.src_face_.append_array(local_face_index);
-+        for (i = 0; i < nb_nodes_per_face; i++) {
-+          const entier node = one_face[i];
-+          entier dest_node = nodes_renumber[node];
-+          if (dest_node < 0) {
-+            dest_node = count++;
-+            op.src_nodes_.append_array(node);
-+            nodes_renumber[node] = dest_node;
-+          }
-+        }
-+      }
-+    }
-+  }
-+
-+  // Build nodes
-+  const entier nb_nodes = op.src_nodes_.size_array();
-+  const entier dim = src.nodes_.dimension(1);
-+  dest.nodes_.resize(nb_nodes, dim);
-+  for (i = 0; i < nb_nodes; i++) {
-+    const entier n = op.src_nodes_[i];
-+    for (entier j = 0; j < dim; j++) 
-+      dest.nodes_(i, j) = src.nodes_(n, j);
-+  }
-+
-+  // Build elements
-+  const entier nb_elems = op.src_element_.size_array();
-+  dest.elements_.resize(nb_elems, nb_nodes_per_face);
-+  for (i = 0; i < nb_elems; i++) {
-+    const entier elem = op.src_element_[i];
-+    const entier face = op.src_face_[i];
-+    for (entier j = 0; j < nb_nodes_per_face; j++) {
-+      const entier src_node = src.elements_(elem, element_faces(face, j));
-+      dest.elements_(i, j) = nodes_renumber[src_node];
-+    }
-+  }
-+  op.geom_init_ = 1;
-+}
-+
-+template <class TabType>
-+void build_field_(OperatorBoundary & op,
-+                  const DomainUnstructured & src_domain,
-+                  const DomainUnstructured & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  if (!op.geom_init_) {
-+    // Must fill the renum_.... arrays first !
-+    LataDeriv<Domain> destb;
-+    op.build_geometry(src_domain, destb);
-+  }
-+  dest.component_names_ = src.component_names_;
-+  dest.localisation_ = src.localisation_;
-+  dest.nature_ = src.nature_;
-+  if (dest.localisation_ == LataField_base::FACES)
-+    dest.localisation_ = LataField_base::ELEM;
-+
-+  const entier nb_compo = src.data_.dimension(1);
-+  entier i, sz = 0;
-+  switch(src.localisation_) {
-+  case LataField_base::ELEM:
-+    sz = dest_domain.nb_elements();
-+    dest.data_.resize(sz, nb_compo);
-+    for (i = 0; i < sz; i++) {
-+      const entier old_i = op.src_element_[i];
-+      for (entier j = 0; j < nb_compo; j++)
-+        dest.data_(i, j) = src.data_(old_i, j);
-+    }
-+    break;
-+  case LataField_base::SOM:
-+    sz = dest_domain.nb_nodes();
-+    dest.data_.resize(sz, nb_compo);
-+    for (i = 0; i < sz; i++) {
-+      const entier old_i = op.src_nodes_[i];
-+      for (entier j = 0; j < nb_compo; j++)
-+        dest.data_(i, j) = src.data_(old_i, j);
-+    }
-+    break;
-+  case LataField_base::FACES:
-+    sz = dest_domain.nb_elements();
-+    dest.data_.resize(sz, nb_compo);
-+    for (i = 0; i < sz; i++) {
-+      const entier old_i = src_domain.elem_faces_(op.src_element_[i], op.src_face_[i]);
-+      for (entier j = 0; j < nb_compo; j++)
-+        dest.data_(i, j) = src.data_(old_i, j);
-+    }
-+    break;
-+  default:
-+    Journal() << "Error in OperatorRegularize::build_field_: unknown localisation" << endl;
-+    throw;   
-+  }
-+}
-+
-+void OperatorBoundary::build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest)
-+{
-+  apply_geometry(*this, src_domain, dest);
-+}
-+
-+void OperatorBoundary::build_field(const Domain & src_domain, const LataField_base & src_field,
-+                                   const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  apply_field(*this, src_domain, src_field, dest_domain, dest);
-+}
-+
-+#undef verb_level
-diff --git a/databases/readers/Lata/OperatorDualMesh.C b/databases/readers/Lata/OperatorDualMesh.C
-new file mode 100644
-index 0000000..9ecd859
---- /dev/null
-+++ b/databases/readers/Lata/OperatorDualMesh.C
-@@ -0,0 +1,222 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataFilter.h>
-+#include <Operator.h>
-+
-+// Journal level
-+#define verb_level 4
-+
-+void build_geometry_(OperatorDualMesh & op,
-+                     const DomainUnstructured & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorDualMesh geometry(unstructured) " << src.id_.name_ << endl;
-+  if (!src.faces_ok()) {
-+    Journal() << "Error in OperatorDualMesh::build_geometry: source domain has no faces data" << endl;
-+    throw;
-+  }
-+  const int max_nb_som_face = 3; // for tetrahedra
-+  if (src.elt_type_ != Domain::triangle && src.elt_type_ != Domain::tetra) {
-+    Journal() << "Error in OperatorDualMesh::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
-+    throw;
-+  }
-+  const entier nb_som = src.nodes_.dimension(0);
-+  const entier nb_elem = src.elem_faces_.dimension(0); // Not elements_, in case elem_faces_ has no virtual data.
-+  const entier dim = src.dimension();
-+
-+  DomainUnstructured & dest = dest_domain.instancie(DomainUnstructured);
-+  dest.id_ = src.id_;
-+  dest.id_.name_ += "_dual";
-+  dest.elt_type_ = src.elt_type_;
-+
-+  dest.nodes_ = src.nodes_;
-+  dest.nodes_.resize(nb_som + nb_elem, dim);
-+  src.compute_cell_center_coordinates(dest.nodes_, nb_som);
-+
-+  const entier nb_faces_elem = src.elem_faces_.dimension(1);
-+  const entier nb_som_face = src.faces_.dimension(1);
-+  const entier nb_som_elem = src.elements_.dimension(1);
-+  dest.elements_.resize(nb_elem * nb_faces_elem, nb_som_elem);
-+  int index = 0;
-+  for (int i = 0; i < nb_elem; i++) {
-+    const int central_node = nb_som + i;
-+    for (int j = 0; j < nb_faces_elem; j++) {
-+      const int face = src.elem_faces_(i, j);
-+      dest.elements_(index, 0) = central_node;
-+      for (int k = 0; k < loop_max(nb_som_face, max_nb_som_face); k++) {
-+        dest.elements_(index, k+1) = src.faces_(face, k);
-+        break_loop(k, nb_som_face);
-+      }
-+      index++;
-+    }
-+  }
-+  const entier nb_elem_virt = src.nb_virt_items(LataField_base::ELEM);
-+  dest.set_nb_virt_items(LataField_base::ELEM, nb_elem_virt * nb_faces_elem);
-+}
-+
-+// Builds a field on the dual domain from the field on the source domain.
-+// Source field must be located at faces.
-+// (destination field is located at the elements. the value for an element
-+//  is the value associated to the adjacent face of the source domain).
-+template <class TabType>
-+void build_field_(OperatorDualMesh & op,
-+                  const DomainUnstructured & src_domain,
-+                  const DomainUnstructured & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  Journal(verb_level) << "OperatorDualMesh field(unstructured) " << src.id_.uname_ << endl;
-+  dest.component_names_ = src.component_names_;
-+  dest.localisation_ = LataField_base::ELEM;
-+  dest.nature_ = src.nature_;
-+  const entier nb_elem = src_domain.elements_.dimension(0);
-+  const entier nb_face_elem = src_domain.elem_faces_.dimension(1);
-+  const entier nb_comp = src.data_.dimension(1);
-+  dest.data_.resize(nb_elem * nb_face_elem, nb_comp);
-+  int index = 0;
-+  for (int i = 0; i < nb_elem; i++) {
-+    for (int j = 0; j < nb_face_elem; j++) {
-+      const int face = src_domain.elem_faces_(i, j);
-+      for (int k = 0; k < nb_comp; k++)
-+        dest.data_(index, k) = src.data_(face, k);
-+      index++;
-+    }
-+  }
-+}
-+
-+void build_geometry_(OperatorDualMesh & op,
-+                     const DomainIJK & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorDualMesh geometry(ijk) " << src.id_.name_ << endl;
-+  if (src.elt_type_ != Domain::quadri && src.elt_type_ != Domain::hexa) {
-+    Journal() << "Error in OperatorDualMesh::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
-+    throw;
-+  }
-+
-+  DomainIJK & dest = dest_domain.instancie(DomainIJK);
-+  dest.elt_type_ = src.elt_type_;
-+  const entier dim = src.dimension();
-+  for (entier i_dim = 0; i_dim < dim; i_dim++) {
-+    const ArrOfFloat & c1 = src.coord_[i_dim];
-+    ArrOfFloat & c2 = dest.coord_.add(ArrOfFloat());
-+    const int n = c1.size_array() - 1;
-+    c2.resize_array(n*2+1);
-+    for (int i = 0; i < n; i++) {
-+      c2[i*2] = c1[i];
-+      c2[i*2+1] = (c1[i] + c1[i+1]) * 0.5;
-+    }
-+    c2[n*2] = c1[n];
-+  }
-+
-+  if (src.invalid_connections_.size_array() > 0) {
-+    dest.invalid_connections_.resize_array(dest.nb_elements());
-+    dest.invalid_connections_ = 0;
-+    int index = 0;
-+    
-+    const entier ni = dest.coord_[0].size_array()-1;
-+    const entier nj = dest.coord_[1].size_array()-1;
-+    const entier nk = (dim==3) ? (dest.coord_[2].size_array()-1) : 1;
-+    const entier ni_src = src.coord_[0].size_array() - 1;
-+    const entier nj_src = src.coord_[1].size_array() - 1;
-+    for (int k = 0; k < nk; k++) {
-+      const int k_src = k / 2;
-+      for (int j = 0; j < nj; j++) {
-+        const int j_src = j / 2;
-+        const int idx_source = (k_src * nj_src + j_src) * ni_src;
-+        for (int i = 0; i < ni; i++) {
-+          const int idx = idx_source + i / 2;
-+          if (src.invalid_connections_[idx])
-+            dest.invalid_connections_.setbit(index);
-+          index++;
-+        }
-+      }
-+    }
-+  }
-+  dest.virtual_layer_begin_ = 2 * src.virtual_layer_begin_;
-+  dest.virtual_layer_end_ = 2 * src.virtual_layer_end_;
-+}
-+#define IJK(i,j,k) (k*nj_ni_src + j*ni_src + i)
-+
-+template <class TabType>
-+void build_field_(OperatorDualMesh & op,
-+                  const DomainIJK & src_domain,
-+                  const DomainIJK & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  Journal(verb_level) << "OperatorDualMesh field(ijk) " << src.id_.uname_ << endl;
-+  dest.component_names_ = src.component_names_;
-+  dest.localisation_ = LataField_base::ELEM;
-+  dest.nature_ = LataDBField::VECTOR;
-+  const entier dim = src_domain.dimension();
-+  int index = 0;
-+
-+  // Loop on destination elements
-+  const entier ni = dest_domain.coord_[0].size_array()-1;
-+  const entier nj = dest_domain.coord_[1].size_array()-1;
-+  const entier nk = (dim==3) ? (dest_domain.coord_[2].size_array()-1) : 1;
-+  dest.data_.resize(ni*nj*nk, dim);
-+  const entier ni_src = src_domain.coord_[0].size_array();
-+  const entier nj_ni_src = src_domain.coord_[1].size_array() * ni_src;
-+  for (int k = 0; k < nk; k++) {
-+    const int k2 = k/2;
-+    const int k3 = (k+1)/2;
-+    for (int j = 0; j < nj; j++) {
-+      const int j2 = j/2;
-+      const int j3 = (j+1)/2;
-+      for (int i = 0; i < ni; i++) {
-+        const int i2 = i/2;
-+        const int i3 = (i+1)/2;
-+        dest.data_(index, 0) = src.data_(IJK(i3,j2,k2), 0);
-+        dest.data_(index, 1) = src.data_(IJK(i2,j3,k2), 1);
-+        if (dim==3)
-+          dest.data_(index, 2) = src.data_(IJK(i2,j2,k3), 2);
-+        index++;
-+      }
-+    }
-+  }
-+}
-+
-+#undef IJK
-+
-+void OperatorDualMesh::build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest)
-+{
-+  apply_geometry(*this, src_domain, dest);
-+}
-+
-+void OperatorDualMesh::build_field(const Domain & src_domain, const LataField_base & src_field,
-+                                   const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  if (src_field.localisation_ != LataField_base::FACES) {
-+    Journal() << "Error in OperatorDualMesh::build_field: source field is not located at faces" << endl;
-+    throw;
-+  }
-+  apply_field(*this, src_domain, src_field, dest_domain, dest);
-+}
-+#undef level
-diff --git a/databases/readers/Lata/OperatorFacesMesh.C b/databases/readers/Lata/OperatorFacesMesh.C
-new file mode 100644
-index 0000000..6aa85a5
---- /dev/null
-+++ b/databases/readers/Lata/OperatorFacesMesh.C
-@@ -0,0 +1,130 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataFilter.h>
-+#include <Operator.h>
-+
-+// Journal level
-+#define verb_level 4
-+
-+void build_geometry_(OperatorFacesMesh & op,
-+                     const DomainUnstructured & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorFacesMesh geometry(unstructured) " << src.id_.name_ << endl;
-+  if (!src.faces_ok()) {
-+    Journal() << "Error in OperatorFacesMesh::build_geometry: source domain has no faces data" << endl;
-+    throw;
-+  }
-+  // const int max_nb_som_face = 3; // for tetrahedra
-+  if (src.elt_type_ != Domain::triangle && src.elt_type_ != Domain::polygone && src.elt_type_ != Domain::tetra && src.elt_type_ != Domain::polyedre) {
-+    Journal() << "Error in OperatorFacesMesh::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
-+    throw;
-+  }
-+  //  const entier nb_som = src.nodes_.dimension(0);
-+  // const entier nb_elem = src.elem_faces_.dimension(0); // Not elements_, in case elem_faces_ has no virtual data.
-+  //const entier dim = src.dimension();
-+
-+  DomainUnstructured & dest = dest_domain.instancie(DomainUnstructured);
-+  dest.id_ = src.id_;
-+  dest.id_.name_ += "_centerfaces";
-+  if (src.elt_type_ == Domain::triangle || src.elt_type_ == Domain::polygone)
-+    dest.elt_type_=Domain::line;
-+  else if ( src.elt_type_ == Domain::tetra)
-+    dest.elt_type_=Domain::triangle;
-+  else if ( src.elt_type_ == Domain::polyedre)
-+    dest.elt_type_=Domain::polygone;
-+
-+  dest.nodes_ = src.nodes_;
-+  dest.elements_ = src.faces_;
-+      
-+    
-+
-+  
-+  const entier nb_elem_virt = src.nb_virt_items(LataField_base::FACES);
-+  dest.set_nb_virt_items(LataField_base::ELEM, nb_elem_virt );
-+}
-+
-+// Builds a field on the dual domain from the field on the source domain.
-+// Source field must be located at faces.
-+// (destination field is located at the elements. the value for an element
-+//  is the value associated to the adjacent face of the source domain).
-+template <class TabType>
-+void build_field_(OperatorFacesMesh & op,
-+                  const DomainUnstructured & src_domain,
-+                  const DomainUnstructured & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  Journal(verb_level) << "OperatorFacesMesh field(unstructured) " << src.id_.uname_ << endl;
-+  dest.component_names_ = src.component_names_;
-+  dest.localisation_ = LataField_base::ELEM;
-+  dest.nature_ = src.nature_;
-+
-+  dest.data_=src.data_;
-+   
-+  
-+} 
-+
-+void build_geometry_(OperatorFacesMesh & op,
-+                     const DomainIJK & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorFacesMesh geometry(ijk) " << src.id_.name_ << endl;
-+  Journal() << "Error in OperatorFacesMesh::build_geometry: cannot operate on domainIJK" << endl;
-+  throw;
-+
-+}
-+template <class TabType>
-+void build_field_(OperatorFacesMesh & op,
-+                  const DomainIJK & src_domain,
-+                  const DomainIJK & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  Journal(verb_level) << "OperatorFacesMesh field(ijk) " << src.id_.uname_ << endl;
-+  Journal() << "Error in OperatorFacesMesh::build_geometry: cannot operate on domainIJK" << endl;
-+  throw;
-+} 
-+
-+
-+
-+void OperatorFacesMesh::build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest)
-+{
-+  apply_geometry(*this, src_domain, dest);
-+}
-+
-+void OperatorFacesMesh::build_field(const Domain & src_domain, const LataField_base & src_field,
-+                                   const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  if (src_field.localisation_ != LataField_base::FACES) {
-+    Journal() << "Error in OperatorFacesMesh::build_field: source field is not located at faces" << endl;
-+    throw;
-+  }
-+  apply_field(*this, src_domain, src_field, dest_domain, dest);
-+}
-+#undef level
-diff --git a/databases/readers/Lata/OperatorReconnect.C b/databases/readers/Lata/OperatorReconnect.C
-new file mode 100644
-index 0000000..4cabccc
---- /dev/null
-+++ b/databases/readers/Lata/OperatorReconnect.C
-@@ -0,0 +1,125 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Operator.h>
-+#include <Octree_Double.h>
-+
-+#define verb_level 4
-+
-+// Description: Find duplicate coordinates in the "coord" array.
-+//  nodes_renumber will have dimension src_coord.dimension(0)
-+//  nodes_renumber[i] = i if the node imust be conserved,
-+//  nodes_renumber[i] = j if the node i is identical to node j. We always have j<i
-+//  eps = tolerance in each direction to consider that two nodes are identical
-+//  nb_nodes_untouched : do not search duplicate nodes in the "nb_nodes_untouched"
-+//   first nodes. The remaining nodes are still compared to all nodes.
-+void Reconnect::search_duplicate_nodes(const FloatTab & src_coord,
-+                                       ArrOfInt & nodes_renumber,
-+                                       double eps,
-+                                       entier nb_nodes_untouched)
-+{
-+  // Create a temporary DoubleTab (coords are normally float)
-+  const entier nb_nodes = src_coord.dimension(0);
-+  const entier dim = src_coord.dimension(1);
-+  entier i;
-+  // Build an octree with all coordinates
-+  Journal(verb_level+1) << " Building octree" << endl;
-+  DoubleTab coords;
-+  coords.resize(nb_nodes, dim);
-+  for (i = 0; i < nb_nodes; i++) 
-+    for (entier j = 0; j < dim; j++)
-+      coords(i,j) = src_coord(i,j);
-+  Octree_Double octree;
-+  octree.build_nodes(coords, 0 /* no virtual nodes */);
-+  
-+  Journal(verb_level+1) << " Searching duplicate nodes" << endl;
-+  nodes_renumber.resize_array(nb_nodes);
-+  for (i = 0; i < nb_nodes; i++)
-+    nodes_renumber[i] = i;
-+  // For each node, are there several nodes within epsilon ?
-+  ArrOfInt node_list;
-+  node_list.set_smart_resize(1);
-+  entier count = 0; // Number of nodes renumbered
-+  for (i = 0; i < nb_nodes; i++) {
-+    if (nodes_renumber[i] != i)
-+      continue; // node already suppressed
-+
-+    const double x = coords(i, 0);
-+    const double y = (dim>1) ? coords(i, 1) : 0.;
-+    const double z = (dim>2) ? coords(i, 2) : 0.;
-+    octree.search_elements_box(x-eps, y-eps, z-eps,
-+                               x+eps, y+eps, z+eps,
-+                               node_list);
-+    Octree_Double::search_nodes_close_to(x, y, z,
-+                                         coords, node_list,
-+                                         eps);
-+    const entier n = node_list.size_array();
-+    if (n > 1) {
-+      for (entier j = 0; j < n; j++) {
-+        // Change only nodes with rank > i
-+        const entier node = node_list[j];
-+        if (node > j) {
-+          nodes_renumber[node] = i;
-+          count++;
-+        }
-+      }
-+    }
-+  }
-+  Journal(verb_level+1) << " " << count << " duplicate nodes will be removed" << endl;
-+}
-+
-+void Reconnect::apply_renumbering(const ArrOfInt & nodes_renumber, ArrOfInt & data)
-+{
-+  entier ntot = data.size_array();
-+  entier i;
-+  for (i = 0; i < ntot; i++) {
-+    const entier node = data[i];
-+    const entier n = nodes_renumber[node];
-+    if (n != node)
-+      data[i] = n;
-+  }  
-+}
-+
-+// Description: updates the elements_ and faces_ arrays of the domain so that
-+//  all nodes having the same coordinates are replaced by one unique node
-+//  in these arrays. See search_duplicate_nodes for nb_nodes_untouched description.
-+void Reconnect::reconnect_geometry(DomainUnstructured & geom, double tolerance, entier nb_nodes_untouched)
-+{
-+  Journal(verb_level) << "Reconnect domain " << geom.id_.name_ << endl;
-+
-+  ArrOfInt nodes_renumber;
-+  search_duplicate_nodes(geom.nodes_, nodes_renumber, tolerance, nb_nodes_untouched);
-+
-+  apply_renumbering(nodes_renumber, geom.elements_);
-+  
-+  if (geom.faces_ok()) 
-+    apply_renumbering(nodes_renumber, geom.faces_);
-+}
-+
-+#undef verb_level
-diff --git a/databases/readers/Lata/OperatorRegularize.C b/databases/readers/Lata/OperatorRegularize.C
-new file mode 100644
-index 0000000..5bbde88
---- /dev/null
-+++ b/databases/readers/Lata/OperatorRegularize.C
-@@ -0,0 +1,296 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataFilter.h>
-+#include <Operator.h>
-+
-+#define verb_level 4
-+
-+template<class T, class Tab> int search_in_ordered_vect(T x, const Tab & v, const T epsilon) {
-+  if (!v.size_array())
-+    return -1;
-+  int i1=0;
-+  int i;
-+  int i2 = (int)v.size_array()-1;
-+  while (i1 != i2) {
-+    i = (i1+i2)/2;
-+    if (epsilon+ v[i] < x)
-+      i1=i+1;
-+    else
-+      i2=i;
-+  }
-+  if (v[i1] == x)
-+    return i1;
-+  if (((v[i1] - x) * (v[i1] - x))<= (epsilon*epsilon) )
-+    return i1;
-+
-+  return -1;
-+}
-+
-+template<class T, class Tab>
-+static void retirer_doublons(Tab & tab, const T epsilon)
-+{
-+  int i = 0;
-+  int j;
-+  const int n = tab.size_array();
-+  T last_tab_i = -1e40;
-+  for (j = 0; j < n; j++) {
-+    const T x = tab[j];
-+    assert(x >= last_tab_i); // Array must be sorted
-+    if (x - last_tab_i > epsilon) {
-+      tab[i] = x;
-+      last_tab_i = x;
-+      i++;
-+    }
-+  }
-+  tab.resize_array(i);
-+}
-+
-+void build_geometry_(OperatorRegularize & op,
-+                     const DomainUnstructured & src, LataDeriv<Domain> & dest_domain)
-+{
-+  Journal(verb_level) << "OperatorRegularize domain " << src.id_.name_ << endl;
-+  if (src.elt_type_ != Domain::quadri && src.elt_type_ != Domain::hexa) {
-+    Journal() << "Error in OperatorRegularize::build_geometry: cannot operate on unstructured mesh with this element type" << endl;
-+    throw;
-+  }
-+
-+  DomainIJK & dest = dest_domain.instancie(DomainIJK);
-+  dest.elt_type_ = src.elt_type_;
-+  const entier nsom = src.nodes_.dimension(0);
-+  const entier dim = src.nodes_.dimension(1);
-+  ArrOfInt nb_som_dir(dim);
-+  {
-+    double product_n = 1.;
-+    for (entier i_dim = 0; i_dim < dim; i_dim++) {
-+      ArrOfFloat & coord = dest.coord_.add(ArrOfFloat());
-+      coord.resize_array(nsom);
-+      entier i;
-+      for (i = 0; i < nsom; i++)
-+        coord[i] = src.nodes_(i, i_dim);
-+      coord.ordonne_array();
-+      retirer_doublons(coord, op.tolerance_);
-+      product_n *= coord.size_array();
-+      // Add extended domain layer:
-+      if (coord.size_array() > 1) {
-+        const entier n = coord.size_array();
-+        const entier l = op.extend_layer_;
-+        coord.resize_array(n + l * 2);
-+        double x0 = coord[n-1];
-+        double delta = coord[n-2] - x0;
-+        for (i = 1; i <= l; i++)
-+          coord[n + l + i] = x0 + delta * i;
-+        for (i = l-1; i >= 0; i--)
-+          coord[i + l] = coord[i];
-+        x0 = coord[l];
-+        delta = coord[l+1] - x0;
-+        for (i = 1; i <= l; i++)
-+          coord[l - i] = x0 - delta * i;
-+      }
-+      nb_som_dir[i_dim] = coord.size_array();
-+    }
-+    // Verifying that unique has deleted many points...
-+    // If well organised, nsom=nx*ny*nz
-+    // If chaos, nsom=(nx+ny+nz)/3
-+    // We want to verify that we are nearer to organisation than to chaos !
-+    if (product_n > (double) nsom * (double) nsom - 1.) {
-+      Journal() << "Positions do not seam regular !" << endl;
-+      throw;
-+    }
-+  }
-+  int i;
-+  op.renum_nodes_.resize_array(nsom);
-+  int nb_som_ijk = 1;
-+  for (i = 0; i < dim; i++) 
-+    nb_som_ijk *= nb_som_dir[i];
-+  IntTab ijk_indexes;
-+  ijk_indexes.resize(nsom, dim);
-+  for (i = 0; i < nsom; i++) {
-+    entier ijk_index = 0;
-+    for (int j = dim-1; j >= 0; j--) {
-+      const double x = src.nodes_(i,j);
-+      int index = search_in_ordered_vect(x, dest.coord_[j],op.tolerance_);
-+      if (index < 0) {
-+        Journal() << "Error: coordinate (" << i << "," << j << ") = " << x << " not found in regularize" << endl
-+                  << "Try reducing regularize tolerance value (option regularize=epsilon)" << endl;
-+        throw;
-+      }
-+      ijk_indexes(i, j) = index;
-+      ijk_index += index;
-+      if (j)
-+        ijk_index *= nb_som_dir[j-1];
-+    }
-+    op.renum_nodes_[i] = ijk_index;
-+  }
-+  const int max_index = max_array(nb_som_dir);
-+  int nb_elems_ijk = 1;
-+  for (i = 0; i < dim; i++)
-+    nb_elems_ijk *= nb_som_dir[i] - 1;
-+  dest.invalid_connections_.resize_array(nb_elems_ijk);
-+  dest.invalid_connections_ = 1; // Everything invalid by default
-+  const int nelem = src.elements_.dimension(0);
-+  const int nb_som_elem = src.elements_.dimension(1);
-+  op.renum_elements_.resize_array(nelem);
-+  // Pour chaque element, indice dans le maillage ijk du plus sommet le plus proche de l'origine
-+  // (pour les faces...)
-+  ArrOfInt idx_elem_som;
-+  idx_elem_som.resize_array(nelem);
-+  int min_index[3];
-+  for (i = 0; i < nelem; i++) {
-+    min_index[0] = min_index[1] = min_index[2] = max_index;
-+    for (int j = 0; j < nb_som_elem; j++) {
-+      int node = src.elements_(i,j);
-+      for (int k = 0; k < loop_max(dim, 3); k++) {
-+        int idx = ijk_indexes(node, k);
-+        min_index[k] = (idx < min_index[k]) ? idx : min_index[k];
-+        break_loop(k,dim);
-+      }
-+    }
-+    entier idx = 0;
-+    entier idx_som = 0;
-+    if (dim == 1) {
-+      idx = min_index[0];
-+      idx_som = idx;
-+    } else if (dim == 2) {
-+      idx = min_index[1] * (nb_som_dir[0]-1) + min_index[0];
-+      idx_som = min_index[1] * nb_som_dir[0] + min_index[0];
-+    } else if (dim == 3) {
-+      idx = (min_index[2] * (nb_som_dir[1]-1) + min_index[1]) * (nb_som_dir[0]-1) + min_index[0];
-+      idx_som = (min_index[2] * nb_som_dir[1] + min_index[1]) * nb_som_dir[0] + min_index[0];
-+    } else
-+      throw;
-+    op.renum_elements_[i] = idx;
-+    dest.invalid_connections_.clearbit(idx);
-+    idx_elem_som[i] = idx_som;
-+  }
-+  
-+  if (src.faces_ok()) {
-+    const int nfaces = src.faces_.dimension(0);
-+    op.renum_faces_.resize_array(nfaces);
-+    op.renum_faces_ = -1;
-+    const int nb_elem_face = src.elem_faces_.dimension(1);
-+    ArrOfInt delta_dir(dim);
-+    delta_dir[0] = 1;
-+    for (i = 1; i < dim; i++)
-+      delta_dir[i] = delta_dir[i-1] * nb_som_dir[i-1];
-+    for (i = 0; i < nelem; i++) {
-+      // Les faces haut, gauche et arriere du cube a l'origine portent le numero 0
-+      // Voir DomaineIJK pour la convention sur la numerotation des faces
-+      for (entier j = 0; j < nb_elem_face; j++) {
-+        const entier i_face = src.elem_faces_(i, j);
-+        entier dir = j % dim;
-+        entier index = idx_elem_som[i];
-+        if (j>=dim) 
-+          index += delta_dir[dir];
-+        // Encodage du numero de la face et de la direction
-+        index = (index << 2) + dir;
-+        if (op.renum_faces_[i_face] < 0) {
-+          op.renum_faces_[i_face] = index;
-+        } else if (op.renum_faces_[i_face] != index) {
-+          Journal() << "Error in OperatorRegularize: faces renumbering failed" << endl;
-+          throw;
-+        }
-+      }
-+    }
-+  }
-+  op.geom_init_ = 1;
-+}
-+
-+template <class TabType>
-+void build_field_(OperatorRegularize & op,
-+                  const DomainUnstructured & src_domain,
-+                  const DomainIJK          & dest_domain,
-+                  const Field<TabType> & src,
-+                  Field<TabType> & dest)
-+{
-+  Journal(verb_level) << "OperatorRegularize field " << src.id_.uname_ << endl;
-+  if (!op.geom_init_) {
-+    // Must fill the renum_.... arrays first !
-+    LataDeriv<Domain> destr;
-+    op.build_geometry(src_domain, destr);
-+  }
-+  dest.component_names_ = src.component_names_;
-+  dest.localisation_ = src.localisation_;
-+  dest.nature_ = src.nature_;
-+  const entier sz = src.data_.dimension(0);
-+  const entier nb_compo = src.data_.dimension(1);
-+  entier i;
-+  switch(src.localisation_) {
-+  case LataField_base::ELEM:
-+    dest.data_.resize(dest_domain.nb_elements(), nb_compo);
-+    for (i = 0; i < sz; i++) {
-+      const entier new_i = op.renum_elements_[i];
-+      for (entier j = 0; j < nb_compo; j++)
-+        dest.data_(new_i, j) = src.data_(i, j);
-+    }
-+    break;
-+  case LataField_base::SOM:
-+    dest.data_.resize(dest_domain.nb_nodes(), nb_compo);
-+    for (i = 0; i < sz; i++) {
-+      const entier new_i = op.renum_nodes_[i];
-+      for (entier j = 0; j < nb_compo; j++)
-+        dest.data_(new_i, j) = src.data_(i, j);
-+    }
-+    break;
-+  case LataField_base::FACES:
-+    {
-+      if (nb_compo != 1) {
-+        Journal() << "Error in OperatorRegularize: field at faces has nb_compo != 1" << endl;
-+        throw;
-+      }
-+      dest.nature_ = LataDBField::VECTOR;
-+      const entier nb_dim = dest_domain.dimension();
-+      dest.data_.resize(dest_domain.nb_faces(), nb_dim);
-+      // Field is interpreted as normal component to the face
-+      for (i = 0; i < sz; i++) {
-+        const entier code = op.renum_faces_[i];
-+        // decodage numero et direction de la face:
-+        const entier new_i = code >> 2;
-+        const entier direction = (code & 3);
-+        dest.data_(new_i, direction) = src.data_(i, 0);
-+      }
-+    }
-+    break;
-+  default:
-+    Journal() << "Error in OperatorRegularize::build_field_: unknown localisation" << endl;
-+    throw;
-+  }
-+}
-+
-+void OperatorRegularize::build_geometry(const Domain & src_domain, LataDeriv<Domain> & dest)
-+{
-+  apply_geometry(*this, src_domain, dest);
-+}
-+
-+void OperatorRegularize::build_field(const Domain & src_domain, const LataField_base & src_field,
-+                                     const Domain & dest_domain, LataDeriv<LataField_base> & dest)
-+{
-+  apply_field(*this, src_domain, src_field, dest_domain, dest);
-+}
-+#undef verb_level
-diff --git a/databases/readers/Lata/Rebuild_virtual_layer.C b/databases/readers/Lata/Rebuild_virtual_layer.C
-new file mode 100644
-index 0000000..ac29742
---- /dev/null
-+++ b/databases/readers/Lata/Rebuild_virtual_layer.C
-@@ -0,0 +1,141 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <LataFilter.h>
-+#include <Connectivite_som_elem.h>
-+#include <Operator.h>
-+#include <Static_Int_Lists.h>
-+#include <Rebuild_virtual_layer.h>
-+void find_virtual_layer(DomainUnstructured & domain,
-+                        IntTab & virtual_elements,
-+                        IntTab & joints_virtual_elements,
-+                        double tolerance)
-+{
-+  Journal(4) << "Searching virtual elements for domain " << domain.id_.name_ << endl;
-+  // Step 1 : find duplicate nodes
-+  ArrOfInt nodes_renumber;
-+  Reconnect::search_duplicate_nodes(domain.nodes_,
-+                                    nodes_renumber,
-+                                    tolerance,
-+                                    0);
-+ 
-+  // Build reconnected elements
-+  Reconnect::apply_renumbering(nodes_renumber, domain.elements_);
-+  
-+  Static_Int_Lists som_elem;
-+  construire_connectivite_som_elem(domain.nb_nodes(),
-+                                   domain.elements_,
-+                                   som_elem,
-+                                   0 /* include virtual */);
-+
-+  virtual_elements.resize(0, 1);
-+  virtual_elements.set_smart_resize(1);
-+
-+  // Step 2 : for each sub_zone, add to virtual_elements list all elements 
-+  // touching the zone and not included in the zone
-+  const IntTab & joints_sommets = domain.get_joints(LataField_base::SOM);
-+  const IntTab & joints_elements = domain.get_joints(LataField_base::ELEM);
-+  const entier nprocs = joints_sommets.dimension(0);
-+  joints_virtual_elements.resize(nprocs, 2);
-+  ArrOfInt tmp;
-+  tmp.set_smart_resize(1);
-+  for (entier i_proc = 0; i_proc < nprocs; i_proc++) {
-+    entier first_elem_zone = joints_elements(i_proc, 0);
-+    entier end_elems_zone = first_elem_zone + joints_elements(i_proc, 1);
-+    entier first_node_zone = joints_sommets(i_proc, 0);
-+    entier end_nodes_zone = first_node_zone + joints_sommets(i_proc, 1);
-+    const entier first_virtual_element = virtual_elements.dimension(0);
-+    tmp.resize_array(0);
-+    for (entier i_node = first_node_zone; i_node < end_nodes_zone; i_node++) {
-+      const entier renum_node = nodes_renumber[i_node];
-+      const entier nb_elems_voisins = som_elem.get_list_size(renum_node);
-+      for (entier i = 0; i < nb_elems_voisins; i++) {
-+        const entier elem = som_elem(renum_node, i);
-+        if (elem < first_elem_zone || elem >= end_elems_zone)
-+          tmp.append_array(elem);
-+      }
-+    }
-+    // Retirer les doublons
-+    tmp.ordonne_array();
-+    const entier n = tmp.size_array();
-+    entier last = -1;
-+    for (entier i = 0; i < n; i++) {
-+      const entier elem = tmp[i];
-+      if (elem != last) {
-+        const entier idx = virtual_elements.dimension(0);
-+        virtual_elements.resize(idx+1, 1);
-+        virtual_elements(idx, 0) = elem;
-+        last = elem;
-+      }
-+    }
-+    joints_virtual_elements(i_proc, 0) = first_virtual_element;
-+    joints_virtual_elements(i_proc, 1) = virtual_elements.dimension(0) - first_virtual_element;
-+    Journal(5) << "Zone " << i_proc << " has " << joints_virtual_elements(i_proc, 1) << " virtual elements" << endl;
-+  }
-+}
-+
-+entier rebuild_virtual_layer(LataDB & lataDB, Domain_Id id, double reconnect_tolerance)
-+{
-+  Journal(4) << "rebuilt_virtual_layer domain " << id.name_ << " " << id.timestep_ << endl;
-+  if (lataDB.field_exists(id.timestep_, id.name_, "VIRTUAL_ELEMENTS")) {
-+    Journal(4) << " Virtual elements data already exist. Skip" << endl;
-+    return 1;
-+  }
-+  if (!lataDB.field_exists(id.timestep_, id.name_, "JOINTS_ELEMENTS")) {
-+    Journal(4) << " Domain has no processor splitting information. Skip" << endl;
-+    return 0;
-+  }
-+  // Load all domain, without faces:
-+  id.block_ = -1;
-+  DomainUnstructured dom;
-+  dom.fill_domain_from_lataDB(lataDB, id, 0 /* no faces */);
-+  // Compute virtual zones:
-+  IntTab joints_virtual_elements;
-+  IntTab virtual_elements;
-+  find_virtual_layer(dom, virtual_elements, joints_virtual_elements, reconnect_tolerance);
-+  // Write data to disk
-+  const LataDBField & joints = lataDB.get_field(id.timestep_, id.name_, "JOINTS_ELEMENTS", "*");
-+  LataDBField fld(joints);
-+  // Append virtual_elements data to JOINTS_ELEMENTS, same format, etc
-+  fld.name_ = "JOINTS_VIRTUAL_ELEMENTS";
-+  fld.uname_ = Field_UName(fld.geometry_, fld.name_, "");
-+  fld.nb_comp_ = 2;
-+  fld.datatype_.file_offset_ = 0;
-+  fld.filename_ += ".ghostdata";
-+  lataDB.add_field(fld);
-+  lataDB.write_data(id.timestep_, fld.uname_, joints_virtual_elements);
-+  fld.name_ = "VIRTUAL_ELEMENTS";
-+  fld.uname_ = Field_UName(fld.geometry_, fld.name_, "");
-+  fld.nb_comp_ = 1;
-+  fld.datatype_.file_offset_ = 1; // append
-+  fld.size_ = virtual_elements.dimension(0);
-+  lataDB.add_field(fld);
-+  lataDB.write_data(id.timestep_, fld.uname_, virtual_elements);
-+  return 1;
-+}
-diff --git a/databases/readers/Lata/Rebuild_virtual_layer.h b/databases/readers/Lata/Rebuild_virtual_layer.h
-new file mode 100644
-index 0000000..f2666dd
---- /dev/null
-+++ b/databases/readers/Lata/Rebuild_virtual_layer.h
-@@ -0,0 +1,35 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+void find_virtual_layer(DomainUnstructured & domain,
-+                        IntTab & virtual_elements,
-+                        IntTab & joints_virtual_elements,
-+                        double tolerance);
-+
-+entier rebuild_virtual_layer(LataDB & lataDB, Domain_Id id, double reconnect_tolerance);
-diff --git a/databases/readers/Lata/Sortie.h b/databases/readers/Lata/Sortie.h
-new file mode 100644
-index 0000000..69c967e
---- /dev/null
-+++ b/databases/readers/Lata/Sortie.h
-@@ -0,0 +1,44 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Sortie_h_inclu
-+#define Sortie_h_inclu
-+#include <ostream>
-+//using namespace std;
-+using std::cerr;
-+using std::endl;
-+#define Sortie std::ostream
-+class ArrOfInt;
-+// for Static_Int_Lists
-+inline Sortie& operator<<(Sortie& is, const ArrOfInt& t)
-+{
-+  throw;
-+  return is;
-+}
-+#endif
-diff --git a/databases/readers/Lata/Static_Int_Lists.C b/databases/readers/Lata/Static_Int_Lists.C
-new file mode 100644
-index 0000000..4c3f065
---- /dev/null
-+++ b/databases/readers/Lata/Static_Int_Lists.C
-@@ -0,0 +1,128 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <Static_Int_Lists.h>
-+// Description: detruit toutes les listes
-+void Static_Int_Lists::reset()
-+{
-+  index_.resize_array(0);
-+  valeurs_.resize_array(0);
-+}
-+
-+// Description: detruit les listes existantes et en cree de nouvelles.
-+//  On cree autant de listes que d'elements dans le tableau sizes.
-+//  La i-ieme liste a une taille sizes[i]
-+//  Les valeurs sizes doivent etre positives ou nulles.
-+void Static_Int_Lists::set_list_sizes(const ArrOfInt& sizes)
-+{
-+  reset();
-+
-+  const entier nb_listes = sizes.size_array();
-+  index_.resize_array(nb_listes + 1);
-+  // Construction du tableau d'index
-+  index_[0];
-+  entier i;
-+  for (i = 0; i < nb_listes; i++)
-+    {
-+      assert(sizes[i] >= 0);
-+      index_[i+1] = index_[i] + sizes[i];
-+    }
-+  const entier somme_sizes = index_[nb_listes];
-+  valeurs_.resize_array(somme_sizes);
-+}
-+
-+// Description: tri par ordre croissant des valeurs de la i-ieme liste.
-+//  Si num_liste < 0, on trie toutes les listes.
-+void Static_Int_Lists::trier_liste(entier num_liste)
-+{
-+  const entier i_debut = (num_liste < 0) ? 0 : num_liste;
-+  const entier i_fin   = (num_liste < 0) ? index_.size_array() - 1 : num_liste + 1;
-+
-+  entier i;
-+  ArrOfInt valeurs_liste;
-+  for (i = i_debut; i < i_fin; i++)
-+    {
-+      const entier index = index_[i];
-+      const entier size  = index_[i+1] - index;
-+      entier * data      = valeurs_.addr() + index;
-+      valeurs_liste.ref_data(data, size);
-+      valeurs_liste.ordonne_array();
-+    }
-+}
-+
-+// Description: copie la i-ieme liste dans le tableau fourni
-+//  Le tableau array doit etre resizable.
-+void Static_Int_Lists::copy_list_to_array(entier i, ArrOfInt& array) const
-+{
-+  const entier n = get_list_size(i);
-+  array.resize_array(0); // Ne pas copier les donnees d'origine
-+  array.resize_array(n);
-+  entier index = index_[i];
-+  entier j = 0;
-+  for (j = 0; j < n; index++, j++)
-+    array[j] = valeurs_[index];
-+}
-+
-+Sortie& Static_Int_Lists::printOn(Sortie& os) const
-+{
-+  os << index_   << " ";
-+  os << valeurs_ << " ";
-+  return os;
-+}
-+
-+Entree& Static_Int_Lists::readOn(Entree& is)
-+{
-+  reset();
-+  is >> index_;
-+  is >> valeurs_;
-+  return is;
-+}
-+
-+Sortie& Static_Int_Lists::ecrire(Sortie& os) const
-+{
-+  os << "nb lists       : " << get_nb_lists() << finl;
-+  os << "sizes of lists : ";
-+  for (entier i=0; i<get_nb_lists(); ++i)
-+    {
-+      os << get_list_size(i) << " ";
-+    }
-+  os << finl;
-+
-+  for (entier i=0; i<get_nb_lists(); ++i)
-+    {
-+      os << "{ " ;
-+      const entier sz = get_list_size(i);
-+      for (entier j=0; j<sz; ++j)
-+        {
-+          os <<  valeurs_[(index_[i]+j)] << " ";
-+        }
-+      os << "}" << finl;
-+    }
-+  return os;
-+}
-diff --git a/databases/readers/Lata/Static_Int_Lists.h b/databases/readers/Lata/Static_Int_Lists.h
-new file mode 100644
-index 0000000..3f28783
---- /dev/null
-+++ b/databases/readers/Lata/Static_Int_Lists.h
-@@ -0,0 +1,110 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Static_Int_Lists_def
-+#define Static_Int_Lists_def
-+
-+#include <ArrOfInt.h>
-+
-+// .DESCRIPTION
-+//  Cette classe permet de stocker des listes d'entiers accessibles
-+//  en temps constant. La taille des listes ne peut pas changer sans
-+//  perdre le contenu (ce sont des listes statiques).
-+//  Exemple:
-+//   Static_Int_List l;
-+//   ArrOfInt tailles(3);
-+//   tailles[0] = 2; tailles[1] = 3; tailles[2] = 0;
-+//   // On reserve la memoire pour trois listes de taille 2, 3 et 0:
-+//   l.set_list_sizes(tailles);
-+//   // On affecte une valeur au deuxieme element de la premiere liste:
-+//   l.set_value(0,1,765);
-+//   // Affiche la valeur
-+//   cout << l(0,1);
-+class Static_Int_Lists
-+{
-+public:
-+  void set_list_sizes(const ArrOfInt& sizes);
-+  void reset();
-+  void copy_list_to_array(entier i_liste, ArrOfInt& array) const;
-+
-+  inline void   set_value(entier i_liste, entier i_element, entier valeur);
-+  inline entier operator() (entier i_liste, entier i_element) const;
-+  inline entier get_list_size(entier i_liste) const;
-+  inline entier get_nb_lists() const;
-+
-+  void trier_liste(entier i);
-+
-+  Sortie& printOn(Sortie& os) const;
-+  Entree& readOn(Entree& is);
-+
-+  Sortie& ecrire(Sortie& os) const;
-+
-+private:
-+  // Les listes d'entiers sont stockees de facon contigue
-+  // dans le tableau valeurs_.
-+  // Le premier element de la liste i est valeurs_[index_[i]]
-+  // et le dernier element est valeurs_[index_[i+1]-1]
-+  // (c'est comme le stockage morse des matrices).
-+  ArrOfInt index_;
-+  ArrOfInt valeurs_;
-+};
-+
-+// Description: affecte la "valeur" au j-ieme element de la i-ieme liste avec
-+//  0 <= i < get_nb_lists()  et  0 <= j < get_list_size(i)
-+inline void Static_Int_Lists::set_value(entier i, entier j, entier valeur)
-+{
-+  const entier index = index_[i] + j;
-+  assert(index < index_[i+1]);
-+  valeurs_[index] = valeur;
-+}
-+
-+// Description: renvoie le j-ieme element de la i-ieme liste avec
-+//  0 <= i < get_nb_lists()  et  0 <= j < get_list_size(i)
-+inline entier Static_Int_Lists::operator() (entier i, entier j) const
-+{
-+  const entier index = index_[i] + j;
-+  assert(index < index_[i+1]);
-+  const entier val = valeurs_[index];
-+  return val;
-+}
-+
-+// Description: renvoie le nombre d'elements de la liste i
-+inline entier Static_Int_Lists::get_list_size(entier i) const
-+{
-+  const entier size = index_[i+1] - index_[i];
-+  return size;
-+}
-+
-+// Description: renvoie le nombre de listes stockees
-+inline entier Static_Int_Lists::get_nb_lists() const
-+{
-+  return index_.size_array() - 1;
-+}
-+
-+#endif
-diff --git a/databases/readers/Lata/UserFields.C b/databases/readers/Lata/UserFields.C
-new file mode 100644
-index 0000000..575c231
---- /dev/null
-+++ b/databases/readers/Lata/UserFields.C
-@@ -0,0 +1,1038 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#include <UserFields.h>
-+#include <LataFilter.h>
-+#include <stdlib.h>
-+// ********************************************************************************
-+// METHODES OUTILS DE GESTION
-+//  (normalement, on n'a pas besoin de les modifier mais on peut en ajouter...)
-+// ********************************************************************************
-+
-+// Implementation de la classe Geometry_handle
-+// (utiliser cette classe pour eviter d'avoir a faire des dynamic_cast
-+//  compliques et pour ne pas avoir a gerer get_geometry et release_geometry a la main)
-+// Exemple d'utilisation: voir interpoler_elem_vers_som()
-+Geometry_handle::Geometry_handle()
-+{
-+}
-+void Geometry_handle::set(LataFilter & lata_filter, const Domain_Id & id)
-+{
-+  lata_filter_ = lata_filter;
-+  geom_ = lata_filter.get_geometry(id);
-+}
-+Geometry_handle::Geometry_handle(Geometry_handle & handle)
-+{
-+  operator=(handle);
-+}
-+Geometry_handle & Geometry_handle::operator=(Geometry_handle & handle)
-+{
-+  reset();
-+  lata_filter_ = handle.lata_filter_;
-+  // Get another reference from the lata filter (to increment ref counter in the cache)
-+  geom_ = lata_filter_.valeur().get_geometry(handle.geom_.valeur().id_);
-+  return *this;
-+}
-+Geometry_handle::~Geometry_handle()
-+{
-+  reset();
-+}
-+void Geometry_handle::reset()
-+{
-+  if (geom_.non_nul())
-+    lata_filter_.valeur().release_geometry(geom_.valeur());
-+  geom_.reset();
-+  lata_filter_.reset();
-+}
-+const DomainUnstructured & Geometry_handle::geom()
-+{
-+  if (!geom_.non_nul()) {
-+    Journal() << "Internal error in Geometry_handle::geom() : nul pointer" << endl;
-+    throw;
-+  }
-+  const DomainUnstructured* ptr = dynamic_cast<const DomainUnstructured *>(&geom_.valeur());
-+  if (!ptr) {
-+    Journal() << "Error in Geometry_handle::geom() : domain " 
-+              << geom_.valeur().id_.name_ << " is not unstructured" << endl;
-+    throw;
-+  }
-+  return *ptr;
-+}
-+const DomainIJK & Geometry_handle::geom_ijk()
-+{
-+  if (!geom_.non_nul()) {
-+    Journal() << "Internal error in Geometry_handle::geom() : nul pointer" << endl;
-+    throw;
-+  }
-+  const DomainIJK* ptr = dynamic_cast<const DomainIJK *>(&geom_.valeur());
-+  if (!ptr) {
-+    Journal() << "Error in Geometry_handle::geom() : domain " 
-+              << geom_.valeur().id_.name_ << " is not IJK" << endl;
-+    throw;
-+  }
-+  return *ptr;
-+}
-+entier Geometry_handle::test_ijk()
-+{
-+  if (!geom_.non_nul()) {
-+    Journal() << "Internal error in Geometry_handle::geom() : nul pointer" << endl;
-+    throw;
-+  }
-+  const DomainIJK* ptr = dynamic_cast<const DomainIJK *>(&geom_.valeur());
-+  if (ptr)
-+    return 1;
-+  else
-+    return 0;
-+}
-+
-+// Petite fonction outil qui construit l'objet LataFieldMetaData en changeant uniquement 
-+//  le nom du champ (dimension, localisation, geometrie, nombre de composantes sont identiques)
-+//  Le champ "source" est rempli avec une reference a source, on pourra donc appeler
-+//  get_champ_source() (voir interpoler_elem_vers_som pour un exemple)
-+// Voir new_fields_metadata() pour un exemple d'utilisation.
-+static LataFieldMetaData declare_new_name(const LataFieldMetaData & source, 
-+                                          const char * name)
-+{
-+  LataFieldMetaData dest = source;
-+  // Lorsqu'on demandera ce champ, on saura que c'est UserFields qui devra le calculer
-+  dest.source_ = "user_fields";
-+  // On change le nom du champ:
-+  dest.name_ = name;
-+  dest.uname_.set_field_name(name);
-+  // On remplit le champ source
-+  dest.source_field_ = source.uname_;
-+  
-+  return dest;
-+}
-+
-+// Fonction identique a declare_new_name, mais pour declarer un champ avec une localisation
-+//  differente.
-+// Voir new_fields_metadata() pour un exemple d'utilisation.
-+static LataFieldMetaData declare_new_name_localisation(const LataFieldMetaData & source, 
-+                                                       const char * name,
-+                                                       LataField_base::Elem_som loc)
-+{
-+  LataFieldMetaData dest = source;
-+  // Lorsqu'on demandera ce champ, on saura que c'est UserFields qui devra le calculer
-+  dest.source_ = "user_fields";
-+  // On change le nom du champ et la localisation:
-+  dest.name_ = name;
-+  dest.uname_ = Field_UName(source.uname_.get_geometry(),
-+                            name,
-+                            LataField_base::localisation_to_string(loc));
-+  // On remplit le champ source
-+  dest.source_field_ = source.uname_;
-+
-+  // En plus: je change la localisation:
-+  dest.localisation_ = loc;
-+
-+  return dest;
-+}
-+
-+// Fonction identique a declare_new_name, mais pour declarer un champ avec une localisation
-+//  differente de type vectoriel.
-+// Voir new_fields_metadata() pour un exemple d'utilisation.
-+static LataFieldMetaData declare_new_vector_field(const LataFieldMetaData & source, 
-+                                                  const char * name,
-+                                                  LataField_base::Elem_som loc,
-+                                                  const entier dim)
-+{
-+  LataFieldMetaData dest = source;
-+  // Lorsqu'on demandera ce champ, on saura que c'est UserFields qui devra le calculer
-+  dest.source_ = "user_fields";
-+  // On change le nom du champ et la localisation:
-+  dest.name_ = name;
-+  dest.uname_ = Field_UName(source.uname_.get_geometry(),
-+                            name,
-+                            LataField_base::localisation_to_string(loc));
-+  // On remplit le champ source
-+  dest.source_field_ = source.uname_;
-+
-+  // En plus: je change la localisation:
-+  dest.localisation_ = loc;
-+
-+  // et le type (vecteur)
-+  dest.component_names_.reset();
-+  dest.nb_components_ = dim;
-+  dest.is_vector_ = 1;
-+
-+  return dest;
-+}
-+
-+// Description: demande a la classe LataFilter le champ source du champ "id"
-+//  qui a ete declare quand on a appele declare_new_name() au debut
-+// Voir filtre_boite() pour un exemple d'utilisation.
-+FieldType UserFields::get_champ_source(const Field_Id & id)
-+{
-+  // Cherche la structure LataFieldMetaData du champ "id":
-+  const LataFieldMetaData & data = lata_filter_.valeur().get_field_metadata(id.uname_);
-+  Field_Id id2(data.source_field_, id.timestep_, id.block_);
-+  FieldType tmp;
-+  const LataField_base & field = lata_filter_.valeur().get_field(id2);
-+  const FieldType* ptr = dynamic_cast<const FieldType *>(&field);
-+  if (!ptr) {
-+    Journal() << "Error in UserFields::get_champ_source : field " << id.uname_ 
-+              << " is not a floattab" << endl;
-+    throw;
-+  }
-+  // Copie le contenu du champ dans un tableau temporaire:
-+  tmp = *ptr;
-+  // Libere le champ d'origine
-+  lata_filter_.valeur().release_field(field);
-+  return tmp;
-+}
-+
-+// Description: demande a la classe LataFilter le champ de nom "nom" et dont
-+//  la geometrie, le pas de temps et la localisation sont celles de "id".
-+FieldType UserFields::get_champ(const Nom & nom, const Field_Id & id)
-+{
-+  FieldType tmp;
-+  // Construit un Field_Id identique, seul le nom du champ chamge:
-+  Field_Id id2(id);
-+  id2.uname_.set_field_name(nom);
-+  const LataField_base & field = lata_filter_.valeur().get_field(id2);
-+  const FieldType* ptr = dynamic_cast<const FieldType *>(&field);
-+  if (!ptr) {
-+    Journal() << "Error in UserFields::get_champ : field " << id.uname_ 
-+              << " is not a floattab" << endl;
-+    throw;
-+  }
-+  // Copie le contenu du champ dans un tableau temporaire:
-+  tmp = *ptr;
-+  // Libere le champ d'origine
-+  lata_filter_.valeur().release_field(field);
-+
-+  return tmp;
-+}
-+
-+// Description: idem, mais cherche un champ avec une localisation differente de id
-+FieldType UserFields::get_champ_loc(const Nom & nom, LataField_base::Elem_som loc, const Field_Id & id)
-+{
-+  FieldType tmp;
-+  // Construit un Field_Id identique, seul le nom du champ chamge:
-+  Field_Id id2(id);
-+  id2.uname_ = Field_UName(id.uname_.get_geometry(), nom, LataField_base::localisation_to_string(loc));
-+  
-+  const LataField_base & field = lata_filter_.valeur().get_field(id2);
-+  const FieldType* ptr = dynamic_cast<const FieldType *>(&field);
-+  if (!ptr) {
-+    Journal() << "Error in UserFields::get_champ : field " << id.uname_ 
-+              << " is not a floattab" << endl;
-+    throw;
-+  }
-+  // Copie le contenu du champ dans un tableau temporaire:
-+  tmp = *ptr;
-+  // Libere le champ d'origine
-+  lata_filter_.valeur().release_field(field);
-+
-+  return tmp;
-+}
-+
-+// Description: renvoie un objet Geometry_handle qui pointe sur le domaine
-+//  support du champ "id".
-+// Voir interpoler_elem_vers_som() pour un exemple d'utilisation
-+void UserFields::get_geometry(const Domain_Id & id, Geometry_handle & h)
-+{
-+  h.set(lata_filter_.valeur(), id);
-+}
-+
-+// ********************************************************************************
-+//  METHODES OUTILS DE CALCUL
-+//  Ces methodes sont des fonctions qui calculent un champ en fonction d'un autre champ.
-+//  On peut les modifier comme on veut, en ajouter, etc... 
-+//  Lachez-vous...
-+// ********************************************************************************
-+
-+// Description:
-+//  Fonction d'interpolation qui transforme un champ aux "elements"
-+//  en un champ aux "sommets".
-+//  Dans cet exemple, on a deux algorithmes selon que le champ est sur
-+//  un maillage ijk ou non.
-+//  La valeur aux sommets est la moyenne des valeurs sur les elements adjacents.
-+FieldType UserFields::interpoler_elem_vers_som(const Field_Id & id)
-+{
-+  // Recupere le champ a filtrer (champ aux elements)
-+  FieldType source = get_champ_source(id);
-+
-+  FieldType resu;
-+  // Remplissage des meta-data du champ:
-+  resu.id_ = id;
-+  resu.component_names_ = source.component_names_;
-+  resu.localisation_ = LataField_base::SOM;
-+  resu.nature_ = source.nature_;
-+  
-+  // Recupere la geometrie (domaine ijk ou non structure) sur laquelle est definie
-+  //  le champ source:
-+  Geometry_handle geom;
-+  get_geometry(id, geom);
-+  ArrOfFloat poids;
-+
-+  if (geom.test_ijk()) {
-+    const DomainIJK & dom = geom.geom_ijk();
-+    // Le code suivant marche en 1D, 2D et 3D:
-+    const entier nbsom = dom.nb_nodes();
-+    const entier nbcompo = source.data_.dimension(1);
-+    resu.data_.resize(nbsom, nbcompo);
-+    const entier nsom_x = dom.nb_som_dir(0);
-+    const entier nsom_y = dom.nb_som_dir(1);
-+    const entier nelem_x = dom.nb_elem_dir(0);
-+    const entier nelem_y = dom.nb_elem_dir(1);
-+    const entier nelem_z = dom.nb_elem_dir(2);
-+    poids.resize_array(nbsom);
-+    const entier ni = 2;
-+    const entier nj = (dom.dimension() > 1) ? 2 : 1;
-+    const entier nk = (dom.dimension() > 2) ? 2 : 1;
-+
-+    // Avec les boucles imbriquees comme ceci, on parcourt tous les
-+    //  elements dans l'ordre croissant:
-+    // (l'indice de l'element (i,j,k) est :
-+    //    elem = (k * nelem_y + j) * nelem_x + i
-+    entier elem = 0;
-+    for (entier k = 0; k < nelem_z; k++) {
-+      for (entier j = 0; j < nelem_y; j++) {
-+        for (entier i = 0; i < nelem_x; i++) {
-+          if (dom.invalid_connections_.size_array() == 0 || dom.invalid_connections_[elem] == 0) {
-+            // Element valide:
-+            // Boucle sur les sommets de l'element
-+            const entier som0 = (k * nsom_y + j) * nsom_x + i;
-+            for (entier kk = 0; kk < nk; kk++) {
-+              for (entier jj = 0; jj < nj; jj++) {
-+                for (entier ii = 0; ii < ni; ii++) {
-+                  entier som = som0 + (kk * nsom_y + jj) * nsom_x + ii;
-+                  for (entier compo = 0; compo < nbcompo; compo++)
-+                    resu.data_(som, compo) += source.data_(elem, compo);
-+                  poids[som] += 1.;
-+                }
-+              }
-+            }
-+          }
-+          elem++;
-+        }
-+      }
-+    }
-+  } else {
-+    const DomainUnstructured & dom = geom.geom();
-+
-+    const entier nbsom = dom.nb_nodes();
-+    const entier nbcompo = source.data_.dimension(1);
-+    resu.data_.resize(nbsom, nbcompo);
-+    poids.resize_array(nbsom);
-+    const IntTab & les_elem = dom.elements_;
-+    const entier n = les_elem.dimension(0);
-+    const entier m = les_elem.dimension(1);
-+    int i, j, k;
-+    for ( i = 0; i < n; i++) {
-+      for (j = 0; j < m; j++) {
-+        entier som = les_elem(i,j);
-+        for (k = 0; k < nbcompo; k++) {
-+          float x = source.data_(i, k);
-+          resu.data_(som, k) += x;
-+        }
-+        poids[som] += 1.;
-+      }
-+    }
-+  }
-+  const entier nbsom = poids.size_array();
-+  const entier nbcompo = resu.data_.dimension(1);
-+  for (entier i = 0; i < nbsom; i++)
-+    for (entier k = 0; k < nbcompo; k++)
-+      resu.data_(i, k) /= poids[i];
-+
-+  return resu;
-+}
-+
-+
-+
-+
-+
-+//  Attention: le constructeur par defaut n'initialise pas le vecteur !
-+class Vecteur3
-+{
-+public:
-+  Vecteur3() {};
-+  Vecteur3(const Vecteur3 & w) {
-+    v[0] = w.v[0]; v[1] = w.v[1]; v[2] = w.v[2];
-+  }
-+  Vecteur3(double x, double y, double z) {
-+    v[0] = x; v[1] = y; v[2] = z;
-+  }
-+  void  set(double x, double y, double z) {
-+    v[0] = x; v[1] = y; v[2] = z;
-+  }
-+  double length() const { return sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]); };
-+  Vecteur3(const DoubleTab & tab, entier i) {
-+    //assert(tab.line_size() == 3);
-+    assert(i >= 0 && i < tab.dimension_tot(0));
-+    const double *ptr = tab.addr() + i * 3;
-+    v[0] = ptr[0];
-+    v[1] = ptr[1];
-+    v[2] = ptr[2];
-+  }
-+  Vecteur3 & operator=(double x) {
-+    v[0] = x; v[1] = x; v[2] = x;
-+    return *this;
-+  }
-+  Vecteur3 & operator*=(double x) {
-+    v[0] *= x; v[1] *= x; v[2] *= x;
-+    return *this;
-+  }
-+
-+  Vecteur3 & operator=(const Vecteur3 & w) {
-+    v[0] = w.v[0]; v[1] = w.v[1]; v[2] = w.v[2];
-+    return *this;
-+  }
-+  double               operator[](entier i) const { assert(i>=0 && i<3); return v[i]; }
-+  double &             operator[](entier i)       { assert(i>=0 && i<3); return v[i]; }
-+  inline        double norme_Linfini();
-+  static inline void   produit_vectoriel(const Vecteur3 & x, const Vecteur3 & y, Vecteur3 & resu);
-+  static inline double produit_scalaire(const Vecteur3 & x, const Vecteur3 & y);
-+  friend Vecteur3 operator-(const Vecteur3 &, const Vecteur3 &);
-+protected:
-+  double v[3];
-+};
-+
-+
-+inline void Vecteur3::produit_vectoriel(const Vecteur3 & x, const Vecteur3 & y, Vecteur3 & z)
-+{
-+  z.v[0] = x.v[1] * y.v[2] - x.v[2] * y.v[1];
-+  z.v[1] = x.v[2] * y.v[0] - x.v[0] * y.v[2];
-+  z.v[2] = x.v[0] * y.v[1] - x.v[1] * y.v[0];
-+}
-+
-+inline double Vecteur3::produit_scalaire(const Vecteur3 & x, const Vecteur3 & y)
-+{
-+  double r = x.v[0] * y.v[0] + x.v[1] * y.v[1] + x.v[2] * y.v[2];
-+  return r;
-+}
-+
-+// Description: norme L_infini, c'est le max des abs(v[i])
-+inline double Vecteur3::norme_Linfini()
-+{
-+  double x = fabs(v[0]);
-+  double y = fabs(v[1]);
-+  double z = fabs(v[2]);
-+  double resu = ((x > y) ? x : y);
-+  resu = ((resu > z) ? resu : z);
-+  return resu;  
-+}
-+
-+inline Vecteur3 operator-(const Vecteur3 & x, const Vecteur3 & y)
-+{
-+  Vecteur3 z;
-+  z.v[0] = x.v[0] - y.v[0];
-+  z.v[1] = x.v[1] - y.v[1];
-+  z.v[2] = x.v[2] - y.v[2];
-+  return z;
-+}
-+
-+double largest_angle_2(const DoubleTab& coords)
-+        
-+{
-+  if (((coords.dimension(0)!=4)&&(coords.dimension(0)!=3))||(coords.dimension(1)!=3))
-+    {
-+      Cerr<<" cas nn prevu"<<endl; 
-+      throw;
-+    }
-+  int nb_face=coords.dimension(0);
-+  Vecteur3 normals[4];
-+  Vecteur3 edge[2],opp;
-+  edge[1].set(0,0,1);
-+  for (int n=0;n<nb_face;n++)
-+    {
-+     
-+      int prem=0;
-+      if (n==0) prem=1;
-+      int compteur=0;
-+      for (int s=0;s<nb_face;s++)
-+        {
-+
-+          if ((s!=n) && (s!=prem))
-+            {
-+              edge[compteur].set(coords(s,0)-coords(prem,0),
-+                                 coords(s,1)-coords(prem,1),
-+                                 coords(s,2)-coords(prem,2));
-+              compteur++;
-+            }
-+        }
-+      if (compteur!=nb_face-2) throw;
-+      opp.set(coords(n,0)-coords(prem,0),
-+              coords(n,1)-coords(prem,1),
-+              coords(n,2)-coords(prem,2));
-+      Vecteur3::produit_vectoriel(edge[0],edge[1],normals[n]);
-+      //normals[n]=edge[0]*edge[1];
-+      normals[n]*=1./normals[n].length();
-+      if (Vecteur3::produit_scalaire(normals[n],opp)<0)
-+        normals[n]*=-1;
-+    }
-+  // on a les 4 normals orientes vers l'interieur
-+  double max_pscal=-100;
-+  for (int n1=0;n1<nb_face;n1++)
-+    for (int n2=n1+1;n2<nb_face;n2++)
-+      {
-+        double pscal=Vecteur3::produit_scalaire(normals[n1],normals[n2]);
-+        //min_pscal=pscal;
-+        if (pscal>max_pscal)
-+          max_pscal=pscal;
-+      }
-+  double tet=acos(max_pscal)/acos(-1.)*180; // PL: acos(-1) ne compile pas sur de multiples plateformes
-+  
-+  tet=180-tet;
-+  return tet;
-+}
-+
-+
-+
-+FieldType UserFields::calculer_angle(const Field_Id & id)
-+{
-+  // Recupere le champ a filtrer (champ aux elements)
-+  //  FieldType source = get_champ_source(id);
-+  
-+  FieldType resu;
-+  // Remplissage des meta-data du champ:
-+  resu.id_ = id;
-+  const LataFieldMetaData & data = lata_filter_.valeur().get_field_metadata(id.uname_);
-+  resu.component_names_ = data.component_names_;
-+  resu.localisation_ = data.localisation_;
-+  resu.nature_ = LataDBField::SCALAR;
-+  
-+  // Recupere la geometrie (domaine ijk ou non structure) sur laquelle est definie
-+  //  le champ source:
-+  Geometry_handle geom;
-+  get_geometry(id, geom);
-+
-+  if (geom.test_ijk()) {
-+    Journal() <<    "non code" <<endl;
-+    throw;
-+  } else {
-+    const DomainUnstructured & dom = geom.geom();
-+    const entier nbcompo = dom.dimension();
-+    //poids.resize_array(nbsom);
-+    const IntTab & les_elem = dom.elements_;
-+    const entier n = les_elem.dimension(0);
-+ 
-+    resu.data_.resize(n, nbcompo);
-+    
-+    const FloatTab& nodes_=dom.nodes_;
-+    int nb_som_elem=les_elem.dimension(1);
-+    DoubleTab coords(nb_som_elem,3);
-+    for ( int i = 0; i < n; i++) {
-+      for (int s=0;s<nb_som_elem;s++)
-+        for (int d=0;d<nodes_.dimension(1);d++)
-+          coords(s,d)=nodes_(les_elem(i,s),d);
-+      resu.data_(i, 0) = largest_angle_2(coords);
-+        
-+    }
-+  
-+  }
-+  return resu;
-+}
-+
-+FieldType UserFields::calculer_normale(const Field_Id & id)
-+{
-+
-+  // Recupere le champ a filtrer (champ aux elements)
-+  //  FieldType source = get_champ_source(id);
-+
-+  FieldType resu;
-+  // Remplissage des meta-data du champ:
-+  resu.id_ = id;
-+  const LataFieldMetaData & data = lata_filter_.valeur().get_field_metadata(id.uname_);
-+  resu.component_names_ = data.component_names_;
-+  resu.localisation_ = data.localisation_;
-+  resu.nature_ = LataDBField::VECTOR;
-+  
-+  // Recupere la geometrie (domaine ijk ou non structure) sur laquelle est definie
-+  //  le champ source:
-+  Geometry_handle geom;
-+  get_geometry(id, geom);
-+
-+  if (geom.test_ijk()) {
-+    Journal() <<    "non code" <<endl;
-+    throw;
-+  } else {
-+    const DomainUnstructured & dom = geom.geom();
-+    const entier nbcompo = dom.dimension();
-+    const IntTab & les_elem = dom.elements_;
-+    const entier n = les_elem.dimension(0);
-+ 
-+    resu.data_.resize(n, nbcompo);
-+    
-+    const FloatTab& nodes_=dom.nodes_;
-+    
-+    ArrOfFloat v1( nbcompo),v2(nbcompo);
-+    ArrOfDouble nor(nbcompo);
-+    for ( int i = 0; i < n; i++) {
-+      // calcul de la normale
-+      entier som0 = les_elem(i,0);
-+      entier som1 = les_elem(i,1);
-+      for (int j=0;j<nbcompo;j++)
-+        v1[j]=nodes_(som1,j)-nodes_(som0,j);
-+      if (nbcompo==3)
-+        {
-+          entier som2 = les_elem(i,2);
-+          for (int j=0;j<nbcompo;j++)
-+            v2[j]=nodes_(som2,j)-nodes_(som0,j);
-+          
-+          nor[0]=v1[1]*v2[2]-v1[2]*v2[1];
-+          nor[1]=v1[2]*v2[0]-v1[0]*v2[2];
-+          nor[2]=v1[0]*v2[1]-v1[1]*v2[0];
-+          nor/=2.;
-+        }
-+      else
-+        {
-+          assert(nbcompo==2);
-+          nor[0]=v1[1];
-+          nor[1]=-v1[0];
-+          
-+        }
-+      for (int k = 0; k < nbcompo; k++) {
-+        resu.data_(i, k) = nor[k];
-+      }
-+       
-+    }
-+    
-+  }
-+  
-+
-+  return resu;
-+}
-+
-+// Description:
-+//  Fonction d'interpolation qui transforme un champ de vitesse VDF aux "faces"
-+//  en un champ aux "elements".
-+//  Ne fonctionne que sur les maillages ijk !
-+//  On attend un champ scalaire a une composante en entree (champ source)
-+//  et on fournit en sortie un champ vectoriel a "dimension" composantes.
-+FieldType UserFields::interpoler_faces_vdf_vers_elem(const Field_Id & id)
-+{
-+  // Recupere le champ a filtrer (champ aux elements)
-+  FieldType source = get_champ_source(id);
-+  
-+  if (source.localisation_ != LataField_base::FACES) {
-+    Journal() << "Error in UserFields::interpoler_faces_vdf_vers_elem: source field " << id.uname_.build_string()
-+              << " is not at faces !" << endl;
-+    throw;
-+  }
-+
-+  // Get geometry:
-+  Geometry_handle geom;
-+  get_geometry(id, geom);
-+  if (!geom.test_ijk()) {
-+    Journal() << "Error in UserFields::interpoler_faces_vdf_vers_elem: geometry of field " << id.uname_.build_string()
-+              << " is not IJK" << endl;
-+    throw;
-+  }
-+  const DomainIJK & dom = geom.geom_ijk();
-+
-+  const entier dim = dom.dimension();
-+  
-+  if (source.data_.dimension(1) != dim) {
-+    Journal() << "Error in UserFields::interpoler_faces_vdf_vers_elem: source field " << id.uname_.build_string()
-+              << " must have " << dim << " components !" << endl;
-+    throw;
-+  }
-+
-+  FieldType resu;
-+  // Remplissage des meta-data du champ:
-+  resu.id_ = id;
-+  resu.component_names_.reset();
-+  resu.localisation_ = LataField_base::ELEM;
-+  resu.nature_ = LataDBField::VECTOR;
-+
-+  // Le code suivant marche en 1D, 2D et 3D:
-+  const entier nbelem = dom.nb_elements();
-+  const entier nbcompo = dim;
-+  resu.data_.resize(nbelem, nbcompo);
-+  const entier nelem_x = dom.nb_elem_dir(0);
-+  const entier nelem_y = dom.nb_elem_dir(1);
-+  const entier nelem_z = dom.nb_elem_dir(2);
-+  const entier nfaces_x = dom.nb_som_dir(0);
-+  const entier nfaces_y = dom.nb_som_dir(1);
-+  // Avec les boucles imbriquees comme ceci, on parcourt tous les
-+  //  elements dans l'ordre croissant:
-+  // (l'indice de l'element (i,j,k) est :
-+  //    elem = (k * nelem_y + j) * nelem_x + i
-+  entier elem = 0;
-+  for (entier k = 0; k < nelem_z; k++) {
-+    for (entier j = 0; j < nelem_y; j++) {
-+      for (entier i = 0; i < nelem_x; i++) {
-+        if (dom.invalid_connections_.size_array() == 0 || dom.invalid_connections_[elem] == 0) {
-+          // Element valide:
-+          // Boucle sur les trois directions:
-+          for (entier dir = 0; dir < dim; dir++) {
-+            // indices des deux faces opposees de l'element dan la direction dir:
-+            const entier face1 = (k * nfaces_y + j) * nfaces_x + i;
-+            entier face2;
-+            if (dir == 0)
-+              face2 = face1 + 1;
-+            else if (dir == 1)
-+              face2 = face1 + nfaces_x;
-+            else
-+              face2 = face1 + nfaces_y * nfaces_x;
-+            // On fait la moyenne des vitesses sur les deux faces
-+            double v_moy = (source.data_(face1, dir) + source.data_(face2, dir)) * 0.5;
-+            resu.data_(elem, dir) = v_moy;
-+          }
-+        }
-+        elem++;
-+      }
-+    }
-+  }
-+  return resu;
-+}
-+
-+// **********************************************************************************
-+// METHODES UTILISATEUR: ces methodes sont a mettre a jour en fonction des besoins
-+//  specifiques...
-+// **********************************************************************************
-+
-+// Description: Constructeur de la classe.
-+//  Attention: penser a initialiser toutes les variables de la classe (options)
-+UserFields_options::UserFields_options()
-+{
-+  demie_largeur_filtre_boite_ = 1;
-+}
-+
-+// Cette methode est appelee avec les options en ligne de commande ou sur la troisieme
-+//  ligne. Il faut renvoyer 0 si on ne comprend pas l'option, sinon 1.
-+entier UserFields_options::parse_option(const Nom & option)
-+{
-+  if (option.debute_par("demie_largeur_filtre_boite=")) {
-+    demie_largeur_filtre_boite_ = LataOptions::read_int_opt(option);
-+  } else {
-+    return 0;
-+  }
-+  return 1;
-+}
-+
-+// Cette methode est appelee par lata2dx en ligne de commande pour afficher une aide.
-+// On peut decrire toutes les options...
-+void UserFields_options::print_help_option() const
-+{
-+  cerr << "Options provided by UserFields:" << endl;
-+  cerr << " demie_largeur_filtre_boite=N  (see filtre_boite implementation)" << endl;
-+}
-+
-+// Description:
-+//  Cette methode est appelee par lata2dx au debut pour connaitre la liste
-+//  des champs que UserFields est capable de calculer.
-+//  fields_data contient en entree tous les champs deja fournis par lata2dx
-+//   (champs presents dans le fichier .lata, plus les champs resultant des operateurs
-+//    standards (regularize, dualmesh etc...)
-+//  On doit ajouter dans fields_data la description des champs supplementaires 
-+//   que UserFields peut calculer.
-+void UserFields::new_fields_metadata(LataFilter & filter,
-+                                     LataVector<LataFieldMetaData> & fields_data)
-+{
-+  lata_filter_ = filter;
-+
-+  const Noms geoms = filter.get_exportable_geometry_names();
-+  
-+  const entier nb_geometries = geoms.size();
-+  
-+  for (int i = 0; i < nb_geometries; i++) {
-+    const LataGeometryMetaData data = filter.get_geometry_metadata(geoms[i]);
-+    
-+    // Si on a des faces, proposer la normale aux faces
-+    int topo_dim=data.dimension_;
-+    
-+    switch(data.element_type_) {
-+    case Domain::point:     topo_dim = 0; break;
-+    case Domain::line:      topo_dim = 1; break;
-+    case Domain::triangle:
-+    case Domain::polygone:
-+    case Domain::quadri:    topo_dim = 2; break;
-+    case Domain::tetra:
-+    case Domain::prism6:
-+    case Domain::polyedre:
-+    case Domain::hexa:      topo_dim = 3; break;
-+    default:
-+      cerr << "avtlataFileFormat::PopulateDatabaseMetaData error: unknown element type" << endl;
-+      throw;
-+    }
-+    if ((data.dimension_>1)&&(topo_dim!=data.dimension_)) {
-+      Journal(1)<<"Ajout de la normale"<<endl;
-+      LataFieldMetaData dest;
-+      dest.name_ = "normals/NORMALE";
-+      dest.geometry_name_ = data.internal_name_;
-+      dest.component_names_.reset() ;
-+      
-+      dest.nb_components_ = data.dimension_;
-+      dest.is_vector_ = 1;
-+      dest.localisation_ = LataField_base::ELEM;
-+      dest.source_localisation_ = "ELEM";
-+      dest.source_ = "user_fields";
-+      // source_field_ inutile.
-+      
-+      dest.uname_ = Field_UName(dest.geometry_name_,
-+                                dest.name_,
-+                                LataField_base::localisation_to_string(dest.localisation_));
-+      fields_data.add(dest);
-+    }
-+    else
-+    if (data.element_type_==Domain::triangle||data.element_type_==Domain::tetra)
-+      
-+      {
-+         Journal(1)<<"Ajout de mesh_quality/LargestAngle"<<endl;
-+         LataFieldMetaData dest;
-+         dest.name_ = "mesh_quality/LargestAngle";
-+         dest.geometry_name_ = data.internal_name_;
-+         dest.component_names_.reset() ;
-+      
-+         dest.nb_components_ = 1;
-+         dest.is_vector_ = 0;
-+         dest.localisation_ = LataField_base::ELEM;
-+         dest.source_localisation_ = "ELEM";
-+         dest.source_ = "user_fields";
-+         // source_field_ inutile.
-+      
-+         dest.uname_ = Field_UName(dest.geometry_name_,
-+                                   dest.name_,
-+                                   LataField_base::localisation_to_string(dest.localisation_));
-+         fields_data.add(dest);
-+      }
-+  }
-+  // on laisse les lignes pour verifier la compilation
-+  if ( 0) {
-+  const entier nb_fields_debut = fields_data.size();
-+  
-+  // On fait une boucle sur tous les champs disponibles dans le filtre
-+  //  (nb_fields_debut est le nombre de champs existant avant qu'on 
-+  //   commence a en ajouter dans le tableau fields_data)
-+
-+  for (int i_in = 0; i_in < nb_fields_debut; i_in++) 
-+    {
-+      // On cherche si le champ de temperature aux elements existe
-+      //  sur une geometrie IJK (Motcle permet d'ignorer majuscule/minuscule)
-+      const LataFieldMetaData data = fields_data[i_in];
-+
-+      // Les deux if suivants sont des EXEMPLES
-+
-+      if (Motcle(data.name_) == "TEMPERATURE"
-+          && data.localisation_ == LataField_base::ELEM
-+          && Motcle(data.geometry_name_).finit_par("_IJK"))
-+        {
-+          // On declare un champ identique qui s'appelle MOYENNE_TEMPERATURE
-+          fields_data.add(declare_new_name(data, "MOYENNE_TEMPERATURE"));
-+        }
-+
-+      // Si le champ est aux elements, on propose une interpolation aux sommets
-+      // On reconnaitra le champ parce que son nom finira par elem_vers_som (voir get_field())
-+      if (data.localisation_ == LataField_base::ELEM)
-+        {
-+          Nom nom = data.name_;
-+          nom += "_elem_vers_som";
-+          fields_data.add(declare_new_name_localisation(data, nom, LataField_base::SOM));
-+        }
-+
-+      // Si le champ est aux faces et le maillage est ijk, on propose
-+      //  une interpolation aux elements
-+      if (data.localisation_ == LataField_base::FACES
-+          && Motcle(data.geometry_name_).finit_par("_IJK"))
-+        {
-+          Nom nom = data.name_;
-+          nom += "_faces_vers_elem";
-+          // Le champ aux faces a deja dimension composantes
-+          const entier dim = data.nb_components_;
-+          fields_data.add(declare_new_vector_field(data, nom, LataField_base::ELEM, dim));
-+        }
-+    }
-+  }
-+}
-+
-+// Description:
-+//  Cette methode publique est appelee par lata2dx pour obtenir les champs declares dans
-+//  new_fields_metadata. Il faut tester "id" et calculer le champ demande.
-+//  On a le droit d'appeler get_champ() pour obtenir d'autres champs.
-+FieldType UserFields::get_field(const Field_Id & id)
-+{
-+  // Convertit le nom du champ en majuscules:
-+  Motcle nom(id.uname_.get_field_name());
-+
-+  // Ces deux lignes sont des EXEMPLES (a remplacer par les champs qu'on veut
-+  //  effectivement calculer)
-+  if (nom == "moyenne_temperature")    return filtre_boite(id);
-+  else if (nom.finit_par("_elem_vers_som")) return interpoler_elem_vers_som(id);
-+  else if (nom.finit_par("_faces_vers_elem")) return interpoler_faces_vdf_vers_elem(id);
-+  else if (nom.debute_par("normals/NORMALE")) return calculer_normale(id);
-+  else if (nom.debute_par("mesh_quality/LargestAngle")) return calculer_angle(id);
-+  // Ceci doit rester:
-+  else {
-+    Journal() << "Error in UserFields::get_field: unknown field " << nom << endl;
-+    throw;
-+  }
-+}
-+
-+class FiltreSpatial
-+{   
-+public:
-+  FiltreSpatial(LataFilter & lata, const Domain_Id & id, entier demi_pas) :
-+    demi_pas_(-1), pbDim_(-1), nx_(-1), ny_(-1), nz_(-1), dx_(-1.), dy_(-1.), dz_(-1.)
-+  {
-+    init(lata, id, demi_pas); 
-+  }
-+  FieldType filtrer(const FieldType & f, const Field_Id & id) const;
-+  FieldType gradient(const FieldType & f, const Field_Id & id) const;
-+  float volume() const { return dx_ * dy_ * dz_; }
-+protected:
-+  void init(LataFilter & lata, const Domain_Id & id, entier demi_pas);
-+  FloatTab calculer_somme_dir(const FloatTab & src, const int dir) const;
-+  FloatTab annu_bord(const FloatTab & input, int epaisseur) const;
-+  int ijk_index(int i, int j, int k) const {
-+    if (i < 0)
-+      i = 0;
-+    else if (i >= nx_)
-+      i = nx_-1;
-+    if (j < 0)
-+      j = 0;
-+    else if (j >= ny_)
-+      j = ny_ - 1;
-+    if (k < 0)
-+      k = 0;
-+    else if (k >= nz_)
-+      k = nz_-1; 
-+    return k * ny_ * nx_ + j * nx_ + i;
-+  } 
-+
-+  // Tableau: pour chaque element, 1 s'il est INVALIDE, 0 s'il est OK
-+  ArrOfBit invalid_connections_;
-+
-+  entier demi_pas_;
-+  int pbDim_; // dimension
-+  int nx_;
-+  int ny_;
-+  int nz_;
-+  float dx_;
-+  float dy_;
-+  float dz_;
-+};
-+
-+void FiltreSpatial::init(LataFilter & lata, const Domain_Id & id, entier demi_pas)
-+{
-+  const Domain & dom = lata.get_geometry(id);
-+  const DomainIJK * ptr = dynamic_cast<const DomainIJK *>(&dom);
-+  if (!ptr) {
-+    Journal() << "Error in FiltreSpatial::init : domain " << id.name_ << " is not IJK" << endl;
-+    throw;
-+  }
-+  demi_pas_ = demi_pas;
-+  pbDim_ = ptr->coord_.size();
-+  nx_ = ptr->coord_[0].size_array() - 1;
-+  ny_ = ptr->coord_[1].size_array() - 1;
-+  if (pbDim_ == 3)
-+    nz_ = ptr->coord_[2].size_array() - 1;
-+  else
-+    nz_ = 1;
-+
-+  dx_ = ptr->coord_[0][1] - ptr->coord_[0][0];
-+  dy_ = ptr->coord_[1][1] - ptr->coord_[1][0];
-+  if (pbDim_ == 3)
-+    dz_ = ptr->coord_[2][1] - ptr->coord_[2][0];
-+  else
-+    dz_ = 1.;
-+
-+  invalid_connections_ = ptr->invalid_connections_;
-+
-+  if (invalid_connections_.size_array() == 0) {
-+    invalid_connections_.resize_array(ptr->nb_elements());
-+    invalid_connections_ = 0;
-+  }
-+
-+  lata.release_geometry(dom);
-+}
-+
-+FloatTab FiltreSpatial::calculer_somme_dir(const FloatTab & src, const int dir) const
-+{
-+  const int n = src.dimension(0);
-+  const int nb_compo = src.dimension(1);
-+  FloatTab tmp;
-+  tmp.resize(n, nb_compo);
-+
-+  int index_resu = 0;
-+  for (int k = 0; k < nz_; k++) {
-+    for (int j = 0; j < ny_; j++) {
-+      for (int i = 0; i < nx_; i++) {
-+        for (int count = -demi_pas_; count <= demi_pas_; count++) {
-+          int index;
-+          switch(dir) {
-+          case 0: index = ijk_index(i+count, j, k); break;
-+          case 1: index = ijk_index(i, j+count, k); break;
-+          case 2: index = ijk_index(i, j, k+count); break;
-+          default:
-+            throw;
-+          }
-+
-+          if (invalid_connections_[index] == 1 && dir == 0) {
-+            // element invalide !
-+          } else {
-+            // element ok !
-+            for (int compo = 0; compo < nb_compo; compo++)
-+              tmp(index_resu, compo) += src(index, compo);
-+          }
-+        }
-+        index_resu++;
-+      }
-+    }
-+  }
-+  return tmp;
-+}
-+
-+FieldType FiltreSpatial::filtrer(const FieldType & source, const Field_Id & id) const
-+{
-+  // On copie tout pour avoir les noms des composantes, localisation etc...
-+  FieldType resu = source;
-+  resu.id_ = id;
-+
-+  FloatTab somme_x = calculer_somme_dir(source.data_, 0);
-+  FloatTab somme_y = calculer_somme_dir(somme_x, 1);
-+  if (pbDim_ == 3)
-+    resu.data_ = calculer_somme_dir(somme_y, 2);
-+  else
-+    resu.data_ = somme_y;
-+
-+  entier pas = demi_pas_ * 2 + 1;
-+  double fact = pas * pas;
-+  if (pbDim_ == 3)
-+    fact *= pas;
-+  resu.data_ *= (1. / fact);
-+
-+  return resu;
-+}
-+
-+FieldType UserFields::filtre_boite(const Field_Id & id)
-+{
-+  FieldType source = get_champ_source(id);
-+
-+  FiltreSpatial filtre(lata_filter_.valeur(), id, opt_.demie_largeur_filtre_boite_);
-+
-+  FieldType resu = filtre.filtrer(source, id);
-+
-+  return resu;
-+}
-+
-diff --git a/databases/readers/Lata/UserFields.h b/databases/readers/Lata/UserFields.h
-new file mode 100644
-index 0000000..8e2052c
---- /dev/null
-+++ b/databases/readers/Lata/UserFields.h
-@@ -0,0 +1,108 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef UserFields_H
-+#define UserFields_H
-+#include <Lata_tools.h>
-+#include <LataStructures.h>
-+
-+template<class F> class Field;
-+class FloatTab;
-+typedef Field<FloatTab> FieldType;
-+class Field_Id;
-+class LataFilter;
-+struct LataFieldMetaData;
-+class DomainUnstructured;
-+class DomainIJK;
-+
-+// Description: classe outil pour acceder a une geometrie dans LataFilter.
-+//  La geometrie est chargee en memoire quand cet objet est cree,
-+//  elle est dechargee quand il est detruit.
-+// Exemple d'utilisation dans UserFields::interpoler_elem_vers_som
-+class Geometry_handle
-+{
-+public:
-+  Geometry_handle();
-+  Geometry_handle(Geometry_handle &);
-+  Geometry_handle & operator=(Geometry_handle &);
-+  ~Geometry_handle();
-+  void set(LataFilter & filter, const Domain_Id &);
-+  const DomainUnstructured & geom();
-+  const DomainIJK &          geom_ijk();
-+  entier                     test_ijk();
-+protected:
-+  void                       reset();
-+  LataRef<LataFilter> lata_filter_;
-+  LataRef<const Domain> geom_;
-+};
-+
-+class UserFields_options
-+{
-+public:
-+  UserFields_options();
-+  entier parse_option(const Nom &);
-+  void   print_help_option() const;
-+
-+  // Exemple de parametre en option (commentaires bienvenus !)
-+
-+  // demie-largeur du filtre_boite en mailles
-+  entier demie_largeur_filtre_boite_;
-+};
-+
-+class UserFields
-+{
-+public:
-+  void set_options(const UserFields_options & opt) { opt_ = opt; }
-+
-+  void   new_fields_metadata(LataFilter & filter,
-+                             LataVector<LataFieldMetaData> & fields_data);
-+
-+  FieldType get_field(const Field_Id & id);
-+
-+  BigEntier compute_memory_size() { return 0; }
-+
-+protected:
-+  // Declaration de methodes outils
-+  FieldType get_champ_source(const Field_Id & id);
-+  FieldType get_champ(const Nom & nom, const Field_Id & id);
-+  FieldType get_champ_loc(const Nom & nom, LataField_base::Elem_som loc, const Field_Id & id);
-+  void      get_geometry(const Domain_Id & id, Geometry_handle &);
-+
-+  FieldType filtre_boite(const Field_Id & id);
-+  FieldType calculer_normale(const Field_Id & id);
-+  FieldType calculer_angle(const Field_Id & id);
-+  FieldType interpoler_elem_vers_som(const Field_Id & id);
-+  FieldType interpoler_faces_vdf_vers_elem(const Field_Id & id);
-+
-+  // Reference a la classe LataFilter (pour recuperer les champs sources)
-+  LataRef<LataFilter> lata_filter_;
-+
-+  UserFields_options opt_;
-+};
-+#endif
-diff --git a/databases/readers/Lata/Vect.h b/databases/readers/Lata/Vect.h
-new file mode 100644
-index 0000000..a650806
---- /dev/null
-+++ b/databases/readers/Lata/Vect.h
-@@ -0,0 +1,34 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef Vect_h_inclu
-+#define Vect_h_inclu
-+#include <LataVector.h>
-+#define VECT(x) LataVector<x >
-+#endif
-diff --git a/databases/readers/Lata/VectArrOfInt.h b/databases/readers/Lata/VectArrOfInt.h
-new file mode 100644
-index 0000000..c666311
---- /dev/null
-+++ b/databases/readers/Lata/VectArrOfInt.h
-@@ -0,0 +1,34 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef VectArrOfInt_h_inclu
-+#define VectArrOfInt_h_inclu
-+#include <ArrOfInt.h>
-+#include <Vect.h>
-+#endif
-diff --git a/databases/readers/Lata/arch.h b/databases/readers/Lata/arch.h
-new file mode 100644
-index 0000000..68c5800
---- /dev/null
-+++ b/databases/readers/Lata/arch.h
-@@ -0,0 +1,34 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+
-+#ifndef arch_include_
-+#define arch_include_
-+typedef int entier;
-+#endif
-+
-diff --git a/databases/readers/Lata/avtlataFileFormat.C b/databases/readers/Lata/avtlataFileFormat.C
-new file mode 100644
-index 0000000..2c4d27c
---- /dev/null
-+++ b/databases/readers/Lata/avtlataFileFormat.C
-@@ -0,0 +1,865 @@
-+/*****************************************************************************
-+ *
-+ * Copyright (c) 2000 - 2015, Lawrence Livermore National Security, LLC
-+ * Produced at the Lawrence Livermore National Laboratory
-+ * All rights reserved.
-+ *
-+ * This file is part of VisIt. For details, see http://www.llnl.gov/visit/. The
-+ * full copyright notice is contained in the file COPYRIGHT located at the root
-+ * of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
-+ *
-+ * Redistribution  and  use  in  source  and  binary  forms,  with  or  without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ *  - Redistributions of  source code must  retain the above  copyright notice,
-+ *    this list of conditions and the disclaimer below.
-+ *  - Redistributions in binary form must reproduce the above copyright notice,
-+ *    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
-+ *    documentation and/or materials provided with the distribution.
-+ *  - Neither the name of the UC/LLNL nor  the names of its contributors may be
-+ *    used to  endorse or  promote products derived from  this software without
-+ *    specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
-+ * ARE  DISCLAIMED.  IN  NO  EVENT  SHALL  THE  REGENTS  OF  THE  UNIVERSITY OF
-+ * CALIFORNIA, THE U.S.  DEPARTMENT  OF  ENERGY OR CONTRIBUTORS BE  LIABLE  FOR
-+ * ANY  DIRECT,  INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
-+ * CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
-+ * LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
-+ * OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-+ * DAMAGE.
-+ *
-+ *****************************************************************************/
-+
-+// ************************************************************************* //
-+//                            avtlataFileFormat.C                           //
-+// ************************************************************************* //
-+
-+#include <avtlataFileFormat.h>
-+
-+#include <LmlReader.h>
-+#include <LataJournal.h>
-+
-+#include <avtDatabaseMetaData.h>
-+#include <avtGhostData.h>
-+#include <DebugStream.h>
-+#include <Expression.h>
-+#include <InvalidVariableException.h>
-+
-+#include <vtkCellData.h>
-+#include <vtkCellType.h>
-+#include <vtkFloatArray.h>
-+#include <vtkInformation.h>
-+#include <vtkIntArray.h>
-+#include <vtkRectilinearGrid.h>
-+#include <vtkStreamingDemandDrivenPipeline.h>
-+#include <vtkStructuredGrid.h>
-+#include <vtkUnsignedCharArray.h>
-+#include <vtkUnstructuredGrid.h>
-+
-+#include <string>
-+#include <fstream>
-+#include <iostream>
-+#include <visitstream.h>
-+#include <vector>
-+
-+// ****************************************************************************
-+//  Method: avtlata constructor
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+avtlataFileFormat::avtlataFileFormat(const char *filename)
-+  : avtMTMDFileFormat(filename)
-+{
-+  debug1 << "avtlataFileFormat constructor " << filename << endl;
-+  try {
-+    set_Journal_level(0);
-+
-+    LataOptions opt;
-+    LataOptions::extract_path_basename(filename, opt.path_prefix, opt.basename);
-+    opt.dual_mesh = true;
-+    opt.faces_mesh = true;
-+    opt.regularize = 2;
-+    opt.regularize_tolerance = 1e-7;
-+    opt.user_fields_=true;
-+    read_any_format_options(filename, opt);
-+    debug1 << "avtlataFileFormat: initializing filter" << endl;
-+    // Read the source file to the lata database
-+    read_any_format(filename, opt.path_prefix, lata_db_);
-+    filter_.initialize(opt, lata_db_);
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in LataFilter::initialize " << filename << " " << err.describe() << endl;
-+    throw;
-+  }
-+}
-+
-+avtlataFileFormat::~avtlataFileFormat()
-+{
-+}
-+
-+// ****************************************************************************
-+//  Method: avtEMSTDFileFormat::GetNTimesteps
-+//
-+//  Purpose:
-+//      Tells the rest of the code how many timesteps there are in this file.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+int
-+avtlataFileFormat::GetNTimesteps(void)
-+{
-+  int n;
-+  try {
-+    n = filter_.get_nb_timesteps();
-+    // Timestep 0 contains global definitions.
-+    // If we have "real" timesteps, do not show timestep 0
-+    if (n > 1)
-+      n--;
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in getntimesteps " << filename << " " << err.describe() << endl;
-+    throw;
-+  }
-+  return n;
-+}
-+
-+void avtlataFileFormat::GetTimes(std::vector<double>& times) 
-+{ 
-+  int n;
-+  try {
-+    n = filter_.get_nb_timesteps();
-+    if (n == 1)
-+      times.push_back(0.);
-+    else
-+      for (int i = 1; i < n; i++)
-+        times.push_back(filter_.get_timestep(i));
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in gettimes " << filename << " " << err.describe() << endl;
-+    throw;
-+  }
-+  return;
-+}
-+
-+// ****************************************************************************
-+//  Method: avtlataFileFormat::FreeUpResources
-+//
-+//  Purpose:
-+//      When VisIt is done focusing on a particular timestep, it asks that
-+//      timestep to free up any resources (memory, file descriptors) that
-+//      it has associated with it.  This method is the mechanism for doing
-+//      that.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+void
-+avtlataFileFormat::FreeUpResources(void)
-+{
-+}
-+
-+
-+// ****************************************************************************
-+//  Method: avtlataFileFormat::PopulateDatabaseMetaData
-+//
-+//  Purpose:
-+//      This database meta-data object is like a table of contents for the
-+//      file.  By populating it, you are telling the rest of VisIt what
-+//      information it can request from you.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+void
-+avtlataFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md, int timeState)
-+{
-+  try {
-+  debug1 << "avtlataFileFormat::PopulateDatabaseMetaData : " 
-+         << filename << " " << timeState << endl;
-+
-+  const char *suffix_vector_names[] = { "_X", "_Y", "_Z" };
-+  const char *suffix_vector_expr[] = { "[0]", "[1]", "[2]" };
-+
-+  const Noms geoms = filter_.get_exportable_geometry_names();
-+
-+  for (int i_geom = 0; i_geom < geoms.size(); i_geom++) {
-+    debug1 << " Domain : " << geoms[i_geom] << endl;
-+    const LataGeometryMetaData data = filter_.get_geometry_metadata(geoms[i_geom]);
-+
-+    avtMeshType mt = AVT_UNSTRUCTURED_MESH;
-+    
-+    if (data.is_ijk_==1)
-+      {
-+        mt = AVT_RECTILINEAR_MESH;
-+      }
-+    int block_origin = 0;
-+    int topo_dim;
-+    switch(data.element_type_) {
-+    case Domain::point:     topo_dim = 0; mt = AVT_POINT_MESH; break;
-+    case Domain::line:      topo_dim = 1; break;
-+    case Domain::triangle: 
-+    case Domain::polygone:
-+    case Domain::quadri:    topo_dim = 2; break;
-+    case Domain::tetra:
-+    case Domain::prism6:
-+    case Domain::polyedre:
-+    case Domain::hexa:      topo_dim = 3; break;
-+    default:
-+      cerr << "avtlataFileFormat::PopulateDatabaseMetaData error: unknown element type" << endl;
-+      topo_dim = 3; ///TODO: this should be an error in default case!
-+      EXCEPTION1(InvalidVariableException, 
-+                 "avtlataFileFormat::PopulateDatabaseMetaData error: unknown element type");
-+      throw;
-+    }
-+
-+    int mesh_faces=0;
-+    if  (data.internal_name_.finit_par("_centerfaces"))
-+      {
-+        //cerr<<"la "<<data.internal_name_<<endl;
-+        mesh_faces=1;
-+      }
-+    double *extents = NULL;
-+    const std::string geom_name(data.displayed_name_);
-+    AddMeshToMetaData(md, geom_name, mt, extents, data.nblocks_, block_origin,
-+                      data.dimension_, topo_dim);
-+    mesh_username_.add(data.displayed_name_);
-+    mesh_latafilter_name_.add(data.internal_name_);
-+
-+    Field_UNames fields = filter_.get_exportable_field_unames(geoms[i_geom]);
-+
-+    for (int i_field = 0; i_field < fields.size(); i_field++) {
-+      const LataFieldMetaData data2 = filter_.get_field_metadata(fields[i_field]);
-+      avtCentering cent;
-+      switch (data2.localisation_) {
-+      case LataField_base::ELEM: cent = AVT_ZONECENT; break;
-+      case LataField_base::SOM:  cent = AVT_NODECENT; break;
-+      default:
-+        // Do not export fields that cannot be shown
-+        continue;
-+      }
-+
-+      // Take localisation of source field
-+      Nom loc = data2.source_localisation_;
-+      std::string varname(data2.name_);
-+      varname += "_";
-+      varname += loc;
-+      varname += "_";
-+      varname += geom_name;
-+      if (data2.nb_components_ == 1) {
-+        // Scalar field
-+        // We append the geometry name to the component name:
-+        register_fieldname(varname.c_str(), fields[i_field], 0);
-+        if (mesh_faces==0)
-+        AddScalarVarToMetaData(md, varname, geom_name, cent);
-+      } else if (data2.is_vector_ && data2.nb_components_ == data.dimension_) {
-+        // Vector field
-+        register_fieldname(varname.c_str(), fields[i_field], -1);
-+        AddVectorVarToMetaData(md, varname, geom_name, cent, data2.nb_components_);
-+        if (mesh_faces==0)
-+          {
-+        std::string n;
-+        for (entier i = 0; i < data2.nb_components_; i++) {
-+          Expression v;
-+          n = data2.name_;
-+          n += suffix_vector_names[i];
-+          n += "_";
-+          n += loc;
-+          n += "_";
-+          n += geom_name;
-+          v.SetName(n);
-+          n = varname;
-+          n += suffix_vector_expr[i];
-+          v.SetDefinition(n);
-+          v.SetType(Expression::ScalarMeshVar);
-+          md->AddExpression(&v);
-+        }
-+      if (varname.find_first_of("/",0)==std::string::npos)
-+      {
-+         // On calcule la norme des vecteurs de premier niveau (pas de / dans le chemin)
-+           Expression norme_v;
-+           n = "norme_";
-+           n += varname;
-+           norme_v.SetName(n);
-+           n = "magnitude(";
-+           n += varname;
-+           n += ")";
-+           norme_v.SetDefinition(n);
-+           norme_v.SetType(Expression::ScalarMeshVar);
-+           md->AddExpression(&norme_v);
-+      }
-+          }
-+      } else {
-+        // Multiscalar field 
-+        // I chose to postfix the varname with the component name, perhaps not the best choice.
-+        if (mesh_faces==0)
-+          {
-+        for (entier i_compo = 0; i_compo < data2.nb_components_; i_compo++) { 
-+          std::string varname2(data2.name_);
-+          varname2 += "_";
-+          if (data2.component_names_.size() == data2.nb_components_) {
-+            varname2 += data2.component_names_[i_compo];
-+          } else {
-+            Nom n(i_compo);
-+            varname2 += n;
-+          }
-+          varname2 += "_";
-+          varname2 += loc; 
-+          varname2 += "_";
-+          varname2 += geom_name;
-+          register_fieldname(varname2.c_str(), fields[i_field], i_compo);
-+          AddScalarVarToMetaData(md, varname2, geom_name, cent);
-+        }
-+          }
-+      }
-+    }
-+  }
-+  debug1 << "End avtlataFileFormat::PopulateDatabaseMetaData" << endl;
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in PopulateDatabaseMetaData " << err.describe() << endl;
-+    throw;
-+  }
-+}
-+
-+void
-+avtlataFileFormat::register_fieldname(const char *visit_name, const Field_UName & uname, int component)
-+{
-+  if (field_username_.rang(visit_name) >= 0) {
-+    cerr << "Error in avtlataFileFormat::register_fieldname: duplicate field name " << visit_name << endl;
-+    cerr << "Ignoring field" << endl;
-+    return;
-+  }
-+  field_username_.add(visit_name);
-+  field_uname_.add(uname);
-+  field_component_.add(component);
-+}
-+
-+void
-+avtlataFileFormat::register_meshname(const char *visit_name, const char *latafilter_name)
-+{
-+  if (mesh_username_.rang(visit_name) >= 0) {
-+    cerr << "Error in avtlataFileFormat::register_meshname: duplicate name " << visit_name << endl;
-+    cerr << "Ignoring mesh" << endl;
-+    return;    
-+  }
-+  mesh_username_.add(visit_name);
-+  mesh_latafilter_name_.add(latafilter_name);
-+}
-+
-+// ****************************************************************************
-+//  Method: avtlataFileFormat::GetMesh
-+//
-+//  Purpose:
-+//      Gets the mesh associated with this file.  The mesh is returned as a
-+//      derived type of vtkDataSet (ie vtkRectilinearGrid, vtkStructuredGrid,
-+//      vtkUnstructuredGrid, etc).
-+//
-+//  Arguments:
-+//      timestate   The index of the timestate.  If GetNTimesteps returned
-+//                  'N' time steps, this is guaranteed to be between 0 and N-1.
-+//      domain      The index of the domain.  If there are NDomains, this
-+//                  value is guaranteed to be between 0 and NDomains-1,
-+//                  regardless of block origin.
-+//      meshname    The name of the mesh of interest.  This can be ignored if
-+//                  there is only one mesh.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+vtkDataSet *
-+avtlataFileFormat::GetMesh(int timestate, int block, const char *meshname)
-+{
-+  vtkDataSet *return_value = 0;
-+  try {
-+  debug1 << " avtlataFileFormat::GetMesh ts=" << timestate 
-+         << " block=" << block 
-+         << " meshname=" << meshname << endl;
-+
-+  // We have real timesteps in the database, add one to timestep index:
-+  if (filter_.get_nb_timesteps() > 1)
-+    timestate++;
-+
-+  const entier index = mesh_username_.rang(meshname);
-+  if (index < 0) {
-+    cerr << "internal error in avtlataFileFormat::GetMesh: name " << meshname << " not found" << endl;
-+    throw;
-+  }
-+  Domain_Id id(mesh_latafilter_name_[index], timestate, block);
-+  const Domain & geometry = filter_.get_geometry(id);
-+
-+  const DomainUnstructured * geom_ptr = dynamic_cast<const DomainUnstructured*>(&geometry);
-+  const DomainIJK          * ijk_ptr = dynamic_cast<const DomainIJK*>(&geometry);
-+
-+  if (geom_ptr) {
-+    const DomainUnstructured & geom = *geom_ptr;
-+
-+    vtkUnstructuredGrid *ugrid = vtkUnstructuredGrid::New();
-+    vtkPoints *points = vtkPoints::New();
-+    const FloatTab & pos = geom.nodes_;
-+    const int nnodes = pos.dimension(0);
-+    const int dim3 = pos.dimension(1) == 3;
-+    points->SetNumberOfPoints(nnodes);
-+    float* pts = (float *) points->GetVoidPointer(0);
-+    int jl=0;
-+    int i;
-+    for (i = 0; i < nnodes; i++) {
-+      pts[jl]   = pos(i,0);
-+      pts[jl+1] = pos(i,1);
-+      pts[jl+2] = dim3 ? pos(i,2) : 0.;
-+      jl+=3;
-+    }
-+    ugrid->SetPoints(points);
-+    points->Delete();
-+    
-+    const IntTab & conn = geom.elements_;
-+    const IntTab & elem_faces = geom.elem_faces_;
-+    const IntTab & faces = geom.faces_;
-+    const int ncells = conn.dimension(0);
-+    int nverts = conn.dimension(1);
-+    
-+    int type_cell;
-+    switch (geom.elt_type_) {
-+    case Domain::point:
-+      type_cell=VTK_VERTEX; 
-+      if (ncells == 0) 
-+        nverts = 1;
-+      break;
-+    case Domain::line:
-+      type_cell=VTK_LINE;
-+      break;
-+    case Domain::triangle:
-+      type_cell=VTK_TRIANGLE;
-+      break;
-+    case Domain::quadri:
-+      type_cell=VTK_QUAD;
-+      break;
-+    case Domain::tetra:
-+      type_cell=VTK_TETRA;
-+      break;
-+    case Domain::prism6:
-+      type_cell=VTK_WEDGE;
-+      break;
-+    case Domain::hexa:
-+      type_cell=VTK_HEXAHEDRON;
-+      break;
-+    case Domain::polygone:
-+      type_cell=VTK_POLYGON;
-+      break;
-+    case Domain::polyedre:
-+      type_cell= elem_faces.dimension(0) > 0 ? VTK_POLYHEDRON : VTK_CONVEX_POINT_SET;
-+      break;
-+    default:
-+      type_cell=-1;
-+      cerr<<"avtlataFileFormat::GetMesh unknown elt type "<<endl;
-+      throw;
-+      break;
-+    }
-+    vtkIdType *verts = new vtkIdType[nverts];
-+    std::vector<vtkIdType> poly_p, poly_f;
-+    if (type_cell == VTK_VERTEX && ncells == 0) {
-+      // Cells are implicit. Create them:
-+      ugrid->Allocate(nnodes);
-+      for (i = 0; i < nnodes; i++) {
-+        verts[0] = i;
-+        ugrid->InsertNextCell(type_cell, nverts, verts);
-+      }
-+    } else {
-+      ugrid->Allocate(ncells);
-+      for (i = 0; i < ncells; i++) {
-+        if (type_cell==VTK_QUAD) {
-+          // Nodes order is different in visit than in trio_u
-+          verts[0]=conn(i,0);
-+          verts[1]=conn(i,1);
-+          verts[2]=conn(i,3);
-+          verts[3]=conn(i,2);
-+        } else if (type_cell==VTK_HEXAHEDRON) {
-+          // Nodes order is different in visit than in trio_u
-+          verts[0]=conn(i,0);
-+          verts[1]=conn(i,1);
-+          verts[2]=conn(i,3);
-+          verts[3]=conn(i,2);
-+          verts[4]=conn(i,4);
-+          verts[5]=conn(i,5);
-+          verts[6]=conn(i,7);
-+          verts[7]=conn(i,6);
-+        } else if (type_cell==VTK_POLYHEDRON) { 
-+          //polyhedra, face by face
-+          int j, nfaces = 0, npts = 0, k, i_f, s, f;
-+          poly_p.resize(0), poly_f.resize(0);
-+          for (j = 0; j < conn.dimension(1); j++) if ((s = conn(i, j)) >= 0) poly_p.push_back(s), npts++;
-+          for (j = 0; j < elem_faces.dimension(1); j++) if ((f = elem_faces(i, j)) >= 0)
-+            for (k = 0, nfaces++, i_f = poly_f.size(), poly_f.push_back(0); k < faces.dimension(1) ; k++) if ((s = faces(f, k)) >= 0)
-+              poly_f.push_back(s), poly_f[i_f]++;
-+          ugrid->InsertNextCell(type_cell, npts, &poly_p[0], nfaces, &poly_f[0]);
-+        } else if ((type_cell==VTK_CONVEX_POINT_SET)||(type_cell==VTK_POLYGON)) {
-+          int nverts_loc=nverts;
-+          for (int j = 0; j < nverts; j++) 
-+            {
-+              verts[j] = conn(i,j);
-+             
-+              if (verts[j]<=-1)
-+                {  
-+                  nverts_loc=j; 
-+                  break;
-+                }    
-+  /*            else
-+              {
-+              if (verts[j]<-1)
-+              {
-+              std::cerr<<i<<" iiiii "<< j<<" "<<verts[j]<<finl;
-+}
-+
-+}     */
-+            }
-+          int  nb_som_max_to_regularize=0;
-+          if (filter_.get_options().regularize_polyedre!=0)
-+            {
-+              nb_som_max_to_regularize=8;
-+              if (filter_.get_options().regularize_polyedre==-1)
-+                  nb_som_max_to_regularize=32000;
-+            }
-+          if ( geom.elt_type_==Domain::polygone)
-+              nb_som_max_to_regularize=-1;
-+          if ((nb_som_max_to_regularize>=6) && (nverts_loc==6))
-+            ugrid->InsertNextCell(VTK_WEDGE, nverts_loc, verts);
-+          else if ((nb_som_max_to_regularize>=12)&&(nverts_loc==12))
-+            ugrid->InsertNextCell(VTK_HEXAGONAL_PRISM, nverts_loc, verts);
-+          else if ((nb_som_max_to_regularize>=8)&&(nverts_loc==8))
-+            {
-+                        // Nodes order is different in visit than in trio_u
-+              verts[0]=conn(i,0);
-+              verts[1]=conn(i,1);
-+              verts[2]=conn(i,3);
-+              verts[3]=conn(i,2);
-+              verts[4]=conn(i,4);
-+              verts[5]=conn(i,5);
-+              verts[6]=conn(i,7);
-+              verts[7]=conn(i,6);
-+              ugrid->InsertNextCell(VTK_HEXAHEDRON, nverts_loc, verts);
-+               
-+            }
-+          else
-+            ugrid->InsertNextCell(type_cell, nverts_loc, verts);
-+        }
-+        else {
-+          for (int j = 0; j < nverts; j++) 
-+            verts[j] = conn(i,j);
-+        }
-+        if ((type_cell!=VTK_POLYHEDRON) &&(type_cell!=VTK_CONVEX_POINT_SET) && (type_cell!=VTK_POLYGON))
-+         
-+          ugrid->InsertNextCell(type_cell, nverts, verts);
-+      }
-+    }
-+    delete [] verts;
-+    verts = 0;
-+    // Declare ghost elements:
-+    const int n = geom.nb_virt_items(LataField_base::ELEM);
-+    if (n > 0) {
-+      unsigned char realVal = 0;
-+      unsigned char ghost   = 0; // Sera modifie par AddGhostZoneType
-+      avtGhostData::AddGhostZoneType(ghost, DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
-+      vtkUnsignedCharArray *ghostcells = vtkUnsignedCharArray::New();
-+      ghostcells->SetName("avtGhostZones");
-+      ghostcells->SetNumberOfTuples(ncells);
-+      unsigned char *dat = (unsigned char *) ghostcells->GetVoidPointer(0);
-+      for (i = 0; i < ncells - n; i++)
-+        dat[i] = realVal;
-+      for (i = ncells - n; i < ncells; i++)
-+        dat[i] = ghost;
-+      ugrid->GetCellData()->AddArray(ghostcells);
-+      ugrid->GetInformation()->Set(
-+        vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0);
-+      ghostcells->Delete();
-+    }
-+    return_value = ugrid;
-+    
-+  } else if (ijk_ptr) {
-+    const DomainIJK & geom = *ijk_ptr;
-+
-+    // Maillage regulier : on transmet la grille ijk
-+    vtkRectilinearGrid *sgrid = vtkRectilinearGrid::New();
-+
-+    const int dim = geom.coord_.size();
-+    ArrOfInt ncoord(3, 1);
-+    int i;
-+    for (i = 0; i < dim; i++) 
-+      ncoord[i] = geom.coord_[i].size_array();
-+    sgrid->SetDimensions(ncoord[0], ncoord[1], ncoord[2]);
-+
-+    for (i = 0; i < 3; i++) {
-+      float *data;
-+      vtkFloatArray *c;
-+      c = vtkFloatArray::New();
-+      const int n = ncoord[i];
-+      c->SetNumberOfTuples(n);
-+      data = (float *) c->GetVoidPointer(0);
-+      if (i < dim) {
-+        const ArrOfFloat & coord = geom.coord_[i];
-+        for (int j = 0; j < n; j++)
-+          data[j] = coord[j];
-+      } else {
-+        data[0] = 0.;
-+      }
-+      switch(i) {
-+      case 0: sgrid->SetXCoordinates(c); break;
-+      case 1: sgrid->SetYCoordinates(c); break;
-+      case 2: sgrid->SetZCoordinates(c); break;
-+      default: ;
-+      }
-+      c->Delete();
-+    }
-+    // Create "invalid cells" data (GettingDataIntoVisit.pdf, page 136)
-+    // and "ghost cells"
-+    const int n = geom.invalid_connections_.size_array();
-+    if (n > 0 || geom.virtual_layer_begin_ || geom.virtual_layer_end_) {
-+      const int ncells = geom.nb_elements();
-+      unsigned char realVal = 0;
-+      unsigned char invalid = 0; // Sera modifie par AddGhostZoneType
-+      unsigned char ghost   = 0;
-+      avtGhostData::AddGhostZoneType(invalid, ZONE_NOT_APPLICABLE_TO_PROBLEM);
-+      avtGhostData::AddGhostZoneType(ghost, DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
-+      vtkUnsignedCharArray *ghostcells = vtkUnsignedCharArray::New();
-+      ghostcells->SetName("avtGhostZones");
-+      ghostcells->SetNumberOfTuples(ncells);
-+      unsigned char *dat = (unsigned char *) ghostcells->GetVoidPointer(0);
-+
-+      for (i = 0; i < ncells; i++)
-+          dat[i] = realVal;
-+
-+      if (n > 0) {
-+        // invalid cells
-+        for (i = 0; i < ncells; i++) {
-+          if (geom.invalid_connections_[i])
-+            dat[i] = invalid;
-+        }
-+      }
-+      
-+      // ghost cells
-+      entier ij = 1;
-+      for (i = 0; i < dim-1; i++)
-+        ij *= ncoord[i]-1;
-+      if (geom.virtual_layer_begin_) {
-+        // first layer of cells is ghost
-+        for (i = 0; i < ij * geom.virtual_layer_begin_; i++)
-+          dat[i] += ghost;
-+      }
-+      if (geom.virtual_layer_end_) {
-+        // last layer of cells is ghost
-+        for (i = ncells - ij * geom.virtual_layer_end_; i < ncells; i++)
-+          dat[i] += ghost;
-+      }
-+      
-+      sgrid->GetCellData()->AddArray(ghostcells);
-+      sgrid->GetInformation()->Set(
-+        vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0);
-+      ghostcells->Delete();
-+    }
-+
-+    return_value = sgrid;
-+  } else {
-+    cerr << "Error in avtlataFileFormat::GetMesh: unknown geometry type" << endl;
-+    throw;
-+  }
-+
-+  filter_.release_geometry(geometry);
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in getmesh " << timestate << " " << block << " " << meshname << " " << err.describe() << endl;
-+    throw;
-+  }
-+
-+  return return_value;
-+}
-+
-+
-+// ****************************************************************************
-+//  Method: avtlataFileFormat::GetVar
-+//
-+//  Purpose:
-+//      Gets a scalar variable associated with this file.  Although VTK has
-+//      support for many different types, the best bet is vtkFloatArray, since
-+//      that is supported everywhere through VisIt.
-+//
-+//  Arguments:
-+//      timestate  The index of the timestate.  If GetNTimesteps returned
-+//                 'N' time steps, this is guaranteed to be between 0 and N-1.
-+//      domain     The index of the domain.  If there are NDomains, this
-+//                 value is guaranteed to be between 0 and NDomains-1,
-+//                 regardless of block origin.
-+//      varname    The name of the variable requested.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+vtkDataArray *
-+avtlataFileFormat::GetVar(int timestate, int block, const char *varname)
-+{
-+  vtkDataArray * return_value = 0;
-+  try {
-+  debug1 << "Getvar time:" << timestate
-+         << " block:" << block
-+         << " varname:" << varname << endl;
-+
-+  if (filter_.get_nb_timesteps() > 1)
-+    timestate++;
-+
-+  Field_UName field_uname;
-+  int component;
-+  get_field_info_from_visitname(varname, field_uname, component);
-+
-+  if (component < 0) {
-+    cerr << "Error: avtlataFileFormat::GetVar called for vector field" << endl;
-+    throw;
-+  }
-+
-+  Field_Id id(field_uname, timestate, block);
-+
-+  const LataField_base & field = filter_.get_field(id);
-+
-+  const Field<FloatTab> * float_field_ptr = dynamic_cast<const Field<FloatTab>*>(&field);
-+  const Field<IntTab> * int_field_ptr = dynamic_cast<const Field<IntTab>*>(&field);
-+
-+  if (float_field_ptr) {
-+    vtkFloatArray *rv = vtkFloatArray::New();
-+    const Field<FloatTab> & fld = *float_field_ptr;
-+    const FloatTab & values = fld.data_;
-+    int ntuples = values.dimension(0);
-+    rv->SetNumberOfTuples(ntuples);
-+    float * data = rv->GetPointer(0);
-+    for (int i = 0; i < ntuples; i++) 
-+      data[i] = values(i, component);
-+    return_value = rv;
-+  } else if (int_field_ptr) {
-+    vtkIntArray *rv = vtkIntArray::New();
-+    const Field<IntTab> & fld = *int_field_ptr;
-+    const IntTab & values = fld.data_;
-+    int ntuples = values.dimension(0);
-+    rv->SetNumberOfTuples(ntuples);
-+    int * data = rv->GetPointer(0);
-+    for (int i = 0; i < ntuples; i++) 
-+      data[i] = values(i, component);    
-+    return_value = rv;
-+  } else {
-+    cerr << "Error in avtlataFileFormat::GetVar: unknown data type" << endl;
-+    throw;
-+  }
-+  filter_.release_field(field);
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in getvar " << timestate << " " << block << " " << varname << " " << err.describe() << endl;
-+    throw;
-+  }
-+  return return_value; 
-+}
-+
-+
-+// ****************************************************************************
-+//  Method: avtlataFileFormat::GetVectorVar
-+//
-+//  Purpose:
-+//      Gets a vector variable associated with this file.  Although VTK has
-+//      support for many different types, the best bet is vtkFloatArray, since
-+//      that is supported everywhere through VisIt.
-+//
-+//  Arguments:
-+//      timestate  The index of the timestate.  If GetNTimesteps returned
-+//                 'N' time steps, this is guaranteed to be between 0 and N-1.
-+//      domain     The index of the domain.  If there are NDomains, this
-+//                 value is guaranteed to be between 0 and NDomains-1,
-+//                 regardless of block origin.
-+//      varname    The name of the variable requested.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+vtkDataArray *
-+avtlataFileFormat::GetVectorVar(int timestate, int block, const char *varname)
-+{
-+  vtkDataArray * return_value = 0;
-+  try {
-+  debug1 << "Getvectorvar time:" << timestate
-+         << " block:" << block
-+         << " varname:" << varname << endl;
-+
-+  if (filter_.get_nb_timesteps() > 1)
-+    timestate++;
-+
-+  Field_UName field_uname;
-+  int component;
-+  get_field_info_from_visitname(varname, field_uname, component);
-+
-+  if (component >= 0) {
-+    cerr << "Error: avtlataFileFormat::GetVectorVar called for scalar field" << endl;
-+    throw;
-+  }
-+
-+  Field_Id id(field_uname, timestate, block);
-+
-+  const LataField_base & field = filter_.get_field(id);
-+
-+  const Field<FloatTab> * float_field_ptr = dynamic_cast<const Field<FloatTab>*>(&field);
-+  const Field<IntTab> * int_field_ptr = dynamic_cast<const Field<IntTab>*>(&field);
-+
-+  if (float_field_ptr) {
-+    vtkFloatArray *rv = vtkFloatArray::New();
-+    const Field<FloatTab> & fld = *float_field_ptr;
-+    const FloatTab & values = fld.data_;
-+    int ntuples = values.dimension(0);
-+    int dim = values.dimension(1);
-+    rv->SetNumberOfComponents(3);
-+    rv->SetNumberOfTuples(ntuples);
-+    float* data= rv->WritePointer(0,3*ntuples);
-+    for (int i = 0; i < ntuples; i++)
-+      for (int j = 0; j < 3; j++)
-+        data[i*3+j] = (j<dim) ? values(i, j) : 0.;
-+    return_value = rv;
-+  } else if (int_field_ptr) {
-+    vtkIntArray *rv = vtkIntArray::New();
-+    const Field<IntTab> & fld = *int_field_ptr;
-+    const IntTab & values = fld.data_;
-+    int ntuples = values.dimension(0);
-+    int dim = values.dimension(1);
-+    rv->SetNumberOfComponents(3);
-+    rv->SetNumberOfTuples(ntuples);
-+    int* data= rv->WritePointer(0,3*ntuples);
-+    for (int i = 0; i < ntuples; i++) 
-+      for (int j = 0; j < 3; j++)
-+        data[i*3+j] = (j<dim) ? values(i, j) : 0;
-+    return_value = rv;
-+  } else {
-+    cerr << "Error in avtlataFileFormat::GetVectorVar: unknown data type" << endl;
-+    throw;
-+  }
-+  filter_.release_field(field);
-+  }
-+  catch (LataDBError err) {
-+    cerr << "Error in getvectorvar " << timestate << " " << block << " " << varname << " " << err.describe() << endl;
-+    throw;
-+  }
-+  return return_value; 
-+}
-+
-+void avtlataFileFormat::get_field_info_from_visitname(const char *varname, Field_UName & uname, int & component) const
-+{
-+  const int k = field_username_.rang(varname);
-+  if (k < 0) {
-+    cerr << "Error in avtlataFileFormat::get_field_info_from_visitname: field " << varname << " not found" << endl;
-+    throw  ;
-+  }
-+  uname = field_uname_[k];
-+  component = field_component_[k];
-+}
-diff --git a/databases/readers/Lata/avtlataFileFormat.h b/databases/readers/Lata/avtlataFileFormat.h
-new file mode 100644
-index 0000000..3dd8e43
---- /dev/null
-+++ b/databases/readers/Lata/avtlataFileFormat.h
-@@ -0,0 +1,114 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2000 - 2012, Lawrence Livermore National Security, LLC
-+* Produced at the Lawrence Livermore National Laboratory
-+* All rights reserved.
-+*
-+* This file is part of VisIt. For details, see http://www.llnl.gov/visit/. The
-+* full copyright notice is contained in the file COPYRIGHT located at the root
-+* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
-+*
-+* Redistribution  and  use  in  source  and  binary  forms,  with  or  without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*  - Redistributions of  source code must  retain the above  copyright notice,
-+*    this list of conditions and the disclaimer below.
-+*  - Redistributions in binary form must reproduce the above copyright notice,
-+*    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
-+*    documentation and/or materials provided with the distribution.
-+*  - Neither the name of the UC/LLNL nor  the names of its contributors may be
-+*    used to  endorse or  promote products derived from  this software without
-+*    specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
-+* AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
-+* IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
-+* ARE  DISCLAIMED.  IN  NO  EVENT  SHALL  THE  REGENTS  OF  THE  UNIVERSITY OF
-+* CALIFORNIA, THE U.S.  DEPARTMENT  OF  ENERGY OR CONTRIBUTORS BE  LIABLE  FOR
-+* ANY  DIRECT,  INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR CONSEQUENTIAL
-+* DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
-+* SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
-+* CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
-+* LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
-+* OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-+* DAMAGE.
-+*
-+*****************************************************************************/
-+
-+// ************************************************************************* //
-+//                            avtlataFileFormat.h                           //
-+// ************************************************************************* //
-+
-+#ifndef AVT_lata_FILE_FORMAT_H
-+#define AVT_lata_FILE_FORMAT_H
-+
-+#include <avtMTMDFileFormat.h>
-+
-+#include <vector>
-+#include "LataFilter.h"
-+
-+// ****************************************************************************
-+//  Class: avtlataFileFormat
-+//
-+//  Purpose:
-+//      Reads in lata files as a plugin to VisIt.
-+//
-+//  Programmer: fauchet -- generated by xml2avt
-+//
-+// ****************************************************************************
-+
-+class avtlataFileFormat : public avtMTMDFileFormat
-+{
-+  public:
-+    avtlataFileFormat(const char *);
-+    virtual ~avtlataFileFormat();
-+
-+    //
-+    // This is used to return unconvention data -- ranging from material
-+    // information to information about block connectivity.
-+    //
-+    // virtual void      *GetAuxiliaryData(const char *var, const char *type,
-+    //                                     int timestep, int domain,void *args, 
-+    //                                     DestructorFunction &);
-+    //
-+
-+    //
-+    // If you know the times and cycle numbers, overload this function.
-+    // Otherwise, VisIt will make up some reasonable ones for you.
-+    //
-+    // virtual void        GetCycles(std::vector<int> &);
-+    // virtual void        GetTimes(std::vector<double> &);
-+    //
-+
-+    virtual int            GetNTimesteps(void);
-+
-+    virtual const char    *GetType(void)   { return "lata"; };
-+    virtual void           FreeUpResources(void); 
-+
-+    virtual vtkDataSet    *GetMesh(int, int, const char *);
-+    virtual vtkDataArray  *GetVar(int, int, const char *);
-+    virtual vtkDataArray  *GetVectorVar(int, int, const char *);
-+    virtual void GetTimes(std::vector<double>& times);
-+  protected:
-+    // DATA MEMBERS
-+
-+    virtual void           PopulateDatabaseMetaData(avtDatabaseMetaData *, int);
-+
-+    void register_fieldname(const char *visit_name, const Field_UName &, int component);
-+    void register_meshname(const char *visit_name, const char *latafilter_name);
-+    void get_field_info_from_visitname(const char *varname, Field_UName &, int & component) const;
-+
-+    LataDB      lata_db_; // Source database
-+    LataFilter  filter_; // Data processor and cache
-+    Noms field_username_;
-+    Field_UNames field_uname_;
-+
-+    Noms mesh_username_;
-+    Noms mesh_latafilter_name_;
-+
-+    // For each name, which component is it in the source field:
-+    LataVector<int> field_component_;
-+};
-+
-+
-+#endif
-diff --git a/databases/readers/Lata/simd_interface.h b/databases/readers/Lata/simd_interface.h
-new file mode 100644
-index 0000000..e14c409
---- /dev/null
-+++ b/databases/readers/Lata/simd_interface.h
-@@ -0,0 +1,31 @@
-+/*****************************************************************************
-+*
-+* Copyright (c) 2011 - 2013, CEA
-+* All rights reserved.
-+* Redistribution and use in source and binary forms, with or without
-+* modification, are permitted provided that the following conditions are met:
-+*
-+*     * Redistributions of source code must retain the above copyright
-+*       notice, this list of conditions and the following disclaimer.
-+*     * Redistributions in binary form must reproduce the above copyright
-+*       notice, this list of conditions and the following disclaimer in the
-+*       documentation and/or other materials provided with the distribution.
-+*     * Neither the name of CEA, nor the
-+*       names of its contributors may be used to endorse or promote products
-+*       derived from this software without specific prior written permission.
-+*
-+* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
-+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
-+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*
-+*****************************************************************************/
-+#ifdef WITH_SIMD
-+#include "simd_tools.h"
-+#endif
-diff --git a/databases/visit_readers.xml b/databases/visit_readers.xml
-index 0b1405c..05aa776 100644
---- a/databases/visit_readers.xml
-+++ b/databases/visit_readers.xml
-@@ -781,6 +781,19 @@
-      </Hints>
-     </SourceProxy>
-+    <SourceProxy name="VisItLataReader" class="vtkVisItLataReader"
-+    base_proxygroup="internal_readers" base_proxyname="VisItReaderBase">
-+    <Documentation
-+       long_help="Lata file reader">
-+       Note this reader is automatically generated from wrapping a third party reader. For more information on the reader see https://wci.llnl.gov/codes/visit
-+       The default file extensions is .lata
-+    </Documentation>
-+     <Hints>
-+       <ReaderFactory extensions="lata"
-+                      file_description="Lata Files" />
-+     </Hints>
-+    </SourceProxy>
-+
-     <SourceProxy name="VisItM3DReader" class="vtkVisItM3DReader"
-       base_proxygroup="internal_readers" base_proxyname="VisItReaderBase">
-     <Documentation
--- 
-2.17.0
-
diff --git a/config/patches/paraview.0002-vtkUnstructuredGridRelevantPointsFilter-fix-for-poly.patch b/config/patches/paraview.0002-vtkUnstructuredGridRelevantPointsFilter-fix-for-poly.patch
deleted file mode 100644 (file)
index b3e0610..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From 84627355e5b1d42754c655fdc5958695db11a25d Mon Sep 17 00:00:00 2001
-From: Antoine Gerschenfeld <antoine.gerschenfeld@cea.fr>
-Date: Fri, 13 Mar 2020 10:48:30 +0100
-Subject: [PATCH 2/3] vtkUnstructuredGridRelevantPointsFilter: fix for
- polyhedra
-
----
- .../vtkUnstructuredGridRelevantPointsFilter.C | 67 ++++++++-----------
- 1 file changed, 27 insertions(+), 40 deletions(-)
-
-diff --git a/Library/VisItLib/visit_vtk/full/vtkUnstructuredGridRelevantPointsFilter.C b/Library/VisItLib/visit_vtk/full/vtkUnstructuredGridRelevantPointsFilter.C
-index 5c73502..c4e772c 100644
---- a/Library/VisItLib/visit_vtk/full/vtkUnstructuredGridRelevantPointsFilter.C
-+++ b/Library/VisItLib/visit_vtk/full/vtkUnstructuredGridRelevantPointsFilter.C
-@@ -116,29 +116,21 @@ vtkUnstructuredGridRelevantPointsFilter::RequestData(
-     {
-     pointMap[i] = -1;
-     }
--  vtkCellArray *cells = input->GetCells();
--  auto cellIter = vtk::TakeSmartPointer(cells->NewIterator());
-+
-   int numOutPts = 0;
--  for (cellIter->GoToFirstCell();
--       !cellIter->IsDoneWithTraversal();
--       cellIter->GoToNextCell())
-+  vtkIdList *list = vtkIdList::New();
-+  for (i = 0; i < numCells; i++)
-     {
--    vtkIdList *cell = cellIter->GetCurrentCell();
--    int npts = static_cast<int>(cell->GetNumberOfIds());
--    for (j = 0 ; j < npts ; j++)
--      {
--      int oldPt = static_cast<int>(cell->GetId(j));
--      if (pointMap[oldPt] == -1)
--        pointMap[oldPt] = numOutPts++;
--      }
-+    input->GetCellPoints(i, list);
-+    for (j = 0; j < list->GetNumberOfIds(); j++) if (pointMap[list->GetId(j)] < 0) pointMap[list->GetId(j)] = numOutPts++;
-     }
--  vtkPoints *newPts = vtkPoints::New(input->GetPoints()->GetDataType());
--  newPts->SetNumberOfPoints(numOutPts);
-   vtkPointData *inputPD  = input->GetPointData();
-   vtkPointData *outputPD = output->GetPointData();
-   outputPD->CopyAllocate(inputPD, numOutPts);
-   
-+  vtkPoints *newPts = vtkPoints::New(input->GetPoints()->GetDataType());
-+  newPts->SetNumberOfPoints(numOutPts);
-   for (j = 0 ; j < numInPts ; j++)
-     {
-     if (pointMap[j] != -1)
-@@ -149,43 +141,38 @@ vtkUnstructuredGridRelevantPointsFilter::RequestData(
-       outputPD->CopyData(inputPD, j, pointMap[j]);
-       }
-     }
-+  output->SetPoints(newPts);
-   vtkCellData  *inputCD = input->GetCellData();
-   vtkCellData  *outputCD = output->GetCellData();
-   outputCD->PassData(inputCD);
--  
--  vtkIdList *cellIds = vtkIdList::New();
--
--  output->SetPoints(newPts);
--
--  // now work through cells, changing associated point id to coincide
--  // with the new ones as specified in the pointmap;
--  vtkIdList *oldIds = vtkIdList::New(); 
--  vtkIdList *newIds = vtkIdList::New();
--  int id, cellType;
--  cellIter = vtk::TakeSmartPointer(cells->NewIterator());
--  for (cellIter->GoToFirstCell();
--       !cellIter->IsDoneWithTraversal();
--       cellIter->GoToNextCell())
-+  std::vector<vtkIdType> points, faces;
-+  for (i = 0; i < numCells; i++)
-     {
--    vtkIdList *cell = cellIter->GetCurrentCell();
--    cellType = input->GetCellType(cellIter->GetCurrentCellId());
--    int npts = static_cast<int>(cell->GetNumberOfIds());
-+      int CellType = input->GetCellType(i);
-+      points.resize(0), faces.resize(0);
-+      input->GetCellPoints(i, list);
-+      
-+      for (j = 0; j < list->GetNumberOfIds(); j++) points.push_back(pointMap[list->GetId(j)]);
--    newIds->SetNumberOfIds(npts);
--    for (j = 0; j < npts ; j++)
-+      if (CellType == VTK_POLYHEDRON) //must deal with faces stream
-       {
--      id = cell->GetId(j);
--      newIds->SetId(j, pointMap[id]);
-+        input->GetFaceStream(i, list);
-+        int nfaces = list->GetId(0), idx = 1;
-+        for (j = 0; j < nfaces; j++)
-+        {
-+          int npts = list->GetId(idx);
-+          faces.push_back(npts), idx++;
-+          for (int k = 0; k < npts; k++) faces.push_back(pointMap[list->GetId(idx)]), idx++;
-+        }
-+        output->InsertNextCell(CellType, points.size(), &points[0], nfaces, &faces[0]);
-       }
--      output->InsertNextCell(cellType, newIds);
-+      else output->InsertNextCell(CellType, points.size(), &points[0]);      
-     }
-   newPts->Delete();
--  oldIds->Delete();
--  newIds->Delete();
--  cellIds->Delete();
-+  list->Delete();
-   delete [] pointMap;
-   return 1;
--- 
-2.17.0
-
diff --git a/config/patches/paraview.0003-ParaViewClient.patch b/config/patches/paraview.0003-ParaViewClient.patch
deleted file mode 100644 (file)
index 5245133..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- ParaView-5.8.0-RC2.orig/CMake/ParaViewClient.cmake 2020-03-02 15:38:53.791382799 +0300
-+++ ParaView-5.8.0-RC2.new/CMake/ParaViewClient.cmake  2020-03-02 18:31:04.304698442 +0300
-@@ -516,6 +516,7 @@
-     NAMES xmlpatterns-qt5 xmlpatterns
-     HINTS "${Qt5_DIR}/../../../bin"
-           "${Qt5_DIR}/../../../libexec/qt5/bin"
-+    NO_CMAKE_PATH
-     DOC   "Path to xmlpatterns")
-   mark_as_advanced(qt_xmlpatterns_executable)
diff --git a/config/patches/paraview.0004-ParaView_hdf5.patch b/config/patches/paraview.0004-ParaView_hdf5.patch
deleted file mode 100644 (file)
index 699226f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur ParaView-5.8.0_SRC_orig/VTK/ThirdParty/hdf5/CMakeLists.txt ParaView-5.8.0_SRC_modif/VTK/ThirdParty/hdf5/CMakeLists.txt
---- ParaView-5.8.0_SRC_orig/VTK/ThirdParty/hdf5/CMakeLists.txt 2020-03-31 15:23:53.279485815 +0300
-+++ ParaView-5.8.0_SRC_modif/VTK/ThirdParty/hdf5/CMakeLists.txt        2020-03-31 13:59:17.768118278 +0300
-@@ -10,8 +10,8 @@
-   EXTERNAL
-     PACKAGE       HDF5
-     COMPONENTS    C HL
--    TARGETS       hdf5::hdf5
--                  hdf5::hdf5_hl
-+    TARGETS       hdf5::hdf5-shared
-+                  hdf5::hdf5_hl-shared
-     USE_VARIABLES HDF5_IS_PARALLEL
-     STANDARD_INCLUDE_DIRS)
diff --git a/config/patches/paraview.0005-ParaView_find_cgns.patch b/config/patches/paraview.0005-ParaView_find_cgns.patch
deleted file mode 100644 (file)
index d636c32..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur ParaView-5.8.0_SRC_orig/CMake/FindCGNS.cmake ParaView-5.8.0_SRC_modif/CMake/FindCGNS.cmake
---- ParaView-5.8.0_SRC_orig/CMake/FindCGNS.cmake       2020-03-23 13:27:34.000000000 +0300
-+++ ParaView-5.8.0_SRC_modif/CMake/FindCGNS.cmake      2020-04-09 16:21:57.263362265 +0300
-@@ -5,6 +5,11 @@
- # CGNS_LIBRARIES   - List of fully qualified libraries to link against when using CGNS.
- # CGNS_FOUND       - Do not attempt to use CGNS if "no" or undefined.
-+SET(CGNS_ROOT_DIR $ENV{CGNS_ROOT_DIR} CACHE PATH "Path to the CGNS.")
-+IF(CGNS_ROOT_DIR)
-+  LIST(APPEND CMAKE_PREFIX_PATH "${CGNS_ROOT_DIR}")
-+ENDIF(CGNS_ROOT_DIR)
-+
- find_path(CGNS_INCLUDE_DIR
-   NAMES
-     cgnslib.h
diff --git a/config/patches/paraview.0006-ParaView_find_libxml2.patch b/config/patches/paraview.0006-ParaView_find_libxml2.patch
deleted file mode 100644 (file)
index a741d50..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- ParaView-5.8.0_SRC_orig/VTK/CMake/FindLibXml2.cmake        2020-03-23 22:17:27.000000000 +0100
-+++ ParaView-5.8.0_SRC_modif/VTK/CMake/FindLibXml2.cmake       2020-04-10 09:56:00.627562062 +0200
-@@ -53,6 +53,11 @@
- PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0)
- set(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER})
-+SET(LIBXML2_ROOT_DIR $ENV{LIBXML2_ROOT_DIR} CACHE PATH "Path to the LIBXML2.")
-+IF(LIBXML2_ROOT_DIR)
-+ LIST(APPEND CMAKE_PREFIX_PATH "${LIBXML2_ROOT_DIR}")
-+ENDIF(LIBXML2_ROOT_DIR)
-+
- find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h
-    HINTS
-    ${PC_LIBXML_INCLUDEDIR}
diff --git a/config/patches/paraview.0007-ParaView_find_freetype.patch b/config/patches/paraview.0007-ParaView_find_freetype.patch
deleted file mode 100644 (file)
index 04e86fa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur ParaView-5.8.0_SRC_orig/VTK/CMake/FindFreetype.cmake ParaView-5.8.0_SRC_modif/VTK/CMake/FindFreetype.cmake
---- ParaView-5.8.0_SRC_orig/VTK/CMake/FindFreetype.cmake       2020-03-23 13:31:26.000000000 +0300
-+++ ParaView-5.8.0_SRC_modif/VTK/CMake/FindFreetype.cmake      2020-04-10 22:27:24.194525121 +0300
-@@ -63,6 +63,11 @@
- # I'm going to attempt to cut out the middleman and hope
- # everything still works.
-+SET(FREETYPE_ROOT_DIR $ENV{FREETYPE_ROOT_DIR} CACHE PATH "Path to the FreeType.")
-+IF(FREETYPE_ROOT_DIR)
-+  LIST(APPEND CMAKE_PREFIX_PATH "${FREETYPE_ROOT_DIR}")
-+ENDIF(FREETYPE_ROOT_DIR)
-+
- set(FREETYPE_FIND_ARGS
-   HINTS
-     ENV FREETYPE_DIR
diff --git a/config/patches/paraview.0008-ParaView_coincident_rendering.patch b/config/patches/paraview.0008-ParaView_coincident_rendering.patch
deleted file mode 100644 (file)
index a1e25e7..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-diff -Naur ParaView-5.9.0_SRC_orig/Remoting/Views/Resources/utilities_remotingviews.xml ParaView-5.9.0_SRC_modif/Remoting/Views/Resources/utilities_remotingviews.xml
---- ParaView-5.9.0_SRC_orig/Remoting/Views/Resources/utilities_remotingviews.xml
-+++ ParaView-5.9.0_SRC_modif/Remoting/Views/Resources/utilities_remotingviews.xml
-@@ -31,7 +31,7 @@
-       <DoubleVectorProperty name="PolygonOffsetParameters"
-         command="SetPolygonOffsetParameters"
-         number_of_elements="2"
--        default_values="0.0 0.0"
-+        default_values="2.0 2.0"
-         panel_visibility="advanced">
-         <DoubleRangeDomain name="range" />
-         <Documentation>
-@@ -51,7 +51,7 @@
-       <DoubleVectorProperty name="LineOffsetParameters"
-         command="SetLineOffsetParameters"
-         number_of_elements="2"
--        default_values="0.0 -4"
-+        default_values="1.0 1.0"
-         panel_visibility="advanced">
-         <DoubleRangeDomain name="range" />
-         <Documentation>
-@@ -66,7 +66,7 @@
-       <DoubleVectorProperty name="PointOffsetParameter"
-         command="SetPointOffsetParameter"
-         number_of_elements="1"
--        default_values="-8"
-+        default_values="0"
-         panel_visibility="advanced">
-         <DoubleRangeDomain name="range" />
-         <Documentation>
-diff -Naur ParaView-5.9.0_SRC_orig/VTK/Rendering/Core/vtkMapper.cxx ParaView-5.9.0_SRC_modif/VTK/Rendering/Core/vtkMapper.cxx
---- ParaView-5.9.0_SRC_orig/VTK/Rendering/Core/vtkMapper.cxx
-+++ ParaView-5.9.0_SRC_modif/VTK/Rendering/Core/vtkMapper.cxx
-@@ -36,11 +36,11 @@
- static double vtkMapperGlobalResolveCoincidentTopologyZShift = 0.01;
- static int vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetFaces = 1;
--static double vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetFactor = 0.0;
--static double vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetUnits = 0.0;
--static double vtkMapperGlobalResolveCoincidentTopologyLineOffsetFactor = 0.0;
--static double vtkMapperGlobalResolveCoincidentTopologyLineOffsetUnits = -4.0;
--static double vtkMapperGlobalResolveCoincidentTopologyPointOffsetUnits = -8.0;
-+static double vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetFactor = 2.0;
-+static double vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetUnits = 2.0;
-+static double vtkMapperGlobalResolveCoincidentTopologyLineOffsetFactor = 1.0;
-+static double vtkMapperGlobalResolveCoincidentTopologyLineOffsetUnits = 1.0;
-+static double vtkMapperGlobalResolveCoincidentTopologyPointOffsetUnits = 0.0;
- vtkCxxSetObjectMacro(vtkMapper, Selection, vtkSelection);
-diff -Naur ParaView-5.9.0_SRC_orig/VTK/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx ParaView-5.9.0_SRC_modif/VTK/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
---- ParaView-5.9.0_SRC_orig/VTK/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
-+++ ParaView-5.9.0_SRC_modif/VTK/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
-@@ -2430,42 +2430,26 @@
-   {
-     std::string FSSource = shaders[vtkShader::Fragment]->GetSource();
--    if (ren->GetActiveCamera()->GetParallelProjection())
--    {
--      vtkShaderProgram::Substitute(FSSource, "//VTK::Coincident::Dec", "uniform float cCValue;");
--      if (this->DrawingTubesOrSpheres(*this->LastBoundBO, actor))
--      {
--        vtkShaderProgram::Substitute(
--          FSSource, "//VTK::Depth::Impl", "gl_FragDepth = gl_FragDepth + cCValue;\n");
--      }
--      else
--      {
--        vtkShaderProgram::Substitute(
--          FSSource, "//VTK::Depth::Impl", "gl_FragDepth = gl_FragCoord.z + cCValue;\n");
--      }
-+    if (factor != 0.0)
-+    {
-+      vtkShaderProgram::Substitute(FSSource, "//VTK::Coincident::Dec", 
-+        "uniform float cfactor;\n"
-+        "uniform float coffset;");
-+       vtkShaderProgram::Substitute(
-+        FSSource, 
-+        "//VTK::UniformFlow::Impl",
-+        "float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));\n"
-+        "  //VTK::UniformFlow::Impl\n" // for other replacements
-+        );
-+        vtkShaderProgram::Substitute(FSSource, "//VTK::Depth::Impl",
-+        "gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;\n");
-     }
-     else
-     {
--      vtkShaderProgram::Substitute(FSSource, "//VTK::Coincident::Dec",
--        "uniform float cCValue;\n"
--        "uniform float cSValue;\n"
--        "uniform float cDValue;");
--      if (this->DrawingTubesOrSpheres(*this->LastBoundBO, actor))
--      {
--        vtkShaderProgram::Substitute(FSSource, "//VTK::Depth::Impl",
--          "float Zdc = gl_FragDepth*2.0 - 1.0;\n"
--          "  float Z2 = -1.0*cDValue/(Zdc + cCValue) + cSValue;\n"
--          "  float Zdc2 = -1.0*cCValue - cDValue/Z2;\n"
--          "  gl_FragDepth = Zdc2*0.5 + 0.5;\n");
--      }
--      else
--      {
--        vtkShaderProgram::Substitute(FSSource, "//VTK::Depth::Impl",
--          "float Zdc = gl_FragCoord.z*2.0 - 1.0;\n"
--          "  float Z2 = -1.0*cDValue/(Zdc + cCValue) + cSValue;\n"
--          "  float Zdc2 = -1.0*cCValue - cDValue/Z2;\n"
--          "  gl_FragDepth = Zdc2*0.5 + 0.5;\n");
--      }
-+       vtkShaderProgram::Substitute(FSSource, "//VTK::Coincident::Dec",
-+        "uniform float coffset;");
-+      vtkShaderProgram::Substitute(
-+        FSSource, "//VTK::Depth::Impl", "gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;\n");
-     }
-     shaders[vtkShader::Fragment]->SetSource(FSSource);
-   }
-@@ -2586,14 +2570,13 @@
-   // Have the renderpasses changed?
-   vtkMTimeType renderPassMTime = this->GetRenderPassStageMTime(actor);
--  vtkOpenGLCamera* cam = (vtkOpenGLCamera*)(ren->GetActiveCamera());
-   // shape of input data changed?
-   float factor, offset;
-   this->GetCoincidentParameters(ren, actor, factor, offset);
-   unsigned int scv = (this->CurrentInput->GetPointData()->GetNormals() ? 0x01 : 0) +
-     (this->HaveCellScalars ? 0x02 : 0) + (this->HaveCellNormals ? 0x04 : 0) +
--    ((cam->GetParallelProjection() != 0.0) ? 0x08 : 0) + ((offset != 0.0) ? 0x10 : 0) +
-+    ((factor != 0.0) ? 0x08 : 0) + ((offset != 0.0) ? 0x10 : 0) +
-     (this->VBOs->GetNumberOfComponents("scalarColor") ? 0x20 : 0) +
-     (vtkOpenGLRenderer::SafeDownCast(ren)->GetUseSphericalHarmonics() ? 0x40 : 0) +
-     (actor->GetProperty()->GetCoatStrength() > 0.0 ? 0x80 : 0) +
-@@ -2910,6 +2893,19 @@
-     lineWidth[1] = 2.0 * propLineWidth / vp[3];
-     cellBO.Program->SetUniform2f("lineWidthNVC", lineWidth);
-   }
-+   
-+  // handle coincident
-+  if (cellBO.Program->IsUniformUsed("coffset"))
-+  {
-+    float factor, offset;
-+    this->GetCoincidentParameters(ren, actor,factor,offset);
-+    cellBO.Program->SetUniformf("coffset",offset);
-+    // cfactor isn't always used when coffset is.
-+    if (cellBO.Program->IsUniformUsed("cfactor"))
-+    {
-+      cellBO.Program->SetUniformf("cfactor", factor);
-+    }
-+  }
-   vtkOpenGLCheckErrorMacro("failed after UpdateShader");
- }
-@@ -2995,25 +2991,6 @@
-     }
-   }
--  // handle coincident
--  if (cellBO.Program->IsUniformUsed("cCValue"))
--  {
--    float diag = actor->GetLength();
--    float factor, offset;
--    this->GetCoincidentParameters(ren, actor, factor, offset);
--    if (cam->GetParallelProjection())
--    {
--      // one unit of offset is based on 1/1000 of bounding length
--      cellBO.Program->SetUniformf("cCValue", -2.0 * 0.001 * diag * offset * vcdc->GetElement(2, 2));
--    }
--    else
--    {
--      cellBO.Program->SetUniformf("cCValue", vcdc->GetElement(2, 2));
--      cellBO.Program->SetUniformf("cDValue", vcdc->GetElement(3, 2));
--      cellBO.Program->SetUniformf("cSValue", -0.001 * diag * offset);
--    }
--  }
--
-   vtkNew<vtkMatrix3x3> env;
-   if (program->IsUniformUsed("envMatrix"))
-   {
-
diff --git a/config/patches/paraview.0009-ParaView_volume_mapper.patch b/config/patches/paraview.0009-ParaView_volume_mapper.patch
deleted file mode 100644 (file)
index 2b424ee..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- ParaView_origin/VTK/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx    2020-06-18 14:59:43.630941741 +0200
-+++ ParaView/VTK/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx   2020-06-18 15:00:57.582622827 +0200
-@@ -2822,7 +2822,7 @@
-     this->VolumePropertyChanged |= property->GetMTime() > this->ShaderBuildTime.GetMTime();
-     auto it = this->Parent->AssembledInputs.find(port);
--    if (it == this->Parent->AssembledInputs.cend())
-+    if (it == this->Parent->AssembledInputs.cend() || it->second.Volume != vol)
-     {
-       // Create new input structure
-       auto texture = vtkSmartPointer<vtkVolumeTexture>::New();
diff --git a/config/patches/paraview.0010-ParaView_CATALYST_cmake.patch b/config/patches/paraview.0010-ParaView_CATALYST_cmake.patch
deleted file mode 100644 (file)
index 9c12894..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Naur ParaView-5.9.0_ref/CMakeLists.txt ParaView-5.9.0/CMakeLists.txt
---- ParaView-5.9.0_ref/CMakeLists.txt  2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0/CMakeLists.txt      2021-03-01 15:48:43.101402815 +0100
-@@ -831,7 +831,7 @@
- # Test to check that we can process all of the Catalyst editions
- #------------------------------------------------------------------------------
- if (BUILD_TESTING AND PARAVIEW_USE_PYTHON AND UNIX AND NOT APPLE)
--if (FALSE) # XXX(FIXME)
-+if (TRUE) # XXX(FIXME)
-   # disabling till we Catalyst editions are fixed post modularization
-   add_test( NAME GenerateCatalystEditions
-     COMMAND ${CMAKE_COMMAND}
-
-diff -Naur ParaView-5.9.0_ref/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-config.cmake.in ParaView-5.9.0/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-config.cmake.in
---- ParaView-5.9.0_ref/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-config.cmake.in 2021-02-04 15:22:02.000000000 +0100
-+++ ParaView-5.9.0/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-config.cmake.in     2021-03-01 15:51:58.110940810 +0100
-@@ -1,6 +1,6 @@
- # Catalyst Package config file.
- cmake_policy(PUSH)
--cmake_policy(VERSION 3.13)
-+cmake_policy(VERSION 3.12)
- set(CATALYST_VERSION "@CATALYST_VERSION@")
- set(CATALYST_ABI_VERSION "@CATALYST_ABI_VERSION@")
-
-diff -Naur ParaView-5.9.0_ref/ThirdParty/catalyst/vtkcatalyst/catalyst/CMakeLists.txt ParaView-5.9.0/ThirdParty/catalyst/vtkcatalyst/catalyst/CMakeLists.txt
---- ParaView-5.9.0_ref/ThirdParty/catalyst/vtkcatalyst/catalyst/CMakeLists.txt 2021-02-04 15:22:02.000000000 +0100
-+++ ParaView-5.9.0/ThirdParty/catalyst/vtkcatalyst/catalyst/CMakeLists.txt     2021-03-01 15:56:02.640910857 +0100
-@@ -1,4 +1,4 @@
--cmake_minimum_required(VERSION 3.13...3.16 FATAL_ERROR)
-+cmake_minimum_required(VERSION 3.12...3.16 FATAL_ERROR)
- project(CATALYST VERSION 2.0 LANGUAGES C CXX)
- #------------------------------------------------------------------------------
diff --git a/config/patches/paraview.0011-ParaView_protobuf_crash.patch b/config/patches/paraview.0011-ParaView_protobuf_crash.patch
deleted file mode 100644 (file)
index a9623e9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur ParaView-5.9.0_SRC_orig/Remoting/Application/vtkInitializationHelper.cxx ParaView-5.9.0_SRC_modif/Remoting/Application/vtkInitializationHelper.cxx
-index e171735139..47784ec70e 100644
---- ParaView-5.9.0_SRC_orig/Remoting/Application/vtkInitializationHelper.cxx
-+++ ParaView-5.9.0_SRC_modif/Remoting/Application/vtkInitializationHelper.cxx
-@@ -300,7 +300,7 @@ void vtkInitializationHelper::Finalize()
-   vtkProcessModule::Finalize();
-   // Optional:  Delete all global objects allocated by libprotobuf.
--  google::protobuf::ShutdownProtobufLibrary();
-+  //google::protobuf::ShutdownProtobufLibrary();
- }
- //----------------------------------------------------------------------------
-
diff --git a/config/patches/paraview.0015-Paraview_VTKM_ioss.patch b/config/patches/paraview.0015-Paraview_VTKM_ioss.patch
deleted file mode 100644 (file)
index 0930f67..0000000
+++ /dev/null
@@ -1,1111 +0,0 @@
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss ParaView-5.9.0_new/VTK/ThirdParty/ioss
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_BaseDatabaseIO.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_BaseDatabaseIO.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_BaseDatabaseIO.C        2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_BaseDatabaseIO.C        2021-04-15 15:05:03.009043046 +0200
-@@ -144,7 +144,7 @@
-     // Set exodusII warning level.
-     if (util().get_environment("EX_DEBUG", isParallel)) {
-       fmt::print(
--          Ioss::DEBUG(),
-+          Ioss::STREAM_DEBUG(),
-           "IOEX: Setting EX_VERBOSE|EX_DEBUG because EX_DEBUG environment variable is set.\n");
-       ex_opts(EX_VERBOSE | EX_DEBUG);
-     }
-@@ -152,13 +152,13 @@
-     if (!is_input()) {
-       if (util().get_environment("EX_MODE", exodusMode, isParallel)) {
-         fmt::print(
--            Ioss::OUTPUT(),
-+            Ioss::STREAM_OUTPUT(),
-             "IOEX: Exodus create mode set to {} from value of EX_MODE environment variable.\n",
-             exodusMode);
-       }
-       if (util().get_environment("EX_MINIMIZE_OPEN_FILES", isParallel)) {
--        fmt::print(Ioss::OUTPUT(),
-+        fmt::print(Ioss::STREAM_OUTPUT(),
-                    "IOEX: Minimizing open files because EX_MINIMIZE_OPEN_FILES environment "
-                    "variable is set.\n");
-         minimizeOpenFiles = true;
-@@ -337,7 +337,7 @@
-         double t_end    = Ioss::Utils::timer();
-         double duration = util().global_minmax(t_end - t_begin, Ioss::ParallelUtils::DO_MAX);
-         if (myProcessor == 0) {
--          fmt::print(Ioss::DEBUG(), "File Close Time = {}\n", duration);
-+          fmt::print(Ioss::STREAM_DEBUG(), "File Close Time = {}\n", duration);
-         }
-       }
-     }
-@@ -389,7 +389,7 @@
-     // Check byte-size of integers stored on the database...
-     if ((ex_int64_status(exodusFilePtr) & EX_ALL_INT64_DB) != 0) {
-       if (myProcessor == 0) {
--        fmt::print(Ioss::OUTPUT(),
-+        fmt::print(Ioss::STREAM_OUTPUT(),
-                    "IOSS: Input database contains 8-byte integers. Setting Ioss to use "
-                    "8-byte integers.\n");
-       }
-@@ -1914,7 +1914,7 @@
-       // try changing DIM_STR_NAME value and see if works...)
-       if (name_length > static_cast<size_t>(maximumNameLength)) {
-         if (myProcessor == 0) {
--          fmt::print(Ioss::WARNING(),
-+          fmt::print(Ioss::STREAM_WARNING(),
-                      "There are variables names whose name length ({0}) exceeds the current "
-                      "maximum name length ({1})\n         set for this database ({2}).\n"
-                      "         You should either reduce the length of the variable name, or "
-@@ -2182,7 +2182,7 @@
-         else if (Ioss::Utils::str_equal(type, "sphere-mass")) {
-           if (attribute_count != 10) {
-             if (myProcessor == 0) {
--              fmt::print(Ioss::WARNING(),
-+              fmt::print(Ioss::STREAM_WARNING(),
-                          "For element block '{}' of type '{}' there were {} attributes instead of "
-                          "the expected 10 attributes "
-                          "known to the IO Subsystem. "
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DatabaseIO.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DatabaseIO.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DatabaseIO.C    2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DatabaseIO.C    2021-04-15 15:05:03.008043046 +0200
-@@ -228,7 +228,7 @@
-           IOSS_ERROR(errmsg);
-         }
-         else {
--          Ioss::WARNING() << errmsg.str();
-+          Ioss::STREAM_WARNING() << errmsg.str();
-         }
-         return false;
-       }
-@@ -274,7 +274,7 @@
-             *error_msg = errmsg.str();
-           }
-           if (write_message && myProcessor == 0) {
--            Ioss::WARNING() << errmsg.str();
-+            Ioss::STREAM_WARNING() << errmsg.str();
-           }
-         }
-         if (bad_count != nullptr) {
-@@ -321,7 +321,7 @@
-     if (do_timer) {
-       double t_end    = Ioss::Utils::timer();
-       double duration = t_end - t_begin;
--      fmt::print(Ioss::DEBUG(), "Input File Open Time = {}\n", duration);
-+      fmt::print(Ioss::STREAM_DEBUG(), "Input File Open Time = {}\n", duration);
-     }
-     bool is_ok = check_valid_file_ptr(write_message, error_msg, bad_count, abort_if_error);
-@@ -545,7 +545,7 @@
-     m_groupCount[EX_BLOB]     = info.num_blob;
-     if (nodeCount == 0) {
--      fmt::print(Ioss::WARNING(), "No nodes were found in the model, file '{}'\n",
-+      fmt::print(Ioss::STREAM_WARNING(), "No nodes were found in the model, file '{}'\n",
-                  decoded_filename());
-     }
-     else if (nodeCount < 0) {
-@@ -559,7 +559,7 @@
-     }
-     if (elementCount == 0) {
--      fmt::print(Ioss::WARNING(), "No elements were found in the model, file '{}'\n",
-+      fmt::print(Ioss::STREAM_WARNING(), "No elements were found in the model, file '{}'\n",
-                  decoded_filename());
-     }
-@@ -744,7 +744,7 @@
-             // a warning if there is a corrupt step on processor
-             // 0... Need better warnings which won't overload in the
-             // worst case...
--            fmt::print(Ioss::WARNING(),
-+            fmt::print(Ioss::STREAM_WARNING(),
-                        "Skipping step {:n} at time {} in database file\n\t{}.\n"
-                        "\tThe data for that step is possibly corrupt since the last time written "
-                        "successfully was {}.\n",
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DecompositionData.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DecompositionData.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DecompositionData.C     2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_DecompositionData.C     2021-04-15 15:05:03.008043046 +0200
-@@ -144,9 +144,9 @@
-     generate_adjacency_list(filePtr, m_decomposition);
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Processor {} has {} elements; offset = {}\n", m_processor,
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {} has {} elements; offset = {}\n", m_processor,
-                decomp_elem_count(), decomp_elem_offset());
--    fmt::print(Ioss::DEBUG(), "Processor {} has {} nodes; offset = {}\n", m_processor,
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {} has {} nodes; offset = {}\n", m_processor,
-                decomp_node_count(), decomp_node_offset());
- #endif
-@@ -213,7 +213,7 @@
-       pu.hwm_memory_stats(min, max, avg);
-       int64_t MiB = 1024 * 1024;
-       if (m_processor == 0) {
--        fmt::print(Ioss::DEBUG(), "\n\tHigh Water Memory at end of Decomposition: {}M  {}M  {}M\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n\tHigh Water Memory at end of Decomposition: {}M  {}M  {}M\n",
-                    min / MiB, max / MiB, avg / MiB);
-       }
-     }
-@@ -322,7 +322,7 @@
-         std::vector<INT> connectivity(overlap * element_nodes);
-         size_t           blk_start = std::max(b_start, p_start) - b_start + 1;
- #if IOSS_DEBUG_OUTPUT
--        fmt::print(Ioss::DEBUG(), "Processor {} has {} elements on element block {}\n", m_processor,
-+        fmt::print(Ioss::STREAM_DEBUG(), "Processor {} has {} elements on element block {}\n", m_processor,
-                    overlap, id);
- #endif
-         ex_get_partial_conn(filePtr, EX_ELEM_BLOCK, id, blk_start, overlap, connectivity.data(),
-@@ -416,7 +416,7 @@
-         ssize_t to_read = std::min(remain, entitys_to_read);
-         if (m_processor == root) {
- #if IOSS_DEBUG_OUTPUT
--          fmt::print(Ioss::DEBUG(), "{} {} reading {} entities from offset {}\n", set_type_name,
-+          fmt::print(Ioss::STREAM_DEBUG(), "{} {} reading {} entities from offset {}\n", set_type_name,
-                      sets[i].id, to_read, set_entities_read[i] + 1);
- #endif
-           // Read the entitylists on root processor.
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_IOFactory.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_IOFactory.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_IOFactory.C     2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_IOFactory.C     2021-04-15 15:05:03.010043045 +0200
-@@ -128,16 +128,16 @@
-   { 
-     ex_print_config(); 
- #if !defined(NO_PARMETIS_SUPPORT)
--  fmt::print(Ioss::OUTPUT(), "\tParMetis Library Version: {}.{}.{} (Parallel Decomposition)\n"
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\tParMetis Library Version: {}.{}.{} (Parallel Decomposition)\n"
-            "\t\tInteger Size is {}, Real Size is {}\n\n", PARMETIS_MAJOR_VERSION, PARMETIS_MINOR_VERSION, PARMETIS_SUBMINOR_VERSION,
-            IDXTYPEWIDTH, REALTYPEWIDTH);
- #else
--  fmt::print(Ioss::OUTPUT(), "\tParMetis Library is NOT Available for Parallel Decomposition.\n\n");
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\tParMetis Library is NOT Available for Parallel Decomposition.\n\n");
- #endif
- #if !defined(NO_ZOLTAN_SUPPORT)
--  fmt::print(Ioss::OUTPUT(), "\tZoltan Library is Available for Parallel Decomposition.\n\n");
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\tZoltan Library is Available for Parallel Decomposition.\n\n");
- #else
--  fmt::print(Ioss::OUTPUT(), "\tZoltan Library is NOT Available for Parallel Decomposition.\n\n");
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\tZoltan Library is NOT Available for Parallel Decomposition.\n\n");
- #endif
-   }
- } // namespace Ioex
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_ParallelDatabaseIO.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_ParallelDatabaseIO.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_ParallelDatabaseIO.C    2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_ParallelDatabaseIO.C    2021-04-15 15:05:03.010043045 +0200
-@@ -322,7 +322,7 @@
-             *error_msg = errmsg.str();
-           }
-           if (write_message && myProcessor == 0) {
--            fmt::print(Ioss::OUTPUT(), "{}", errmsg.str());
-+            fmt::print(Ioss::STREAM_OUTPUT(), "{}", errmsg.str());
-           }
-         }
-         if (bad_count != nullptr) {
-@@ -390,7 +390,7 @@
-       double t_end    = Ioss::Utils::timer();
-       double duration = util().global_minmax(t_end - t_begin, Ioss::ParallelUtils::DO_MAX);
-       if (myProcessor == 0) {
--        fmt::print(Ioss::DEBUG(), "File Open Time = {}\n", duration);
-+        fmt::print(Ioss::STREAM_DEBUG(), "File Open Time = {}\n", duration);
-       }
-     }
-@@ -501,7 +501,7 @@
-       double      duration    = util().global_minmax(t_end - t_begin, Ioss::ParallelUtils::DO_MAX);
-       std::string open_create = fileExists ? "Open" : "Create";
-       if (myProcessor == 0) {
--        fmt::print(Ioss::DEBUG(), "File {} Time = {}\n", open_create, duration);
-+        fmt::print(Ioss::STREAM_DEBUG(), "File {} Time = {}\n", open_create, duration);
-       }
-     }
-@@ -749,7 +749,7 @@
-           // 0... Need better warnings which won't overload in the
-           // worst case...
-           fmt::print(
--              Ioss::WARNING(),
-+              Ioss::STREAM_WARNING(),
-               "Skipping step {:n} at time {} in database file\n\t{}.\nThe data for that step "
-               "is possibly corrupt.\n",
-               i + 1, tsteps[i], get_filename());
-@@ -4873,7 +4873,7 @@
-         }
-         if (!bad_proc.empty()) {
--          fmt::print(Ioss::WARNING(), "No {} on processor{}:\n\t{}\n\n", label[j],
-+          fmt::print(Ioss::STREAM_WARNING(), "No {} on processor{}:\n\t{}\n\n", label[j],
-                      bad_proc.size() > 1 ? "s" : "", Ioss::Utils::format_id_list(bad_proc, ":"));
-           if (j == 0) {
-             break;
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_SuperElement.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_SuperElement.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_SuperElement.C  2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_SuperElement.C  2021-04-15 15:05:03.009043046 +0200
-@@ -267,7 +267,7 @@
-     }
-   }
-   else {
--    fmt::print(Ioss::WARNING(), "{} '{}'. Unknown input field '{}'", type(), name(),
-+    fmt::print(Ioss::STREAM_WARNING(), "{} '{}'. Unknown input field '{}'", type(), name(),
-                field.get_name());
-     return -4;
-   }
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_Utils.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_Utils.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_Utils.C 2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/exodus/Ioex_Utils.C 2021-04-15 15:05:03.009043046 +0200
-@@ -231,7 +231,7 @@
-       status = nc_get_att_int(exodusFilePtr, NC_GLOBAL, "processor_info", proc_info);
-       if (status == NC_NOERR) {
-         if (proc_info[0] != processor_count && proc_info[0] > 1) {
--          fmt::print(Ioss::WARNING(),
-+          fmt::print(Ioss::STREAM_WARNING(),
-                      "Processor decomposition count in file ({}) does not match current "
-                      "processor "
-                      "count ({}).\n",
-@@ -240,7 +240,7 @@
-         }
-         if (proc_info[1] != processor_id) {
-           fmt::print(
--              Ioss::WARNING(),
-+              Ioss::STREAM_WARNING(),
-               "This file was originally written on processor {}, but is now being read on "
-               "processor {}.\n"
-               "This may cause problems if there is any processor-dependent data on the file.\n",
-@@ -495,7 +495,7 @@
-           std::string tmp_name = Ioss::Utils::encode_entity_name(basename, name_id);
-           if (tmp_name == buffer.data()) {
-             std::string new_name = Ioss::Utils::encode_entity_name(basename, id);
--            fmt::print(Ioss::WARNING(),
-+            fmt::print(Ioss::STREAM_WARNING(),
-                        "The entity named '{}' has the id {} which does not match the "
-                        "embedded id {}.\n"
-                        "         This can cause issues later; the entity will be renamed to '{}' "
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/generated/Iogn_GeneratedMesh.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/generated/Iogn_GeneratedMesh.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/generated/Iogn_GeneratedMesh.C      2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/generated/Iogn_GeneratedMesh.C      2021-04-15 15:05:03.011043045 +0200
-@@ -371,7 +371,7 @@
-       }
-       else if (option[0] == "help") {
--        fmt::print(Ioss::OUTPUT(),
-+        fmt::print(Ioss::STREAM_OUTPUT(),
-                    "\nValid Options for GeneratedMesh parameter string:\n"
-                    "\tIxJxK -- specifies intervals; must be first option. Ex: 4x10x12\n"
-                    "\toffset:xoff, yoff, zoff\n"
-@@ -405,7 +405,7 @@
-   void GeneratedMesh::show_parameters() const
-   {
-     if (myProcessor == 0) {
--      fmt::print(Ioss::OUTPUT(),
-+      fmt::print(Ioss::STREAM_OUTPUT(),
-                  "\nMesh Parameters:\n"
-                  "\tIntervals: {} by {} by {}\n"
-                  "\tX = {} * (0..{}) + {}\tRange: {} <= X <= {}\n"
-@@ -423,14 +423,14 @@
-                  timestep_count());
-       if (doRotation) {
--        fmt::print(Ioss::OUTPUT(), "\tRotation Matrix: \n\t");
-+        fmt::print(Ioss::STREAM_OUTPUT(), "\tRotation Matrix: \n\t");
-         for (auto &elem : rotmat) {
-           for (double jj : elem) {
--            fmt::print(Ioss::OUTPUT(), "{:14.e}\t", jj);
-+            fmt::print(Ioss::STREAM_OUTPUT(), "{:14.e}\t", jj);
-           }
--          fmt::print(Ioss::OUTPUT(), "\n\t");
-+          fmt::print(Ioss::STREAM_OUTPUT(), "\n\t");
-         }
--        fmt::print(Ioss::OUTPUT(), "\n");
-+        fmt::print(Ioss::STREAM_OUTPUT(), "\n");
-       }
-     }
-   }
-@@ -1578,7 +1578,7 @@
-       n3 = 2;
-     }
-     else {
--      fmt::print(Ioss::WARNING(),
-+      fmt::print(Ioss::STREAM_WARNING(),
-                  "\nInvalid axis specification '{}'. Valid options are 'x', 'y', or 'z'\n", axis);
-       return;
-     }
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/gen_struc/Iogs_GeneratedMesh.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/gen_struc/Iogs_GeneratedMesh.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/gen_struc/Iogs_GeneratedMesh.C      2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/gen_struc/Iogs_GeneratedMesh.C      2021-04-15 15:05:03.010043045 +0200
-@@ -290,7 +290,7 @@
-       }
-       else if (option[0] == "help") {
--        fmt::print(Ioss::OUTPUT(),
-+        fmt::print(Ioss::STREAM_OUTPUT(),
-                    "\nValid Options for GeneratedMesh parameter string:\n"
-                    "\tIxJxK -- specifies intervals; must be first option. Ex: 4x10x12\n"
-                    "\toffset:xoff, yoff, zoff\n"
-@@ -310,7 +310,7 @@
-         show_parameters();
-       }
-       else {
--        fmt::print(Ioss::WARNING(), "Unrecognized option '{}'.  It will be ignored.\n", option[0]);
-+        fmt::print(Ioss::STREAM_WARNING(), "Unrecognized option '{}'.  It will be ignored.\n", option[0]);
-       }
-     }
-   }
-@@ -318,7 +318,7 @@
-   void GeneratedMesh::show_parameters() const
-   {
-     if (myProcessor == 0) {
--      fmt::print(Ioss::OUTPUT(),
-+      fmt::print(Ioss::STREAM_OUTPUT(),
-                  "\nMesh Parameters:\n"
-                  "\tIntervals: {} by {} by {}\n"
-                  "\tX = {} * (0..{}) + {}\tRange: {} <= X <= {}\n"
-@@ -334,14 +334,14 @@
-                  element_count(), structured_block_count(), sideset_count(), timestep_count());
-       if (doRotation) {
--        fmt::print(Ioss::OUTPUT(), "\tRotation Matrix: \n\t");
-+        fmt::print(Ioss::STREAM_OUTPUT(), "\tRotation Matrix: \n\t");
-         for (auto &elem : rotmat) {
-           for (double jj : elem) {
--            fmt::print(Ioss::OUTPUT(), "{:14.e}\t", jj);
-+            fmt::print(Ioss::STREAM_OUTPUT(), "{:14.e}\t", jj);
-           }
--          fmt::print(Ioss::OUTPUT(), "\n\t");
-+          fmt::print(Ioss::STREAM_OUTPUT(), "\n\t");
-         }
--        fmt::print(Ioss::OUTPUT(), "\n");
-+        fmt::print(Ioss::STREAM_OUTPUT(), "\n");
-       }
-     }
-   }
-@@ -872,7 +872,7 @@
-       variableCount[Ioss::SIDEBLOCK] = count;
-     }
-     else {
--      fmt::print(Ioss::WARNING(),
-+      fmt::print(Ioss::STREAM_WARNING(),
-                  "(Iogs::GeneratedMesh::set_variable_count)\n"
-                  "       Unrecognized variable type '{}'. Valid types are:\n"
-                  "       global, element, node, nodal, surface, sideset.\n",
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_DatabaseIO.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_DatabaseIO.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_DatabaseIO.C   2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_DatabaseIO.C   2021-04-15 15:05:02.964043048 +0200
-@@ -99,7 +99,7 @@
-     unsigned int       min_hash   = util.global_minmax(hash_code, Ioss::ParallelUtils::DO_MIN);
-     if (max_hash != min_hash) {
-       const std::string &ge_name = ge->name();
--      fmt::print(Ioss::WARNING(),
-+      fmt::print(Ioss::STREAM_WARNING(),
-                  "Parallel inconsistency detected for {} field '{}' on entity '{}'\n",
-                  in_out == 0 ? "writing" : "reading", field_name, ge_name);
-       return false;
-@@ -298,12 +298,12 @@
-           usingDataWarp = true;
-           dwPath        = bb_path;
-           if (myProcessor == 0) {
--            fmt::print(Ioss::OUTPUT(), "\nDataWarp Burst Buffer Enabled.  Path = `{}`\n\n", dwPath);
-+            fmt::print(Ioss::STREAM_OUTPUT(), "\nDataWarp Burst Buffer Enabled.  Path = `{}`\n\n", dwPath);
-           }
-         }
-         else {
-           if (myProcessor == 0) {
--            fmt::print(Ioss::WARNING(),
-+            fmt::print(Ioss::STREAM_WARNING(),
-                        "DataWarp enabled via Ioss property `ENABLE_DATAWARP`, but\n"
-                        "         burst buffer path was not specified via `DW_JOB_STRIPED` or "
-                        "`DW_JOB_PRIVATE`\n"
-@@ -336,7 +336,7 @@
- #if defined SEACAS_HAVE_DATAWARP
- #if IOSS_DEBUG_OUTPUT
-         if (myProcessor == 0) {
--          fmt::print(Ioss::DEBUG(), "DW: dw_wait_file_stage({});\n", bb_file.filename());
-+          fmt::print(Ioss::STREAM_DEBUG(), "DW: dw_wait_file_stage({});\n", bb_file.filename());
-         }
- #endif
-         int dwret = dw_wait_file_stage(bb_file.filename().c_str());
-@@ -348,7 +348,7 @@
-         }
- #else
-         // Used to debug DataWarp logic on systems without DataWarp...
--        fmt::print(Ioss::DEBUG(), "DW: (FAKE) dw_wait_file_stage({});\n", bb_file.filename());
-+        fmt::print(Ioss::STREAM_DEBUG(), "DW: (FAKE) dw_wait_file_stage({});\n", bb_file.filename());
- #endif
-       }
-       set_dwname(bb_file.filename());
-@@ -370,7 +370,7 @@
-         dw_query_file_stage(get_dwname().c_str(), &complete, &pending, &deferred, &failed);
- #if IOSS_DEBUG_OUTPUT
-         auto initial = std::chrono::high_resolution_clock::now();
--        fmt::print(Ioss::DEBUG(), "Query: {}, {}, {}, {}\n", complete, pending, deferred, failed);
-+        fmt::print(Ioss::STREAM_DEBUG(), "Query: {}, {}, {}, {}\n", complete, pending, deferred, failed);
- #endif
-         if (pending > 0) {
-           int dwret = dw_wait_file_stage(get_dwname().c_str());
-@@ -382,12 +382,12 @@
-           }
- #if IOSS_DEBUG_OUTPUT
-           dw_query_file_stage(get_dwname().c_str(), &complete, &pending, &deferred, &failed);
--          fmt::print(Ioss::DEBUG(), "Query: {}, {}, {}, {}\n", complete, pending, deferred, failed);
-+          fmt::print(Ioss::STREAM_DEBUG(), "Query: {}, {}, {}, {}\n", complete, pending, deferred, failed);
- #endif
-         }
- #if IOSS_DEBUG_OUTPUT
--        fmt::print(Ioss::DEBUG(), "\nDW: BEGIN dw_stage_file_out({}, {}, DW_STAGE_IMMEDIATE);\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), "\nDW: BEGIN dw_stage_file_out({}, {}, DW_STAGE_IMMEDIATE);\n",
-                    get_dwname(), get_pfsname());
- #endif
-         int ret =
-@@ -396,7 +396,7 @@
- #if IOSS_DEBUG_OUTPUT
-         auto                          time_now = std::chrono::high_resolution_clock::now();
-         std::chrono::duration<double> diff     = time_now - initial;
--        fmt::print(Ioss::DEBUG(), "\nDW: END dw_stage_file_out({})\n", diff.count());
-+        fmt::print(Ioss::STREAM_DEBUG(), "\nDW: END dw_stage_file_out({})\n", diff.count());
- #endif
-         if (ret < 0) {
-           std::ostringstream errmsg;
-@@ -405,7 +405,7 @@
-           IOSS_ERROR(errmsg);
-         }
- #else
--        fmt::print(Ioss::DEBUG(), "\nDW: (FAKE) dw_stage_file_out({}, {}, DW_STAGE_IMMEDIATE);\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), "\nDW: (FAKE) dw_stage_file_out({}, {}, DW_STAGE_IMMEDIATE);\n",
-                    get_dwname(), get_pfsname());
- #endif
-       }
-@@ -545,7 +545,7 @@
-   void DatabaseIO::create_group(EntityType /*type*/, const std::string &type_name,
-                                 const std::vector<std::string> &group_spec, const T * /*set_type*/)
-   {
--    fmt::print(Ioss::WARNING(),
-+    fmt::print(Ioss::STREAM_WARNING(),
-                "Grouping of {0} sets is not yet implemented.\n"
-                "         Skipping the creation of {0} set '{1}'\n\n",
-                type_name, group_spec[0]);
-@@ -600,7 +600,7 @@
-         }
-       }
-       else {
--        fmt::print(Ioss::WARNING(),
-+        fmt::print(Ioss::STREAM_WARNING(),
-                    "While creating the grouped surface '{}', the surface '{}' does not exist. "
-                    "This surface will skipped and not added to the group.\n\n",
-                    group_spec[0], group_spec[i]);
-@@ -1182,7 +1182,7 @@
-       if (util.parallel_size() > 1) {
-         fmt::print(strm, "\tTot: {} (ms)\n", total);
-       }
--      fmt::print(Ioss::DEBUG(), "{}", strm.str());
-+      fmt::print(Ioss::STREAM_DEBUG(), "{}", strm.str());
-     }
-   }
-@@ -1224,7 +1224,7 @@
-           fmt::print(strm, " T:{:8d}", total);
-         }
-         fmt::print(strm, "\t{}/{}\n", name, field.get_name());
--        fmt::print(Ioss::DEBUG(), "{}", strm.str());
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}", strm.str());
-       }
-     }
-     else {
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Decomposition.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Decomposition.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Decomposition.C        2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Decomposition.C        2021-04-15 15:05:02.964043048 +0200
-@@ -161,7 +161,7 @@
-     common_nodes = par_util.global_minmax(common_nodes, Ioss::ParallelUtils::DO_MIN);
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Setting common_nodes to {}\n", common_nodes);
-+    fmt::print(Ioss::STREAM_DEBUG(), "Setting common_nodes to {}\n", common_nodes);
- #endif
-     return common_nodes;
-   }
-@@ -315,12 +315,12 @@
-   {
-     show_progress(__func__);
-     if (m_processor == 0) {
--      fmt::print(Ioss::OUTPUT(),
-+      fmt::print(Ioss::STREAM_OUTPUT(),
-                  "\nIOSS: Using decomposition method '{}' for {:n} elements on {} processors.\n",
-                  m_method, m_globalElementCount, m_processorCount);
-       if ((size_t)m_processorCount > m_globalElementCount) {
--        fmt::print(Ioss::WARNING(),
-+        fmt::print(Ioss::STREAM_WARNING(),
-                    "Decomposing {} elements across {} processors will "
-                    "result in some processors with *NO* elements.\n",
-                    m_globalElementCount, m_processorCount);
-@@ -438,7 +438,7 @@
-     }
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(),
-+    fmt::print(Ioss::STREAM_DEBUG(),
-                "Processor {} communicates {} nodes from and {} nodes to other processors\n",
-                m_processor, sumr, sums);
- #endif
-@@ -722,7 +722,7 @@
-     show_progress("\tmetis_decompose Communication 2 finished");
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Processor {}:\t{} local, {} imported and {} exported elements\n",
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {}:\t{} local, {} imported and {} exported elements\n",
-                m_processor, m_elementCount - exp_size, imp_size, exp_size);
- #endif
-   }
-@@ -758,7 +758,7 @@
-                                    &ncon, &common_nodes, &nparts, tp_wgts.data(), ub_vec.data(),
-                                    options.data(), &edge_cuts, elem_partition, &m_comm);
- #if IOSS_DEBUG_OUTPUT
--      fmt::print(Ioss::DEBUG(), "Edge Cuts = {}\n", edge_cuts);
-+      fmt::print(Ioss::STREAM_DEBUG(), "Edge Cuts = {}\n", edge_cuts);
- #endif
-       if (rc != METIS_OK) {
-         std::ostringstream errmsg;
-@@ -796,7 +796,7 @@
-       }
- #if IOSS_DEBUG_OUTPUT
--      fmt::print(Ioss::DEBUG(), "Edge Cuts = {}\n", edge_cuts);
-+      fmt::print(Ioss::STREAM_DEBUG(), "Edge Cuts = {}\n", edge_cuts);
- #endif
-       METIS_Free(dual_xadj);
-       METIS_Free(dual_adjacency);
-@@ -886,7 +886,7 @@
-     show_progress("\tZoltan lb_partition finished");
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Processor {}:\t{} local, {} imported and {} exported elements\n",
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {}:\t{} local, {} imported and {} exported elements\n",
-                m_processor, m_elementCount - num_export, num_import, num_export);
- #endif
-@@ -1197,7 +1197,7 @@
-           nodes.push_back(i + m_nodeOffset);
-           found_count++;
- #if IOSS_DEBUG_OUTPUT
--          fmt::print(Ioss::DEBUG(), "Processor {}:\tNode {} not connected to any elements\n",
-+          fmt::print(Ioss::STREAM_DEBUG(), "Processor {}:\tNode {} not connected to any elements\n",
-                      m_processor, i + m_nodeOffset + 1);
- #endif
-         }
-@@ -1227,7 +1227,7 @@
- // Map that converts nodes from the global index (1-based) to a
- // local-per-processor index (1-based)
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Processor {}:\tNode Count = {}\n", m_processor, nodes.size());
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {}:\tNode Count = {}\n", m_processor, nodes.size());
- #endif
-     nodeGTL.swap(nodes);
-     for (size_t i = 0; i < nodeGTL.size(); i++) {
-@@ -1354,7 +1354,7 @@
-       m_nodeCommMap[i] = node_global_to_local(m_nodeCommMap[i] + 1);
-     }
- #if IOSS_DEBUG_OUTPUT
--    fmt::print(Ioss::DEBUG(), "Processor {} has {} shared nodes\n", m_processor,
-+    fmt::print(Ioss::STREAM_DEBUG(), "Processor {} has {} shared nodes\n", m_processor,
-                m_nodeCommMap.size() / 2);
- #endif
-     show_progress(__func__);
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_ElementTopology.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_ElementTopology.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_ElementTopology.C      2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_ElementTopology.C      2021-04-15 15:05:02.966043048 +0200
-@@ -158,7 +158,7 @@
-   std::string  ltype    = Ioss::Utils::lowercase(type);
-   auto         iter     = registry().find(ltype);
-   if (iter == registry().end()) {
--    fmt::print(Ioss::WARNING(), "The topology type '{}' is not supported.\n", type);
-+    fmt::print(Ioss::STREAM_WARNING(), "The topology type '{}' is not supported.\n", type);
-   }
-   else {
-     Ioss::ElementTopology *inst = (*iter).second;
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C    2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C    2021-04-15 15:05:02.971043048 +0200
-@@ -145,16 +145,16 @@
- void Ioss::IOFactory::show_configuration()
- {
--  fmt::print(Ioss::OUTPUT(), "\nIOSS Library Version '{}'\n\n", Ioss::Version());
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\nIOSS Library Version '{}'\n\n", Ioss::Version());
-   NameList db_types;
-   describe(&db_types);
--  fmt::print(Ioss::OUTPUT(), "Supported database types:\n\t{}\n", fmt::join(db_types, ", "));
-+  fmt::print(Ioss::STREAM_OUTPUT(), "Supported database types:\n\t{}\n", fmt::join(db_types, ", "));
- #if defined(SEACAS_HAVE_MPI)
--  fmt::print(Ioss::OUTPUT(), "\nSupported decomposition methods:\n\t{}\n", fmt::join(Ioss::valid_decomp_methods(), ", "));
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\nSupported decomposition methods:\n\t{}\n", fmt::join(Ioss::valid_decomp_methods(), ", "));
- #endif
--  fmt::print(Ioss::OUTPUT(), "\nThird-Party Library Configuration Information:\n\n");
-+  fmt::print(Ioss::STREAM_OUTPUT(), "\nThird-Party Library Configuration Information:\n\n");
-   // Each database type may appear multiple times in the registry
-   // due to aliasing (i.e. exodus, genesis, exodusII, ...)
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_ParallelUtils.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_ParallelUtils.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_ParallelUtils.C        2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_ParallelUtils.C        2021-04-15 15:05:02.974043048 +0200
-@@ -101,7 +101,7 @@
-       bool        all_digit = value.find_first_not_of("0123456789") == std::string::npos;
-       if (do_print && rank == 0) {
--        fmt::print(Ioss::OUTPUT(), "IOSS: Adding property '{}' with value '{}'\n", prop, value);
-+        fmt::print(Ioss::STREAM_OUTPUT(), "IOSS: Adding property '{}' with value '{}'\n", prop, value);
-       }
-       if (all_digit) {
-         int int_value = std::stoi(value);
-@@ -527,7 +527,7 @@
-   if (parallel_rank() == 0) {
-     double diff = Utils::timer() - begin;
--    fmt::print(Ioss::DEBUG(), "  [{:.3f}] ({}MiB  {}MiB  {}MiB)\t{}\n", diff, min / MiB, max / MiB,
-+    fmt::print(Ioss::STREAM_DEBUG(), "  [{:.3f}] ({}MiB  {}MiB  {}MiB)\t{}\n", diff, min / MiB, max / MiB,
-                avg / MiB, output);
-   }
- }
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Region.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Region.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Region.C       2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Region.C       2021-04-15 15:05:02.982043047 +0200
-@@ -812,7 +812,7 @@
-     if (!get_database()->is_input() && !stateTimes.empty() && time <= stateTimes.back()) {
-       // Check that time is increasing...
-       if (!warning_output) {
--        fmt::print(Ioss::WARNING(),
-+        fmt::print(Ioss::STREAM_WARNING(),
-                    "Current time {} is not greater than previous time {} in\n\t{}.\n"
-                    "This may cause problems in applications that assume monotonically increasing "
-                    "time values.\n",
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_SerializeIO.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_SerializeIO.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_SerializeIO.C  2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_SerializeIO.C  2021-04-15 15:05:02.983043047 +0200
-@@ -33,7 +33,7 @@
- #include <Ioss_DatabaseIO.h>    // for DatabaseIO
- #include <Ioss_ParallelUtils.h> // for ParallelUtils
- #include <Ioss_SerializeIO.h>
--#include <Ioss_Utils.h> // for IOSS_ERROR, Ioss::WARNING()
-+#include <Ioss_Utils.h> // for IOSS_ERROR, Ioss::STREAM_WARNING()
- #include <fmt/ostream.h>
- #include <ostream> // for operator<<, etc
- #include <string>  // for char_traits
-@@ -114,7 +114,7 @@
-   {
-     IOSS_FUNC_ENTER(m_);
-     if (s_rank != -1) {
--      fmt::print(Ioss::WARNING(), "Mesh I/O serialization group factor cannot be changed "
-+      fmt::print(Ioss::STREAM_WARNING(), "Mesh I/O serialization group factor cannot be changed "
-                                   "once serialized I/O has begun");
-     }
-     else {
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Tracer.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Tracer.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Tracer.C       2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Tracer.C       2021-04-15 15:05:02.995043046 +0200
-@@ -41,7 +41,7 @@
-   Tracer::Tracer(const char *function)
-   {
--    fmt::print(Ioss::DEBUG(), "Entering Function: {} at level {}\n", function, ++level);
-+    fmt::print(Ioss::STREAM_DEBUG(), "Entering Function: {} at level {}\n", function, ++level);
-     assert(level == 1);
-   }
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.C ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.C
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.C        2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.C        2021-04-15 15:05:03.001043046 +0200
-@@ -485,7 +485,7 @@
- int Ioss::Utils::field_warning(const Ioss::GroupingEntity *ge, const Ioss::Field &field,
-                                const std::string &inout)
- {
--  fmt::print(Ioss::WARNING(), "{} '{}'. Unknown {} field '{}'\n", ge->type_string(), ge->name(),
-+  fmt::print(Ioss::STREAM_WARNING(), "{} '{}'. Unknown {} field '{}'\n", ge->type_string(), ge->name(),
-              inout, field.get_name());
-   return -4;
- }
-@@ -1439,7 +1439,7 @@
-   if (!appending) {
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "DEFINING MODEL ... \n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "DEFINING MODEL ... \n");
-     }
-     dbi->progress("DEFINING MODEL");
-     if (!output_region.begin_mode(Ioss::STATE_DEFINE_MODEL)) {
-@@ -1485,7 +1485,7 @@
-     transfer_blobs(region, output_region, options, rank);
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "END STATE_DEFINE_MODEL...\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "END STATE_DEFINE_MODEL...\n");
-     }
-     dbi->progress("END STATE_DEFINE_MODEL");
-@@ -1493,15 +1493,15 @@
-     dbi->progress("output_region.end_mode(Ioss::STATE_DEFINE_MODEL) finished");
-     if (options.verbose && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "Maximum Field size = {:n} bytes.\n", max_field_size);
-+      fmt::print(Ioss::STREAM_DEBUG(), "Maximum Field size = {:n} bytes.\n", max_field_size);
-     }
-     data_pool.data.resize(max_field_size);
-     if (options.verbose && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "Resize finished...\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "Resize finished...\n");
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "TRANSFERRING MESH FIELD DATA ...\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "TRANSFERRING MESH FIELD DATA ...\n");
-     }
-     dbi->progress("TRANSFERRING MESH FIELD DATA ... ");
-@@ -1538,7 +1538,7 @@
-     for (const auto &isb : sbs) {
-       const std::string &name = isb->name();
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "{}, ", name);
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-       }
-       // Find matching output structured block
-       Ioss::StructuredBlock *osb = output_region.get_structured_block(name);
-@@ -1549,7 +1549,7 @@
-         auto &inb = isb->get_node_block();
-         auto &onb = osb->get_node_block();
-         if (options.debug && rank == 0) {
--          fmt::print(Ioss::DEBUG(), "NB: {}, ", inb.name());
-+          fmt::print(Ioss::STREAM_DEBUG(), "NB: {}, ", inb.name());
-         }
-         transfer_field_data(&inb, &onb, data_pool, Ioss::Field::MESH, options);
-@@ -1609,7 +1609,7 @@
-       for (const auto &ifs : fss) {
-         const std::string &name = ifs->name();
-         if (options.debug && rank == 0) {
--          fmt::print(Ioss::DEBUG(), "{}, ", name);
-+          fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-         }
-         // Find matching output sideset
-         Ioss::SideSet *ofs = output_region.get_sideset(name);
-@@ -1624,7 +1624,7 @@
-             // Find matching output sideblock
-             const std::string &fbname = ifb->name();
-             if (options.debug && rank == 0) {
--              fmt::print(Ioss::DEBUG(), "{}, ", fbname);
-+              fmt::print(Ioss::STREAM_DEBUG(), "{}, ", fbname);
-             }
-             Ioss::SideBlock *ofb = ofs->get_side_block(fbname);
-@@ -1636,11 +1636,11 @@
-         }
-       }
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "\n");
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n");
-       }
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "END STATE_MODEL... \n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "END STATE_MODEL... \n");
-     }
-     dbi->progress("END STATE_MODEL... ");
-     output_region.end_mode(Ioss::STATE_MODEL);
-@@ -1658,13 +1658,13 @@
-   } // !appending
-   if (options.debug && rank == 0) {
--    fmt::print(Ioss::DEBUG(), "DEFINING TRANSIENT FIELDS ... \n");
-+    fmt::print(Ioss::STREAM_DEBUG(), "DEFINING TRANSIENT FIELDS ... \n");
-   }
-   dbi->progress("DEFINING TRANSIENT FIELDS ... ");
-   if (region.property_exists("state_count") && region.get_property("state_count").get_int() > 0) {
-     if (options.verbose && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\nNumber of time steps on database = {}\n\n",
-+      fmt::print(Ioss::STREAM_DEBUG(), "\nNumber of time steps on database = {}\n\n",
-                  region.get_property("state_count").get_int());
-     }
-@@ -1695,14 +1695,14 @@
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "END STATE_DEFINE_TRANSIENT... \n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "END STATE_DEFINE_TRANSIENT... \n");
-     }
-     dbi->progress("END STATE_DEFINE_TRANSIENT... ");
-     output_region.end_mode(Ioss::STATE_DEFINE_TRANSIENT);
-   }
-   if (options.debug && rank == 0) {
--    fmt::print(Ioss::DEBUG(), "TRANSFERRING TRANSIENT FIELDS ... \n");
-+    fmt::print(Ioss::STREAM_DEBUG(), "TRANSFERRING TRANSIENT FIELDS ... \n");
-   }
-   dbi->progress("TRANSFERRING TRANSIENT FIELDS... ");
-@@ -1753,7 +1753,7 @@
-         for (const auto &isb : sbs) {
-           const std::string &name = isb->name();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "{}, ", name);
-+            fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-           }
-           // Find matching output structured block
-           Ioss::StructuredBlock *osb = output_region.get_structured_block(name);
-@@ -1778,7 +1778,7 @@
-         for (const auto &ifs : fss) {
-           const std::string &name = ifs->name();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "{}, ", name);
-+            fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-           }
-           // Find matching output sideset
-@@ -1792,7 +1792,7 @@
-               // Find matching output sideblock
-               const std::string &fbname = ifb->name();
-               if (options.debug && rank == 0) {
--                fmt::print(Ioss::DEBUG(), "{}, ", fbname);
-+                fmt::print(Ioss::STREAM_DEBUG(), "{}, ", fbname);
-               }
-               Ioss::SideBlock *ofb = ofs->get_side_block(fbname);
-@@ -1818,7 +1818,7 @@
-     }
-   }
-   if (options.debug && rank == 0) {
--    fmt::print(Ioss::DEBUG(), "END STATE_TRANSIENT... \n");
-+    fmt::print(Ioss::STREAM_DEBUG(), "END STATE_TRANSIENT... \n");
-   }
-   dbi->progress("END STATE_TRANSIENT (begin) ... ");
-@@ -1845,13 +1845,13 @@
-     for (const auto &inb : nbs) {
-       const std::string &name = inb->name();
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "{}, ", name);
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-       }
-       size_t num_nodes = inb->entity_count();
-       size_t degree    = inb->get_property("component_degree").get_int();
-       if (options.verbose && rank == 0) {
--        fmt::print(Ioss::DEBUG(), " Number of Coordinates per Node = {:14n}\n", degree);
--        fmt::print(Ioss::DEBUG(), " Number of Nodes                = {:14n}\n", num_nodes);
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of Coordinates per Node = {:14n}\n", degree);
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of Nodes                = {:14n}\n", num_nodes);
-       }
-       auto nb = new Ioss::NodeBlock(*inb);
-       output_region.add(nb);
-@@ -1875,7 +1875,7 @@
-       }
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "\n");
-     }
-   }
-@@ -1886,7 +1886,7 @@
-     for (const auto &entity : entities) {
-       const std::string &name = entity->name();
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "{}, ", name);
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-       }
-       // Find the corresponding output node_block...
-@@ -1896,7 +1896,7 @@
-       }
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "\n");
-     }
-   }
-@@ -1925,7 +1925,7 @@
-       for (const auto &iblock : blocks) {
-         const std::string &name = iblock->name();
-         if (options.debug && rank == 0) {
--          fmt::print(Ioss::DEBUG(), "{}, ", name);
-+          fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-         }
-         size_t count = iblock->entity_count();
-         total_entities += count;
-@@ -1934,13 +1934,13 @@
-         output_region.add(block);
-       }
-       if (options.verbose && rank == 0) {
--        fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n",
-                    (*blocks.begin())->type_string() + "s", blocks.size());
--        fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n",
-                    (*blocks.begin())->contains_string() + "s", total_entities);
-       }
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "\n");
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n");
-       }
-     }
-   }
-@@ -1960,7 +1960,7 @@
-           const auto &       iblock = blocks[i];
-           const std::string &name   = iblock->name();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "{}, ", name);
-+            fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-           }
-           size_t count = iblock->entity_count();
-           total_entities += count;
-@@ -1973,7 +1973,7 @@
-           auto &inb = iblock->get_node_block();
-           auto &onb = block->get_node_block();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "(NB: {}), ", inb.name());
-+            fmt::print(Ioss::STREAM_DEBUG(), "(NB: {}), ", inb.name());
-           }
-           transfer_mesh_info(&inb, &onb);
-         }
-@@ -1982,7 +1982,7 @@
-         for (const auto &iblock : blocks) {
-           const std::string &name = iblock->name();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "{}, ", name);
-+            fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-           }
-           size_t count = iblock->entity_count();
-           total_entities += count;
-@@ -1995,20 +1995,20 @@
-           auto &inb = iblock->get_node_block();
-           auto &onb = block->get_node_block();
-           if (options.debug && rank == 0) {
--            fmt::print(Ioss::DEBUG(), "(NB: {}), ", inb.name());
-+            fmt::print(Ioss::STREAM_DEBUG(), "(NB: {}), ", inb.name());
-           }
-           transfer_mesh_info(&inb, &onb);
-         }
-       }
-       if (options.verbose && rank == 0) {
--        fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n",
-                    (*blocks.begin())->type_string() + "s", blocks.size());
--        fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n",
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n",
-                    (*blocks.begin())->contains_string() + "s", total_entities);
-       }
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "\n");
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n");
-       }
-     }
-   }
-@@ -2042,7 +2042,7 @@
-     for (const auto &ss : fss) {
-       const std::string &name = ss->name();
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "{}, ", name);
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-       }
-       auto surf = new Ioss::SideSet(*ss);
-       output_region.add(surf);
-@@ -2062,13 +2062,13 @@
-     }
-     if (options.verbose && rank == 0 && !fss.empty()) {
--      fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n", (*fss.begin())->type_string() + "s",
-+      fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n", (*fss.begin())->type_string() + "s",
-                  fss.size());
--      fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}\n",
-+      fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}\n",
-                  (*fss.begin())->contains_string() + "s", total_sides);
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "\n");
-     }
-   }
-@@ -2081,7 +2081,7 @@
-       for (const auto &set : sets) {
-         const std::string &name = set->name();
-         if (options.debug && rank == 0) {
--          fmt::print(Ioss::DEBUG(), "{}, ", name);
-+          fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-         }
-         size_t count = set->entity_count();
-         total_entities += count;
-@@ -2090,12 +2090,12 @@
-       }
-       if (options.verbose && rank == 0) {
--        fmt::print(Ioss::DEBUG(), " Number of {:20s} = {:14n}",
-+        fmt::print(Ioss::STREAM_DEBUG(), " Number of {:20s} = {:14n}",
-                    (*sets.begin())->type_string() + "s", sets.size());
--        fmt::print(Ioss::DEBUG(), "\tLength of entity list = {:14n}\n", total_entities);
-+        fmt::print(Ioss::STREAM_DEBUG(), "\tLength of entity list = {:14n}\n", total_entities);
-       }
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "\n");
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n");
-       }
-     }
-   }
-@@ -2146,7 +2146,7 @@
-         fmt::print(stderr, "\tLength of entity list = {:14n}\n", total_entities);
-       }
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "\n");
-+        fmt::print(Ioss::STREAM_DEBUG(), "\n");
-       }
-     }
-   }
-@@ -2186,13 +2186,13 @@
-     for (const auto &ics : css) {
-       const std::string &name = ics->name();
-       if (options.debug && rank == 0) {
--        fmt::print(Ioss::DEBUG(), "{}, ", name);
-+        fmt::print(Ioss::STREAM_DEBUG(), "{}, ", name);
-       }
-       auto cs = new Ioss::CommSet(*ics);
-       output_region.add(cs);
-     }
-     if (options.debug && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\n");
-+      fmt::print(Ioss::STREAM_DEBUG(), "\n");
-     }
-   }
-@@ -2413,7 +2413,7 @@
- #endif
-     default:
-       if (field_name == "mesh_model_coordinates") {
--        fmt::print(Ioss::DEBUG(), "data_storage option not recognized.");
-+        fmt::print(Ioss::STREAM_DEBUG(), "data_storage option not recognized.");
-       }
-       return;
-     }
-@@ -2535,7 +2535,7 @@
-   void show_step(int istep, double time, const Ioss::MeshCopyOptions &options, int rank)
-   {
-     if (options.verbose && rank == 0) {
--      fmt::print(Ioss::DEBUG(), "\r\tTime step {:5d} at time {:10.5e}", istep, time);
-+      fmt::print(Ioss::STREAM_DEBUG(), "\r\tTime step {:5d} at time {:10.5e}", istep, time);
-     }
-   }
-diff -Naur ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.h ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.h
---- ParaView-5.9.0_ref/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.h        2021-02-04 15:22:04.000000000 +0100
-+++ ParaView-5.9.0_new/VTK/ThirdParty/ioss/vtkioss/Ioss_Utils.h        2021-04-15 15:05:03.001043046 +0200
-@@ -522,11 +522,11 @@
-                               Ioss::MeshCopyOptions &options);
-   };
--  inline std::ostream &OUTPUT() { return *Utils::m_outputStream; }
-+  inline std::ostream &STREAM_OUTPUT() { return *Utils::m_outputStream; }
--  inline std::ostream &DEBUG() { return *Utils::m_debugStream; }
-+  inline std::ostream &STREAM_DEBUG() { return *Utils::m_debugStream; }
--  inline std::ostream &WARNING()
-+  inline std::ostream &STREAM_WARNING()
-   {
-     *Utils::m_warningStream << Utils::m_preWarningText;
-     return *Utils::m_warningStream;
diff --git a/config/patches/paraview.0018-spns-26351-autoconvert.patch b/config/patches/paraview.0018-spns-26351-autoconvert.patch
deleted file mode 100644 (file)
index 997960f..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- ParaView.orig/Remoting/ServerManager/vtkSMInputArrayDomain.cxx     2021-09-09 08:57:14.769827497 +0200
-+++ ParaView/Remoting/ServerManager/vtkSMInputArrayDomain.cxx  2021-09-07 13:23:51.029276211 +0200
-@@ -144,26 +144,15 @@
-     *acceptable_as_type = attribute_type;
-   }
--  if (required_type == ANY)
-+  if (required_type == ANY_EXCEPT_FIELD && attribute_type == FIELD)
-   {
--    return attribute_type == POINT || attribute_type == CELL || attribute_type == FIELD ||
--      attribute_type == EDGE || attribute_type == VERTEX || attribute_type == ROW;
-+    return false;
-   }
--  if (required_type == ANY_EXCEPT_FIELD)
-+  if (required_type == ANY || required_type == ANY_EXCEPT_FIELD)
-   {
--    // Try out all attribute types except field data sequentially.
--    int attribute_types_to_try[] = { vtkDataObject::POINT, vtkDataObject::CELL,
--      vtkDataObject::VERTEX, vtkDataObject::EDGE, vtkDataObject::ROW, -1 };
--    for (int cc = 0; attribute_types_to_try[cc] != -1; ++cc)
--    {
--      if (vtkSMInputArrayDomain::IsAttributeTypeAcceptable(
--            attribute_types_to_try[cc], attribute_type, acceptable_as_type))
--      {
--        return true;
--      }
--    }
--    return false;
-+    return attribute_type == POINT || attribute_type == CELL || attribute_type == FIELD ||
-+      attribute_type == EDGE || attribute_type == VERTEX || attribute_type == ROW;
-   }
-   switch (attribute_type)
diff --git a/config/patches/paraview.0019-spns-26344-VTK-OpenMP.patch b/config/patches/paraview.0019-spns-26344-VTK-OpenMP.patch
deleted file mode 100644 (file)
index 41f72a2..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -Naur ParaView-5.9.0_ref/VTK/Filters/Geometry/vtkGeometryFilter.cxx ParaView-5.9.0/VTK/Filters/Geometry/vtkGeometryFilter.cxx
---- ParaView-5.9.0_ref/VTK/Filters/Geometry/vtkGeometryFilter.cxx      2021-09-16 13:17:47.022010882 +0200
-+++ ParaView-5.9.0/VTK/Filters/Geometry/vtkGeometryFilter.cxx  2021-09-16 13:21:51.054384099 +0200
-@@ -448,6 +448,71 @@
-     this->ICellIds.TakeReference(vtkIdList::New());
-     this->Coords.TakeReference(vtkPoints::New());
-   }
-+  
-+  LocalDataType(const LocalDataType& other)
-+  {
-+    this->ThreadId = other.ThreadId;
-+
-+    this->Verts = other.Verts;
-+    this->Lines = other.Lines;
-+    this->Polys = other.Polys;
-+    this->Strips = other.Strips;
-+
-+    this->VertsConnOffset = other.VertsConnOffset;
-+    this->VertsOffset = other.VertsOffset;
-+    this->LinesConnOffset = other.LinesConnOffset;
-+    this->LinesOffset = other.LinesOffset;
-+    this->PolysConnOffset = other.PolysConnOffset;
-+    this->PolysOffset = other.PolysOffset;
-+    this->StripsConnOffset = other.StripsConnOffset;
-+    this->StripsOffset = other.StripsOffset;
-+
-+    this->PointMap = other.PointMap;
-+    // These are here to have a different allocation for each threads
-+    this->Cell.TakeReference(vtkGenericCell::New());
-+    this->CellIds.TakeReference(vtkIdList::New());
-+    this->IPts.TakeReference(vtkIdList::New());
-+    this->ICellIds.TakeReference(vtkIdList::New());
-+    this->Coords.TakeReference(vtkPoints::New());
-+  }
-+
-+  LocalDataType& operator=(const LocalDataType& other)
-+  {
-+    if (this != &other)
-+    {
-+      LocalDataType tmp = LocalDataType(other);
-+      this->Swap(tmp);
-+    }
-+    return *this;
-+  }
-+
-+  void Swap(LocalDataType& other)
-+  {
-+    using std::swap; // the compiler will use custom swap for members if it exists
-+
-+    swap(this->Verts, other.Verts);
-+    swap(this->Lines, other.Lines);
-+    swap(this->Polys, other.Polys);
-+    swap(this->Strips, other.Strips);
-+
-+    swap(this->VertsConnOffset, other.VertsConnOffset);
-+    swap(this->VertsOffset, other.VertsOffset);
-+    swap(this->LinesConnOffset, other.LinesConnOffset);
-+    swap(this->LinesOffset, other.LinesOffset);
-+    swap(this->PolysConnOffset, other.PolysConnOffset);
-+    swap(this->PolysOffset, other.PolysOffset);
-+    swap(this->StripsConnOffset, other.StripsConnOffset);
-+    swap(this->StripsOffset, other.StripsOffset);
-+
-+    swap(this->PointMap, other.PointMap);
-+    swap(this->Cell, other.Cell);
-+    swap(this->CellIds, other.CellIds);
-+    swap(this->IPts, other.IPts);
-+    swap(this->ICellIds, other.ICellIds);
-+    swap(this->Coords, other.Coords);
-+  }
-+
-+
-   void SetPointMap(vtkIdType* ptMap)
-   {
diff --git a/config/patches/paraview.1001-ParaView_windows_catalyst_cmake.patch b/config/patches/paraview.1001-ParaView_windows_catalyst_cmake.patch
deleted file mode 100644 (file)
index fae772a..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Naur ParaView-5.9.0_SRC_orig/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-macros.cmake ParaView-5.9.0_SRC_modif/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-macros.cmake
---- ParaView-5.9.0_SRC_orig/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-macros.cmake       2021-04-15 12:41:13.691878300 +0300
-+++ ParaView-5.9.0_SRC_modif/ThirdParty/catalyst/vtkcatalyst/catalyst/cmake/catalyst-macros.cmake      2021-04-15 12:50:29.348516100 +0300
-@@ -65,11 +65,20 @@
-   if (arg_INSTALL_EXPORT_DEFAULT)
-     set (_exports EXPORT Catalyst)
-   endif()
--  if (arg_LIBRARY_DESTINATION)
--    install(
--      TARGETS ${arg_TARGET}
--      ${_exports}
--      LIBRARY DESTINATION ${arg_LIBRARY_DESTINATION})
-+  if(WIN32)
-+    if (arg_LIBRARY_DESTINATION)
-+      install(
-+        TARGETS ${arg_TARGET}
-+        ${_exports}
-+        RUNTIME DESTINATION ${arg_LIBRARY_DESTINATION})
-+    endif()
-+  else()
-+    if (arg_LIBRARY_DESTINATION)
-+      install(
-+        TARGETS ${arg_TARGET}
-+        ${_exports}
-+        LIBRARY DESTINATION ${arg_LIBRARY_DESTINATION})
-+    endif()
-   endif()
- endfunction()
-
diff --git a/config/patches/paraview.1002-ParaView_find_zlib.patch b/config/patches/paraview.1002-ParaView_find_zlib.patch
deleted file mode 100644 (file)
index c811a23..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur ParaView-5.8.0_SRC_orig/VTK/CMake/patches/3.13/FindZLIB.cmake ParaView-5.8.0_SRC_modif/VTK/CMake/patches/3.13/FindZLIB.cmake
---- ParaView-5.8.0_SRC_orig/VTK/CMake/patches/3.13/FindZLIB.cmake      2020-03-23 13:31:26.000000000 +0300
-+++ ParaView-5.8.0_SRC_modif/VTK/CMake/patches/3.13/FindZLIB.cmake     2020-04-13 14:13:11.214692753 +0300
-@@ -52,6 +52,11 @@
-
- set(_ZLIB_SEARCHES)
-
-+SET(ZLIB_ROOT_DIR $ENV{ZLIB_ROOT_DIR} CACHE PATH "PATH TO zlib.")
-+IF(ZLIB_ROOT_DIR)
-+  LIST(APPEND CMAKE_PREFIX_PATH "${ZLIB_ROOT_DIR}")
-+ENDIF(ZLIB_ROOT_DIR)
-+
- # Search ZLIB_ROOT first if it is set.
- if(ZLIB_ROOT)
-   set(_ZLIB_SEARCH_ROOT PATHS ${ZLIB_ROOT} NO_DEFAULT_PATH)
diff --git a/config/patches/planegcs.001_for_shaper.patch b/config/patches/planegcs.001_for_shaper.patch
deleted file mode 100644 (file)
index 28c2a5e..0000000
+++ /dev/null
@@ -1,647 +0,0 @@
-From 853a0a438422d61cf1b9756d6949e04e5270d495 Mon Sep 17 00:00:00 2001
-From: azv <azv@opencascade.com>
-Date: Thu, 2 Aug 2018 11:32:16 +0300
-Subject: [PATCH] Update PlaneGCS solver for SHAPER needs
-
-* Add possibility to compile PlaneGCS as a shared library
-* Possibility to avoid memory clearance inside the solver (make possible external memory management)
----
- src/Mod/Sketcher/App/planegcs/Constraints.h | 48 ++++++++---------
- src/Mod/Sketcher/App/planegcs/GCS.cpp       | 81 +++++++++++++++++++++++------
- src/Mod/Sketcher/App/planegcs/GCS.h         |  8 +--
- src/Mod/Sketcher/App/planegcs/Geo.h         | 34 ++++++------
- src/Mod/Sketcher/App/planegcs/Util.h        | 10 ++++
- 5 files changed, 123 insertions(+), 58 deletions(-)
-
-diff --git a/src/Mod/Sketcher/App/planegcs/Constraints.h b/src/Mod/Sketcher/App/planegcs/Constraints.h
-index 559f3a2..76e4763 100644
---- a/src/Mod/Sketcher/App/planegcs/Constraints.h
-+++ b/src/Mod/Sketcher/App/planegcs/Constraints.h
-@@ -91,7 +91,7 @@ namespace GCS
-         HyperbolaNegativeMinorY = 17
-     };
--    class Constraint
-+    class PLANEGCS_EXPORT Constraint
-     {
-     _PROTECTED_UNLESS_EXTRACT_MODE_:
-         VEC_pD origpvec; // is used only as a reference for redirecting and reverting pvec
-@@ -128,7 +128,7 @@ namespace GCS
-     };
-     // Equal
--    class ConstraintEqual : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqual : public Constraint
-     {
-     private:
-         inline double* param1() { return pvec[0]; }
-@@ -142,7 +142,7 @@ namespace GCS
-     };
-     // Difference
--    class ConstraintDifference : public Constraint
-+    class PLANEGCS_EXPORT ConstraintDifference : public Constraint
-     {
-     private:
-         inline double* param1() { return pvec[0]; }
-@@ -157,7 +157,7 @@ namespace GCS
-     };
-     // P2PDistance
--    class ConstraintP2PDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2PDistance : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -178,7 +178,7 @@ namespace GCS
-     };
-     // P2PAngle
--    class ConstraintP2PAngle : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2PAngle : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -200,7 +200,7 @@ namespace GCS
-     };
-     // P2LDistance
--    class ConstraintP2LDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintP2LDistance : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -224,7 +224,7 @@ namespace GCS
-     };
-     // PointOnLine
--    class ConstraintPointOnLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnLine : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -246,7 +246,7 @@ namespace GCS
-     };
-     // PointOnPerpBisector
--    class ConstraintPointOnPerpBisector : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnPerpBisector : public Constraint
-     {
-     private:
-         inline double* p0x() { return pvec[0]; }
-@@ -268,7 +268,7 @@ namespace GCS
-     };
-     // Parallel
--    class ConstraintParallel : public Constraint
-+    class PLANEGCS_EXPORT ConstraintParallel : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -291,7 +291,7 @@ namespace GCS
-     };
-     // Perpendicular
--    class ConstraintPerpendicular : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPerpendicular : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -315,7 +315,7 @@ namespace GCS
-     };
-     // L2LAngle
--    class ConstraintL2LAngle : public Constraint
-+    class PLANEGCS_EXPORT ConstraintL2LAngle : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -342,7 +342,7 @@ namespace GCS
-     };
-     // MidpointOnLine
--    class ConstraintMidpointOnLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintMidpointOnLine : public Constraint
-     {
-     private:
-         inline double* l1p1x() { return pvec[0]; }
-@@ -366,7 +366,7 @@ namespace GCS
-     };
-     // TangentCircumf
--    class ConstraintTangentCircumf : public Constraint
-+    class PLANEGCS_EXPORT ConstraintTangentCircumf : public Constraint
-     {
-     private:
-         inline double* c1x() { return pvec[0]; }
-@@ -389,7 +389,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     // PointOnEllipse
--    class ConstraintPointOnEllipse : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnEllipse : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -411,7 +411,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     
--    class ConstraintEllipseTangentLine : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEllipseTangentLine : public Constraint
-     {
-     private:
-         Line l;
-@@ -426,7 +426,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-         
--    class ConstraintInternalAlignmentPoint2Ellipse : public Constraint
-+    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Ellipse : public Constraint
-     {
-     public:
-         ConstraintInternalAlignmentPoint2Ellipse(Ellipse &e, Point &p1, InternalAlignmentType alignmentType);
-@@ -442,7 +442,7 @@ namespace GCS
-         InternalAlignmentType AlignmentType;
-     };
--    class ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintInternalAlignmentPoint2Hyperbola : public Constraint
-     {
-     public:
-         ConstraintInternalAlignmentPoint2Hyperbola(Hyperbola &e, Point &p1, InternalAlignmentType alignmentType);
-@@ -458,7 +458,7 @@ namespace GCS
-         InternalAlignmentType AlignmentType;
-     };
--    class ConstraintEqualMajorAxesConic : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqualMajorAxesConic : public Constraint
-     {
-     private:
-         MajorRadiusConic * e1;
-@@ -473,7 +473,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintEqualFocalDistance : public Constraint
-+    class PLANEGCS_EXPORT ConstraintEqualFocalDistance : public Constraint
-     {
-     private:
-         ArcOfParabola * e1;
-@@ -488,7 +488,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintCurveValue : public Constraint
-+    class PLANEGCS_EXPORT ConstraintCurveValue : public Constraint
-     {
-     private:
-         inline double* pcoord() { return pvec[2]; } //defines, which coordinate of point is being constrained by this constraint
-@@ -515,7 +515,7 @@ namespace GCS
-     };
-     
-     // PointOnHyperbola
--    class ConstraintPointOnHyperbola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnHyperbola : public Constraint
-     {
-     private:
-         inline double* p1x() { return pvec[0]; }
-@@ -538,7 +538,7 @@ namespace GCS
-     };
-     // PointOnParabola
--    class ConstraintPointOnParabola : public Constraint
-+    class PLANEGCS_EXPORT ConstraintPointOnParabola : public Constraint
-     {
-     private:
-         void errorgrad(double* err, double* grad, double *param); //error and gradient combined. Values are returned through pointers.
-@@ -558,7 +558,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
-     
--    class ConstraintAngleViaPoint : public Constraint
-+    class PLANEGCS_EXPORT ConstraintAngleViaPoint : public Constraint
-     {
-     private:
-         inline double* angle() { return pvec[0]; };
-@@ -583,7 +583,7 @@ namespace GCS
-         virtual double grad(double *);
-     };
--    class ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
-+    class PLANEGCS_EXPORT ConstraintSnell : public Constraint //snell's law angles constrainer. Point needs to lie on all three curves to be constraied.
-     {
-     private:
-         inline double* n1() { return pvec[0]; };
-diff --git a/src/Mod/Sketcher/App/planegcs/GCS.cpp b/src/Mod/Sketcher/App/planegcs/GCS.cpp
-index 474024a..9103653 100644
---- a/src/Mod/Sketcher/App/planegcs/GCS.cpp
-+++ b/src/Mod/Sketcher/App/planegcs/GCS.cpp
-@@ -101,11 +101,56 @@
- #endif
- #include <FCConfig.h>
-+#ifndef _GCS_USE_STL_OUTPUT
- #include <Base/Console.h>
-+#endif
- #include <boost/graph/adjacency_list.hpp>
- #include <boost/graph/connected_components.hpp>
-+namespace GCS
-+{
-+  void Log(const char* message)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(message);
-+#endif
-+  }
-+
-+  void Log(const char* format, const char* param)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    static char message[4096];
-+    sprintf(message, format, param);
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(format, param);
-+#endif
-+  }
-+
-+  void Log(const char* format, const size_t param)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    static char message[4096];
-+    sprintf(message, format, param);
-+    std::cout << message << std::endl;
-+#else
-+    Base::Console().Log(format, param);
-+#endif
-+}
-+
-+  void Warning(const char* message)
-+  {
-+#ifdef _GCS_USE_STL_OUTPUT
-+    std::cout << "Warning: " << message << std::endl;
-+#else
-+    Base::Console().Warning(message);
-+#endif
-+  }
-+}
-+
- typedef Eigen::FullPivHouseholderQR<Eigen::MatrixXd>::IntDiagSizeVectorType MatrixIndexType;
- #ifdef _GCS_DEBUG
-@@ -130,7 +175,7 @@ void LogMatrix(std::string str, Eigen::MatrixXd matrix )
- #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
- #endif
- }
-@@ -155,7 +200,7 @@ void LogMatrix(std::string str, MatrixIndexType matrix )
-     #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
-     #endif
- }
- #endif
-@@ -178,7 +223,7 @@ void LogString(std::string str)
-     #else
-     const std::string tmp = stream.str();
--    Base::Console().Log(tmp.c_str());
-+    GCS::Log(tmp.c_str());
-     #endif
- }
-@@ -429,7 +474,11 @@ void System::clear()
-     reference.clear();
-     clearSubSystems();
-+#ifdef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
-+    clist.clear();
-+#else
-     free(clist);
-+#endif
-     c2p.clear();
-     p2c.clear();
- }
-@@ -486,9 +535,11 @@ void System::removeConstraint(Constraint *constr)
-     }
-     c2p.erase(constr);
-+#ifndef _GCS_DO_NOT_FREE_CONSTRAINTS_MEMORY
-     std::vector<Constraint *> constrvec;
-     constrvec.push_back(constr);
-     free(constrvec);
-+#endif
- }
- // basic constraints
-@@ -1477,7 +1528,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                 << ", maxIter: "            << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     double divergingLim = 1e6*err + 1e12;
-@@ -1493,7 +1544,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                         << ", h_norm: "           << h_norm  << "\n";
-                 const std::string tmp = stream.str();
--                Base::Console().Log(tmp.c_str());
-+                GCS::Log(tmp.c_str());
-             }
-             break;
-         }
-@@ -1505,7 +1556,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                         << ", divergingLim: "            << divergingLim  << "\n";
-                 const std::string tmp = stream.str();
--                Base::Console().Log(tmp.c_str());
-+                GCS::Log(tmp.c_str());
-             }
-             break;
-         }
-@@ -1542,7 +1593,7 @@ int System::solve_BFGS(SubSystem *subsys, bool /*isFine*/, bool isRedundantsolvi
-                     << ", h_norm: "                 << h_norm << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-     }
-@@ -1598,7 +1649,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
-                 << ", maxIter: "        << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     double nu=2, mu=0;
-@@ -1712,7 +1763,7 @@ int System::solve_LM(SubSystem* subsys, bool isRedundantsolving)
-                     << ", h_norm: "                 << h_norm << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-     }
-@@ -1757,7 +1808,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-                 << ", maxIter: "        << maxIterNumber  << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     Eigen::VectorXd x(xsize), x_new(xsize);
-@@ -1912,7 +1963,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-                     << ", err(divergingLim): "  << err  << "\n";
-             const std::string tmp = stream.str();
--            Base::Console().Log(tmp.c_str());
-+            GCS::Log(tmp.c_str());
-         }
-         // count this iteration and start again
-@@ -1926,7 +1977,7 @@ int System::solve_DL(SubSystem* subsys, bool isRedundantsolving)
-         stream  << "DL: stopcode: "     << stop << ((stop == 1) ? ", Success" : ", Failed") << "\n";
-         const std::string tmp = stream.str();
--        Base::Console().Log(tmp.c_str());
-+        GCS::Log(tmp.c_str());
-     }
-     return (stop == 1) ? Success : Failed;
-@@ -3721,7 +3772,7 @@ int System::diagnose(Algorithm alg)
-     Eigen::SparseQR<Eigen::SparseMatrix<double>, Eigen::COLAMDOrdering<int> > SqrJT;
- #else
-     if(qrAlgorithm==EigenSparseQR){
--        Base::Console().Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
-+        GCS::Warning("SparseQR not supported by you current version of Eigen. It requires Eigen 3.2.2 or higher. Falling back to Dense QR\n");
-         qrAlgorithm=EigenDenseQR;
-     }
- #endif
-@@ -4074,7 +4125,7 @@ int System::diagnose(Algorithm alg)
-                         break;
-                 }
--                Base::Console().Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
-+                GCS::Log("Sketcher::RedundantSolving-%s-\n",solvername.c_str());
-             }
-             if (res == Success) {
-@@ -4088,7 +4139,7 @@ int System::diagnose(Algorithm alg)
-                 resetToReference();
-                 if(debugMode==Minimal || debugMode==IterationLevel) {
--                    Base::Console().Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
-+                    GCS::Log("Sketcher Redundant solving: %d redundants\n",redundant.size());
-                 }
-                 std::vector< std::vector<Constraint *> > conflictGroupsOrig=conflictGroups;
-diff --git a/src/Mod/Sketcher/App/planegcs/GCS.h b/src/Mod/Sketcher/App/planegcs/GCS.h
-index 17d57c8..ecc5b04 100644
---- a/src/Mod/Sketcher/App/planegcs/GCS.h
-+++ b/src/Mod/Sketcher/App/planegcs/GCS.h
-@@ -69,7 +69,7 @@ namespace GCS
-         IterationLevel = 2
-     };
--    class System
-+    class PLANEGCS_EXPORT System
-     {
-     // This is the main class. It holds all constraints and information
-     // about partitioning into subsystems and solution strategies
-@@ -283,9 +283,9 @@ namespace GCS
-     // Helper elements
-     ///////////////////////////////////////
--    void free(VEC_pD &doublevec);
--    void free(std::vector<Constraint *> &constrvec);
--    void free(std::vector<SubSystem *> &subsysvec);
-+    PLANEGCS_EXPORT void free(VEC_pD &doublevec);
-+    PLANEGCS_EXPORT void free(std::vector<Constraint *> &constrvec);
-+    PLANEGCS_EXPORT void free(std::vector<SubSystem *> &subsysvec);
- } //namespace GCS
-diff --git a/src/Mod/Sketcher/App/planegcs/Geo.h b/src/Mod/Sketcher/App/planegcs/Geo.h
-index 1cdb983..6246f3b 100644
---- a/src/Mod/Sketcher/App/planegcs/Geo.h
-+++ b/src/Mod/Sketcher/App/planegcs/Geo.h
-@@ -26,16 +26,20 @@
- #include <cmath>
- #include "Util.h"
-+#ifdef _MSC_VER
-+#pragma warning(disable : 4251)
-+#endif
-+
- namespace GCS
- {
--    class DependentParameters 
-+    class PLANEGCS_EXPORT DependentParameters
-     {
-     public:
-         DependentParameters():hasDependentParameters(false) {}
-         bool hasDependentParameters;
-     };
-     
--    class Point : public DependentParameters
-+    class PLANEGCS_EXPORT Point : public DependentParameters
-     {
-     public:
-         Point(){x = 0; y = 0;}
-@@ -55,7 +59,7 @@ namespace GCS
-     ///manually as well. The class also provides a bunch of methods to do math
-     ///on it (and derivatives are calculated implicitly).
-     ///
--    class DeriVector2
-+    class PLANEGCS_EXPORT DeriVector2
-     {
-     public:
-         DeriVector2(){x=0; y=0; dx=0; dy=0;}
-@@ -95,7 +99,7 @@ namespace GCS
-     // Geometries
-     ///////////////////////////////////////
--    class Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
-+    class PLANEGCS_EXPORT Curve: public DependentParameters //a base class for all curve-based objects (line, circle/arc, ellipse/arc)
-     {
-     public:
-         virtual ~Curve(){}
-@@ -125,7 +129,7 @@ namespace GCS
-         virtual Curve* Copy() = 0; //DeepSOIC: I haven't found a way to simply copy a curve object provided pointer to a curve object.
-     };
--    class Line: public Curve
-+    class PLANEGCS_EXPORT Line: public Curve
-     {
-     public:
-         Line(){}
-@@ -139,7 +143,7 @@ namespace GCS
-         virtual Line* Copy();
-     };
--    class Circle: public Curve
-+    class PLANEGCS_EXPORT Circle: public Curve
-     {
-     public:
-         Circle(){rad = 0;}
-@@ -153,7 +157,7 @@ namespace GCS
-         virtual Circle* Copy();
-     };
--    class Arc: public Circle
-+    class PLANEGCS_EXPORT Arc: public Circle
-     {
-     public:
-         Arc(){startAngle=0;endAngle=0;rad=0;}
-@@ -169,7 +173,7 @@ namespace GCS
-         virtual Arc* Copy();
-     };
-     
--    class MajorRadiusConic: public Curve
-+    class PLANEGCS_EXPORT MajorRadiusConic: public Curve
-     {
-     public:
-         virtual ~MajorRadiusConic(){}
-@@ -179,7 +183,7 @@ namespace GCS
-         DeriVector2 CalculateNormal(Point &p, double* derivparam = 0) = 0;
-     };
-     
--    class Ellipse: public MajorRadiusConic
-+    class PLANEGCS_EXPORT Ellipse: public MajorRadiusConic
-     {
-     public:
-         Ellipse(){ radmin = 0;}
-@@ -197,7 +201,7 @@ namespace GCS
-         virtual Ellipse* Copy();
-     };
-     
--    class ArcOfEllipse: public Ellipse
-+    class PLANEGCS_EXPORT ArcOfEllipse: public Ellipse
-     {
-     public:
-         ArcOfEllipse(){startAngle=0;endAngle=0;radmin = 0;}
-@@ -215,7 +219,7 @@ namespace GCS
-         virtual ArcOfEllipse* Copy();
-     };
-     
--    class Hyperbola: public MajorRadiusConic
-+    class PLANEGCS_EXPORT Hyperbola: public MajorRadiusConic
-     {
-     public:
-         Hyperbola(){ radmin = 0;}
-@@ -233,7 +237,7 @@ namespace GCS
-         virtual Hyperbola* Copy();
-     };    
--    class ArcOfHyperbola: public Hyperbola
-+    class PLANEGCS_EXPORT ArcOfHyperbola: public Hyperbola
-     {
-     public:
-         ArcOfHyperbola(){startAngle=0;endAngle=0;radmin = 0;}
-@@ -249,7 +253,7 @@ namespace GCS
-         virtual ArcOfHyperbola* Copy();
-     };
-     
--    class Parabola: public Curve
-+    class PLANEGCS_EXPORT Parabola: public Curve
-     {
-     public:
-         Parabola(){ }
-@@ -263,7 +267,7 @@ namespace GCS
-         virtual Parabola* Copy();
-     };    
--    class ArcOfParabola: public Parabola
-+    class PLANEGCS_EXPORT ArcOfParabola: public Parabola
-     {
-     public:
-         ArcOfParabola(){startAngle=0;endAngle=0;}
-@@ -279,7 +283,7 @@ namespace GCS
-         virtual ArcOfParabola* Copy();
-     };
--    class BSpline: public Curve
-+    class PLANEGCS_EXPORT BSpline: public Curve
-     {
-     public:
-         BSpline(){periodic=false;degree=2;}
-diff --git a/src/Mod/Sketcher/App/planegcs/Util.h b/src/Mod/Sketcher/App/planegcs/Util.h
-index 8a759ba..7baafaa 100644
---- a/src/Mod/Sketcher/App/planegcs/Util.h
-+++ b/src/Mod/Sketcher/App/planegcs/Util.h
-@@ -44,4 +44,14 @@ namespace GCS
- } //namespace GCS
-+#if defined WIN32
-+#  if defined PLANEGCS_EXPORTS
-+#    define PLANEGCS_EXPORT __declspec(dllexport)
-+#  else
-+#    define PLANEGCS_EXPORT __declspec(dllimport)
-+#  endif
-+#else
-+#  define PLANEGCS_EXPORT
-+#endif
-+
- #endif // PLANEGCS_UTIL_H
--- 
-2.9.0.windows.1
-
diff --git a/config/patches/pyqt5sip.001_sipBool.patch b/config/patches/pyqt5sip.001_sipBool.patch
deleted file mode 100644 (file)
index b33b4da..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- PyQt5_sip-12.8.1/sipint.h  2020-08-29 13:27:37.000000000 +0300
-+++ PyQt5_sip-12.8.1/sipint.h.new      2021-03-17 12:06:11.287544763 +0300
-@@ -177,9 +177,9 @@
- void sipOMAddObject(sipObjectMap *om, sipSimpleWrapper *val);
- int sipOMRemoveObject(sipObjectMap *om, sipSimpleWrapper *val);
--#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-+//#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- #define sipSetBool(p, v)    (*(_Bool *)(p) = (v))
--#endif
-+//#endif
- #ifdef __cplusplus
diff --git a/config/patches/qt.001_proxy_factory.patch b/config/patches/qt.001_proxy_factory.patch
deleted file mode 100644 (file)
index b39fa98..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -NaurwB /tmp/qt/qt-5.6.1__0/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp /tmp/qt/qt-5.6.1__1/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp
---- qt-5.6.1__0/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp   2016-05-25 18:46:17.000000000 +0300
-+++ qt-5.6.1__1/qtbase/src/network/kernel/qnetworkproxy_libproxy.cpp   2017-03-15 17:51:11.051090499 +0300
-@@ -74,7 +74,7 @@
-     QList<QUrl> ret;
-     if (factory) {
--        char **proxies = px_proxy_factory_get_proxies(factory, url.toEncoded());
-+        char **proxies = px_proxy_factory_get_proxies(factory, url.toEncoded().data());
-         if (proxies) {
-             for (int i = 0; proxies[i]; i++) {
-                 ret.append(QUrl::fromEncoded(proxies[i]));
diff --git a/config/patches/qt.002_xkbcommon.patch b/config/patches/qt.002_xkbcommon.patch
deleted file mode 100644 (file)
index 692861d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- qt-everywhere-src-5.12.10/qtbase/src/gui/configure.json    2021-03-17 12:16:55.144830165 +0300
-+++ qt-everywhere-src-5.12.10/qtbase/src/gui/configure.json.new        2021-03-17 12:16:41.605223710 +0300
-@@ -758,13 +758,13 @@
-             "use": "xcb"
-         },
-         "xkbcommon": {
--            "label": "xkbcommon >= 0.5.0",
-+            "label": "xkbcommon >= 0.4.3",
-             "test": {
-                 "main": "xkb_context_new(XKB_CONTEXT_NO_FLAGS);"
-             },
-             "headers": [ "xkbcommon/xkbcommon.h" ],
-             "sources": [
--                { "type": "pkgConfig", "args": "xkbcommon >= 0.5.0" },
-+                { "type": "pkgConfig", "args": "xkbcommon >= 0.4.3" },
-                 "-lxkbcommon"
-             ]
-         },
diff --git a/config/patches/rkcommon.001_native_tbb.patch b/config/patches/rkcommon.001_native_tbb.patch
deleted file mode 100644 (file)
index fdf3156..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- rkcommon-1.5.1/cmake/FindTBB.cmake 2021-03-09 14:26:46.000000000 +0300
-+++ rkcommon-1.5.1/cmake/FindTBB.cmake.new     2021-03-17 12:26:35.339966172 +0300
-@@ -269,8 +269,7 @@
- function(rk_tbb_find_include_directory)
-   find_path(TBB_INCLUDE_DIR
-     NAMES "${_TBB_HEADER}"
--    HINTS "${TBB_ROOT}/${_TBB_INCLUDE_SUBDIR}"
--    NO_PACKAGE_ROOT_PATH)
-+    HINTS "${TBB_ROOT}/${_TBB_INCLUDE_SUBDIR}")
- endfunction()
- #===============================================================================
diff --git a/config/patches/scotch.001.create_makefile.patch b/config/patches/scotch.001.create_makefile.patch
deleted file mode 100644 (file)
index f9383cc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Naur scotch-6.0.4_SRC_orig/src/Makefile.inc scotch-6.0.4_SRC_modif/src/Makefile.inc
---- scotch-6.0.4_SRC_orig/src/Makefile.inc     1970-01-01 03:00:00.000000000 +0300
-+++ scotch-6.0.4_SRC_modif/src/Makefile.inc    2018-10-31 16:29:41.986238044 +0300
-@@ -0,0 +1,21 @@
-+EXE           =
-+LIB           = .a
-+OBJ           = .o
-+
-+MAKE          = make
-+AR            = ar
-+ARFLAGS               = -ruv
-+CAT           = cat
-+CCS           = gcc
-+CCP           = mpicc
-+CCD           = gcc
-+CFLAGS                = -fPIC -pg -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME
-+CLIBFLAGS     =
-+LDFLAGS               = -lz -lm -pthread
-+CP            = cp
-+LEX           = flex -Pscotchyy -olex.yy.c
-+LN            = ln
-+MKDIR         = mkdir
-+MV            = mv
-+RANLIB                = ranlib
-+YACC          = bison -pscotchyy -y -b y
diff --git a/config/salome.xml b/config/salome.xml
deleted file mode 100644 (file)
index 96b75e7..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-<!DOCTYPE config>
-<config comment="SALOME 9.7" name="V9_8_0">
-  <product name="alabaster" version="0.7.6" />
-  <product name="babel" version="2.6.0" />
-  <product name="boost" version="1.58.0">
-    <patches>
-      <patch comment="Windows: fix incorrect version parsing" name="boost.101-python.patch" sha1="9400a21bea35c593ac24ffc65bc9ba9a25677a18" />
-    </patches>
-  </product>
-  <product name="certifi" version="2018.4.16" />
-  <product name="cgns" version="4.1.1" />
-  <product name="chardet" version="3.0.4" />
-  <product name="click" version="6.7" />
-  <product name="cmake" version="3.12.1" />
-  <product name="cppunit" version="1.12.1" />
-  <product name="cycler" version="0.10.0" />
-  <product name="cython" version="0.25.2" />
-  <product name="dateutils" version="2.4.2" />
-  <product name="docutils" version="0.12" />
-  <product name="doxygen" version="1.8.14" />
-  <product name="eigen" version="3.2.7" />
-  <product name="embree" version="3.12.2" />
-  <product name="freeimage" version="3.16.0">
-    <patches>
-      <patch comment="Fix compilation problems" name="freeimage.001_sources.patch" sha1="d6272a9ac10f9bbbbe6e395185dda2abc11b1d1e" />
-      <patch comment="Fix build procedure" name="freeimage.002_build_procedure.patch" sha1="afc5a81fe423bc229a05bb11c41f81cf29b56d23" />
-      <patch comment="Gcc 4.7 compatibility" name="freeimage.003_gcc47_compat.patch" sha1="cce05f6c38ab6b8e16a1a5765278848fc09b0955" />
-      <patch comment="Gcc 6 compatibility" name="freeimage.004_gcc66.patch" sha1="16a744c44edd656313518a2c4395faf3c2231b29" />
-    </patches>
-  </product>
-  <product name="freetype" version="2.9.0" />
-  <product name="gmsh" version="4.8.4" />
-  <product name="graphviz" version="2.38.0">
-    <patches>
-      <patch comment="Fix build procedure" name="graphviz.001_build_procedure.patch" sha1="4b227e20ad416e8f08911fa907b66deb1d359102" />
-    </patches>
-  </product>
-  <product name="hdf5" version="1.10.3">
-    <patches>
-      <patch comment="Fix problem with threads libaray" name="hdf5.001_threads_threads.patch" sha1="b0c783d7232f2b061b461e9409222c2d69b7fe49" />
-    </patches>
-  </product> 
-  <product name="h5py" version="2.5.0" />
-  <product name="idna" version="2.7" />
-  <product name="imagesize" version="1.0.0" />
-  <product name="ispc" version="1.15.0" />
-  <product name="jinja2" version="2.7.3" />
-  <product name="kiwisolver" version="1.0.1" />
-  <product name="lapack" version="3.7.0" />
-  <product name="libxml2" version="2.9.1"/>
-  <product name="llvm" version="3.9.1"/>
-  <product name="markupsafe" version="0.23" />
-  <product name="matplotlib" version="2.2.2">
-    <patches>
-      <patch comment="Fix build procedure: create configuration file properly" name="matplotlib.001_build_procedure.patch" sha1="e01651c9160f7a2a73311ba0cbf1686385bea301" />
-    </patches>
-  </product>
-  <product name="medfile" version="4.1.1">
-    <patches>
-      <patch comment="Correct cmake configuration file" name="med.001_cmake_config.patch" sha1="64592f806ab4b05154abfc7074dadcba4256a019" />
-    </patches>
-  </product>
-  <product name="mesa" version="19.0.8" />
-  <product name="meshgems" version="2.13.1" />
-  <product name="metis" version="5.1.0" />
-  <product name="mpich2" version="1.4.1p1" />
-  <product name="mpi4py" version="1.3.1" />
-  <product name="netgen" version="6.2.2101">
-    <patches>
-      <patch comment="General patch needed for SALOME platform" name="netgen.001.common.v6.patch" sha1="9263077b247885bef338da65c3a759f973514c5c" />
-      <patch comment="Fix incorrect version parsing" name="netgen.002.version.v6.patch" sha1="6182d3b1b415d342a55518f6e681008aff5921e1" />
-      <patch comment="Fix missing dependency for threads" name="netgen.003.pthread.v6.patch" sha1="f929fe0cd24b14f21525060952c63a43e2ee3c8e" />
-    </patches>
-  </product>
-  <product name="nlopt" version="2.4.2" />
-  <product name="nose" version="1.3.7" />
-  <product name="numpy" version="1.15.1">
-    <patches>
-      <patch comment="Fix problem with shell command" name="numpy.001_shell.patch" sha1="d004dfb9053fcc7bcdc021e8c7aa3eb552a80452" />
-    </patches>
-  </product>
-  <product name="occt" version="7.5.3p1">
-    <patches>
-      <patch comment="Fix problem with rendering transparent objects" name="occt.001_transparency.patch" sha1="958c573a558397560a2d5bcc0ee4e3b7258ee7fe" />
-    </patches>
-  </product>
-  <product name="omniorb" version="4.2.2" />
-  <product name="omniorbpy" version="4.2.2" />
-  <product name="opencv" version="3.2.0">
-    <patches>
-      <patch comment="Fix compilation problem (reduce optimizaion level)" name="opencv.001_compile.patch" sha1="608f927c36b71ba406d23ec8ea97353abdf9e264"/>
-      <patch comment="Fix error in the CMake list" name="opencv.002_cmake.patch" sha1="beedeb178af05ab4b8687fc36ee73a601a0b7461"/>
-    </patches>
-  </product>
-  <product name="openmpi" version="1.8.5" />
-  <product name="openturns" version="1.17" />
-  <product name="openvkl" version="0.11.0" />
-  <product name="ospray" version="2.4.0" />
-  <product name="packaging" version="17.1" />
-  <product name="paraview" version="5.9.0">
-    <patches>
-      <patch comment="Patch for ParaView client" name="paraview.0003-ParaViewClient.patch" sha1="5a09612a69ecb13831062f36eee50a02b82370da" />
-      <patch comment="Patch for ParaView HDF5" name="paraview.0004-ParaView_hdf5.patch" sha1="b34706a3bb5e6873b0c94726e565624928994a57" />
-      <patch comment="Patch for ParaView CNGS's detection procedure" name="paraview.0005-ParaView_find_cgns.patch" sha1="b48b6008506607eaedbbeb662ca822903bcc274d" />
-      <patch comment="Patch for ParaView libxml2's detection procedure" name="paraview.0006-ParaView_find_libxml2.patch" sha1="adc67576f12ca3b6abc06be2960495029c24c2a6" />
-      <patch comment="Patch for ParaView freetype's detection procedure" name="paraview.0007-ParaView_find_freetype.patch" sha1="58a8b25b56fb325134129445c2ac90d7d4115980" />
-      <patch comment="Patch to fix ParaView bug with rendering coincident topology" name="paraview.0008-ParaView_coincident_rendering.patch" sha1="8c61f791b6a14d9a565f35ba44a51b8215cfa3ed" />
-      <patch comment="Patch for CATALYST plugin" name="paraview.0010-ParaView_CATALYST_cmake.patch" sha1="c6140c0ee3e23cae98389c363e8945a6c7e5d61c" />
-      <patch comment="Patch to prevent crahs on ParaView exit" name="paraview.0011-ParaView_protobuf_crash.patch" sha1="f99abafb92f9aaa9a3e2f14069d5c1666e460a07" />
-      <patch comment="Patch for VTKm" name="paraview.0015-Paraview_VTKM_ioss.patch" sha1="e9f575cc81b0c8df2d132e12c73f8907798cf5cb" />
-      <patch comment="Patch for auto convert property" name="paraview.0018-spns-26351-autoconvert.patch" sha1="4e277d12db88643e83a13f9c95491b9698b60f96" />
-      <patch comment="Patch for OpenMP" name="paraview.0019-spns-26344-VTK-OpenMP.patch" sha1="86229ac330887582f03d5a2a43048f49a6d17b97" />
-      <patch comment="Windows: Additional patch for CATALYST plugin" name="paraview.1001-ParaView_windows_catalyst_cmake.patch" sha1="e7e9dba93d04834246f30859e95fcc3b19888344" />
-      <patch comment="Windows: Patch for ParaView zlib's detection procedure" name="paraview.1002-ParaView_find_zlib.patch" sha1="2221adf14cbb2ec063409f82ed93ad759d1efb98" />
-    </patches>
-  </product>
-  <product name="pillow" version="7.1.1" />  
-  <product name="pkgconfig" version="1.1.0" />
-  <product name="planegcs" version="0.18">
-    <patches>
-      <patch comment="Patch planegcs for shaper needs" name="planegcs.001_for_shaper.patch" sha1="2f210b3cc4cb4b59aea1dcd05df406a36342981a" />
-    </patches>
-  </product>
-  <product name="pockets" version="0.6.2" />
-  <product name="psutil" version="5.8.0" />
-  <product name="pygments" version="2.0.2" />
-  <product name="pyparsing" version="2.0.3" />
-  <product name="pyqt" version="5.15.3" />
-  <product name="pyqtsip" version="12.8.1">
-    <patches>
-      <patch comment="Fix undefined symbol sipSetBool" name="pyqt5sip.001_sipBool.patch" sha1="9fa714c393c8daa6a6dfb96cb38468026f18d2b3" />
-    </patches>
-  </product>
-  <product name="python" version="3.6.0" />
-  <product name="pytz" version="2015.4" />
-  <product name="qt" version="5.12.10">
-    <patches>
-      <patch comment="Patch to downgrade xkbcommo requirements" name="qt.002_xkbcommon.patch" sha1="e85dd94d3b848901ceff504671a9f48d6dc73ff4" />
-    </patches>
-  </product>
-  <product name="qwt" version="6.1.2" />
-  <product name="rkcommon" version="1.5.1">
-    <patches>
-      <patch comment="Patch to prevent picking native TBB" name="rkcommon.001_native_tbb.patch" sha1="b3d454c3ba0a1d5dcee8da8c6c55ca4d0e70d11b" />
-    </patches>
-  </product>
-  <product name="requests" version="2.19.1" />
-  <product name="scipy" version="0.18.1" />
-  <product name="scotch" version="6.0.4">
-    <patches>
-      <patch comment="Patch to create Makefile" name="scotch.001.create_makefile.patch" sha1="3247b48c1976e12d0ed4bfca759f9c6a7487ede8" />
-    </patches>
-  </product>
-  <product name="setuptools" version="38.4.0" />
-  <product name="sip" version="5.5.0" />
-  <product name="six" version="1.10.0" />
-  <product name="snowballstemmer" version="1.2.1" />
-  <product name="sphinx" version="1.7.6" />
-  <product name="sphinxcontrib-websupport" version="1.1.0" />
-  <product name="sphinx-intl" version="1.9.10" />
-  <product name="swig" version="3.0.12" />
-  <product name="tbb" version="4.4" />
-  <product name="tcltk" version="8.6.0" />
-  <product name="tclx" version="8.4.1" />
-  <product name="toml" version="0.10.2" />
-  <product name="urllib3" version="1.23" />
-  <product comment="libBatch library" name="libbatch" version="V2_4_5" />
-  <product comment="SALOME Geometry module" name="geom" version="V9_8_0" />
-  <product comment="SALOME GUI module" name="gui" version="V9_8_0" />
-  <product comment="SALOME HexaBlock module" name="hexablock" version="V9_8_0" />
-  <product comment="SALOME Homard module" name="homard" version="V9_8_0" />
-  <product comment="SALOME JobManager module" name="jobmanager" version="V9_8_0" />
-  <product comment="SALOME Kernel module" name="kernel" version="V9_8_0" />
-  <product comment="SALOME Med module" name="med" version="V9_8_0" />
-  <product comment="SALOME ParaVis module" name="paravis" version="V9_8_0" />
-  <product comment="SALOME Mesh module" name="smesh" version="V9_8_0" />
-  <product comment="SALOME YACS module" name="yacs" version="V9_8_0" />
-  <product comment="SALOME MG-CadSurf meshing plugin" name="blsurfplugin" version="V9_8_0" />
-  <product comment="SALOME MG-Tetra meshing plugin" name="ghs3dplugin" version="V9_8_0" />
-  <product comment="SALOME MG-Tetra_HPC meshing plugin" name="ghs3dprlplugin" version="V9_8_0" />
-  <product comment="SALOME MG-Hexa meshing plugin" name="hexoticplugin" version="V9_8_0" />
-  <product comment="SALOME HexaBlock meshing plugin" name="hexablockplugin" version="V9_8_0" />
-  <product comment="SALOME MG-Hybrid meshing plugin" name="hybridplugin" version="V9_8_0" />
-  <product comment="SALOME Netgen meshing plugin" name="netgenplugin" version="V9_8_0" />
-  <product comment="SALOME Gmsh meshing plugin" name="gmshplugin" version="V9_8_0" />
-  <product comment="SALOME Documentation tool" name="documentation" version="V9_8_0" />
-  <product comment="SALOME Hxx2salome tool" name="hxx2salome" version="V9_8_0" />
-  <product comment="SALOME MedCoupling library" name="medcoupling" version="V9_8_0" />
-  <product comment="SALOME Tutorial" name="tutorial" version="V9_8_0" />
-  <product comment="SALOME YacsGen tool" name="yacsgen" version="V9_8_0" />
-  <product comment="SALOME AtomGen sample module" name="atomgen" version="V9_8_0" />
-  <product comment="SALOME Atomic sample module" name="atomic" version="V9_8_0" />
-  <product comment="SALOME AtomSolv sample module" name="atomsolv" version="V9_8_0" />
-  <product comment="SALOME Calculator sample module" name="calculator" version="V9_8_0" />
-  <product comment="SALOME Component sample module" name="component" version="V9_8_0" />
-  <product comment="SALOME data files" name="samples" version="V9_8_0" />
-  <product comment="SALOME DscCode sample module" name="dsccode" version="V9_8_0" />
-  <product comment="SALOME Hello sample module" name="hello" version="V9_8_0" />
-  <product comment="SALOME Light sample module" name="light" version="V9_8_0" />
-  <product comment="SALOME PyCalculator sample module" name="pycalculator" version="V9_8_0" />
-  <product comment="SALOME PyHello sample module" name="pyhello" version="V9_8_0" />
-  <product comment="SALOME PyLight sample module" name="pylight" version="V9_8_0" />
-  <product comment="SALOME Randomizer sample module" name="randomizer" version="V9_8_0" />
-  <product comment="SALOME Sierpinsky sample module" name="sierpinsky" version="V9_8_0" />
-</config>
diff --git a/config/scfg b/config/scfg
deleted file mode 100755 (executable)
index 9f04a98..0000000
+++ /dev/null
@@ -1,568 +0,0 @@
-#!/usr/bin/env python
-#  -*- coding: iso-8859-1 -*-
-
-# Copyright (C) 2016-2022  OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-###
-# Command line tool to manage SALOME configuration.
-# Usage: type "scfg help" to learn how to use tool.
-###
-
-import sys
-import os
-from sconfig.salome_config import CfgTool, defaultConfFile
-
-###
-# TODO
-# 1. Improve parsing of command line: each command should be defined as:
-#    - command:    name of the command
-#    - help:       help string as appears in the short description of a command in a list
-#                  of commands and as a first line of command's help
-#    - options:    (dict) see below
-#    - parameters: (list or dict) see below
-#    Each option should be defined with:
-#    - title:      one letter signature
-#    - help:       help string
-#    - parameter:  name of parameter if option requires a parameter
-#    Each parameter should be defined with:
-#    - title:      as appears in help information
-#    - optional:   flag (boolean) showing if this parameter is optional
-#    - help:       help description
-#    
-#    Parser of command line should then automatically check validity of the command,
-#    its parameters and options.
-#  
-# 2. Usage and help information should be automaticall generated and formatted
-#    from command description as described above.
-# 
-# 3. Protect from adding same named option to a command.
-# 
-# 4. Improve formatting help for command's parameters (see 1) - namely, wrapping
-#    into a block.
-###
-
-##
-# function: get_tool_name
-# 
-# gets a name of this command line tool (string)
-##
-
-def get_tool_name():
-    return os.path.basename(sys.argv[0])
-
-##
-# function: verbose
-# 
-# returns True when in debug mode (env var VERBOSE is set to 1)
-##
-
-def verbose():
-    return bool(os.getenv("VERBOSE", False))
-
-##
-# function: debug
-# 
-# prints debug information (for debug purposes)
-#
-# Parameters:
-#   args: output data to be printed to the screen (any printable objects)
-##
-
-def debug(*args):
-    if verbose():
-        print("[DEBUG]", end=' ')
-        for a in args: print(a, end=' ')
-        print()
-    pass
-
-##
-# function: error_exit
-# 
-# prints error information and exits with non-zero status
-# 
-# Parameters:
-#   msg: error message (string)
-##
-
-def error_exit(msg):
-    print("%s: %s" % (get_tool_name(), msg))
-    sys.exit(1)
-    pass
-
-##
-# function: get_commands
-# 
-# get supported commands
-# 
-# return value is a dictionary:
-# { cmd : ( help, opt_map ) }
-# here:
-# - cmd is a command (string)
-# - help is a command's general help information on a command (string)
-# - opt_map is a disctionary of allowed command's options:
-#   { opt: opt_help }, where 
-#   - opt is option ("a:" if option requires a parameter or just "a" elsewhere, where
-#                    "a" is any letter)
-#   - opt_help is a help information on the option (string).
-# 
-# See also: add_command
-##
-
-def get_commands():
-    if not globals().get("__commands__"): globals()["__commands__"] = {}
-    return globals().get("__commands__")
-
-##
-# function: add_command
-# 
-# adds command to the tool
-#
-# Parameters:
-#   cmd: command (string)
-#   help_string: help information on the command (string)
-#   options: options supported by the command (map {opt: opt_help}, see get_commands)
-##
-
-def add_command(cmd, help_string, options):
-    if cmd in get_commands():
-        debug("command %s already exists" % cmd)
-    else:
-        get_commands()[ cmd ] = ( help_string, options )
-    pass
-
-##
-# function: get_opts
-# 
-# gets supported options for the command
-# 
-# Parameters:
-#   cmd: command (string)
-# 
-# return value is map {opt: opt_help} (see get_commands)
-##
-
-def get_opts(cmd):
-    if cmd is None: cmd = ""
-    opts = {}
-    try:
-        opts = get_commands()[cmd][1]
-    except:
-        pass
-    return opts
-
-##
-# function: get_help
-# 
-# gets help string for the command
-# 
-# Parameters:
-#   cmd: command (string)
-# 
-# return value is unformatted string
-##
-
-def get_help(cmd):
-    if cmd is None: cmd = ""
-    help_string = ""
-    try:
-        help_string = get_commands()[cmd][0]
-    except:
-        pass
-    return help_string
-
-##
-# function: format_string
-# 
-# formats string into block according to the given block width
-# 
-# Parameters:
-#   s: string data
-#   width: requested width of resulting string block
-# 
-# return formatted string block
-##
-
-def format_string(s, width):
-    blocks = s.split("\n")
-    result = []
-    for block in blocks:
-        block = block.replace("\t", " [[TAB]] ")
-        words = block.split()
-        current_string = ""
-        for word in words:
-            word = word if word != "[[TAB]]" else " "*2
-            if not current_string:
-                current_string = word
-            else:
-                if len(current_string + " " + word) <= width:
-                    current_string += " " + word
-                else:
-                    result.append(current_string)
-                    current_string = word
-                    pass
-                pass
-            pass
-        result.append(current_string)
-        pass
-    return "\n".join(result)
-
-##
-# function: format_commands
-# 
-# formats short help on all supported commands
-# 
-# return string that contains formatted help on commands
-##
-
-def format_commands():
-    commands = get_commands()
-    # filter out tool itself
-    commands = sorted([a for a in commands if a != ""])
-    # sort commands alphabetically
-    # get max command's length
-    max_length = max([ len(i) for i in commands])
-    # generate formatting string
-    prefix = "  "
-    separator = "    "
-    fmt_string = prefix + "%" + "-%ds" % max_length + separator
-    def _format(_c):
-        _h = get_help(_c).split("\n")[0]
-        _h = format_string(_h, 80-(max_length+len(prefix)+len(separator)))
-        _h = _h.split("\n")
-        _t = prefix + " " * max_length + separator
-        _r = []
-        _r.append(_h[0])
-        for _i in _h[1:]: _r.append(_t + _i)
-        return "\n".join(_r)
-    return "\n".join([ fmt_string % i + _format(i) for i in commands])
-
-##
-# function: format_list_options
-# 
-# formats short help on commands's options to be inserted into short help info on a command
-# 
-# Parameters:
-#   cmd: command (string)
-# 
-# return string that contains formatted help
-##
-
-def format_list_options(cmd):
-    opts = get_opts(cmd)
-    return "".join([" [%s]" % i for i in opts])
-
-##
-# function: format_options
-# 
-# formats help on commands's options to be inserted after short help info on a command
-# 
-# Parameters:
-#   cmd: command (string)
-# 
-# return string that contains formatted help
-##
-
-def format_options(cmd):
-    opts = get_opts(cmd)
-    opts_names = list(opts.keys())
-    if not opts: return ""
-    # get max command's length
-    max_length = max([ len(i) for i in opts_names])
-    # generate formatting string
-    prefix = "  "
-    separator = "    "
-    fmt_string = prefix + "%" + "-%ds" % max_length + separator
-    def _format(_o):
-        _h = opts[_o]
-        _h = format_string(_h, 80-(max_length+len(prefix)+len(separator)))
-        _h = _h.split("\n")
-        _t = prefix + " " * max_length + separator
-        _r = []
-        _r.append(_h[0])
-        for _i in _h[1:]: _r.append(_t + _i)
-        return "\n".join(_r)
-    return "\n" + "\n".join([ fmt_string % i + _format(i) for i in opts_names]) + "\n"
-
-##
-# function: usage
-# 
-# prints help and exits with zero status
-#
-# Parameters:
-#   cmd: command (string)
-##
-
-def usage(cmd=None):
-    if cmd is None: cmd = ""
-    if cmd not in get_commands(): error_exit("unknown command: %s" % cmd)
-    fmt = {}
-    fmt[ "prg" ] = get_tool_name()
-    fmt[ "cmd" ] = get_tool_name() if not cmd else cmd
-    fmt[ "cmd_list" ] = format_commands()
-    fmt[ "opts" ] = format_list_options(cmd)
-    fmt[ "opt_list" ] = format_options(cmd)
-    help_string = get_help(cmd)
-    help_string = help_string.replace("\t", "  ")
-    print(help_string.format(**fmt))
-    sys.exit(0)
-    pass
-
-##
-# function: parse_cmd_line
-# 
-# parses command line; prints error and exits if unsupported command
-# or option is specified
-# 
-# Parameters:
-#   args: arguments being parsed (list of strings)
-##
-
-def parse_cmd_line(args):
-    tool_opts, cmd, cmd_opts, tgt, params = {}, None, {}, None, []
-    args.reverse()
-    commands = get_commands()
-    while args:
-        a = args.pop()
-        if a == "-":
-            # empty option
-            error_exit("empty option is not allowed")
-        if a.startswith("-"):
-            allowed_opts = list(get_opts(cmd).keys())
-            allowed_opts = dict([(i[1], len(i)>2) for i in allowed_opts])
-            processed_opts = tool_opts if cmd is None else cmd_opts
-            cmd_descr = "" if cmd is None else " for command '%s'" % cmd
-            opts = a[1:]
-            while opts:
-                o = opts[0]
-                opts = opts[1:]
-                if o == "-":
-                    # "--" format is not supported
-                    error_exit("invalid format of option")
-                elif o in allowed_opts:
-                    if allowed_opts[o]:
-                        # supported option; requires parameter
-                        if opts:
-                            processed_opts[ o ] = opts
-                            opts = []
-                        elif args and not args[-1].startswith("-") and not args[-1] in commands:
-                            processed_opts[ o ] = args.pop()
-                        else:
-                            error_exit("option %s%s requires argument" % (o, cmd_descr))
-                    else:
-                        # supported option; does not require parameter
-                        processed_opts[ o ] = None
-                        pass
-                    pass
-                else:
-                    # unsupported option
-                    error_exit("unknown option: -%s%s" % (o, cmd_descr))
-                pass # while opts
-            pass
-        elif not cmd:
-            cmd = a
-            if cmd not in commands:
-                # unsupported command
-                error_exit("unknown command: %s" % cmd)
-            pass
-        elif not tgt:
-            tgt = a
-            pass
-        else:
-            params += [ a ]
-    return tool_opts, cmd, cmd_opts, tgt, params
-
-##
-# function: main
-# 
-# main entry point of the tool
-##
-
-def main():
-    # set-up commands
-
-    # - tool itself
-    help_string  = "Command line tool to manage SALOME configuration.\n\n"
-    help_string += "Usage: {prg}{opts} COMMAND [ARGS]\n"
-    help_string += "{opt_list}\n"
-    help_string += "Supported commands:\n"
-    help_string += "{cmd_list}\n\n"
-    help_string += "See '{prg} help COMMAND' for more information on a specific command."
-    options = {}
-    options [ "-s FILE" ] = "Path to the configuration file; default: %s." % defaultConfFile()
-    add_command("",
-                help_string,
-                options)
-
-    # - help command
-    help_string  = "Display help information about this tool.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts}\n"
-    help_string += "{opt_list}"
-    add_command("help",
-                help_string,
-                {})
-
-    # - set command
-    help_string  = "Create or modify configuration object.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts} TARGET [PARAM VALUE ...]\n\n"
-    help_string += "\tTARGET: configuration object being created / modified\n"
-    help_string += "\tPARAM: parameter of the target object\n"
-    help_string += "\tVALUE: value to be assigned to the attribute of the target object\n"
-    help_string += "{opt_list}"
-    add_command("set",
-                help_string,
-                {})
-
-    # - get command
-    help_string  = "Get parameter of configuration object.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts} TARGET PARAM\n\n"
-    help_string += "\tTARGET: configuration object being inspected\n"
-    help_string += "\tPARAM: parameter of the target object\n"
-    help_string += "{opt_list}"
-    add_command("get",
-                help_string,
-                {})
-
-    # - remove command
-    help_string  = "Remove configuration object or its attribute(s).\n\n"
-    help_string += "Usage: {prg} {cmd}{opts} TARGET [PARAM ...]\n\n"
-    help_string += "\tTARGET: configuration object\n"
-    help_string += "\tPARAM: attribute of the target object\n"
-    help_string += "{opt_list}"
-    add_command("remove",
-                help_string,
-                {})
-
-    # - dump command
-    help_string  = "Dump configuration.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts} [TARGET]\n\n"
-    help_string += "\tTARGET: optional configuration object (if not specified,\n"
-    help_string += "\t        all configuration is dumped).\n"
-    help_string += "{opt_list}"
-    add_command("dump",
-                help_string,
-                {})
-
-    # - verify command
-    help_string  = "Verify configuration.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts} [TARGET]\n\n"
-    help_string += "\tTARGET: optional configuration object (if not specified,\n"
-    help_string += "\t        all configuration is verified).\n"
-    help_string += "{opt_list}"
-    add_command("verify",
-                help_string,
-                {})
-
-    # - clean command
-    help_string  = "Clean configuration.\n\n"
-    help_string += "Usage: {prg} {cmd}{opts}\n"
-    help_string += "{opt_list}"
-    add_command("clean",
-                help_string,
-                {})
-
-    # parse command line
-
-    opts, cmd, cmd_opts, tgt, params = parse_cmd_line(sys.argv[1:])
-    debug("parse command line: options =", opts, "; command =", cmd, "; command options =", cmd_opts, "; target =", tgt, "; arguments =", params)
-
-    # process command
-
-    if not cmd or cmd == "help":
-        # show help and exit
-        usage(tgt)
-        pass
-
-    try:
-        # check if custom source file is specified
-        
-        src_file = opts["s"] if "s" in opts else None
-        debug("source file:", src_file)
-        
-        # create config tool
-
-        cfg_tool = CfgTool(src_file)
-        debug("cfg tool:", cfg_tool)
-
-        # TODO: we should not check commands in a switch-like block below;
-        # instead processing should be done automatically basing on the
-        # predefined set of commands (TODO)
-
-        if cmd == "get":
-            if not tgt:
-                error_exit("%s: target is not specified!" % cmd)
-            if len(params) < 1:
-                error_exit("%s: parameter of target %s is not specified!" % (cmd, tgt))
-            # only one parameter can be read!
-            if len(params) > 1:
-                error_exit("%s: can't read more than one parameter at once!" % cmd)
-            def _toString(v):
-                if v is None: return ""
-                elif isinstance(v, list): return " ".join(v)
-                else: return v
-            print(_toString(cfg_tool.get(tgt, params[0])))
-            pass
-        elif cmd == "set":
-            if not tgt:
-                error_exit("%s: target is not specified!" % cmd)
-            # empty parameters list is allowed!
-            cfg_tool.set(tgt, *params)
-            pass
-        elif cmd == "remove":
-            if not tgt:
-                error_exit("%s: target is not specified!" % cmd)
-            # empty parameters list is allowed!
-            cfg_tool.remove(tgt, *params)
-            pass
-        elif cmd == "dump":
-            if len(params) > 0:
-                error_exit("%s: command does not support parameters!" % cmd)
-            # empty target is allowed!
-            cfg_tool.dump(tgt)
-            pass
-        elif cmd == "verify":
-            if len(params) > 0:
-                error_exit("%s: command does not support parameters!" % cmd)
-            # empty target is allowed!
-            errors = []
-            if cfg_tool.verify(tgt, errors):
-                msg = " (no products found)" if not cfg_tool.get("cfg", "products") else ""
-                print("Configuration is valid%s." % msg)
-            else:
-                raise Exception("Configuration is invalid:\n"+ "\n".join(errors))
-            pass
-        elif cmd == "clean":
-            if tgt:
-                error_exit("%s: command does not support target!" % cmd)
-            if len(params) > 0:
-                error_exit("%s: command does not support parameters!" % cmd)
-            # empty target is allowed!
-            cfg_tool.clean()
-            pass
-        else:
-            # unknown command: normally we should not go here
-            error_exit("unknown command: %s" % cmd)
-            pass
-        pass
-    except Exception as e:
-        error_exit(e)
-    pass
-    
-if __name__ == "__main__":
-    main()
diff --git a/config/scfgcmp b/config/scfgcmp
deleted file mode 100755 (executable)
index 2007b48..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-#!/usr/bin/env python
-#  -*- coding: iso-8859-1 -*-
-
-# Copyright (C) 2016-2022  OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-###
-# Command line tool to compare two SALOME configurations.
-# Usage: type "scfgcmp help" to learn how to use tool.
-###
-
-import sys
-import os
-from sconfig.salome_config import *
-import getopt
-
-def get_tool_name():
-    return os.path.basename(sys.argv[0])
-
-def error_exit(msg):
-    print("%s: %s" % (get_tool_name(), msg))
-    print("Try '%s --help' for more information." % get_tool_name())
-    sys.exit(2)
-    pass
-
-def usage():
-    print("Command line tool to compare two SALOME configurations.")
-    print()
-    print("Usage: %s [options] CFGFILE1 [CFGFILE2]" % get_tool_name())
-    print()
-    print("  CFGFILE1       First configuration file to compare.")
-    print("  CFGFILE2       Second configuration file to compare; if not specified,")
-    print("                 default one is used: %s." % defaultConfFile())
-    print()
-    print("Options:")
-    print("  --help (-h)    Prints this help information.")
-    print("  --force (-f)   Perform full comparation, including optional parameters.")
-    print("  --verbose (-v) Print results of comparison to the screen.")
-    print()
-
-def main():
-    # parse command line
-
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], "hfv", ["help", "force", "verbose"])
-    except getopt.GetoptError as err:
-        error_exit(str(err))
-        pass
-    opt_keys = [i[0] for i in opts]
-    isusage   = "-h" in opt_keys or "--help" in opt_keys
-    isverbose = "-v" in opt_keys or "--verbose" in opt_keys
-    isforce   = "-f" in opt_keys or "--force" in opt_keys
-
-    if isusage:
-        usage()
-        pass
-
-    cfgfile1 = args[0] if len(args) > 0 else defaultConfFile()
-    cfgfile2 = args[1] if len(args) > 1 else defaultConfFile()
-
-    if not cfgfile1:
-        error_exit("missing configuration file")
-        pass
-
-    if cfgfile1 and not os.path.isfile(cfgfile1):
-        error_exit("configuration file %s is not found" % cfgfile1)
-        pass
-
-    if cfgfile2 and not os.path.isfile(cfgfile2):
-        error_exit("configuration file %s is not found" % cfgfile2)
-        pass
-
-    if cfgfile1 and cfgfile2 and os.path.samefile(cfgfile1, cfgfile2):
-        error_exit("cannot compare the file with itself")
-        pass
-
-    # create config tools
-
-    try:
-        tool1 = CfgTool(cfgfile1)
-        tool2 = CfgTool(cfgfile2)
-    except Exception as e:
-        error_exit(str(e))
-        pass
-    
-    # diff config files
-
-    errors = []
-
-    def _cmpAttrs(_what, _where):
-        _attrs = tagAttributes(_what)
-        for _attr in _attrs:
-            try:
-                _v1 = tool1.get(_where, _attr)
-            except:
-                _v1 = None
-                pass
-            try:
-                _v2 = tool2.get(_where, _attr)
-            except:
-                _v2 = None
-                pass
-            if (isforce or _attrs[_attr]) and _v1 != _v2:
-                errors.append("attribute '%s' of '%s' differs: '%s' in %s vs '%s' in %s" % (_attr, _where, str(_v1), tool1.cfgFile, str(_v2), tool2.cfgFile))
-                pass
-            pass
-        pass
-    
-    # - compare parameters of configuration
-    _cmpAttrs(configTag(), configTag())
-
-    # - compare products
-
-    products1 = tool1.get(configTag(), softwareAlias())
-    products2 = tool2.get(configTag(), softwareAlias())
-    all_products = list(set(products1+products2))
-
-    for product in all_products:
-        if product in products1 and product not in products2:
-            errors.append("%s '%s' is only in '%s'" % (softwareTag(), product, tool1.cfgFile))
-            pass
-        elif product in products2 and product not in products1:
-            errors.append("%s '%s' is only in '%s'" % (softwareTag(), product, tool2.cfgFile))
-            pass
-        else:
-            # -- compare parameters of products
-            _cmpAttrs(softwareTag(), product)
-            # -- compare patches
-            patches1 = tool1.get(product, patchesAlias())
-            patches2 = tool2.get(product, patchesAlias())
-            all_patches = list(set(patches1+patches2))
-            for patch in all_patches:
-                if patch in patches1 and patch not in patches2:
-                    errors.append("%s '%s' for '%s' is only in '%s'" % (patchTag(), patch, product, tool1.cfgFile))
-                    pass
-                if patch in patches2 and patch not in patches1:
-                    errors.append("%s '%s' for '%s' is only in '%s'" % (patchTag(), patch, product, tool2.cfgFile))
-                    pass
-                else:
-                    # -- compare parameters of products
-                    _cmpAttrs(patchTag(), "%s.%s.%s" % (product, patchesTag(), patch))
-                    pass
-                pass
-            pass
-        pass
-    
-    # print results
-
-    if errors:
-        if isverbose:
-            print("Files %s and %s differ:" % (tool1.cfgFile, tool2.cfgFile))
-            print("\n".join(["  " + i for i in errors]))
-            pass
-        return 1
-
-    return 0
-
-# -----------------------------------------------------------------------------
-
-if __name__ == '__main__':
-    sys.exit(main())
diff --git a/config/sconfig/__init__.py b/config/sconfig/__init__.py
deleted file mode 100644 (file)
index 30881e8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (C) 2016-2022  OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
diff --git a/config/sconfig/salome_config.py b/config/sconfig/salome_config.py
deleted file mode 100644 (file)
index a5faa74..0000000
+++ /dev/null
@@ -1,799 +0,0 @@
-#  -*- coding: iso-8859-1 -*-
-# Copyright (C) 2016-2022  OPEN CASCADE
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-"""
-Manage SALOME configuration.
-
-Typical usage:
-
-tool = CfgTool()
-# Create configuration and set its parameters
-tool.set("cfg", "name", "V7_6_0", "comment", "SALOME version 7.6.0")
-# Add product
-tool.set("boost", "version", "1.52.2", "url", "https://sourceforge.net/projects/boost/files/boost/1.52.0/boost_1_52_0.tar.gz", "comment", "Set of libraries for the C++ programming language")
-# Add patches to the product (note: patch file should  be manually put to the patches directory)
-tool.set("boost.patches.boost_patch_1.patch", "comment", "Fixes compilation problems on some platforms")
-tool.set("boost.patches.boost_patch_2.patch", "comment", "gcc 5 compatibility")
-# Inspect configuration: give all products
-tool.get("cfg", "products")
-# Inspect configuration: give parameters of the configuration
-tool.get("cfg", "name")
-tool.get("cfg", "comment")
-# Inspect configuration: give parameters of the product
-tool.get("boost", "version")
-tool.get("boost", "url")
-# Inspect configuration: give patches for the product
-tool.get("boost", "patches")
-# Verify configuration
-conf_ok = tool.verify()
-# Verify product
-boost_ok = tool.verify("boost")
-# Dump configuration
-tool.dump()
-# Dump product
-tool.dump("boost")
-# Remove parameters of configuration
-tool.remove("cfg", "comment")
-# Remove parameters of product
-tool.remove("boost", "url")
-# Remove patch from product
-tool.remove("boost.patches.boost_patch_2.patch")
-# Remove product
-tool.remove("boost")
-# Clean configuration
-tool.clean()
-"""
-
-import os
-import xml.etree.ElementTree as ET
-try:
-    exceptionClass = ET.ParseError
-except:
-    import xml.parsers.expat
-    exceptionClass = xml.parsers.expat.ExpatError
-
-__all__ = [
-    "defaultConfFile",
-    "configTag",
-    "softwareTag",
-    "patchesTag",
-    "patchTag",
-    "nameAttr",
-    "commentAttr",
-    "versionAttr",
-    "urlAttr",
-    "sha1Attr",
-    "supportedTags",
-    "supportedAttributes",
-    "tagAttributes",
-    "tagChildren",
-    "softwareAlias",
-    "patchesAlias",
-    "childAlias",
-    "pathSeparator",
-    "CfgTool",
- ]
-
-def defaultConfFile():
-    """
-    Return path to the default SALOME configuration file (string).
-    """
-    return os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "salome.xml"))
-
-def configTag():
-    """
-    Return XML tag for configuration (string).
-    """
-    return "config"
-
-def softwareTag():
-    """
-    Return XML tag for software (string).
-    """
-    return "product"
-
-def patchesTag():
-    """
-    Return XML tag for patches set (string).
-    """
-    return "patches"
-    
-def patchTag():
-    """
-    Return XML tag for patch (string).
-    """
-    return "patch"
-
-def nameAttr():
-    """
-    Return XML attribute for name parameter (string).
-    """
-    return "name"
-
-def commentAttr():
-    """
-    Return XML attribute for comment parameter (string).
-    """
-    return "comment"
-
-def versionAttr():
-    """
-    Return XML attribute for version parameter (string).
-    """
-    return "version"
-
-def urlAttr():
-    """
-    Return XML attribute for url parameter (string).
-    """
-    return "url"
-
-def sha1Attr():
-    """
-    Return XML attribute for sha1 parameter (string).
-    """
-    return "sha1"
-
-def supportedTags():
-    """
-    Return list of all supported XML tags (list of strings).
-    """
-    return [configTag(), softwareTag(), patchesTag(), patchTag()]
-    
-def supportedAttributes():
-    """
-    Return list of all supported XML attributes (list of strings).
-    """
-    return [nameAttr(), commentAttr(), versionAttr(), urlAttr(), sha1Attr()]
-    
-def tagAttributes(tag, force = False):
-    """
-    Return list of attributes supported for the specified XML tag.
-    
-    Parameters:
-      tag: XML tag.
-      force: if True, all supported attributes are returned, including "special" ones.
-
-    Return value is list of strings.
-    """
-    attrs = {}
-    if tag == configTag():
-        # config
-        attrs[nameAttr()]     = False  # optional
-        attrs[commentAttr()]  = False  # optional
-        pass
-    elif tag == softwareTag():
-        # software
-        # note: name for software is specified implicitly via the target path
-        if force:
-            attrs[nameAttr()] = True   # mandatory
-            pass
-        attrs[versionAttr()]  = True   # mandatory
-        attrs[urlAttr()]      = False  # optional
-        attrs[commentAttr()]  = False  # optional
-        pass
-    elif tag == patchTag():
-        # patch
-        # note: name for patch is specified implicitly via the target path
-        if force:
-            attrs[nameAttr()] = True   # mandatory
-            pass
-        pass
-        attrs[urlAttr()]      = False
-        attrs[commentAttr()]  = False
-        attrs[sha1Attr()]     = False
-    return attrs
-
-def tagChildren(tag):
-    """
-    Return supported child nodes' tags for given XML element.
-    Note: None means root 'config' XML element.
-    
-    Parameters:
-      tag: XML tag.
-
-    Return value is list of strings.
-    """
-    ctags = []
-    if tag == configTag():     ctags += [softwareTag()]
-    elif tag == softwareTag(): ctags += [patchesTag()]
-    elif tag == patchesTag():  ctags += [patchTag()]
-    elif tag is None:          ctags += [configTag()]
-    return ctags
-
-def softwareAlias():
-    """
-    Return parameter's alias for list of software are to be used with 'get' command (string).
-    """
-    return softwareTag()+"s"
-
-def patchesAlias():
-    """
-    Return parameter's alias for list patches to be used with 'get' command (string).
-    """
-    return patchesTag()
-
-def childAlias(tag, param):
-    """
-    Return children node tag for children list alias.
-    
-    Parameters:
-      tag: XML tag.
-      param: children list alias.
-
-    Return child node tag name or None if alias is unsupported.
-    """
-    ctag = None
-    if tag == configTag():
-        if param == softwareAlias(): ctag = softwareTag()
-        pass
-    elif tag == softwareTag():
-        if param == patchesAlias(): ctag = patchTag()
-        pass
-    return ctag
-
-def pathSeparator():
-    """
-    Return string used as a separator of path's component (string).
-    """
-    return "."
-
-class CfgTool(object):
-    """
-    A tool to manage SALOME configuration files.
-    """
-    def __init__(self, cfgFile=None):
-        """
-        Constructor.
-        
-        Parameters:
-          cfgFile: a path to the configuration file (string);
-                   if not specified, default one is used.
-        """
-        self.enc = "utf-8"
-        self.cfgFile = cfgFile if cfgFile else defaultConfFile()
-        self.parents = {}
-        try:
-            self.tree = ET.parse(self.cfgFile).getroot()
-            self._checkConfig()
-            pass
-        except IOError as e:
-            self.tree = self._new()
-            pass
-        except exceptionClass as e:
-            if e.code == 3: # no element found, it's OK
-                self.tree = self._new()
-            else:
-                raise Exception("bad XML file %s: %s" % (self.cfgFile, str(e)))
-            pass
-        except Exception as e:
-            raise Exception("unknown error: %s" % str(e))
-        pass
-    
-    def encoding(self):
-        """
-        Return current encoding of the configuration file (string).
-        Default is "utf-8".
-        """
-        return self.enc
-    
-    def setEncoding(self, value):
-        """
-        Set encoding for configuration file..
-        Parameters:
-          value: new encoding to be used when writing configuration file (string).
-        """
-        self.enc = value
-        self._write()
-        pass
-
-    def get(self, target, param):
-        """
-        Get value of specified object's parameter.
-        Parameter can be a specific keyword that refers to the list of
-        child nodes. In this case the function returns list that
-        contains names of all child nodes.
-
-        Parameters:
-          target: object being checked (string).
-          param: parameter which value is being inspected.
-         
-        Return value is string or list of strings.
-        """
-        path = self._processTarget(target)
-        tag = path[-1][0]
-        elem = self._findPath(path)
-        if elem is None:
-            raise Exception("no such target %s" % target)
-        result = None
-        if childAlias(tag, param):
-            result = self._children(elem, childAlias(tag, param))
-            pass
-        elif param in tagAttributes(tag):
-            result = elem.get(param) if elem is not None and elem.get(param) else ""
-            pass
-        else:
-            raise Exception("unsupported parameter %s for target %s" % (param, target))
-        return result
-
-    def set(self, target = None, *args, **kwargs):
-        """
-        Create or modify an object in the SALOME configuration.
-
-        Parameters:
-          target: object being created or modified (string); if not specified,
-                  parameters of config itself will be modified.
-          args:   positional arguments that describe parameters to be set (couple);
-                  each couple of arguments specifies a parameter and its value
-                  (strings).
-          kwargs: keyword arguments - same as 'args' but specified in form of
-                  dictionary.
-        """
-        path = self._processTarget(target)
-        tag = path[-1][0]
-        params = {}
-        # process keyword arguments
-        for param, value in list(kwargs.items()):
-            if param not in tagAttributes(tag):
-                raise Exception("unsupported parameter %s for target %s" % (param, target))
-            params[param] = value
-            pass
-        # process positional arguments
-        i = 0
-        while i < len(args):
-            param = args[i]
-            if param not in tagAttributes(tag):
-                raise Exception("unsupported parameter %s for target %s" % (param, target))
-            value = ""
-            if i+1 < len(args) and args[i+1] not in tagAttributes(tag):
-                value = args[i+1]
-                i += 1
-                pass
-            params[param] = value
-            i += 1
-            pass
-        # create / modify target
-        elem = self._findPath(path, True)
-        for param, value in list(params.items()):
-            elem.set(param, value)
-            pass
-        self._write()
-        pass
-
-    def remove(self, target, *args):
-        """
-        Remove object or its parameter(s).
-
-        Parameters:
-          target: object (string).
-          args: list of parameters which have to be removed (strings).
-         
-        Return value is string.
-        """
-        path = self._processTarget(target)
-        tag = path[-1][0]
-        elem = self._findPath(path)
-        if elem is None:
-            raise Exception("no such target %s" % target)
-        if args:
-            # remove attributes of the target
-            # first check that all attributes are valid
-            for param in args:
-                if param not in tagAttributes(tag):
-                    raise Exception("unsupported parameter %s for target %s" % (param, target))
-                elif param not in elem.attrib:
-                    raise Exception("parameter %s is not set for target %s" % (param, target))
-                pass
-            # now remove all attributes
-            for param in args:
-                elem.attrib.pop(param)
-                pass
-            pass
-        else:
-            # remove target
-            if elem == self.tree:
-                self.tree = self._new()
-                pass
-            else:
-                path = path[:-1]
-                parent = self._findPath(path)
-                if parent is not None: parent.remove(elem)
-                pass
-            pass
-        self._write()
-        pass
-    
-    def dump(self, target = None):
-        """
-        Dump the configuration.
-        
-        Parameters:
-          target: object (string); if not specified, all configuration is dumped.
-        """
-        if target is not None:
-            path = self._processTarget(target)
-            elem = self._findPath(path)
-            if elem is None:
-                raise Exception("no such target %s" % target)
-            pass
-        else:
-            elem = self.tree
-            pass
-        self._dump(elem)
-        pass
-
-    def verify(self, target = None, errors = None):
-        """
-        Verify configuration
-        
-        Parameters:
-          target: object (string); if not specified, all configuration is verified.
-
-        Returns True if object is valid or False otherwise.
-        """
-        if errors is None: errors = []
-        if target is not None:
-            path = self._processTarget(target)
-            elem = self._findPath(path)
-            if elem is None:
-                raise Exception("no such target %s" % target)
-            pass
-        else:
-            elem = self.tree
-            pass
-        return self._verifyTag(elem, errors)
-
-    def clean(self):
-        """
-        Clean the configuration.
-        """
-        self.tree = self._new()
-        self._write()
-        pass
-    
-    def patchesDir(self):
-        """
-        Return path to the patches directory (string).
-        """
-        return os.path.join(os.path.dirname(self.cfgFile), "patches")
-
-    def _new(self):
-        """
-        (internal)
-        Create and return new empty root element.
-        
-        Return values is an XML element (xml.etree.ElementTree.Element).
-        """
-        return ET.Element(configTag())
-
-    def _makeChild(self, elem, tag):
-        """
-        (internal)
-        Create child element for given parent element.
-
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          tag: tag of the child element
-
-        Return value is new XML element (xml.etree.ElementTree.Element).
-        """
-        child = ET.SubElement(elem, tag)
-        self.parents[child] = elem # set parent!!!
-        return child
-
-    def _processTarget(self, target):
-        """
-        (internal)
-        Check target and return XML path for it.
-
-        Parameters:
-          target: target path.
-          
-        Return value is a list of tuples; each tuple is a couple
-        of path component and optional component's name.
-        """
-        if target is None: target = ""
-        comps = [i.strip() for i in target.split(pathSeparator())]
-        path = []
-        # add root to the path
-        path.append((configTag(), None))
-        if comps[0] in ["", "cfg", configTag()]: comps = comps[1:]
-        if comps:
-            # second component of path can be only "software"
-            if not comps[0] or comps[0] in supportedTags() + supportedAttributes() + ["cfg"]:
-                raise Exception("badly specified target '%s'" % target)
-            path.append((softwareTag(), comps[0]))
-            comps = comps[1:]
-            pass
-        if comps:
-            # third component of path can be only "patches" or patch
-            if comps[0] not in [patchesTag(), patchTag()]:
-                raise Exception("badly specified target '%s'" % target)
-            path.append((patchesTag(), None))
-            comps = comps[1:]
-            pass
-        if comps:
-            # fourth component of path can be only a patch name
-            path.append((patchTag(), pathSeparator().join(comps)))
-            pass
-        return path
-    
-    def _findPath(self, path, create=False):
-        """
-        (internal)
-        Find and return XML element specified by its path.
-        If path does not exist and 'create' is True, XML element will be created.
-
-        Parameters:
-          path: XML element's path data (see _processTarget()).
-          create: flag that forces creating XML element if it does not exist
-                  (default is False).
-
-        Return value is an XML element (xml.etree.ElementTree.Element).
-        """
-        if len(path) == 1:
-            if path[0][0] != configTag():
-                raise Exception("error parsing target path")
-            return self.tree
-        elem = self.tree
-        for tag, name in path[1:]:
-            if name:
-                children = [i for i in elem.getchildren() if i.tag == tag and i.get(nameAttr()) == name]
-                if len(children) > 1:
-                    raise Exception("error parsing target path: more than one child element found")
-                elif len(children) == 1:
-                    elem = children[0]
-                    pass
-                elif create:
-                    elem = self._makeChild(elem, tag)
-                    elem.set(nameAttr(), name)
-                    pass
-                else:
-                    return None
-                pass
-            else:
-                children = [i for i in elem.getchildren() if i.tag == tag]
-                if len(children) > 1:
-                    raise Exception("error parsing target path: more than one child element found")
-                elif len(children) == 1:
-                    elem = children[0]
-                    pass
-                elif create:
-                    elem = self._makeChild(elem, tag)
-                    pass
-                else:
-                    return None
-                pass
-            pass
-        return elem
-
-    def _path(self, elem):
-        """
-        (internal)
-        Construct path to the XML element.
-
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-
-        Return value is string.
-        """
-        def _mkname(_obj):
-            _name = _obj.tag
-            attrs = tagAttributes(_obj.tag, True)
-            if nameAttr() in attrs and attrs[nameAttr()]:
-                if nameAttr() not in list(_obj.keys()): _name += " [unnamed]"
-                else: _name += " [%s]" % _obj.get(nameAttr())
-                pass
-            return _name
-        path = []
-        while elem is not None:
-            path.append(_mkname(elem))
-            elem = self.parents.get(elem)
-            pass
-        path.reverse()
-        return pathSeparator().join(path)
-
-    def _children(self, elem, param):
-        """
-        (internal)
-        Get names of children nodes for element.
-
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          param: name of the children' tag.
-
-        Return value is a list of names of child elements (strings).
-        """
-        result = []
-        result += [i.get(nameAttr()) for i in \
-                       [i for i in elem.getchildren() if i.tag == param and i.get(nameAttr())]]
-        for c in elem.getchildren():
-            result += self._children(c, param)
-            pass
-        return result
-        
-    def _write(self):
-        """
-        (internal)
-        Write data tree content to the associated XML file.
-        """
-        try:
-            with open(self.cfgFile, 'w') as f:
-                # write header
-                f.write('<?xml version="1.0" encoding="%s" ?>\n' % self.encoding() )
-                f.write('<!DOCTYPE config>\n')
-                # prettify content
-                self._prettify(self.tree)
-                # write content
-                et = ET.ElementTree(self.tree)
-                et.write(f, self.encoding())
-                pass
-            pass
-        except IOError as e:
-            raise Exception("can't write to %s: %s" % (self.cfgFile, e.strerror))
-        pass
-
-    def _prettify(self, elem, level=0, hasSiblings=False):
-        """
-        (internal)
-        Prettify XML file content.
-
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          level: indentation level.
-          hasSiblings: True when item has siblings (i.e. this is not the last item
-             in the parent's children list).
-        """
-        indent = "  "
-        children = elem.getchildren()
-        tail = "\n"
-        if hasSiblings: tail += indent * level
-        elif level > 0: tail += indent * (level-1)
-        text = None
-        if children: text = "\n" + indent * (level+1)
-        elem.tail = tail
-        elem.text = text
-        for i in range(len(children)):
-            self._prettify(children[i], level+1, len(children)>1 and i+1<len(children))
-            pass
-        pass
-
-    def _dump(self, elem, level=0):
-        """
-        (internal)
-        Dump XML element.
-
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          level: indentation level.
-        """
-        if elem is None:
-            return
-        indent = "  "
-        # dump element
-        print("%s%s" % (indent * level, elem.tag))
-        attrs = tagAttributes(elem.tag, True)
-        format = "%" + "-%ds" % max([len(i) for i in supportedAttributes()]) + " : %s"
-        for a in attrs:
-            if a in list(elem.attrib.keys()):
-                print(indent*(level+1) + format % (a, elem.get(a)))
-                pass
-            pass
-        print()
-        # dump all childrens recursively
-        for c in elem.getchildren():
-            self._dump(c, level+1)
-            pass
-        pass
-
-    def _checkConfig(self):
-        """
-        (internal)
-        Verify configuration (used to check validity of associated XML file).
-        """
-        errors = []
-        self._checkTag(self.tree, None, errors)
-        if errors:
-            errors = ["Bad XML format:"] + ["- %s" % i for i in errors]
-            raise Exception("\n".join(errors))
-        pass
-
-    def _checkTag(self, elem, tag, errors):
-        """
-        (internal)
-        Check if format of given XML element is valid.
-        
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          tag: expected XML element's tag (string).
-          errors: output list to collect error messages (strings).
-        """
-        if elem.tag not in tagChildren(tag):
-            errors.append("bad XML element: %s" % elem.tag)
-        else:
-            # check attributes
-            attrs = list(elem.keys())
-            for attr in attrs:
-                if attr not in tagAttributes(elem.tag, True):
-                    errors.append("unsupported attribute '%s' for XML element '%s'" % (attr, elem.tag))
-                    pass
-                pass
-            # check all childrens recursively
-            children = elem.getchildren()
-            for child in children:
-                self.parents[child] = elem # set parent!!!
-                self._checkTag(child, elem.tag, errors)
-                pass
-            pass
-        pass
-
-    def _verifyTag(self, elem, errors):
-        """
-        (internal)
-        Verify given XML element is valid in terms of SALOME configuration.
-        
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-          errors: output list to collect error messages (strings).
-        """
-        attrs = tagAttributes(elem.tag, True)
-        # check mandatory attributes
-        for attr in attrs:
-            if attrs[attr] and (attr not in list(elem.keys()) or not elem.get(attr).strip()):
-                errors.append("mandatory parameter '%s' of object '%s' is not set" % (attr, self._path(elem)))
-                pass
-            pass
-        # specific check for particular XML element
-        try:
-            self._checkObject(elem)
-        except Exception as e:
-            errors.append("%s : %s" % (self._path(elem), str(e)))
-        # check all childrens recursively
-        for c in elem.getchildren():
-            self._verifyTag(c, errors)
-            pass
-        return len(errors) == 0
-
-    def _checkObject(self, elem):
-        """
-        (internal)
-        Perform specific check for given XML element.
-        
-        Raises an exception that if object is invalid.
-        
-        Parameters:
-          elem: XML element (xml.etree.ElementTree.Element).
-        """
-        if elem.tag == patchTag():
-            filename = elem.get(nameAttr())
-            url = elem.get(urlAttr())
-            if filename and not url:
-                # if url is not given, we should check that file is present locally
-                filepath = os.path.join(self.patchesDir(), filename)
-                if not os.path.exists(filepath):
-                    raise Exception("patch file %s is not found" % filepath)
-                pass
-            else:
-                # TODO: we might check validity of URL here (see urlparse)!
-                pass
-            pass
-        pass
-
-    pass # class CfgTool