From ceff79f388772439683dc595326b7715edab5b31 Mon Sep 17 00:00:00 2001 From: Leonardo Florez-Valencia Date: Tue, 9 Dec 2014 11:12:00 +0100 Subject: [PATCH] First commit --- CMakeLists.txt | 96 + appli/CMakeLists.txt | 7 + .../CMakeLists.txt | 77 + .../InteractorStyleImage.cxx | 493 + .../InteractorStyleImage.h | 190 + .../MainWnd.cxx | 969 ++ .../MainWnd.h | 134 + .../MainWnd.ui | 302 + .../SegmentationParametersDlg.ui | 149 + .../VolumeActors.cxx | 757 + .../VolumeActors.h | 203 + .../icons/exit.ico | Bin 0 -> 105516 bytes .../icons/modify.ico | Bin 0 -> 101721 bytes .../icons/navigate.ico | Bin 0 -> 107006 bytes .../icons/open_image.ico | Bin 0 -> 305430 bytes .../icons/open_mesh.ico | Bin 0 -> 301802 bytes .../icons/open_segmented_image.ico | Bin 0 -> 269142 bytes .../icons/process_image.ico | Bin 0 -> 323854 bytes .../idms.plugins | 0 .../main.cxx | 80 + .../resources.qrc | 11 + appli/examples/CMakeLists.txt | 31 + .../example_InternalForceSimplexMesh.cxx | 136 + appli/examples/example_QuadEdgeDecimation.cxx | 104 + .../example_QuadEdgeMeshToSimplexMesh.cxx | 52 + .../example_ReadOBJAsQuadEdgeMesh.cxx | 35 + appli/examples/example_ReadQuadEdgeMesh.cxx | 34 + .../example_ReadVTKMeshAsQuadEdgeMesh.cxx | 35 + appli/examples/example_RenderDualMesh.cxx | 122 + appli/examples/example_RenderQuadEdgeMesh.cxx | 109 + .../example_SimplexMeshDeleteEdge.cxx | 133 + data/mesh_00.vtk | 96 + data/mesh_01.obj | 12446 ++++++++++++++++ data/mesh_02.obj | 7214 +++++++++ data/mesh_03.vtk | 28 + data/mesh_04.vtk | 5461 +++++++ data/mesh_05.obj | 8863 +++++++++++ data/mesh_06.vtk | 12 + doc/uml/cpMesh_Deformation_classes.dia | 2040 +++ lib/CMakeLists.txt | 6 + .../Algorithms/Base/FindClosestPointInMesh.h | 94 + .../Base/FindClosestPointInMesh.hxx | 222 + lib/cpm/Algorithms/Base/ForceFunction.h | 57 + lib/cpm/Algorithms/Base/InPlaceMeshFilter.h | 52 + lib/cpm/Algorithms/Base/InPlaceMeshFilter.hxx | 54 + .../Algorithms/QuadEdge/DecimationCriteria.h | 246 + .../Algorithms/QuadEdge/DecimationFilter.h | 65 + .../Algorithms/QuadEdge/DecimationFilter.hxx | 54 + .../QuadEdge/EdgeDecimationFilter.h | 108 + .../QuadEdge/EdgeDecimationFilter.hxx | 654 + .../MeshEulerOperatorJoinVertexFunction.h | 95 + .../MeshEulerOperatorJoinVertexFunction.hxx | 541 + .../Algorithms/QuadEdge/MeshFunctionBase.h | 63 + .../QuadEdge/MeshPlaneCutterFilter.h | 67 + .../QuadEdge/MeshPlaneCutterFilter.hxx | 158 + .../Algorithms/QuadEdge/MeshToDualFilter.h | 63 + .../Algorithms/QuadEdge/MeshToDualFilter.hxx | 129 + lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h | 57 + .../Algorithms/QuadEdge/MeshZipFunction.hxx | 216 + .../SquaredEdgeLengthDecimationFilter.h | 76 + .../SquaredEdgeLengthDecimationFilter.hxx | 59 + .../Algorithms/Simplex/DeformationFilter.h | 135 + .../Algorithms/Simplex/DeformationFilter.hxx | 91 + .../Simplex/InternalForceFunction.h | 76 + .../Simplex/InternalForceFunction.hxx | 199 + lib/cpm/CMakeLists.txt | 61 + lib/cpm/DataStructures/QuadEdge.h | 465 + lib/cpm/DataStructures/QuadEdge.hxx | 238 + lib/cpm/DataStructures/QuadEdgeCell.h | 124 + lib/cpm/DataStructures/QuadEdgeCell.hxx | 256 + lib/cpm/DataStructures/QuadEdgeIterators.h | 171 + lib/cpm/DataStructures/QuadEdgeIterators.hxx | 275 + lib/cpm/DataStructures/QuadEdgeMesh.h | 283 + lib/cpm/DataStructures/QuadEdgeMesh.hxx | 528 + lib/cpm/DataStructures/SimplexMesh.h | 98 + lib/cpm/DataStructures/SimplexMesh.hxx | 376 + lib/cpm/IO/MeshReader.h | 62 + lib/cpm/IO/MeshReader.hxx | 92 + lib/cpm/IO/WaveFrontOBJReader.h | 79 + lib/cpm/IO/WaveFrontOBJReader.hxx | 123 + lib/cpm/VTK/MeshMapper.cxx | 234 + lib/cpm/VTK/MeshMapper.h | 101 + lib/cpm/VTK/OpenGLMeshMapper.cxx | 627 + lib/cpm/VTK/OpenGLMeshMapper.h | 84 + lib/cpm/VTK/PointPickerRepresentation.h | 113 + lib/cpm/VTK/PointPickerWidget.h | 248 + lib/cpm/VTK/PolyDataToMeshFilter.h | 54 + lib/cpm/VTK/PolyDataToMeshFilter.hxx | 94 + lib/cpm/VTK/ThreadedDeformation.h | 61 + lib/cpm/VTK/ThreadedDeformation.hxx | 81 + lib/cpm/VTK/ThreadedDeformationObserver.h | 56 + lib/cpm/VTK/ThreadedDeformationObserver.hxx | 73 + 92 files changed, 49113 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 appli/CMakeLists.txt create mode 100644 appli/InteractiveDeformableMeshSegmentation/CMakeLists.txt create mode 100644 appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.cxx create mode 100644 appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.h create mode 100644 appli/InteractiveDeformableMeshSegmentation/MainWnd.cxx create mode 100644 appli/InteractiveDeformableMeshSegmentation/MainWnd.h create mode 100644 appli/InteractiveDeformableMeshSegmentation/MainWnd.ui create mode 100644 appli/InteractiveDeformableMeshSegmentation/SegmentationParametersDlg.ui create mode 100644 appli/InteractiveDeformableMeshSegmentation/VolumeActors.cxx create mode 100644 appli/InteractiveDeformableMeshSegmentation/VolumeActors.h create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/exit.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/modify.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/navigate.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/open_image.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/open_mesh.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/open_segmented_image.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/icons/process_image.ico create mode 100644 appli/InteractiveDeformableMeshSegmentation/idms.plugins create mode 100644 appli/InteractiveDeformableMeshSegmentation/main.cxx create mode 100644 appli/InteractiveDeformableMeshSegmentation/resources.qrc create mode 100644 appli/examples/CMakeLists.txt create mode 100644 appli/examples/example_InternalForceSimplexMesh.cxx create mode 100644 appli/examples/example_QuadEdgeDecimation.cxx create mode 100644 appli/examples/example_QuadEdgeMeshToSimplexMesh.cxx create mode 100644 appli/examples/example_ReadOBJAsQuadEdgeMesh.cxx create mode 100644 appli/examples/example_ReadQuadEdgeMesh.cxx create mode 100644 appli/examples/example_ReadVTKMeshAsQuadEdgeMesh.cxx create mode 100644 appli/examples/example_RenderDualMesh.cxx create mode 100644 appli/examples/example_RenderQuadEdgeMesh.cxx create mode 100644 appli/examples/example_SimplexMeshDeleteEdge.cxx create mode 100644 data/mesh_00.vtk create mode 100644 data/mesh_01.obj create mode 100644 data/mesh_02.obj create mode 100644 data/mesh_03.vtk create mode 100644 data/mesh_04.vtk create mode 100644 data/mesh_05.obj create mode 100644 data/mesh_06.vtk create mode 100644 doc/uml/cpMesh_Deformation_classes.dia create mode 100644 lib/CMakeLists.txt create mode 100644 lib/cpm/Algorithms/Base/FindClosestPointInMesh.h create mode 100644 lib/cpm/Algorithms/Base/FindClosestPointInMesh.hxx create mode 100644 lib/cpm/Algorithms/Base/ForceFunction.h create mode 100644 lib/cpm/Algorithms/Base/InPlaceMeshFilter.h create mode 100644 lib/cpm/Algorithms/Base/InPlaceMeshFilter.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/DecimationCriteria.h create mode 100644 lib/cpm/Algorithms/QuadEdge/DecimationFilter.h create mode 100644 lib/cpm/Algorithms/QuadEdge/DecimationFilter.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.h create mode 100644 lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.h create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshFunctionBase.h create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.h create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h create mode 100644 lib/cpm/Algorithms/QuadEdge/MeshZipFunction.hxx create mode 100644 lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.h create mode 100644 lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.hxx create mode 100644 lib/cpm/Algorithms/Simplex/DeformationFilter.h create mode 100644 lib/cpm/Algorithms/Simplex/DeformationFilter.hxx create mode 100644 lib/cpm/Algorithms/Simplex/InternalForceFunction.h create mode 100644 lib/cpm/Algorithms/Simplex/InternalForceFunction.hxx create mode 100644 lib/cpm/CMakeLists.txt create mode 100644 lib/cpm/DataStructures/QuadEdge.h create mode 100644 lib/cpm/DataStructures/QuadEdge.hxx create mode 100644 lib/cpm/DataStructures/QuadEdgeCell.h create mode 100644 lib/cpm/DataStructures/QuadEdgeCell.hxx create mode 100644 lib/cpm/DataStructures/QuadEdgeIterators.h create mode 100644 lib/cpm/DataStructures/QuadEdgeIterators.hxx create mode 100644 lib/cpm/DataStructures/QuadEdgeMesh.h create mode 100644 lib/cpm/DataStructures/QuadEdgeMesh.hxx create mode 100644 lib/cpm/DataStructures/SimplexMesh.h create mode 100644 lib/cpm/DataStructures/SimplexMesh.hxx create mode 100644 lib/cpm/IO/MeshReader.h create mode 100644 lib/cpm/IO/MeshReader.hxx create mode 100644 lib/cpm/IO/WaveFrontOBJReader.h create mode 100644 lib/cpm/IO/WaveFrontOBJReader.hxx create mode 100644 lib/cpm/VTK/MeshMapper.cxx create mode 100644 lib/cpm/VTK/MeshMapper.h create mode 100644 lib/cpm/VTK/OpenGLMeshMapper.cxx create mode 100644 lib/cpm/VTK/OpenGLMeshMapper.h create mode 100644 lib/cpm/VTK/PointPickerRepresentation.h create mode 100644 lib/cpm/VTK/PointPickerWidget.h create mode 100644 lib/cpm/VTK/PolyDataToMeshFilter.h create mode 100644 lib/cpm/VTK/PolyDataToMeshFilter.hxx create mode 100644 lib/cpm/VTK/ThreadedDeformation.h create mode 100644 lib/cpm/VTK/ThreadedDeformation.hxx create mode 100644 lib/cpm/VTK/ThreadedDeformationObserver.h create mode 100644 lib/cpm/VTK/ThreadedDeformationObserver.hxx diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1776d43 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,96 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +# for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003") +IF( + COMMAND cmake_policy AND + ${CMAKE_MAJOR_VERSION} EQUAL 2 AND + ${CMAKE_MINOR_VERSION} GREATER 4 + ) + CMAKE_POLICY(SET CMP0003 NEW) + CMAKE_POLICY(SET CMP0005 NEW) + CMAKE_POLICY(SET CMP0011 NEW) + CMAKE_POLICY(SET CMP0012 NEW) +ENDIF( + COMMAND cmake_policy AND + ${CMAKE_MAJOR_VERSION} EQUAL 2 AND + ${CMAKE_MINOR_VERSION} GREATER 4 + ) + +## ================ +## = Project name = +## ================ + +PROJECT(cpMesh) + +## =========== +## = Options = +## =========== + +OPTION(BUILD_EXAMPLES "Build demos" OFF) +OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON) +OPTION(BUILD_FINAL_APPLICATION "Build final application" ON) + +IF(BUILD_SHARED_LIBS) + SET(cpm_LIBRARY_TYPE SHARED) +ELSE(BUILD_SHARED_LIBS) + SET(cpm_LIBRARY_TYPE STATIC) +ENDIF(BUILD_SHARED_LIBS) + +## ============ +## = Packages = +## ============ +INCLUDE(GenerateExportHeader) + +FIND_PACKAGE(ITK REQUIRED) +INCLUDE(${ITK_USE_FILE}) + +FIND_PACKAGE(VTK REQUIRED) +INCLUDE(${VTK_USE_FILE}) + +IF(BUILD_FINAL_APPLICATION) + FIND_PACKAGE(Qt4 REQUIRED) + INCLUDE(${QT_USE_FILE}) + + FIND_PACKAGE(cpPlugins REQUIRED) +ENDIF(BUILD_FINAL_APPLICATION) + +## ================================================ +## = Do not allow to build inside the source tree = +## ================================================ + +IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) + MESSAGE(FATAL_ERROR "Building in the source tree is not allowed") +ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) + +## ===================================== +## = Where to put executables and libs = +## ===================================== + +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) +SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) +MARK_AS_ADVANCED( + CMAKE_BACKWARDS_COMPATIBILITY + EXECUTABLE_OUTPUT_PATH + LIBRARY_OUTPUT_PATH + ) + +## ============================== +## = Subdirs containing headers = +## ============================== + +INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/lib + ${PROJECT_SOURCE_DIR}/lib/third_party + ${PROJECT_BINARY_DIR}/lib + ) + +## =========================== +## = Subdirs containing code = +## =========================== + +SUBDIRS( + lib + appli + ) + +## eof - $RCSfile$ diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt new file mode 100644 index 0000000..f177b3c --- /dev/null +++ b/appli/CMakeLists.txt @@ -0,0 +1,7 @@ + +SUBDIRS( + examples + InteractiveDeformableMeshSegmentation + ) + +## eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/CMakeLists.txt b/appli/InteractiveDeformableMeshSegmentation/CMakeLists.txt new file mode 100644 index 0000000..dfa2d8c --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/CMakeLists.txt @@ -0,0 +1,77 @@ +IF(BUILD_FINAL_APPLICATION) + + ## ==================================================== + ## = Source code, user interafaces and resources here = + ## ==================================================== + + SET(App_NAME "InteractiveDeformableMeshSegmentation") + SET(App_SOURCE_DIR "${PROJECT_SOURCE_DIR}/appli/${App_NAME}") + SET(App_BINARY_DIR "${PROJECT_BINARY_DIR}/appli/${App_NAME}") + + SET( + App_QT_SOURCES + MainWnd.cxx + ) + SET( + App_SOURCES + main.cxx + VolumeActors.cxx + InteractorStyleImage.cxx + ) + SET( + App_QT_HEADERS + MainWnd.h + ) + SET( + App_HEADERS + VolumeActors.h + InteractorStyleImage.h + ) + FILE(GLOB App_QT_UI "${App_SOURCE_DIR}/*.ui") + FILE(GLOB App_QT_RES "${App_SOURCE_DIR}/*.qrc") + + ## ===================== + ## = Compilation rules = + ## ===================== + + INCLUDE_DIRECTORIES( + ${App_BINARY_DIR} + ) + + QT4_WRAP_UI(App_QT_UI_Headers ${App_QT_UI}) + QT4_WRAP_CPP(App_QT_HEADERS_MOC_SOURCES ${App_QT_HEADERS}) + QT4_ADD_RESOURCES(App_QT_RES_SOURCES ${App_QT_RES}) + + SET(GUI_TYPE "") + IF(WIN32) + SET(GUI_TYPE WIN32) + ENDIF(WIN32) + IF(APPLE) + SET(GUI_TYPE MACOSX_BUNDLE) + ENDIF(APPLE) + + ADD_EXECUTABLE( + ${App_NAME} + ${GUI_TYPE} + ${App_QT_UI_Headers} + ${App_SOURCES} + ${App_QT_SOURCES} + ${App_QT_HEADERS_MOC_SOURCES} + ${App_QT_RES_SOURCES} + ) + TARGET_LINK_LIBRARIES( + ${App_NAME} + cpm + ${QT_LIBRARIES} + ${ITK_LIBRARIES} + ${VTK_LIBRARIES} + ) + + CONFIGURE_FILE( + idms.plugins + ${PROJECT_BINARY_DIR}/idms.plugins + COPYONLY + ) +ENDIF(BUILD_FINAL_APPLICATION) + +## eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.cxx b/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.cxx new file mode 100644 index 0000000..f192117 --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.cxx @@ -0,0 +1,493 @@ +#include "InteractorStyleImage.h" +#include "VolumeActors.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +int idms::InteractorStyleImage::SliceEvent = vtkCommand::UserEvent + 1; + +// ------------------------------------------------------------------------- +idms::InteractorStyleImage:: +Self* idms::InteractorStyleImage:: +New( ) +{ + return( new Self( ) ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +Configure( VolumeActors* actors, const int& axis ) +{ + this->Actors = actors; + this->Axis = axis; + this->SetModeToNavigation( ); + + if( axis == 0 ) + this->PropPicker->AddPickList( actors->GetXPlaneActor( ) ); + else if( axis == 1 ) + this->PropPicker->AddPickList( actors->GetYPlaneActor( ) ); + else // if( axis == 2 ) + this->PropPicker->AddPickList( actors->GetZPlaneActor( ) ); + + this->Modified( ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +SetModeToNavigation( ) +{ + this->Mode = Self::NavigationMode; +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +SetModeToDeformation( ) +{ + this->Mode = Self::DeformationMode; +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +SetInteractor( vtkRenderWindowInteractor* rwi ) +{ + this->Superclass::SetInteractor( rwi ); + this->OrientationWidget->SetInteractor( rwi ); + this->LineWdg->SetInteractor( rwi ); + if( rwi == NULL ) + return; + + rwi->SetPicker( this->PropPicker ); + + // Enable 2D orientation widget + this->OrientationWidget->SetEnabled( 1 ); + this->OrientationWidget->InteractiveOff( ); + + // Disable line widget + this->LineWdg->SetEnabled( 0 ); + + // Get camera, avoiding segfaults + vtkRenderer* ren = + rwi->GetRenderWindow( )->GetRenderers( )->GetFirstRenderer( ); + if( ren == NULL ) + return; + vtkCamera* cam = ren->GetActiveCamera( ); + if( cam == NULL ) + return; + + // Parallel projections are better when displaying 2D images + cam->ParallelProjectionOn( ); + cam->SetFocalPoint( double( 0 ), double( 0 ), double( 0 ) ); + this->Plane->SetOrigin( double( 0 ), double( 0 ), double( 0 ) ); + if( this->Axis == 0 ) + { + cam->SetPosition( double( 1 ), double( 0 ), double( 0 ) ); + cam->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) ); + this->Plane->SetNormal( double( 1 ), double( 0 ), double( 0 ) ); + } + else if( this->Axis == 1 ) + { + cam->SetPosition( double( 0 ), double( 1 ), double( 0 ) ); + cam->SetViewUp ( double( 0 ), double( 0 ), double( -1 ) ); + this->Plane->SetNormal( double( 0 ), double( 1 ), double( 0 ) ); + } + else // if( this->Axis == 2 ) + { + cam->SetPosition( double( 0 ), double( 0 ), double( 1 ) ); + cam->SetViewUp ( double( 0 ), double( 1 ), double( 0 ) ); + this->Plane->SetNormal( double( 0 ), double( 0 ), double( 1 ) ); + + } // fi +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnMouseMove( ) +{ + if( this->Mode == Self::DeformationMode ) + this->_UpdateCursor( ); + + // Propagate event + this->Superclass::OnMouseMove( ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnLeftButtonDown( ) +{ + if( this->Mode == Self::DeformationMode ) + { + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( this->Actors != NULL && rwi != NULL ) + { + if( rwi->GetShiftKey( ) == 1 ) + { + this->Actors->GetRegionActor( )->GetProperty( )->SetOpacity( 0.3 ); + this->UpdatingRegion = true; + } + else + this->Superclass::OnLeftButtonDown( ); + } + else + this->Superclass::OnLeftButtonDown( ); + } + else if( this->Mode == Self::NavigationMode ) + this->Superclass::OnLeftButtonDown( ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnLeftButtonUp( ) +{ + if( this->Mode == Self::DeformationMode ) + { + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( this->Actors != NULL && rwi != NULL ) + { + if( rwi->GetShiftKey( ) == 1 ) + { + this->Actors->GetRegionActor( )->GetProperty( )->SetOpacity( 0 ); + this->UpdatingRegion = false; + } + else + this->Superclass::OnLeftButtonUp( ); + } + else + this->Superclass::OnLeftButtonUp( ); + } + else if( this->Mode == Self::NavigationMode ) + this->Superclass::OnLeftButtonUp( ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnMouseWheelForward( ) +{ + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( this->Actors == NULL || rwi == NULL ) + return; + int off = 1; + if( rwi->GetShiftKey( ) == 1 ) + off *= 10; + int s = this->Actors->GetSlice( this->Axis ) + off; + int maxs = this->Actors->GetSliceNumberMaxValue( this->Axis ); + this->Actors->SetSlice( this->Axis, ( s < maxs )? s: maxs ); + this->Actors->Render( ); + + if( this->Mode == Self::DeformationMode ) + this->_UpdateCursor( ); + + this->InvokeEvent( Self::SliceEvent, &( this->Axis ) ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnMouseWheelBackward( ) +{ + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( this->Actors == NULL || rwi == NULL ) + return; + int off = 1; + if( rwi->GetShiftKey( ) == 1 ) + off *= 10; + int s = this->Actors->GetSlice( this->Axis ) - off; + int mins = this->Actors->GetSliceNumberMinValue( this->Axis ); + this->Actors->SetSlice( this->Axis, ( s < mins )? mins: s ); + this->Actors->Render( ); + + if( this->Mode == Self::DeformationMode ) + this->_UpdateCursor( ); + + this->InvokeEvent( Self::SliceEvent, &( this->Axis ) ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +OnChar( ) +{ + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( rwi == NULL ) + return; + + switch( rwi->GetKeyCode( ) ) + { + case 'r': case 'R': + { + vtkRenderer* ren = + rwi->GetRenderWindow( )->GetRenderers( )->GetFirstRenderer( ); + if( ren != NULL ) + { + double bounds[ 6 ]; + this->Actors->GetImageBounds( bounds ); + ren->ResetCamera( bounds ); + rwi->Render( ); + + } // fi + } + break; + case 'l': case 'L': + { + this->Actors->ResetWindowLevel( ); + this->Actors->Render( ); + } + break; + case 's': case 'S': + { + int idx[ 3 ]; + idx[ 0 ] = this->Actors->GetSlice( 0 ); + idx[ 1 ] = this->Actors->GetSlice( 1 ); + idx[ 2 ] = this->Actors->GetSlice( 2 ); + this->Actors->AddSeed( idx ); + } + break; + default: + break; + } // hctiws +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +Pan( ) +{ + if( this->Mode == Self::DeformationMode ) + { + this->Actors->Render( ); + } + else if( this->Mode == Self::NavigationMode ) + this->Superclass::Pan( ); +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +Spin( ) +{ + if( this->Mode == Self::NavigationMode ) + { + double pos[ 3 ]; + if( this->_PickPosition( pos ) ) + { + if( this->Axis != 0 ) this->Actors->SetSlice( 0, pos[ 0 ] ); + if( this->Axis != 1 ) this->Actors->SetSlice( 1, pos[ 1 ] ); + if( this->Axis != 2 ) this->Actors->SetSlice( 2, pos[ 2 ] ); + this->Actors->Render( ); + + } // fi + } + else if( this->Mode == Self::DeformationMode ) + { + // TODO + + } // fi +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +StartWindowLevel( ) +{ + if( this->Mode == Self::NavigationMode ) + { + if( this->State != VTKIS_NONE ) + return; + this->StartState( VTKIS_WINDOW_LEVEL ); + + this->WindowLevelInitial[ 0 ] = this->Actors->GetWindow( ); + this->WindowLevelInitial[ 1 ] = this->Actors->GetLevel( ); + } + else if( this->Mode == Self::DeformationMode ) + { + // TODO + + } // fi +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +WindowLevel( ) +{ + if( this->Mode == Self::NavigationMode ) + { + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( rwi == NULL ) + return; + vtkRenderer* ren = + rwi->GetRenderWindow( )->GetRenderers( )->GetFirstRenderer( ); + if( ren == NULL ) + return; + + // Compute scales + this->WindowLevelCurrentPosition[ 0 ] = rwi->GetEventPosition( )[ 0 ]; + this->WindowLevelCurrentPosition[ 1 ] = rwi->GetEventPosition( )[ 1 ]; + int* size = ren->GetSize( ); + double sw = double( + this->WindowLevelCurrentPosition[ 0 ] - + this->WindowLevelStartPosition[ 0 ] + ) / double( size[ 0 ] ); + double sl = ( + this->WindowLevelStartPosition[ 1 ] - + this->WindowLevelCurrentPosition[ 1 ] + ) / double( size[ 1 ] ); + + double w = this->WindowLevelInitial[ 0 ] * ( double( 1 ) + sw ); + double l = this->WindowLevelInitial[ 1 ] * ( double( 1 ) + sl ); + double minw = this->Actors->GetMinWindow( ); + double maxw = this->Actors->GetMaxWindow( ); + double minl = this->Actors->GetMinLevel( ); + double maxl = this->Actors->GetMaxLevel( ); + + if( w < minw ) w = minw; + if( maxw < w ) w = maxw; + if( l < minl ) l = minl; + if( maxl < l ) l = maxl; + + this->Actors->SetWindowLevel( w, l ); + this->Actors->Render( ); + } + else if( this->Mode == Self::DeformationMode ) + { + // TODO + + } // fi +} + +// ------------------------------------------------------------------------- +idms::InteractorStyleImage:: +InteractorStyleImage( ) + : Superclass( ), + Mode( Self::NavigationMode ), + Actors( NULL ), + Axis( 2 ) +{ + // Orientation marks + vtkSmartPointer< vtkAnnotatedCubeActor > cube = + vtkSmartPointer< vtkAnnotatedCubeActor >::New( ); + cube->GetCubeProperty( )->SetColor( 0.9, 0.7, 0.2 ); + cube->GetTextEdgesProperty( )->SetLineWidth( 1 ); + cube->GetTextEdgesProperty( )->SetDiffuse( 0 ); + cube->GetTextEdgesProperty( )->SetAmbient( 1 ); + cube->GetTextEdgesProperty( )->SetColor( 0.18, 0.28, 0.23 ); + cube->GetXPlusFaceProperty( )->SetColor( 1, 0, 0 ); + cube->GetXPlusFaceProperty( )->SetInterpolationToFlat( ); + cube->GetXMinusFaceProperty( )->SetColor( 1, 0, 0 ); + cube->GetXMinusFaceProperty( )->SetInterpolationToFlat( ); + cube->GetYPlusFaceProperty( )->SetColor( 0, 1, 0 ); + cube->GetYPlusFaceProperty( )->SetInterpolationToFlat( ); + cube->GetYMinusFaceProperty( )->SetColor( 0, 1, 0 ); + cube->GetYMinusFaceProperty( )->SetInterpolationToFlat( ); + cube->GetZPlusFaceProperty( )->SetColor( 0, 0, 1 ); + cube->GetZPlusFaceProperty( )->SetInterpolationToFlat( ); + cube->GetZMinusFaceProperty( )->SetColor( 0, 0, 1 ); + cube->GetZMinusFaceProperty( )->SetInterpolationToFlat( ); + + vtkSmartPointer< vtkAxesActor > axes = + vtkSmartPointer< vtkAxesActor >::New( ); + axes->AxisLabelsOff( ); + axes->SetShaftTypeToCylinder( ); + axes->SetTotalLength( 2, 2, 2 ); + + vtkSmartPointer< vtkPropAssembly > actors = + vtkSmartPointer< vtkPropAssembly >::New( ); + actors->AddPart( cube ); + actors->AddPart( axes ); + + this->OrientationWidget = + vtkSmartPointer< vtkOrientationMarkerWidget >::New( ); + this->OrientationWidget->SetOutlineColor( 0.93, 0.57, 0.13 ); + this->OrientationWidget->SetOrientationMarker( actors ); + this->OrientationWidget->SetViewport( 0.0, 0.0, 0.2, 0.2 ); + + this->Plane = vtkSmartPointer< vtkPlane >::New( ); + + this->PropPicker = vtkSmartPointer< vtkPropPicker >::New( ); + this->PropPicker->PickFromListOn( ); + + this->LineRep = vtkSmartPointer< vtkLineRepresentation >::New( ); + this->LineWdg = vtkSmartPointer< vtkLineWidget2 >::New( ); + + this->LineWdg->SetRepresentation( this->LineRep ); +} + +// ------------------------------------------------------------------------- +idms::InteractorStyleImage:: +~InteractorStyleImage( ) +{ +} + +// ------------------------------------------------------------------------- +bool idms::InteractorStyleImage:: +_PickPosition( double pos[ 3 ] ) +{ + vtkRenderWindowInteractor* rwi = this->GetInteractor( ); + if( this->Actors == NULL || rwi == NULL ) + return( false ); + this->FindPokedRenderer( + rwi->GetEventPosition( )[ 0 ], + rwi->GetEventPosition( )[ 1 ] + ); + int success = rwi->GetPicker( )->Pick( + rwi->GetEventPosition( )[ 0 ], + rwi->GetEventPosition( )[ 1 ], + 0.0, + this->CurrentRenderer + ); + if( success == 0 ) + return( false ); + + /* + vtkAbstractPropPicker* picker = + vtkAbstractPropPicker::SafeDownCast( rwi->GetPicker( ) ); + if( picker != NULL ) + { + */ + this->PropPicker->GetPickPosition( pos ); + return( true ); + /* + } + else + return( false ); + */ +} + +// ------------------------------------------------------------------------- +void idms::InteractorStyleImage:: +_UpdateCursor( ) +{ + double p[ 3 ]; + if( this->_PickPosition( p ) ) + { + this->Actors->SetCursorPosition( p ); + if( this->UpdatingRegion ) + this->Actors->SetRegionRadius( p ); + else + this->Actors->SetRegionPosition( p ); + this->Actors->RenderAuxiliaryInteractors( ); + + /* TODO + double c[ 3 ]; + int i[ 3 ]; + vtkImageData* img = this->Actors->GetImage( ); + bool inside = ( img->ComputeStructuredCoordinates( p, i, c ) != 0 ); + if( inside ) + { + std::cout + << i[ 0 ] << " " + << i[ 1 ] << " " + << i[ 2 ] + << std::endl; + + } // fi + */ + } // fi +} + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.h b/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.h new file mode 100644 index 0000000..87acbfd --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/InteractorStyleImage.h @@ -0,0 +1,190 @@ +#ifndef __IDMS__INTERACTORSTYLEIMAGE__H__ +#define __IDMS__INTERACTORSTYLEIMAGE__H__ + +#include +#include +#include +#include +#include +#include +#include + +class vtkImageData; + +namespace idms +{ + class VolumeActors; + + /** + */ + class InteractorStyleImage + : public vtkInteractorStyleImage + { + public: + typedef InteractorStyleImage Self; + + enum InteractionMode + { + NavigationMode = 0, + DeformationMode + }; + + public: + vtkTypeMacro( InteractorStyleImage, vtkInteractorStyleImage ); + + public: + static Self* New( ); + + void Configure( VolumeActors* actors, const int& axis ); + + void SetModeToNavigation( ); + void SetModeToDeformation( ); + virtual void SetInteractor( vtkRenderWindowInteractor* interactor ); + + // Description: + // Event bindings controlling the effects of pressing mouse buttons + // or moving the mouse. + virtual void OnMouseMove( ); + virtual void OnLeftButtonDown( ); + virtual void OnLeftButtonUp( ); + /* + virtual void OnMiddleButtonDown( ); + virtual void OnMiddleButtonUp( ); + virtual void OnRightButtonDown( ); + virtual void OnRightButtonUp( ); + */ + virtual void OnMouseWheelForward( ); + virtual void OnMouseWheelBackward( ); + + // Description: + // Override the "fly-to" (f keypress) for images. + virtual void OnChar( ); + + // These methods for the different interactions in different modes + // are overridden in subclasses to perform the correct motion. Since + // they might be called from OnTimer, they do not have mouse coord + // parameters (use interactor's GetEventPosition and GetLastEventPosition) + virtual void Rotate( ) + { + std::cout << "Rotate" << std::endl; + } + virtual void Pan( ); + virtual void Spin( ); + virtual void Zoom( ) + { + std::cout << "Zoom" << std::endl; + } + virtual void StartWindowLevel( ); + virtual void WindowLevel( ); + virtual void Pick( ) + { + std::cout << "Pick" << std::endl; + } + virtual void Slice( ) + { + std::cout << "Slice" << std::endl; + } + + // Interaction mode entry points used internally. + /* + virtual void StartWindowLevel(); + virtual void EndWindowLevel(); + virtual void StartPick(); + virtual void EndPick(); + virtual void StartSlice(); + virtual void EndSlice(); + */ + + // Description: + // Set/Get current mode to 2D or 3D. The default is 2D. In 3D mode, + // it is possible to rotate the camera to view oblique slices. In Slicing + // mode, it is possible to slice through the data, but not to generate oblique + // views by rotating the camera. + /* + vtkSetClampMacro(InteractionMode, int, VTKIS_IMAGE2D, VTKIS_IMAGE_SLICING); + vtkGetMacro(InteractionMode, int); + void SetInteractionModeToImage2D() { + this->SetInteractionMode(VTKIS_IMAGE2D); } + void SetInteractionModeToImage3D() { + this->SetInteractionMode(VTKIS_IMAGE3D); } + void SetInteractionModeToImageSlicing() { + this->SetInteractionMode(VTKIS_IMAGE_SLICING); } + */ + + // Description: + // Set the orientations that will be used when the X, Y, or Z + // keys are pressed. See SetImageOrientation for more information. + /* + vtkSetVector3Macro(XViewRightVector, double); + vtkGetVector3Macro(XViewRightVector, double); + vtkSetVector3Macro(XViewUpVector, double); + vtkGetVector3Macro(XViewUpVector, double); + vtkSetVector3Macro(YViewRightVector, double); + vtkGetVector3Macro(YViewRightVector, double); + vtkSetVector3Macro(YViewUpVector, double); + vtkGetVector3Macro(YViewUpVector, double); + vtkSetVector3Macro(ZViewRightVector, double); + vtkGetVector3Macro(ZViewRightVector, double); + vtkSetVector3Macro(ZViewUpVector, double); + vtkGetVector3Macro(ZViewUpVector, double); + */ + + // Description: + // Set the view orientation, in terms of the horizontal and + // vertical directions of the computer screen. The first + // vector gives the direction that will correspond to moving + // horizontally left-to-right across the screen, and the + // second vector gives the direction that will correspond to + // moving bottom-to-top up the screen. This method changes + // the position of the camera to provide the desired view. + /* + void SetImageOrientation( + const double leftToRight[3], + const double bottomToTop[3]); + */ + + // Description: + // Get the current image property, which is set when StartWindowLevel + // is called immediately before StartWindowLevelEvent is generated. + // This is the image property of the topmost vtkImageSlice in the + // renderer or NULL if no image actors are present. + /* + vtkImageProperty *GetCurrentImageProperty() { + return this->CurrentImageProperty; } + */ + + protected: + InteractorStyleImage( ); + virtual ~InteractorStyleImage( ); + + bool _PickPosition( double pos[ 3 ] ); + void _UpdateCursor( ); + + private: + // Purposely not implemented + InteractorStyleImage( const Self& ); + Self& operator=( const Self& ); + + protected: + Self::InteractionMode Mode; + + vtkSmartPointer< vtkOrientationMarkerWidget > OrientationWidget; + VolumeActors* Actors; + int Axis; + vtkSmartPointer< vtkPlane > Plane; + vtkSmartPointer< vtkPropPicker > PropPicker; + + bool UpdatingRegion; + + vtkSmartPointer< vtkLineRepresentation > LineRep; + vtkSmartPointer< vtkLineWidget2 > LineWdg; + + public: + static int SliceEvent; + }; + +} // ecapseman + +#endif // __IDMS__INTERACTORSTYLEIMAGE__H__ + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/MainWnd.cxx b/appli/InteractiveDeformableMeshSegmentation/MainWnd.cxx new file mode 100644 index 0000000..51c0ac1 --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/MainWnd.cxx @@ -0,0 +1,969 @@ +#include "MainWnd.h" +#include "ui_MainWnd.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +/* + #include "ui_SegmentationParametersDlg.h" + + #include + + + #include + #include + #include + + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + + #include + #include + #include + #include + #include + #include + + #include +*/ + +// ------------------------------------------------------------------------- +#define IDMS_QT_ACTION( action ) \ + QObject::connect( \ + this->m_UI->a##action, SIGNAL( triggered( ) ), \ + this, SLOT( triggered_a##action( ) ) \ + ) + +// ------------------------------------------------------------------------- +MainWnd::MainWnd( QWidget* parent ) + : QMainWindow( parent ), + m_UI( new Ui::MainWnd ) +{ + this->m_UI->setupUi( this ); + + // Configure strings + this->m_LastOpenedFile = "."; + this->m_PluginsConfigurationFile = "idms.plugins"; + + // Create and associate renderers + this->m_3DRenderer = vtkSmartPointer< vtkRenderer >::New( ); + this->m_XPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); + this->m_YPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); + this->m_ZPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); + this->m_AuxRenderer = vtkSmartPointer< vtkRenderer >::New( ); + this->m_3DRenderer->SetBackground( 0.2, 0.2, 0.2 ); + this->m_XPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); + this->m_YPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); + this->m_ZPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); + this->m_AuxRenderer->SetBackground( 0.1, 0.3, 0.8 ); + this->m_UI->m_3DVTK->GetRenderWindow( )-> + AddRenderer( this->m_3DRenderer ); + this->m_UI->m_XPlaneVTK->GetRenderWindow( )-> + AddRenderer( this->m_XPlaneRenderer ); + this->m_UI->m_YPlaneVTK->GetRenderWindow( )-> + AddRenderer( this->m_YPlaneRenderer ); + this->m_UI->m_ZPlaneVTK->GetRenderWindow( )-> + AddRenderer( this->m_ZPlaneRenderer ); + this->m_UI->m_AuxVTK->GetRenderWindow( )-> + AddRenderer( this->m_AuxRenderer ); + + // Configure MPR actors + this->m_ImageActors = vtkSmartPointer< idms::VolumeActors >::New( ); + + // Interaction styles + this->m_XStyle = vtkSmartPointer< idms::InteractorStyleImage >::New( ); + this->m_YStyle = vtkSmartPointer< idms::InteractorStyleImage >::New( ); + this->m_ZStyle = vtkSmartPointer< idms::InteractorStyleImage >::New( ); + this->m_XStyle->Configure( this->m_ImageActors, 0 ); + this->m_YStyle->Configure( this->m_ImageActors, 1 ); + this->m_ZStyle->Configure( this->m_ImageActors, 2 ); + this->m_UI->m_XPlaneVTK->GetInteractor( )-> + SetInteractorStyle( this->m_XStyle ); + this->m_UI->m_YPlaneVTK->GetInteractor( )-> + SetInteractorStyle( this->m_YStyle ); + this->m_UI->m_ZPlaneVTK->GetInteractor( )-> + SetInteractorStyle( this->m_ZStyle ); + + /* + vtkSmartPointer< vtkCallbackCommand > z_callback = + vtkSmartPointer< vtkCallbackCommand >::New( ); + z_callback->SetCallback( MainWnd::_SliceEventCallback ); + z_callback->SetClientData( this ); + zstyle->AddObserver( idms::InteractorStyleImage::SliceEvent, z_callback ); + + // Orientation marks + vtkSmartPointer< vtkAnnotatedCubeActor > oCube = + vtkSmartPointer< vtkAnnotatedCubeActor >::New( ); + oCube->GetCubeProperty( )->SetColor( 0.9, 0.7, 0.2 ); + oCube->GetTextEdgesProperty( )->SetLineWidth( 1 ); + oCube->GetTextEdgesProperty( )->SetDiffuse( 0 ); + oCube->GetTextEdgesProperty( )->SetAmbient( 1 ); + oCube->GetTextEdgesProperty( )->SetColor( 0.18, 0.28, 0.23 ); + oCube->GetXPlusFaceProperty( )->SetColor( 1, 0, 0 ); + oCube->GetXPlusFaceProperty( )->SetInterpolationToFlat( ); + oCube->GetXMinusFaceProperty( )->SetColor( 1, 0, 0 ); + oCube->GetXMinusFaceProperty( )->SetInterpolationToFlat( ); + oCube->GetYPlusFaceProperty( )->SetColor( 0, 1, 0 ); + oCube->GetYPlusFaceProperty( )->SetInterpolationToFlat( ); + oCube->GetYMinusFaceProperty( )->SetColor( 0, 1, 0 ); + oCube->GetYMinusFaceProperty( )->SetInterpolationToFlat( ); + oCube->GetZPlusFaceProperty( )->SetColor( 0, 0, 1 ); + oCube->GetZPlusFaceProperty( )->SetInterpolationToFlat( ); + oCube->GetZMinusFaceProperty( )->SetColor( 0, 0, 1 ); + oCube->GetZMinusFaceProperty( )->SetInterpolationToFlat( ); + + vtkSmartPointer< vtkAxesActor > oAxes = + vtkSmartPointer< vtkAxesActor >::New( ); + oAxes->AxisLabelsOff( ); + oAxes->SetShaftTypeToCylinder( ); + oAxes->SetTotalLength( 2.5, 2.5, 2.5 ); + + vtkSmartPointer< vtkPropAssembly > oActors = + vtkSmartPointer< vtkPropAssembly >::New( ); + oActors->AddPart( oCube ); + oActors->AddPart( oAxes ); + + this->m_3DOrientationWidget = + vtkSmartPointer< vtkOrientationMarkerWidget >::New( ); + this->m_3DOrientationWidget->SetOutlineColor( 0.93, 0.57, 0.13 ); + this->m_3DOrientationWidget->SetOrientationMarker( oActors ); + this->m_3DOrientationWidget->SetViewport( 0.0, 0.0, 0.2, 0.2 ); + + // Add actors, widgets, stuff, ... + this->m_3DOrientationWidget-> + SetInteractor( this->m_UI->m_3DVTK->GetInteractor( ) ); + this->m_3DOrientationWidget->SetEnabled( 1 ); + this->m_3DOrientationWidget->InteractiveOff( ); + + IDMS_QT_ACTION( aLoadInputImage ); + IDMS_QT_ACTION( aLoadSegmentedImage ); + */ + // Qt signals <-> slots + QObject::connect( + this->m_UI->aNavigation, SIGNAL( triggered( ) ), + this, SLOT( triggered_aSwitchMode( ) ) + ); + QObject::connect( + this->m_UI->aSegmentationInteractiveDeformation, SIGNAL( triggered( ) ), + this, SLOT( triggered_aSwitchMode( ) ) + ); + + IDMS_QT_ACTION( OpenInputImage ); + IDMS_QT_ACTION( OpenSegmentedImage ); + IDMS_QT_ACTION( ReloadPlugins ); + + // Start: load all disponible plugins + this->triggered_aReloadPlugins( ); +} + +// ------------------------------------------------------------------------- +MainWnd:: +~MainWnd( ) +{ + delete this->m_UI; +} + +// ------------------------------------------------------------------------- +void MainWnd:: +_UpdateEnabledFlags( ) +{ + bool img = this->m_Image.IsNotNull( ); + this->m_UI->menuSegmentInputImage->setEnabled( img ); + this->m_UI->aOpenSegmentedImage->setEnabled( img ); + this->m_UI->m_3DVTK->setEnabled( img ); + this->m_UI->m_XPlaneVTK->setEnabled( img ); + this->m_UI->m_YPlaneVTK->setEnabled( img ); + this->m_UI->m_ZPlaneVTK->setEnabled( img ); + this->m_UI->m_AuxVTK->setEnabled( img ); + + bool seg = this->m_Segmentation.IsNotNull( ); + this->m_UI->menuFilterSegmentedImage->setEnabled( seg ); + this->m_UI->menuExtractMesh->setEnabled( seg ); + this->m_UI->aOpenMesh->setEnabled( seg ); + + this->m_UI->aNavigation->setEnabled( img && seg ); + this->m_UI->aSegmentationInteractiveDeformation->setEnabled( img && seg ); + + /* TODO + menuProcessMesh + */ +} + +// ------------------------------------------------------------------------- +bool MainWnd:: +_ParametersDialog( TParameters& parameters ) +{ + QDialog dlg( this ); + QGridLayout gridLayout( &dlg ); + QVBoxLayout verticalLayout; + + // Put values + typedef std::map< std::string, QWidget* > _TWidgets; + _TWidgets widgets; + TParameters::const_iterator pIt = parameters.begin( ); + for( ; pIt != parameters.end( ); ++pIt ) + { + unsigned long pos = pIt->first.find_last_of( ":" ); + std::string v_name = pIt->first.substr( 0, pos ); + std::string v_type = pIt->first.substr( pos + 1 ); + + QHBoxLayout* horizontalLayout = new QHBoxLayout( ); + QLabel* label = new QLabel( &dlg ); + label->setText( QString( v_name.c_str( ) ) ); + horizontalLayout->addWidget( label ); + if( v_type == "real" ) + { + QDoubleSpinBox* v_double = new QDoubleSpinBox( &dlg ); + v_double->setDecimals( 3 ); + v_double->setMinimum( -( std::numeric_limits< double >::max( ) ) ); + v_double->setMaximum( std::numeric_limits< double >::max( ) ); + v_double->setValue( std::atof( pIt->second.c_str( ) ) ); + horizontalLayout->addWidget( v_double ); + widgets[ pIt->first ] = v_double; + } + else if( v_type == "atomic_real" ) + { + if( v_name == "MeshType" ) + { + QLabel* info = new QLabel( &dlg ); + if( typeid( TScalar ) == typeid( float ) ) + info->setText( QString( "float" ) ); + else if( typeid( TScalar ) == typeid( double ) ) + info->setText( QString( "double" ) ); + horizontalLayout->addWidget( info ); + widgets[ pIt->first ] = info; + + } // fi + + } // fi + verticalLayout.addLayout( horizontalLayout ); + + } // rof + gridLayout.addLayout( &verticalLayout, 0, 0, 1, 1 ); + + // Buttons box + QDialogButtonBox buttonBox( &dlg ); + buttonBox.setOrientation( Qt::Horizontal ); + buttonBox.setStandardButtons( + QDialogButtonBox::Cancel | QDialogButtonBox::Ok + ); + gridLayout.addWidget( &buttonBox, 1, 0, 1, 1 ); + QObject::connect( + &buttonBox, SIGNAL( accepted( ) ), + &dlg, SLOT( accept( ) ) + ); + QObject::connect( + &buttonBox, SIGNAL( rejected( ) ), + &dlg, SLOT( reject( ) ) + ); + QMetaObject::connectSlotsByName( &dlg ); + + // Execute dialog + if( dlg.exec( ) == QDialog::Accepted ) + { + _TWidgets::const_iterator wIt = widgets.begin( ); + for( ; wIt != widgets.end( ); ++wIt ) + { + unsigned long pos = wIt->first.find_last_of( ":" ); + std::string v_name = wIt->first.substr( 0, pos ); + std::string v_type = wIt->first.substr( pos + 1 ); + std::stringstream sstr; + if( v_type == "real" ) + { + QDoubleSpinBox* v_double = + dynamic_cast< QDoubleSpinBox* >( wIt->second ); + if( v_double != NULL ) + sstr << v_double->value( ); + } + else if( v_type == "atomic_real" ) + { + if( v_name == "MeshType" ) + { + QLabel* info = dynamic_cast< QLabel* >( wIt->second ); + if( info != NULL ) + sstr << info->text( ).toStdString( ); + + } // fi + + } // fi + parameters[ wIt->first ] = sstr.str( ); + + } // rof + return( true ); + } + return( false ); +} + +// ------------------------------------------------------------------------- +template< class I > +bool MainWnd:: +_LoadImage( typename I::Pointer& image ) +{ + QStringList qList = + QFileDialog::getOpenFileNames( + this, + tr( "Open an image" ), + tr( this->m_LastOpenedFile.c_str( ) ), + tr( "Medical image files (*.mhd *.bin *.dcm);;All files (*)" ) + ); + if( qList.size( ) == 0 ) + return( false ); + + bool ret = true; + QStringList::Iterator fIt = qList.begin( ); + if( qList.size( ) == 1 ) + { + // Read a single image + std::string fn = fIt->toStdString( ); + this->m_LastOpenedFile = fn; + + typename itk::ImageFileReader< I >::Pointer reader = + itk::ImageFileReader< I >::New( ); + reader->SetFileName( fn ); + try + { + reader->Update( ); + } + catch( itk::ExceptionObject& err ) + { + QMessageBox::critical( + this, + tr( "Error opening single image!" ), + tr( err.GetDescription( ) ) + ); + ret = false; + + } // yrt + image = reader->GetOutput( ); + image->DisconnectPipeline( ); + } + else if( qList.size( ) > 1 ) + { + typedef std::set< std::string > _TOrderedStringList; + + // Read a slice set + _TOrderedStringList filenames; + for( ; fIt != qList.end( ); ++fIt ) + filenames.insert( fIt->toStdString( ) ); + typename itk::ImageSeriesReader< I >::Pointer reader = + itk::ImageSeriesReader< I >::New( ); + reader->SetImageIO( itk::GDCMImageIO::New( ) ); + _TOrderedStringList::const_iterator oIt = filenames.begin( ); + for( ; oIt != filenames.end( ); ++oIt ) + { + reader->AddFileName( *oIt ); + this->m_LastOpenedFile = *oIt; + + } // rof + try + { + reader->Update( ); + } + catch( itk::ExceptionObject& err ) + { + QMessageBox::critical( + this, + tr( "Error opening image series!" ), + tr( err.GetDescription( ) ) + ); + ret = false; + + } // yrt + image = reader->GetOutput( ); + image->DisconnectPipeline( ); + + } // fi + return( ret ); +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aSwitchMode( ) +{ + QAction* snd = dynamic_cast< QAction* >( this->sender( ) ); + if( snd == this->m_UI->aNavigation ) + { + this->m_UI->aSegmentationInteractiveDeformation->setChecked( + !( this->m_UI->aNavigation->isChecked( ) ) + ); + } + else if( snd == this->m_UI->aSegmentationInteractiveDeformation ) + { + this->m_UI->aNavigation->setChecked( + !( this->m_UI->aSegmentationInteractiveDeformation->isChecked( ) ) + ); + } + else + { + this->m_UI->aNavigation->setChecked( true ); + this->m_UI->aSegmentationInteractiveDeformation->setChecked( false ); + + } // fi + + if( this->m_UI->aNavigation->isChecked( ) ) + { + this->m_XStyle->SetModeToNavigation( ); + this->m_YStyle->SetModeToNavigation( ); + this->m_ZStyle->SetModeToNavigation( ); + this->m_ImageActors->HideRegion( 0 ); + this->m_ImageActors->HideRegion( 1 ); + this->m_ImageActors->HideRegion( 2 ); + this->m_3DRenderer->RemoveActor( + this->m_ImageActors->GetCursorActor( ) + ); + this->m_3DRenderer->RemoveActor( + this->m_ImageActors->GetRegionActor( ) + ); + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + } + else if( this->m_UI->aSegmentationInteractiveDeformation->isChecked( ) ) + { + this->m_XStyle->SetModeToDeformation( ); + this->m_YStyle->SetModeToDeformation( ); + this->m_ZStyle->SetModeToDeformation( ); + this->m_ImageActors->ShowRegion( 0 ); + this->m_ImageActors->ShowRegion( 1 ); + this->m_ImageActors->ShowRegion( 2 ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetCursorActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetRegionActor( ) + ); + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + + } // fi +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aReloadPlugins( ) +{ + this->m_FilterPlugins.UnloadAll( ); + + std::ifstream in( this->m_PluginsConfigurationFile.c_str( ) ); + if( in ) + { + std::string plugin; + std::getline( in, plugin ); + while( !( in.eof( ) ) ) + { + if( this->m_FilterPlugins.Load( plugin ) ) + { + TFilterPlugins::TClassesIterator cIt = + this->m_FilterPlugins.BeginClasses( ); + for( ; cIt != this->m_FilterPlugins.EndClasses( ); ++cIt ) + { + TFilterObject* filter = + this->m_FilterPlugins.CreateObject( cIt->first ); + if( filter == NULL ) + continue; + std::string cat = filter->GetCategory( ); + std::string catType = cat.substr( cat.find_last_of( ":" ) ); + if( catType == ":BinaryImageToBinaryImageFilter" ) + { + QAction* action = this->m_UI->menuFilterSegmentedImage-> + addAction( QString( cIt->first.c_str( ) ) ); + QObject::connect( + action, SIGNAL( triggered( ) ), + this, SLOT( triggered_aFilterSegmentedImage( ) ) + ); + } + else if( catType == ":ImageToMeshFilter" ) + { + QAction* action = this->m_UI->menuExtractMesh-> + addAction( QString( cIt->first.c_str( ) ) ); + QObject::connect( + action, SIGNAL( triggered( ) ), + this, SLOT( triggered_aSegmentedImageToMesh( ) ) + ); + + } // fi + delete filter; + + } // rof + } + else + std::cerr + << std::endl + << "Ignoring \"" << plugin << "\"" + << std::endl; + std::getline( in, plugin ); + + } // elihw + } + else + { + QMessageBox::critical( + this, + tr( "No plugins file loaded!" ), + tr( "No plugins file loaded!" ) + ); + + } // fi + in.close( ); + this->_UpdateEnabledFlags( ); +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aOpenInputImage( ) +{ + if( this->_LoadImage< TImage >( this->m_Image ) ) + { + // Connect image to VTK + this->m_VTKImage = TVTKImage::New( ); + this->m_VTKImage->SetInput( this->m_Image ); + this->m_VTKImage->Update( ); + + this->m_ImageActors->Configure( + this->m_VTKImage->GetOutput( ), + this->m_UI->m_XPlaneVTK->GetInteractor( ), + this->m_UI->m_YPlaneVTK->GetInteractor( ), + this->m_UI->m_ZPlaneVTK->GetInteractor( ) + ); + this->m_ImageActors-> + AddAuxiliaryInteractor( this->m_UI->m_3DVTK->GetInteractor( ) ); + + // Associate actors + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetImageOutlineActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetXBoundsActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetYBoundsActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetZBoundsActor( ) + ); + + // Reset all cameras + this->m_3DRenderer->ResetCamera( ); + this->m_ImageActors->ResetCameras( ); + + // Ok, start! + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_XPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_YPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_ZPlaneVTK->GetRenderWindow( )->Render( ); + this->_UpdateEnabledFlags( ); + this->m_UI->aNavigation->setChecked( true ); + this->triggered_aSwitchMode( ); + + } // fi +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aOpenSegmentedImage( ) +{ + if( this->_LoadImage< TImage >( this->m_Segmentation ) ) + { + // Connect image to VTK + this->m_VTKSegmentation = TVTKImage::New( ); + this->m_VTKSegmentation->SetInput( this->m_Segmentation ); + this->m_VTKSegmentation->Update( ); + + this->m_ImageActors->SetSegmentation( + this->m_VTKSegmentation->GetOutput( ) + ); + + // Ok, start! + this->m_UI->m_XPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_YPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_ZPlaneVTK->GetRenderWindow( )->Render( ); + this->_UpdateEnabledFlags( ); + + } // fi +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aFilterSegmentedImage( ) +{ + // Get filter name + if( this->m_Segmentation.IsNull( ) ) + return; + QAction* action = dynamic_cast< QAction* >( this->sender( ) ); + if( action == NULL ) + return; + std::string filter_name = action->text( ).toStdString( ); + + // Create filter + TFilterObject* filter = this->m_FilterPlugins.CreateObject( filter_name ); + if( filter == NULL ) + return; + + TParameters parameters = filter->GetDefaultParameters( ); + if( !( this->_ParametersDialog( parameters ) ) ) + return; + filter->SetInput( this->m_Segmentation ); + filter->SetParameters( parameters ); + std::string result = filter->Update( ); + + // Get modified segmentation + /* TODO + this->m_Mesh = filter->GetCastedOutput< TMesh >( ); + if( this->m_Mesh.IsNotNull( ) ) + { + this->m_Mesh->DisconnectPipeline( ); + + } // fi + */ + // Ok, it seems to have runned fine + delete filter; +} + +// ------------------------------------------------------------------------- +void MainWnd:: +triggered_aSegmentedImageToMesh( ) +{ + // Get filter name + if( this->m_Segmentation.IsNull( ) ) + return; + QAction* action = dynamic_cast< QAction* >( this->sender( ) ); + if( action == NULL ) + return; + std::string filter_name = action->text( ).toStdString( ); + + // Create filter + TFilterObject* filter = this->m_FilterPlugins.CreateObject( filter_name ); + if( filter == NULL ) + return; + + TParameters parameters = filter->GetDefaultParameters( ); + if( !( this->_ParametersDialog( parameters ) ) ) + return; + filter->SetInput( this->m_Segmentation ); + filter->SetParameters( parameters ); + std::string result = filter->Update( ); + + // Get mesh + this->m_Mesh = filter->GetCastedOutput< TMesh >( ); + if( this->m_Mesh.IsNotNull( ) ) + { + this->m_Mesh->DisconnectPipeline( ); + + } // fi + + // Ok, it seems to have runned fine + delete filter; +} + +// ------------------------------------------------------------------------- +/* + void MainWnd:: + _SliceMesh( int axis ) + { + TCutter* cutter = NULL; + if( axis == 2 ) cutter = this->m_ZCutter; + + if( cutter == NULL ) + return; + + vtkPlane* vplane = this->m_ImageActors->GetSlicePlane( axis ); + double vorigin[ 3 ], vnormal[ 3 ]; + vplane->GetOrigin( vorigin ); + vplane->GetNormal( vnormal ); + + TCutter::TVector corigin, cnormal; + corigin[ 0 ] = TScalar( vorigin[ 0 ] ); + corigin[ 1 ] = TScalar( vorigin[ 1 ] ); + corigin[ 2 ] = TScalar( vorigin[ 2 ] ); + cnormal[ 0 ] = TScalar( vnormal[ 0 ] ); + cnormal[ 1 ] = TScalar( vnormal[ 1 ] ); + cnormal[ 2 ] = TScalar( vnormal[ 2 ] ); + + cutter->SetPlanePoint( corigin ); + cutter->SetPlaneNormal( cnormal ); + cutter->Update( ); + } + + // ------------------------------------------------------------------------- + void MainWnd:: + _SliceEventCallback( + vtkObject* caller, + long unsigned int eventId, + void* clientData, void* callData + ) + { + if( clientData == NULL || callData == NULL ) + return; + MainWnd* wnd = reinterpret_cast< MainWnd* >( clientData ); + int axis = *( reinterpret_cast< int* >( callData ) ); + if( wnd == NULL ) + return; + if( eventId == idms::InteractorStyleImage::SliceEvent ) + wnd->_SliceMesh( axis ); + } + + // ------------------------------------------------------------------------- + void MainWnd:: + triggered_aLoadImage( ) + { + if( this->_LoadImage< TImage >( this->m_Image ) ) + { + // Connect image to VTK + this->m_VTKImage->SetInput( this->m_Image ); + this->m_VTKImage->Update( ); + this->m_ImageActors->Configure( + this->m_VTKImage->GetOutput( ), + this->m_UI->m_XPlaneVTK->GetInteractor( ), + this->m_UI->m_YPlaneVTK->GetInteractor( ), + this->m_UI->m_ZPlaneVTK->GetInteractor( ) + ); + this->m_ImageActors-> + AddAuxiliaryInteractor( this->m_UI->m_3DVTK->GetInteractor( ) ); + + // Associate actors + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetImageOutlineActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetXBoundsActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetYBoundsActor( ) + ); + this->m_3DRenderer->AddActor( + this->m_ImageActors->GetZBoundsActor( ) + ); + + // Reset all cameras + this->m_3DRenderer->ResetCamera( ); + this->m_ImageActors->ResetCameras( ); + + // Ok, start! + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_XPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_YPlaneVTK->GetRenderWindow( )->Render( ); + this->m_UI->m_ZPlaneVTK->GetRenderWindow( )->Render( ); + + // Activate controls + this->m_UI->aLoadSegmentedImage->setEnabled( true ); + this->m_UI->aSegmentImage->setEnabled( true ); + this->m_UI->m_3DVTK->setEnabled( true ); + this->m_UI->m_XPlaneVTK->setEnabled( true ); + this->m_UI->m_YPlaneVTK->setEnabled( true ); + this->m_UI->m_ZPlaneVTK->setEnabled( true ); + + } // fi + } + + // ------------------------------------------------------------------------- + void MainWnd:: + triggered_aLoadSegmentedImage( ) + { + if( this->m_Mesh.IsNotNull( ) ) + { + QMessageBox::critical( + this, + tr( "Mesh already loaded!" ), + tr( "Mesh already loaded!" ) + ); + return; + + } // fi + + if( this->_LoadImage< TImage >( this->m_Segmentation ) ) + { + // Compute segmentation values + itk::MinimumMaximumImageCalculator< TImage >::Pointer minmax = + itk::MinimumMaximumImageCalculator< TImage >::New( ); + minmax->SetImage( this->m_Segmentation ); + minmax->Compute( ); + TPixel min_v = minmax->GetMinimum( ); + TPixel max_v = minmax->GetMaximum( ); + double thr = double( max_v + min_v ) / double( 2 ); + + typedef itk::Image< TScalar, Dimension > _TScalarImage; + typedef + itk::BinaryMinMaxCurvatureFlowImageFilter< TImage, _TScalarImage > + _TFilter; + typedef _TFilter::TimeStepType _TTimeStep; + typedef _TFilter::RadiusValueType _TRadius; + + _TFilter::Pointer filter = _TFilter::New( ); + filter->SetInput( this->m_Segmentation ); + filter->SetTimeStep( _TTimeStep( 0.0625 ) ); + filter->SetNumberOfIterations( 10 ); + filter->SetStencilRadius( _TRadius( 3 ) ); + filter->SetThreshold( thr ); + filter->Update( ); + + itk::ImageFileWriter< _TScalarImage >::Pointer w = + itk::ImageFileWriter< _TScalarImage >::New( ); + w->SetInput( filter->GetOutput( ) ); + w->SetFileName( "no_noise.mhd" ); + w->Update( ); + std::exit( 1 ); + + typedef + itk::LaplacianRecursiveGaussianImageFilter< TImage, _TScalarImage > + _TFilter; + _TFilter::Pointer filter = _TFilter::New( ); + filter->SetInput( this->m_Segmentation ); + filter->SetSigma( 3 ); // in spacing units + filter->SetNormalizeAcrossScale( false ); + + typedef itk::ThresholdImageFilter< _TScalarImage > _TThreshold; + _TThreshold::Pointer threshold = _TThreshold::New( ); + threshold->SetInput( filter->GetOutput( ) ); + threshold->ThresholdAbove( TScalar( 0 ) ); + threshold->InPlaceOff( ); + threshold->Update( ); + + itk::MinimumMaximumImageCalculator< _TScalarImage >::Pointer t_minmax = + itk::MinimumMaximumImageCalculator< _TScalarImage >::New( ); + t_minmax->SetImage( threshold->GetOutput( ) ); + t_minmax->Compute( ); + TScalar min_t = t_minmax->GetMinimum( ); + + std::cout << min_t << " " << t_minmax->GetMaximum( ) << std::endl; + + itk::SubtractImageFilter< _TScalarImage >::Pointer subtract = + itk::SubtractImageFilter< _TScalarImage >::New( ); + subtract->SetInput1( threshold->GetOutput( ) ); + subtract->SetConstant2( min_t ); + + itk::ImageFileWriter< _TScalarImage >::Pointer w = + itk::ImageFileWriter< _TScalarImage >::New( ); + w->SetInput( subtract->GetOutput( ) ); + w->SetFileName( "no_noise_laplace_2.mhd" ); + w->Update( ); + std::exit( 1 ); + + // Pass segmentation to VTK + this->m_VTKSegmentation = TVTKImage::New( ); + this->m_VTKSegmentation->SetInput( this->m_Segmentation ); + this->m_VTKSegmentation->Update( ); + + // Use VTK's marching cubes (it is smoother) + vtkSmartPointer< vtkImageMarchingCubes > segmentation_mc = + vtkSmartPointer< vtkImageMarchingCubes >::New( ); + segmentation_mc->SetInputData( this->m_VTKSegmentation->GetOutput( ) ); + segmentation_mc->SetValue( 0, thr ); + segmentation_mc->Update( ); + + // Go back to ITK world + typedef cpm::VTK::PolyDataToMeshFilter< TTriangulation > _TVTKPDataToMesh; + _TVTKPDataToMesh::Pointer itk_mc = _TVTKPDataToMesh::New( ); + itk_mc->SetInput( segmentation_mc->GetOutput( ) ); + itk_mc->Update( ); + this->m_Mesh = itk_mc->GetOutput( ); + this->m_Mesh->DisconnectPipeline( ); + + this->m_MeshMapper = vtkSmartPointer< TTriangulationMapper >::New( ); + this->m_MeshActor = vtkSmartPointer< vtkActor >::New( ); + + this->m_MeshMapper->SetInputData( this->m_Mesh ); + this->m_MeshActor->SetMapper( this->m_MeshMapper ); + this->m_MeshActor->GetProperty( )->SetColor( 1, 1, 0 ); + this->m_MeshActor->GetProperty( )->SetRepresentationToWireframe( ); + this->m_3DRenderer->AddActor( this->m_MeshActor ); + this->m_3DRenderer->ResetCamera( ); + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + + unsigned int reduction = 20; + + typedef TImage::SpacingType::ValueType _TValue; + + + // Compute downsize parameters + TImage::SizeType o_size = + segmentation->GetLargestPossibleRegion( ).GetSize( ); + TImage::SpacingType o_spac = segmentation->GetSpacing( ); + _TValue min_spac = std::numeric_limits< _TValue >::max( ); + for( unsigned int d = 0; d < Dimension; ++d ) + min_spac = ( o_spac[ d ] < min_spac )? o_spac[ d ]: min_spac; + min_spac *= _TValue( reduction ); + TImage::SpacingType n_spac( min_spac ); + TImage::SizeType n_size; + for( unsigned int d = 0; d < Dimension; ++d ) + n_size[ d ] = ( unsigned long )( + _TValue( o_size[ d ] ) * o_spac[ d ] / min_spac + ); + + // Downsize image + typedef itk::Image< TScalar, Dimension > _TScalarImage; + typedef itk::IdentityTransform< TScalar, Dimension > _TTransform; + typedef + itk::LinearInterpolateImageFunction< TImage, TScalar > + _TInterpolator; + typedef + itk::ResampleImageFilter< TImage, _TScalarImage, TScalar, TScalar > + _TResample; + _TResample::Pointer resample = _TResample::New( ); + resample->SetInput( segmentation ); + resample->SetSize( n_size ); + resample->SetOutputDirection( segmentation->GetDirection( ) ); + resample->SetOutputOrigin( segmentation->GetOrigin( ) ); + resample->SetOutputSpacing( n_spac ); + resample->SetTransform( _TTransform::New( ) ); + resample->SetInterpolator( _TInterpolator::New( ) ); + resample->UpdateLargestPossibleRegion( ); + + // Try to smooth + typedef + itk::SignedDanielssonDistanceMapImageFilter< _TScalarImage, _TScalarImage > + _TDanielsson; + _TDanielsson::Pointer danielsson = _TDanielsson::New( ); + danielsson->SetInput( resample->GetOutput( ) ); + danielsson->Update( ); + + // Go back to ITK world + typedef cpm::VTK::PolyDataToMeshFilter< TTriangulation > TVTKPDataToMesh; + TVTKPDataToMesh::Pointer itk_mc = TVTKPDataToMesh::New( ); + itk_mc->SetInput( danielsson_mc->GetOutput( ) ); + itk_mc->Update( ); + this->m_Mesh = itk_mc->GetOutput( ); + this->m_Mesh->DisconnectPipeline( ); + + this->m_ZCutter = TCutter::New( ); + this->m_ZCutter->SetInput( this->m_Mesh ); + + this->m_MeshMapper = vtkSmartPointer< TTriangulationMapper >::New( ); + this->m_MeshActor = vtkSmartPointer< vtkActor >::New( ); + + this->m_MeshMapper->SetInputData( this->m_Mesh ); + this->m_MeshActor->SetMapper( this->m_MeshMapper ); + this->m_MeshActor->GetProperty( )->SetColor( 1, 1, 0 ); + this->m_MeshActor->GetProperty( )->SetRepresentationToWireframe( ); + this->m_3DRenderer->AddActor( this->m_MeshActor ); + this->m_3DRenderer->ResetCamera( ); + this->m_UI->m_3DVTK->GetRenderWindow( )->Render( ); + + } // fi + } +*/ + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/MainWnd.h b/appli/InteractiveDeformableMeshSegmentation/MainWnd.h new file mode 100644 index 0000000..c1fe98f --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/MainWnd.h @@ -0,0 +1,134 @@ +#ifndef __MAINWND__H__ +#define __MAINWND__H__ + +#include + +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include "InteractorStyleImage.h" +#include "VolumeActors.h" + +/* + #include + #include +*/ + +// ------------------------------------------------------------------------- +namespace Ui +{ + class MainWnd; +} + +// ------------------------------------------------------------------------- +/** + */ +class MainWnd + : public QMainWindow +{ + Q_OBJECT; + +public: + // Plugins types + typedef cpmPluginsInterface::FilterProvider TFilterProvider; + typedef cpmPluginsInterface::Filter TFilterObject; + typedef TFilterObject::TParameters TParameters; + typedef + cpmPluginsInterface::Interface< TFilterProvider, TFilterObject > + TFilterPlugins; + + // Data types + static const unsigned int Dimension = 3; + typedef short TPixel; + typedef double TScalar; + typedef itk::Image< TPixel, Dimension > TImage; + typedef itk::ImageToVTKImageFilter< TImage > TVTKImage; + + typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; + + /* + typedef cpm::VTK::MeshMapper< TTriangulation > TTriangulationMapper; + typedef + cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< TTriangulation > + TCutter; + */ + +public: + explicit MainWnd( QWidget* parent = 0 ); + virtual ~MainWnd( ); + +protected: + void _UpdateEnabledFlags( ); + bool _ParametersDialog( TParameters& parameters ); + + template< class I > + bool _LoadImage( typename I::Pointer& image ); + + /* + void _SliceMesh( int axis ); + static void _SliceEventCallback( + vtkObject* caller, + long unsigned int eventId, + void* clientData, void* callData + ); + */ + +private slots: + void triggered_aSwitchMode( ); + void triggered_aReloadPlugins( ); + void triggered_aOpenInputImage( ); + void triggered_aOpenSegmentedImage( ); + void triggered_aFilterSegmentedImage( ); + void triggered_aSegmentedImageToMesh( ); + /* + void triggered_aLoadInputImage( ); + void triggered_aLoadSegmentedImage( ); + */ + +private: + Ui::MainWnd* m_UI; + + // Plugins objects + std::string m_PluginsConfigurationFile; + TFilterPlugins m_FilterPlugins; + + // Inputs + std::string m_LastOpenedFile; + TImage::Pointer m_Image; + TImage::Pointer m_Segmentation; + TMesh::Pointer m_Mesh; + TVTKImage::Pointer m_VTKImage; + TVTKImage::Pointer m_VTKSegmentation; + + // Renderers + vtkSmartPointer< vtkRenderer > m_3DRenderer; + vtkSmartPointer< vtkRenderer > m_XPlaneRenderer; + vtkSmartPointer< vtkRenderer > m_YPlaneRenderer; + vtkSmartPointer< vtkRenderer > m_ZPlaneRenderer; + vtkSmartPointer< vtkRenderer > m_AuxRenderer; + vtkSmartPointer< idms::VolumeActors > m_ImageActors; + vtkSmartPointer< idms::InteractorStyleImage > m_XStyle; + vtkSmartPointer< idms::InteractorStyleImage > m_YStyle; + vtkSmartPointer< idms::InteractorStyleImage > m_ZStyle; + + vtkSmartPointer< vtkOrientationMarkerWidget > m_3DOrientationWidget; + /* + TTriangulation::Pointer m_Mesh; + vtkSmartPointer< TTriangulationMapper > m_MeshMapper; + vtkSmartPointer< vtkActor > m_MeshActor; + TCutter::Pointer m_ZCutter; + */ +}; + +#endif // __MAINWND__H__ + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/MainWnd.ui b/appli/InteractiveDeformableMeshSegmentation/MainWnd.ui new file mode 100644 index 0000000..9bea142 --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/MainWnd.ui @@ -0,0 +1,302 @@ + + + MainWnd + + + + 0 + 0 + 758 + 445 + + + + Interactive deformable mesh segmentation (v0.1) + + + + :/icons/icons/process_image.ico:/icons/icons/process_image.ico + + + + + + + + 700 + 400 + + + + Qt::Horizontal + + + + Qt::Vertical + + + + Qt::Horizontal + + + + false + + + + 200 + 200 + + + + + + false + + + + 200 + 200 + + + + + + + Qt::Horizontal + + + + false + + + + 200 + 200 + + + + + + false + + + + 200 + 200 + + + + + + + + false + + + + 200 + 400 + + + + + + + + + + + 0 + 0 + 758 + 27 + + + + + &File + + + + + + + + + &Help + + + + + &Input image + + + + false + + + Segment + + + + + + + + &Segmented image + + + + false + + + Filters + + + + + false + + + Extract mesh + + + + + + + + + &Mesh + + + + false + + + Process + + + + + + + + + + + + + + toolBar + + + LeftToolBarArea + + + false + + + + + + + Open + + + + + false + + + Open + + + + + false + + + Open + + + + + true + + + Open plugins + + + + + Reload plugins + + + + + Exit + + + + + true + + + false + + + + :/icons/icons/navigate.ico:/icons/icons/navigate.ico + + + Navigation + + + + + true + + + false + + + + :/icons/icons/modify.ico:/icons/icons/modify.ico + + + Segmentation interactive deformation + + + + + + + QVTKWidget + QWidget +
QVTKWidget.h
+
+
+ + + + + + aExit + triggered() + MainWnd + close() + + + -1 + -1 + + + 378 + 235 + + + + +
diff --git a/appli/InteractiveDeformableMeshSegmentation/SegmentationParametersDlg.ui b/appli/InteractiveDeformableMeshSegmentation/SegmentationParametersDlg.ui new file mode 100644 index 0000000..5369aff --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/SegmentationParametersDlg.ui @@ -0,0 +1,149 @@ + + + SegmentationParametersDlg + + + + 0 + 0 + 312 + 205 + + + + + 312 + 205 + + + + + 312 + 205 + + + + Dialog + + + + + + + + + + Min threshold: + + + + + + + 0 + + + -30000.000000000000000 + + + 30000.000000000000000 + + + + + + + + + + + Max threshold: + + + + + + + 0 + + + -30000.000000000000000 + + + 30000.000000000000000 + + + + + + + + + + + Number of samples: + + + + + + + 1 + + + 1000 + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + SegmentationParametersDlg + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + SegmentationParametersDlg + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/appli/InteractiveDeformableMeshSegmentation/VolumeActors.cxx b/appli/InteractiveDeformableMeshSegmentation/VolumeActors.cxx new file mode 100644 index 0000000..b48cd9b --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/VolumeActors.cxx @@ -0,0 +1,757 @@ +#include "VolumeActors.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +// ------------------------------------------------------------------------- +idms::VolumeActors::SliceActor:: +SliceActor( ) +{ + this->SliceMapper = vtkSmartPointer< vtkImageSliceMapper >::New( ); + this->PlaneSource = vtkSmartPointer< vtkPlaneSource >::New( ); + this->PlaneMapper = vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->PlaneActor = vtkSmartPointer< vtkActor >::New( ); + this->ImageActor = vtkSmartPointer< vtkImageActor >::New( ); + this->TextActor = vtkSmartPointer< vtkTextActor >::New( ); + this->RegionCutterPlane = vtkSmartPointer< vtkPlane >::New( ); + + this->PlaneSource->SetXResolution( 1 ); + this->PlaneSource->SetYResolution( 1 ); + this->PlaneMapper-> + SetInputConnection( this->PlaneSource->GetOutputPort( ) ); + this->PlaneActor->SetMapper( this->PlaneMapper ); + + this->TextActor->SetTextScaleModeToNone( ); + vtkTextProperty* textprop = this->TextActor->GetTextProperty( ); + textprop->SetColor( 1, 1, 1 ); + textprop->SetFontFamilyToCourier( ); + textprop->SetFontSize( 18 ); + textprop->BoldOff( ); + textprop->ItalicOff( ); + textprop->ShadowOff( ); + textprop->SetJustificationToLeft( ); + textprop->SetVerticalJustificationToBottom( ); + vtkCoordinate* coord = this->TextActor->GetPositionCoordinate( ); + coord->SetCoordinateSystemToNormalizedViewport( ); + coord->SetValue( 0.01, 0.01 ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors::SliceActor:: +Configure( vtkAlgorithmOutput* aout, int axis ) +{ + this->SliceMapper->SetInputConnection( aout ); + this->SliceMapper->SetOrientation( axis ); + this->ImageActor->SetMapper( this->SliceMapper ); + this->ImageActor->Modified( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors::SliceActor:: +ConfigureRegion( vtkAlgorithmOutput* aout ) +{ + this->RegionCutter = vtkSmartPointer< vtkCutter >::New( ); + this->RegionCutterMapper = vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->RegionCutterActor = vtkSmartPointer< vtkActor >::New( ); + + this->RegionCutter->SetInputConnection( aout ); + this->RegionCutter->SetCutFunction( this->RegionCutterPlane ); + this->RegionCutterMapper-> + SetInputConnection( this->RegionCutter->GetOutputPort( ) ); + this->RegionCutterActor->SetMapper( this->RegionCutterMapper ); + this->RegionCutterActor->GetProperty( )->SetColor( 0, 0, 1 ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors::SliceActor:: +SetSegmentation( vtkAlgorithmOutput* aout ) +{ + this->SegmentationSliceMapper = + vtkSmartPointer< vtkImageSliceMapper >::New( ); + this->SegmentationSliceMapper->SetInputConnection( aout ); + this->SegmentationSliceMapper-> + SetOrientation( this->SliceMapper->GetOrientation( ) ); + this->SegmentationSliceMapper-> + SetSliceNumber( this->SliceMapper->GetSliceNumber( ) ); + + this->SegmentationActor = vtkSmartPointer< vtkImageActor >::New( ); + this->SegmentationActor->SetMapper( this->SegmentationSliceMapper ); + this->SegmentationActor->Modified( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors::SliceActor:: +SetSliceNumber( const int& slice ) +{ + this->SliceMapper->SetSliceNumber( slice ); + this->SliceMapper->Update( ); + if( this->SegmentationSliceMapper.GetPointer( ) != NULL ) + { + this->SegmentationSliceMapper->SetSliceNumber( slice ); + this->SegmentationSliceMapper->Update( ); + + } // fi + + // Compute plane + vtkAlgorithm* algo = this->SliceMapper->GetInputAlgorithm( ); + vtkInformation* info = algo->GetOutputInformation( 0 ); + int ext[ 6 ]; + double ori[ 3 ], spac[ 3 ], pos[ 3 ]; + info->Get( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT( ), ext ); + info->Get( vtkDataObject::ORIGIN( ), ori ); + info->Get( vtkDataObject::SPACING( ), spac ); + this->SliceMapper->GetSlicePlane( )->GetOrigin( pos ); + + // Prevent obscuring voxels by offsetting the plane geometry + double xbnds[ ] = + { + ori[ 0 ] + ( spac[ 0 ] * double( ext[ 0 ] ) ), + ori[ 0 ] + ( spac[ 0 ] * double( ext[ 1 ] ) ) + }; + double ybnds[ ] = + { + ori[ 1 ] + ( spac[ 1 ] * double( ext[ 2 ] ) ), + ori[ 1 ] + ( spac[ 1 ] * double( ext[ 3 ] ) ) + }; + double zbnds[ ] = + { + ori[ 2 ] + ( spac[ 2 ] * double( ext[ 4 ] ) ), + ori[ 2 ] + ( spac[ 2 ] * double( ext[ 5 ] ) ) + }; + + if( spac[ 0 ] < double( 0 ) ) + { + double t = xbnds[ 0 ]; + xbnds[ 0 ] = xbnds[ 1 ]; + xbnds[ 1 ] = t; + + } // fi + if( spac[ 1 ] < double( 0 ) ) + { + double t = ybnds[ 0 ]; + ybnds[ 0 ] = ybnds[ 1 ]; + ybnds[ 1 ] = t; + + } // fi + if( spac[ 2 ] < double( 0 ) ) + { + double t = zbnds[ 0 ]; + zbnds[ 0 ] = zbnds[ 1 ]; + zbnds[ 1 ] = t; + + } // fi + + int axis = this->SliceMapper->GetOrientation( ); + this->PlaneActor->GetProperty( )->SetRepresentationToWireframe( ); + this->PlaneActor->GetProperty( )->SetLineWidth( 2 ); + if( axis == 0 ) // YZ, x-normal + { + this->PlaneSource->SetOrigin( pos[ 0 ], ybnds[ 0 ], zbnds[ 0 ]); + this->PlaneSource->SetPoint1( pos[ 0 ], ybnds[ 1 ], zbnds[ 0 ] ); + this->PlaneSource->SetPoint2( pos[ 0 ], ybnds[ 0 ], zbnds[ 1 ] ); + this->PlaneActor->GetProperty( )->SetColor( 1, 0, 0 ); + + this->RegionCutterPlane->SetOrigin( pos[ 0 ], ybnds[ 0 ], zbnds[ 0 ]); + this->RegionCutterPlane->SetNormal( 1, 0, 0 ); + } + else if( axis == 1 ) // ZX, y-normal + { + this->PlaneSource->SetOrigin( xbnds[ 0 ], pos[ 1 ], zbnds[ 0 ] ); + this->PlaneSource->SetPoint1( xbnds[ 0 ], pos[ 1 ], zbnds[ 1 ] ); + this->PlaneSource->SetPoint2( xbnds[ 1 ], pos[ 1 ], zbnds[ 0 ] ); + this->PlaneActor->GetProperty( )->SetColor( 0, 1, 0 ); + + this->RegionCutterPlane->SetOrigin( xbnds[ 0 ], pos[ 1 ], zbnds[ 0 ] ); + this->RegionCutterPlane->SetNormal( 0, 1, 0 ); + } + else // XY, z-normal + { + this->PlaneSource->SetOrigin( xbnds[ 0 ], ybnds[ 0 ], pos[ 2 ] ); + this->PlaneSource->SetPoint1( xbnds[ 1 ], ybnds[ 0 ], pos[ 2 ] ); + this->PlaneSource->SetPoint2( xbnds[ 0 ], ybnds[ 1 ], pos[ 2 ] ); + this->PlaneActor->GetProperty( )->SetColor( 0, 0, 1 ); + + this->RegionCutterPlane->SetOrigin( xbnds[ 0 ], ybnds[ 0 ], pos[ 2 ] ); + this->RegionCutterPlane->SetNormal( 0, 0, 1 ); + + } // fi + + this->RegionCutter->Modified( ); + this->RegionCutterMapper->Modified( ); + this->RegionCutterActor->Modified( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors::SliceActor:: +UpdateText( const double& w, const double& l ) +{ + char axis; + if ( this->SliceMapper->GetOrientation( ) == 0 ) axis = 'X'; + else if( this->SliceMapper->GetOrientation( ) == 1 ) axis = 'Y'; + else if( this->SliceMapper->GetOrientation( ) == 2 ) axis = 'Z'; + + std::sprintf( + this->TextBuffer, "Axis: %c (%d)\nWin/Lev: %.2f/%.2f", + axis, this->SliceMapper->GetSliceNumber( ), w, l + ); + this->TextActor->SetInput( this->TextBuffer ); + this->TextActor->Modified( ); +} + +// ------------------------------------------------------------------------- +idms::VolumeActors* idms::VolumeActors:: +New( ) +{ + return( new Self( ) ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +Configure( + vtkImageData* image, + vtkRenderWindowInteractor* xi, + vtkRenderWindowInteractor* yi, + vtkRenderWindowInteractor* zi + ) +{ + if( image == NULL || xi == NULL || yi == NULL || zi == NULL ) + vtkErrorMacro( "At least one object is \"NULL\"" ); + + this->Image = image; + this->Interactors[ 0 ] = xi; + this->Interactors[ 1 ] = yi; + this->Interactors[ 2 ] = zi; + + this->ImageToWindowLevel->SetInputData( this->Image ); + this->ResetWindowLevel( ); + this->ImageToWindowLevel->Update( ); + + // Create 3D outline + this->ImageOutlineSource = + vtkSmartPointer< vtkOutlineSource >::New( ); + vtkSmartPointer< vtkPolyDataMapper > img_ol_mapper = + vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->ImageOutlineSource->SetBounds( this->Image->GetBounds( ) ); + img_ol_mapper->SetInputConnection( + this->ImageOutlineSource->GetOutputPort( ) + ); + this->ImageOutlineIndex = this->GetNumberOfItems( ); + vtkSmartPointer< vtkActor > img_ol_actor = + vtkSmartPointer< vtkActor >::New( ); + img_ol_actor->SetMapper( img_ol_mapper ); + img_ol_actor->GetProperty( )->SetColor( 1, 1, 1 ); + img_ol_actor->GetProperty( )->SetLineWidth( 1 ); + this->AddItem( img_ol_actor ); + + // Cursor radius + double spac[ 3 ]; + image->GetSpacing( spac ); + double radius = spac[ 0 ]; + radius = ( spac[ 1 ] < radius )? spac[ 1 ]: radius; + radius = ( spac[ 2 ] < radius )? spac[ 2 ]: radius; + radius *= double( 6 ); + this->Cursor->SetRadius( radius ); + this->CursorMapper->Modified( ); + this->CursorActor->Modified( ); + + // Plane actors + for( int a = 0; a < 3; ++a ) + { + // Configure actors + this->Planes[ a ].Configure( this->ImageToWindowLevel->GetOutputPort( ), a ); + this->Planes[ a ].ConfigureRegion( this->Region->GetOutputPort( ) ); + this->Planes[ a ].UpdateText( this->GetWindow( ), this->GetLevel( ) ); + + // Add them to renderer + vtkRenderer* ren = this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( ); + if( ren == NULL ) + vtkErrorMacro( "At least one interactor doesn't have a valid renderer" ); + ren->AddActor( this->Planes[ a ].ImageActor ); + ren->AddActor( this->Planes[ a ].TextActor ); + + for( int i = 0; i < 3; ++i ) + this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( )-> + AddActor( this->Planes[ i ].PlaneActor ); + + } // rof + + // Keep track into collection +/* + this->XPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].ImageActor.GetPointer( ) ); + this->XTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].TextActor.GetPointer( ) ); + this->XBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].PlaneActor.GetPointer( ) ); + + this->YPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].ImageActor.GetPointer( ) ); + this->YTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].TextActor.GetPointer( ) ); + this->YBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].PlaneActor.GetPointer( ) ); + + this->ZPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].ImageActor.GetPointer( ) ); + this->ZTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].TextActor.GetPointer( ) ); + this->ZBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].PlaneActor.GetPointer( ) ); +*/ + // Initialize slice visualization + this->ResetSlices( ); + + /* + #error CONTOUR_WIDGET <- ACA VOY + static vtkSmartPointer contourRep = + vtkSmartPointer::New(); + static vtkSmartPointer contourWidget = + vtkSmartPointer::New(); + contourWidget->SetInteractor( zi ); + contourWidget->SetRepresentation( contourRep ); + contourWidget->On( ); + */ + + + + + + + + + +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetSegmentation( vtkImageData* segmentation ) +{ + double range[ 2 ]; + this->Segmentation = segmentation; + this->Segmentation->GetScalarRange( range ); + + vtkSmartPointer< vtkLookupTable > lut = + vtkSmartPointer< vtkLookupTable >::New( ); + lut->SetNumberOfTableValues( 2 ); + lut->SetTableRange( range ); + lut->SetTableValue( 0, 0, 0, 0, 0 ); + lut->SetTableValue( 1, 1, 0, 0, 0.4 ); + + this->SegmentationToColors->SetInputData( this->Segmentation ); + this->SegmentationToColors->SetLookupTable( lut ); + this->SegmentationToColors->Update( ); + + for( unsigned int a = 0; a < 3; ++a ) + { + this->Planes[ a ].SetSegmentation( + this->SegmentationToColors->GetOutputPort( ) + ); + vtkRenderer* ren = this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( ); + ren->AddActor( this->Planes[ a ].SegmentationActor ); + + } // rof + this->Render( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +AddAuxiliaryInteractor( vtkRenderWindowInteractor* i ) +{ + if( i != NULL ) + { + this->AuxiliaryInteractors.insert( i ); + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetMinWindow( ) const +{ + return( double( 0.01 ) ); +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetMaxWindow( ) const +{ + if( this->Image == NULL ) + return( double( 0 ) ); + + double range[ 2 ]; + this->Image->GetScalarRange( range ); + return( range[ 1 ] - range[ 0 ] ); +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetMinLevel( ) const +{ + if( this->Image == NULL ) + return( double( 0 ) ); + + double range[ 2 ]; + this->Image->GetScalarRange( range ); + return( range[ 0 ] ); +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetMaxLevel( ) const +{ + if( this->Image == NULL ) + return( double( 0 ) ); + + double range[ 2 ]; + this->Image->GetScalarRange( range ); + return( range[ 1 ] ); +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetWindow( ) const +{ + return( this->ImageToWindowLevel->GetWindow( ) ); +} + +// ------------------------------------------------------------------------- +double idms::VolumeActors:: +GetLevel( ) const +{ + return( this->ImageToWindowLevel->GetLevel( ) ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetWindow( const double& w ) +{ + this->ImageToWindowLevel->SetWindow( w ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetLevel( const double& l ) +{ + this->ImageToWindowLevel->SetLevel( l ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetWindowLevel( const double& w, const double& l ) +{ + this->ImageToWindowLevel->SetWindow( w ); + this->ImageToWindowLevel->SetLevel( l ); + for( int a = 0; a < 3; ++a ) + this->Planes[ a ].UpdateText( w, l ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +ResetWindowLevel( ) +{ + double range[ 2 ]; + this->Image->GetScalarRange( range ); + this->SetWindowLevel( + range[ 1 ] - range[ 0 ], + ( ( range[ 1 ] + range[ 0 ] ) / double( 2 ) ) + range[ 0 ] + ); +} + +// ------------------------------------------------------------------------- +vtkPlane* idms::VolumeActors:: +GetSlicePlane( const int& axis ) const +{ + return( this->Planes[ axis ].SliceMapper->GetSlicePlane( ) ); +} + +// ------------------------------------------------------------------------- +int idms::VolumeActors:: +GetSliceNumberMinValue( const int& axis ) const +{ + return( this->Planes[ axis ].SliceMapper->GetSliceNumberMinValue( ) ); +} + +// ------------------------------------------------------------------------- +int idms::VolumeActors:: +GetSliceNumberMaxValue( const int& axis ) const +{ + return( this->Planes[ axis ].SliceMapper->GetSliceNumberMaxValue( ) ); +} + +// ------------------------------------------------------------------------- +int idms::VolumeActors:: +GetSlice( const int& axis ) const +{ + return( this->Planes[ axis ].SliceMapper->GetSliceNumber( ) ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetSlice( const int& axis, const int& slice ) +{ + this->Planes[ axis ].SetSliceNumber( slice ); + this->Planes[ axis ].UpdateText( this->GetWindow( ), this->GetLevel( ) ); + this->RenderAuxiliaryInteractors( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetSlice( const int& axis, const double& slice ) +{ + vtkAlgorithm* algo = + this->Planes[ axis ].SliceMapper->GetInputAlgorithm( ); + vtkInformation* info = algo->GetOutputInformation( 0 ); + int ext[ 6 ]; + double ori[ 3 ], spac[ 3 ]; + info->Get( vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT( ), ext ); + info->Get( vtkDataObject::ORIGIN( ), ori ); + info->Get( vtkDataObject::SPACING( ), spac ); + this->SetSlice( + axis, + int( ( slice - ori[ axis ] ) / spac[ axis ] ) + ext[ axis << 1 ] + ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +ResetSlices( ) +{ + for( int a = 0; a < 3; ++a ) + this->SetSlice( a, this->GetSliceNumberMinValue( a ) ); + this->Render( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +AddSeed( int idx[ 3 ] ) +{ + this->Seeds.push_back( std::vector< int >( idx, idx + 3 ) ); + this->Modified( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +AddSeed( double pos[ 3 ] ) +{ + /* TODO + this->Seeds.push_back( std::vector< double >( pos, pos + 3 ) ); + this->Modified( ); + */ +} + +// ------------------------------------------------------------------------- +unsigned int idms::VolumeActors:: +GetNumberOfSeeds( ) const +{ + return( this->Seeds.size( ) ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +GetSeed( unsigned int i, int idx[ 3 ] ) const +{ + if( i < this->Seeds.size( ) ) + { + idx[ 0 ] = this->Seeds[ i ][ 0 ]; + idx[ 1 ] = this->Seeds[ i ][ 1 ]; + idx[ 2 ] = this->Seeds[ i ][ 2 ]; + + } // fi +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetCursorPosition( double pos[ 3 ] ) +{ + this->Cursor->SetCenter( pos ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +ShowRegion( int a ) +{ + vtkRenderer* ren = this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( ); + ren->AddActor( this->Planes[ a ].RegionCutterActor ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +HideRegion( int a ) +{ + vtkRenderer* ren = this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( ); + ren->RemoveActor( this->Planes[ a ].RegionCutterActor ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetRegionPosition( double pos[ 3 ] ) +{ + this->Region->SetCenter( pos ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +SetRegionRadius( double pos[ 3 ] ) +{ + double rpos[ 3 ]; + + this->Region->GetCenter( rpos ); + double x = pos[ 0 ] - rpos[ 0 ]; + double y = pos[ 1 ] - rpos[ 1 ]; + double z = pos[ 2 ] - rpos[ 2 ]; + double d = ( x * x ) + ( y * y ) + ( z * z ); + if( double( 0 ) < d ) + d = std::sqrt( d ); + else + d = double( 0 ); + this->Region->SetRadius( d ); + this->Planes[ 0 ].RegionCutter->Modified( ); + this->Planes[ 1 ].RegionCutter->Modified( ); + this->Planes[ 2 ].RegionCutter->Modified( ); + this->Planes[ 0 ].RegionCutterMapper->Modified( ); + this->Planes[ 1 ].RegionCutterMapper->Modified( ); + this->Planes[ 2 ].RegionCutterMapper->Modified( ); + this->Planes[ 0 ].RegionCutterActor->Modified( ); + this->Planes[ 1 ].RegionCutterActor->Modified( ); + this->Planes[ 2 ].RegionCutterActor->Modified( ); + this->Render( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +GetImageBounds( double bounds[ 6 ] ) const +{ + if( this->Image != NULL ) + this->Image->GetBounds( bounds ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +Render( ) +{ + for( int a = 0; a < 3; ++a ) + if( this->Interactors[ a ] != NULL ) + this->Interactors[ a ]->Render( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +RenderAuxiliaryInteractors( ) +{ + for( + TInteractors::iterator iIt = this->AuxiliaryInteractors.begin( ); + iIt != this->AuxiliaryInteractors.end( ); + ++iIt + ) + ( *iIt )->Render( ); +} + +// ------------------------------------------------------------------------- +void idms::VolumeActors:: +ResetCameras( ) +{ + double b[ 6 ]; + this->GetImageBounds( b ); + for( int a = 0; a < 3; ++a ) + { + if( this->Interactors[ a ] == NULL ) + continue; + vtkRenderer* ren = this->Interactors[ a ]->GetRenderWindow( )-> + GetRenderers( )->GetFirstRenderer( ); + if( ren != NULL ) ren->ResetCamera( b ); + + } // rof +} + +// ------------------------------------------------------------------------- +idms::VolumeActors:: +VolumeActors( ) + : Superclass( ), + Image( NULL ), + Segmentation( NULL ) +{ + for( int a = 0; a < 3; ++a ) + this->Interactors[ a ] = NULL; + + this->ImageToWindowLevel = + vtkSmartPointer< vtkImageMapToWindowLevelColors >::New( ); + this->ImageToWindowLevel->SetOutputFormatToLuminance( ); + this->SegmentationToColors = + vtkSmartPointer< vtkImageMapToColors >::New( ); + + this->Cursor = vtkSmartPointer< vtkSphereSource >::New( ); + this->CursorMapper = vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->CursorActor = vtkSmartPointer< vtkActor >::New( ); + + this->Cursor->SetPhiResolution( 36 ); + this->Cursor->SetThetaResolution( 36 ); + this->CursorMapper->SetInputConnection( this->Cursor->GetOutputPort( ) ); + this->CursorActor->SetMapper( this->CursorMapper ); + this->CursorActor->GetProperty( )->SetColor( 1, 1, 0 ); + this->CursorIndex = this->GetNumberOfItems( ); + this->AddItem( this->CursorActor ); + + this->Region = vtkSmartPointer< vtkSphereSource >::New( ); + this->RegionMapper = vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->RegionActor = vtkSmartPointer< vtkActor >::New( ); + + this->Region->SetPhiResolution( 36 ); + this->Region->SetThetaResolution( 36 ); + this->RegionMapper->SetInputConnection( this->Region->GetOutputPort( ) ); + this->RegionActor->SetMapper( this->RegionMapper ); + this->RegionActor->GetProperty( )->SetColor( 0, 0, 1 ); + this->RegionActor->GetProperty( )->SetOpacity( 0 ); + this->RegionIndex = this->GetNumberOfItems( ); + this->AddItem( this->RegionActor ); + + this->XPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].ImageActor.GetPointer( ) ); + this->XTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].TextActor.GetPointer( ) ); + this->XBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 0 ].PlaneActor.GetPointer( ) ); + + this->YPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].ImageActor.GetPointer( ) ); + this->YTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].TextActor.GetPointer( ) ); + this->YBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 1 ].PlaneActor.GetPointer( ) ); + + this->ZPlaneIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].ImageActor.GetPointer( ) ); + this->ZTextIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].TextActor.GetPointer( ) ); + this->ZBoundsIndex = this->GetNumberOfItems( ); + this->AddItem( this->Planes[ 2 ].PlaneActor.GetPointer( ) ); +} + +// ------------------------------------------------------------------------- +idms::VolumeActors:: +~VolumeActors( ) +{ +} + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/VolumeActors.h b/appli/InteractiveDeformableMeshSegmentation/VolumeActors.h new file mode 100644 index 0000000..6d478a3 --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/VolumeActors.h @@ -0,0 +1,203 @@ +#ifndef __IDMS__VOLUMEACTORS__H__ +#define __IDMS__VOLUMEACTORS__H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class vtkImageData; +class vtkPlane; +class vtkRenderWindowInteractor; + +// ------------------------------------------------------------------------- +#define IDMS_VOLUMEACTORS( name, type ) \ + inline type* Get##name##Actor( ) const \ + { \ + return( \ + dynamic_cast< type* >( \ + const_cast< Self* >( this )-> \ + GetItemAsObject( this->name##Index ) \ + ) \ + ); \ + } + +namespace idms +{ + /** + */ + class VolumeActors + : public vtkPropCollection + { + public: + typedef VolumeActors Self; + + protected: + struct SliceActor + { + vtkSmartPointer< vtkImageSliceMapper > SliceMapper; + vtkSmartPointer< vtkImageSliceMapper > SegmentationSliceMapper; + vtkSmartPointer< vtkPlaneSource > PlaneSource; + vtkSmartPointer< vtkPolyDataMapper > PlaneMapper; + vtkSmartPointer< vtkActor > PlaneActor; + vtkSmartPointer< vtkImageActor > ImageActor; + vtkSmartPointer< vtkImageActor > SegmentationActor; + vtkSmartPointer< vtkTextActor > TextActor; + vtkSmartPointer< vtkPlane > RegionCutterPlane; + vtkSmartPointer< vtkCutter > RegionCutter; + vtkSmartPointer< vtkPolyDataMapper > RegionCutterMapper; + vtkSmartPointer< vtkActor > RegionCutterActor; + char TextBuffer[ 128 ]; + + SliceActor( ); + void Configure( vtkAlgorithmOutput* aout, int axis ); + void ConfigureRegion( vtkAlgorithmOutput* aout ); + void SetSegmentation( vtkAlgorithmOutput* aout ); + void SetSliceNumber( const int& slice ); + void UpdateText( const double& w, const double& l ); + }; + typedef std::set< vtkRenderWindowInteractor* > TInteractors; + + public: + vtkTypeMacro( VolumeActors, vtkPropCollection ); + + IDMS_VOLUMEACTORS( ImageOutline, vtkActor ); + IDMS_VOLUMEACTORS( XPlane, vtkImageActor ); + IDMS_VOLUMEACTORS( YPlane, vtkImageActor ); + IDMS_VOLUMEACTORS( ZPlane, vtkImageActor ); + IDMS_VOLUMEACTORS( XText, vtkTextActor ); + IDMS_VOLUMEACTORS( YText, vtkTextActor ); + IDMS_VOLUMEACTORS( ZText, vtkTextActor ); + IDMS_VOLUMEACTORS( XBounds, vtkActor ); + IDMS_VOLUMEACTORS( YBounds, vtkActor ); + IDMS_VOLUMEACTORS( ZBounds, vtkActor ); + IDMS_VOLUMEACTORS( Cursor, vtkActor ); + IDMS_VOLUMEACTORS( Region, vtkActor ); + + public: + // Creation + static VolumeActors* New( ); + void Configure( + vtkImageData* image, + vtkRenderWindowInteractor* xi, + vtkRenderWindowInteractor* yi, + vtkRenderWindowInteractor* zi + ); + void SetSegmentation( vtkImageData* segmentation ); + void AddAuxiliaryInteractor( vtkRenderWindowInteractor* i ); + + inline vtkImageData* GetImage( ) + { return( this->Image ); } + inline vtkImageData* GetSegmentation( ) + { return( this->Segmentation ); } + inline const vtkImageData* GetImage( ) const + { return( this->Image ); } + inline const vtkImageData* GetSegmentation( ) const + { return( this->Segmentation ); } + + // Window/Level + double GetMinWindow( ) const; + double GetMaxWindow( ) const; + double GetMinLevel( ) const; + double GetMaxLevel( ) const; + double GetWindow( ) const; + double GetLevel( ) const; + void SetWindow( const double& w ); + void SetLevel( const double& l ); + void SetWindowLevel( const double& w, const double& l ); + void ResetWindowLevel( ); + + // Slice access + vtkPlane* GetSlicePlane( const int& axis ) const; + int GetSliceNumberMinValue( const int& axis ) const; + int GetSliceNumberMaxValue( const int& axis ) const; + int GetSlice( const int& axis ) const; + void SetSlice( const int& axis, const int& slice ); + void SetSlice( const int& axis, const double& slice ); + void ResetSlices( ); + + // Seeds + void AddSeed( int idx[ 3 ] ); + void AddSeed( double pos[ 3 ] ); + unsigned int GetNumberOfSeeds( ) const; + void GetSeed( unsigned int i, int idx[ 3 ] ) const; + + // 3D cursor and region + void SetCursorPosition( double pos[ 3 ] ); + void ShowRegion( int a ); + void HideRegion( int a ); + void SetRegionPosition( double pos[ 3 ] ); + void SetRegionRadius( double pos[ 3 ] ); + + // General accessors + void GetImageBounds( double bounds[ 6 ] ) const; + + // Rendering synch + void Render( ); + void RenderAuxiliaryInteractors( ); + void ResetCameras( ); + + protected: + VolumeActors( ); + virtual ~VolumeActors( ); + + private: + // Purposely not implemented + VolumeActors( const Self& ); + Self& operator=( const Self& ); + + protected: + vtkImageData* Image; + vtkImageData* Segmentation; + vtkRenderWindowInteractor* Interactors[ 3 ]; + TInteractors AuxiliaryInteractors; + + vtkSmartPointer< vtkImageMapToWindowLevelColors > ImageToWindowLevel; + vtkSmartPointer< vtkImageMapToColors > SegmentationToColors; + + vtkSmartPointer< vtkOutlineSource > ImageOutlineSource; + SliceActor Planes[ 3 ]; + + std::vector< std::vector< int > > Seeds; + + vtkSmartPointer< vtkSphereSource > Cursor; + vtkSmartPointer< vtkPolyDataMapper > CursorMapper; + vtkSmartPointer< vtkActor > CursorActor; + + vtkSmartPointer< vtkSphereSource > Region; + vtkSmartPointer< vtkPolyDataMapper > RegionMapper; + vtkSmartPointer< vtkActor > RegionActor; + + unsigned int ImageOutlineIndex; + unsigned int XPlaneIndex; + unsigned int YPlaneIndex; + unsigned int ZPlaneIndex; + unsigned int XTextIndex; + unsigned int YTextIndex; + unsigned int ZTextIndex; + unsigned int XBoundsIndex; + unsigned int YBoundsIndex; + unsigned int ZBoundsIndex; + unsigned int CursorIndex; + unsigned int RegionIndex; + }; + +} // ecapseman + +#endif // __IDMS__VOLUMEACTORS__H__ + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/icons/exit.ico b/appli/InteractiveDeformableMeshSegmentation/icons/exit.ico new file mode 100644 index 0000000000000000000000000000000000000000..058fb1ca558723cf6dc8e40f32143184c8011578 GIT binary patch literal 105516 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 Dzk7E! literal 0 HcmV?d00001 diff --git a/appli/InteractiveDeformableMeshSegmentation/icons/open_image.ico b/appli/InteractiveDeformableMeshSegmentation/icons/open_image.ico new file mode 100644 index 0000000000000000000000000000000000000000..600555b9bce0ba1ff4789f5f44fa3d85601fad17 GIT binary patch literal 305430 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 literal 0 HcmV?d00001 diff --git a/appli/InteractiveDeformableMeshSegmentation/icons/open_mesh.ico b/appli/InteractiveDeformableMeshSegmentation/icons/open_mesh.ico new file mode 100644 index 0000000000000000000000000000000000000000..ece7a852358423b59638c8ce3e46d534300eb57c GIT binary patch literal 301802 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 z

L9z#c@_>Z9IZ9I_pJd>VhR6k**98eA@ z2b2TKfp+J>rTSjb+3!VsPH~|$Gnk-xKi%e? zXCs=OpP6V6=4W_U?}&WuC1`VN>e5V5d(M?w)-uZd?fJ2MIpquEb}y*yakx*pr#;KI z$666gC4ud+!-y^VkK4=a_Sj*6d-+g4=Q`kT_lEL$SKbe9FSzpAp?uUv=E0t^ z!@f4$vE?oROilK;+jsz_+qMDNmeCl>Z3p|71#|8G!}i>$Z96=>VD%jNu)Sv7o`b>A z(s$)(F9B?`ZhM~X!9*Lj%tLJJ8!XtiUE^)jwow}q_P1&4NDc>k!{%^4e;W?>y>fpW z4$pe!Xgkf}d~n!q&(FGTLJg04PJ7O7uLokp+wlsCX6L)7ZPy3d3${Cph{&-2g6+;C zP#U(^_}e`U0>Z9*(ckVv?2)gV4Q{*oC>_8)f7`WpC|^Iaf7l-T>$KH~~%<&He zv))u&?QHr$2Jya)4Z&bn7&=_UVo%Dm4&_>j|?_C5#9=l*#qXgqPHoqq>!=I!i! z<~=g^c0LDb~p0)RAmc`n9IQRhYs5Wu8T|jN#fi7+?G;Qg< zkGN^J`|W)e;=p&#G=ZNRkTbNqDa6w7fgOQCj;s-yYzi?LRTja7UiSehxhsoYn`{;@;qI z$Bexaa_;w&P*(fno&g!;+pJ>{e)Zb#mRiIzsNddBza)#S_H*tu&;Gau{qOEG=)q|J z9PIVs3}2tPW*+9ru^25o@$lS|>{e0f& z+5jJTtS;!7WM*Rn2AZ&+)4mJr$Ntp;`jW2V_Xf`SS1|V*{|oMc{bb7i6`1%RVAqGs z@Hy_gi{BP+`~9A|+&TFh%D-PTWj}SV_UPQ3D>4#}=uRA$ckSo$Am5xO?dNfD#{2U= z9ci1a8L!RW&#&`MX3~C6&HWU&sd?#gOyITK{p{Zso3=l%-R}6^@nMb6hhto!XIWSK zY2sGk*MM19yMlwL&h`h{>t84P{fLy?4#NKcn84F!O<z54{R%1PvyJI=Pg+BHY7XaDI Xk2~uJ!+vmc%_92^{q-+lb|C#fs9G?p literal 0 HcmV?d00001 diff --git a/appli/InteractiveDeformableMeshSegmentation/icons/open_segmented_image.ico b/appli/InteractiveDeformableMeshSegmentation/icons/open_segmented_image.ico new file mode 100644 index 0000000000000000000000000000000000000000..9d1c0826619ff1c9befa4fcb33c1ee231183aad8 GIT binary patch literal 269142 zcmeHQ4X`X#ao)>CE(pE{0Tq>aPf(JlBEA^4G*a9(qD7L5KdBI-qFG}?qGd%=5<{ho zZ~P4!R5WS<6{S&P5|fmmQ7I&;(G;dql|)K0D)DDkR1~797!mQ^e7(Ep?b*3!_D=6i z&&2{dcBkPPu36U_1*~EwXlt@ z_ttwKdSI{joMf_2d%Z6{aJ_e5H(4Lk>mBi>_1qF)@MbO z?JS}17S?A*l(;adiEbRM&$rbLSYjX56uroJfalPKlFzZ7PV9sM7 zKl1eDd>#67haZF9=yr1QczWn|lH4zPJNY-bag0^!D}WbDf<=g*h8HLE@Ol+NMI`(hl}j5%9H@8i8#2=DbO1-aoiGI^L{=~hig?y3LuXw z9bG1fU&cCi|2ogMcY={(l%DVX-2}rAgo(dabUbykIbC3{Kf_Hh{P0pt!u!r5^T$m# zzag{ti&*<}c>GT0I%E6m4s$I@0PN4l46ZFrFBwf3Cupp9=jh)Yr{n9tvUMuPr)$0vKmQkA%kLr(w)uyNn}0 z7dopV-2x6jhdT@!io;^JI6{A|xy3QdY!N>AKKh)B)!*;?Xo|!^aL)En*)?N^;;_hK zvMrQXV{v1}%9x=zEOv_{^w*kO9J9uQ z#b8?~r(-dwSQ#@EhsADjg#KD{i({7AB78g)Th6Rl88Z}z#cusU5ufZH>6$S^aad$A z*cQrPVsTr=%9x=zEOv_{^w*lNS{(ek-U&=zbE73sTJ#0!1MUGWBy2Jo_Iga@q0M@v3UVZ>>tIb z8N&~Nf5t8`;PU#b(vj1~%(%I|Jz8&W-#NPK$CD;+?PSNPzuz|<6Cj+_>%EGBFpgrv zIQm=y`wp@_JNoO{G3%FIXZ`&;>*v@0dUo{Jr{gG0#5o>M8i$X3_VoIry!MRVjK%e} zbd=A*^~t!wBV=zn8hV?Paf?U3!SZL){0)(l6m`r#=E1bEB-p7{yL92Gif?=dTz?4F%E55!=k`OW=aI!*ppa(*FRfapg(6to z=@Hm^7gQ^L!>ym&Yf#UP#akkGXM!tQ^-Ob5t>(gCE5@$HiQ(q=+x4jDQPs4@4wM8I zE$-7Dr&VkChGOhmoEUDr-#&+0hTom2wo`U~U!=-9q*Vu-!Q&UeRmN*r&G7jh)bW%| zZL3};0Mx2)T6M4)JgvA5SFb0s-12=DfBv8?2@c4fUDY~O4!){54M(pBcH{PS%01%Y z6HIoCWzp-YKSXI>|qtJC9#;VUY!@=mfsIP zt>S)|2bbXDB5@Yklg>N1f@?)$Fdx18mf`lb71Un>k-)i3yz};^l0X*lop*Nj8h;<_ zO4C+w@J`g>o(t5w%$5Y3vprGOIxQ1efxVJAsQ{k2beDkysY&`p;+rbdCW(cVV=?%4 zGms!WNxw*ZQ{~hpv5;~s2H$Q55`-t|7m07GoVp|yQjW#o+s#0N@Fe{r@lBOem&8KK zu^4>28AuSGq+cYysdDO)SV%b*gKswj3Br@~i^MloPF)fUDaT^)?PefBc#?jR_@>IK zOJX7ASPZ`13?v9o(k~LoP=@*G_s+_tc7E+GI;L9`cdO+~+L2Kyefh*}3iSM_SV)i^p zVj;w0(ryM)geR$~`R?S4+FfFc4h*DF>)mo35I8hxHv=icvpz4!0kylt79AK!q1NZ+ zI3RFn(ryM)glBzTjst3Ui7h%XkV37`%W**9(4^fAqzKRYyc`GA?h;#cU?7EBpO@o+ zz@bUI8AuVH^?5lCsNE&D=)gb|0C9PmVpa+&erEUIrxl(MEIu0W9dF3aHu5?z}DwG zIru(!Srd?+8jq#>hy;8~T^%-9pT{}i_gafe3P;?QB_E>%59Q>ky&(wG< z-A5$gTk7ht!TLPT!5;|7OpV9VeMADjrLGPetk2^dTqYnhH6Ba%5efK~x;kvIK96(o zNdcLu@mRW#NWiz$mH&_NMW#^>{sO!lUXaiiD0295U~AnMeN{1T?kh>$1b>s&WgtQ7 zl75l+rpmNRVj<;N48GkABnVH^FB0EWIdw@aq#TREx0`_k;Ys>M;+ra`E{TPdV=?%4 zGms!WNxw*ZQ{~hpv5;~s2H$Q55`-t|7m07GoVp|yQjW#o+s#0N@Fe{r@lBOem&8KK zu^4>28AuSGq+cYysdDO)SV%b*gKswj3Br@~i^MloPF)fUDaT^)?PefBc#?jR_@>IK zOJX7ASPZ`13?v9o(k~LoP=@*G_s+_tc7E+GI;M>hWg775$BJoX?Q>fdt`6`bFZKDyDu#-$}7w7+XsmfV-R5QtV? z8Cy#nfVJW_+-kVJ6E*rM^mWj)p$~!b_eh!$!l7DqWo#|k3*ZY(myQGeeCD^H{8{8F z&=a71zt8XcX$k>+8T(w56T|Kv1B8^U&%0Mw%V?GX!qWPDmJ?fbj{!nT*5}=;t7SCH z0AXo;KFf)%y2k(^CF}F<)zvbZWq`1>KA+{pR^4NOkdpOz_v&gH%`!k(TA$ByVyo^k zKuF2@ynA)EjAj`iEUnLHIk8pu7$Br%ecrvgT1K-B5SG^Gvz*wfdkhd#vOe!#T`i+o z1_(>*^I1-8)jb9XDOsO)udbHSECYn4_4zC(w(1@Ogp{n$yH{7sXqExO()xUs6I*qU z0YXaF=iRHTWi-nGVQGCn%ZaVJ#{eNE>+|l_)iRo8fUsP~K0gw1pK01D4!EXTLI7UI zK6i?7Yw=;Y^LveJswD(qE&dr>OB{f;;x^o7xaFE^2?1EEu8gfE4!~M*8*Ve)a!s{_ z0IXG4#?}%CV6C_fw;67^rdmP()~YLGYl#D}R@{c$47XfUEg=AF)s?Ze!~s|Y%OsB){5J3o8gvgswD(qt-3O{mN)=w z#cjCFaLYB-5(2PRT^UQS)X^awwBeD0m9V!e9DK-y2$_`E$j1c*4DC`GC-JGpHKO)SvMIVq-A~H&DvU4 zQw9iA>+>leHtQw>gtV;ByIEVyYRUj%YJEQC!)D!NfRL8;c{gioSxp%rOs&tSeAuj; z3=qOB{f;;x^o7xaFE^2?1EEu8gfE4!~M*8*Ve)a!s{_ z0IXG4#?}%CV6C_fw;67^rdmP()~YLGYl#D}R@{c$47XfUEg=AF)s?Ze!~s|Y%OsB){5J3o8gvgswD(qt-3O{mN)=w z#cjCFaLYB-5(2PRT^U(De3ogaIN+LU2?2N+`&^3;!|f&mgtV;ByIEVyYRUj%YJEQC!)D!NfRL8;c{gio zSxp%rOs&tSeAuj;3=qVwY99K3=pQ)=Tkmx)=dToX<46lv$mGilmWuj`h3cV&AQ0|Aua3kZr0Ya znleC`TAxq(uvs@5Af#n|-p$%tR#OHDQ|t37A2#bI1BA4!&%0S$%WBF1VQPIo<-=y( zWPp&C^?5gIYgtVhAWW^#r+nC~n+y=rvOe!-Z7r)Q1BB@^_W2&feZFa@IN+LU2?2N+ z``jtUt;L7o&hIs@sg@9cwfJXjEpY(Wira9T;g)NvB?Mrtx-zzwH~?$KZMe;F%Qe*! z0sfLIBpPD`RVk1F%-yhT9CcTvII}0BhBiv9-hjSSxPBZH8N}sg@9cwd%^)TH*k# z6}RCw!!6fTO9;SPb!BWVaRAne+i;uVmTRgd1YoVYGPagD0BglFYtQrPR1k6LBr?y0|LLAoTAi<;*1Kii=L9c~=7pm1$ zZNw$yYtn57?t}C$h5iWI#vZIACPMBe-DTj(NbOtDI(n(iXHa)byz-en4Gi1`ZFB$C z6&tO5H*}MLeMsvLXkC5O_H(G4WnTHLK4LvSa~rol@7_(~F)PsHKNjX_ecru3e~YjO z+Wwp)8z1-h*}@zN{wCdG;1ftE+Z$b3-;LaUb5brzPBhtLLpK;W3~6-rJr?fqX9i`m zJ`c!PvFUNhS5p6F@%;(%dUmFklGrJ;x5_1Rexd0O4*0pHmOK!^lKL-$FZcL45yB*~ zQ)GWtCI=u%EUV&6RS_J)ajHe5nd@b1)q2UE%Q{ za(P}(o@|!nNpo<@UUC4C#Ih>BRF>E|`yH-zfk*D~-u`P9dE_4d-CgqJ%aS~)0N$c54jU!0tcou!N@#(74nE7wBlq~Z1@dGUNuE>? za}hU(O_Eqv#g`T#v)~>Fzh&i-d;A3j^JF(ko+QAPx;ku-#Ih>BBqdVd@8G+vJibtn zC%a1WBq6rM-N9KB%c}U2ghZjQga0z}_#$DR>@LZZ7QipM#lcY$%c}TNQ34n6bJ(+N zJid5=Jb8;GPg?MdBHJ9CB(bcDFBKtgK_7>G%f#a!Etn^7ljKPy&e?6NgM%cNRq>_W zh%0g3Vehi=_>vNN@>WTnRPwBO+t+cC|CWO3EC+k%kyi4W!+uHqoAUkRl6mrWN$ga? zc?QuQ1{^|>)V~SeKdFc=N$gb7nFiAi1{}hW)W2@uKdq1^N$gbNxdzod0}dfb>R+et z%POWv5<69Vw!t;afWz^U`q$v6I622H6|~4o6GsUx)82l<1JePD(KtY%>fv z94o26w(qMHX^_NDig6fp{R}u9DXG7v?`xFPm&8uWu^4>43^*JoslS%*pVyGKBzCGH z9y_8w1{{u()L+B*^);m{iJfYS$&RUq0f%EG^{?9ZqI%LCog#^yYK+T{(r3Wo2ub~` z^nIg#dNU_TVyBs%wpexs91@V!zbfC08z4>+J2eoW9jV8F1GJ?6RrvDXEp0+1u~QQP z+L>w$I3P>vU)J}nYMJZ~EQy_Vhck~QV!$C*N&Uc5EZWjLeh9_JcJVkh2U(isLEGLh6@>ibu~Z$poB z!6dO0Z!qZ$0}h!;>M!wqC$QVn<6JOF?8F;PI>UfNCX)IW^}PbP{J%2VBt>IqKWbCp z7E5Uc91tY+FXH_f=TlGJp9SDGaUSb zu>SLUT&Dy^7UTD+symWIQQV@St7X;v94mREa%1Qel_}K z*?OFBjyGAK+wHty4}1WAM?jZR-hrU)zRft;tq1-IeX^`Q&bP~lK<&AU_4&L${}6g) zgPUc^<<}Aa9ng8X+O^f>=Nj}y7kb>^L>(sld)WMZ{cfoBwQ+DQ`rt_D(n~sBRJUdA_;B0O0CjQhuU81s-~2;|WHY8n_ZHT#&4Lp-c>|M=z@J;9zb!4JtJ$=DCQ zvdq|r6Zg^c>nY6iwMNE2$??y#d-p8)?c{`9}=g?>SVdRfjT2VV* z<3;Uw(HXUmsEOcj=J;>r*bn5`k!S2&gder@OVpS@zh;ivIr5l&Q)u7H@jsAbhdFjG zrxml0UU^629K98As5SjfsW&co#J)MkpE^!vTRHXvId(Q9&a8~WkJv}yN9^NwGIrvO z`)Q|rb9`=+J$Gwt-?8Dq*uD?`&*44zOCf7L$Fp7!pKcs~^jOD+(a(G1=ifnp0PXr` zV3#AuBEQGh7jiLxzeL^-=dN?j`SIU4KnE6*KD;EH3<{x6o$w~42wxIQTYRrWj*{Q+ z=?gg-z+WP5;YBNsuYio>C4|7Y50%6-fWJf}*vsb2&*PpTA!Fj($0*5lFxgjhh++Q_ zn{VuZzM&`y8NWW(F<$a)gUtTjmNA?gcH7kP>wV-G<0a2F5b_bjG0u&1VH=fp?*k#$ zi+Q$z@WdF7^|^5_Y@^cdeIUeoG0!#-o*2XFVxK=9yqr@|Ujx4wFL}1h3gY_nV>n&p zd?@5G#*3!SIG6Q#6}2$VjdR>Bl$Ie7s^~{84D0jy>m%j-*U&>3wnQI>IASt{QL9I* zz?E`-af|XfJ4QHc!xqIDtI;xZey(v|`|bG^#(C|W|BZ28JLjKU5zhJVQJmExjeWkq zC5Z2(@Qppr<=Oc2C`tY?9O+{yj_j25kxh)3JljB+eGJDqH_nA^RNB1{gjg@;*#^QB zV>s65#<{SKO1t-g5bMP}+dz0?49EK1I2X22Y4<)5V!fDW8wgK~;aHy==fXBB?cN7M ztQYfa1Hp;>|F~i}*5`3vVqCFJ!ucf?aefSNPFNBx^0%8Gk6dmO=riHFn{a<$3eBsV zw9hY|gOztiQ}*i->xs}hWe*PHzhgWv=Pq;3d4B`S?@84mkH#VY1D(e=U+X&OKL2+k z*ZV`YBmpr0y0SlS-nc59GY9_%<@aJA2(4O}$9X)5*H(#hpZ8C|&j+FWokHpFA7M*W zG&z4EPQ0!|%6}*HO;G0lQBZ!&JrWxGECl9U(d0b$&=tR6oY&s~#<_7`KLhojXnk&+ z*Uv!xCt9By=k+sC|B2S;#(Dh=)PJJ&dAB%!7Sf>=P|i~#ntgsT0`c$9b$R4GC1RYH z?+fF+JcrWTq;YPXOM7M+{oB;%55NP<{uNNpQzAFOxoB^(uSt0ZjPvpwN)e26DP!gR zjq~yxN)e26DP!gRjq~yxN)e26DP!gRjq~yxN)e26DP!gRjq~yxN)a?U=kHLSx&kWw z{R~acF9zR5-&a^>Kh9Gk#(DX^FwVr}pMm;Mv_3b^>t~?;6RppU^ZFU6|3vF^Oax?yjz_AKGL~n z1(frYh-RN(j6jz0eL`u>oTo&L^YVRRoR{a&`n-M)jdSB%@>p>%IP-Tux~`n3L^K~m zC2_2huW?>~wT*M*ynY7iKhgTUIOqJgv#a=f?wXRHfgl zasGVpd{;wU`?{?X=Z^!|cQ?#8^S(-)zrSX_^X}tUiSzH($oY*p>)tu%Njd*n;GEeK z<(!Jj(Qx$lr`qGEan^k%fyK^}a(;1*vB%;KZBLuzRb)7}rnvtb=iE04D2&(7jq~dI z|Fhtl-}?*2^Bj)Gc{QB#{{z2YNcLnNa_#5Fd3nxn0>Af<@XaRAb2u93ab7}>=FRzk zK+XF*Qn9^K&YyxaE^3KB3~>~dW8oOfzl`nkz&vS}0Al!3&UZPYwU?{r{0qqRrwe3j zoLAH9Ujo-f|Cg6>UY_$I_}(ng-`>SIFUR?pLFCVPG7FBz`Qn^^1stDTkmu0NIA4tO zuY$w}g+vPG#<`sHo5Amc1srExjdL02Uju=sWJwgRjq~E1e;wTN`_^T}I4{OI{}1V( zD@*odzj3}h=lorOhg8Hj!^AlMA?*D6zw4U!*<{GcH^Bpc52H#6@ohfagWm$tlK0Gt z*2Q?9<=OLbD+qjeQ4)oI{Mg{nv2o1BZQ$fIA&(Mwg0pcw<$(EqgoMBae2>ANE1=(p zt~&Ss3l8=}>yV8*ds}x-4%!>cH-kAG4*47i=G#19-yTbedCKQca2A{=K-iefrr}MR7z8=gsg8ANHzKOdOFI&OYjDPU^L5n;lhkwT)4KN($UKsZS z&grjaqbuDCj8f- zUbucfrn0s4n0{;m`*Ix4@ApZS_j$>SdjN+;z9Yr^yyRi~>t)6!u%Cl~FI+%*pO?J2 z-vtMLEh<&s=Oqu@UoSH@fz99BIduW$eO~h7z6uWhzCbeaJ}-ILKM#kq7Es>jB@f$Q zFFNw?Meu!jc%T1vtbNXW&LVOwHhmlFal(;%nAaipo3OrNj{YmIdEv*X5YNx~Jmx5i z&F5S>M=!-SFZ(g^cz(Pcwnt4IvesgL*4=P`?#D9@CUI*UHt7D|tD%pDo`^Nx zHGuNG$a?GpEWAS5e+27cm>&V%gA@2J;*8!t{5%bsK>h0kHbh=0yaO)&dC8(YNcQpT z8NLt6N&-U+r=NA4tdV`xKZa3-?YTK|Bsp>PbNqcQ%(?V2QR*K)hGxS_VDPboV?XOS zS$m&h&h@&?2@dkHgkwJ^0Pi!*xn7q!!9hNjaO~#<;C+TU*Q++;9fas}lJGIr$He3F za{Rr|5ZCLFJ`V9`Rxu9i2pVVfp;g4|F^0g43IC4InI$!R?Cb-}pIOB?1YS%AFqXyV z_rSdLF)51|?jL&K%s9Y0^jl<(XAC_&vX7*XpNnAR?HP_xcm6m7rYkE@|2t*;U7Z-- zCt;7p_K_Ta?>ofxCMCh)K9+Fo=LF?_hB?>kGAB65#}bbHoB+JfFz0$*<^%`%Si-TN z6M**_=3KAKoZuiIOE~s(0`NY=oa=R&6CC7Y3CDgUfKvkBVdOfSegV43drI^6yb_ql zF?b;S*cAI5f?o)Q!Y_xu2KBiO!;8UufVuana{Ll-eUYN#;mXQn$L{M5XS7;Y>UZJF!E=< zbt<13lOc>nZ6ua#Z1dJb?5|s%fCJ~nly~iY!M-6}e+}pN4PlGP z07mb#=s1i4!#02x#pKVs!_QLuz9H-}c>s)OmDH^mFl+;;KY!l%FYwF0hvof;xK_6e zaG*awZ~Pd1_`6M6@&3c?g&NiaoZ-)pjo0J)F*$K~|6$H`P4fWY{`~Ct@3^*S&f(sF zILAlp(g48z{BZma*pJ=iQ13t7#ZTk%0HFSSKYjwX>}TMyv%Nom&-9j>HT!&nzw>i^ zEXauMF4%nRO^%;N9QTRDmuGq#F4Xxw>KHelMGX9ThD6rWmyO&vCgWZnH}Na8nele^ zf_-)zf32PWFzWu%^~voC>(T8hf|JGFPA?e!Vb!(tyzw7c-5!p|&B?gVBjOp^cN-DJ z$Ukq?-tY1A&i8ij7mT>Xc^;e@`OExl=kf5#h)0Ie`lN|Jo8?(vI;nJ$t|aH&@7$#JbN+Lxx>Bhm zwc1c^fm*Fu!*ObD)$_*H_NmosYp?ExXHTuwPC?xC4czea8`f&a{$*UPaiEv~xmxXj zcgNKxE$)V!<7%}tpBP`8x`G=%3-O0MIli_k>O=#zQ83$as4=cKd6AmKZiM_71gt_} zJfv9#ybX9?@X_FN!M_LJ1AYYjB=|+}o8YC!8Y~xsBwXFgqy&Jf_Xh6 zBnSus@er7TY)69c2S@d@qNM)=x^OI*1{M+o1c6Qj7D8}W@Snh(OBbbICz11dPghw- z1Q0@%Mqqhp&-Hb#y(j5QMK1FSbUqP`J8wdQK&22^1KM5)eji-qKAeW^bAZ7w!E1tr z1c5Rmur`#t7Mw=EDPtX10vnEvLV`e<5a7Dk#o)4E+ov%m5u;1ND}jXsfg&R?8N%~^ zz0C8?=RCxW>jSd42p|X*3V|U=yC?W%a2mgfRj%U&V7ND!mR#Q$|_&%;AJVIDoWSSp>Lm_fBvb z`%@8hx*fKVeZ-aRj=3tnAzFJ5T*Q7-W|?`P5O4hw5(F|sfcNxeec#@(kM{>YpPBWg z;wmHXZ75&n-_Nq>#{I*5XNr&@kOl(WcXkZ8Ed8S@deCOFXE2Q(P~AGX&*Us{Rr*ZX z^gIo=o3Fa=E1LI#0R83yaM}7q)$}v*@&V~Nc_p6BkpB)yeE&^YG>eBbCje)#Fq?-MI8q}8e_Efv?bL^)N)T`MA zDy#MU&|Kc%A${MU``rwGkavn!XE-<%s`|E#p``j0> zQu*D#(i-wPup7Za+e=t5p$}XSmgj^3LP=>K=p}t!FzDq2dzaMrMJ++VW&|cdxM#q< z`eq(!e2=JnbJS)}5!uR!0QckCvM$5#4hsnafg=7ISSH%AW%&NitwJ*i>hfF(OMA56oC(;_V>VpnAe-MIR`Sz zyMi)x1*yD(2>cd0oAkp$=9T>b6?9NhIWq({El}U*xbq5lK@A!QA^s#`!JvXZaDb*y z^okyj#QVU5{5?<7w(dPaPZv;^B>GF4;`waWHfzH7P3dbWkhNS{)X!%F!{|$h%%VN1 zQ*gE22X+hV5Iy3SL>lMPw(F&nk874e;{GLhmsD|WslCg`H0g^D?f7n5zFQd8EaU-~>HWsz#$4JNiTL^_+|`0SF^j5`@>bGHRlT;{*ek`A$`2qeOzb12jIK&YkXT5JyH>W|FsT)K>St}!9(Xm5?|c0 zVe^15M+K)K!#fr6_XnfE@Y1;!^2dr`B7MEMeLZNqYhwDhn(fjG`8oFi>D~#XV#4#) zzcB z1oFOIL5zaFC1JbA8-D+KaRa|**1f@1wCnzcIPF(aoT}&>Mb-JshCa=)f@4Ne_3cM) z(|Ho#eagLq{j@1%1;4C(;2!wqIIsz^4`d~e?e$({0+g5clNH9xc6(M`zKsq2`6I~B zwZf|6_6I|}{Ong&7_+MSitT#G-Ou9tFppPP+>h^2!7wVxo1;gr;IKd@vA7~glG1sxUH#l!OZEKI~o=Is@6nqwJn@%E6 zwQTYfd~gv%C;o=`t;vc1@eGLbgg=9A?TdqutKa#*5C8Hwd0Vg*-^$4c_zjwhZ#e4mibx{7S&vCko@Yp!sB@V&V+b>P;l2{kmUK_IQX9> zxQpMV>;tFAaXcjt=Ly^&B>i8H!HEi9X`U{P%4P}n;(ICi0Qc*1->wPmhRo9Udt>l5 z6F?2~9whjS|E1&ud|t3tC-b6H(2%M9C4aRsJKoSa z`QC57|6BYf9tM0~Coh_WhF$`TZ3KfjKJWs3WpP92{EGOOQUBV~5Z`{Y?<@8(vQM0T zQr0|s8#>!W?D2~;RByA^tY9fzsle6Niwee+z{h5vtNPAlE^G&%8%Qn2^{Tr;!no?X{Q7@ zr&VM{R5V*`W^A*vkALsLC#D!W*=NL$jQxnuQRaQ^A2jQa#BRoRD|`PR2|7tccz&cm zBz|Pj{{nn&`YXyh5Oow4o8ItDxmUs%}C@xCSglgNJ#GsHQo?0bm)64|eeW56zk zPPP>C^WC*E~*vVP_#t|@ts=dWVJ%KPvw@B!0zdYvhLlgMv)|J^3~PY9FscqjGS zi!t}1tZV3yYa&0NT@$;SW02>b-?(P|rP#8vzIC-L%eo^ZYROJaZdh#}s2WM2-A zyd^eGY}2Ct4!!}Kf56bewiiE1>?fm!Sm&9YYm!CvW054_6XGX{`^gs# z@y;_lZ97A3o7lER8-pH&txdn-bEx=7V*hv**s+hfiph{65_e zdyY4B#2+HRE%Fypj{h~p+qUd{KWPzh7n!^5_Gv@snu`4Lj+ky7ClMl}5$Iz{?^ zUt=Gip)WHHL%E`l(N&RuBSS}&b>9Ab`&Qs>y1&BEL{?@4KZLYA`E$@MSO`zwZ~DMWU8FO(hq zXCA!eSeHG!ycc?~ z;~(!mn|{M*N9p^C`u+*P&GZ_p?ERnm$#)?JHwJvi(7_f${uyA~=QOs-cLp$%z8~&v zyayuRh04EAJqp};|K5ZSM`qjlmhJMK56n!Tr7*Ec8S=_^A@lE7TN^sg^2q--*!KQr zlYIQ$m%bnEXq+2eFTRyq-?|Q1o6bjnCH670&+!Q`Mv=mL--}ThrmfVreU`#*YRURZ=!GiQ*iI{yPJSXS>MlZ=pwmg zpNN)T1XsEL_M`iAz>aJ9CbSr)z~LugVj?s+1jeE1zk_Y|6&q#aJ!#Y5te*suVsjvWX}hI%g{{L_Ag8Q7aN*{&#L^fqWE&m<2R4i z0SnoSKpmpJ3oc6^%}NhGqrZZo8Mmq+uCGDolfklY*U(u8nEeN6JF9+EmU@p&U?1Ki z*cZ$-gRDRCMZh&LJkCzDN2cXMQ;FZBb z#YSK^h+p-7uG4>~6iv%D0bUbx&UFu1*QSl}e2>iSVD|Ynz(VCgfPTsS*EagyAZ6mb zme^!PA4J8RH=hrF3_M6(!`kL={JG#=z>~p3hzV zXO=Ru-z+2UAP7_tf$u}-Ec;dw>gMmPkRVV+1o+;i$H7JDr&-AOFX+BN6%8*s3j!Vj z+u@i+-zq|#T>BCd1geYx?|JNdFBSqHgSh^Ba+-b2*1Gu2 z3is&=2?BzEi@+H;*xFyymW$8n3kd>(KpTOod^_l6sJuj5Z8;MJ1OX3$18_|Hx7N1$ z_7`gl0)jv&0`nvGL9lIoHZ6JhUS4_kbg1biQV?(u_zeE1)!%HZ=Tl;1K|m0QM1aqu z*w%OZmFLPxttEpXAP5kFmB8h#nFp2nYh^ z2-H!eNZ$^68}cr1uBMa_1Ox#M0!JghD06@#G&)GMARq`NLtqgUdkSp(7|?`_{eHs- zRR{?JfcYOD%#x7y`C_JBZ)4 zSvyQ%i4z0_fm9JVAGO&w2RJ)b4W%+cKoHO&z;D;t^zEQokVn4ZqqCO83j*mQ@I6#% z%N*d~^wpCZ1pz^z2Lcn2X2Z9G9)TS44WAx{k|aSOBLucZy@Q?ud^RK9q*_5h5a^8n z@3s9IJg70?552{cR6#%x$QS{BQ+^QN4w{2@SIt;Asa_Be1fmi68M5R(2lz>}Sdv2! z5Cn2SU^3cx6`a=?Am8xG!Kl)NAYg#NH;^~4{=ct*T#{7~5CpPEfZx@50G#z0a4*{6 zd&z_Z0YShn1U82_S@-`>+NH8cBM1lr3IbQ-JgYI_3Z)%66$AtU`w+WcQM zD-sC;fUYYwnS zNc|Ee2nYi9BEawN+zsw`47dYz$TxiKwX;Yj2L40ty0xKraNQAn_fr=@{@9%E&i-dLb)mfdUi2zlS1%Uz~unT03I|taIKzfO&f`A|pjR4;jb_+Oa47dS#m{&*;5CqDF zz`9U}-|5kf0ep|xTIEt%v=IaZ0R@3y;9S@L&r}9z|)?M zgd#BNH?M)X(M}H)u$_#}N8RMu*3UECovw%PXr~*yDZXQDr9#zvrd`L|WQ9wbT zIY)vDbf_2N#2xB|DA=K1bb6Nso1OA^0WjK`-UUFTGrh~goypw*MWhGd>jE$UUl)J@ z___d!N)N!>8`CtlmeZn zQR%KNhdT=?p{R7%mUTzUkbh&YEt97=ok}N$RP98KdFhSt3`1k1PQpa@(3NT2Si^~% z5S89^vUUBNz>S-r2~GS9AwPXwmrJ{uCwg5iGQF$IxaI3!R~*;XCEfI4uiQ{ndRLcs z%a3?+4@ISWIJl+S|2^}d1GM9mvmrmd=Gj3>21iE-eo|= ze4HRerFR)fF(1qKO6Lr(EsdwBVm@aE7}Q@uBr3g*`hx~k%vXz*KH4dOVm|jWE-Jm* zSza-pJHrkbQ0ZNf=~ORhAjN!i|6b{Izb*qQ=5x~n1{!HQ1l_00fQtFt^tL-XKq%(( z=AWJTbf-7e466CO3j}R?-I1@ehpFcC(wl1i6BK_LcFPCS+qp;F^bP~6=5v!fduT{{ z8&FiOn9qejU_d3^gSWGXDdzLw?d)NSc|7n~Pn5XXPr%NC9(;IEbRP&8Qr2EOL z0TuK4@Qf)U)s)`ltFKG<)$bTW74y_v?JEXW(uZ5=iUAe#w31Z=4Y!8Fw)h?Ct-5^c zq8g^At>56#D5ZX3h8(q{h>KnLip1M+fSo(;X-t^12dS6HL zZJ{Ulok`Ii6}1dB(Z{l*dNtjZMFE#`v_P+W!{IPv+tf1JFybI=hw_N(NN*QwowW=& z(u(RhiArx7u%na`@bOckI!+sIhE7zK9HVY}0G4)!sPv{=K8Q=Jf~a)QfSp!tm2MfR zu0(a5dIr>{dj=ZrD5M0U(mex>C`CF>qtZPCc9iJ|Gzg&9JYEm%kv_`uTJw25v`2cA z<+bMXhR`1Ajsdmi^9)$;P`M-E7_djWW1!)VA{~LKbjLs=9Ys0|s8~Kt0S8o!;zeK4*yRVV>x87^vQ%a3Bzs4g(DbigW~{(qW*Hjsn3zZ}adv zFIb{8+~{c@7%(Dzw5R!Cz=-r_kKRQ|XZ18+bo%T%Ythr}x;~95bB80+M|!8vi%9QX z+S1fjF)FML-Vr=hn~MLnTBBa8Os3eEX+EYaL#8<~ zZx)vNv4-0dyLE>*@SbCmu{+P0bfh?Rak@&8G+rfFt ztG0EsCj)=?9x{-F{oAMYaiZ3l*EufWY9IH6IM7fA&RbQw5P`hp_S@laHHq(-odx#e z;~d{-L4}sXIloUCr)(N|UPoIW@Y?@*f_7E^@v5mEnxLMfx_rlLl<)TEJN`}Uxy>uD z9u`F4i3D|-w*4sD;O`H|jvErT=Z~K#-a*?VWGatoe*X55_)R6#vVMNQ4yPjJA2GSU zk9z(3b;s*aH`}1CXC!RrWt5}+bhIWClK7-fW#KW>9)_bIZ+dKab@V!%*+>04 zc~12jTpq`yV;#pGt_eiZQpoTcSSO2VJZ-+D*C@XsZd%^YzpGbAoWlWqwBxtuANThf z+@Oy-&yFLslE-vT;>#L5-iJDQ?L8luYgfVaIAOjMF3I(~$(&Fp$EIkTv?o}Xr&s)0 zD3?Tbwn_ROxL5tX(uf;rQSh_iUU`FQ?5igJj_jedGGaMj3f3PLeh+1)c{Pq0l;>LG z55RH88L#@t!%4^yC2uhO$4adW<9tW(IpDj&9NRd5CN8|5{VVuq;BCQN>rI;`qC(m; zD5Ea?9P%!fwh(>R_Z0*Aztm@2Sri|KO7DrG!=1>(vC>A`1VZV2#*g37M!^-CF6*Jg z#Y#R~PwNou-4Gq#M%)Uv3LTK^=n(nUHNZf2>w=3wqNf!dX5xGy>!j>0&~A$SJN3?L zWh$=&Zv)>5=6Ml`-#=Wth=LDVW^5m5@?jbr8@!W&Ble^4h|6rucAO1Lm`SydSmMJk zu(K})-oot%b3L!&+Zk#evZ%Ew$hHqad99z`?MgU1mZo3*_hJ)7JugYYbht{i7`7Yo93xf?|}&g1SA zg#F_fcbg#GI$q#~aX|d45Mw&{K(N2>p|-)m_dP(GSj71f=N*TGdCl`6m?i=I&K?O~ z|MNPO_w~LHUJq>R91EhwrYXpIJoq^UpR#fu5TtVvk+mL4>pxQw z_LC{d8Kyt?VZNS1-AQ%Sm3s{`Ed?g=-t)a+UEa9yLH}pnq;G@c){$4f102cRfBU5* zpE~|2)jRtM|CLf3Y2fo9WSQR+a0wh~w>0YI_@Se%k&s3kY1Hu~iQkrm1 z`5SXxiftvu;dhE)tKoc3iZZRQ)E#!ZIwI3plTWJq`)Ge3YL2cb@93( zihha=!LoUUPgI24DrGs2RqF0_n&x<8g4+ua3U^Q);+pXzV3YE_^740|Yb9|ht>2qo zG6mDVtO$27&V%XwgwIgwj&sU&^M9r+LofO7L0g>Tkd^_bIUnP1=VVrFNS{LfUNWbd zwy`4HIVrdM1*LA&(<@V!B@DA)D?+V<^E9u=)awVOnb@b(kh7ob%`kn{xOY+i6i*ud z-lcgxel6kRXoi`MTxQ8t)Pm;Lbqpq~>e=dr;o=s6UUmwm#cwd;b z5O^loPwVISbJUZD-BC@8_QY8~GKH1hwN-nqc4P|m^SOatlseNq<-9S;dUKfGjJp-g z{!Ur}{5DvZH!7ZU=Ci>5S^-Wop$$-Llq_-5IlljgBH_+B=WleJvTB~EQRX->@ym-Y zLPM$yNzQ)}A}r@y!{7#(}*zM9Q^R{#MNZn_}=7%5YCa8E6M6VXFT&Wl-GHfxlfh7+~-xj8GIbg1}f21l(2lPA{ zVP2C~mH5s9e@&~Z7+9@0pB9|$y*Rw-yadf|eZx5CH+=ZeKQ|XeFEoVa z>O7*kVSvNtoX1Wl5f?PHHr2(d)%S@Tjw4XseHK$aHoVu7`$zxv;!R=&@{j&&!~Nsz zI#bcmuybe~{nvB*M>loV8r5_0YCY!(T?YJqYe-Zo;=Fzf@VCKSujBRWePBLI@g|t= z$KN@wTh0LUUMcgO4*mvsGjP`Hv1mdlB?P#pwKe!`@I&C>TsCR=@2HD&f~~+9UW6<{ zfcJDh4ZZ~2&zg2z-@q@7^Ze_^II?Y_!63l-DaYt1z;SJtcD~2Z_CDaUtcODt>xpCh zcfh<)oVGoa*7r1IIRH%Agt9?^*CgBn^%OX%ow6?XIAr4*nozn3)KT64fwQ(>TJ>KE zSwEC61eL9AS7@H*KGL*o990kR8I|c?ao!HdIn}w~D4cCiKM6WuMNG&5fe#?>tzg@2 z8&|%Ypvxo!{i~dHMJUhfs<_w|B_G!vm#?y6W9Ysb@;nPJicL-BoC)1lj)6lJvrL21 z&wx!aEn0s1fQ$p39?oaQ2Dy%xw-52RK;{Fk5Ac3UndW+NeTj2Ixh`<;%f`j5Z25Rk zvC8yCC|@?4n(9;4HKM7oJ@;Uk;#Ic%TqmsBS~2hC{84P*@_pVfs1hv)Wg8{p>!C}( z0Cit6uaj;O9tZ|}7F0)RzRxr`c5rXGPp9A{m@eUbFge~g zLg2{z)N?Yl%ehK>yifE}hHZ&2h5OR;z-GcW9r{~me9=h4y#wUPv7^VF_ z=UzDQnbRO$j)-1mB&~mZ{wD~!7v>(Nyq`k|K6}0*WWbvZ#0N6M;2qSfyBB*-Ms4=$ zvzwvKApHmty~;>ha(qUDV0+=T-)A1zMtr_GNQ)w(3j1W^Vw6_CCxL6&yT*CFcM~|R zc1-Hwdq~1)cSM@hBYC6o; zm+vFe(SIUgP;!;2UAzgbwyp-`BL|G}42@iV^e+c2Um5)1JRi)!aRr3)c%M)&3||h& z6by17-CN*Zbx4{XpErOVpEVAnOAt9|?D%fFC^`%o1}$e%+yAZx+zl-lG{L~Cf z;gRGzPunQjcvItA|>o~+~mo)aE+hCVG zWZ-pm*!A9Gh<^^8hYWGr=ym-EF*|5Yg#HbVQ*V{?%mqdt?Le*_ILW&9msD~{+@O2Gnn_7xl*!^FP3a#k*arUsK`V7(!?gu90TPU?p7{|0h%BE{Oxc{Rq zb?>t+E!9V-XCCpN)S=+xUk@-nh}%TB?^R4r%1)Z+jSVF2FfK8f~Oq2cP@s zhgL!1ET2(GTi>kez?7^+KNrGsUtNL_ws_odw#t4XDc3$L$)xvgL;^Rhb`7OD?4nY0f_hf zvuZPqdiT@F-EZ{&TCR5**!gvE?@kyki^w;?em>id&p@^X!vs$uZYt_{7i^o(Y0J~= z8J=HQuKz)hFH8C%Do-14+v+!c6ul@)ag6cXEZdQL z^}{gaUJvf^w^`pb)_b60Bz+M%Y{sD<*>=`wzl-HMU!{>di)i+R+bzcpwmLXZS|5!i!PwR^{9XUJ2Ec~px^AzLJL~8REyu;g*Ur^|H3jj!9x$mZ z&%CE<RBpr&zP51_}NiYy+l$FkjaG`3BlJA3PmAAGoY^5){iC%eeLbI3~!8 zBOmvGTnOe`Tip7i^8FKa@j7l>a9PH9sM3=rBK1XZ6gF9>KL;5W>nW)|ad{-sW=DcA z0^bDYJp=w;_~RRo49^7L5B>|7Ya!nPb1t+rxT^FOD4w-_qw4=sRl&DFZ{A1y`v865 zZ)m&Bzp)mWI8ua725A5Pij+<=1^H5CMh=o8Mx$=B==xwxT>%G!gfR!-Q z51>=jTrI71&ew(PLSPYy^E5au8|&)fb=X37sV>rZ2<(QV&TeVN?<8njivagq-Ik#b z+=#l_hLF7otOwE3>g#Gf^HA?P_NpzCDF|GEbJccfoS&oAFQ;}R@Ii?8CO8edvyRun z%YcQ7gTVJ7YFhT^-U*>%A;3MYkAwU5fq$Wn1&XD*Nb4c69gh9le=9+=un6#4jrYrw z`oJGiR<8F7Yko)YkKzBn!KOaIXLwd~YLI_LN8k)7U~2!L7F}tPzlDJ5vqOA_XNgv6 zIVl4ICVTMrD}%zKLk9wU2IoO=)b9ZI(sIwXQ27w}3{;A;|EJ2QwrHdva7_;%xKha{ zr{zRoC8+g2I5-Z>M%=V=sw`Rs5I7Oxp#6^xt9%`pEs8r}wr&P$b98lda;8d?P&~%d9 z4UD?saen@W8*Vk|2HOn=!rU6}(1=@sCr(QsPn_;>-EYu2HdF)nkNFC@>J7KUPBDZ%1s(O+yt3^!dvwJM#}p$=R!5T0Fc zWpz%1;km<|>A~>4k^jIxs#aoLH8_iuY-y9vza*xv!) z2;K%9hkCsW>$r#tmPGo2AUqLmL*e{&6ThpuRF56=au}# zgLE}mSH_RO0(p)P+4naC2k#HjE&Kv5OU(^~XNFF64t%*F%5zJwL%6lHKinOWV4Zwc?rUeu9 zZ`2S;3nB;Y$i6lcJO@mB&H!Hy-VMy>8nU2WP$_*7n)l=OW@MLCx3 zm(D~5Q9A3=PwTVs%}~B+$ZsRRDo>iWK-E2ozV|3tZJ++Y__M)RWyG`*>APUHZU3D8 z;wzdoKTki$FQM*b!Eb2VVBe%K-lIwHr|mmYC&y-v?YeqqAdR#MSeGYh{D!D=T`=dh zx;i*U`NZFTT|U$Ji%}Ow=E!g3s_oa2KaF<*v7hnxWmj;N+)d1YI^%0#6ffjTgY zjP-3$&UsXdTTUlK6O}Clj;jZMvw{={H(mQXqOv+Tjvb#yzOdg!`pvCiT^qXi8&QU3 zT6KuY$v5^W!*2>4iCxyXX+a_~muSgS=AwJ>_)<{ff^GaSq1cxZi;H0CSFJO7zdi zz`C{{LD~YQl^W*XwnzJ)HLNR1cJ`@1hsf}UB$XvBvj)n|Rb-%TImOSDPDf+DADohB z!(LmHaeNj05_pmqm-pctXmH=W8&%pHkMlTVmr|tnDHgfvSjwD;)xmKN&vw@M8Yo3} ssDb~Z9yf6$bI=11&4xU1O!CBewdwVFTwUa{8kf?J2H))Qb2x(kAMiP_>;M1& literal 0 HcmV?d00001 diff --git a/appli/InteractiveDeformableMeshSegmentation/idms.plugins b/appli/InteractiveDeformableMeshSegmentation/idms.plugins new file mode 100644 index 0000000..e69de29 diff --git a/appli/InteractiveDeformableMeshSegmentation/main.cxx b/appli/InteractiveDeformableMeshSegmentation/main.cxx new file mode 100644 index 0000000..4a3fefe --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/main.cxx @@ -0,0 +1,80 @@ +#include "MainWnd.h" +#include + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + QApplication a( argc, argv ); + MainWnd w; + w.show( ); + + return( a.exec( ) ); +} + +// ------------------------------------------------------------------------- +#ifdef _WIN32 + +#include +#include +#include +#include + +/** + */ +class Win32CommandLineConverter +{ +private: + std::unique_ptr< char*[ ] > argv_; + std::vector< std::unique_ptr< char[ ] > > storage_; + +public: + Win32CommandLineConverter( ) + { + LPWSTR cmd_line = GetCommandLineW( ); + int argc; + LPWSTR* w_argv = CommandLineToArgvW( cmd_line, &argc ); + argv_ = std::unique_ptr< char*[ ] >( new char*[ argc ] ); + storage_.reserve( argc ); + for( int i = 0; i < argc; ++i ) + { + storage_.push_back( ConvertWArg( w_argv[ i ] ) ); + argv_[ i ] = storage_.back( ).get( ); + + } // rof + LocalFree( w_argv ); + } + int argc( ) const + { + return( static_cast< int >(storage_.size( ) ) ); + } + char** argv( ) const + { + return( argv_.get( ) ); + } + static std::unique_ptr< char[ ] > ConvertWArg( LPWSTR w_arg ) + { + int size = WideCharToMultiByte( + CP_UTF8, 0, w_arg, -1, nullptr, 0, nullptr, nullptr + ); + std::unique_ptr< char[ ] > ret( new char[ size ] ); + WideCharToMultiByte( + CP_UTF8, 0, w_arg, -1, ret.get( ), size, nullptr, nullptr + ); + return( ret ); + } +}; + +int CALLBACK WinMain( + HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow + ) +{ + Win32CommandLineConverter cmd_line; + return( main( cmd_line.argc( ), cmd_line.argv( ) ) ); +} + +#endif + +// eof - $RCSfile$ diff --git a/appli/InteractiveDeformableMeshSegmentation/resources.qrc b/appli/InteractiveDeformableMeshSegmentation/resources.qrc new file mode 100644 index 0000000..28ac3e6 --- /dev/null +++ b/appli/InteractiveDeformableMeshSegmentation/resources.qrc @@ -0,0 +1,11 @@ + + + icons/exit.ico + icons/open_mesh.ico + icons/process_image.ico + icons/open_image.ico + icons/open_segmented_image.ico + icons/navigate.ico + icons/modify.ico + + diff --git a/appli/examples/CMakeLists.txt b/appli/examples/CMakeLists.txt new file mode 100644 index 0000000..dd7b47f --- /dev/null +++ b/appli/examples/CMakeLists.txt @@ -0,0 +1,31 @@ +## ========================= +## = Command line programs = +## ========================= + +IF(BUILD_EXAMPLES) + SET( + DEMO_PROGRAMS + example_QuadEdgeDecimation + example_QuadEdgeMeshToSimplexMesh + example_ReadQuadEdgeMesh + example_ReadOBJAsQuadEdgeMesh + example_ReadVTKMeshAsQuadEdgeMesh + example_RenderQuadEdgeMesh + example_RenderDualMesh + example_SimplexMeshDeleteEdge + example_InternalForceSimplexMesh + ) + + FOREACH(demo_program ${DEMO_PROGRAMS}) + ADD_EXECUTABLE( + ${demo_program} + ${demo_program}.cxx + ) + TARGET_LINK_LIBRARIES( + ${demo_program} + cpm + ) + ENDFOREACH(demo_program) +ENDIF(BUILD_EXAMPLES) + +## eof - $RCSfile$ diff --git a/appli/examples/example_InternalForceSimplexMesh.cxx b/appli/examples/example_InternalForceSimplexMesh.cxx new file mode 100644 index 0000000..7e72018 --- /dev/null +++ b/appli/examples/example_InternalForceSimplexMesh.cxx @@ -0,0 +1,136 @@ +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dim = 3; +const unsigned int Order = 2; + +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dim > TTriangulation; +typedef cpm::DataStructures::SimplexMesh< TScalar, Order, Dim > TSimplex; + +typedef cpm::IO::MeshReader< TTriangulation > TTriangulationReader; +typedef cpm::VTK::MeshMapper< TSimplex > TSimplexMapper; +typedef +cpm::Algorithms::QuadEdge::MeshToDualFilter< TTriangulation, TSimplex > +TTriangulationToSimplexFilter; +typedef +cpm::Algorithms::Simplex::DeformationFilter< TSimplex > +TDeformationFilter; +typedef +cpm::Algorithms::Simplex::InternalForceFunction< TSimplex > +TInternalForce; +typedef +cpm::VTK::ThreadedDeformation< TDeformationFilter > +TThreadedExecution; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + // WARNING: Always call this static method FIRST!!! + TThreadedExecution::InitThreadSupport( ); + + // Input parameters + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_triangulation" + << std::endl; + return( 1 ); + + } // fi + std::string input_triangulation_fn = argv[ 1 ]; + + // Read triangulation + TTriangulationReader::Pointer input_triangulation_reader = + TTriangulationReader::New( ); + input_triangulation_reader->SetFileName( input_triangulation_fn ); + + // Compute the simplex (i.e. the triangulation's dual) mesh + TTriangulationToSimplexFilter::Pointer triangl2simplex = + TTriangulationToSimplexFilter::New( ); + triangl2simplex->SetInput( input_triangulation_reader->GetOutput( ) ); + triangl2simplex->Update( ); + TSimplex::Pointer simplex = triangl2simplex->GetOutput( ); + simplex->DisconnectPipeline( ); + + // Map it to VTK + vtkSmartPointer< TSimplexMapper > simplex_mapper = + vtkSmartPointer< TSimplexMapper >::New( ); + simplex_mapper->SetInputData( simplex ); + + vtkSmartPointer< vtkActor > simplex_actor = + vtkSmartPointer< vtkActor >::New( ); + simplex_actor->SetMapper( simplex_mapper ); + simplex_actor->GetProperty( )->SetColor( 1, 0, 0 ); + simplex_actor->GetProperty( )->SetOpacity( 1 ); + simplex_actor->GetProperty( )->SetLineWidth( 2 ); + simplex_actor->GetProperty( )->SetRepresentationToWireframe( ); + + // Create visualization stuff + vtkSmartPointer< vtkRenderer > renderer = + vtkSmartPointer< vtkRenderer >::New( ); + vtkSmartPointer< vtkRenderWindow > window = + vtkSmartPointer< vtkRenderWindow >::New( ); + vtkSmartPointer< vtkRenderWindowInteractor > interactor = + vtkSmartPointer< vtkRenderWindowInteractor >::New( ); + vtkInteractorStyleSwitch* iswitch = + dynamic_cast< vtkInteractorStyleSwitch* >( + interactor->GetInteractorStyle( ) + ); + renderer->SetBackground( 0.1, 0.3, 0.5 ); + window->AddRenderer( renderer ); + window->SetSize( 800, 800 ); + window->SetInteractor( interactor ); + if( iswitch != NULL ) + iswitch->SetCurrentStyleToTrackballCamera( ); + + // Associate actors + renderer->AddActor( simplex_actor ); + + // Interact for a while + renderer->ResetCamera( ); + window->Render( ); + interactor->Start( ); + + // Ok, now configure deformation objects... + TInternalForce::Pointer int_force = TInternalForce::New( ); + int_force->SetPhiConstraintToC0( ); + + TDeformationFilter::Pointer deform = TDeformationFilter::New( ); + deform->AddForce( int_force, TScalar( 1 ) ); + deform->SetDamping( TScalar( 1 ) ); + deform->SetInput( simplex ); + + // Threaded execution... + vtkSmartPointer< TThreadedExecution > thread = + vtkSmartPointer< TThreadedExecution >::New( ); + int thId = thread->ExecuteFilter( deform, window ); + + // ... with active interaction + interactor->Start( ); + + std::cout << "-----> " << thread->IsThreadActive( thId ) << std::endl; + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_QuadEdgeDecimation.cxx b/appli/examples/example_QuadEdgeDecimation.cxx new file mode 100644 index 0000000..d04e240 --- /dev/null +++ b/appli/examples/example_QuadEdgeDecimation.cxx @@ -0,0 +1,104 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; +typedef cpm::VTK::MeshMapper< TMesh > TMeshMapper; + +typedef cpm::Algorithms::QuadEdge::NumberOfPointsCriterion< TMesh > TCriterion; +/* + typedef cpm::Algorithms::QuadEdge::NumberOfFacesCriterion< TMesh > TCriterion; + typedef cpm::Algorithms::QuadEdge::MaxMeasureBoundCriterion< TMesh > TCriterion; + typedef cpm::Algorithms::QuadEdge::MinMeasureBoundCriterion< TMesh > TCriterion; +*/ +typedef cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< TMesh, TMesh, TCriterion > TDecimator; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh" + << std::endl; + return( 1 ); + + } // fi + + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + reader->Update( ); + TMesh::Pointer mesh = reader->GetOutput( ); + + TCriterion::Pointer criterion = TCriterion::New( ); + criterion->TopologicalChangeOn( ); + criterion->SetNumberOfElements( mesh->GetNumberOfPoints( ) / 10 ); + criterion->SetMeasureBound( 1 ); + + TDecimator::Pointer decimator = TDecimator::New( ); + decimator->SetInput( mesh ); + decimator->SetCriterion( criterion ); + decimator->Update( ); + + // Map mesh + vtkSmartPointer< TMeshMapper > mapper = + vtkSmartPointer< TMeshMapper >::New( ); + mapper->SetInputData( decimator->GetOutput( ) ); + + // Create actor + vtkSmartPointer< vtkActor > actor = + vtkSmartPointer< vtkActor >::New( ); + actor->SetMapper( mapper ); + actor->GetProperty( )->SetColor( 1, 1, 0 ); + actor->GetProperty( )->SetOpacity( 1 ); + + // Configure visualization objects + vtkSmartPointer< vtkRenderer > renderer = + vtkSmartPointer< vtkRenderer >::New( ); + renderer->SetBackground( 0.1, 0.3, 0.5 ); + + vtkSmartPointer< vtkRenderWindow > window = + vtkSmartPointer< vtkRenderWindow >::New( ); + window->AddRenderer( renderer ); + window->SetSize( 800, 800 ); + + // Set up the interaction + vtkSmartPointer< vtkRenderWindowInteractor > interactor = + vtkSmartPointer< vtkRenderWindowInteractor >::New( ); + window->SetInteractor( interactor ); + + // Associate actors + renderer->AddActor( actor ); + + // Begin interaction + window->Render( ); + interactor->Start( ); + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_QuadEdgeMeshToSimplexMesh.cxx b/appli/examples/example_QuadEdgeMeshToSimplexMesh.cxx new file mode 100644 index 0000000..d70d89f --- /dev/null +++ b/appli/examples/example_QuadEdgeMeshToSimplexMesh.cxx @@ -0,0 +1,52 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +const unsigned int Order = 2; + +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; +typedef cpm::DataStructures::SimplexMesh< TScalar, Order, Dimension > TSimplex; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh" + << std::endl; + return( 1 ); + + } // fi + + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + + typedef + cpm::Algorithms::QuadEdge::MeshToDualFilter< TMesh, TSimplex > + TDualFilter; + TDualFilter::Pointer dual_filter = TDualFilter::New( ); + dual_filter->SetInput( reader->GetOutput( ) ); + dual_filter->Update( ); + + std::cout << "Simplex mesh correctly constructred: "; + if( dual_filter->GetOutput( )->VerifySimplexOrder( ) ) + std::cout << "YES" << std::endl; + else + std::cout << "NO" << std::endl; + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_ReadOBJAsQuadEdgeMesh.cxx b/appli/examples/example_ReadOBJAsQuadEdgeMesh.cxx new file mode 100644 index 0000000..ae8c0c3 --- /dev/null +++ b/appli/examples/example_ReadOBJAsQuadEdgeMesh.cxx @@ -0,0 +1,35 @@ +#include +#include +#include + +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh_in_obj_format" + << std::endl; + return( 1 ); + + } // fi + std::string input_mesh_fn = argv[ 1 ]; + + typedef cpm::IO::WaveFrontOBJReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( input_mesh_fn ); + reader->Update( ); + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_ReadQuadEdgeMesh.cxx b/appli/examples/example_ReadQuadEdgeMesh.cxx new file mode 100644 index 0000000..64d8ba3 --- /dev/null +++ b/appli/examples/example_ReadQuadEdgeMesh.cxx @@ -0,0 +1,34 @@ +#include +#include +#include + +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh" + << std::endl; + return( 1 ); + + } // fi + + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + reader->Update( ); + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_ReadVTKMeshAsQuadEdgeMesh.cxx b/appli/examples/example_ReadVTKMeshAsQuadEdgeMesh.cxx new file mode 100644 index 0000000..a5fe564 --- /dev/null +++ b/appli/examples/example_ReadVTKMeshAsQuadEdgeMesh.cxx @@ -0,0 +1,35 @@ +#include +#include +#include + +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh_in_vtk_format" + << std::endl; + return( 1 ); + + } // fi + std::string input_mesh_fn = argv[ 1 ]; + + typedef itk::VTKPolyDataReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( input_mesh_fn ); + reader->Update( ); + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_RenderDualMesh.cxx b/appli/examples/example_RenderDualMesh.cxx new file mode 100644 index 0000000..090250c --- /dev/null +++ b/appli/examples/example_RenderDualMesh.cxx @@ -0,0 +1,122 @@ +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; +typedef cpm::VTK::MeshMapper< TMesh > TMeshMapper; + +// ------------------------------------------------------------------------- +static void CallbackFunction( + vtkObject* caller, long unsigned int eventId, + void* clientData, void* callData + ); + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh" + << std::endl; + return( 1 ); + + } // fi + + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + + typedef cpm::Algorithms::QuadEdge::MeshToDualFilter< TMesh > TDualFilter; + TDualFilter::Pointer dual_filter = TDualFilter::New( ); + dual_filter->SetInput( reader->GetOutput( ) ); + + // Map mesh + vtkSmartPointer< TMeshMapper > mapper = + vtkSmartPointer< TMeshMapper >::New( ); + mapper->SetInputData( reader->GetOutput( ) ); + + // Map dual mesh + vtkSmartPointer< TMeshMapper > dual_mapper = + vtkSmartPointer< TMeshMapper >::New( ); + dual_mapper->SetInputData( dual_filter->GetOutput( ) ); + + // Create actor + vtkSmartPointer< vtkActor > actor = + vtkSmartPointer< vtkActor >::New( ); + actor->SetMapper( mapper ); + actor->GetProperty( )->SetColor( 1, 1, 0 ); + actor->GetProperty( )->SetOpacity( 0.5 ); + + // Create dual actor + vtkSmartPointer< vtkActor > dual_actor = + vtkSmartPointer< vtkActor >::New( ); + dual_actor->SetMapper( dual_mapper ); + dual_actor->GetProperty( )->SetColor( 1, 0, 0 ); + dual_actor->GetProperty( )->SetOpacity( 1 ); + dual_actor->GetProperty( )->SetLineWidth( 2 ); + dual_actor->GetProperty( )->SetRepresentationToWireframe( ); + + // Configure visualization objects + vtkSmartPointer< vtkRenderer > renderer = + vtkSmartPointer< vtkRenderer >::New( ); + renderer->SetBackground( 0.1, 0.3, 0.5 ); + + vtkSmartPointer< vtkRenderWindow > window = + vtkSmartPointer< vtkRenderWindow >::New( ); + window->AddRenderer( renderer ); + window->SetSize( 800, 800 ); + + // Set up the interaction + vtkSmartPointer< vtkRenderWindowInteractor > interactor = + vtkSmartPointer< vtkRenderWindowInteractor >::New( ); + window->SetInteractor( interactor ); + + // Associate actors + renderer->AddActor( actor ); + renderer->AddActor( dual_actor ); + + // Some callbacks + vtkSmartPointer< vtkCallbackCommand > callback = + vtkSmartPointer< vtkCallbackCommand >::New( ); + callback->SetCallback( CallbackFunction ); + renderer->AddObserver( vtkCommand::EndEvent, callback ); + + // Begin interaction + window->Render( ); + interactor->Start( ); + + return( 0 ); +} + +// ------------------------------------------------------------------------- +void CallbackFunction( + vtkObject* caller, long unsigned int eventId, + void* clientData, void* callData + ) +{ + vtkRenderer* renderer = static_cast< vtkRenderer* >( caller ); + double timeInSeconds = renderer->GetLastRenderTimeInSeconds( ); + double fps = 1.0 / timeInSeconds; + std::cout << "FPS: " << fps << std::endl; +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_RenderQuadEdgeMesh.cxx b/appli/examples/example_RenderQuadEdgeMesh.cxx new file mode 100644 index 0000000..5276fa5 --- /dev/null +++ b/appli/examples/example_RenderQuadEdgeMesh.cxx @@ -0,0 +1,109 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; +typedef cpm::VTK::MeshMapper< TMesh > TMeshMapper; + +// ------------------------------------------------------------------------- +static void CallbackFunction( + vtkObject* caller, long unsigned int eventId, + void* clientData, void* callData + ); + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + TMesh::Pointer mesh; + if( argc > 1 ) + { + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + reader->Update( ); + mesh = reader->GetOutput( ); + } + else + { + typedef itk::RegularSphereMeshSource< TMesh > TSphereSource; + TSphereSource::Pointer source = TSphereSource::New( ); + source->SetResolution( 0 ); + source->Update( ); + mesh = source->GetOutput( ); + + } // fi + + // Map mesh + vtkSmartPointer< TMeshMapper > mapper = + vtkSmartPointer< TMeshMapper >::New( ); + mapper->SetInputData( mesh ); + + // Create actor + vtkSmartPointer< vtkActor > actor = + vtkSmartPointer< vtkActor >::New( ); + actor->SetMapper( mapper ); + actor->GetProperty( )->SetColor( 1, 1, 0 ); + actor->GetProperty( )->SetOpacity( 1 ); + + // Configure visualization objects + vtkSmartPointer< vtkRenderer > renderer = + vtkSmartPointer< vtkRenderer >::New( ); + renderer->SetBackground( 0.1, 0.3, 0.5 ); + + vtkSmartPointer< vtkRenderWindow > window = + vtkSmartPointer< vtkRenderWindow >::New( ); + window->AddRenderer( renderer ); + window->SetSize( 800, 800 ); + + // Set up the interaction + vtkSmartPointer< vtkRenderWindowInteractor > interactor = + vtkSmartPointer< vtkRenderWindowInteractor >::New( ); + window->SetInteractor( interactor ); + + // Associate actors + renderer->AddActor( actor ); + + // Some callbacks + vtkSmartPointer< vtkCallbackCommand > callback = + vtkSmartPointer< vtkCallbackCommand >::New( ); + callback->SetCallback( CallbackFunction ); + renderer->AddObserver( vtkCommand::EndEvent, callback ); + + // Begin interaction + window->Render( ); + interactor->Start( ); + + return( 0 ); +} + +// ------------------------------------------------------------------------- +void CallbackFunction( + vtkObject* caller, long unsigned int eventId, + void* clientData, void* callData + ) +{ + vtkRenderer* renderer = static_cast< vtkRenderer* >( caller ); + double timeInSeconds = renderer->GetLastRenderTimeInSeconds( ); + double fps = 1.0 / timeInSeconds; + std::cout << "FPS: " << fps << std::endl; +} + +// eof - $RCSfile$ diff --git a/appli/examples/example_SimplexMeshDeleteEdge.cxx b/appli/examples/example_SimplexMeshDeleteEdge.cxx new file mode 100644 index 0000000..24fc7a6 --- /dev/null +++ b/appli/examples/example_SimplexMeshDeleteEdge.cxx @@ -0,0 +1,133 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// ------------------------------------------------------------------------- +const unsigned int Dimension = 3; +const unsigned int Order = 2; + +typedef float TScalar; +typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh; +typedef cpm::DataStructures::SimplexMesh< TScalar, Order, Dimension > TSimplex; +typedef cpm::VTK::MeshMapper< TMesh > TMeshMapper; + +// ------------------------------------------------------------------------- +int main( int argc, char* argv[] ) +{ + if( argc < 2 ) + { + std::cerr + << "Usage: " << argv[ 0 ] + << " input_mesh" + << std::endl; + return( 1 ); + + } // fi + + typedef cpm::IO::MeshReader< TMesh > TReader; + TReader::Pointer reader = TReader::New( ); + reader->SetFileName( argv[ 1 ] ); + + typedef + cpm::Algorithms::QuadEdge::MeshToDualFilter< TMesh, TSimplex > + TDualFilter; + TDualFilter::Pointer dual_filter = TDualFilter::New( ); + dual_filter->SetInput( reader->GetOutput( ) ); + dual_filter->Update( ); + TSimplex::Pointer simplex = dual_filter->GetOutput( ); + + std::cout + << " --> Read " << simplex->GetNumberOfPoints( ) + << " simplex points." + << std::endl; + + bool finish = false; + while( !finish ) + { + std::cout + << " --> Delete an edge between a and b (-1 to finish) : " + << std::flush; + int a, b; + std::cin >> a; + if( a == -1 ) + { + finish = true; + continue; + + } // fi + std::cin >> b; + if( simplex->OperatorDeleteEdge( a, b ) ) + std::cout << "Deleted" << std::endl; + else + std::cout << "Not present" << std::endl; + + } // elihw + + // Map mesh + vtkSmartPointer< TMeshMapper > mapper = + vtkSmartPointer< TMeshMapper >::New( ); + mapper->SetInputData( reader->GetOutput( ) ); + + // Map dual mesh + vtkSmartPointer< TMeshMapper > dual_mapper = + vtkSmartPointer< TMeshMapper >::New( ); + dual_mapper->SetInputData( dual_filter->GetOutput( ) ); + + // Create actor + vtkSmartPointer< vtkActor > actor = + vtkSmartPointer< vtkActor >::New( ); + actor->SetMapper( mapper ); + actor->GetProperty( )->SetColor( 1, 1, 0 ); + actor->GetProperty( )->SetOpacity( 0.5 ); + + // Create dual actor + vtkSmartPointer< vtkActor > dual_actor = + vtkSmartPointer< vtkActor >::New( ); + dual_actor->SetMapper( dual_mapper ); + dual_actor->GetProperty( )->SetColor( 1, 0, 0 ); + dual_actor->GetProperty( )->SetOpacity( 1 ); + dual_actor->GetProperty( )->SetLineWidth( 2 ); + dual_actor->GetProperty( )->SetRepresentationToWireframe( ); + + // Configure visualization objects + vtkSmartPointer< vtkRenderer > renderer = + vtkSmartPointer< vtkRenderer >::New( ); + renderer->SetBackground( 0.1, 0.3, 0.5 ); + + vtkSmartPointer< vtkRenderWindow > window = + vtkSmartPointer< vtkRenderWindow >::New( ); + window->AddRenderer( renderer ); + window->SetSize( 800, 800 ); + + // Set up the interaction + vtkSmartPointer< vtkRenderWindowInteractor > interactor = + vtkSmartPointer< vtkRenderWindowInteractor >::New( ); + window->SetInteractor( interactor ); + + // Associate actors + //renderer->AddActor( actor ); + renderer->AddActor( dual_actor ); + + // Begin interaction + window->Render( ); + interactor->Start( ); + + return( 0 ); +} + +// eof - $RCSfile$ diff --git a/data/mesh_00.vtk b/data/mesh_00.vtk new file mode 100644 index 0000000..8056628 --- /dev/null +++ b/data/mesh_00.vtk @@ -0,0 +1,96 @@ +# vtk DataFile Version 3.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 49 float +0 0 0 0 1 0 0 2 0 +0 3 0 0 4 0 0 5 0 +0 6 0 1 0 0 1 1 0 +1 2 0 1 3 0 1 4 0 +1 5 0 1 6 0 2 0 0 +2 1 0 2 2 0 2 3 0 +2 4 0 2 5 0 2 6 0 +3 0 0 3 1 0 3 2 0 +3 3 0 3 4 0 3 5 0 +3 6 0 4 0 0 4 1 0 +4 2 0 4 3 0 4 4 0 +4 5 0 4 6 0 5 0 0 +5 1 0 5 2 0 5 3 0 +5 4 0 5 5 0 5 6 0 +6 0 0 6 1 0 6 2 0 +6 3 0 6 4 0 6 5 0 +6 6 0 +POLYGONS 72 288 +3 1 7 0 +3 8 7 1 +3 2 8 1 +3 9 8 2 +3 3 9 2 +3 10 9 3 +3 4 10 3 +3 11 10 4 +3 5 11 4 +3 12 11 5 +3 6 12 5 +3 13 12 6 +3 8 14 7 +3 15 14 8 +3 9 15 8 +3 16 15 9 +3 10 16 9 +3 17 16 10 +3 11 17 10 +3 18 17 11 +3 12 18 11 +3 19 18 12 +3 13 19 12 +3 20 19 13 +3 15 21 14 +3 22 21 15 +3 16 22 15 +3 23 22 16 +3 17 23 16 +3 24 23 17 +3 18 24 17 +3 25 24 18 +3 19 25 18 +3 26 25 19 +3 20 26 19 +3 27 26 20 +3 22 28 21 +3 29 28 22 +3 23 29 22 +3 30 29 23 +3 24 30 23 +3 31 30 24 +3 25 31 24 +3 32 31 25 +3 26 32 25 +3 33 32 26 +3 27 33 26 +3 34 33 27 +3 29 35 28 +3 36 35 29 +3 30 36 29 +3 37 36 30 +3 31 37 30 +3 38 37 31 +3 32 38 31 +3 39 38 32 +3 33 39 32 +3 40 39 33 +3 34 40 33 +3 41 40 34 +3 36 42 35 +3 43 42 36 +3 37 43 36 +3 44 43 37 +3 38 44 37 +3 45 44 38 +3 39 45 38 +3 46 45 39 +3 40 46 39 +3 47 46 40 +3 41 47 40 +3 48 47 41 + diff --git a/data/mesh_01.obj b/data/mesh_01.obj new file mode 100644 index 0000000..e69cada --- /dev/null +++ b/data/mesh_01.obj @@ -0,0 +1,12446 @@ +# Viewpoint Datalabs International, Inc. Copyright 1996 + + +mtllib ./vp.mtl + +g +v 2.712726 -2.398764 -2.492640 +v 2.712726 -1.954302 -2.665440 +v -5.975275 -1.954302 -2.665440 +v -5.975275 -2.398764 -2.492640 +v -6.113514 -1.885536 -2.803680 +v 2.712726 -1.885536 -2.803680 +v -5.975275 -1.372307 -2.803680 +v -5.975275 -1.816770 -2.700000 +v 2.712726 -1.816770 -2.700000 +v 2.712726 -1.372307 -2.803680 +v 4.766168 -2.256987 -2.354400 +v 4.766168 -1.372307 -2.665439 +v 4.766168 -1.769892 -2.561759 +v 4.766168 -1.827445 -2.665439 +v 4.766168 -1.884998 -2.527199 +v 6.335766 -1.688939 -2.354399 +v 6.335766 -1.732171 -2.458079 +v 6.335766 -1.775403 -2.319839 +v 6.335766 -2.054828 -2.147039 +v 6.335766 -1.372307 -2.458079 +v 8.078169 -1.372308 -2.043359 +v 7.641026 -1.604039 -1.939679 +v 7.711631 -1.639892 -2.043359 +v 7.505756 -1.675745 -1.905119 +v 7.068614 -1.907476 -1.732319 +v 7.068614 -1.907476 1.732319 +v 7.505756 -1.675745 1.905119 +v 7.711631 -1.639892 2.043359 +v 7.641026 -1.604039 1.939679 +v 8.078169 -1.372308 2.043359 +v 6.335766 -1.372307 2.458079 +v 6.335766 -2.054828 2.147039 +v 6.335766 -1.775403 2.319839 +v 6.335766 -1.732171 2.458079 +v 6.335766 -1.688939 2.354399 +v 4.766168 -1.884998 2.527199 +v 4.766168 -1.827445 2.665439 +v 4.766168 -1.769892 2.561759 +v 4.766168 -1.372307 2.665439 +v 4.766168 -2.256987 2.354400 +v 2.712726 -1.372307 2.803680 +v 2.712726 -1.816770 2.700000 +v -5.975275 -1.816770 2.700000 +v -5.975275 -1.372307 2.803680 +v 2.712726 -1.885536 2.803680 +v -6.113514 -1.885536 2.803680 +v -5.975275 -2.398764 2.492640 +v -5.975275 -1.954302 2.665440 +v 2.712726 -1.954302 2.665440 +v 2.712726 -2.398764 2.492640 +v 8.114170 -1.372308 -2.071796 +v 8.114170 -1.372308 2.071796 +v 6.342309 -1.372307 2.493528 +v 4.769739 -1.372307 2.701281 +v 2.713938 -1.372307 2.839680 +v -6.011275 -1.372307 2.839680 +v -6.011275 -1.372307 -2.839680 +v 2.713938 -1.372307 -2.839680 +v 4.769739 -1.372307 -2.701281 +v 6.342309 -1.372307 -2.493528 +v 2.713938 -1.323668 -2.839680 +v 4.769739 -1.323668 -2.701281 +v 6.342309 -1.323668 -2.493528 +v 8.114170 -1.323668 -2.071796 +v 8.114170 -1.323668 2.071796 +v 6.342309 -1.323668 2.493528 +v 4.769739 -1.323668 2.701281 +v 2.713938 -1.323668 2.839680 +v -6.011275 -1.323668 2.839680 +v -6.011275 -1.323668 -2.839680 +v 2.707886 -1.323668 2.659680 +v -5.831275 -1.323668 2.659680 +v -5.831275 -1.323668 -2.659680 +v 2.707886 -1.323668 -2.659680 +v 4.751889 -1.323668 -2.522075 +v 6.309598 -1.323668 -2.316286 +v 7.934168 -1.323668 -1.929610 +v 7.934168 -1.323668 1.929610 +v 6.309598 -1.323668 2.316286 +v 4.751889 -1.323668 2.522075 +v 4.751889 -1.436042 -2.522075 +v 6.309598 -1.436042 -2.316286 +v 6.309598 -1.436042 2.316286 +v 4.751889 -1.436042 2.522075 +v 2.707886 -1.436042 2.659680 +v -5.831275 -1.436042 2.659680 +v -5.831275 -1.436042 -2.659680 +v 2.707886 -1.436042 -2.659680 +v -5.831275 -2.313226 -2.411036 +v 2.707886 -2.313226 -2.411036 +v 2.707886 -2.313226 2.411036 +v -5.831275 -2.313226 2.411036 +v -5.831275 -2.313226 -2.395036 +v -5.815275 -2.313226 -2.395036 +v -5.815275 -2.313226 -2.411036 +v -5.815275 -2.297832 -2.415399 +v -5.831275 -2.297832 -2.415399 +v -5.831275 -2.297226 -2.398941 +v -5.831275 -2.313226 2.395036 +v -5.831275 -2.297226 2.398941 +v -5.831275 -2.297832 2.415399 +v -5.815275 -2.297832 2.415399 +v -5.815275 -2.313226 2.411036 +v -5.815275 -2.313226 2.395036 +v 2.691886 -2.313226 2.411036 +v 2.691886 -2.297832 2.415399 +v 2.707886 -2.297832 2.415399 +v 2.707886 -2.297226 2.398941 +v 2.707886 -2.313226 2.395036 +v 2.691886 -2.313226 2.395036 +v -5.831275 -1.433818 2.643680 +v -5.815120 -1.436042 2.659680 +v 2.707886 -2.313226 -2.395036 +v 2.707886 -2.297226 -2.398941 +v 2.707886 -2.297832 -2.415399 +v 2.691886 -2.297832 -2.415399 +v 2.691886 -2.313226 -2.411036 +v 2.691886 -2.313226 -2.395036 +v 2.707886 -1.451435 2.655316 +v 2.691886 -1.436042 2.659680 +v 2.707886 -1.420042 2.659680 +v 2.723850 -1.436042 2.658605 +v 2.723886 -1.436042 2.642566 +v 2.707886 -1.436042 2.643680 +v 2.707886 -1.452042 2.638514 +v 2.707886 -1.451435 -2.655316 +v 2.707886 -1.452042 -2.638514 +v 2.707886 -1.436042 -2.643680 +v 2.723886 -1.436042 -2.642566 +v 2.723850 -1.436042 -2.658605 +v 2.707886 -1.420042 -2.659680 +v 2.691886 -1.436042 -2.659680 +v -5.815120 -1.436042 -2.659680 +v -5.831275 -1.433818 -2.643680 +v 4.750303 -1.436042 -2.506146 +v 4.751889 -1.420034 -2.522075 +v -5.831275 -1.339668 -2.659680 +v -5.815275 -1.339668 -2.659680 +v -5.815275 -1.323668 -2.659680 +v -5.847274 -1.323668 -2.675679 +v -5.831275 -1.323668 -2.643680 +v -5.831275 -1.339668 -2.643680 +v -5.831275 -1.339668 2.659680 +v -5.831275 -1.339668 2.643680 +v -5.831275 -1.323668 2.643680 +v -5.847274 -1.323668 2.675679 +v -5.815275 -1.323668 2.659680 +v -5.815275 -1.339668 2.659680 +v 4.751889 -1.420034 2.522075 +v 4.750303 -1.436042 2.506146 +v 6.293735 -1.436042 2.318381 +v 6.293735 -1.420042 2.318381 +v 6.309598 -1.420042 2.316286 +v 6.309598 -1.420042 2.300286 +v 6.309598 -1.436042 2.300286 +v 6.293598 -1.436042 2.302260 +v 6.309598 -1.436042 -2.300286 +v 6.309598 -1.420042 -2.300286 +v 6.309598 -1.420042 -2.316286 +v 6.293735 -1.420042 -2.318381 +v 6.293735 -1.436042 -2.318381 +v 6.293598 -1.436042 -2.302260 +v 6.309598 -1.339668 2.316286 +v 6.293735 -1.339668 2.318381 +v 6.293735 -1.323668 2.318381 +v 6.312506 -1.323668 2.332040 +v 6.325599 -1.323668 2.312477 +v 6.309598 -1.323668 2.300286 +v 6.309598 -1.339668 2.300286 +v 6.309598 -1.339668 -2.316286 +v 6.309598 -1.339668 -2.300286 +v 6.309598 -1.323668 -2.300286 +v 6.325599 -1.323668 -2.312477 +v 6.312506 -1.323668 -2.332040 +v 6.293735 -1.323668 -2.318381 +v 6.293735 -1.339668 -2.318381 +v 2.707886 -1.339677 2.659680 +v 2.708424 -1.323668 2.675679 +v 4.753476 -1.323668 2.538004 +v 4.751889 -1.339676 2.522075 +v 4.753476 -1.323668 -2.538004 +v 4.751889 -1.339676 -2.522075 +v 2.708424 -1.323668 -2.675679 +v 2.707886 -1.339677 -2.659680 +v 2.713399 -1.323668 -2.823680 +v 2.713938 -1.339677 -2.839680 +v -5.995275 -1.323668 -2.839680 +v -5.995275 -1.339668 -2.839680 +v -6.011275 -1.339668 -2.839680 +v -6.011275 -1.339668 -2.823680 +v -6.011275 -1.323668 -2.823680 +v -5.995275 -1.323668 -2.823680 +v -6.011275 -1.323668 2.823680 +v -6.011275 -1.339668 2.823680 +v -6.011275 -1.339668 2.839680 +v -5.995275 -1.339668 2.839680 +v -5.995275 -1.323668 2.839680 +v -5.995275 -1.323668 2.823680 +v -6.011275 -1.356307 -2.839680 +v -5.995275 -1.356307 -2.839680 +v -5.995275 -1.372307 -2.839680 +v -5.999276 -1.372307 -2.827681 +v -6.011275 -1.372307 -2.823680 +v -6.011275 -1.356307 -2.823680 +v 2.713938 -1.339677 2.839680 +v 2.713399 -1.323668 2.823680 +v -6.011275 -1.356307 2.839680 +v -6.011275 -1.356307 2.823680 +v -6.011275 -1.372307 2.823680 +v -5.999276 -1.372307 2.827681 +v -5.995275 -1.372307 2.839680 +v -5.995275 -1.356307 2.839680 +v 4.769739 -1.339676 2.701281 +v 4.768152 -1.323668 2.685351 +v 6.342309 -1.339689 2.493528 +v 6.339403 -1.323668 2.477773 +v 8.098605 -1.323668 2.075501 +v 8.098605 -1.339668 2.075501 +v 8.114170 -1.339668 2.071796 +v 8.114170 -1.339668 2.055796 +v 8.114170 -1.323668 2.055796 +v 8.098170 -1.323668 2.059158 +v 8.114170 -1.323668 -2.055796 +v 8.114170 -1.339668 -2.055796 +v 8.114170 -1.339668 -2.071796 +v 8.098605 -1.339668 -2.075501 +v 8.098605 -1.323668 -2.075501 +v 8.098170 -1.323668 -2.059158 +v 8.114170 -1.356308 2.071796 +v 8.098605 -1.356308 2.075501 +v 8.098605 -1.372308 2.075501 +v 8.102171 -1.372308 2.062318 +v 8.114170 -1.372308 2.055796 +v 8.114170 -1.356308 2.055796 +v 6.342309 -1.339689 -2.493528 +v 6.339403 -1.323668 -2.477773 +v 8.114170 -1.356308 -2.071796 +v 8.114170 -1.356308 -2.055796 +v 8.114170 -1.372308 -2.055796 +v 8.102171 -1.372308 -2.062318 +v 8.098605 -1.372308 -2.075501 +v 8.098605 -1.356308 -2.075501 +v 4.769739 -1.339676 -2.701281 +v 4.768152 -1.323668 -2.685351 +v 6.340129 -1.372307 -2.481713 +v 6.342309 -1.356286 -2.493528 +v 4.768549 -1.372307 -2.689335 +v 4.769739 -1.356299 -2.701281 +v 2.713534 -1.372307 -2.827681 +v 2.713938 -1.356298 -2.839680 +v 2.713534 -1.372307 2.827681 +v 2.713938 -1.356298 2.839680 +v 4.768549 -1.372307 2.689335 +v 4.769739 -1.356299 2.701281 +v 6.340129 -1.372307 2.481713 +v 6.342309 -1.356286 2.493528 +v -6.113514 -1.885536 2.787680 +v -6.099189 -1.892662 2.767878 +v -6.102842 -1.890845 2.793007 +v -6.077713 -1.892662 2.789354 +v -6.097515 -1.885536 2.803680 +v -6.071818 -1.876692 2.790346 +v -6.101622 -1.879620 2.794760 +v -6.099189 -1.878410 2.773663 +v -6.113514 -1.885536 -2.787680 +v -6.099189 -1.878410 -2.773663 +v -6.101622 -1.879620 -2.794760 +v -6.071818 -1.876692 -2.790346 +v -6.097515 -1.885536 -2.803680 +v -6.077713 -1.892662 -2.789354 +v -6.102842 -1.890845 -2.793007 +v -6.099189 -1.892662 -2.767878 +v -5.959274 -1.954302 2.665440 +v -5.968124 -1.947175 2.679765 +v -5.985947 -1.948993 2.676113 +v -5.989600 -1.947175 2.658290 +v -5.975275 -1.954302 2.649440 +v -5.975275 -1.970302 2.642053 +v -5.975275 -1.969214 2.659642 +v -5.959274 -1.969214 2.659642 +v 2.712774 -1.969137 2.659416 +v 2.713096 -1.947401 2.679883 +v -5.975275 -2.383851 2.498439 +v -5.975275 -2.382764 2.481694 +v -5.975275 -2.398764 2.476640 +v -5.959274 -2.398764 2.476640 +v -5.959274 -2.398764 2.492640 +v -5.959274 -2.383851 2.498439 +v 2.712190 -2.398782 2.476630 +v 2.712418 -2.383929 2.498675 +v 2.712338 -1.892437 2.789238 +v 2.712151 -1.876947 2.790180 +v -5.987167 -1.822686 2.708920 +v -5.969135 -1.825614 2.713334 +v -5.959274 -1.816770 2.700000 +v -5.959274 -1.801188 2.703635 +v -5.975275 -1.801188 2.703635 +v -5.975275 -1.800770 2.687302 +v -5.975275 -1.816770 2.684000 +v -5.989600 -1.823896 2.691471 +v 2.712602 -1.387875 2.799951 +v 2.713130 -1.372307 2.815678 +v -5.959274 -1.372307 2.803680 +v -5.987273 -1.372307 2.815678 +v -5.975275 -1.372307 2.787680 +v -5.975275 -1.388307 2.783518 +v -5.975275 -1.387889 2.800045 +v -5.959274 -1.387889 2.800045 +v 2.713279 -1.825358 2.713500 +v 2.712674 -1.801202 2.703734 +v 4.764598 -2.257143 2.338463 +v 4.765438 -2.242578 2.361351 +v 4.765759 -1.387775 2.661335 +v 4.767358 -1.372307 2.677386 +v 4.767843 -1.777537 2.575726 +v 4.766009 -1.754433 2.565921 +v 4.764974 -1.833592 2.650705 +v 4.764438 -1.819802 2.651479 +v 4.766231 -1.899454 2.520317 +v 4.767318 -1.878853 2.541939 +v 6.339335 -1.695142 2.368779 +v 6.336325 -1.674196 2.360748 +v 6.332798 -1.736667 2.442959 +v 6.332273 -1.725967 2.443692 +v 6.319942 -1.776508 2.321930 +v 6.320152 -1.790749 2.314583 +v 6.335766 -1.789011 2.311424 +v 6.348468 -1.784460 2.301672 +v 6.350799 -1.774122 2.314511 +v 6.339044 -1.770878 2.334926 +v 6.320033 -2.056855 2.149118 +v 6.330730 -2.055658 2.131563 +v 6.349483 -2.052070 2.139278 +v 6.352201 -2.042067 2.152415 +v 6.335766 -2.041220 2.155455 +v 6.319822 -2.042605 2.156471 +v 6.334619 -1.387029 2.451863 +v 6.337947 -1.372307 2.469894 +v 8.062603 -1.372308 2.047064 +v 8.030944 -1.387588 2.047712 +v 8.064332 -1.379642 2.040078 +v 8.064032 -1.379802 2.023659 +v 8.078169 -1.372308 2.027359 +v 8.090168 -1.372308 2.052838 +v 7.625806 -1.605030 1.944515 +v 7.634216 -1.610275 1.957620 +v 7.649685 -1.608437 1.952394 +v 7.655291 -1.611283 1.934268 +v 7.641026 -1.604039 1.923679 +v 7.655164 -1.596546 1.926684 +v 7.654862 -1.596705 1.942961 +v 7.637601 -1.590346 1.949004 +v 7.696343 -1.640918 2.047967 +v 7.695954 -1.643408 2.031554 +v 7.711631 -1.639892 2.027359 +v 7.697366 -1.632648 1.996050 +v 7.702972 -1.635495 2.030643 +v 7.686785 -1.635728 2.035156 +v 7.467351 -1.692388 1.908106 +v 7.505756 -1.675745 1.888171 +v 7.522184 -1.672884 1.916150 +v 7.067178 -1.907989 1.714669 +v 7.066056 -1.896901 1.746302 +v 7.641026 -1.604039 -1.923679 +v 7.655291 -1.611283 -1.934268 +v 7.649685 -1.608437 -1.952394 +v 7.634216 -1.610275 -1.957620 +v 7.625806 -1.605030 -1.944515 +v 7.637601 -1.590346 -1.949004 +v 7.654862 -1.596705 -1.942961 +v 7.655164 -1.596546 -1.926684 +v 7.711631 -1.639892 -2.027359 +v 7.695954 -1.643408 -2.031554 +v 7.696343 -1.640918 -2.047967 +v 7.686785 -1.635728 -2.035156 +v 7.702972 -1.635495 -2.030643 +v 7.697366 -1.632648 -1.996050 +v -5.975275 -1.954302 -2.649440 +v -5.989600 -1.947175 -2.658290 +v -5.985947 -1.948993 -2.676113 +v -5.968124 -1.947175 -2.679765 +v -5.959274 -1.954302 -2.665440 +v -5.959274 -1.969214 -2.659642 +v -5.975275 -1.969214 -2.659642 +v -5.975275 -1.970302 -2.642053 +v -5.975275 -1.816770 -2.684000 +v -5.975275 -1.800770 -2.687302 +v -5.975275 -1.801188 -2.703635 +v -5.959274 -1.801188 -2.703635 +v -5.959274 -1.816770 -2.700000 +v -5.969135 -1.825614 -2.713334 +v -5.987167 -1.822686 -2.708920 +v -5.989600 -1.823896 -2.691471 +v 8.078169 -1.372308 -2.027359 +v 8.064032 -1.379802 -2.023659 +v 8.064332 -1.379642 -2.040078 +v 8.030944 -1.387588 -2.047712 +v 8.062603 -1.372308 -2.047064 +v 8.090168 -1.372308 -2.052838 +v 7.067178 -1.907989 -1.714669 +v 7.066056 -1.896901 -1.746302 +v 7.467351 -1.692388 -1.908106 +v 7.522184 -1.672884 -1.916150 +v 7.505756 -1.675745 -1.888171 +v 6.349483 -2.052070 -2.139278 +v 6.330730 -2.055658 -2.131563 +v 6.320033 -2.056855 -2.149118 +v 6.319822 -2.042605 -2.156471 +v 6.335766 -2.041220 -2.155455 +v 6.352201 -2.042067 -2.152415 +v 6.350799 -1.774122 -2.314511 +v 6.348468 -1.784460 -2.301672 +v 6.335766 -1.789011 -2.311424 +v 6.320152 -1.790749 -2.314583 +v 6.319942 -1.776508 -2.321930 +v 6.339044 -1.770878 -2.334926 +v 6.332798 -1.736667 -2.442959 +v 6.332273 -1.725967 -2.443692 +v 6.339335 -1.695142 -2.368779 +v 6.336325 -1.674196 -2.360748 +v 6.334619 -1.387029 -2.451863 +v 6.337947 -1.372307 -2.469894 +v 4.765759 -1.387775 -2.661335 +v 4.767358 -1.372307 -2.677386 +v 4.764598 -2.257143 -2.338463 +v 4.765438 -2.242578 -2.361351 +v 4.766231 -1.899454 -2.520317 +v 4.767318 -1.878853 -2.541939 +v 4.764974 -1.833592 -2.650705 +v 4.764438 -1.819802 -2.651479 +v 4.767843 -1.777537 -2.575726 +v 4.766009 -1.754433 -2.565921 +v 2.712774 -1.969137 -2.659416 +v 2.713096 -1.947401 -2.679883 +v 2.712338 -1.892437 -2.789238 +v 2.712151 -1.876947 -2.790180 +v 2.713279 -1.825358 -2.713500 +v 2.712674 -1.801202 -2.703734 +v 2.712602 -1.387875 -2.799951 +v 2.713130 -1.372307 -2.815678 +v 2.712190 -2.398782 -2.476630 +v 2.712418 -2.383929 -2.498675 +v -5.975275 -1.387889 -2.800045 +v -5.975275 -1.388307 -2.783518 +v -5.975275 -1.372307 -2.787680 +v -5.987273 -1.372307 -2.815678 +v -5.959274 -1.372307 -2.803680 +v -5.959274 -1.387889 -2.800045 +v -5.975275 -2.398764 -2.476640 +v -5.975275 -2.382764 -2.481694 +v -5.975275 -2.383851 -2.498439 +v -5.959274 -2.383851 -2.498439 +v -5.959274 -2.398764 -2.492640 +v -5.959274 -2.398764 -2.476640 +v -3.849405 1.152882 0.921437 +v -3.822861 1.126339 0.921437 +v -3.822861 1.126339 0.619901 +v -3.849405 1.152882 0.619901 +v -3.875949 1.126339 0.921437 +v -3.849405 1.099795 0.921437 +v -3.875949 1.126339 1.433200 +v -3.849405 1.099795 1.433200 +v -3.945206 1.057082 1.433200 +v -3.918662 1.030538 1.433200 +v -4.007861 0.997151 1.547444 +v -3.978593 0.967883 1.547444 +v -4.327192 1.152882 0.619901 +v -4.353735 1.126339 0.619901 +v -4.353735 1.126339 0.921437 +v -4.327192 1.152882 0.921437 +v -4.327192 1.099795 0.921437 +v -4.300648 1.126339 0.921437 +v -4.327192 1.099795 1.433200 +v -4.300648 1.126339 1.433200 +v -4.257935 1.030538 1.433200 +v -4.231390 1.057082 1.433200 +v -4.198004 0.967883 1.547444 +v -4.168737 0.997151 1.547444 +v -3.476986 0.997151 1.547444 +v -3.447718 0.967883 1.547444 +v -3.414332 1.057082 1.433200 +v -3.387789 1.030538 1.433200 +v -3.345074 1.126339 1.433200 +v -3.318531 1.099795 1.433200 +v -3.345074 1.126339 0.921437 +v -3.318531 1.099795 0.921437 +v -3.318531 1.152882 0.921437 +v -3.291987 1.126339 0.921437 +v -3.291987 1.126339 0.619901 +v -3.318531 1.152882 0.619901 +v -3.667130 0.967883 1.547444 +v -3.637862 0.997151 1.547444 +v -3.727060 1.030538 1.433200 +v -3.700517 1.057082 1.433200 +v -3.796318 1.099795 1.433200 +v -3.769773 1.126339 1.433200 +v -3.796318 1.099795 0.921437 +v -3.769773 1.126339 0.921437 +v -3.796318 1.152882 0.619901 +v -3.796318 1.152882 0.921437 +v -3.796318 0.437689 0.921437 +v -3.796318 0.437689 0.619901 +v -3.769773 0.464233 0.921437 +v -3.796318 0.490776 0.921437 +v -3.769773 0.464233 1.433200 +v -3.796318 0.490776 1.433200 +v -3.700517 0.533490 1.433200 +v -3.727060 0.560034 1.433200 +v -3.637862 0.593420 1.547444 +v -3.667130 0.622688 1.547444 +v -3.318531 0.437689 0.619901 +v -3.291987 0.464233 0.619901 +v -3.291987 0.464233 0.921437 +v -3.318531 0.437689 0.921437 +v -3.318531 0.490776 0.921437 +v -3.345074 0.464233 0.921437 +v -3.318531 0.490776 1.433200 +v -3.345074 0.464233 1.433200 +v -3.387789 0.560034 1.433200 +v -3.414332 0.533490 1.433200 +v -3.447718 0.622688 1.547444 +v -3.476986 0.593420 1.547444 +v -4.168737 0.593420 1.547444 +v -4.198004 0.622688 1.547444 +v -4.231390 0.533490 1.433200 +v -4.257935 0.560034 1.433200 +v -4.300648 0.464233 1.433200 +v -4.327192 0.490776 1.433200 +v -4.300648 0.464233 0.921437 +v -4.327192 0.490776 0.921437 +v -4.327192 0.437689 0.921437 +v -4.353735 0.464233 0.921437 +v -4.353735 0.464233 0.619901 +v -4.327192 0.437689 0.619901 +v -3.978593 0.622688 1.547444 +v -4.007861 0.593420 1.547444 +v -3.918662 0.560034 1.433200 +v -3.945206 0.533490 1.433200 +v -3.849405 0.490776 1.433200 +v -3.875949 0.464233 1.433200 +v -3.849405 0.490776 0.921437 +v -3.875949 0.464233 0.921437 +v -3.849405 0.437689 0.619901 +v -3.822861 0.464233 0.619901 +v -3.822861 0.464233 0.921437 +v -3.849405 0.437689 0.921437 +v -4.469892 0.317642 0.337475 +v -3.849405 0.317642 0.337475 +v -3.796318 0.317642 0.337475 +v -3.318531 0.317642 0.337475 +v -3.291987 0.353097 0.337475 +v -3.291987 1.237474 0.337475 +v -3.318531 1.272929 0.337475 +v -3.796318 1.272929 0.337475 +v -3.849405 1.272929 0.337475 +v -4.469892 1.272929 0.337475 +v -4.496435 1.237474 0.337475 +v -4.496435 0.353097 0.337475 +v -4.496435 0.353097 -0.329302 +v -4.496435 1.237474 -0.329302 +v -4.469892 1.272929 -0.329302 +v -3.849405 1.272929 -0.329302 +v -3.796318 1.272929 -0.329302 +v -3.318531 1.272929 -0.329302 +v -3.291987 1.237474 -0.329302 +v -3.291987 0.353097 -0.329302 +v -3.318531 0.317642 -0.329302 +v -3.796318 0.317642 -0.329302 +v -3.849405 0.317642 -0.329302 +v -4.469892 0.317642 -0.329302 +v -3.849405 0.437689 -0.913264 +v -3.822861 0.464233 -0.913264 +v -3.822861 0.464233 -0.611727 +v -3.849405 0.437689 -0.611727 +v -3.875949 0.464233 -0.913264 +v -3.849405 0.490776 -0.913264 +v -3.875949 0.464233 -1.425026 +v -3.849405 0.490776 -1.425026 +v -3.945206 0.533490 -1.425026 +v -3.918662 0.560034 -1.425026 +v -4.007861 0.593420 -1.539271 +v -3.978593 0.622688 -1.539271 +v -4.327192 0.437689 -0.611727 +v -4.353735 0.464233 -0.611727 +v -4.353735 0.464233 -0.913264 +v -4.327192 0.437689 -0.913264 +v -4.327192 0.490776 -0.913264 +v -4.300648 0.464233 -0.913264 +v -4.327192 0.490776 -1.425026 +v -4.300648 0.464233 -1.425026 +v -4.257935 0.560034 -1.425026 +v -4.231390 0.533490 -1.425026 +v -4.198004 0.622688 -1.539271 +v -4.168737 0.593420 -1.539271 +v -3.476986 0.593420 -1.539271 +v -3.447718 0.622688 -1.539271 +v -3.414332 0.533490 -1.425026 +v -3.387789 0.560034 -1.425026 +v -3.345074 0.464233 -1.425026 +v -3.318531 0.490776 -1.425026 +v -3.345074 0.464233 -0.913264 +v -3.318531 0.490776 -0.913264 +v -3.318531 0.437689 -0.913264 +v -3.291987 0.464233 -0.913264 +v -3.291987 0.464233 -0.611727 +v -3.318531 0.437689 -0.611727 +v -3.667130 0.622688 -1.539271 +v -3.637862 0.593420 -1.539271 +v -3.727060 0.560034 -1.425026 +v -3.700517 0.533490 -1.425026 +v -3.796318 0.490776 -1.425026 +v -3.769773 0.464233 -1.425026 +v -3.796318 0.490776 -0.913264 +v -3.769773 0.464233 -0.913264 +v -3.796318 0.437689 -0.611727 +v -3.796318 0.437689 -0.913264 +v -3.796318 1.152882 -0.913264 +v -3.796318 1.152882 -0.611727 +v -3.769773 1.126339 -0.913264 +v -3.796318 1.099795 -0.913264 +v -3.769773 1.126339 -1.425026 +v -3.796318 1.099795 -1.425026 +v -3.700517 1.057082 -1.425026 +v -3.727060 1.030538 -1.425026 +v -3.637862 0.997151 -1.539271 +v -3.667130 0.967883 -1.539271 +v -3.318531 1.152882 -0.611727 +v -3.291987 1.126339 -0.611727 +v -3.291987 1.126339 -0.913264 +v -3.318531 1.152882 -0.913264 +v -3.318531 1.099795 -0.913264 +v -3.345074 1.126339 -0.913264 +v -3.318531 1.099795 -1.425026 +v -3.345074 1.126339 -1.425026 +v -3.387789 1.030538 -1.425026 +v -3.414332 1.057082 -1.425026 +v -3.447718 0.967883 -1.539271 +v -3.476986 0.997151 -1.539271 +v -4.168737 0.997151 -1.539271 +v -4.198004 0.967883 -1.539271 +v -4.231390 1.057082 -1.425026 +v -4.257935 1.030538 -1.425026 +v -4.300648 1.126339 -1.425026 +v -4.327192 1.099795 -1.425026 +v -4.300648 1.126339 -0.913264 +v -4.327192 1.099795 -0.913264 +v -4.327192 1.152882 -0.913264 +v -4.353735 1.126339 -0.913264 +v -4.353735 1.126339 -0.611727 +v -4.327192 1.152882 -0.611727 +v -3.978593 0.967883 -1.539271 +v -4.007861 0.997151 -1.539271 +v -3.918662 1.030538 -1.425026 +v -3.945206 1.057082 -1.425026 +v -3.849405 1.099795 -1.425026 +v -3.875949 1.126339 -1.425026 +v -3.849405 1.099795 -0.913264 +v -3.875949 1.126339 -0.913264 +v -3.849405 1.152882 -0.611727 +v -3.822861 1.126339 -0.611727 +v -3.822861 1.126339 -0.913264 +v -3.849405 1.152882 -0.913264 +v -3.962898 1.272929 -0.208715 +v -3.962898 1.272929 0.216889 +v -4.356398 1.272929 0.216889 +v -4.356398 1.272929 -0.208715 +v -3.410157 1.272929 -0.208715 +v -3.410157 1.272929 0.216889 +v -3.704692 1.272929 0.216889 +v -3.704692 1.272929 -0.208715 +v -3.962898 1.336210 0.216889 +v -4.356398 1.336210 0.216889 +v -4.356398 1.336210 -0.208715 +v -3.962898 1.336210 -0.208715 +v -3.410157 1.336210 0.216889 +v -3.704692 1.336210 0.216889 +v -3.704692 1.336210 -0.208715 +v -3.410157 1.336210 -0.208715 +v -4.356398 1.577863 0.216889 +v -4.356398 1.577863 -0.208715 +v -3.962898 1.577863 -0.208715 +v -3.962898 1.577863 0.216889 +v -3.704692 1.577863 0.216889 +v -3.704692 1.577863 -0.208715 +v -3.410157 1.577863 -0.208715 +v -3.410157 1.577863 0.216889 +v -3.126779 0.496178 0.229599 +v -3.126779 0.571354 0.420638 +v -3.126779 1.019218 0.420638 +v -3.126779 1.094393 0.229599 +v -3.126779 1.094393 -0.221426 +v -3.126779 1.019218 -0.412465 +v -3.126779 0.571354 -0.412465 +v -3.126779 0.496178 -0.221426 +v -4.496435 1.022719 -0.159752 +v -4.496435 1.022719 0.167925 +v -4.496435 0.567853 0.167925 +v -4.496435 0.567853 -0.159752 +v -4.496435 0.531570 -0.090902 +v -4.496435 0.514984 0.004086 +v -4.496435 0.531570 0.099074 +v -4.496435 0.955111 -0.226184 +v -4.496435 0.795286 -0.276215 +v -4.496435 0.635460 -0.226184 +v -4.496435 1.059002 0.099074 +v -4.496435 1.075587 0.004086 +v -4.496435 1.059002 -0.090902 +v -4.496435 0.635460 0.234358 +v -4.496435 0.795286 0.284388 +v -4.496435 0.955111 0.234358 +v -4.580100 0.663946 0.193315 +v -4.580100 0.608389 0.138723 +v -4.580100 0.578573 0.082145 +v -4.580100 0.564943 0.004086 +v -4.580100 0.578573 -0.073971 +v -4.580100 0.608389 -0.130550 +v -4.580100 0.663946 -0.185142 +v -4.580100 0.795286 -0.226256 +v -4.580100 0.926625 -0.185142 +v -4.580100 0.982182 -0.130550 +v -4.580100 1.011998 -0.073971 +v -4.580100 1.025628 0.004086 +v -4.580100 1.011998 0.082145 +v -4.580100 0.982182 0.138723 +v -4.580100 0.926625 0.193315 +v -4.580100 0.795286 0.234429 +v -4.760598 0.982182 0.138723 +v -4.760598 0.926625 0.193315 +v -4.760598 0.795286 0.234429 +v -4.760598 0.663946 0.193315 +v -4.760598 0.608389 0.138723 +v -4.760598 0.578573 0.082145 +v -4.760598 0.564943 0.004086 +v -4.760598 0.578573 -0.073971 +v -4.760598 0.608389 -0.130550 +v -4.760598 0.663946 -0.185142 +v -4.760598 0.795286 -0.226256 +v -4.760598 0.926625 -0.185142 +v -4.760598 0.982182 -0.130550 +v -4.760598 1.011998 -0.073971 +v -4.760598 1.025628 0.004086 +v -4.760598 1.011998 0.082145 +v -4.760598 0.663946 -0.376852 +v -4.580100 0.663946 -0.376852 +v -4.580100 0.735274 -0.417966 +v -4.760598 0.735274 -0.417966 +v -4.760598 0.735274 0.426138 +v -4.580100 0.735274 0.426138 +v -4.580100 0.663946 0.385025 +v -4.760598 0.663946 0.385025 +v -4.760598 0.457967 -0.376852 +v -4.760598 0.457967 -0.305541 +v -4.580100 0.457967 -0.305541 +v -4.580100 0.457967 -0.376852 +v -4.580100 0.457967 0.385025 +v -4.580100 0.457967 0.313714 +v -4.760598 0.457967 0.313714 +v -4.760598 0.457967 0.385025 +v -4.760598 0.457967 0.650279 +v -4.760598 0.663946 0.560426 +v -4.580100 0.663946 0.560426 +v -4.580100 0.457967 0.650279 +v -4.580100 0.457967 -0.642106 +v -4.580100 0.663946 -0.552253 +v -4.760598 0.663946 -0.552253 +v -4.760598 0.457967 -0.642106 +v -5.593860 -2.308667 2.040359 +v -5.593860 -2.308667 1.775105 +v -5.774358 -2.308667 1.775105 +v -5.774358 -2.308667 2.040359 +v -5.774358 -2.308667 -2.032186 +v -5.774358 -2.308667 -1.766932 +v -5.593860 -2.308667 -1.766932 +v -5.593860 -2.308667 -2.032186 +v -3.291987 0.643829 -0.709272 +v -3.291987 0.946742 -0.709272 +v -3.291987 0.946742 -0.815720 +v -3.291987 0.643829 -0.815720 +v -3.291987 0.643829 0.823893 +v -3.291987 0.946742 0.823893 +v -3.291987 0.946742 0.717445 +v -3.291987 0.643829 0.717445 +v -3.121682 0.946742 -0.709272 +v -3.121682 0.946742 -0.815720 +v -3.121682 0.643829 -0.815720 +v -3.121682 0.643829 -0.709272 +v -3.121682 0.946742 0.823893 +v -3.121682 0.946742 0.717445 +v -3.121682 0.643829 0.717445 +v -3.121682 0.643829 0.823893 +v -2.961571 0.946742 0.717445 +v -2.961571 0.643829 0.717445 +v -2.961571 0.643829 0.823893 +v -2.961571 0.946742 0.823893 +v -2.961571 0.946742 -0.815720 +v -2.961571 0.643829 -0.815720 +v -2.961571 0.643829 -0.709272 +v -2.961571 0.946742 -0.709272 +v -2.961571 0.643829 0.963619 +v -3.121682 0.643829 0.963619 +v -3.121682 0.780140 0.963619 +v -2.961571 0.780140 0.963619 +v -2.961571 0.780140 -0.955446 +v -3.121682 0.780140 -0.955446 +v -3.121682 0.643829 -0.955446 +v -2.961571 0.643829 -0.955446 +v -2.961571 0.643829 -0.533871 +v -3.121682 0.643829 -0.533871 +v -3.121682 0.946742 -0.533871 +v -2.961571 0.946742 -0.533871 +v -2.961571 0.946742 0.542044 +v -3.121682 0.946742 0.542044 +v -3.121682 0.643829 0.542044 +v -2.961571 0.643829 0.542044 +v -3.121682 0.465368 -0.327892 +v -3.121682 1.125203 -0.327892 +v -2.961571 1.125203 -0.327892 +v -2.961571 0.465368 -0.327892 +v -3.121682 1.125203 0.336065 +v -3.121682 0.465368 0.336065 +v -2.961571 0.465368 0.336065 +v -2.961571 1.125203 0.336065 +v -3.121682 -2.308667 -2.345526 +v -3.121682 -2.308667 -2.205800 +v -2.961571 -2.308667 -2.205800 +v -2.961571 -2.308667 -2.345526 +v -2.961571 -2.308667 2.353699 +v -2.961571 -2.308667 2.213973 +v -3.121682 -2.308667 2.213973 +v -3.121682 -2.308667 2.353699 +v -2.977571 -2.308667 2.353699 +v -2.977571 -2.308667 2.337699 +v -2.961571 -2.308667 2.337699 +v -2.961571 -2.292667 2.337699 +v -2.961571 -2.292667 2.353699 +v -2.977571 -2.292667 2.353699 +v -3.105682 -2.308667 2.353699 +v -3.105682 -2.292667 2.353699 +v -3.121682 -2.292667 2.353699 +v -3.121682 -2.292667 2.337699 +v -3.121682 -2.308667 2.337699 +v -3.105682 -2.308667 2.337699 +v -3.121682 -2.308667 2.229973 +v -3.121682 -2.292667 2.229973 +v -3.121682 -2.292667 2.213973 +v -3.105682 -2.292667 2.213973 +v -3.105682 -2.308667 2.213973 +v -3.105682 -2.308667 2.229973 +v -3.105682 0.643829 0.963619 +v -3.121682 0.643829 0.947619 +v -2.977571 -2.308667 2.213973 +v -2.977571 -2.292667 2.213973 +v -2.961571 -2.292667 2.213973 +v -2.961571 -2.292667 2.229973 +v -2.961571 -2.308667 2.229973 +v -2.977571 -2.308667 2.229973 +v -3.121682 0.627829 0.823893 +v -3.121682 0.643829 0.839893 +v -3.121682 0.659829 0.823893 +v -3.137682 0.659829 0.823893 +v -3.137682 0.643829 0.823893 +v -3.121682 0.643829 0.807893 +v -3.105682 0.643829 0.823893 +v -3.105682 0.627829 0.823893 +v -2.961571 0.627829 0.823893 +v -2.977571 0.627829 0.823893 +v -2.977571 0.643829 0.823893 +v -2.977571 0.643829 0.807893 +v -2.961571 0.643829 0.807893 +v -2.961571 0.659829 0.823893 +v -2.961571 0.643829 0.839893 +v -2.961571 0.643829 0.947619 +v -2.977571 0.643829 0.963619 +v -3.105682 -2.308667 -2.345526 +v -3.105682 -2.308667 -2.329526 +v -3.121682 -2.308667 -2.329526 +v -3.121682 -2.292667 -2.329526 +v -3.121682 -2.292667 -2.345526 +v -3.105682 -2.292667 -2.345526 +v -2.977571 -2.308667 -2.345526 +v -2.977571 -2.292667 -2.345526 +v -2.961571 -2.292667 -2.345526 +v -2.961571 -2.292667 -2.329526 +v -2.961571 -2.308667 -2.329526 +v -2.977571 -2.308667 -2.329526 +v -2.961571 -2.308667 -2.221800 +v -2.961571 -2.292667 -2.221800 +v -2.961571 -2.292667 -2.205800 +v -2.977571 -2.292667 -2.205800 +v -2.977571 -2.308667 -2.205800 +v -2.977571 -2.308667 -2.221800 +v -2.977571 0.643829 -0.955446 +v -2.961571 0.643829 -0.939446 +v -3.105682 -2.308667 -2.205800 +v -3.105682 -2.292667 -2.205800 +v -3.121682 -2.292667 -2.205800 +v -3.121682 -2.292667 -2.221800 +v -3.121682 -2.308667 -2.221800 +v -3.105682 -2.308667 -2.221800 +v -2.961571 0.627829 -0.815720 +v -2.961571 0.643829 -0.831720 +v -2.961571 0.659829 -0.815720 +v -2.961571 0.643829 -0.799720 +v -2.977571 0.643829 -0.799720 +v -2.977571 0.643829 -0.815720 +v -2.977571 0.627829 -0.815720 +v -3.121682 0.627829 -0.815720 +v -3.105682 0.627829 -0.815720 +v -3.105682 0.643829 -0.815720 +v -3.121682 0.643829 -0.799720 +v -3.137682 0.643829 -0.815720 +v -3.137682 0.659829 -0.815720 +v -3.121682 0.659829 -0.815720 +v -3.121682 0.643829 -0.831720 +v -3.121682 0.643829 -0.939446 +v -3.105682 0.643829 -0.955446 +v -3.121682 0.465368 -0.311892 +v -3.121682 0.481368 -0.321925 +v -3.121682 0.475845 -0.339985 +v -3.105682 0.475845 -0.339985 +v -3.105682 0.465368 -0.327892 +v -3.105682 0.465368 -0.311892 +v -3.121682 0.465368 0.320065 +v -3.105682 0.465368 0.320065 +v -3.105682 0.465368 0.336065 +v -3.105682 0.475845 0.348158 +v -3.121682 0.475845 0.348158 +v -3.121682 0.481368 0.330098 +v -3.121682 1.125203 -0.311892 +v -3.105682 1.125203 -0.311892 +v -3.105682 1.125203 -0.327892 +v -3.105682 1.114726 -0.339985 +v -3.121682 1.114726 -0.339985 +v -3.121682 1.109203 -0.321925 +v -3.121682 1.125203 0.320065 +v -3.121682 1.109203 0.330098 +v -3.121682 1.114726 0.348158 +v -3.105682 1.114726 0.348158 +v -3.105682 1.125203 0.336065 +v -3.105682 1.125203 0.320065 +v -2.961571 1.125203 -0.311892 +v -2.961571 1.109203 -0.321925 +v -2.961571 1.114726 -0.339985 +v -2.977571 1.114726 -0.339985 +v -2.977571 1.125203 -0.327892 +v -2.977571 1.125203 -0.311892 +v -2.961571 1.125203 0.320065 +v -2.977571 1.125203 0.320065 +v -2.977571 1.125203 0.336065 +v -2.977571 1.114726 0.348158 +v -2.961571 1.114726 0.348158 +v -2.961571 1.109203 0.330098 +v -2.961571 0.465368 -0.311892 +v -2.977571 0.465368 -0.311892 +v -2.977571 0.465368 -0.327892 +v -2.977571 0.475845 -0.339985 +v -2.961571 0.475845 -0.339985 +v -2.961571 0.481368 -0.321925 +v -2.961571 0.465368 0.320065 +v -2.961571 0.481368 0.330098 +v -2.961571 0.475845 0.348158 +v -2.977571 0.475845 0.348158 +v -2.977571 0.465368 0.336065 +v -2.977571 0.465368 0.320065 +v -2.961571 0.957220 0.529951 +v -2.977571 0.957220 0.529951 +v -2.977571 0.946742 0.542044 +v -2.977571 0.946742 0.558044 +v -2.961571 0.946742 0.558044 +v -2.961571 0.930742 0.536077 +v -2.961571 0.633352 0.529951 +v -2.961571 0.659829 0.536077 +v -2.961571 0.643829 0.558044 +v -2.977571 0.643829 0.558044 +v -2.977571 0.643829 0.542044 +v -2.977571 0.633352 0.529951 +v -3.121682 0.633352 0.529951 +v -3.105682 0.633352 0.529951 +v -3.105682 0.643829 0.542044 +v -3.105682 0.643829 0.558044 +v -3.121682 0.643829 0.558044 +v -3.121682 0.659829 0.536077 +v -3.121682 0.957220 0.529951 +v -3.121682 0.930742 0.536077 +v -3.121682 0.946742 0.558044 +v -3.105682 0.946742 0.558044 +v -3.105682 0.946742 0.542044 +v -3.105682 0.957220 0.529951 +v -2.961571 0.633352 -0.521778 +v -2.977571 0.633352 -0.521778 +v -2.977571 0.643829 -0.533871 +v -2.977571 0.643829 -0.549871 +v -2.961571 0.643829 -0.549871 +v -2.961571 0.659829 -0.527904 +v -2.961571 0.957220 -0.521778 +v -2.961571 0.930742 -0.527904 +v -2.961571 0.946742 -0.549871 +v -2.977571 0.946742 -0.549871 +v -2.977571 0.946742 -0.533871 +v -2.977571 0.957220 -0.521778 +v -3.121682 0.957220 -0.521778 +v -3.105682 0.957220 -0.521778 +v -3.105682 0.946742 -0.533871 +v -3.105682 0.946742 -0.549871 +v -3.121682 0.946742 -0.549871 +v -3.121682 0.930742 -0.527904 +v -3.121682 0.633352 -0.521778 +v -3.121682 0.659829 -0.527904 +v -3.121682 0.643829 -0.549871 +v -3.105682 0.643829 -0.549871 +v -3.105682 0.643829 -0.533871 +v -3.105682 0.633352 -0.521778 +v -2.961571 0.659829 0.717445 +v -2.977571 0.643829 0.717445 +v -3.121682 0.643829 0.701445 +v -3.105682 0.643829 0.717445 +v -3.121682 0.643829 0.733445 +v -3.137682 0.643829 0.717445 +v -3.137682 0.659829 0.717445 +v -3.121682 0.659829 0.717445 +v -3.121682 0.659829 0.701445 +v -3.121682 0.946742 0.701445 +v -3.121682 0.930742 0.701445 +v -3.121682 0.930742 0.717445 +v -3.137682 0.930742 0.717445 +v -3.137682 0.946742 0.717445 +v -3.121682 0.946742 0.733445 +v -3.105682 0.946742 0.717445 +v -2.977571 0.946742 0.717445 +v -2.961571 0.930742 0.717445 +v -2.961571 0.930742 -0.709272 +v -2.977571 0.946742 -0.709272 +v -3.121682 0.946742 -0.693272 +v -3.105682 0.946742 -0.709272 +v -3.121682 0.946742 -0.725272 +v -3.137682 0.946742 -0.709272 +v -3.137682 0.930742 -0.709272 +v -3.121682 0.930742 -0.709272 +v -3.121682 0.930742 -0.693272 +v -3.121682 0.643829 -0.693272 +v -3.121682 0.659829 -0.693272 +v -3.121682 0.659829 -0.709272 +v -3.137682 0.659829 -0.709272 +v -3.137682 0.643829 -0.709272 +v -3.121682 0.643829 -0.725272 +v -3.105682 0.643829 -0.709272 +v -2.977571 0.643829 -0.709272 +v -2.961571 0.659829 -0.709272 +v -2.961571 0.764140 -0.955446 +v -2.977571 0.764140 -0.955446 +v -2.977571 0.780140 -0.955446 +v -2.977571 0.792399 -0.945164 +v -2.961571 0.792399 -0.945164 +v -2.961571 0.774319 -0.939446 +v -3.121682 0.764140 -0.955446 +v -3.121682 0.774319 -0.939446 +v -3.121682 0.792399 -0.945164 +v -3.105682 0.792399 -0.945164 +v -3.105682 0.780140 -0.955446 +v -3.105682 0.764140 -0.955446 +v -3.121682 0.934483 -0.826002 +v -3.121682 0.902766 -0.831720 +v -3.121682 0.930742 -0.815720 +v -3.137682 0.930742 -0.815720 +v -3.137682 0.946742 -0.815720 +v -3.121682 0.946742 -0.799720 +v -3.105682 0.946742 -0.815720 +v -3.105682 0.934483 -0.826002 +v -2.961571 0.934483 -0.826002 +v -2.977571 0.934483 -0.826002 +v -2.977571 0.946742 -0.815720 +v -2.977571 0.946742 -0.799720 +v -2.961571 0.946742 -0.799720 +v -2.961571 0.930742 -0.808256 +v -2.961571 0.764140 0.963619 +v -2.961571 0.774319 0.947619 +v -2.961571 0.792399 0.953338 +v -2.977571 0.792399 0.953338 +v -2.977571 0.780140 0.963619 +v -2.977571 0.764140 0.963619 +v -3.105682 0.780140 0.963619 +v -3.105682 0.792399 0.953338 +v -3.121682 0.792399 0.953338 +v -3.121682 0.774319 0.947619 +v -3.121682 0.764140 0.963619 +v -3.105682 0.764140 0.963619 +v -2.961571 0.934483 0.834174 +v -2.961571 0.930742 0.816430 +v -2.961571 0.946742 0.807893 +v -2.977571 0.946742 0.807893 +v -2.977571 0.946742 0.823893 +v -2.977571 0.934483 0.834174 +v -3.121682 0.934483 0.834174 +v -3.105682 0.934483 0.834174 +v -3.105682 0.946742 0.823893 +v -3.121682 0.946742 0.807893 +v -3.137682 0.946742 0.823893 +v -3.137682 0.930742 0.823893 +v -3.121682 0.930742 0.823893 +v -3.121682 0.902766 0.839893 +v -3.275987 0.643829 0.823893 +v -3.275987 0.659829 0.823893 +v -3.291987 0.659829 0.823893 +v -3.291987 0.627829 0.839893 +v -3.291987 0.643829 0.807893 +v -3.275987 0.643829 0.807893 +v -3.275987 0.643829 0.717445 +v -3.275987 0.643829 0.733445 +v -3.291987 0.643829 0.733445 +v -3.291987 0.627829 0.701445 +v -3.291987 0.659829 0.717445 +v -3.275987 0.659829 0.717445 +v -3.275987 0.946742 0.717445 +v -3.275987 0.930742 0.717445 +v -3.291987 0.930742 0.717445 +v -3.291987 0.962742 0.701445 +v -3.291987 0.946742 0.733445 +v -3.275987 0.946742 0.733445 +v -3.275987 0.946742 0.823893 +v -3.275987 0.946742 0.807893 +v -3.291987 0.946742 0.807893 +v -3.291987 0.962742 0.839893 +v -3.291987 0.930742 0.823893 +v -3.275987 0.930742 0.823893 +v -3.275987 0.643829 -0.709272 +v -3.275987 0.659829 -0.709272 +v -3.291987 0.659829 -0.709272 +v -3.291987 0.627829 -0.693272 +v -3.291987 0.643829 -0.725272 +v -3.275987 0.643829 -0.725272 +v -3.275987 0.643829 -0.815720 +v -3.275987 0.643829 -0.799720 +v -3.291987 0.643829 -0.799720 +v -3.291987 0.627829 -0.831720 +v -3.291987 0.659829 -0.815720 +v -3.275987 0.659829 -0.815720 +v -3.275987 0.946742 -0.815720 +v -3.275987 0.930742 -0.815720 +v -3.291987 0.930742 -0.815720 +v -3.291987 0.962742 -0.831720 +v -3.291987 0.946742 -0.799720 +v -3.275987 0.946742 -0.799720 +v -3.275987 0.946742 -0.709272 +v -3.275987 0.946742 -0.725272 +v -3.291987 0.946742 -0.725272 +v -3.291987 0.962742 -0.693272 +v -3.291987 0.930742 -0.709272 +v -3.275987 0.930742 -0.709272 +v -5.758358 -2.308667 -2.032186 +v -5.758358 -2.308667 -2.016186 +v -5.774358 -2.308667 -2.016186 +v -5.774358 -2.292667 -2.016186 +v -5.774358 -2.292667 -2.032186 +v -5.758358 -2.292667 -2.032186 +v -5.609860 -2.308667 -2.032186 +v -5.609860 -2.292667 -2.032186 +v -5.593860 -2.292667 -2.032186 +v -5.593860 -2.292667 -2.016186 +v -5.593860 -2.308667 -2.016186 +v -5.609860 -2.308667 -2.016186 +v -5.593860 -2.308667 -1.782932 +v -5.593860 -2.292667 -1.782932 +v -5.593860 -2.292667 -1.766932 +v -5.609860 -2.292667 -1.766932 +v -5.609860 -2.308667 -1.766932 +v -5.609860 -2.308667 -1.782932 +v -4.596445 0.457967 -0.642106 +v -4.580100 0.454630 -0.626106 +v -5.758358 -2.308667 -1.766932 +v -5.758358 -2.292667 -1.766932 +v -5.774358 -2.292667 -1.766932 +v -5.774358 -2.292667 -1.782932 +v -5.774358 -2.308667 -1.782932 +v -5.758358 -2.308667 -1.782932 +v -4.580100 0.441967 -0.376852 +v -4.580100 0.457967 -0.392852 +v -4.580100 0.473967 -0.376852 +v -4.580100 0.457967 -0.360852 +v -4.596100 0.457967 -0.360852 +v -4.596100 0.457967 -0.376852 +v -4.596100 0.441967 -0.376852 +v -4.760598 0.441967 -0.376852 +v -4.744598 0.441967 -0.376852 +v -4.744598 0.457967 -0.376852 +v -4.744598 0.457967 -0.360852 +v -4.760598 0.457967 -0.360852 +v -4.760598 0.473967 -0.376852 +v -4.760598 0.457967 -0.392852 +v -4.760598 0.454630 -0.626106 +v -4.744253 0.457967 -0.642106 +v -5.609860 -2.308667 2.040359 +v -5.609860 -2.308667 2.024359 +v -5.593860 -2.308667 2.024359 +v -5.593860 -2.292667 2.024359 +v -5.593860 -2.292667 2.040359 +v -5.609860 -2.292667 2.040359 +v -5.758358 -2.308667 2.040359 +v -5.758358 -2.292667 2.040359 +v -5.774358 -2.292667 2.040359 +v -5.774358 -2.292667 2.024359 +v -5.774358 -2.308667 2.024359 +v -5.758358 -2.308667 2.024359 +v -5.774358 -2.308667 1.791105 +v -5.774358 -2.292667 1.791105 +v -5.774358 -2.292667 1.775105 +v -5.758358 -2.292667 1.775105 +v -5.758358 -2.308667 1.775105 +v -5.758358 -2.308667 1.791105 +v -4.744253 0.457967 0.650279 +v -4.760598 0.454630 0.634279 +v -5.609860 -2.308667 1.775105 +v -5.609860 -2.292667 1.775105 +v -5.593860 -2.292667 1.775105 +v -5.593860 -2.292667 1.791105 +v -5.593860 -2.308667 1.791105 +v -5.609860 -2.308667 1.791105 +v -4.760598 0.441967 0.385025 +v -4.760598 0.457967 0.401025 +v -4.760598 0.473967 0.385025 +v -4.760598 0.457967 0.369025 +v -4.744598 0.457967 0.369025 +v -4.744598 0.457967 0.385025 +v -4.744598 0.441967 0.385025 +v -4.580100 0.441967 0.385025 +v -4.596100 0.441967 0.385025 +v -4.596100 0.457967 0.385025 +v -4.596100 0.457967 0.369025 +v -4.580100 0.457967 0.369025 +v -4.580100 0.473967 0.385025 +v -4.580100 0.457967 0.401025 +v -4.580100 0.454630 0.634279 +v -4.596445 0.457967 0.650279 +v -4.760598 0.649281 -0.558650 +v -4.760598 0.647946 -0.541776 +v -4.760598 0.663946 -0.536253 +v -4.744598 0.663946 -0.536253 +v -4.744598 0.663946 -0.552253 +v -4.744598 0.649281 -0.558650 +v -4.596100 0.663946 -0.552253 +v -4.596100 0.663946 -0.536253 +v -4.580100 0.663946 -0.536253 +v -4.580100 0.647946 -0.541776 +v -4.580100 0.649281 -0.558650 +v -4.596100 0.649281 -0.558650 +v -4.760598 0.663946 -0.392852 +v -4.760598 0.647946 -0.376852 +v -4.760598 0.663946 -0.358384 +v -4.760598 0.677809 -0.384842 +v -4.744598 0.677809 -0.384842 +v -4.744598 0.663946 -0.376852 +v -4.744598 0.663946 -0.392852 +v -4.580100 0.663946 -0.392852 +v -4.596100 0.663946 -0.392852 +v -4.596100 0.663946 -0.376852 +v -4.596100 0.677809 -0.384842 +v -4.580100 0.677809 -0.384842 +v -4.580100 0.663946 -0.358384 +v -4.580100 0.647946 -0.376852 +v -4.580100 0.649281 0.566823 +v -4.580100 0.647946 0.549950 +v -4.580100 0.663946 0.544426 +v -4.596100 0.663946 0.544426 +v -4.596100 0.663946 0.560426 +v -4.596100 0.649281 0.566823 +v -4.744598 0.663946 0.560426 +v -4.744598 0.663946 0.544426 +v -4.760598 0.663946 0.544426 +v -4.760598 0.647946 0.549950 +v -4.760598 0.649281 0.566823 +v -4.744598 0.649281 0.566823 +v -4.580100 0.663946 0.401025 +v -4.580100 0.647946 0.385025 +v -4.580100 0.663946 0.366558 +v -4.580100 0.677809 0.393015 +v -4.596100 0.677809 0.393015 +v -4.596100 0.663946 0.385025 +v -4.596100 0.663946 0.401025 +v -4.760598 0.663946 0.401025 +v -4.744598 0.663946 0.401025 +v -4.744598 0.663946 0.385025 +v -4.744598 0.677809 0.393015 +v -4.760598 0.677809 0.393015 +v -4.760598 0.663946 0.366558 +v -4.760598 0.647946 0.385025 +v -4.760598 0.457967 0.329714 +v -4.760598 0.473967 0.322894 +v -4.760598 0.471781 0.305639 +v -4.744598 0.471781 0.305639 +v -4.744598 0.457967 0.313714 +v -4.744598 0.457967 0.329714 +v -4.596100 0.457967 0.313714 +v -4.596100 0.471781 0.305639 +v -4.580100 0.471781 0.305639 +v -4.580100 0.473967 0.322894 +v -4.580100 0.457967 0.329714 +v -4.596100 0.457967 0.329714 +v -4.760598 0.650133 0.201390 +v -4.760598 0.663946 0.211848 +v -4.760598 0.697447 0.203802 +v -4.760598 0.652534 0.182102 +v -4.744598 0.652534 0.182102 +v -4.744598 0.663946 0.193315 +v -4.744598 0.650133 0.201390 +v -4.580100 0.650133 0.201390 +v -4.596100 0.650133 0.201390 +v -4.596100 0.663946 0.193315 +v -4.596100 0.652534 0.182102 +v -4.580100 0.652534 0.182102 +v -4.565961 0.659615 0.200541 +v -4.580100 0.665915 0.210698 +v -4.580100 0.457967 -0.321541 +v -4.580100 0.473967 -0.314722 +v -4.580100 0.471781 -0.297466 +v -4.596100 0.471781 -0.297466 +v -4.596100 0.457967 -0.305541 +v -4.596100 0.457967 -0.321541 +v -4.744598 0.457967 -0.305541 +v -4.744598 0.471781 -0.297466 +v -4.760598 0.471781 -0.297466 +v -4.760598 0.473967 -0.314722 +v -4.760598 0.457967 -0.321541 +v -4.744598 0.457967 -0.321541 +v -4.580100 0.650133 -0.193217 +v -4.580100 0.665915 -0.202524 +v -4.565961 0.659615 -0.192367 +v -4.580100 0.652534 -0.173928 +v -4.596100 0.652534 -0.173928 +v -4.596100 0.663946 -0.185142 +v -4.596100 0.650133 -0.193217 +v -4.760598 0.650133 -0.193217 +v -4.744598 0.650133 -0.193217 +v -4.744598 0.663946 -0.185142 +v -4.744598 0.652534 -0.173928 +v -4.760598 0.652534 -0.173928 +v -4.760598 0.697447 -0.195630 +v -4.760598 0.663946 -0.203675 +v -4.760598 0.721413 0.418148 +v -4.744598 0.721413 0.418148 +v -4.744598 0.735274 0.426138 +v -4.744598 0.740054 0.410869 +v -4.760598 0.740054 0.410869 +v -4.760598 0.725969 0.402307 +v -4.580100 0.721413 0.418148 +v -4.580100 0.725969 0.402307 +v -4.580100 0.740054 0.410869 +v -4.596100 0.740054 0.410869 +v -4.596100 0.735274 0.426138 +v -4.596100 0.721413 0.418148 +v -4.580100 0.790506 0.249698 +v -4.580100 0.775237 0.244918 +v -4.580100 0.780016 0.229649 +v -4.566199 0.779834 0.237893 +v -4.566363 0.795286 0.242631 +v -4.578826 0.811176 0.229808 +v -4.596100 0.795286 0.234429 +v -4.596100 0.790506 0.249698 +v -4.760598 0.790506 0.249698 +v -4.744598 0.790506 0.249698 +v -4.744598 0.795286 0.234429 +v -4.744598 0.810555 0.229649 +v -4.760598 0.810555 0.229649 +v -4.760598 0.782517 0.221660 +v -4.760598 0.721412 -0.409975 +v -4.760598 0.725969 -0.394134 +v -4.760598 0.740054 -0.402696 +v -4.744598 0.740054 -0.402696 +v -4.744598 0.735274 -0.417966 +v -4.744598 0.721412 -0.409975 +v -4.596100 0.735274 -0.417966 +v -4.596100 0.740054 -0.402696 +v -4.580100 0.740054 -0.402696 +v -4.580100 0.725969 -0.394134 +v -4.580100 0.721412 -0.409975 +v -4.596100 0.721412 -0.409975 +v -4.760598 0.790506 -0.241526 +v -4.760598 0.782517 -0.213487 +v -4.760598 0.810555 -0.221476 +v -4.744598 0.810555 -0.221476 +v -4.744598 0.795286 -0.226256 +v -4.744598 0.790506 -0.241526 +v -4.580100 0.790506 -0.241526 +v -4.596100 0.790506 -0.241526 +v -4.596100 0.795286 -0.226256 +v -4.578826 0.811176 -0.221635 +v -4.566363 0.795286 -0.234458 +v -4.566199 0.779834 -0.229720 +v -4.580100 0.780016 -0.221476 +v -4.580100 0.775237 -0.236746 +v -4.760598 0.969190 0.129058 +v -4.744404 0.982182 0.138723 +v -4.744401 1.011998 0.082145 +v -4.760598 0.996670 0.076912 +v -4.744355 1.025628 0.004086 +v -4.760598 1.009386 0.004086 +v -4.744401 1.011998 -0.073971 +v -4.760598 0.996670 -0.068739 +v -4.744404 0.982182 -0.130550 +v -4.760598 0.969190 -0.120886 +v -4.744139 0.926625 -0.185142 +v -4.760598 0.918163 -0.171026 +v -4.744404 0.608389 -0.130550 +v -4.760598 0.621382 -0.120886 +v -4.744401 0.578573 -0.073971 +v -4.760598 0.593902 -0.068739 +v -4.744355 0.564943 0.004086 +v -4.760598 0.581186 0.004086 +v -4.744401 0.578573 0.082145 +v -4.760598 0.593902 0.076912 +v -4.744404 0.608389 0.138723 +v -4.760598 0.621382 0.129058 +v -4.744139 0.926625 0.193315 +v -4.760598 0.918163 0.179198 +v -4.510172 0.795286 0.276185 +v -4.510336 0.779834 0.271250 +v -4.496435 0.780016 0.279608 +v -4.496435 0.795286 0.301154 +v -4.496435 0.810555 0.279608 +v -4.510336 0.810738 0.271250 +v -4.596100 0.926625 0.193315 +v -4.580100 0.911356 0.198095 +v -4.566311 0.931320 0.200079 +v -4.566197 0.988843 0.143678 +v -4.596294 0.982182 0.138723 +v -4.566194 1.019857 0.084826 +v -4.596297 1.011998 0.082145 +v -4.566155 1.033955 0.004086 +v -4.596343 1.025628 0.004086 +v -4.566194 1.019857 -0.076654 +v -4.596297 1.011998 -0.073971 +v -4.566197 0.988843 -0.135505 +v -4.596294 0.982182 -0.130550 +v -4.566311 0.931320 -0.191906 +v -4.580100 0.911356 -0.189922 +v -4.596100 0.926625 -0.185142 +v -4.510172 0.795286 -0.268012 +v -4.510336 0.810738 -0.263078 +v -4.496435 0.810555 -0.271435 +v -4.496435 0.795286 -0.292981 +v -4.496435 0.780016 -0.271435 +v -4.510336 0.779834 -0.263078 +v -4.566197 0.601729 -0.135505 +v -4.596294 0.608389 -0.130550 +v -4.566194 0.570715 -0.076654 +v -4.596297 0.578573 -0.073971 +v -4.566155 0.556617 0.004086 +v -4.596343 0.564943 0.004086 +v -4.566194 0.570715 0.084826 +v -4.596297 0.578573 0.082145 +v -4.566197 0.601729 0.143678 +v -4.596294 0.608389 0.138723 +v -4.496435 0.963574 0.248474 +v -4.510574 0.950780 0.227132 +v -4.510574 0.639791 0.227132 +v -4.496435 0.626998 0.248474 +v -4.510337 0.574513 0.162970 +v -4.496435 0.554860 0.177590 +v -4.510379 1.067260 0.004086 +v -4.496435 1.091830 0.004086 +v -4.496435 1.074330 -0.096134 +v -4.510342 1.051144 -0.088219 +v -4.510342 1.051144 0.096393 +v -4.496435 1.074330 0.104306 +v -4.510337 1.016058 0.162970 +v -4.496435 1.035711 0.177590 +v -4.496435 0.626998 -0.240301 +v -4.510574 0.639791 -0.218959 +v -4.510574 0.950780 -0.218959 +v -4.496435 0.963574 -0.240301 +v -4.510337 1.016058 -0.154798 +v -4.496435 1.035711 -0.169417 +v -4.510379 0.523311 0.004086 +v -4.496435 0.498742 0.004086 +v -4.496435 0.516242 0.104306 +v -4.510342 0.539427 0.096393 +v -4.510342 0.539427 -0.088219 +v -4.496435 0.516242 -0.096134 +v -4.510337 0.574513 -0.154798 +v -4.496435 0.554860 -0.169417 +v -3.126779 0.512178 0.226564 +v -3.138478 0.485047 0.231710 +v -3.138478 0.485047 -0.223537 +v -3.126779 0.512178 -0.218391 +v -3.126779 0.565494 -0.397576 +v -3.137842 0.557313 -0.408353 +v -3.136215 0.565235 -0.423846 +v -3.136991 0.582048 -0.424782 +v -3.126779 0.587354 -0.412465 +v -3.126779 0.582251 -0.396465 +v -3.126779 1.003218 -0.412465 +v -3.136991 1.008523 -0.424782 +v -3.136215 1.025336 -0.423846 +v -3.137842 1.033259 -0.408353 +v -3.126779 1.025077 -0.397576 +v -3.126779 1.008320 -0.396465 +v -3.282551 0.470351 -0.600346 +v -3.291987 0.457364 -0.594273 +v -3.300834 0.455386 -0.611727 +v -3.291987 0.480233 -0.627727 +v -3.291987 0.480233 -0.611727 +v -3.281775 0.488170 -0.599410 +v -3.138478 1.105524 -0.223537 +v -3.126779 1.078393 -0.218391 +v -3.282551 1.120221 -0.600346 +v -3.281775 1.102402 -0.599410 +v -3.291987 1.110339 -0.611727 +v -3.291987 1.110339 -0.627727 +v -3.300834 1.135186 -0.611727 +v -3.291987 1.133207 -0.594273 +v -3.138478 1.105524 0.231710 +v -3.126779 1.078393 0.226564 +v -3.126779 1.025077 0.405750 +v -3.137842 1.033259 0.416526 +v -3.136215 1.025336 0.432019 +v -3.136991 1.008523 0.432955 +v -3.126779 1.003218 0.420638 +v -3.126779 1.008320 0.404638 +v -3.126779 0.587354 0.420638 +v -3.136991 0.582048 0.432955 +v -3.136215 0.565235 0.432019 +v -3.137842 0.557313 0.416526 +v -3.126779 0.565494 0.405750 +v -3.126779 0.582251 0.404638 +v -3.282551 1.120221 0.608519 +v -3.291987 1.133207 0.602446 +v -3.300834 1.135186 0.619901 +v -3.291987 1.110339 0.635901 +v -3.291987 1.110339 0.619901 +v -3.281775 1.102402 0.607583 +v -3.282551 0.470351 0.608519 +v -3.281775 0.488170 0.607583 +v -3.291987 0.480233 0.619901 +v -3.291987 0.480233 0.635901 +v -3.300834 0.455386 0.619901 +v -3.291987 0.457364 0.602446 +v -3.704692 1.577863 -0.192715 +v -3.704692 1.561863 -0.208715 +v -3.962898 1.561863 -0.208715 +v -3.962898 1.577863 -0.192715 +v -3.704692 1.561863 0.216889 +v -3.704692 1.577863 0.200889 +v -3.962898 1.577863 0.200889 +v -3.962898 1.561863 0.216889 +v -3.720692 1.336210 0.216889 +v -3.720692 1.336210 0.200889 +v -3.704692 1.336210 0.200889 +v -3.704692 1.320210 0.200889 +v -3.704692 1.320210 0.216889 +v -3.688692 1.336210 0.216889 +v -3.704692 1.352210 0.216889 +v -3.946898 1.336210 0.216889 +v -3.962898 1.352210 0.216889 +v -3.978898 1.336210 0.216889 +v -3.962898 1.320210 0.216889 +v -3.962898 1.320210 0.200889 +v -3.962898 1.336210 0.200889 +v -3.946898 1.336210 0.200889 +v -3.720692 1.336210 -0.208715 +v -3.704692 1.352210 -0.208715 +v -3.688692 1.336210 -0.208715 +v -3.704692 1.320210 -0.208715 +v -3.704692 1.320210 -0.192715 +v -3.704692 1.336210 -0.192715 +v -3.720692 1.336210 -0.192715 +v -3.946898 1.336210 -0.208715 +v -3.946898 1.336210 -0.192715 +v -3.962898 1.336210 -0.192715 +v -3.962898 1.320210 -0.192715 +v -3.962898 1.320210 -0.208715 +v -3.978898 1.336210 -0.208715 +v -3.962898 1.352210 -0.208715 +v -3.426157 1.577863 0.216889 +v -3.426157 1.561863 0.216889 +v -3.410157 1.561863 0.216889 +v -3.410157 1.561863 0.200889 +v -3.410157 1.577863 0.200889 +v -3.426157 1.577863 0.200889 +v -3.410157 1.577863 -0.192715 +v -3.410157 1.561863 -0.192715 +v -3.410157 1.561863 -0.208715 +v -3.426157 1.561863 -0.208715 +v -3.426157 1.577863 -0.208715 +v -3.426157 1.577863 -0.192715 +v -3.426157 1.336210 0.216889 +v -3.410157 1.336210 0.200889 +v -3.410157 1.336210 -0.192715 +v -3.426157 1.336210 -0.208715 +v -4.340398 1.577863 0.216889 +v -4.340398 1.577863 0.200889 +v -4.356398 1.577863 0.200889 +v -4.356398 1.561863 0.200889 +v -4.356398 1.561863 0.216889 +v -4.340398 1.561863 0.216889 +v -4.340398 1.577863 -0.208715 +v -4.340398 1.561863 -0.208715 +v -4.356398 1.561863 -0.208715 +v -4.356398 1.561863 -0.192715 +v -4.356398 1.577863 -0.192715 +v -4.340398 1.577863 -0.192715 +v -4.340398 1.336210 -0.208715 +v -4.356398 1.336210 -0.192715 +v -4.356398 1.336210 0.200889 +v -4.340398 1.336210 0.216889 +v -3.410157 1.288929 -0.208715 +v -3.410157 1.288929 -0.192715 +v -3.410157 1.272929 -0.192715 +v -3.394157 1.272929 -0.224715 +v -3.426157 1.272929 -0.208715 +v -3.426157 1.288929 -0.208715 +v -3.704692 1.288929 -0.208715 +v -3.688692 1.288929 -0.208715 +v -3.688692 1.272929 -0.208715 +v -3.720692 1.272929 -0.224715 +v -3.704692 1.272929 -0.192715 +v -3.704692 1.288929 -0.192715 +v -3.704692 1.288929 0.216889 +v -3.704692 1.288929 0.200889 +v -3.704692 1.272929 0.200889 +v -3.720692 1.272929 0.232889 +v -3.688692 1.272929 0.216889 +v -3.688692 1.288929 0.216889 +v -3.410157 1.288929 0.216889 +v -3.426157 1.288929 0.216889 +v -3.426157 1.272929 0.216889 +v -3.394157 1.272929 0.232889 +v -3.410157 1.272929 0.200889 +v -3.410157 1.288929 0.200889 +v -3.962898 1.288929 -0.208715 +v -3.962898 1.288929 -0.192715 +v -3.962898 1.272929 -0.192715 +v -3.946898 1.272929 -0.224715 +v -3.978898 1.272929 -0.208715 +v -3.978898 1.288929 -0.208715 +v -4.356398 1.288929 -0.208715 +v -4.340398 1.288929 -0.208715 +v -4.340398 1.272929 -0.208715 +v -4.372398 1.272929 -0.224715 +v -4.356398 1.272929 -0.192715 +v -4.356398 1.288929 -0.192715 +v -4.356398 1.288929 0.216889 +v -4.356398 1.288929 0.200889 +v -4.356398 1.272929 0.200889 +v -4.372398 1.272929 0.232889 +v -4.340398 1.272929 0.216889 +v -4.340398 1.288929 0.216889 +v -3.962898 1.288929 0.216889 +v -3.978898 1.288929 0.216889 +v -3.978898 1.272929 0.216889 +v -3.946898 1.272929 0.232889 +v -3.962898 1.272929 0.200889 +v -3.962898 1.288929 0.200889 +v -4.311192 1.152882 -0.913264 +v -4.322404 1.141323 -0.913264 +v -4.336040 1.144035 -0.913264 +v -4.336040 1.144035 -0.900752 +v -4.327192 1.152882 -0.897264 +v -4.311192 1.152882 -0.897264 +v -3.865405 1.152882 -0.913264 +v -3.865405 1.152882 -0.897264 +v -3.849405 1.152882 -0.897264 +v -3.840558 1.144035 -0.900752 +v -3.840558 1.144035 -0.913264 +v -3.854193 1.141323 -0.913264 +v -4.353735 0.480233 -0.913264 +v -4.342176 0.469021 -0.913264 +v -4.344889 0.455386 -0.913264 +v -4.344889 0.455386 -0.900753 +v -4.353735 0.464233 -0.897264 +v -4.353735 0.480233 -0.897264 +v -4.353735 1.110339 -0.913264 +v -4.353735 1.110339 -0.897264 +v -4.353735 1.126339 -0.897264 +v -4.344889 1.135186 -0.900752 +v -4.344889 1.135186 -0.913264 +v -4.342176 1.121551 -0.913264 +v -3.891949 1.126339 -0.913264 +v -3.871161 1.137898 -0.913264 +v -3.867102 1.117492 -0.913264 +v -3.867102 1.117492 -0.925775 +v -3.875949 1.126339 -0.929264 +v -3.891949 1.126339 -0.929264 +v -4.284648 1.126339 -0.913264 +v -4.284648 1.126339 -0.929264 +v -4.300648 1.126339 -0.929264 +v -4.309495 1.117492 -0.925775 +v -4.309495 1.117492 -0.913264 +v -4.305436 1.137898 -0.913264 +v -3.849405 0.506776 -0.913264 +v -3.837846 0.485988 -0.913264 +v -3.858252 0.481930 -0.913264 +v -3.858252 0.481930 -0.925775 +v -3.849405 0.490776 -0.929264 +v -3.849405 0.506776 -0.929264 +v -3.849405 1.083795 -0.913264 +v -3.849405 1.083795 -0.929264 +v -3.849405 1.099795 -0.929264 +v -3.858252 1.108642 -0.925775 +v -3.858252 1.108642 -0.913264 +v -3.837846 1.104583 -0.913264 +v -3.891949 1.126339 -1.425026 +v -3.891949 1.126339 -1.409027 +v -3.875949 1.126339 -1.409027 +v -3.867102 1.117492 -1.412515 +v -3.867102 1.117492 -1.425026 +v -3.882576 1.110339 -1.425026 +v -4.284648 1.126339 -1.425026 +v -4.294021 1.110339 -1.425026 +v -4.309495 1.117492 -1.425026 +v -4.309495 1.117492 -1.412515 +v -4.300648 1.126339 -1.409027 +v -4.284648 1.126339 -1.409027 +v -3.849405 0.506776 -1.425026 +v -3.849405 0.506776 -1.409027 +v -3.849405 0.490776 -1.409027 +v -3.858252 0.481930 -1.412515 +v -3.858252 0.481930 -1.425026 +v -3.865405 0.497404 -1.425026 +v -3.849405 1.083795 -1.425026 +v -3.865405 1.093168 -1.425026 +v -3.858252 1.108642 -1.425026 +v -3.858252 1.108642 -1.412515 +v -3.849405 1.099795 -1.409027 +v -3.849405 1.083795 -1.409027 +v -3.918662 0.576034 -1.425026 +v -3.902662 0.553406 -1.425026 +v -3.927510 0.551186 -1.425026 +v -3.932930 0.556606 -1.435129 +v -3.925348 0.567023 -1.437772 +v -3.926095 0.585591 -1.439195 +v -3.918662 1.014538 -1.425026 +v -3.926095 1.004980 -1.439195 +v -3.925348 1.023548 -1.437772 +v -3.932930 1.033965 -1.435129 +v -3.927510 1.039385 -1.425026 +v -3.902662 1.037165 -1.425026 +v -3.961206 1.057082 -1.425026 +v -3.938579 1.073082 -1.425026 +v -3.936359 1.048234 -1.425026 +v -3.941779 1.042814 -1.435129 +v -3.952196 1.050395 -1.437772 +v -3.970764 1.049649 -1.439195 +v -4.215391 1.057082 -1.425026 +v -4.205833 1.049649 -1.439195 +v -4.224401 1.050395 -1.437772 +v -4.234818 1.042814 -1.435129 +v -4.240238 1.048234 -1.425026 +v -4.238019 1.073082 -1.425026 +v -4.023860 0.997151 -1.539271 +v -4.017877 1.004584 -1.525102 +v -4.000871 1.003838 -1.526526 +v -3.992491 0.993266 -1.528569 +v -3.998106 0.987397 -1.539271 +v -4.014488 0.981151 -1.539271 +v -4.152737 0.997151 -1.539271 +v -4.162109 0.981151 -1.539271 +v -4.178491 0.987397 -1.539271 +v -4.184106 0.993266 -1.528569 +v -4.175726 1.003838 -1.526526 +v -4.158720 1.004584 -1.525102 +v -3.978593 0.638688 -1.539271 +v -3.971160 0.632705 -1.525102 +v -3.971906 0.615698 -1.526526 +v -3.982478 0.607319 -1.528569 +v -3.988347 0.612933 -1.539271 +v -3.994593 0.629315 -1.539271 +v -3.978593 0.951883 -1.539271 +v -3.994593 0.961256 -1.539271 +v -3.988347 0.977638 -1.539271 +v -3.982478 0.983253 -1.528569 +v -3.971906 0.974874 -1.526526 +v -3.971160 0.957867 -1.525102 +v -3.831708 1.135186 -0.913264 +v -3.831708 1.135186 -0.900752 +v -3.822861 1.126339 -0.897264 +v -3.814014 1.135186 -0.900753 +v -3.814014 1.135186 -0.913264 +v -3.814014 1.117492 -0.913264 +v -3.831708 1.117492 -0.913264 +v -3.840558 1.144035 -0.611727 +v -3.840558 1.144035 -0.624239 +v -3.849405 1.152882 -0.627727 +v -3.865405 1.152882 -0.611727 +v -3.849405 1.159142 -0.597002 +v -3.833405 1.152882 -0.611727 +v -3.836894 1.147700 -0.611727 +v -3.831708 1.135186 -0.611727 +v -3.822861 1.135186 -0.611727 +v -3.814014 1.135186 -0.611727 +v -3.814014 1.135186 -0.624239 +v -3.822861 1.126339 -0.627727 +v -3.831708 1.135186 -0.624239 +v -4.344889 1.135186 -0.611727 +v -4.344889 1.135186 -0.624239 +v -4.353735 1.126339 -0.627727 +v -4.354403 1.109918 -0.608927 +v -4.360543 1.131641 -0.598254 +v -4.350720 1.140009 -0.601572 +v -4.336040 1.144035 -0.611727 +v -4.340906 1.147896 -0.600691 +v -4.333938 1.158558 -0.598375 +v -4.310895 1.153617 -0.608124 +v -4.327192 1.152882 -0.627727 +v -4.336040 1.144035 -0.624239 +v -4.318345 1.108642 -0.913264 +v -4.318345 1.108642 -0.925775 +v -4.327192 1.099795 -0.929264 +v -4.327192 1.083795 -0.929264 +v -4.327192 1.083795 -0.913264 +v -4.338751 1.104583 -0.913264 +v -4.318345 1.108642 -1.425026 +v -4.311192 1.093168 -1.425026 +v -4.327192 1.083795 -1.425026 +v -4.327192 1.083795 -1.409027 +v -4.327192 1.099795 -1.409027 +v -4.318345 1.108642 -1.412515 +v -4.249087 1.039385 -1.425026 +v -4.243668 1.033965 -1.435129 +v -4.251249 1.023548 -1.437772 +v -4.250502 1.004980 -1.439195 +v -4.257935 1.014538 -1.425026 +v -4.273935 1.037165 -1.425026 +v -4.188250 0.977638 -1.539271 +v -4.182004 0.961256 -1.539271 +v -4.198004 0.951883 -1.539271 +v -4.205437 0.957867 -1.525102 +v -4.204690 0.974874 -1.526526 +v -4.194118 0.983253 -1.528569 +v -3.469997 1.003838 -1.526526 +v -3.461618 0.993266 -1.528569 +v -3.467232 0.987397 -1.539271 +v -3.483614 0.981151 -1.539271 +v -3.492986 0.997151 -1.539271 +v -3.487003 1.004584 -1.525102 +v -3.421322 1.050395 -1.437772 +v -3.439890 1.049649 -1.439195 +v -3.430332 1.057082 -1.425026 +v -3.407705 1.073082 -1.425026 +v -3.405485 1.048234 -1.425026 +v -3.410905 1.042814 -1.435129 +v -3.394475 1.023548 -1.437772 +v -3.402056 1.033965 -1.435129 +v -3.396635 1.039385 -1.425026 +v -3.371789 1.037165 -1.425026 +v -3.387789 1.014538 -1.425026 +v -3.395221 1.004980 -1.439195 +v -3.441033 0.974874 -1.526526 +v -3.440285 0.957867 -1.525102 +v -3.447718 0.951883 -1.539271 +v -3.463718 0.961256 -1.539271 +v -3.457474 0.977638 -1.539271 +v -3.451604 0.983253 -1.528569 +v -3.345074 1.126339 -1.409027 +v -3.336228 1.117492 -1.412515 +v -3.336228 1.117492 -1.425026 +v -3.351702 1.110339 -1.425026 +v -3.361074 1.126339 -1.425026 +v -3.361074 1.126339 -1.409027 +v -3.345074 1.126339 -0.929264 +v -3.361074 1.126339 -0.929264 +v -3.361074 1.126339 -0.913264 +v -3.340286 1.137898 -0.913264 +v -3.336228 1.117492 -0.913264 +v -3.336228 1.117492 -0.925776 +v -3.318531 1.099795 -0.929264 +v -3.327378 1.108642 -0.925776 +v -3.327378 1.108642 -0.913264 +v -3.306972 1.104583 -0.913264 +v -3.318531 1.083795 -0.913264 +v -3.318531 1.083795 -0.929264 +v -3.318531 1.099795 -1.409027 +v -3.318531 1.083795 -1.409027 +v -3.318531 1.083795 -1.425026 +v -3.334531 1.093168 -1.425026 +v -3.327378 1.108642 -1.425026 +v -3.327378 1.108642 -1.412515 +v -3.318531 1.152882 -0.897264 +v -3.309684 1.144035 -0.900753 +v -3.309684 1.144035 -0.913264 +v -3.323319 1.141323 -0.913264 +v -3.334531 1.152882 -0.913264 +v -3.334531 1.152882 -0.897264 +v -3.334859 1.152882 -0.611727 +v -3.309943 1.143966 -0.609911 +v -3.291987 1.126339 -0.897264 +v -3.291987 1.110339 -0.897264 +v -3.303547 1.121551 -0.913264 +v -3.300834 1.135186 -0.913264 +v -3.300834 1.135186 -0.900753 +v -3.673816 0.974874 -1.526526 +v -3.663245 0.983253 -1.528569 +v -3.657375 0.977638 -1.539271 +v -3.651130 0.961256 -1.539271 +v -3.667130 0.951883 -1.539271 +v -3.674563 0.957867 -1.525102 +v -3.720374 1.023548 -1.437772 +v -3.719628 1.004980 -1.439195 +v -3.727060 1.014538 -1.425026 +v -3.743060 1.037165 -1.425026 +v -3.718214 1.039385 -1.425026 +v -3.712794 1.033965 -1.435129 +v -3.693527 1.050395 -1.437772 +v -3.703944 1.042814 -1.435129 +v -3.709363 1.048234 -1.425026 +v -3.707144 1.073082 -1.425026 +v -3.684517 1.057082 -1.425026 +v -3.674959 1.049649 -1.439195 +v -3.644852 1.003838 -1.526526 +v -3.627846 1.004584 -1.525102 +v -3.621862 0.997151 -1.539271 +v -3.631235 0.981151 -1.539271 +v -3.647618 0.987397 -1.539271 +v -3.653231 0.993266 -1.528569 +v -3.796318 1.099795 -1.409027 +v -3.787470 1.108642 -1.412515 +v -3.787470 1.108642 -1.425026 +v -3.780318 1.093168 -1.425026 +v -3.796318 1.083795 -1.425026 +v -3.796318 1.083795 -1.409027 +v -3.796318 1.099795 -0.929264 +v -3.796318 1.083795 -0.929264 +v -3.796318 1.083795 -0.913264 +v -3.807877 1.104583 -0.913264 +v -3.787470 1.108642 -0.913264 +v -3.787470 1.108642 -0.925776 +v -3.769773 1.126339 -0.929264 +v -3.778621 1.117492 -0.925776 +v -3.778621 1.117492 -0.913264 +v -3.774562 1.137898 -0.913264 +v -3.753773 1.126339 -0.913264 +v -3.753773 1.126339 -0.929264 +v -3.769773 1.126339 -1.409027 +v -3.753773 1.126339 -1.409027 +v -3.753773 1.126339 -1.425026 +v -3.763146 1.110339 -1.425026 +v -3.778621 1.117492 -1.425026 +v -3.778621 1.117492 -1.412515 +v -3.796318 1.152882 -0.627727 +v -3.805165 1.144035 -0.624239 +v -3.805165 1.144035 -0.611727 +v -3.808830 1.147700 -0.611727 +v -3.812318 1.152882 -0.611727 +v -3.796318 1.159142 -0.597002 +v -3.780318 1.152882 -0.611727 +v -3.796318 1.152882 -0.897264 +v -3.780318 1.152882 -0.897264 +v -3.780318 1.152882 -0.913264 +v -3.791529 1.141323 -0.913264 +v -3.805165 1.144035 -0.913264 +v -3.805165 1.144035 -0.900753 +v -3.667130 0.638688 -1.539271 +v -3.651130 0.629315 -1.539271 +v -3.657375 0.612933 -1.539271 +v -3.663245 0.607319 -1.528569 +v -3.673816 0.615698 -1.526526 +v -3.674563 0.632705 -1.525102 +v -3.447718 0.638688 -1.539271 +v -3.440285 0.632705 -1.525102 +v -3.441033 0.615698 -1.526526 +v -3.451604 0.607319 -1.528569 +v -3.457474 0.612933 -1.539271 +v -3.463718 0.629315 -1.539271 +v -3.727060 0.576034 -1.425026 +v -3.719628 0.585591 -1.439195 +v -3.720374 0.567023 -1.437772 +v -3.712794 0.556606 -1.435129 +v -3.718214 0.551186 -1.425026 +v -3.743060 0.553406 -1.425026 +v -3.796318 0.506776 -1.425026 +v -3.780318 0.497404 -1.425026 +v -3.787470 0.481930 -1.425026 +v -3.787470 0.481930 -1.412515 +v -3.796318 0.490776 -1.409027 +v -3.796318 0.506776 -1.409027 +v -3.796318 0.506776 -0.913264 +v -3.796318 0.506776 -0.929264 +v -3.796318 0.490776 -0.929264 +v -3.787470 0.481930 -0.925776 +v -3.787470 0.481930 -0.913264 +v -3.807877 0.485988 -0.913264 +v -3.334531 0.437689 -0.913264 +v -3.323319 0.449248 -0.913264 +v -3.309684 0.446536 -0.913264 +v -3.309684 0.446536 -0.900753 +v -3.318531 0.437689 -0.897264 +v -3.334531 0.437689 -0.897264 +v -3.780318 0.437689 -0.913264 +v -3.780318 0.437689 -0.897264 +v -3.796318 0.437689 -0.897264 +v -3.805165 0.446536 -0.900753 +v -3.805165 0.446536 -0.913264 +v -3.791529 0.449248 -0.913264 +v -3.291987 0.480233 -0.897264 +v -3.291987 0.464233 -0.897264 +v -3.300834 0.455386 -0.900753 +v -3.300834 0.455386 -0.913264 +v -3.303547 0.469021 -0.913264 +v -3.318531 0.506776 -0.913264 +v -3.306972 0.485988 -0.913264 +v -3.327378 0.481930 -0.913264 +v -3.327378 0.481930 -0.925776 +v -3.318531 0.490776 -0.929264 +v -3.318531 0.506776 -0.929264 +v -3.753773 0.464233 -0.913264 +v -3.774562 0.452674 -0.913264 +v -3.778621 0.473080 -0.913264 +v -3.778621 0.473080 -0.925776 +v -3.769773 0.464233 -0.929264 +v -3.753773 0.464233 -0.929264 +v -3.361074 0.464233 -0.913264 +v -3.361074 0.464233 -0.929264 +v -3.345074 0.464233 -0.929264 +v -3.336228 0.473080 -0.925776 +v -3.336228 0.473080 -0.913264 +v -3.340286 0.452674 -0.913264 +v -3.753773 0.464233 -1.425026 +v -3.753773 0.464233 -1.409027 +v -3.769773 0.464233 -1.409027 +v -3.778621 0.473080 -1.412515 +v -3.778621 0.473080 -1.425026 +v -3.763146 0.480233 -1.425026 +v -3.361074 0.464233 -1.425026 +v -3.351702 0.480233 -1.425026 +v -3.336228 0.473080 -1.425026 +v -3.336228 0.473080 -1.412515 +v -3.345074 0.464233 -1.409027 +v -3.361074 0.464233 -1.409027 +v -3.318531 0.506776 -1.425026 +v -3.318531 0.506776 -1.409027 +v -3.318531 0.490776 -1.409027 +v -3.327378 0.481930 -1.412515 +v -3.327378 0.481930 -1.425026 +v -3.334531 0.497404 -1.425026 +v -3.387789 0.576034 -1.425026 +v -3.371789 0.553406 -1.425026 +v -3.396635 0.551186 -1.425026 +v -3.402056 0.556606 -1.435129 +v -3.394475 0.567023 -1.437772 +v -3.395221 0.585591 -1.439195 +v -3.684517 0.533490 -1.425026 +v -3.707144 0.517490 -1.425026 +v -3.709363 0.542337 -1.425026 +v -3.703944 0.547757 -1.435129 +v -3.693527 0.540176 -1.437772 +v -3.674959 0.540922 -1.439195 +v -3.430332 0.533490 -1.425026 +v -3.439890 0.540922 -1.439195 +v -3.421322 0.540176 -1.437772 +v -3.410905 0.547757 -1.435129 +v -3.405485 0.542337 -1.425026 +v -3.407705 0.517490 -1.425026 +v -3.621862 0.593420 -1.539271 +v -3.627846 0.585987 -1.525102 +v -3.644852 0.586734 -1.526526 +v -3.653231 0.597306 -1.528569 +v -3.647618 0.603175 -1.539271 +v -3.631235 0.609420 -1.539271 +v -3.492986 0.593420 -1.539271 +v -3.483614 0.609420 -1.539271 +v -3.467232 0.603175 -1.539271 +v -3.461618 0.597306 -1.528569 +v -3.469997 0.586734 -1.526526 +v -3.487003 0.585987 -1.525102 +v -3.814014 0.455386 -0.913264 +v -3.814014 0.455386 -0.900753 +v -3.822861 0.464233 -0.897264 +v -3.831708 0.455386 -0.900753 +v -3.831708 0.455386 -0.913264 +v -3.831708 0.473080 -0.913264 +v -3.814014 0.473080 -0.913264 +v -3.805165 0.446536 -0.611727 +v -3.805165 0.446536 -0.624239 +v -3.796318 0.437689 -0.627727 +v -3.780318 0.437689 -0.611727 +v -3.796318 0.431430 -0.597002 +v -3.812318 0.437689 -0.611727 +v -3.808830 0.442871 -0.611727 +v -3.814014 0.455386 -0.611727 +v -3.822861 0.455386 -0.611727 +v -3.831708 0.455386 -0.611727 +v -3.831708 0.455386 -0.624239 +v -3.822861 0.464233 -0.627727 +v -3.814014 0.455386 -0.624239 +v -3.309943 0.446605 -0.609911 +v -3.334859 0.437689 -0.611727 +v -4.175726 0.586734 -1.526526 +v -4.184106 0.597306 -1.528569 +v -4.178491 0.603175 -1.539271 +v -4.162109 0.609420 -1.539271 +v -4.152737 0.593420 -1.539271 +v -4.158720 0.585987 -1.525102 +v -4.224401 0.540176 -1.437772 +v -4.205833 0.540922 -1.439195 +v -4.215391 0.533490 -1.425026 +v -4.238019 0.517490 -1.425026 +v -4.240238 0.542337 -1.425026 +v -4.234818 0.547757 -1.435129 +v -4.251249 0.567023 -1.437772 +v -4.243668 0.556606 -1.435129 +v -4.249087 0.551186 -1.425026 +v -4.273935 0.553406 -1.425026 +v -4.257935 0.576034 -1.425026 +v -4.250502 0.585591 -1.439195 +v -4.204690 0.615698 -1.526526 +v -4.205437 0.632705 -1.525102 +v -4.198004 0.638688 -1.539271 +v -4.182004 0.629315 -1.539271 +v -4.188250 0.612933 -1.539271 +v -4.194118 0.607319 -1.528569 +v -4.300648 0.464233 -1.409027 +v -4.309495 0.473080 -1.412515 +v -4.309495 0.473080 -1.425026 +v -4.294021 0.480233 -1.425026 +v -4.284648 0.464233 -1.425026 +v -4.284648 0.464233 -1.409027 +v -4.300648 0.464233 -0.929264 +v -4.284648 0.464233 -0.929264 +v -4.284648 0.464233 -0.913264 +v -4.305436 0.452674 -0.913264 +v -4.309495 0.473080 -0.913264 +v -4.309495 0.473080 -0.925775 +v -4.327192 0.490776 -0.929264 +v -4.318345 0.481930 -0.925775 +v -4.318345 0.481930 -0.913264 +v -4.338751 0.485988 -0.913264 +v -4.327192 0.506776 -0.913264 +v -4.327192 0.506776 -0.929264 +v -4.327192 0.490776 -1.409027 +v -4.327192 0.506776 -1.409027 +v -4.327192 0.506776 -1.425026 +v -4.311192 0.497404 -1.425026 +v -4.318345 0.481930 -1.425026 +v -4.318345 0.481930 -1.412515 +v -4.327192 0.437689 -0.897264 +v -4.336040 0.446536 -0.900753 +v -4.336040 0.446536 -0.913264 +v -4.322404 0.449248 -0.913264 +v -4.311192 0.437689 -0.913264 +v -4.311192 0.437689 -0.897264 +v -4.327192 0.437689 -0.627727 +v -4.310895 0.436955 -0.608124 +v -4.333938 0.432014 -0.598375 +v -4.340906 0.442676 -0.600691 +v -4.336040 0.446536 -0.611727 +v -4.336040 0.446536 -0.624239 +v -4.353735 0.464233 -0.627727 +v -4.344889 0.455386 -0.624239 +v -4.344889 0.455386 -0.611727 +v -4.350720 0.450562 -0.601572 +v -4.360543 0.458930 -0.598254 +v -4.354403 0.480654 -0.608927 +v -3.952196 0.540176 -1.437772 +v -3.941779 0.547757 -1.435129 +v -3.936359 0.542337 -1.425026 +v -3.938579 0.517490 -1.425026 +v -3.961206 0.533490 -1.425026 +v -3.970764 0.540922 -1.439195 +v -4.000871 0.586734 -1.526526 +v -4.017877 0.585987 -1.525102 +v -4.023860 0.593420 -1.539271 +v -4.014488 0.609420 -1.539271 +v -3.998106 0.603175 -1.539271 +v -3.992491 0.597306 -1.528569 +v -3.875949 0.464233 -0.929264 +v -3.867102 0.473080 -0.925775 +v -3.867102 0.473080 -0.913264 +v -3.871161 0.452674 -0.913264 +v -3.891949 0.464233 -0.913264 +v -3.891949 0.464233 -0.929264 +v -3.875949 0.464233 -1.409027 +v -3.891949 0.464233 -1.409027 +v -3.891949 0.464233 -1.425026 +v -3.882576 0.480233 -1.425026 +v -3.867102 0.473080 -1.425026 +v -3.867102 0.473080 -1.412515 +v -3.849405 0.437689 -0.627727 +v -3.840558 0.446536 -0.624239 +v -3.840558 0.446536 -0.611727 +v -3.836894 0.442871 -0.611727 +v -3.833405 0.437689 -0.611727 +v -3.849405 0.431430 -0.597002 +v -3.865405 0.437689 -0.611727 +v -3.849405 0.437689 -0.897264 +v -3.865405 0.437689 -0.897264 +v -3.865405 0.437689 -0.913264 +v -3.854193 0.449248 -0.913264 +v -3.840558 0.446536 -0.913264 +v -3.840558 0.446536 -0.900753 +v -4.463145 0.323318 -0.342654 +v -4.453595 0.316908 -0.325698 +v -4.469892 0.317642 -0.313302 +v -4.478738 0.329459 -0.314541 +v -4.478738 0.329459 -0.329302 +v -4.473057 0.333877 -0.341848 +v -3.309188 0.328842 -0.327021 +v -3.334859 0.317642 -0.329302 +v -3.334531 1.272929 -0.329302 +v -3.334531 1.272929 -0.308245 +v -3.309188 1.261730 -0.327021 +v -4.463145 1.267254 -0.342654 +v -4.473057 1.256694 -0.341848 +v -4.478738 1.261112 -0.329302 +v -4.478738 1.261112 -0.314541 +v -4.469892 1.272929 -0.313302 +v -4.453891 1.272929 -0.312302 +v -4.452246 1.272929 -0.329302 +v -4.489626 1.232173 -0.342776 +v -4.496435 1.220517 -0.329302 +v -4.496435 1.221474 -0.316670 +v -4.496435 1.237474 -0.313302 +v -4.487587 1.249291 -0.314541 +v -4.487587 1.249291 -0.329302 +v -4.481030 1.243796 -0.340979 +v -4.489626 0.358399 -0.342776 +v -4.481030 0.346775 -0.340979 +v -4.487587 0.341280 -0.329302 +v -4.487587 0.341280 -0.314541 +v -4.496435 0.353097 -0.313302 +v -4.496435 0.369097 -0.316670 +v -4.496435 0.370055 -0.329302 +v -3.334531 1.272929 0.316418 +v -3.334531 1.272929 0.337475 +v -3.309188 1.261730 0.335194 +v -3.309188 0.328842 0.335194 +v -3.334859 0.317642 0.337475 +v -4.469892 0.317642 0.321475 +v -4.453595 0.316908 0.333872 +v -4.463145 0.323318 0.350827 +v -4.473057 0.333877 0.350021 +v -4.478738 0.329459 0.337475 +v -4.478738 0.329459 0.322714 +v -4.496435 0.353097 0.321475 +v -4.487587 0.341280 0.322714 +v -4.487587 0.341280 0.337475 +v -4.481030 0.346775 0.349152 +v -4.489626 0.358399 0.350950 +v -4.496435 0.370055 0.337475 +v -4.496435 0.369097 0.324843 +v -4.496435 1.237474 0.321475 +v -4.496435 1.221474 0.324843 +v -4.496435 1.220517 0.337475 +v -4.489626 1.232173 0.350950 +v -4.481030 1.243796 0.349152 +v -4.487587 1.249291 0.337475 +v -4.487587 1.249291 0.322714 +v -4.469892 1.272929 0.321475 +v -4.478738 1.261112 0.322714 +v -4.478738 1.261112 0.337475 +v -4.473057 1.256694 0.350022 +v -4.463145 1.267254 0.350827 +v -4.452246 1.272929 0.337475 +v -4.453891 1.272929 0.320475 +v -4.360543 0.458930 0.606426 +v -4.350720 0.450562 0.609746 +v -4.344889 0.455386 0.619901 +v -4.344889 0.455386 0.632412 +v -4.353735 0.464233 0.635901 +v -4.354403 0.480654 0.617101 +v -4.360543 1.131641 0.606426 +v -4.354403 1.109918 0.617101 +v -4.353735 1.126339 0.635901 +v -4.344889 1.135186 0.632412 +v -4.344889 1.135186 0.619901 +v -4.350720 1.140009 0.609746 +v -4.333938 1.158558 0.606549 +v -4.340906 1.147896 0.608864 +v -4.336040 1.144035 0.619901 +v -4.336040 1.144035 0.632412 +v -4.327192 1.152882 0.635901 +v -4.310895 1.153617 0.616297 +v -3.334859 1.152882 0.619901 +v -3.309943 1.143966 0.618084 +v -3.309943 0.446605 0.618084 +v -3.334859 0.437689 0.619901 +v -4.333938 0.432014 0.606549 +v -4.310895 0.436955 0.616297 +v -4.327192 0.437689 0.635901 +v -4.336040 0.446536 0.632412 +v -4.336040 0.446536 0.619901 +v -4.340906 0.442676 0.608864 +v -3.812318 0.437689 0.619901 +v -3.796318 0.431430 0.605175 +v -3.780318 0.437689 0.619901 +v -3.796318 0.437689 0.635901 +v -3.805165 0.446536 0.632412 +v -3.805165 0.446536 0.619901 +v -3.808830 0.442871 0.619901 +v -3.833405 0.437689 0.619901 +v -3.836894 0.442871 0.619901 +v -3.840558 0.446536 0.619901 +v -3.840558 0.446536 0.632412 +v -3.849405 0.437689 0.635901 +v -3.865405 0.437689 0.619901 +v -3.849405 0.431430 0.605175 +v -3.812318 1.152882 0.619901 +v -3.808830 1.147700 0.619901 +v -3.805165 1.144035 0.619901 +v -3.805165 1.144035 0.632412 +v -3.796318 1.152882 0.635901 +v -3.780318 1.152882 0.619901 +v -3.796318 1.159142 0.605175 +v -3.833405 1.152882 0.619901 +v -3.849405 1.159142 0.605175 +v -3.865405 1.152882 0.619901 +v -3.849405 1.152882 0.635901 +v -3.840558 1.144035 0.632412 +v -3.840558 1.144035 0.619901 +v -3.836894 1.147700 0.619901 +v -4.311192 0.437689 0.921437 +v -4.322404 0.449248 0.921437 +v -4.336040 0.446536 0.921437 +v -4.336040 0.446536 0.908926 +v -4.327192 0.437689 0.905437 +v -4.311192 0.437689 0.905437 +v -3.865405 0.437689 0.921437 +v -3.865405 0.437689 0.905437 +v -3.849405 0.437689 0.905437 +v -3.840558 0.446536 0.908926 +v -3.840558 0.446536 0.921437 +v -3.854193 0.449248 0.921437 +v -4.327192 0.506776 0.921437 +v -4.338751 0.485988 0.921437 +v -4.318345 0.481930 0.921437 +v -4.318345 0.481930 0.933949 +v -4.327192 0.490776 0.937437 +v -4.327192 0.506776 0.937437 +v -4.327192 1.083795 0.921437 +v -4.327192 1.083795 0.937437 +v -4.327192 1.099795 0.937437 +v -4.318345 1.108642 0.933949 +v -4.318345 1.108642 0.921437 +v -4.338751 1.104583 0.921437 +v -3.891949 0.464233 0.921437 +v -3.871161 0.452674 0.921437 +v -3.867102 0.473080 0.921437 +v -3.867102 0.473080 0.933949 +v -3.875949 0.464233 0.937437 +v -3.891949 0.464233 0.937437 +v -4.284648 0.464233 0.921437 +v -4.284648 0.464233 0.937437 +v -4.300648 0.464233 0.937437 +v -4.309495 0.473080 0.933949 +v -4.309495 0.473080 0.921437 +v -4.305436 0.452674 0.921437 +v -3.891949 0.464233 1.433200 +v -3.891949 0.464233 1.417200 +v -3.875949 0.464233 1.417200 +v -3.867102 0.473080 1.420688 +v -3.867102 0.473080 1.433200 +v -3.882576 0.480233 1.433200 +v -4.284648 0.464233 1.433200 +v -4.294021 0.480233 1.433200 +v -4.309495 0.473080 1.433200 +v -4.309495 0.473080 1.420688 +v -4.300648 0.464233 1.417200 +v -4.284648 0.464233 1.417200 +v -4.327192 0.506776 1.433200 +v -4.327192 0.506776 1.417200 +v -4.327192 0.490776 1.417200 +v -4.318345 0.481930 1.420688 +v -4.318345 0.481930 1.433200 +v -4.311192 0.497404 1.433200 +v -4.327192 1.083795 1.433200 +v -4.311192 1.093168 1.433200 +v -4.318345 1.108642 1.433200 +v -4.318345 1.108642 1.420688 +v -4.327192 1.099795 1.417200 +v -4.327192 1.083795 1.417200 +v -4.257935 0.576034 1.433200 +v -4.273935 0.553406 1.433200 +v -4.249087 0.551186 1.433200 +v -4.243668 0.556606 1.443302 +v -4.251249 0.567023 1.445945 +v -4.250502 0.585591 1.447369 +v -4.257935 1.014538 1.433200 +v -4.250502 1.004980 1.447369 +v -4.251249 1.023548 1.445945 +v -4.243668 1.033965 1.443302 +v -4.249087 1.039385 1.433200 +v -4.273935 1.037165 1.433200 +v -3.961206 0.533490 1.433200 +v -3.938579 0.517490 1.433200 +v -3.936359 0.542337 1.433200 +v -3.941779 0.547757 1.443302 +v -3.952196 0.540176 1.445945 +v -3.970764 0.540922 1.447369 +v -4.215391 0.533490 1.433200 +v -4.205833 0.540922 1.447369 +v -4.224401 0.540176 1.445945 +v -4.234818 0.547757 1.443302 +v -4.240238 0.542337 1.433200 +v -4.238019 0.517490 1.433200 +v -4.198004 0.638688 1.547444 +v -4.205437 0.632705 1.533275 +v -4.204690 0.615698 1.534698 +v -4.194118 0.607319 1.536742 +v -4.188250 0.612933 1.547444 +v -4.182004 0.629315 1.547444 +v -4.198004 0.951883 1.547444 +v -4.182004 0.961256 1.547444 +v -4.188250 0.977638 1.547444 +v -4.194118 0.983253 1.536742 +v -4.204690 0.974874 1.534698 +v -4.205437 0.957867 1.533275 +v -4.023860 0.593420 1.547444 +v -4.017877 0.585987 1.533275 +v -4.000871 0.586734 1.534698 +v -3.992491 0.597306 1.536742 +v -3.998106 0.603175 1.547444 +v -4.014488 0.609420 1.547444 +v -4.152737 0.593420 1.547444 +v -4.162109 0.609420 1.547444 +v -4.178491 0.603175 1.547444 +v -4.184106 0.597306 1.536742 +v -4.175726 0.586734 1.534698 +v -4.158720 0.585987 1.533275 +v -3.831708 0.455386 0.921437 +v -3.831708 0.455386 0.908926 +v -3.822861 0.464233 0.905437 +v -3.814014 0.455386 0.908926 +v -3.814014 0.455386 0.921437 +v -3.814014 0.473080 0.921437 +v -3.831708 0.473080 0.921437 +v -3.831708 0.455386 0.619901 +v -3.822861 0.455386 0.619901 +v -3.814014 0.455386 0.619901 +v -3.814014 0.455386 0.632412 +v -3.822861 0.464233 0.635901 +v -3.831708 0.455386 0.632412 +v -3.858252 0.481930 0.921437 +v -3.837846 0.485988 0.921437 +v -3.849405 0.506776 0.921437 +v -3.849405 0.506776 0.937437 +v -3.849405 0.490776 0.937437 +v -3.858252 0.481930 0.933949 +v -3.858252 0.481930 1.433200 +v -3.858252 0.481930 1.420688 +v -3.849405 0.490776 1.417200 +v -3.849405 0.506776 1.417200 +v -3.849405 0.506776 1.433200 +v -3.865405 0.497404 1.433200 +v -3.927510 0.551186 1.433200 +v -3.902662 0.553406 1.433200 +v -3.918662 0.576034 1.433200 +v -3.926095 0.585591 1.447369 +v -3.925348 0.567023 1.445945 +v -3.932930 0.556606 1.443302 +v -3.988347 0.612933 1.547444 +v -3.982478 0.607319 1.536742 +v -3.971906 0.615698 1.534698 +v -3.971160 0.632705 1.533275 +v -3.978593 0.638688 1.547444 +v -3.994593 0.629315 1.547444 +v -4.344889 0.455386 0.921437 +v -4.342176 0.469021 0.921437 +v -4.353735 0.480233 0.921437 +v -4.353735 0.480233 0.905437 +v -4.353735 0.464233 0.905437 +v -4.344889 0.455386 0.908926 +v -3.469997 0.586734 1.534698 +v -3.461618 0.597306 1.536742 +v -3.467232 0.603175 1.547444 +v -3.483614 0.609420 1.547444 +v -3.492986 0.593420 1.547444 +v -3.487003 0.585987 1.533275 +v -3.421322 0.540176 1.445945 +v -3.439890 0.540922 1.447369 +v -3.430332 0.533490 1.433200 +v -3.407705 0.517490 1.433200 +v -3.405485 0.542337 1.433200 +v -3.410905 0.547757 1.443302 +v -3.394475 0.567023 1.445945 +v -3.402056 0.556606 1.443302 +v -3.396635 0.551186 1.433200 +v -3.371789 0.553406 1.433200 +v -3.387789 0.576034 1.433200 +v -3.395221 0.585591 1.447369 +v -3.441033 0.615698 1.534698 +v -3.440285 0.632705 1.533275 +v -3.447718 0.638688 1.547444 +v -3.463718 0.629315 1.547444 +v -3.457474 0.612933 1.547444 +v -3.451604 0.607319 1.536742 +v -3.345074 0.464233 1.417200 +v -3.336228 0.473080 1.420688 +v -3.336228 0.473080 1.433200 +v -3.351702 0.480233 1.433200 +v -3.361074 0.464233 1.433200 +v -3.361074 0.464233 1.417200 +v -3.345074 0.464233 0.937437 +v -3.361074 0.464233 0.937437 +v -3.361074 0.464233 0.921437 +v -3.340286 0.452674 0.921437 +v -3.336228 0.473080 0.921437 +v -3.336228 0.473080 0.933949 +v -3.318531 0.490776 0.937437 +v -3.327378 0.481930 0.933949 +v -3.327378 0.481930 0.921437 +v -3.306972 0.485988 0.921437 +v -3.318531 0.506776 0.921437 +v -3.318531 0.506776 0.937437 +v -3.318531 0.490776 1.417200 +v -3.318531 0.506776 1.417200 +v -3.318531 0.506776 1.433200 +v -3.334531 0.497404 1.433200 +v -3.327378 0.481930 1.433200 +v -3.327378 0.481930 1.420688 +v -3.318531 0.437689 0.905437 +v -3.309684 0.446536 0.908926 +v -3.309684 0.446536 0.921437 +v -3.323319 0.449248 0.921437 +v -3.334531 0.437689 0.921437 +v -3.334531 0.437689 0.905437 +v -3.291987 0.464233 0.905437 +v -3.291987 0.480233 0.905437 +v -3.303547 0.469021 0.921437 +v -3.300834 0.455386 0.921437 +v -3.300834 0.455386 0.908926 +v -3.673816 0.615698 1.534698 +v -3.663245 0.607319 1.536742 +v -3.657375 0.612933 1.547444 +v -3.651130 0.629315 1.547444 +v -3.667130 0.638688 1.547444 +v -3.674563 0.632705 1.533275 +v -3.720374 0.567023 1.445945 +v -3.719628 0.585591 1.447369 +v -3.727060 0.576034 1.433200 +v -3.743060 0.553406 1.433200 +v -3.718214 0.551186 1.433200 +v -3.712794 0.556606 1.443302 +v -3.693527 0.540176 1.445945 +v -3.703944 0.547757 1.443302 +v -3.709363 0.542337 1.433200 +v -3.707144 0.517490 1.433200 +v -3.684517 0.533490 1.433200 +v -3.674959 0.540922 1.447369 +v -3.644852 0.586734 1.534698 +v -3.627846 0.585987 1.533275 +v -3.621862 0.593420 1.547444 +v -3.631235 0.609420 1.547444 +v -3.647618 0.603175 1.547444 +v -3.653231 0.597306 1.536742 +v -3.796318 0.490776 1.417200 +v -3.787470 0.481930 1.420688 +v -3.787470 0.481930 1.433200 +v -3.780318 0.497404 1.433200 +v -3.796318 0.506776 1.433200 +v -3.796318 0.506776 1.417200 +v -3.796318 0.490776 0.937437 +v -3.796318 0.506776 0.937437 +v -3.796318 0.506776 0.921437 +v -3.807877 0.485988 0.921437 +v -3.787470 0.481930 0.921437 +v -3.787470 0.481930 0.933949 +v -3.769773 0.464233 0.937437 +v -3.778621 0.473080 0.933949 +v -3.778621 0.473080 0.921437 +v -3.774562 0.452674 0.921437 +v -3.753773 0.464233 0.921437 +v -3.753773 0.464233 0.937437 +v -3.769773 0.464233 1.417200 +v -3.753773 0.464233 1.417200 +v -3.753773 0.464233 1.433200 +v -3.763146 0.480233 1.433200 +v -3.778621 0.473080 1.433200 +v -3.778621 0.473080 1.420688 +v -3.796318 0.437689 0.905437 +v -3.780318 0.437689 0.905437 +v -3.780318 0.437689 0.921437 +v -3.791529 0.449248 0.921437 +v -3.805165 0.446536 0.921437 +v -3.805165 0.446536 0.908926 +v -3.387789 1.014538 1.433200 +v -3.371789 1.037165 1.433200 +v -3.396635 1.039385 1.433200 +v -3.402056 1.033965 1.443302 +v -3.394475 1.023548 1.445945 +v -3.395221 1.004980 1.447369 +v -3.318531 1.083795 1.433200 +v -3.318531 1.083795 1.417200 +v -3.318531 1.099795 1.417200 +v -3.327378 1.108642 1.420688 +v -3.327378 1.108642 1.433200 +v -3.334531 1.093168 1.433200 +v -3.318531 1.083795 0.921437 +v -3.306972 1.104583 0.921437 +v -3.327378 1.108642 0.921437 +v -3.327378 1.108642 0.933949 +v -3.318531 1.099795 0.937437 +v -3.318531 1.083795 0.937437 +v -3.291987 1.110339 0.905437 +v -3.291987 1.126339 0.905437 +v -3.300834 1.135186 0.908926 +v -3.300834 1.135186 0.921437 +v -3.303547 1.121551 0.921437 +v -3.334531 1.152882 0.921437 +v -3.323319 1.141323 0.921437 +v -3.309684 1.144035 0.921437 +v -3.309684 1.144035 0.908926 +v -3.318531 1.152882 0.905437 +v -3.334531 1.152882 0.905437 +v -3.780318 1.152882 0.921437 +v -3.780318 1.152882 0.905437 +v -3.796318 1.152882 0.905437 +v -3.805165 1.144035 0.908926 +v -3.805165 1.144035 0.921437 +v -3.791529 1.141323 0.921437 +v -3.753773 1.126339 0.921437 +v -3.774562 1.137898 0.921437 +v -3.778621 1.117492 0.921437 +v -3.778621 1.117492 0.933949 +v -3.769773 1.126339 0.937437 +v -3.753773 1.126339 0.937437 +v -3.361074 1.126339 0.921437 +v -3.361074 1.126339 0.937437 +v -3.345074 1.126339 0.937437 +v -3.336228 1.117492 0.933949 +v -3.336228 1.117492 0.921437 +v -3.340286 1.137898 0.921437 +v -3.796318 1.083795 0.921437 +v -3.796318 1.083795 0.937437 +v -3.796318 1.099795 0.937437 +v -3.787470 1.108642 0.933949 +v -3.787470 1.108642 0.921437 +v -3.807877 1.104583 0.921437 +v -3.753773 1.126339 1.433200 +v -3.753773 1.126339 1.417200 +v -3.769773 1.126339 1.417200 +v -3.778621 1.117492 1.420688 +v -3.778621 1.117492 1.433200 +v -3.763146 1.110339 1.433200 +v -3.361074 1.126339 1.433200 +v -3.351702 1.110339 1.433200 +v -3.336228 1.117492 1.433200 +v -3.336228 1.117492 1.420688 +v -3.345074 1.126339 1.417200 +v -3.361074 1.126339 1.417200 +v -3.796318 1.083795 1.433200 +v -3.780318 1.093168 1.433200 +v -3.787470 1.108642 1.433200 +v -3.787470 1.108642 1.420688 +v -3.796318 1.099795 1.417200 +v -3.796318 1.083795 1.417200 +v -3.727060 1.014538 1.433200 +v -3.719628 1.004980 1.447369 +v -3.720374 1.023548 1.445945 +v -3.712794 1.033965 1.443302 +v -3.718214 1.039385 1.433200 +v -3.743060 1.037165 1.433200 +v -3.684517 1.057082 1.433200 +v -3.707144 1.073082 1.433200 +v -3.709363 1.048234 1.433200 +v -3.703944 1.042814 1.443302 +v -3.693527 1.050395 1.445945 +v -3.674959 1.049649 1.447369 +v -3.430332 1.057082 1.433200 +v -3.439890 1.049649 1.447369 +v -3.421322 1.050395 1.445945 +v -3.410905 1.042814 1.443302 +v -3.405485 1.048234 1.433200 +v -3.407705 1.073082 1.433200 +v -3.447718 0.951883 1.547444 +v -3.440285 0.957867 1.533275 +v -3.441033 0.974874 1.534698 +v -3.451604 0.983253 1.536742 +v -3.457474 0.977638 1.547444 +v -3.463718 0.961256 1.547444 +v -3.621862 0.997151 1.547444 +v -3.627846 1.004584 1.533275 +v -3.644852 1.003838 1.534698 +v -3.653231 0.993266 1.536742 +v -3.647618 0.987397 1.547444 +v -3.631235 0.981151 1.547444 +v -3.492986 0.997151 1.547444 +v -3.483614 0.981151 1.547444 +v -3.467232 0.987397 1.547444 +v -3.461618 0.993266 1.536742 +v -3.469997 1.003838 1.534698 +v -3.487003 1.004584 1.533275 +v -3.667130 0.951883 1.547444 +v -3.651130 0.961256 1.547444 +v -3.657375 0.977638 1.547444 +v -3.663245 0.983252 1.536742 +v -3.673816 0.974874 1.534698 +v -3.674563 0.957867 1.533275 +v -3.814014 1.135186 0.921437 +v -3.814014 1.135186 0.908926 +v -3.822861 1.126339 0.905437 +v -3.831708 1.135186 0.908926 +v -3.831708 1.135186 0.921437 +v -3.831708 1.117492 0.921437 +v -3.814014 1.117492 0.921437 +v -3.814014 1.135186 0.619901 +v -3.822861 1.135186 0.619901 +v -3.831708 1.135186 0.619901 +v -3.831708 1.135186 0.632412 +v -3.822861 1.126339 0.635901 +v -3.814014 1.135186 0.632412 +v -4.175726 1.003838 1.534698 +v -4.184106 0.993266 1.536742 +v -4.178491 0.987397 1.547444 +v -4.162109 0.981151 1.547444 +v -4.152737 0.997151 1.547444 +v -4.158720 1.004584 1.533275 +v -4.224401 1.050395 1.445945 +v -4.205833 1.049649 1.447369 +v -4.215391 1.057082 1.433200 +v -4.238019 1.073082 1.433200 +v -4.240238 1.048234 1.433200 +v -4.234818 1.042814 1.443302 +v -4.300648 1.126339 1.417200 +v -4.309495 1.117492 1.420688 +v -4.309495 1.117492 1.433200 +v -4.294021 1.110339 1.433200 +v -4.284648 1.126339 1.433200 +v -4.284648 1.126339 1.417200 +v -4.300648 1.126339 0.937437 +v -4.284648 1.126339 0.937437 +v -4.284648 1.126339 0.921437 +v -4.305436 1.137898 0.921437 +v -4.309495 1.117492 0.921437 +v -4.309495 1.117492 0.933949 +v -4.327192 1.152882 0.905437 +v -4.336040 1.144035 0.908926 +v -4.336040 1.144035 0.921437 +v -4.322404 1.141323 0.921437 +v -4.311192 1.152882 0.921437 +v -4.311192 1.152882 0.905437 +v -4.353735 1.126339 0.905437 +v -4.353735 1.110339 0.905437 +v -4.353735 1.110339 0.921437 +v -4.342176 1.121551 0.921437 +v -4.344889 1.135186 0.921437 +v -4.344889 1.135186 0.908926 +v -3.971906 0.974874 1.534698 +v -3.982478 0.983253 1.536742 +v -3.988347 0.977638 1.547444 +v -3.994593 0.961256 1.547444 +v -3.978593 0.951883 1.547444 +v -3.971160 0.957867 1.533275 +v -3.925348 1.023548 1.445945 +v -3.926095 1.004980 1.447369 +v -3.918662 1.014538 1.433200 +v -3.902662 1.037165 1.433200 +v -3.927510 1.039385 1.433200 +v -3.932930 1.033965 1.443302 +v -3.952196 1.050395 1.445945 +v -3.941779 1.042814 1.443302 +v -3.936359 1.048234 1.433200 +v -3.938579 1.073082 1.433200 +v -3.961206 1.057082 1.433200 +v -3.970764 1.049649 1.447369 +v -4.000871 1.003838 1.534698 +v -4.017877 1.004584 1.533275 +v -4.023860 0.997151 1.547444 +v -4.014488 0.981151 1.547444 +v -3.998106 0.987397 1.547444 +v -3.992491 0.993266 1.536742 +v -3.849405 1.099795 1.417200 +v -3.858252 1.108642 1.420688 +v -3.858252 1.108642 1.433200 +v -3.865405 1.093168 1.433200 +v -3.849405 1.083795 1.433200 +v -3.849405 1.083795 1.417200 +v -3.849405 1.099795 0.937437 +v -3.849405 1.083795 0.937437 +v -3.849405 1.083795 0.921437 +v -3.837846 1.104583 0.921437 +v -3.858252 1.108642 0.921437 +v -3.858252 1.108642 0.933949 +v -3.875949 1.126339 0.937437 +v -3.867102 1.117492 0.933949 +v -3.867102 1.117492 0.921437 +v -3.871161 1.137898 0.921437 +v -3.891949 1.126339 0.921437 +v -3.891949 1.126339 0.937437 +v -3.875949 1.126339 1.417200 +v -3.891949 1.126339 1.417200 +v -3.891949 1.126339 1.433200 +v -3.882576 1.110339 1.433200 +v -3.867102 1.117492 1.433200 +v -3.867102 1.117492 1.420688 +v -3.849405 1.152882 0.905437 +v -3.865405 1.152882 0.905437 +v -3.865405 1.152882 0.921437 +v -3.854193 1.141323 0.921437 +v -3.840558 1.144035 0.921437 +v -3.840558 1.144035 0.908926 +v -4.214062 1.128550 1.281173 +v -4.183198 1.133186 1.355686 +v -4.108684 1.135106 1.386551 +v -4.034171 1.133186 1.355686 +v -4.003307 1.128550 1.281173 +v -4.108684 1.183624 1.168099 +v -4.183198 1.191482 1.198222 +v -4.214062 1.210450 1.270945 +v -4.183198 1.229419 1.343668 +v -4.108684 1.237277 1.373791 +v -4.034171 1.229419 1.343668 +v -4.003307 1.210450 1.270945 +v -4.034171 1.191482 1.198222 +v -4.108684 1.234379 1.147470 +v -4.183198 1.249766 1.174532 +v -4.214062 1.286911 1.239866 +v -4.183198 1.324058 1.305202 +v -4.108684 1.339444 1.332264 +v -4.034171 1.324058 1.305202 +v -4.003307 1.286911 1.239866 +v -4.034171 1.249766 1.174532 +v -4.108684 1.278064 1.114405 +v -4.183198 1.299931 1.136562 +v -4.214062 1.352722 1.190056 +v -4.183198 1.405514 1.243549 +v -4.108684 1.427382 1.265706 +v -4.034171 1.405514 1.243549 +v -4.003307 1.352722 1.190056 +v -4.034171 1.299931 1.136562 +v -4.108684 1.311702 1.071160 +v -4.183198 1.338559 1.086902 +v -4.214062 1.403398 1.124909 +v -4.183198 1.468237 1.162914 +v -4.108684 1.495094 1.178656 +v -4.034171 1.468237 1.162914 +v -4.003307 1.403398 1.124909 +v -4.034171 1.338559 1.086902 +v -4.108684 1.333002 1.020678 +v -4.183198 1.363018 1.028934 +v -4.214062 1.435483 1.048864 +v -4.183198 1.507948 1.068794 +v -4.108684 1.537964 1.077050 +v -4.034171 1.507948 1.068794 +v -4.003307 1.435483 1.048864 +v -4.034171 1.363018 1.028934 +v -4.108684 1.341432 0.959773 +v -4.183198 1.372291 0.961937 +v -4.214062 1.446791 0.967162 +v -4.183198 1.521292 0.972387 +v -4.108684 1.552151 0.974551 +v -4.034171 1.521292 0.972387 +v -4.003307 1.446791 0.967162 +v -4.034171 1.372291 0.961937 +v -4.034171 1.126339 1.206358 +v -4.183198 1.126339 1.206358 +v -4.108684 1.126339 1.175254 +v -4.003307 1.126339 1.281173 +v -4.034171 1.126339 1.355686 +v -4.108684 1.126339 1.386551 +v -4.183198 1.126339 1.355686 +v -4.214062 1.126339 1.281173 +v -4.018036 1.126339 1.245612 +v -4.199332 1.126339 1.245612 +v -4.034171 1.374158 0.364684 +v -4.003307 1.448672 0.364684 +v -4.034171 1.523186 0.364684 +v -4.108684 1.554050 0.364684 +v -4.183198 1.523186 0.364684 +v -4.214062 1.448672 0.364684 +v -4.183198 1.374158 0.364684 +v -4.108684 1.343294 0.364684 +v -4.034171 1.374158 0.216889 +v -4.003307 1.448672 0.216889 +v -4.034171 1.523186 0.216889 +v -4.108684 1.554050 0.216889 +v -4.183198 1.523186 0.216889 +v -4.214062 1.448672 0.216889 +v -4.183198 1.374158 0.216889 +v -4.108684 1.343294 0.216889 +v -4.002153 1.600482 0.216889 +v -4.002153 1.600482 0.364684 +v -4.076666 1.631347 0.364684 +v -4.076666 1.631347 0.216889 +v -3.515969 1.631347 0.216889 +v -3.515969 1.631347 0.364684 +v -3.590482 1.600482 0.364684 +v -3.590482 1.600482 0.216889 +v -3.483951 1.343294 0.216889 +v -3.409438 1.374158 0.216889 +v -3.378574 1.448672 0.216889 +v -3.409438 1.523186 0.216889 +v -3.483951 1.554050 0.216889 +v -3.558465 1.523186 0.216889 +v -3.589329 1.448672 0.216889 +v -3.558465 1.374158 0.216889 +v -3.483951 1.343294 0.364684 +v -3.409438 1.374158 0.364684 +v -3.378574 1.448672 0.364684 +v -3.409438 1.523186 0.364684 +v -3.483951 1.554050 0.364684 +v -3.558465 1.523186 0.364684 +v -3.589329 1.448672 0.364684 +v -3.558465 1.374158 0.364684 +v -3.393303 1.126339 1.245612 +v -3.574599 1.126339 1.245612 +v -3.378574 1.126339 1.281173 +v -3.409438 1.126339 1.355686 +v -3.483951 1.126339 1.386551 +v -3.558465 1.126339 1.355686 +v -3.589329 1.126339 1.281173 +v -3.483951 1.126339 1.175254 +v -3.409438 1.126339 1.206358 +v -3.558465 1.126339 1.206358 +v -3.558465 1.372291 0.961937 +v -3.589329 1.446791 0.967162 +v -3.558465 1.521292 0.972387 +v -3.483951 1.552151 0.974551 +v -3.409438 1.521292 0.972387 +v -3.378574 1.446791 0.967162 +v -3.409438 1.372291 0.961937 +v -3.483951 1.341432 0.959773 +v -3.558465 1.363018 1.028934 +v -3.589329 1.435483 1.048864 +v -3.558465 1.507948 1.068794 +v -3.483951 1.537964 1.077050 +v -3.409438 1.507948 1.068794 +v -3.378574 1.435483 1.048864 +v -3.409438 1.363018 1.028934 +v -3.483951 1.333002 1.020678 +v -3.558465 1.338559 1.086902 +v -3.589329 1.403398 1.124909 +v -3.558465 1.468237 1.162914 +v -3.483951 1.495094 1.178656 +v -3.409438 1.468237 1.162914 +v -3.378574 1.403398 1.124909 +v -3.409438 1.338559 1.086902 +v -3.483951 1.311702 1.071160 +v -3.558465 1.299931 1.136562 +v -3.589329 1.352722 1.190056 +v -3.558465 1.405514 1.243549 +v -3.483951 1.427382 1.265706 +v -3.409438 1.405514 1.243549 +v -3.378574 1.352722 1.190056 +v -3.409438 1.299931 1.136562 +v -3.483951 1.278064 1.114405 +v -3.558465 1.249766 1.174532 +v -3.589329 1.286911 1.239866 +v -3.558465 1.324058 1.305202 +v -3.483951 1.339444 1.332264 +v -3.409438 1.324058 1.305202 +v -3.378574 1.286911 1.239866 +v -3.409438 1.249766 1.174532 +v -3.483951 1.234379 1.147470 +v -3.558465 1.191482 1.198222 +v -3.589329 1.210450 1.270945 +v -3.558465 1.229419 1.343668 +v -3.483951 1.237277 1.373791 +v -3.409438 1.229419 1.343668 +v -3.378574 1.210450 1.270945 +v -3.409438 1.191482 1.198222 +v -3.483951 1.183624 1.168099 +v -3.589329 1.128550 1.281173 +v -3.558465 1.133186 1.355686 +v -3.483951 1.135106 1.386551 +v -3.409438 1.133186 1.355686 +v -3.378574 1.128550 1.281173 +v -3.515969 1.776170 0.278045 +v -4.076666 1.776170 0.278045 +v -4.076666 1.776170 0.216889 +v -3.515969 1.776170 0.216889 +v -3.515969 1.776170 -0.194902 +v -4.076666 1.776170 -0.194902 +v -4.076666 1.776170 -0.256059 +v -3.515969 1.776170 -0.256059 +v -3.378574 1.128550 -1.259187 +v -3.409438 1.133186 -1.333701 +v -3.483951 1.135106 -1.364566 +v -3.558465 1.133186 -1.333701 +v -3.589329 1.128550 -1.259187 +v -3.483951 1.183624 -1.146114 +v -3.409438 1.191482 -1.176236 +v -3.378574 1.210450 -1.248959 +v -3.409438 1.229419 -1.321682 +v -3.483951 1.237277 -1.351806 +v -3.558465 1.229419 -1.321682 +v -3.589329 1.210450 -1.248959 +v -3.558465 1.191482 -1.176236 +v -3.483951 1.234379 -1.125483 +v -3.409438 1.249766 -1.152546 +v -3.378574 1.286911 -1.217881 +v -3.409438 1.324058 -1.283216 +v -3.483951 1.339444 -1.310278 +v -3.558465 1.324058 -1.283216 +v -3.589329 1.286911 -1.217881 +v -3.558465 1.249766 -1.152546 +v -3.483951 1.278064 -1.092419 +v -3.409438 1.299931 -1.114577 +v -3.378574 1.352722 -1.168070 +v -3.409438 1.405514 -1.221563 +v -3.483951 1.427382 -1.243721 +v -3.558465 1.405514 -1.221563 +v -3.589329 1.352722 -1.168070 +v -3.558465 1.299931 -1.114577 +v -3.483951 1.311702 -1.049174 +v -3.409438 1.338559 -1.064917 +v -3.378574 1.403398 -1.102922 +v -3.409438 1.468237 -1.140928 +v -3.483951 1.495094 -1.156670 +v -3.558465 1.468237 -1.140928 +v -3.589329 1.403398 -1.102922 +v -3.558465 1.338559 -1.064917 +v -3.483951 1.333002 -0.998692 +v -3.409438 1.363018 -1.006948 +v -3.378574 1.435483 -1.026878 +v -3.409438 1.507948 -1.046809 +v -3.483951 1.537964 -1.055064 +v -3.558465 1.507948 -1.046809 +v -3.589329 1.435483 -1.026878 +v -3.558465 1.363018 -1.006948 +v -3.483951 1.341432 -0.937787 +v -3.409438 1.372291 -0.939951 +v -3.378574 1.446791 -0.945176 +v -3.409438 1.521292 -0.950402 +v -3.483951 1.552151 -0.952566 +v -3.558465 1.521292 -0.950402 +v -3.589329 1.446791 -0.945176 +v -3.558465 1.372291 -0.939951 +v -3.558465 1.126339 -1.184372 +v -3.409438 1.126339 -1.184372 +v -3.483951 1.126339 -1.153268 +v -3.589329 1.126339 -1.259187 +v -3.558465 1.126339 -1.333701 +v -3.483951 1.126339 -1.364566 +v -3.409438 1.126339 -1.333701 +v -3.378574 1.126339 -1.259187 +v -3.574599 1.126339 -1.223626 +v -3.393303 1.126339 -1.223626 +v -3.558465 1.374158 -0.342698 +v -3.589329 1.448672 -0.342698 +v -3.558465 1.523186 -0.342698 +v -3.483951 1.554050 -0.342698 +v -3.409438 1.523186 -0.342698 +v -3.378574 1.448672 -0.342698 +v -3.409438 1.374158 -0.342698 +v -3.483951 1.343294 -0.342698 +v -3.558465 1.374158 -0.194902 +v -3.589329 1.448672 -0.194902 +v -3.558465 1.523186 -0.194902 +v -3.483951 1.554050 -0.194902 +v -3.409438 1.523186 -0.194902 +v -3.378574 1.448672 -0.194902 +v -3.409438 1.374158 -0.194902 +v -3.483951 1.343294 -0.194902 +v -3.590482 1.600482 -0.194902 +v -3.590482 1.600482 -0.342698 +v -3.515969 1.631347 -0.342698 +v -3.515969 1.631347 -0.194902 +v -4.076666 1.631347 -0.194902 +v -4.076666 1.631347 -0.342698 +v -4.002153 1.600482 -0.342698 +v -4.002153 1.600482 -0.194902 +v -4.108684 1.343294 -0.194902 +v -4.183198 1.374158 -0.194902 +v -4.214062 1.448672 -0.194902 +v -4.183198 1.523186 -0.194902 +v -4.108684 1.554050 -0.194902 +v -4.034171 1.523186 -0.194902 +v -4.003307 1.448672 -0.194902 +v -4.034171 1.374158 -0.194902 +v -4.108684 1.343294 -0.342698 +v -4.183198 1.374158 -0.342698 +v -4.214062 1.448672 -0.342698 +v -4.183198 1.523186 -0.342698 +v -4.108684 1.554050 -0.342698 +v -4.034171 1.523186 -0.342698 +v -4.003307 1.448672 -0.342698 +v -4.034171 1.374158 -0.342698 +v -4.199332 1.126339 -1.223626 +v -4.018036 1.126339 -1.223626 +v -4.214062 1.126339 -1.259187 +v -4.183198 1.126339 -1.333701 +v -4.108684 1.126339 -1.364566 +v -4.034171 1.126339 -1.333701 +v -4.003307 1.126339 -1.259187 +v -4.108684 1.126339 -1.153268 +v -4.183198 1.126339 -1.184372 +v -4.034171 1.126339 -1.184372 +v -4.034171 1.372291 -0.939951 +v -4.003307 1.446791 -0.945176 +v -4.034171 1.521292 -0.950402 +v -4.108684 1.552151 -0.952566 +v -4.183198 1.521292 -0.950402 +v -4.214062 1.446791 -0.945176 +v -4.183198 1.372291 -0.939951 +v -4.108684 1.341432 -0.937787 +v -4.034171 1.363018 -1.006948 +v -4.003307 1.435483 -1.026878 +v -4.034171 1.507948 -1.046809 +v -4.108684 1.537964 -1.055064 +v -4.183198 1.507948 -1.046809 +v -4.214062 1.435483 -1.026878 +v -4.183198 1.363018 -1.006948 +v -4.108684 1.333002 -0.998692 +v -4.034171 1.338559 -1.064917 +v -4.003307 1.403398 -1.102922 +v -4.034171 1.468237 -1.140928 +v -4.108684 1.495094 -1.156670 +v -4.183198 1.468237 -1.140928 +v -4.214062 1.403398 -1.102922 +v -4.183198 1.338559 -1.064917 +v -4.108684 1.311702 -1.049174 +v -4.034171 1.299931 -1.114577 +v -4.003307 1.352722 -1.168070 +v -4.034171 1.405514 -1.221563 +v -4.108684 1.427382 -1.243721 +v -4.183198 1.405514 -1.221563 +v -4.214062 1.352722 -1.168070 +v -4.183198 1.299931 -1.114577 +v -4.108684 1.278064 -1.092419 +v -4.034171 1.249766 -1.152546 +v -4.003307 1.286911 -1.217881 +v -4.034171 1.324058 -1.283216 +v -4.108684 1.339444 -1.310278 +v -4.183198 1.324058 -1.283216 +v -4.214062 1.286911 -1.217881 +v -4.183198 1.249766 -1.152546 +v -4.108684 1.234379 -1.125483 +v -4.034171 1.191482 -1.176236 +v -4.003307 1.210450 -1.248959 +v -4.034171 1.229419 -1.321682 +v -4.108684 1.237277 -1.351806 +v -4.183198 1.229419 -1.321682 +v -4.214062 1.210450 -1.248959 +v -4.183198 1.191482 -1.176236 +v -4.108684 1.183624 -1.146114 +v -4.003307 1.128550 -1.259187 +v -4.034171 1.133186 -1.333701 +v -4.108684 1.135106 -1.364566 +v -4.183198 1.133186 -1.333701 +v -4.214062 1.128550 -1.259187 +v -3.668748 0.462021 1.281173 +v -3.637883 0.457386 1.355686 +v -3.563370 0.455466 1.386551 +v -3.488857 0.457386 1.355686 +v -3.457992 0.462021 1.281173 +v -3.563370 0.406947 1.168099 +v -3.637883 0.399090 1.198222 +v -3.668748 0.380121 1.270945 +v -3.637883 0.361152 1.343668 +v -3.563370 0.353294 1.373791 +v -3.488857 0.361152 1.343668 +v -3.457992 0.380121 1.270945 +v -3.488857 0.399090 1.198222 +v -3.563370 0.356193 1.147470 +v -3.637883 0.340806 1.174532 +v -3.668748 0.303660 1.239866 +v -3.637883 0.266514 1.305202 +v -3.563370 0.251127 1.332264 +v -3.488857 0.266514 1.305202 +v -3.457992 0.303660 1.239866 +v -3.488857 0.340806 1.174532 +v -3.563370 0.312507 1.114405 +v -3.637883 0.290641 1.136562 +v -3.668748 0.237849 1.190056 +v -3.637883 0.185057 1.243549 +v -3.563370 0.163190 1.265706 +v -3.488857 0.185057 1.243549 +v -3.457992 0.237849 1.190056 +v -3.488857 0.290641 1.136562 +v -3.563370 0.278870 1.071160 +v -3.637883 0.252013 1.086902 +v -3.668748 0.187174 1.124909 +v -3.637883 0.122335 1.162914 +v -3.563370 0.095478 1.178656 +v -3.488857 0.122335 1.162914 +v -3.457992 0.187174 1.124909 +v -3.488857 0.252013 1.086902 +v -3.563370 0.257570 1.020678 +v -3.637883 0.227554 1.028934 +v -3.668748 0.155088 1.048864 +v -3.637883 0.082623 1.068794 +v -3.563370 0.052607 1.077050 +v -3.488857 0.082623 1.068794 +v -3.457992 0.155088 1.048864 +v -3.488857 0.227554 1.028934 +v -3.563370 0.249140 0.959773 +v -3.637883 0.218281 0.961937 +v -3.668748 0.143780 0.967162 +v -3.637883 0.069279 0.972387 +v -3.563370 0.038421 0.974551 +v -3.488857 0.069280 0.972387 +v -3.457992 0.143780 0.967162 +v -3.488857 0.218281 0.961937 +v -3.488857 0.464233 1.206358 +v -3.637883 0.464233 1.206358 +v -3.563370 0.464233 1.175254 +v -3.457992 0.464233 1.281173 +v -3.488857 0.464233 1.355686 +v -3.563370 0.464233 1.386551 +v -3.637883 0.464233 1.355686 +v -3.668748 0.464233 1.281173 +v -3.472722 0.464233 1.245612 +v -3.654018 0.464233 1.245612 +v -3.488857 0.216414 0.599118 +v -3.457992 0.141899 0.599118 +v -3.488857 0.067386 0.599118 +v -3.563370 0.036522 0.599118 +v -3.637883 0.067386 0.599118 +v -3.668748 0.141899 0.599118 +v -3.637883 0.216414 0.599118 +v -3.563370 0.247278 0.599118 +v -3.488857 0.216414 0.542302 +v -3.637883 0.216414 0.542302 +v -3.637883 0.067386 0.542302 +v -3.488857 0.067386 0.542302 +v -3.822861 0.324671 0.542302 +v -3.380599 0.324671 0.542302 +v -4.402727 0.324671 0.542302 +v -4.156867 0.067386 0.542302 +v -4.007839 0.067386 0.542302 +v -4.007839 0.216414 0.542302 +v -4.156867 0.216414 0.542302 +v -4.082353 0.247278 0.599118 +v -4.007839 0.216414 0.599118 +v -3.976975 0.141899 0.599118 +v -4.007839 0.067386 0.599118 +v -4.082353 0.036522 0.599118 +v -4.156867 0.067386 0.599118 +v -4.187730 0.141899 0.599118 +v -4.156867 0.216414 0.599118 +v -3.991705 0.464233 1.245612 +v -4.173001 0.464233 1.245612 +v -3.976975 0.464233 1.281173 +v -4.007839 0.464233 1.355686 +v -4.082353 0.464233 1.386551 +v -4.156867 0.464233 1.355686 +v -4.187730 0.464233 1.281173 +v -4.082353 0.464233 1.175254 +v -4.007839 0.464233 1.206358 +v -4.156867 0.464233 1.206358 +v -4.156867 0.218281 0.961937 +v -4.187730 0.143780 0.967162 +v -4.156867 0.069280 0.972387 +v -4.082353 0.038421 0.974551 +v -4.007839 0.069279 0.972387 +v -3.976975 0.143780 0.967162 +v -4.007839 0.218281 0.961937 +v -4.082353 0.249140 0.959773 +v -4.156867 0.227554 1.028934 +v -4.187730 0.155088 1.048864 +v -4.156867 0.082623 1.068794 +v -4.082353 0.052607 1.077050 +v -4.007839 0.082623 1.068794 +v -3.976975 0.155088 1.048864 +v -4.007839 0.227554 1.028934 +v -4.082353 0.257570 1.020678 +v -4.156867 0.252013 1.086902 +v -4.187730 0.187174 1.124909 +v -4.156867 0.122335 1.162914 +v -4.082353 0.095478 1.178656 +v -4.007839 0.122335 1.162914 +v -3.976975 0.187174 1.124909 +v -4.007839 0.252013 1.086902 +v -4.082353 0.278870 1.071160 +v -4.156867 0.290641 1.136562 +v -4.187730 0.237849 1.190056 +v -4.156867 0.185057 1.243549 +v -4.082353 0.163190 1.265706 +v -4.007839 0.185057 1.243549 +v -3.976975 0.237849 1.190056 +v -4.007839 0.290641 1.136562 +v -4.082353 0.312507 1.114405 +v -4.156867 0.340806 1.174532 +v -4.187730 0.303660 1.239866 +v -4.156867 0.266514 1.305202 +v -4.082353 0.251127 1.332264 +v -4.007839 0.266514 1.305202 +v -3.976975 0.303660 1.239866 +v -4.007839 0.340806 1.174532 +v -4.082353 0.356193 1.147470 +v -4.156867 0.399090 1.198222 +v -4.187730 0.380121 1.270945 +v -4.156867 0.361152 1.343668 +v -4.082353 0.353294 1.373791 +v -4.007839 0.361152 1.343668 +v -3.976975 0.380121 1.270945 +v -4.007839 0.399090 1.198222 +v -4.082353 0.406947 1.168099 +v -4.187730 0.462021 1.281173 +v -4.156867 0.457386 1.355686 +v -4.082353 0.455466 1.386551 +v -4.007839 0.457386 1.355686 +v -3.976975 0.462021 1.281173 +v -3.380599 -0.040871 0.489215 +v -3.380599 0.012216 0.542302 +v -4.402727 0.012216 0.542302 +v -4.402727 -0.040871 0.489215 +v -4.402727 -0.040871 -0.460100 +v -4.402727 0.012216 -0.513187 +v -3.380599 0.012216 -0.513187 +v -3.380599 -0.040871 -0.460100 +v -3.976975 0.462021 -1.252058 +v -4.007839 0.457386 -1.326571 +v -4.082353 0.455466 -1.357436 +v -4.156867 0.457386 -1.326571 +v -4.187730 0.462021 -1.252058 +v -4.082353 0.406947 -1.138983 +v -4.007839 0.399090 -1.169106 +v -3.976975 0.380121 -1.241830 +v -4.007839 0.361152 -1.314553 +v -4.082353 0.353294 -1.344676 +v -4.156867 0.361152 -1.314553 +v -4.187730 0.380121 -1.241830 +v -4.156867 0.399090 -1.169106 +v -4.082353 0.356193 -1.118354 +v -4.007839 0.340806 -1.145417 +v -3.976975 0.303660 -1.210751 +v -4.007839 0.266514 -1.276086 +v -4.082353 0.251127 -1.303149 +v -4.156867 0.266514 -1.276086 +v -4.187730 0.303660 -1.210751 +v -4.156867 0.340806 -1.145417 +v -4.082353 0.312507 -1.085290 +v -4.007839 0.290641 -1.107447 +v -3.976975 0.237849 -1.160941 +v -4.007839 0.185057 -1.214434 +v -4.082353 0.163190 -1.236591 +v -4.156867 0.185057 -1.214434 +v -4.187730 0.237849 -1.160941 +v -4.156867 0.290641 -1.107447 +v -4.082353 0.278870 -1.042045 +v -4.007839 0.252013 -1.057787 +v -3.976975 0.187174 -1.095793 +v -4.007839 0.122335 -1.133798 +v -4.082353 0.095478 -1.149541 +v -4.156867 0.122335 -1.133798 +v -4.187730 0.187174 -1.095793 +v -4.156867 0.252013 -1.057787 +v -4.082353 0.257570 -0.991562 +v -4.007839 0.227554 -0.999818 +v -3.976975 0.155088 -1.019749 +v -4.007839 0.082623 -1.039679 +v -4.082353 0.052607 -1.047934 +v -4.156867 0.082623 -1.039679 +v -4.187730 0.155088 -1.019749 +v -4.156867 0.227554 -0.999818 +v -4.082353 0.249140 -0.930658 +v -4.007839 0.218281 -0.932822 +v -3.976975 0.143780 -0.938046 +v -4.007839 0.069279 -0.943271 +v -4.082353 0.038421 -0.945435 +v -4.156867 0.069280 -0.943271 +v -4.187730 0.143780 -0.938046 +v -4.156867 0.218281 -0.932822 +v -4.156867 0.464233 -1.177242 +v -4.007839 0.464233 -1.177242 +v -4.082353 0.464233 -1.146138 +v -4.187730 0.464233 -1.252058 +v -4.156867 0.464233 -1.326571 +v -4.082353 0.464233 -1.357436 +v -4.007839 0.464233 -1.326571 +v -3.976975 0.464233 -1.252058 +v -4.173001 0.464233 -1.216497 +v -3.991705 0.464233 -1.216497 +v -4.156867 0.216414 -0.570002 +v -4.187730 0.141899 -0.570002 +v -4.156867 0.067386 -0.570002 +v -4.082353 0.036522 -0.570002 +v -4.007839 0.067386 -0.570002 +v -3.976975 0.141899 -0.570002 +v -4.007839 0.216414 -0.570002 +v -4.082353 0.247278 -0.570002 +v -4.156867 0.216414 -0.513187 +v -4.007839 0.216414 -0.513187 +v -4.007839 0.067386 -0.513187 +v -4.156867 0.067386 -0.513187 +v -4.402727 0.324671 -0.513187 +v -3.380599 0.324671 -0.513187 +v -3.822861 0.324671 -0.513187 +v -3.488857 0.067386 -0.513187 +v -3.637883 0.067386 -0.513187 +v -3.637883 0.216414 -0.513187 +v -3.488857 0.216414 -0.513187 +v -3.563370 0.247278 -0.570002 +v -3.637883 0.216414 -0.570002 +v -3.668748 0.141899 -0.570002 +v -3.637883 0.067386 -0.570002 +v -3.563370 0.036522 -0.570002 +v -3.488857 0.067386 -0.570002 +v -3.457992 0.141899 -0.570002 +v -3.488857 0.216414 -0.570002 +v -3.654018 0.464233 -1.216497 +v -3.472722 0.464233 -1.216497 +v -3.668748 0.464233 -1.252058 +v -3.637883 0.464233 -1.326571 +v -3.563370 0.464233 -1.357436 +v -3.488857 0.464233 -1.326571 +v -3.457992 0.464233 -1.252058 +v -3.563370 0.464233 -1.146138 +v -3.637883 0.464233 -1.177242 +v -3.488857 0.464233 -1.177242 +v -3.488857 0.218281 -0.932822 +v -3.457992 0.143780 -0.938046 +v -3.488857 0.069280 -0.943271 +v -3.563370 0.038421 -0.945435 +v -3.637883 0.069279 -0.943271 +v -3.668748 0.143780 -0.938046 +v -3.637883 0.218281 -0.932822 +v -3.563370 0.249140 -0.930658 +v -3.488857 0.227554 -0.999818 +v -3.457992 0.155088 -1.019749 +v -3.488857 0.082623 -1.039679 +v -3.563370 0.052607 -1.047934 +v -3.637883 0.082623 -1.039679 +v -3.668748 0.155088 -1.019749 +v -3.637883 0.227554 -0.999818 +v -3.563370 0.257570 -0.991562 +v -3.488857 0.252013 -1.057787 +v -3.457992 0.187174 -1.095793 +v -3.488857 0.122335 -1.133798 +v -3.563370 0.095478 -1.149541 +v -3.637883 0.122335 -1.133798 +v -3.668748 0.187174 -1.095793 +v -3.637883 0.252013 -1.057787 +v -3.563370 0.278870 -1.042045 +v -3.488857 0.290641 -1.107447 +v -3.457992 0.237849 -1.160941 +v -3.488857 0.185057 -1.214434 +v -3.563370 0.163190 -1.236591 +v -3.637883 0.185057 -1.214434 +v -3.668748 0.237849 -1.160941 +v -3.637883 0.290641 -1.107447 +v -3.563370 0.312507 -1.085290 +v -3.488857 0.340806 -1.145417 +v -3.457992 0.303660 -1.210751 +v -3.488857 0.266514 -1.276086 +v -3.563370 0.251127 -1.303149 +v -3.637883 0.266514 -1.276086 +v -3.668748 0.303660 -1.210751 +v -3.637883 0.340806 -1.145417 +v -3.563370 0.356193 -1.118354 +v -3.488857 0.399090 -1.169106 +v -3.457992 0.380121 -1.241830 +v -3.488857 0.361152 -1.314553 +v -3.563370 0.353294 -1.344676 +v -3.637883 0.361152 -1.314553 +v -3.668748 0.380121 -1.241830 +v -3.637883 0.399090 -1.169106 +v -3.563370 0.406947 -1.138983 +v -3.457992 0.462021 -1.252058 +v -3.488857 0.457386 -1.326571 +v -3.563370 0.455466 -1.357436 +v -3.637883 0.457386 -1.326571 +v -3.668748 0.462021 -1.252058 +v -6.434846 0.802506 0.000000 +v -4.361941 0.641280 0.000000 +v -4.990722 0.634370 0.000000 +v -4.993025 0.611338 0.000000 +v -5.071334 0.581396 0.000000 +v -5.587258 0.583699 0.000000 +v -5.672477 0.622854 0.000000 +v -5.672477 0.666615 0.000000 +v -5.631019 0.666615 0.000000 +v -5.631019 0.689647 0.000000 +v -5.914316 0.687344 0.000000 +v -5.912013 0.638977 0.000000 +v -5.971897 0.602125 0.000000 +v -6.119303 0.604428 0.000000 +v -6.204523 0.652796 0.000000 +v -6.204523 0.703467 0.000000 +v -6.333503 0.701164 0.000000 +v -6.374961 0.714983 0.000000 +v -6.407207 0.733409 0.000000 +v -6.432542 0.765654 0.000000 +v -4.361941 0.662880 -0.080613 +v -4.990722 0.656896 -0.084068 +v -4.993025 0.636950 -0.095584 +v -5.071334 0.611019 -0.110555 +v -5.587258 0.613014 -0.109403 +v -5.672477 0.646922 -0.089826 +v -5.672477 0.684821 -0.067946 +v -5.631019 0.684821 -0.067946 +v -5.631019 0.704767 -0.056429 +v -5.914316 0.702773 -0.057581 +v -5.912013 0.660886 -0.081765 +v -5.971897 0.628971 -0.100190 +v -6.119303 0.630966 -0.099038 +v -6.204523 0.672853 -0.074855 +v -6.204523 0.716735 -0.049519 +v -6.333503 0.714741 -0.050671 +v -6.374961 0.726709 -0.043762 +v -6.407207 0.742666 -0.034549 +v -6.432542 0.770591 -0.018426 +v -4.361941 0.721893 -0.139626 +v -4.990722 0.718438 -0.145610 +v -4.993025 0.706922 -0.165556 +v -5.071334 0.691950 -0.191486 +v -5.587258 0.693102 -0.189492 +v -5.672477 0.712680 -0.155583 +v -5.672477 0.734560 -0.117685 +v -5.631019 0.734560 -0.117685 +v -5.631019 0.746077 -0.097738 +v -5.914316 0.744925 -0.099733 +v -5.912013 0.720741 -0.141620 +v -5.971897 0.702315 -0.173534 +v -6.119303 0.703467 -0.171540 +v -6.204523 0.727650 -0.129653 +v -6.204523 0.752986 -0.085770 +v -6.333503 0.751834 -0.087765 +v -6.374961 0.758744 -0.075797 +v -6.407207 0.767957 -0.059840 +v -6.432542 0.784080 -0.031914 +v -4.361941 0.802506 -0.161226 +v -4.990722 0.802506 -0.168135 +v -4.993025 0.802506 -0.191168 +v -5.071334 0.802506 -0.221110 +v -5.587258 0.802506 -0.218806 +v -5.672477 0.802506 -0.179652 +v -5.672477 0.802506 -0.135890 +v -5.631019 0.802506 -0.135890 +v -5.631019 0.802506 -0.112858 +v -5.914316 0.802506 -0.115162 +v -5.912013 0.802506 -0.163529 +v -5.971897 0.802506 -0.200381 +v -6.119303 0.802506 -0.198078 +v -6.204523 0.802506 -0.149710 +v -6.204523 0.802506 -0.099038 +v -6.333503 0.802506 -0.101342 +v -6.374961 0.802506 -0.087522 +v -6.407207 0.802506 -0.069097 +v -6.432542 0.802506 -0.036852 +v -4.361941 0.883118 -0.139626 +v -4.990722 0.886574 -0.145610 +v -4.993025 0.898090 -0.165556 +v -5.071334 0.913061 -0.191486 +v -5.587258 0.911909 -0.189492 +v -5.672477 0.892331 -0.155583 +v -5.672477 0.870451 -0.117685 +v -5.631019 0.870451 -0.117685 +v -5.631019 0.858934 -0.097738 +v -5.914316 0.860086 -0.099733 +v -5.912013 0.884270 -0.141620 +v -5.971897 0.902696 -0.173534 +v -6.119303 0.901544 -0.171540 +v -6.204523 0.877361 -0.129653 +v -6.204523 0.852025 -0.085770 +v -6.333503 0.853177 -0.087765 +v -6.374961 0.846267 -0.075797 +v -6.407207 0.837054 -0.059840 +v -6.432542 0.820931 -0.031914 +v -4.361941 0.942131 -0.080613 +v -4.990722 0.948115 -0.084068 +v -4.993025 0.968062 -0.095584 +v -5.071334 0.993992 -0.110555 +v -5.587258 0.991998 -0.109403 +v -5.672477 0.958089 -0.089826 +v -5.672477 0.920190 -0.067946 +v -5.631019 0.920190 -0.067946 +v -5.631019 0.900244 -0.056429 +v -5.914316 0.902238 -0.057581 +v -5.912013 0.944126 -0.081765 +v -5.971897 0.976040 -0.100190 +v -6.119303 0.974046 -0.099038 +v -6.204523 0.932158 -0.074855 +v -6.204523 0.888276 -0.049519 +v -6.333503 0.890270 -0.050671 +v -6.374961 0.878302 -0.043762 +v -6.407207 0.862346 -0.034549 +v -6.432542 0.834420 -0.018426 +v -4.361941 0.963731 0.000000 +v -4.990722 0.970641 0.000000 +v -4.993025 0.993674 0.000000 +v -5.071334 1.023615 0.000000 +v -5.587258 1.021312 0.000000 +v -5.672477 0.982158 0.000000 +v -5.672477 0.938396 0.000000 +v -5.631019 0.938396 0.000000 +v -5.631019 0.915364 0.000000 +v -5.914316 0.917667 0.000000 +v -5.912013 0.966034 0.000000 +v -5.971897 1.002886 0.000000 +v -6.119303 1.000583 0.000000 +v -6.204523 0.952215 0.000000 +v -6.204523 0.901544 0.000000 +v -6.333503 0.903847 0.000000 +v -6.374961 0.890028 0.000000 +v -6.407207 0.871602 0.000000 +v -6.432542 0.839358 0.000000 +v -4.361941 0.942131 0.080613 +v -4.990722 0.948115 0.084068 +v -4.993025 0.968062 0.095584 +v -5.071334 0.993992 0.110555 +v -5.587258 0.991998 0.109403 +v -5.672477 0.958089 0.089826 +v -5.672477 0.920190 0.067946 +v -5.631019 0.920190 0.067946 +v -5.631019 0.900244 0.056429 +v -5.914316 0.902238 0.057581 +v -5.912013 0.944126 0.081765 +v -5.971897 0.976040 0.100190 +v -6.119303 0.974046 0.099038 +v -6.204523 0.932158 0.074855 +v -6.204523 0.888276 0.049519 +v -6.333503 0.890270 0.050671 +v -6.374961 0.878302 0.043762 +v -6.407207 0.862346 0.034549 +v -6.432542 0.834420 0.018426 +v -4.361941 0.883118 0.139626 +v -4.990722 0.886574 0.145610 +v -4.993025 0.898090 0.165556 +v -5.071334 0.913061 0.191486 +v -5.587258 0.911909 0.189492 +v -5.672477 0.892331 0.155583 +v -5.672477 0.870451 0.117685 +v -5.631019 0.870451 0.117685 +v -5.631019 0.858934 0.097738 +v -5.914316 0.860086 0.099733 +v -5.912013 0.884270 0.141620 +v -5.971897 0.902696 0.173534 +v -6.119303 0.901544 0.171540 +v -6.204523 0.877361 0.129653 +v -6.204523 0.852025 0.085770 +v -6.333503 0.853177 0.087765 +v -6.374961 0.846267 0.075797 +v -6.407207 0.837054 0.059840 +v -6.432542 0.820931 0.031914 +v -4.361941 0.802506 0.161226 +v -4.990722 0.802506 0.168135 +v -4.993025 0.802506 0.191168 +v -5.071334 0.802506 0.221110 +v -5.587258 0.802506 0.218806 +v -5.672477 0.802506 0.179652 +v -5.672477 0.802506 0.135890 +v -5.631019 0.802506 0.135890 +v -5.631019 0.802506 0.112858 +v -5.914316 0.802506 0.115162 +v -5.912013 0.802506 0.163529 +v -5.971897 0.802506 0.200381 +v -6.119303 0.802506 0.198078 +v -6.204523 0.802506 0.149710 +v -6.204523 0.802506 0.099038 +v -6.333503 0.802506 0.101342 +v -6.374961 0.802506 0.087522 +v -6.407207 0.802506 0.069097 +v -6.432542 0.802506 0.036852 +v -4.361941 0.721893 0.139626 +v -4.990722 0.718438 0.145610 +v -4.993025 0.706922 0.165556 +v -5.071334 0.691950 0.191486 +v -5.587258 0.693102 0.189492 +v -5.672477 0.712680 0.155583 +v -5.672477 0.734560 0.117685 +v -5.631019 0.734560 0.117685 +v -5.631019 0.746077 0.097738 +v -5.914316 0.744925 0.099733 +v -5.912013 0.720741 0.141620 +v -5.971897 0.702315 0.173534 +v -6.119303 0.703467 0.171540 +v -6.204523 0.727650 0.129653 +v -6.204523 0.752986 0.085770 +v -6.333503 0.751834 0.087765 +v -6.374961 0.758744 0.075797 +v -6.407207 0.767957 0.059840 +v -6.432542 0.784080 0.031914 +v -4.361941 0.662880 0.080613 +v -4.990722 0.656896 0.084068 +v -4.993025 0.636950 0.095584 +v -5.071334 0.611019 0.110555 +v -5.587258 0.613014 0.109403 +v -5.672477 0.646922 0.089826 +v -5.672477 0.684821 0.067946 +v -5.631019 0.684821 0.067946 +v -5.631019 0.704767 0.056429 +v -5.914316 0.702773 0.057581 +v -5.912013 0.660886 0.081765 +v -5.971897 0.628971 0.100190 +v -6.119303 0.630966 0.099038 +v -6.204523 0.672853 0.074855 +v -6.204523 0.716735 0.049519 +v -6.333503 0.714741 0.050671 +v -6.374961 0.726709 0.043762 +v -6.407207 0.742666 0.034549 +v -6.432542 0.770591 0.018426 +v -5.910784 0.869627 0.116239 +v -5.910784 0.918408 0.200717 +v -5.944704 0.917402 0.198975 +v -5.941133 0.941038 0.239907 +v -5.903642 0.940535 0.239036 +v -5.907214 0.954114 0.262550 +v -5.866152 0.953108 0.260809 +v -5.866152 0.975738 0.299999 +v -5.917925 0.974230 0.297386 +v -5.958986 1.036086 0.404507 +v -5.937038 0.799654 0.156645 +v -5.937038 0.848435 0.241122 +v -5.964480 0.864695 0.229410 +v -5.961591 0.886514 0.271392 +v -5.931260 0.866928 0.281541 +v -5.934149 0.882324 0.304005 +v -5.900930 0.860416 0.314333 +v -5.900930 0.883046 0.353523 +v -5.942815 0.907892 0.335693 +v -5.976035 0.990649 0.430744 +v -6.005771 0.756409 0.181617 +v -6.005771 0.805190 0.266094 +v -6.016253 0.832121 0.248220 +v -6.015150 0.852816 0.290850 +v -6.003564 0.821435 0.307810 +v -6.004667 0.837954 0.329626 +v -5.991979 0.803130 0.347412 +v -5.991979 0.825761 0.386603 +v -6.007978 0.866893 0.359368 +v -6.020667 0.962567 0.446960 +v -6.090730 0.756409 0.181617 +v -6.090730 0.805190 0.266094 +v -6.080248 0.832121 0.248220 +v -6.081351 0.852816 0.290850 +v -6.092937 0.821435 0.307810 +v -6.091834 0.837954 0.329626 +v -6.104522 0.803130 0.347412 +v -6.104522 0.825761 0.386603 +v -6.088523 0.866893 0.359368 +v -6.075834 0.962567 0.446960 +v -6.159463 0.799654 0.156645 +v -6.159463 0.848435 0.241122 +v -6.132021 0.864695 0.229410 +v -6.134910 0.886514 0.271392 +v -6.165241 0.866928 0.281541 +v -6.162352 0.882324 0.304005 +v -6.195571 0.860416 0.314333 +v -6.195571 0.883046 0.353523 +v -6.153686 0.907892 0.335693 +v -6.120466 0.990649 0.430744 +v -6.185717 0.869627 0.116239 +v -6.185717 0.918408 0.200717 +v -6.151797 0.917402 0.198975 +v -6.155367 0.941038 0.239907 +v -6.192859 0.940535 0.239036 +v -6.189287 0.954114 0.262550 +v -6.230349 0.953108 0.260809 +v -6.230349 0.975738 0.299999 +v -6.178576 0.974230 0.297386 +v -6.137515 1.036086 0.404507 +v -6.159463 0.939600 0.075834 +v -6.159463 0.988381 0.160311 +v -6.132021 0.970110 0.168539 +v -6.134910 0.995562 0.208422 +v -6.165241 1.014143 0.196532 +v -6.162352 1.025903 0.221096 +v -6.195571 1.045799 0.207285 +v -6.195571 1.068430 0.246475 +v -6.153686 1.040567 0.259081 +v -6.120466 1.081522 0.378270 +v -6.090730 0.982846 0.050862 +v -6.090730 1.031626 0.135339 +v -6.080248 1.002684 0.149730 +v -6.081351 1.029261 0.188964 +v -6.092937 1.059635 0.170262 +v -6.091834 1.070273 0.195475 +v -6.104522 1.103086 0.174205 +v -6.104522 1.125716 0.213395 +v -6.088523 1.081566 0.235406 +v -6.075834 1.109604 0.362054 +v -6.005771 0.982846 0.050862 +v -6.005771 1.031626 0.135339 +v -6.016253 1.002684 0.149730 +v -6.015150 1.029261 0.188964 +v -6.003564 1.059635 0.170262 +v -6.004667 1.070273 0.195475 +v -5.991979 1.103086 0.174205 +v -5.991979 1.125716 0.213395 +v -6.007978 1.081566 0.235406 +v -6.020667 1.109604 0.362054 +v -5.937038 0.939600 0.075834 +v -5.937038 0.988381 0.160311 +v -5.964480 0.970110 0.168539 +v -5.961591 0.995562 0.208422 +v -5.931260 1.014143 0.196532 +v -5.934149 1.025903 0.221096 +v -5.900930 1.045799 0.207285 +v -5.900930 1.068430 0.246475 +v -5.942815 1.040567 0.259081 +v -5.976035 1.081522 0.378270 +v -6.057447 1.197186 0.500912 +v -6.075834 1.155618 0.524914 +v -6.074689 1.208842 0.581516 +v -6.055402 1.250102 0.557690 +v -6.057447 1.159340 0.448186 +v -6.075834 1.145818 0.424770 +v -6.087416 1.139148 0.430044 +v -6.090249 1.130536 0.437978 +v -6.075834 1.117707 0.472226 +v -6.067914 1.276189 0.654324 +v -6.044979 1.316025 0.631321 +v -6.051891 1.346961 0.754793 +v -6.021833 1.383071 0.733942 +v -6.031030 1.417630 0.880209 +v -5.992507 1.447098 0.863192 +v -6.020324 1.482188 1.015875 +v -5.976293 1.505155 1.002613 +v -6.029022 1.532889 1.137414 +v -5.983540 1.553628 1.125439 +v -6.040538 1.577507 1.240926 +v -5.994937 1.598365 1.228882 +v -6.075834 1.080618 0.568223 +v -6.057447 1.039050 0.592226 +v -6.059490 1.062074 0.666266 +v -6.076971 1.103934 0.642094 +v -6.075834 1.053936 0.509050 +v -6.090249 1.017862 0.503042 +v -6.087416 1.006684 0.506534 +v -6.075834 0.998782 0.509675 +v -6.057447 1.012303 0.533091 +v -6.069829 1.094130 0.759453 +v -6.083498 1.137041 0.734674 +v -6.092449 1.152032 0.867353 +v -6.097942 1.196290 0.841796 +v -6.120296 1.235269 0.985511 +v -6.114368 1.279485 0.959979 +v -6.134706 1.329426 1.104087 +v -6.119663 1.371990 1.079508 +v -6.126785 1.412280 1.207060 +v -6.108944 1.454025 1.182954 +v -6.115387 1.479509 1.297515 +v -6.097427 1.521373 1.273342 +v -6.020667 1.155618 0.524914 +v -6.039054 1.197186 0.500912 +v -6.037012 1.249802 0.557863 +v -6.019531 1.207943 0.582035 +v -6.020667 1.117707 0.472226 +v -6.006252 1.130536 0.437978 +v -6.009085 1.139148 0.430044 +v -6.020667 1.145818 0.424770 +v -6.039054 1.159340 0.448186 +v -6.026671 1.314487 0.632209 +v -6.013003 1.271577 0.656987 +v -6.004052 1.378995 0.736295 +v -5.998559 1.334737 0.761851 +v -5.976205 1.439723 0.867450 +v -5.982133 1.395507 0.892983 +v -5.961794 1.495354 1.008273 +v -5.976838 1.452790 1.032852 +v -5.969716 1.543122 1.131506 +v -5.987557 1.501376 1.155612 +v -5.981113 1.587858 1.234950 +v -5.999074 1.545994 1.259124 +v -6.039054 1.039050 0.592226 +v -6.020667 1.080618 0.568223 +v -6.021812 1.103034 0.642614 +v -6.041099 1.061774 0.666439 +v -6.039054 1.012303 0.533091 +v -6.020667 0.998782 0.509675 +v -6.009085 1.006684 0.506534 +v -6.006252 1.017862 0.503042 +v -6.020667 1.053936 0.509050 +v -6.028587 1.132429 0.737338 +v -6.051523 1.092593 0.760341 +v -6.044611 1.184066 0.848855 +v -6.074668 1.147957 0.869706 +v -6.065471 1.257363 0.972754 +v -6.103994 1.227894 0.989770 +v -6.076178 1.342592 1.096485 +v -6.120208 1.319625 1.109747 +v -6.067480 1.422512 1.201151 +v -6.112961 1.401774 1.213127 +v -6.055963 1.489859 1.291538 +v -6.101563 1.469002 1.303582 +v -5.910784 0.668278 0.000000 +v -5.910784 0.570729 0.000000 +v -5.944704 0.572740 0.000000 +v -5.941133 0.525474 0.000000 +v -5.903642 0.526479 0.000000 +v -5.907214 0.499326 0.000000 +v -5.866152 0.501338 0.000000 +v -5.866152 0.456082 0.000000 +v -5.917925 0.459099 0.000000 +v -5.958986 0.335402 0.000000 +v -5.937038 0.668278 -0.080801 +v -5.937038 0.570729 -0.080801 +v -5.964480 0.572740 -0.060863 +v -5.961591 0.525474 -0.062962 +v -5.931260 0.526479 -0.084998 +v -5.934149 0.499326 -0.082899 +v -5.900930 0.501338 -0.107035 +v -5.900930 0.456082 -0.107035 +v -5.942815 0.459099 -0.076603 +v -5.976035 0.335402 -0.052468 +v -6.005771 0.668278 -0.130738 +v -6.005771 0.570729 -0.130738 +v -6.016253 0.572740 -0.098478 +v -6.015150 0.525474 -0.101874 +v -6.003564 0.526479 -0.137530 +v -6.004667 0.499326 -0.134134 +v -5.991979 0.501338 -0.173186 +v -5.991979 0.456082 -0.173186 +v -6.007978 0.459099 -0.123947 +v -6.020667 0.335402 -0.084895 +v -6.090730 0.668278 -0.130738 +v -6.090730 0.570729 -0.130738 +v -6.080248 0.572740 -0.098478 +v -6.081351 0.525474 -0.101874 +v -6.092937 0.526479 -0.137530 +v -6.091834 0.499326 -0.134134 +v -6.104522 0.501338 -0.173186 +v -6.104522 0.456082 -0.173186 +v -6.088523 0.459099 -0.123947 +v -6.075834 0.335402 -0.084895 +v -6.159463 0.668278 -0.080801 +v -6.159463 0.570729 -0.080801 +v -6.132021 0.572740 -0.060863 +v -6.134910 0.525474 -0.062962 +v -6.165241 0.526479 -0.084998 +v -6.162352 0.499326 -0.082899 +v -6.195571 0.501338 -0.107035 +v -6.195571 0.456082 -0.107035 +v -6.153686 0.459099 -0.076603 +v -6.120466 0.335402 -0.052468 +v -6.185717 0.668278 0.000000 +v -6.185717 0.570729 0.000000 +v -6.151797 0.572740 0.000000 +v -6.155367 0.525474 0.000000 +v -6.192859 0.526479 0.000000 +v -6.189287 0.499326 0.000000 +v -6.230349 0.501338 0.000000 +v -6.230349 0.456082 0.000000 +v -6.178576 0.459099 0.000000 +v -6.137515 0.335402 0.000000 +v -6.159463 0.668278 0.080801 +v -6.159463 0.570729 0.080801 +v -6.132021 0.572740 0.060863 +v -6.134910 0.525474 0.062962 +v -6.165241 0.526479 0.084998 +v -6.162352 0.499326 0.082899 +v -6.195571 0.501338 0.107035 +v -6.195571 0.456082 0.107035 +v -6.153686 0.459099 0.076603 +v -6.120466 0.335402 0.052468 +v -6.090730 0.668278 0.130738 +v -6.090730 0.570729 0.130738 +v -6.080248 0.572740 0.098478 +v -6.081351 0.525474 0.101874 +v -6.092937 0.526479 0.137530 +v -6.091834 0.499326 0.134134 +v -6.104522 0.501338 0.173186 +v -6.104522 0.456082 0.173186 +v -6.088523 0.459099 0.123947 +v -6.075834 0.335402 0.084895 +v -6.005771 0.668278 0.130738 +v -6.005771 0.570729 0.130738 +v -6.016253 0.572740 0.098478 +v -6.015150 0.525474 0.101874 +v -6.003564 0.526479 0.137530 +v -6.004667 0.499326 0.134134 +v -5.991979 0.501338 0.173186 +v -5.991979 0.456082 0.173186 +v -6.007978 0.459099 0.123947 +v -6.020667 0.335402 0.084895 +v -5.937038 0.668278 0.080801 +v -5.937038 0.570729 0.080801 +v -5.964480 0.572740 0.060863 +v -5.961591 0.525474 0.062962 +v -5.931260 0.526479 0.084998 +v -5.934149 0.499326 0.082899 +v -5.900930 0.501338 0.107035 +v -5.900930 0.456082 0.107035 +v -5.942815 0.459099 0.076603 +v -5.976035 0.335402 0.052468 +v -6.057447 0.171357 0.091303 +v -6.075834 0.171357 0.043303 +v -6.074689 0.095726 0.061090 +v -6.055402 0.095726 0.108736 +v -6.057447 0.235942 0.084895 +v -6.075834 0.262982 0.084895 +v -6.087416 0.261750 0.076481 +v -6.090249 0.259186 0.065055 +v -6.075834 0.235942 0.036820 +v -6.067914 -0.001003 0.083003 +v -6.044979 -0.001003 0.129004 +v -6.051891 -0.123398 0.094051 +v -6.021833 -0.123398 0.135749 +v -6.031030 -0.267346 0.092534 +v -5.992507 -0.267346 0.126563 +v -6.020324 -0.417115 0.080599 +v -5.976293 -0.417115 0.107121 +v -6.029022 -0.547721 0.063729 +v -5.983540 -0.547721 0.087677 +v -6.040538 -0.659673 0.050606 +v -5.994937 -0.659673 0.074690 +v -6.075834 0.171357 -0.043303 +v -6.057447 0.171357 -0.091303 +v -6.059490 0.095726 -0.108390 +v -6.076971 0.095726 -0.060052 +v -6.075834 0.235942 -0.036820 +v -6.090249 0.259186 -0.065055 +v -6.087416 0.261750 -0.076481 +v -6.075834 0.262982 -0.084895 +v -6.057447 0.235942 -0.084895 +v -6.069829 -0.001003 -0.127228 +v -6.083498 -0.001003 -0.077678 +v -6.092449 -0.123398 -0.131042 +v -6.097942 -0.123398 -0.079935 +v -6.120296 -0.267346 -0.118046 +v -6.114368 -0.267346 -0.066988 +v -6.134706 -0.417115 -0.095802 +v -6.119663 -0.417115 -0.046651 +v -6.126785 -0.547721 -0.075545 +v -6.108944 -0.547721 -0.027339 +v -6.115387 -0.659673 -0.062558 +v -6.097427 -0.659673 -0.014216 +v -6.020667 0.171357 0.043303 +v -6.039054 0.171357 0.091303 +v -6.037012 0.095726 0.108390 +v -6.019531 0.095726 0.060052 +v -6.020667 0.235942 0.036820 +v -6.006252 0.259186 0.065055 +v -6.009085 0.261750 0.076481 +v -6.020667 0.262982 0.084895 +v -6.039054 0.235942 0.084895 +v -6.026671 -0.001003 0.127228 +v -6.013003 -0.001003 0.077678 +v -6.004052 -0.123398 0.131042 +v -5.998559 -0.123398 0.079935 +v -5.976205 -0.267346 0.118046 +v -5.982133 -0.267346 0.066988 +v -5.961794 -0.417115 0.095802 +v -5.976838 -0.417115 0.046651 +v -5.969716 -0.547721 0.075545 +v -5.987557 -0.547721 0.027339 +v -5.981113 -0.659673 0.062558 +v -5.999074 -0.659673 0.014216 +v -6.039054 0.171357 -0.091303 +v -6.020667 0.171357 -0.043303 +v -6.021812 0.095726 -0.061090 +v -6.041099 0.095726 -0.108736 +v -6.039054 0.235942 -0.084895 +v -6.020667 0.262982 -0.084895 +v -6.009085 0.261750 -0.076481 +v -6.006252 0.259186 -0.065055 +v -6.020667 0.235942 -0.036820 +v -6.028587 -0.001003 -0.083003 +v -6.051523 -0.001003 -0.129004 +v -6.044611 -0.123398 -0.094051 +v -6.074668 -0.123398 -0.135749 +v -6.065471 -0.267346 -0.092534 +v -6.103994 -0.267346 -0.126563 +v -6.076178 -0.417115 -0.080599 +v -6.120208 -0.417115 -0.107121 +v -6.067480 -0.547721 -0.063729 +v -6.112961 -0.547721 -0.087677 +v -6.055963 -0.659673 -0.050606 +v -6.101563 -0.659673 -0.074690 +v -5.910784 0.869615 -0.116246 +v -5.910784 0.918387 -0.200729 +v -5.944704 0.917382 -0.198987 +v -5.941133 0.941014 -0.239922 +v -5.903642 0.940510 -0.239050 +v -5.907214 0.954086 -0.262566 +v -5.866152 0.953081 -0.260824 +v -5.866152 0.975706 -0.300018 +v -5.917925 0.974198 -0.297405 +v -5.958986 1.036043 -0.404531 +v -5.937038 0.939592 -0.075849 +v -5.937038 0.988364 -0.160330 +v -5.964480 0.970091 -0.168557 +v -5.961591 0.995541 -0.208442 +v -5.931260 1.014122 -0.196554 +v -5.934149 1.025880 -0.221119 +v -5.900930 1.045778 -0.207310 +v -5.900930 1.068404 -0.246503 +v -5.942815 1.040540 -0.259106 +v -5.976035 1.081482 -0.378299 +v -6.005771 0.982840 -0.050882 +v -6.005771 1.031612 -0.135363 +v -6.016253 1.002668 -0.149750 +v -6.015150 1.029241 -0.188987 +v -6.003564 1.059618 -0.170290 +v -6.004667 1.070252 -0.195503 +v -5.991979 1.103067 -0.174237 +v -5.991979 1.125694 -0.213430 +v -6.007978 1.081542 -0.235435 +v -6.020667 1.109566 -0.362086 +v -6.090730 0.982840 -0.050882 +v -6.090730 1.031612 -0.135363 +v -6.080248 1.002668 -0.149750 +v -6.081351 1.029241 -0.188987 +v -6.092937 1.059618 -0.170290 +v -6.091834 1.070252 -0.195503 +v -6.104522 1.103067 -0.174237 +v -6.104522 1.125694 -0.213430 +v -6.088523 1.081542 -0.235435 +v -6.075834 1.109566 -0.362086 +v -6.159463 0.939592 -0.075849 +v -6.159463 0.988364 -0.160330 +v -6.132021 0.970091 -0.168557 +v -6.134910 0.995541 -0.208442 +v -6.165241 1.014122 -0.196554 +v -6.162352 1.025880 -0.221119 +v -6.195571 1.045778 -0.207310 +v -6.195571 1.068404 -0.246503 +v -6.153686 1.040540 -0.259106 +v -6.120466 1.081482 -0.378299 +v -6.185717 0.869615 -0.116246 +v -6.185717 0.918387 -0.200729 +v -6.151797 0.917382 -0.198987 +v -6.155367 0.941014 -0.239922 +v -6.192859 0.940510 -0.239050 +v -6.189287 0.954086 -0.262566 +v -6.230349 0.953081 -0.260824 +v -6.230349 0.975706 -0.300018 +v -6.178576 0.974198 -0.297405 +v -6.137515 1.036043 -0.404531 +v -6.159463 0.799638 -0.156645 +v -6.159463 0.848410 -0.241126 +v -6.132021 0.864671 -0.229417 +v -6.134910 0.886486 -0.271401 +v -6.165241 0.866898 -0.281547 +v -6.162352 0.882292 -0.304014 +v -6.195571 0.860383 -0.314338 +v -6.195571 0.883010 -0.353532 +v -6.153686 0.907857 -0.335704 +v -6.120466 0.990603 -0.430764 +v -6.090730 0.756390 -0.181612 +v -6.090730 0.805162 -0.266094 +v -6.080248 0.832095 -0.248223 +v -6.081351 0.852786 -0.290856 +v -6.092937 0.821403 -0.307812 +v -6.091834 0.837920 -0.329630 +v -6.104522 0.803094 -0.347412 +v -6.104522 0.825720 -0.386606 +v -6.088523 0.866854 -0.359374 +v -6.075834 0.962520 -0.446977 +v -6.005771 0.756390 -0.181612 +v -6.005771 0.805162 -0.266094 +v -6.016253 0.832095 -0.248223 +v -6.015150 0.852786 -0.290856 +v -6.003564 0.821403 -0.307812 +v -6.004667 0.837920 -0.329630 +v -5.991979 0.803094 -0.347412 +v -5.991979 0.825720 -0.386606 +v -6.007978 0.866854 -0.359374 +v -6.020667 0.962520 -0.446977 +v -5.937038 0.799638 -0.156645 +v -5.937038 0.848410 -0.241126 +v -5.964480 0.864671 -0.229417 +v -5.961591 0.886486 -0.271401 +v -5.931260 0.866898 -0.281547 +v -5.934149 0.882292 -0.304014 +v -5.900930 0.860383 -0.314338 +v -5.900930 0.883010 -0.353532 +v -5.942815 0.907857 -0.335704 +v -5.976035 0.990603 -0.430764 +v -6.057447 1.038989 -0.592250 +v -6.075834 1.080558 -0.568252 +v -6.074689 1.102967 -0.642645 +v -6.055402 1.061704 -0.666466 +v -6.057447 1.012247 -0.533113 +v -6.075834 0.998728 -0.509696 +v -6.087416 1.006631 -0.506555 +v -6.090249 1.017809 -0.503064 +v -6.075834 1.053882 -0.509077 +v -6.067914 1.132351 -0.737372 +v -6.044979 1.092513 -0.760371 +v -6.051891 1.183977 -0.848895 +v -6.021833 1.147866 -0.869743 +v -6.031030 1.257261 -0.972801 +v -5.992507 1.227790 -0.989814 +v -6.020324 1.342477 -1.096541 +v -5.976293 1.319508 -1.109801 +v -6.029022 1.422386 -1.201217 +v -5.983540 1.401646 -1.213190 +v -6.040538 1.489724 -1.291610 +v -5.994937 1.468866 -1.303652 +v -6.075834 1.155563 -0.524952 +v -6.057447 1.197134 -0.500953 +v -6.059490 1.249744 -0.557910 +v -6.076971 1.207882 -0.582078 +v -6.075834 1.117658 -0.472259 +v -6.090249 1.130490 -0.438013 +v -6.087416 1.139102 -0.430079 +v -6.075834 1.145774 -0.424806 +v -6.057447 1.159293 -0.448223 +v -6.069829 1.314421 -0.632263 +v -6.083498 1.271508 -0.657037 +v -6.092449 1.378918 -0.736355 +v -6.097942 1.334657 -0.761907 +v -6.120296 1.439632 -0.867518 +v -6.114368 1.395414 -0.893045 +v -6.134706 1.495248 -1.008346 +v -6.119663 1.452681 -1.032920 +v -6.126785 1.543003 -1.131584 +v -6.108944 1.501255 -1.155686 +v -6.115387 1.587728 -1.235032 +v -6.097427 1.545862 -1.259202 +v -6.020667 1.080558 -0.568252 +v -6.039054 1.038989 -0.592250 +v -6.037012 1.062004 -0.666294 +v -6.019531 1.103866 -0.642126 +v -6.020667 1.053882 -0.509077 +v -6.006252 1.017809 -0.503064 +v -6.009085 1.006631 -0.506555 +v -6.020667 0.998728 -0.509696 +v -6.039054 1.012247 -0.533113 +v -6.026671 1.094050 -0.759483 +v -6.013003 1.136963 -0.734710 +v -6.004052 1.151941 -0.867390 +v -5.998559 1.196202 -0.841838 +v -5.976205 1.235166 -0.985557 +v -5.982133 1.279384 -0.960029 +v -5.961794 1.329310 -1.104142 +v -5.976838 1.371877 -1.079568 +v -5.969716 1.412153 -1.207124 +v -5.987557 1.453901 -1.183022 +v -5.981113 1.479373 -1.297586 +v -5.999074 1.521239 -1.273417 +v -6.039054 1.197134 -0.500953 +v -6.020667 1.155563 -0.524952 +v -6.021812 1.208781 -0.581558 +v -6.041099 1.250044 -0.557737 +v -6.039054 1.159293 -0.448223 +v -6.020667 1.145774 -0.424806 +v -6.009085 1.139102 -0.430079 +v -6.006252 1.130490 -0.438013 +v -6.020667 1.117658 -0.472259 +v -6.028587 1.276120 -0.654374 +v -6.051523 1.315958 -0.631375 +v -6.044611 1.346882 -0.754850 +v -6.074668 1.382994 -0.734002 +v -6.065471 1.417537 -0.880273 +v -6.103994 1.447008 -0.863259 +v -6.076178 1.482082 -1.015947 +v -6.120208 1.505050 -1.002687 +v -6.067480 1.532770 -1.137491 +v -6.112961 1.553510 -1.125518 +v -6.055963 1.577377 -1.241008 +v -6.101563 1.598236 -1.228966 +v -6.652150 -0.632658 -0.924800 +v -6.597370 -0.668394 -0.946771 +v -6.671355 -0.648315 -0.924800 +v -6.654971 -0.715357 -0.946771 +v -6.683727 2.161171 -0.924800 +v -6.603771 2.180655 -0.946771 +v -6.701970 2.215354 -0.924800 +v -6.648571 2.313719 -0.946771 +v -7.420620 2.208322 -0.924800 +v -7.448570 2.305891 -0.946771 +v -7.470881 2.160026 -0.924800 +v -7.538171 2.219793 -0.946771 +v -8.039143 0.316510 -0.924800 +v -8.101371 0.341298 -0.946771 +v -8.043410 0.298243 -0.924800 +v -8.114171 0.286508 -0.946771 +v -7.595953 -0.564330 -0.924800 +v -7.653371 -0.637086 -0.946771 +v -7.529748 -0.609874 -0.924800 +v -7.550971 -0.707530 -0.946771 +v -7.420620 2.208322 -0.990720 +v -7.448570 2.305891 -0.968749 +v -6.701970 2.215354 -0.990720 +v -6.648571 2.313719 -0.968749 +v -6.683727 2.161171 -0.990720 +v -6.603771 2.180655 -0.968749 +v -6.652150 -0.632658 -0.990720 +v -6.597370 -0.668394 -0.968749 +v -6.671355 -0.648315 -0.990720 +v -6.654971 -0.715357 -0.968749 +v -7.529748 -0.609874 -0.990720 +v -7.550971 -0.707530 -0.968749 +v -7.595953 -0.564330 -0.990720 +v -7.653371 -0.637086 -0.968749 +v -8.043410 0.298243 -0.990720 +v -8.114171 0.286508 -0.968749 +v -8.039143 0.316510 -0.990720 +v -8.101371 0.341298 -0.968749 +v -7.470881 2.160026 -0.990720 +v -7.538171 2.219793 -0.968749 +v -7.280895 0.690445 -0.990720 +v -7.280895 0.690445 -0.924800 +v -7.280895 0.690445 1.027360 +v -6.671355 -0.648315 1.027360 +v -6.652150 -0.632658 1.027360 +v -7.280895 0.690445 0.961440 +v -7.420620 2.208322 0.961440 +v -6.701970 2.215354 0.961440 +v -6.648571 2.313719 1.005389 +v -6.603771 2.180655 1.005389 +v -6.603771 2.180655 0.983411 +v -6.648571 2.313719 0.983411 +v -7.448570 2.305891 1.005389 +v -7.448570 2.305891 0.983411 +v -7.538171 2.219793 1.005389 +v -7.538171 2.219793 0.983411 +v -8.101371 0.341298 1.005389 +v -8.101371 0.341298 0.983411 +v -8.114171 0.286508 1.005389 +v -8.114171 0.286508 0.983411 +v -7.653371 -0.637086 1.005389 +v -7.653371 -0.637086 0.983411 +v -7.550971 -0.707530 1.005389 +v -7.550971 -0.707530 0.983411 +v -6.654971 -0.715357 1.005389 +v -6.654971 -0.715357 0.983411 +v -6.597370 -0.668394 1.005389 +v -6.597370 -0.668394 0.983411 +v -6.683727 2.161171 1.027360 +v -6.701970 2.215354 1.027360 +v -7.420620 2.208322 1.027360 +v -7.470881 2.160026 1.027360 +v -8.039143 0.316510 1.027360 +v -8.043410 0.298243 1.027360 +v -7.595953 -0.564330 1.027360 +v -7.529748 -0.609874 1.027360 +v -6.683727 2.161171 0.961440 +v -6.652150 -0.632658 0.961440 +v -6.671355 -0.648315 0.961440 +v -7.529748 -0.609874 0.961440 +v -7.595953 -0.564330 0.961440 +v -8.043410 0.298243 0.961440 +v -8.039143 0.316510 0.961440 +v -7.470881 2.160026 0.961440 +v 3.383207 0.052740 0.473951 +v 2.350494 0.081034 0.473951 +v 2.293906 0.328602 0.473951 +v 2.046339 1.177408 0.473951 +v 2.039265 1.587665 0.473951 +v 2.166587 1.969627 0.473951 +v 2.322200 1.792793 0.473951 +v 2.322200 1.714986 0.473951 +v 2.209026 1.502784 0.473951 +v 2.293906 1.156188 0.473951 +v 2.548547 0.887399 0.473951 +v 2.682943 0.484216 0.473951 +v 2.661722 0.385189 0.473951 +v 3.142713 0.484216 0.473951 +v 3.581263 0.448850 0.473951 +v 3.694437 0.328602 0.473951 +v 3.694437 0.328602 -0.857951 +v 3.581263 0.448850 -0.857951 +v 3.142713 0.484216 -0.857951 +v 2.661722 0.385189 -0.857951 +v 2.682943 0.484216 -0.857951 +v 2.548547 0.887399 -0.857951 +v 2.293906 1.156188 -0.857951 +v 2.209026 1.502784 -0.857951 +v 2.322200 1.714986 -0.857951 +v 2.322200 1.792793 -0.857951 +v 2.166587 1.969627 -0.857951 +v 2.039265 1.587665 -0.857951 +v 2.046339 1.177408 -0.857951 +v 2.293906 0.328602 -0.857951 +v 2.350494 0.081034 -0.857951 +v 3.383207 0.052740 -0.857951 +v 2.254411 1.188472 -0.576774 +v 2.256044 1.195785 -0.743724 +v 2.175899 1.584710 -0.747397 +v 2.158854 1.578599 -0.577256 +v 2.541006 0.885958 -0.576554 +v 2.542918 0.886322 -0.742794 +v 2.692262 0.432182 -0.576790 +v 2.690981 0.425843 -0.743366 +v 2.668380 0.320721 -0.576910 +v 2.666691 0.337087 -0.742794 +v 3.209750 0.432161 -0.577166 +v 3.216468 0.446320 -0.741566 +v 3.703475 0.392298 -0.578078 +v 3.717558 0.385014 -0.746655 +v 3.830939 0.256904 -0.578539 +v 3.796103 0.275202 -0.742794 +v 3.480457 -0.033833 -0.577357 +v 3.476881 0.009429 -0.745967 +v 2.318102 -0.033833 -0.576640 +v 2.326319 0.004452 -0.742794 +v 2.254397 0.257016 -0.577122 +v 2.269904 0.253758 -0.742532 +v 1.975754 1.212367 -0.577082 +v 1.991553 1.220194 -0.743842 +v 1.967751 1.674170 -0.577620 +v 1.991374 1.679478 -0.745422 +v 2.111019 2.104211 -0.578330 +v 2.125191 2.069886 -0.742794 +v 2.286216 1.905074 -0.577729 +v 2.279950 1.917578 -0.746173 +v 2.286222 1.817474 -0.577553 +v 2.297850 1.825632 -0.728495 +v 2.256044 1.195785 0.359724 +v 2.254411 1.188472 0.192774 +v 2.158854 1.578599 0.193256 +v 2.175899 1.584710 0.363397 +v 2.542918 0.886322 0.358794 +v 2.541006 0.885958 0.192554 +v 2.690981 0.425843 0.359366 +v 2.692262 0.432182 0.192790 +v 2.666691 0.337087 0.358794 +v 2.668380 0.320721 0.192910 +v 3.216468 0.446320 0.357566 +v 3.209750 0.432161 0.193166 +v 3.717558 0.385014 0.362655 +v 3.703475 0.392298 0.194078 +v 3.796103 0.275202 0.358794 +v 3.830939 0.256904 0.194539 +v 3.476881 0.009429 0.361967 +v 3.480457 -0.033833 0.193357 +v 2.326319 0.004452 0.358794 +v 2.318102 -0.033833 0.192640 +v 2.269904 0.253758 0.358532 +v 2.254397 0.257016 0.193122 +v 1.991553 1.220194 0.359842 +v 1.975754 1.212367 0.193082 +v 1.991374 1.679478 0.361422 +v 1.967751 1.674170 0.193620 +v 2.125191 2.069886 0.358794 +v 2.111019 2.104211 0.194330 +v 2.279950 1.917578 0.362173 +v 2.286216 1.905074 0.193729 +v 2.297850 1.825632 0.344495 +v 2.286222 1.817474 0.193553 +v 2.174150 1.555486 -0.299967 +v 2.174150 1.555486 -0.084033 +v 2.266416 1.178659 -0.083550 +v 2.266416 1.178659 -0.300450 +v 2.297210 1.786172 -0.299670 +v 2.297210 1.786172 -0.084330 +v 2.297218 1.870745 -0.299494 +v 2.297218 1.870745 -0.084506 +v 2.128071 2.062912 -0.298894 +v 2.128071 2.062912 -0.085106 +v 1.989601 1.647739 -0.299603 +v 1.989601 1.647739 -0.084397 +v 1.997250 1.201721 -0.300142 +v 1.997250 1.201721 -0.083858 +v 2.266431 0.278822 -0.300101 +v 2.266431 0.278822 -0.083899 +v 2.327940 -0.033833 -0.300583 +v 2.327940 -0.033833 -0.083417 +v 3.450790 -0.033833 -0.299866 +v 3.450790 -0.033833 -0.084134 +v 3.788999 0.278934 -0.298684 +v 3.788999 0.278934 -0.085316 +v 3.666031 0.409625 -0.299145 +v 3.666031 0.409625 -0.084855 +v 3.189325 0.448022 -0.300057 +v 3.189325 0.448022 -0.083943 +v 2.666354 0.340333 -0.300313 +v 2.666354 0.340333 -0.083687 +v 2.689428 0.448001 -0.300433 +v 2.689428 0.448001 -0.083567 +v 2.543294 0.886394 -0.300669 +v 2.543294 0.886394 -0.083331 +v 2.326785 0.055070 0.431320 +v 3.566148 0.055070 0.431320 +v 3.566148 0.055070 -0.808045 +v 2.326785 0.055070 -0.808045 +v 2.326785 -0.033509 0.431320 +v 2.326785 -0.033509 -0.808045 +v 3.566148 -0.033509 0.431320 +v 3.566148 -0.033509 -0.808045 +v 3.566148 -0.033509 0.368364 +v 3.566148 -0.033509 -0.745089 +v 2.407060 -0.033509 0.431320 +v 3.485872 -0.033509 0.431320 +v 2.326785 -0.033509 -0.745089 +v 2.326785 -0.033509 0.368364 +v 3.485872 -0.033509 -0.808045 +v 2.407060 -0.033509 -0.808045 +v 3.485872 -0.033509 -0.745089 +v 2.407060 -0.033509 -0.745089 +v 2.407060 -0.033509 0.368364 +v 3.485872 -0.033509 0.368364 +v 3.566148 -0.145547 0.368364 +v 3.485872 -0.145547 0.368364 +v 3.485872 -0.145547 0.431320 +v 3.566148 -0.145547 0.431320 +v 3.566148 -0.145547 -0.808045 +v 3.485872 -0.145547 -0.808045 +v 3.485872 -0.145547 -0.745089 +v 3.566148 -0.145547 -0.745089 +v 2.326785 -0.145547 -0.745089 +v 2.407060 -0.145547 -0.745089 +v 2.407060 -0.145547 -0.808045 +v 2.326785 -0.145547 -0.808045 +v 2.326785 -0.145547 0.431320 +v 2.407060 -0.145547 0.431320 +v 2.407060 -0.145547 0.368364 +v 2.326785 -0.145547 0.368364 +v 3.485872 -1.314502 0.368364 +v 3.485872 -1.314502 0.431320 +v 3.566148 -1.314502 0.431320 +v 3.566148 -1.314502 0.368364 +v 3.485872 -1.314502 -0.808045 +v 3.485872 -1.314502 -0.745089 +v 3.566148 -1.314502 -0.745089 +v 3.566148 -1.314502 -0.808045 +v 2.002534 -2.174662 -0.745089 +v 2.002534 -2.174662 -0.808045 +v 1.922257 -2.174662 -0.808045 +v 1.922257 -2.174662 -0.745089 +v 2.002534 -2.174662 0.431320 +v 2.002534 -2.174662 0.368364 +v 1.922257 -2.174662 0.368364 +v 1.922257 -2.174662 0.431320 +v 3.485872 -1.414643 0.431320 +v 3.566148 -1.414643 0.431320 +v 3.566148 -1.414643 0.368364 +v 3.485872 -1.414643 0.368364 +v 3.485872 -1.414643 -0.745089 +v 3.566148 -1.414643 -0.745089 +v 3.566148 -1.414643 -0.808045 +v 3.485872 -1.414643 -0.808045 +v 2.002534 -2.274802 -0.808045 +v 1.922257 -2.274802 -0.808045 +v 1.922257 -2.274802 -0.745089 +v 2.002534 -2.274802 -0.745089 +v 2.002534 -2.274802 0.368364 +v 1.922257 -2.274802 0.368364 +v 1.922257 -2.274802 0.431320 +v 2.002534 -2.274802 0.431320 +v 2.326785 -0.145547 0.579052 +v 2.326785 -0.033509 0.579052 +v 2.407060 -0.033509 0.579052 +v 2.407060 -0.145547 0.579052 +v 2.326785 -0.033509 0.726784 +v 2.407060 -0.033509 0.726784 +v 2.407060 -0.145547 0.726784 +v 2.326785 -0.145547 0.726784 +v 2.638078 -0.033509 0.726784 +v 2.638078 -0.033509 0.579052 +v 2.638078 -0.145547 0.579052 +v 2.638078 -0.145547 0.726784 +v 2.762014 -0.033509 0.579052 +v 2.762014 -0.145547 0.579052 +v 2.762014 -0.145547 0.726784 +v 2.762014 -0.033509 0.726784 +v 3.076319 -0.145547 0.579052 +v 3.076319 -0.145547 0.726784 +v 3.076319 -0.033509 0.726784 +v 3.076319 -0.033509 0.579052 +v 3.200254 -0.145547 0.726784 +v 3.200254 -0.033509 0.726784 +v 3.200254 -0.033509 0.579052 +v 3.200254 -0.145547 0.579052 +v 3.485872 -0.033509 0.726784 +v 3.485872 -0.033509 0.579052 +v 3.485872 -0.145547 0.579052 +v 3.485872 -0.145547 0.726784 +v 3.566148 -0.033509 0.579052 +v 3.566148 -0.145547 0.579052 +v 3.566148 -0.145547 0.726784 +v 3.566148 -0.033509 0.726784 +v 3.558830 -0.157445 -0.643584 +v 3.493189 -0.157445 -0.643584 +v 3.493189 -0.157445 0.266859 +v 3.558830 -0.157445 0.266859 +v 3.766842 -0.745399 -0.643584 +v 3.766842 -0.745399 0.266859 +v 3.832481 -0.745399 0.266859 +v 3.832481 -0.745399 -0.643584 +v 3.766842 -0.774153 0.266859 +v 3.832481 -0.774153 0.266859 +v 3.832481 -0.774153 -0.643584 +v 3.766842 -0.774153 -0.643584 +v 4.408539 -0.714663 0.266859 +v 4.408539 -0.685910 0.266859 +v 4.408539 -0.685910 -0.643584 +v 4.408539 -0.714663 -0.643584 +v 3.247484 0.697744 0.614204 +v 3.247387 0.736975 0.610298 +v 3.271619 0.731770 0.585511 +v 3.265822 0.693804 0.595447 +v 3.247387 0.736975 0.695538 +v 3.247484 0.697744 0.691632 +v 3.265822 0.693804 0.710389 +v 3.271619 0.731770 0.720325 +v 3.322226 0.967328 0.585511 +v 3.297993 0.972534 0.610298 +v 3.327432 0.991562 0.610298 +v 3.327432 0.991562 0.695538 +v 3.297993 0.972534 0.695538 +v 3.322226 0.967328 0.720325 +v 3.384335 0.953985 0.585511 +v 3.389541 0.978219 0.610298 +v 3.408569 0.948778 0.610298 +v 3.408569 0.948778 0.695538 +v 3.389541 0.978219 0.695538 +v 3.384335 0.953985 0.720325 +v 3.323423 0.681430 0.595448 +v 3.333729 0.718426 0.585511 +v 3.357962 0.713220 0.610298 +v 3.341760 0.677490 0.614204 +v 3.333729 0.718426 0.720325 +v 3.323423 0.681430 0.710389 +v 3.341760 0.677490 0.691632 +v 3.357962 0.713220 0.695538 +v 2.661806 0.737458 0.614204 +v 2.663875 0.776634 0.610298 +v 2.687787 0.770097 0.585511 +v 2.679898 0.732510 0.595447 +v 2.663875 0.776634 0.695538 +v 2.661806 0.737458 0.691632 +v 2.679898 0.732510 0.710389 +v 2.687787 0.770097 0.720325 +v 2.751331 1.002499 0.585511 +v 2.727422 1.009037 0.610298 +v 2.757869 1.026409 0.610298 +v 2.757869 1.026409 0.695538 +v 2.727422 1.009037 0.695538 +v 2.751331 1.002499 0.720325 +v 2.812608 0.985744 0.585511 +v 2.819146 1.009654 0.610298 +v 2.836517 0.979206 0.610298 +v 2.836517 0.979206 0.695538 +v 2.819146 1.009654 0.695538 +v 2.812608 0.985744 0.720325 +v 2.736727 0.716972 0.595447 +v 2.749061 0.753342 0.585511 +v 2.772970 0.746805 0.610298 +v 2.754818 0.712025 0.614204 +v 2.749061 0.753342 0.720325 +v 2.736727 0.716972 0.710389 +v 2.754818 0.712025 0.691632 +v 2.772970 0.746805 0.695538 +v 3.273266 0.643076 0.690512 +v 3.271127 0.678802 0.700449 +v 3.252790 0.682742 0.681692 +v 3.251810 0.643767 0.665725 +v 3.312423 0.669930 0.700449 +v 3.293898 0.638646 0.690512 +v 3.313398 0.630539 0.665725 +v 3.330761 0.665990 0.681692 +v 3.251810 0.643767 0.640111 +v 3.252790 0.682742 0.624144 +v 3.271127 0.678802 0.605387 +v 3.273266 0.643076 0.615324 +v 3.330761 0.665990 0.624144 +v 3.313398 0.630539 0.640111 +v 3.293898 0.638646 0.615324 +v 3.312423 0.669930 0.605387 +v 2.690973 0.680312 0.690512 +v 2.684366 0.717238 0.700449 +v 2.666275 0.722185 0.681692 +v 2.670652 0.682130 0.665725 +v 2.725109 0.706098 0.700449 +v 2.711257 0.674765 0.690512 +v 2.731586 0.665494 0.665725 +v 2.743200 0.701151 0.681692 +v 2.670652 0.682130 0.640111 +v 2.666275 0.722185 0.624144 +v 2.684366 0.717238 0.605387 +v 2.690973 0.680312 0.615324 +v 2.743200 0.701151 0.624144 +v 2.731586 0.665494 0.640111 +v 2.711257 0.674765 0.615324 +v 2.725109 0.706098 0.605387 +v 2.710638 0.111376 0.615324 +v 2.731586 0.115215 0.640111 +v 2.737270 0.067273 0.608547 +v 2.689531 0.111375 0.615324 +v 2.662822 0.067273 0.608547 +v 2.668598 0.115215 0.640111 +v 2.731586 0.115215 0.665725 +v 2.710638 0.111376 0.690512 +v 2.737270 0.067273 0.697289 +v 2.668598 0.115215 0.665725 +v 2.662822 0.067273 0.697289 +v 2.689531 0.111376 0.690512 +v 3.154166 0.110791 0.615324 +v 3.176193 0.114383 0.640111 +v 3.175510 0.067273 0.608547 +v 3.133137 0.110791 0.615324 +v 3.101063 0.067273 0.608547 +v 3.113034 0.114405 0.640111 +v 3.176193 0.114383 0.665725 +v 3.154166 0.110791 0.690512 +v 3.175510 0.067273 0.697289 +v 3.113034 0.114405 0.665725 +v 3.101063 0.067273 0.697289 +v 3.133137 0.110791 0.690512 +v -6.550838 2.211582 -0.966499 +v -6.515888 2.211582 -0.956135 +v -6.515888 2.218142 -0.969966 +v -6.456883 2.211582 -0.961987 +v -6.421932 2.211582 -0.979284 +v -6.456883 2.218142 -0.975818 +v -6.421932 2.211582 -1.002631 +v -6.456883 2.211582 -1.012994 +v -6.456883 2.218142 -0.999165 +v -6.515888 2.211582 -1.007143 +v -6.550838 2.211582 -0.989846 +v -6.515888 2.218142 -0.993313 +v -6.550838 2.211582 0.989846 +v -6.515888 2.211582 1.007143 +v -6.515888 2.218142 0.993313 +v -6.456884 2.211582 1.012994 +v -6.421932 2.211582 1.002631 +v -6.456883 2.218142 0.999165 +v -6.421932 2.211582 0.979284 +v -6.456884 2.211582 0.961987 +v -6.456883 2.218142 0.975818 +v -6.515888 2.211582 0.956135 +v -6.550838 2.211582 0.966499 +v -6.515888 2.218142 0.969966 +v -6.550838 -0.606571 -0.989846 +v -6.515888 -0.606571 -1.007143 +v -6.515888 -0.613131 -0.993313 +v -6.456884 -0.606571 -1.012994 +v -6.421932 -0.606571 -1.002631 +v -6.456883 -0.613131 -0.999165 +v -6.421932 -0.606571 -0.979284 +v -6.456884 -0.606571 -0.961987 +v -6.456883 -0.613131 -0.975818 +v -6.515888 -0.606571 -0.956135 +v -6.550838 -0.606571 -0.966499 +v -6.515888 -0.613131 -0.969966 +v -6.550838 -0.606571 0.966499 +v -6.515888 -0.606571 0.956135 +v -6.515888 -0.613131 0.969966 +v -6.456883 -0.606571 0.961987 +v -6.421932 -0.606571 0.979284 +v -6.456883 -0.613131 0.975818 +v -6.421932 -0.606571 1.002631 +v -6.456883 -0.606571 1.012994 +v -6.456883 -0.613131 0.999165 +v -6.515888 -0.606571 1.007143 +v -6.550838 -0.606571 0.989846 +v -6.515888 -0.613131 0.993313 +v -6.442657 -0.556564 -1.008954 +v -6.402256 -0.565129 -0.996974 +v -6.411033 -0.593451 -1.008025 +v -6.445984 -0.593451 -1.018389 +v -6.402256 -0.565129 -0.965000 +v -6.442657 -0.568179 -0.945007 +v -6.445984 -0.593451 -0.958755 +v -6.411033 -0.593451 -0.976052 +v -6.523459 -0.568179 -0.936994 +v -6.563859 -0.559614 -0.948973 +v -6.561738 -0.593451 -0.961106 +v -6.526786 -0.593451 -0.950742 +v -6.563859 -0.559614 -0.980946 +v -6.523459 -0.556564 -1.000939 +v -6.526786 -0.593451 -1.010375 +v -6.561738 -0.593451 -0.993078 +v -6.442657 -0.568179 0.945007 +v -6.402256 -0.565129 0.965000 +v -6.411033 -0.593451 0.976052 +v -6.445984 -0.593451 0.958755 +v -6.402256 -0.565129 0.996974 +v -6.442657 -0.556564 1.008954 +v -6.445984 -0.593451 1.018389 +v -6.411033 -0.593451 1.008025 +v -6.523459 -0.556564 1.000939 +v -6.563859 -0.559614 0.980946 +v -6.561738 -0.593451 0.993078 +v -6.526786 -0.593451 1.010375 +v -6.563859 -0.559614 0.948973 +v -6.523459 -0.568179 0.936994 +v -6.526786 -0.593451 0.950742 +v -6.561738 -0.593451 0.961106 +v -6.442657 2.173190 -0.945007 +v -6.402256 2.170140 -0.965000 +v -6.411033 2.198462 -0.976052 +v -6.445984 2.198462 -0.958755 +v -6.402256 2.170140 -0.996974 +v -6.442657 2.161575 -1.008954 +v -6.445984 2.198462 -1.018389 +v -6.411033 2.198462 -1.008025 +v -6.523459 2.161575 -1.000939 +v -6.563859 2.164626 -0.980946 +v -6.561738 2.198462 -0.993078 +v -6.526786 2.198462 -1.010375 +v -6.563859 2.164626 -0.948973 +v -6.523459 2.173190 -0.936994 +v -6.526786 2.198462 -0.950742 +v -6.561738 2.198462 -0.961106 +v -6.442657 2.161575 1.008954 +v -6.402256 2.170140 0.996974 +v -6.411033 2.198462 1.008025 +v -6.445984 2.198462 1.018389 +v -6.402256 2.170140 0.965000 +v -6.442657 2.173190 0.945007 +v -6.445984 2.198462 0.958755 +v -6.411033 2.198462 0.976052 +v -6.523459 2.173190 0.936994 +v -6.563859 2.164626 0.948973 +v -6.561738 2.198462 0.961106 +v -6.526786 2.198462 0.950742 +v -6.563859 2.164626 0.980946 +v -6.523459 2.161575 1.000939 +v -6.526786 2.198462 1.010375 +v -6.561738 2.198462 0.993078 +v -6.553877 -0.465786 -0.945893 +v -6.553877 -0.391027 -1.016794 +v -6.513477 -0.378515 -1.047717 +v -6.516804 -0.490395 -0.977756 +v -6.557206 -0.493445 -0.957762 +v -6.553877 -0.476256 -0.929074 +v -6.553877 -0.520584 -0.836066 +v -6.553877 -0.401497 -0.999974 +v -6.553877 -0.533344 -0.820911 +v -6.553877 -0.489016 -0.913920 +v -6.557206 -0.516675 -0.925790 +v -6.516804 -0.525240 -0.913810 +v -6.513477 -0.558888 -0.799455 +v -6.385606 -0.512302 -0.930838 +v -6.291310 -0.561714 -0.838398 +v -6.432674 -0.569918 -0.807469 +v -6.436002 -0.536270 -0.921823 +v -6.395600 -0.533220 -0.941817 +v -6.365606 -0.503218 -0.948664 +v -6.271310 -0.430573 -1.024224 +v -6.271310 -0.552631 -0.856225 +v -6.291310 -0.416426 -1.038371 +v -6.385606 -0.489071 -0.962811 +v -6.395600 -0.509990 -0.973790 +v -6.436002 -0.501425 -0.985770 +v -6.432674 -0.389545 -1.055730 +v -6.553877 -0.489016 0.913920 +v -6.553877 -0.533344 0.820911 +v -6.513477 -0.558888 0.799455 +v -6.516804 -0.525240 0.913810 +v -6.557206 -0.516675 0.925790 +v -6.553877 -0.476256 0.929074 +v -6.553877 -0.401497 0.999974 +v -6.553877 -0.520584 0.836066 +v -6.553877 -0.391027 1.016794 +v -6.553877 -0.465786 0.945893 +v -6.557206 -0.493445 0.957762 +v -6.516804 -0.490395 0.977756 +v -6.513477 -0.378515 1.047717 +v -6.385606 -0.489071 0.962811 +v -6.291310 -0.416426 1.038371 +v -6.432674 -0.389545 1.055730 +v -6.436002 -0.501425 0.985770 +v -6.395600 -0.509990 0.973790 +v -6.365606 -0.503218 0.948664 +v -6.271310 -0.552632 0.856225 +v -6.271310 -0.430573 1.024224 +v -6.291310 -0.561714 0.838398 +v -6.385606 -0.512302 0.930838 +v -6.395600 -0.533220 0.941817 +v -6.436002 -0.536270 0.921823 +v -6.432674 -0.569918 0.807469 +v -6.553877 2.094027 -0.913920 +v -6.553877 2.138355 -0.820911 +v -6.513477 2.163900 -0.799455 +v -6.516804 2.130251 -0.913810 +v -6.557206 2.121686 -0.925790 +v -6.553877 2.081267 -0.929074 +v -6.553877 2.006508 -0.999974 +v -6.553877 2.125595 -0.836066 +v -6.553877 1.996038 -1.016794 +v -6.553877 2.070798 -0.945893 +v -6.557206 2.098456 -0.957762 +v -6.516804 2.095406 -0.977756 +v -6.513477 1.983526 -1.047717 +v -6.385606 2.094083 -0.962811 +v -6.291310 2.021437 -1.038371 +v -6.432674 1.994556 -1.055730 +v -6.436002 2.106436 -0.985770 +v -6.395600 2.115001 -0.973790 +v -6.365606 2.108230 -0.948664 +v -6.271310 2.157643 -0.856225 +v -6.271310 2.035584 -1.024224 +v -6.291310 2.166726 -0.838398 +v -6.385606 2.117313 -0.930838 +v -6.395600 2.138231 -0.941817 +v -6.436002 2.141281 -0.921823 +v -6.432674 2.174929 -0.807469 +v -6.553877 2.070798 0.945893 +v -6.553877 1.996038 1.016794 +v -6.513477 1.983526 1.047717 +v -6.516804 2.095406 0.977756 +v -6.557206 2.098456 0.957762 +v -6.553877 2.081267 0.929074 +v -6.553877 2.125595 0.836066 +v -6.553877 2.006508 0.999974 +v -6.553877 2.138355 0.820911 +v -6.553877 2.094027 0.913920 +v -6.557206 2.121686 0.925790 +v -6.516804 2.130251 0.913810 +v -6.513477 2.163900 0.799455 +v -6.385606 2.117313 0.930838 +v -6.291310 2.166726 0.838398 +v -6.432674 2.174929 0.807469 +v -6.436002 2.141281 0.921823 +v -6.395600 2.138231 0.941817 +v -6.365606 2.108230 0.948664 +v -6.271310 2.035584 1.024224 +v -6.271310 2.157642 0.856225 +v -6.291310 2.021437 1.038371 +v -6.385606 2.094083 0.962811 +v -6.395600 2.115001 0.973790 +v -6.436002 2.106436 0.985770 +v -6.432674 1.994556 1.055730 +v -5.662365 0.319327 0.014327 +v -5.654130 0.637622 0.004776 +v -5.678872 0.319913 0.004776 +v -5.567191 0.636911 0.014326 +v -5.621512 0.318617 0.023877 +v -5.549762 0.316772 0.028652 +v -5.745218 -0.322582 0.023877 +v -5.818439 -0.655778 0.033999 +v -5.793291 -0.666414 0.041447 +v -5.673468 -0.324427 0.028652 +v -5.857554 -0.660152 0.004776 +v -5.843617 -0.654147 0.024450 +v -5.770397 -0.320952 0.014327 +v -5.786904 -0.320366 0.004776 +v -5.621512 1.286394 0.023877 +v -5.567191 0.968100 0.014326 +v -5.549762 1.288239 0.028652 +v -5.654130 0.967390 0.004776 +v -5.662365 1.285684 0.014327 +v -5.678872 1.285098 0.004776 +v -5.770397 1.925963 0.014327 +v -5.843617 2.259158 0.024450 +v -5.857554 2.265163 0.004776 +v -5.786904 1.925378 0.004776 +v -5.793291 2.271426 0.041447 +v -5.818439 2.260789 0.033999 +v -5.745218 1.927594 0.023877 +v -5.673468 1.929438 0.028652 +v -5.662373 0.816833 0.483178 +v -5.654153 0.807282 0.164883 +v -5.678880 0.807282 0.482593 +v -5.567214 0.816831 0.165594 +v -5.621520 0.826382 0.483889 +v -5.549770 0.831158 0.485734 +v -5.745222 0.826382 1.125088 +v -5.818439 0.836505 1.458283 +v -5.793291 0.843953 1.468920 +v -5.673470 0.831158 1.126933 +v -5.857554 0.807282 1.462658 +v -5.843617 0.826955 1.456653 +v -5.770399 0.816833 1.123458 +v -5.786907 0.807282 1.122872 +v -5.621520 0.826382 -0.483889 +v -5.567214 0.816831 -0.165594 +v -5.549770 0.831158 -0.485734 +v -5.654153 0.807282 -0.164883 +v -5.662373 0.816833 -0.483178 +v -5.678880 0.807282 -0.482593 +v -5.770399 0.816833 -1.123458 +v -5.843617 0.826955 -1.456653 +v -5.857554 0.807282 -1.462658 +v -5.786907 0.807282 -1.122872 +v -5.793291 0.843953 -1.468920 +v -5.818439 0.836505 -1.458283 +v -5.745222 0.826382 -1.125088 +v -5.673470 0.831158 -1.126933 +v -5.236672 0.310729 -0.014327 +v -5.055585 0.632729 -0.004776 +v -5.219225 0.310126 -0.004776 +v -5.150524 0.633505 -0.014326 +v -5.281282 0.311505 -0.023877 +v -5.353973 0.313366 -0.028652 +v -5.575592 -0.327919 -0.023877 +v -5.732744 -0.664128 -0.033999 +v -5.768106 -0.668046 -0.041447 +v -5.648283 -0.326058 -0.028652 +v -5.703842 -0.674308 -0.004776 +v -5.707567 -0.665758 -0.024450 +v -5.550415 -0.329550 -0.014327 +v -5.532968 -0.330152 -0.004776 +v -5.281282 0.311505 0.023877 +v -5.150524 0.633505 0.014326 +v -5.353973 0.313366 0.028652 +v -5.055585 0.632729 0.004776 +v -5.236672 0.310729 0.014327 +v -5.219225 0.310126 0.004776 +v -5.550415 -0.329550 0.014327 +v -5.707567 -0.665758 0.024450 +v -5.703842 -0.674308 0.004776 +v -5.532968 -0.330152 0.004776 +v -5.768106 -0.668046 0.041447 +v -5.732744 -0.664128 0.033999 +v -5.575592 -0.327919 0.023877 +v -5.648283 -0.326058 0.028652 +v -5.621512 0.318617 -0.023877 +v -5.567191 0.636911 -0.014326 +v -5.549762 0.316772 -0.028652 +v -5.654130 0.637622 -0.004776 +v -5.662365 0.319327 -0.014327 +v -5.678872 0.319913 -0.004776 +v -5.770397 -0.320952 -0.014327 +v -5.843617 -0.654147 -0.024450 +v -5.857554 -0.660152 -0.004776 +v -5.786904 -0.320366 -0.004776 +v -5.793291 -0.666414 -0.041447 +v -5.818439 -0.655778 -0.033999 +v -5.745218 -0.322582 -0.023877 +v -5.673468 -0.324427 -0.028652 +v -5.236681 0.816833 -0.491777 +v -5.055609 0.807282 -0.169776 +v -5.219234 0.807282 -0.492378 +v -5.150547 0.816831 -0.169000 +v -5.281291 0.826382 -0.491001 +v -5.353982 0.831158 -0.489140 +v -5.575594 0.826382 -1.130425 +v -5.732744 0.836505 -1.466634 +v -5.768106 0.843953 -1.470551 +v -5.648285 0.831158 -1.128564 +v -5.703842 0.807282 -1.476814 +v -5.707567 0.826955 -1.468264 +v -5.550417 0.816833 -1.132056 +v -5.532970 0.807282 -1.132658 +v -5.281291 0.778629 -0.491001 +v -5.150547 0.788180 -0.169000 +v -5.353982 0.773854 -0.489140 +v -5.055609 0.797730 -0.169776 +v -5.236681 0.788178 -0.491777 +v -5.219234 0.797730 -0.492378 +v -5.550417 0.788178 -1.132056 +v -5.707567 0.778056 -1.468264 +v -5.703842 0.797730 -1.476814 +v -5.532970 0.797730 -1.132658 +v -5.768106 0.761058 -1.470551 +v -5.732744 0.768506 -1.466634 +v -5.575594 0.778629 -1.130425 +v -5.648285 0.773854 -1.128564 +v -5.662373 0.788178 -0.483178 +v -5.654153 0.797730 -0.164883 +v -5.678880 0.797730 -0.482593 +v -5.567214 0.788180 -0.165594 +v -5.621520 0.778629 -0.483889 +v -5.549770 0.773854 -0.485734 +v -5.745222 0.778629 -1.125088 +v -5.818439 0.768506 -1.458283 +v -5.793291 0.761058 -1.468920 +v -5.673470 0.773854 -1.126933 +v -5.857554 0.797730 -1.462658 +v -5.843617 0.778056 -1.456653 +v -5.770399 0.788178 -1.123457 +v -5.786907 0.797730 -1.122872 +v -5.236681 0.788178 0.491777 +v -5.055609 0.797730 0.169776 +v -5.219234 0.797730 0.492378 +v -5.150547 0.788180 0.169000 +v -5.281291 0.778629 0.491001 +v -5.353982 0.773854 0.489140 +v -5.575594 0.778629 1.130425 +v -5.732744 0.768506 1.466634 +v -5.768106 0.761058 1.470551 +v -5.648285 0.773854 1.128564 +v -5.703842 0.797730 1.476814 +v -5.707567 0.778056 1.468264 +v -5.550417 0.788178 1.132056 +v -5.532970 0.797730 1.132658 +v -5.621520 0.778629 0.483889 +v -5.567214 0.788180 0.165594 +v -5.549770 0.773854 0.485734 +v -5.654153 0.797730 0.164883 +v -5.662373 0.788178 0.483178 +v -5.678880 0.797730 0.482593 +v -5.770399 0.788178 1.123458 +v -5.843617 0.778056 1.456653 +v -5.857554 0.797730 1.462658 +v -5.786907 0.797730 1.122872 +v -5.793291 0.761058 1.468920 +v -5.818439 0.768506 1.458283 +v -5.745222 0.778629 1.125088 +v -5.673470 0.773854 1.126933 +v -5.281291 0.826382 0.491001 +v -5.150547 0.816831 0.169000 +v -5.353982 0.831158 0.489140 +v -5.055609 0.807282 0.169776 +v -5.236681 0.816833 0.491777 +v -5.219234 0.807282 0.492378 +v -5.550417 0.816833 1.132056 +v -5.707567 0.826955 1.468264 +v -5.703842 0.807282 1.476814 +v -5.532970 0.807282 1.132658 +v -5.768106 0.843953 1.470551 +v -5.732744 0.836505 1.466634 +v -5.575594 0.826382 1.130425 +v -5.648285 0.831158 1.128564 +v -5.236672 1.294282 0.014327 +v -5.055585 0.972282 0.004776 +v -5.219225 1.294885 0.004776 +v -5.150524 0.971506 0.014326 +v -5.281282 1.293507 0.023877 +v -5.353973 1.291646 0.028652 +v -5.575592 1.932930 0.023877 +v -5.732744 2.269139 0.033999 +v -5.768106 2.273057 0.041447 +v -5.648283 1.931070 0.028652 +v -5.703842 2.279319 0.004776 +v -5.707567 2.270770 0.024450 +v -5.550415 1.934562 0.014327 +v -5.532968 1.935163 0.004776 +v -5.281282 1.293507 -0.023877 +v -5.150524 0.971506 -0.014326 +v -5.353973 1.291646 -0.028652 +v -5.055585 0.972282 -0.004776 +v -5.236672 1.294282 -0.014327 +v -5.219225 1.294885 -0.004776 +v -5.550415 1.934562 -0.014327 +v -5.707567 2.270770 -0.024450 +v -5.703842 2.279319 -0.004776 +v -5.532968 1.935163 -0.004776 +v -5.768106 2.273057 -0.041447 +v -5.732744 2.269139 -0.033999 +v -5.575592 1.932930 -0.023877 +v -5.648283 1.931070 -0.028652 +v -5.662365 1.285684 -0.014327 +v -5.654130 0.967390 -0.004776 +v -5.678872 1.285098 -0.004776 +v -5.567191 0.968100 -0.014326 +v -5.621512 1.286394 -0.023877 +v -5.549762 1.288239 -0.028652 +v -5.745218 1.927594 -0.023877 +v -5.818439 2.260789 -0.033999 +v -5.793291 2.271426 -0.041447 +v -5.673468 1.929438 -0.028652 +v -5.857554 2.265163 -0.004776 +v -5.843617 2.259158 -0.024450 +v -5.770397 1.925963 -0.014327 +v -5.786904 1.925378 -0.004776 +v -5.920925 2.326209 -0.039918 +v -6.012501 2.314141 -0.142722 +v -5.867057 2.315140 -0.179456 +v -5.851737 2.309087 -0.067039 +v -5.876886 2.298450 -0.059590 +v -5.890823 2.304455 -0.039918 +v -5.961326 2.332531 0.000000 +v -6.052902 2.320463 0.102805 +v -6.052902 2.320463 -0.102805 +v -6.012501 2.314141 0.142722 +v -5.920925 2.326209 0.039918 +v -5.890823 2.304455 0.039918 +v -5.876886 2.298450 0.059590 +v -5.851737 2.309087 0.067039 +v -5.867057 2.315140 0.179456 +v -5.745853 2.354991 0.039918 +v -5.745853 2.347372 0.145250 +v -5.786254 2.328774 0.179456 +v -5.770935 2.322721 0.067039 +v -5.735574 2.318803 0.059590 +v -5.731849 2.327352 0.039918 +v -5.745853 2.365859 0.000000 +v -5.745853 2.358239 -0.105333 +v -5.745853 2.358240 0.105333 +v -5.745853 2.347372 -0.145250 +v -5.745853 2.354991 -0.039918 +v -5.731849 2.327352 -0.039918 +v -5.735574 2.318803 -0.059590 +v -5.770935 2.322721 -0.067039 +v -5.786254 2.328774 -0.179456 +v -5.920925 0.842423 1.523703 +v -6.012501 0.945228 1.511635 +v -5.867057 0.981962 1.512634 +v -5.851737 0.869545 1.506582 +v -5.876886 0.862096 1.495945 +v -5.890823 0.842423 1.501950 +v -5.961326 0.802506 1.530026 +v -6.052902 0.699701 1.517958 +v -6.052902 0.905310 1.517958 +v -6.012501 0.659783 1.511635 +v -5.920925 0.762588 1.523703 +v -5.890823 0.762588 1.501950 +v -5.876886 0.742915 1.495945 +v -5.851737 0.735466 1.506582 +v -5.867057 0.623050 1.512634 +v -5.745853 0.762588 1.552486 +v -5.745853 0.657255 1.544866 +v -5.786254 0.623050 1.526268 +v -5.770935 0.735466 1.520215 +v -5.735574 0.742915 1.516298 +v -5.731849 0.762588 1.524846 +v -5.745853 0.802506 1.563353 +v -5.745853 0.907838 1.555734 +v -5.745853 0.697173 1.555735 +v -5.745853 0.947756 1.544866 +v -5.745853 0.842423 1.552486 +v -5.731849 0.842423 1.524846 +v -5.735574 0.862096 1.516298 +v -5.770935 0.869545 1.520215 +v -5.786254 0.981962 1.526268 +v -5.920925 -0.721198 0.039918 +v -6.012501 -0.709130 0.142722 +v -5.867057 -0.710129 0.179456 +v -5.851737 -0.704076 0.067039 +v -5.876886 -0.693439 0.059590 +v -5.890823 -0.699444 0.039918 +v -5.961326 -0.727520 0.000000 +v -6.052902 -0.715452 -0.102805 +v -6.052902 -0.715452 0.102805 +v -6.012501 -0.709130 -0.142722 +v -5.920925 -0.721198 -0.039918 +v -5.890823 -0.699444 -0.039918 +v -5.876886 -0.693439 -0.059590 +v -5.851737 -0.704076 -0.067039 +v -5.867057 -0.710129 -0.179456 +v -5.745853 -0.749980 -0.039918 +v -5.745853 -0.742361 -0.145250 +v -5.786254 -0.723762 -0.179456 +v -5.770935 -0.717710 -0.067039 +v -5.735574 -0.713792 -0.059590 +v -5.731849 -0.722341 -0.039918 +v -5.745853 -0.760847 0.000000 +v -5.745853 -0.753228 0.105333 +v -5.745853 -0.753229 -0.105333 +v -5.745853 -0.742361 0.145250 +v -5.745853 -0.749980 0.039918 +v -5.731849 -0.722341 0.039918 +v -5.735574 -0.713792 0.059590 +v -5.770935 -0.717710 0.067039 +v -5.786254 -0.723762 0.179456 +v -5.920925 0.762588 -1.523703 +v -6.012501 0.659783 -1.511635 +v -5.867057 0.623050 -1.512634 +v -5.851737 0.735466 -1.506582 +v -5.876886 0.742915 -1.495945 +v -5.890823 0.762588 -1.501950 +v -5.961326 0.802506 -1.530026 +v -6.052902 0.905310 -1.517958 +v -6.052902 0.699701 -1.517958 +v -6.012501 0.945228 -1.511635 +v -5.920925 0.842423 -1.523703 +v -5.890823 0.842423 -1.501950 +v -5.876886 0.862096 -1.495945 +v -5.851737 0.869545 -1.506582 +v -5.867057 0.981962 -1.512634 +v -5.745853 0.842423 -1.552486 +v -5.745853 0.947756 -1.544866 +v -5.786254 0.981962 -1.526268 +v -5.770935 0.869545 -1.520215 +v -5.735574 0.862096 -1.516298 +v -5.731849 0.842423 -1.524846 +v -5.745853 0.802506 -1.563353 +v -5.745853 0.697173 -1.555734 +v -5.745853 0.907838 -1.555735 +v -5.745853 0.657255 -1.544866 +v -5.745853 0.762588 -1.552486 +v -5.731849 0.762588 -1.524846 +v -5.735574 0.742915 -1.516298 +v -5.770935 0.735466 -1.520215 +v -5.786254 0.623050 -1.526268 +v -5.786254 1.608455 1.312736 +v -5.786254 1.801940 1.172162 +v -5.745853 1.811463 1.181685 +v -5.745853 1.614570 1.324736 +v -5.867057 1.793926 1.161132 +v -5.867057 1.600442 1.301706 +v -6.028662 1.597385 1.295707 +v -6.028662 1.789166 1.156371 +v -5.786254 1.183310 1.494377 +v -5.786254 1.390806 1.423634 +v -5.745853 1.396920 1.435634 +v -5.745853 1.149105 1.512976 +v -5.867057 1.386593 1.410668 +v -5.867057 1.179098 1.481410 +v -6.012501 1.142363 1.480412 +v -6.028662 1.383536 1.404669 +v -5.786254 0.214205 1.423634 +v -5.786254 0.421701 1.494377 +v -5.745853 0.455906 1.512976 +v -5.745853 0.208091 1.435634 +v -5.867057 0.425914 1.481410 +v -5.867057 0.218418 1.410668 +v -6.028662 0.221475 1.404669 +v -6.012501 0.462648 1.480412 +v -5.786254 -0.196929 1.172162 +v -5.786254 -0.003444 1.312736 +v -5.745853 -0.009558 1.324736 +v -5.745853 -0.206452 1.181685 +v -5.867057 0.004570 1.301706 +v -5.867057 -0.188915 1.161132 +v -6.028662 -0.184154 1.156371 +v -6.028662 0.007626 1.295707 +v -5.786254 -0.510230 0.805950 +v -5.786254 -0.369656 0.999434 +v -5.745853 -0.379179 1.008958 +v -5.745853 -0.522230 0.812064 +v -5.867057 -0.358626 0.991421 +v -5.867057 -0.499201 0.797936 +v -6.028662 -0.493202 0.794879 +v -6.028662 -0.353866 0.986660 +v -5.786254 -0.691871 0.380805 +v -5.786254 -0.621128 0.588301 +v -5.745853 -0.633128 0.594414 +v -5.745853 -0.710470 0.346599 +v -5.867057 -0.608162 0.584087 +v -5.867057 -0.678905 0.376592 +v -6.012501 -0.677906 0.339858 +v -6.028662 -0.602163 0.581030 +v -5.786254 -0.621128 -0.588301 +v -5.786254 -0.691871 -0.380805 +v -5.745853 -0.710470 -0.346599 +v -5.745853 -0.633128 -0.594414 +v -5.867057 -0.678905 -0.376592 +v -5.867057 -0.608162 -0.584087 +v -6.028662 -0.602163 -0.581030 +v -6.012501 -0.677906 -0.339858 +v -5.786254 -0.369656 -0.999434 +v -5.786254 -0.510230 -0.805950 +v -5.745853 -0.522230 -0.812064 +v -5.745853 -0.379179 -1.008958 +v -5.867057 -0.499201 -0.797936 +v -5.867057 -0.358626 -0.991421 +v -6.028662 -0.353866 -0.986660 +v -6.028662 -0.493202 -0.794879 +v -5.786254 -0.003444 -1.312736 +v -5.786254 -0.196929 -1.172162 +v -5.745853 -0.206452 -1.181685 +v -5.745853 -0.009558 -1.324736 +v -5.867057 -0.188915 -1.161132 +v -5.867057 0.004570 -1.301706 +v -6.028662 0.007626 -1.295707 +v -6.028662 -0.184154 -1.156371 +v -5.786254 0.421701 -1.494377 +v -5.786254 0.214205 -1.423634 +v -5.745853 0.208091 -1.435634 +v -5.745853 0.455906 -1.512976 +v -5.867057 0.218418 -1.410668 +v -5.867057 0.425914 -1.481410 +v -6.012501 0.462648 -1.480412 +v -6.028662 0.221475 -1.404669 +v -5.786254 1.390806 -1.423634 +v -5.786254 1.183310 -1.494377 +v -5.745853 1.149105 -1.512976 +v -5.745853 1.396920 -1.435634 +v -5.867057 1.179098 -1.481410 +v -5.867057 1.386593 -1.410668 +v -6.028662 1.383536 -1.404669 +v -6.012501 1.142363 -1.480412 +v -5.786254 1.801940 -1.172162 +v -5.786254 1.608455 -1.312736 +v -5.745853 1.614570 -1.324736 +v -5.745853 1.811463 -1.181685 +v -5.867057 1.600442 -1.301706 +v -5.867057 1.793926 -1.161132 +v -6.028662 1.789166 -1.156371 +v -6.028662 1.597385 -1.295707 +v -5.786254 2.115242 -0.805950 +v -5.786254 1.974667 -0.999434 +v -5.745853 1.984190 -1.008958 +v -5.745853 2.127242 -0.812064 +v -5.867057 1.963638 -0.991421 +v -5.867057 2.104212 -0.797936 +v -6.028662 2.098213 -0.794879 +v -6.028662 1.958877 -0.986660 +v -5.786254 2.296882 -0.380805 +v -5.786254 2.226139 -0.588301 +v -5.745853 2.238139 -0.594414 +v -5.745853 2.315482 -0.346599 +v -5.867057 2.213174 -0.584087 +v -5.867057 2.283916 -0.376592 +v -6.012501 2.282918 -0.339858 +v -6.028662 2.207175 -0.581030 +v -5.867057 2.104212 0.797936 +v -5.867057 1.963638 0.991421 +v -6.028662 1.958877 0.986660 +v -6.028662 2.098213 0.794879 +v -5.786254 1.974667 0.999434 +v -5.786254 2.115242 0.805950 +v -5.745853 2.127242 0.812064 +v -5.745853 1.984190 1.008958 +v -5.786254 2.226139 0.588301 +v -5.786254 2.296882 0.380805 +v -5.745853 2.315482 0.346599 +v -5.745853 2.238139 0.594414 +v -5.867057 2.283916 0.376592 +v -5.867057 2.213174 0.584087 +v -6.028662 2.207175 0.581030 +v -6.012501 2.282918 0.339858 +v -6.513477 1.974667 -0.999434 +v -6.513477 2.115242 -0.805950 +v -6.553877 2.118239 -0.830721 +v -6.553877 1.999152 -0.994630 +v -6.432674 2.104212 -0.797936 +v -6.432674 1.963638 -0.991421 +v -6.271069 1.958877 -0.986660 +v -6.271069 2.098213 -0.794879 +v -6.513477 1.608455 -1.312736 +v -6.513477 1.801940 -1.172162 +v -6.553877 1.826425 -1.167358 +v -6.553877 1.614570 -1.324736 +v -6.432674 1.793926 -1.161132 +v -6.432674 1.600442 -1.301706 +v -6.271069 1.597385 -1.295707 +v -6.271069 1.789166 -1.156371 +v -6.513477 1.163352 -1.497538 +v -6.513477 1.390806 -1.423634 +v -6.553877 1.396920 -1.435634 +v -6.553877 1.165458 -1.510840 +v -6.432674 1.386593 -1.410668 +v -6.432674 1.159138 -1.484572 +v -6.254909 1.142363 -1.480412 +v -6.271069 1.383536 -1.404669 +v -6.513477 0.682926 -1.535751 +v -6.513477 0.922086 -1.535751 +v -6.553877 0.924192 -1.549053 +v -6.553877 0.680819 -1.549053 +v -6.432674 0.922086 -1.522118 +v -6.432674 0.682926 -1.522118 +v -6.254909 0.699701 -1.517958 +v -6.254909 0.905310 -1.517958 +v -6.513477 0.214205 -1.423634 +v -6.513477 0.441659 -1.497538 +v -6.553877 0.439553 -1.510840 +v -6.553877 0.208091 -1.435634 +v -6.432674 0.445873 -1.484572 +v -6.432674 0.218418 -1.410668 +v -6.271069 0.221475 -1.404669 +v -6.254909 0.462648 -1.480412 +v -6.513477 -0.196929 -1.172162 +v -6.513477 -0.003444 -1.312736 +v -6.553877 -0.009558 -1.324736 +v -6.553877 -0.221414 -1.167358 +v -6.432674 0.004570 -1.301706 +v -6.432674 -0.188915 -1.161132 +v -6.271069 -0.184154 -1.156371 +v -6.271069 0.007626 -1.295707 +v -6.513477 -0.510230 -0.805950 +v -6.513477 -0.369656 -0.999434 +v -6.553877 -0.394141 -0.994630 +v -6.553877 -0.513228 -0.830721 +v -6.432674 -0.358626 -0.991421 +v -6.432674 -0.499201 -0.797936 +v -6.271069 -0.493202 -0.794879 +v -6.271069 -0.353866 -0.986660 +v -6.513477 -0.695033 -0.360846 +v -6.513477 -0.621128 -0.588301 +v -6.553877 -0.624126 -0.613072 +v -6.553877 -0.708334 -0.362953 +v -6.432674 -0.608162 -0.584087 +v -6.432674 -0.682066 -0.356633 +v -6.254909 -0.677906 -0.339858 +v -6.271069 -0.602163 -0.581030 +v -6.513477 -0.733246 0.119580 +v -6.513477 -0.733246 -0.119580 +v -6.553877 -0.746547 -0.121686 +v -6.553877 -0.746547 0.121686 +v -6.432674 -0.719612 -0.119580 +v -6.432674 -0.719612 0.119580 +v -6.254909 -0.715452 0.102805 +v -6.254909 -0.715452 -0.102805 +v -6.513477 -0.621128 0.588301 +v -6.513477 -0.695033 0.360846 +v -6.553877 -0.708334 0.362953 +v -6.553877 -0.624126 0.613072 +v -6.432674 -0.682066 0.356633 +v -6.432674 -0.608162 0.584087 +v -6.271069 -0.602163 0.581030 +v -6.254909 -0.677906 0.339858 +v -6.513477 -0.369656 0.999434 +v -6.513477 -0.510230 0.805950 +v -6.553877 -0.513228 0.830721 +v -6.553877 -0.394141 0.994630 +v -6.432674 -0.499201 0.797936 +v -6.432674 -0.358626 0.991421 +v -6.271069 -0.353866 0.986660 +v -6.271069 -0.493202 0.794879 +v -6.513477 -0.003444 1.312736 +v -6.513477 -0.196929 1.172162 +v -6.553877 -0.221414 1.167358 +v -6.553877 -0.009558 1.324736 +v -6.432674 -0.188915 1.161132 +v -6.432674 0.004570 1.301706 +v -6.271069 0.007626 1.295707 +v -6.271069 -0.184154 1.156371 +v -6.513477 0.441659 1.497538 +v -6.513477 0.214205 1.423634 +v -6.553877 0.208091 1.435634 +v -6.553877 0.439553 1.510840 +v -6.432674 0.218418 1.410668 +v -6.432674 0.445873 1.484572 +v -6.254909 0.462648 1.480412 +v -6.271069 0.221475 1.404669 +v -6.513477 0.922086 1.535751 +v -6.513477 0.682926 1.535751 +v -6.553877 0.680819 1.549053 +v -6.553877 0.924192 1.549053 +v -6.432674 0.682926 1.522118 +v -6.432674 0.922086 1.522118 +v -6.254909 0.905310 1.517958 +v -6.254909 0.699701 1.517958 +v -6.513477 1.390806 1.423634 +v -6.513477 1.163352 1.497538 +v -6.553877 1.165458 1.510840 +v -6.553877 1.396920 1.435634 +v -6.432674 1.159138 1.484572 +v -6.432674 1.386593 1.410668 +v -6.271069 1.383536 1.404669 +v -6.254909 1.142363 1.480412 +v -6.513477 1.801940 1.172162 +v -6.513477 1.608455 1.312736 +v -6.553877 1.614570 1.324736 +v -6.553877 1.826425 1.167358 +v -6.432674 1.600442 1.301706 +v -6.432674 1.793926 1.161132 +v -6.271069 1.789166 1.156371 +v -6.271069 1.597385 1.295707 +v -6.513477 2.115242 0.805950 +v -6.513477 1.974667 0.999434 +v -6.553877 1.999152 0.994630 +v -6.553877 2.118239 0.830721 +v -6.432674 1.963638 0.991421 +v -6.432674 2.104212 0.797936 +v -6.271069 2.098213 0.794879 +v -6.271069 1.958877 0.986660 +v -6.513477 2.300044 0.360846 +v -6.513477 2.226139 0.588301 +v -6.553877 2.229137 0.613072 +v -6.553877 2.313346 0.362953 +v -6.432674 2.213174 0.584087 +v -6.432674 2.287078 0.356633 +v -6.254909 2.282918 0.339858 +v -6.271069 2.207175 0.581030 +v -6.432674 2.287078 -0.356633 +v -6.432674 2.213174 -0.584087 +v -6.271069 2.207175 -0.581030 +v -6.254909 2.282918 -0.339858 +v -6.513477 2.226139 -0.588301 +v -6.513477 2.300044 -0.360846 +v -6.553877 2.313346 -0.362953 +v -6.553877 2.229137 -0.613072 +v -6.513477 2.338258 -0.119580 +v -6.513477 2.338258 0.119580 +v -6.553877 2.351558 0.121686 +v -6.553877 2.351558 -0.121686 +v -6.432674 2.324623 0.119580 +v -6.432674 2.324623 -0.119580 +v -6.254909 2.320463 -0.102805 +v -6.254909 2.320463 0.102805 +v -6.432674 1.636714 -1.358798 +v -6.432674 1.829942 -1.220344 +v -6.291310 1.856823 -1.202985 +v -6.271069 1.639770 -1.364798 +v -6.513477 1.821929 -1.209314 +v -6.513477 1.628700 -1.347769 +v -6.553877 1.622586 -1.335769 +v -6.553877 1.834441 -1.178391 +v -6.432674 1.175993 -1.550078 +v -6.432674 1.411462 -1.473570 +v -6.271069 1.414518 -1.479569 +v -6.271069 1.177046 -1.556729 +v -6.513477 1.407249 -1.460604 +v -6.513477 1.171779 -1.537113 +v -6.553877 1.169673 -1.523810 +v -6.553877 1.401134 -1.448604 +v -6.432674 0.678712 -1.589626 +v -6.432674 0.926299 -1.589626 +v -6.271069 0.927352 -1.596276 +v -6.271069 0.677659 -1.596276 +v -6.513477 0.926299 -1.575993 +v -6.513477 0.678712 -1.575993 +v -6.553877 0.680819 -1.562691 +v -6.553877 0.924192 -1.562690 +v -6.432674 0.193550 -1.473570 +v -6.432674 0.429018 -1.550078 +v -6.271069 0.427966 -1.556729 +v -6.271069 0.190493 -1.479570 +v -6.513477 0.433232 -1.537113 +v -6.513477 0.197762 -1.460604 +v -6.553877 0.203877 -1.448604 +v -6.553877 0.435338 -1.523810 +v -6.432674 -0.224931 -1.220344 +v -6.432674 -0.031702 -1.358798 +v -6.271069 -0.034759 -1.364798 +v -6.291310 -0.251812 -1.202985 +v -6.513477 -0.023689 -1.347769 +v -6.513477 -0.216918 -1.209314 +v -6.553877 -0.229430 -1.178391 +v -6.553877 -0.017574 -1.335769 +v -6.432674 -0.747573 -0.373487 +v -6.432674 -0.675606 -0.600043 +v -6.291310 -0.667403 -0.630973 +v -6.271069 -0.754223 -0.374540 +v -6.513477 -0.662640 -0.595830 +v -6.513477 -0.734607 -0.369274 +v -6.553877 -0.721305 -0.367167 +v -6.553877 -0.637096 -0.617286 +v -6.432674 -0.787121 0.123794 +v -6.432674 -0.787121 -0.123794 +v -6.271069 -0.793770 -0.124846 +v -6.271069 -0.793770 0.124846 +v -6.513477 -0.773487 -0.123794 +v -6.513477 -0.773487 0.123794 +v -6.553877 -0.760186 0.121686 +v -6.553877 -0.760185 -0.121686 +v -6.432674 -0.675606 0.600043 +v -6.432674 -0.747573 0.373487 +v -6.271069 -0.754223 0.374540 +v -6.291310 -0.667403 0.630973 +v -6.513477 -0.734607 0.369274 +v -6.513477 -0.662640 0.595830 +v -6.553877 -0.637096 0.617286 +v -6.553877 -0.721305 0.367167 +v -6.432674 -0.031702 1.358798 +v -6.432674 -0.224931 1.220344 +v -6.291310 -0.251812 1.202985 +v -6.271069 -0.034759 1.364798 +v -6.513477 -0.216918 1.209314 +v -6.513477 -0.023689 1.347769 +v -6.553877 -0.017574 1.335769 +v -6.553877 -0.229430 1.178391 +v -6.432674 0.429018 1.550078 +v -6.432674 0.193550 1.473570 +v -6.271069 0.190493 1.479569 +v -6.271069 0.427966 1.556729 +v -6.513477 0.197762 1.460604 +v -6.513477 0.433232 1.537113 +v -6.553877 0.435338 1.523810 +v -6.553877 0.203877 1.448604 +v -6.432674 0.926299 1.589626 +v -6.432674 0.678712 1.589626 +v -6.271069 0.677659 1.596276 +v -6.271069 0.927352 1.596276 +v -6.513477 0.678712 1.575993 +v -6.513477 0.926299 1.575993 +v -6.553877 0.924192 1.562691 +v -6.553877 0.680819 1.562690 +v -6.432674 1.411462 1.473570 +v -6.432674 1.175993 1.550078 +v -6.271069 1.177046 1.556729 +v -6.271069 1.414518 1.479570 +v -6.513477 1.171779 1.537113 +v -6.513477 1.407249 1.460604 +v -6.553877 1.401134 1.448604 +v -6.553877 1.169673 1.523810 +v -6.432674 1.829942 1.220344 +v -6.432674 1.636714 1.358798 +v -6.271069 1.639770 1.364798 +v -6.291310 1.856823 1.202985 +v -6.513477 1.628700 1.347769 +v -6.513477 1.821929 1.209314 +v -6.553877 1.834441 1.178391 +v -6.553877 1.622586 1.335769 +v -6.432674 2.352584 0.373487 +v -6.432674 2.280617 0.600043 +v -6.291310 2.272414 0.630973 +v -6.271069 2.359235 0.374540 +v -6.513477 2.267651 0.595830 +v -6.513477 2.339618 0.369274 +v -6.553877 2.326316 0.367167 +v -6.553877 2.242107 0.617286 +v -6.513477 2.339618 -0.369274 +v -6.513477 2.267651 -0.595830 +v -6.553877 2.242107 -0.617286 +v -6.553877 2.326316 -0.367167 +v -6.432674 2.280617 -0.600043 +v -6.432674 2.352584 -0.373487 +v -6.271069 2.359235 -0.374540 +v -6.291310 2.272414 -0.630973 +v -6.432674 2.392132 -0.123794 +v -6.432674 2.392132 0.123794 +v -6.271069 2.398782 0.124846 +v -6.271069 2.398782 -0.124846 +v -6.513477 2.378499 0.123794 +v -6.513477 2.378499 -0.123794 +v -6.553877 2.365197 -0.121686 +v -6.553877 2.365196 0.121686 +v -5.786254 2.339618 0.369274 +v -5.786254 2.263110 0.604743 +v -5.745853 2.251110 0.598629 +v -5.745853 2.328452 0.350814 +v -5.867057 2.276076 0.608956 +v -5.867057 2.352584 0.373487 +v -6.028662 2.359235 0.374540 +v -6.048903 2.272414 0.630973 +v -5.786254 2.378499 -0.123794 +v -5.786254 2.378499 0.123794 +v -5.745853 2.367332 0.105333 +v -5.745853 2.367332 -0.105333 +v -5.867057 2.392132 0.123794 +v -5.867057 2.392132 -0.123794 +v -6.028662 2.398782 -0.124846 +v -6.028662 2.398782 0.124846 +v -5.786254 2.263110 -0.604743 +v -5.786254 2.339618 -0.369274 +v -5.745853 2.328451 -0.350814 +v -5.745853 2.251110 -0.598629 +v -5.867057 2.352584 -0.373487 +v -5.867057 2.276076 -0.608956 +v -6.048903 2.272414 -0.630973 +v -6.028662 2.359235 -0.374540 +v -5.786254 2.004746 -1.026496 +v -5.786254 2.150275 -0.826194 +v -5.745853 2.138274 -0.820080 +v -5.745853 1.995224 -1.016974 +v -5.867057 2.161304 -0.834208 +v -5.867057 2.015776 -1.034510 +v -6.048903 2.035584 -1.024224 +v -6.048903 2.157643 -0.856225 +v -5.786254 1.628700 -1.347769 +v -5.786254 1.829002 -1.202241 +v -5.745853 1.819479 -1.192718 +v -5.745853 1.622586 -1.335769 +v -5.867057 1.837016 -1.213270 +v -5.867057 1.636714 -1.358798 +v -6.028662 1.639770 -1.364798 +v -6.048903 1.856823 -1.202985 +v -5.786254 1.171779 -1.537113 +v -5.786254 1.407249 -1.460604 +v -5.745853 1.401134 -1.448604 +v -5.745853 1.153319 -1.525946 +v -5.867057 1.411462 -1.473570 +v -5.867057 1.175993 -1.550078 +v -6.028662 1.177046 -1.556729 +v -6.028662 1.414518 -1.479569 +v -5.786254 0.678712 -1.575993 +v -5.786254 0.926299 -1.575993 +v -5.745853 0.907838 -1.564826 +v -5.745853 0.697173 -1.564826 +v -5.867057 0.926299 -1.589626 +v -5.867057 0.678712 -1.589626 +v -6.028662 0.677659 -1.596276 +v -6.028662 0.927352 -1.596276 +v -5.786254 0.197762 -1.460604 +v -5.786254 0.433232 -1.537113 +v -5.745853 0.451692 -1.525946 +v -5.745853 0.203877 -1.448604 +v -5.867057 0.429018 -1.550078 +v -5.867057 0.193550 -1.473570 +v -6.028662 0.190493 -1.479570 +v -6.028662 0.427966 -1.556729 +v -5.786254 -0.223990 -1.202241 +v -5.786254 -0.023689 -1.347769 +v -5.745853 -0.017574 -1.335769 +v -5.745853 -0.214468 -1.192718 +v -5.867057 -0.031702 -1.358798 +v -5.867057 -0.232005 -1.213270 +v -6.048903 -0.251812 -1.202985 +v -6.028662 -0.034759 -1.364798 +v -5.786254 -0.545263 -0.826194 +v -5.786254 -0.399735 -1.026496 +v -5.745853 -0.390212 -1.016974 +v -5.745853 -0.533263 -0.820080 +v -5.867057 -0.410765 -1.034510 +v -5.867057 -0.556293 -0.834208 +v -6.048903 -0.552631 -0.856225 +v -6.048903 -0.430573 -1.024224 +v -5.786254 -0.734607 -0.369274 +v -5.786254 -0.658098 -0.604743 +v -5.745853 -0.646098 -0.598629 +v -5.745853 -0.723441 -0.350814 +v -5.867057 -0.671065 -0.608956 +v -5.867057 -0.747573 -0.373487 +v -6.028662 -0.754223 -0.374540 +v -6.048903 -0.667403 -0.630973 +v -5.786254 -0.773487 0.123794 +v -5.786254 -0.773487 -0.123794 +v -5.745853 -0.762321 -0.105333 +v -5.745853 -0.762321 0.105333 +v -5.867057 -0.787121 -0.123794 +v -5.867057 -0.787121 0.123794 +v -6.028662 -0.793770 0.124846 +v -6.028662 -0.793770 -0.124846 +v -5.786254 -0.658098 0.604743 +v -5.786254 -0.734607 0.369274 +v -5.745853 -0.723440 0.350814 +v -5.745853 -0.646098 0.598629 +v -5.867057 -0.747573 0.373487 +v -5.867057 -0.671065 0.608956 +v -6.048903 -0.667403 0.630973 +v -6.028662 -0.754223 0.374540 +v -5.786254 -0.399735 1.026496 +v -5.786254 -0.545263 0.826194 +v -5.745853 -0.533263 0.820080 +v -5.745853 -0.390212 1.016974 +v -5.867057 -0.556293 0.834208 +v -5.867057 -0.410765 1.034510 +v -6.048903 -0.430573 1.024224 +v -6.048903 -0.552632 0.856225 +v -5.786254 -0.023689 1.347769 +v -5.786254 -0.223990 1.202241 +v -5.745853 -0.214468 1.192718 +v -5.745853 -0.017574 1.335769 +v -5.867057 -0.232005 1.213270 +v -5.867057 -0.031702 1.358798 +v -6.028662 -0.034759 1.364798 +v -6.048903 -0.251812 1.202985 +v -5.786254 0.433232 1.537113 +v -5.786254 0.197762 1.460604 +v -5.745853 0.203877 1.448604 +v -5.745853 0.451692 1.525946 +v -5.867057 0.193550 1.473570 +v -5.867057 0.429018 1.550078 +v -6.028662 0.427966 1.556729 +v -6.028662 0.190493 1.479569 +v -5.786254 0.926299 1.575993 +v -5.786254 0.678712 1.575993 +v -5.745853 0.697173 1.564826 +v -5.745853 0.907838 1.564826 +v -5.867057 0.678712 1.589626 +v -5.867057 0.926299 1.589626 +v -6.028662 0.927352 1.596276 +v -6.028662 0.677659 1.596276 +v -5.786254 1.407249 1.460604 +v -5.786254 1.171779 1.537113 +v -5.745853 1.153319 1.525946 +v -5.745853 1.401134 1.448604 +v -5.867057 1.175993 1.550078 +v -5.867057 1.411462 1.473570 +v -6.028662 1.414518 1.479570 +v -6.028662 1.177046 1.556729 +v -5.867057 2.015776 1.034510 +v -5.867057 2.161304 0.834208 +v -6.048903 2.157642 0.856225 +v -6.048903 2.035584 1.024224 +v -5.786254 2.150275 0.826194 +v -5.786254 2.004746 1.026496 +v -5.745853 1.995224 1.016974 +v -5.745853 2.138274 0.820080 +v -5.786254 1.829002 1.202241 +v -5.786254 1.628700 1.347769 +v -5.745853 1.622586 1.335769 +v -5.745853 1.819479 1.192718 +v -5.867057 1.636714 1.358798 +v -5.867057 1.837016 1.213270 +v -6.048903 1.856823 1.202985 +v -6.028662 1.639770 1.364798 +# 5797 vertices + +# 0 vertex parms + +# 0 texture vertices + +# 0 normals + +g shroud +f 5049 5019 5021 5033 5035 4907 4909 5047 +f 4951 4935 4937 4963 4965 4879 4881 4949 +f 5124 5125 5123 +f 5184 5185 5183 +f 5214 5215 5213 +f 5154 5155 5153 +f 5077 5061 5063 4893 4895 5089 5091 5075 +f 4993 4977 4979 4921 4923 5005 5007 4991 +s 853 +f 5127 5129 5126 +f 5149 5151 5148 +f 5179 5180 5181 +f 5187 5189 5186 +f 5209 5211 5208 +f 5772 5593 5592 5773 +f 5740 5569 5568 5741 +f 5708 5545 5544 5709 +f 5676 5513 5512 5677 +f 5644 5617 5616 5645 +f 5464 5605 5604 5465 +f 5432 4807 4806 5433 +f 5400 4781 4780 5401 +f 5368 5525 5524 5369 +f 5504 5637 5636 5505 +f 5240 5761 5760 5241 +f 5340 5789 5788 5341 +f 5320 5665 5664 5321 +f 5296 5697 5696 5297 +f 5184 5729 5728 5185 +f 5260 5437 5436 5261 +f 5236 5469 5468 5237 +f 5109 5509 5508 5110 +f 5308 5373 5372 5309 +f 5284 5405 5404 5285 +f 5794 5791 5790 5795 +f 5762 5759 5758 5763 +f 5730 5727 5726 5731 +f 5698 5695 5694 5699 +f 5666 5663 5662 5667 +f 5634 5631 5630 5635 +f 5602 5599 5598 5603 +f 5570 5567 5566 5571 +f 5538 5535 5534 5539 +f 5506 5503 5502 5507 +f 5474 5471 5470 5475 +f 5442 5439 5438 5443 +f 5410 5407 5406 5411 +f 5378 5375 5374 5379 +f 5346 5343 5342 5347 +f 5314 5311 5310 5315 +f 5282 5279 5278 5283 +f 5250 5247 5246 5251 +f 5787 5790 5793 5788 +f 5775 5766 5769 5776 +f 5759 5750 5753 5760 +f 5743 5734 5737 5744 +f 5727 5718 5721 5728 +f 5711 5702 5705 5712 +f 5695 5686 5689 5696 +f 5679 5670 5673 5680 +f 5663 5654 5657 5664 +f 5647 5638 5641 5648 +f 5627 5630 5633 5628 +f 5615 4867 4866 5616 +f 5607 5598 5601 5608 +f 5591 5582 5585 5592 +f 5575 4815 4814 5576 +f 5567 5558 5561 5568 +f 5551 4789 4788 5552 +f 5543 5534 5537 5544 +f 5527 5518 5521 5528 +f 5511 4841 4840 5512 +f 5499 5502 5505 5500 +f 5487 5478 5481 5488 +f 5471 5462 5465 5472 +f 5455 5446 5449 5456 +f 5439 5430 5433 5440 +f 5423 5414 5417 5424 +f 5407 5398 5401 5408 +f 5391 5382 5385 5392 +f 5375 5366 5369 5376 +f 5359 5350 5353 5360 +f 5339 5342 5345 5340 +f 5327 5318 5321 5328 +f 5311 5302 5305 5312 +f 5221 5294 5297 5216 +f 5287 5278 5281 5288 +f 5271 5179 5178 5272 +f 5263 5254 5257 5264 +f 5247 5238 5241 5248 +f 5161 5230 5233 5156 +f 5223 5338 5341 5224 +f 5212 5218 5217 5207 +f 5182 5188 5187 5177 +f 5152 5158 5157 5147 +f 5122 5128 5127 5117 +f 4869 4875 4874 4865 +f 4843 4849 4848 4839 +f 4821 4819 4818 4822 +f 4795 4793 4792 4796 +f 4837 4842 4841 4838 +f 4757 4752 4751 4754 +f 4749 4744 4743 4746 +f 4673 4670 4669 4671 +f 4667 4664 4663 4665 +f 5787 5788 5789 5786 +f 5771 5772 5773 5770 +f 5755 5756 5757 5754 +f 5739 5740 5741 5738 +f 5723 5724 5725 5722 +f 5707 5708 5709 5706 +f 5691 5692 5693 5690 +f 5675 5676 5677 5674 +f 5659 5660 5661 5658 +f 5643 5644 5645 5642 +f 5627 5628 5629 5626 +f 5611 5612 5613 5610 +f 5595 5596 5597 5594 +f 5579 5580 5581 5578 +f 5563 5564 5565 5562 +f 5547 5548 5549 5546 +f 5531 5532 5533 5530 +f 5515 5516 5517 5514 +f 5499 5500 5501 5498 +f 5483 5484 5485 5482 +f 5467 5468 5469 5466 +f 5451 5452 5453 5450 +f 5435 5436 5437 5434 +f 5419 5420 5421 5418 +f 5403 5404 5405 5402 +f 5387 5388 5389 5386 +f 5371 5372 5373 5370 +f 5355 5356 5357 5354 +f 5339 5340 5341 5338 +f 5323 5324 5325 5322 +f 5307 5308 5309 5306 +f 5291 5292 5293 5290 +f 5275 5276 5277 5274 +f 5259 5260 5261 5258 +f 5243 5244 5245 5242 +f 5227 5228 5229 5226 +f 5219 5221 5216 +f 5189 5190 5191 +f 5181 5182 5177 +f 5159 5161 5156 +f 5129 5130 5131 +f 5121 5122 5117 +f 4875 4876 4873 +f 4865 4866 4867 +f 4868 4869 4865 +f 4850 4851 4848 +f 4839 4840 4841 +f 4841 4843 4839 +f 4825 4821 4822 +f 4822 4823 4824 +f 4815 4816 4817 +f 4798 4799 4795 +f 4796 4797 4795 +f 4787 4789 4790 +f 4755 4756 4757 4754 +f 4672 4673 4671 +f 4662 4672 4752 4757 +f 4742 4755 4829 4850 +f 4670 4673 4664 4667 +f 4831 4826 4835 +f 5153 5147 5157 +f 5234 5227 5222 5231 +f 5258 5251 5246 5255 +f 5282 5275 5270 5279 +f 5306 5206 5209 5303 +f 5104 5331 5326 5131 +f 5362 5355 5350 5359 +f 5394 5387 5382 5391 +f 5426 5419 5414 5423 +f 5458 5451 5446 5455 +f 5490 5483 5478 5487 +f 5514 4838 4841 5511 +f 5546 5539 5534 5543 +f 5570 5563 5558 5567 +f 5594 5587 5582 5591 +f 5618 4864 4867 5615 +f 5650 5643 5638 5647 +f 5682 5675 5670 5679 +f 5714 5707 5702 5711 +f 5746 5739 5734 5743 +f 5778 5771 5766 5775 +f 5429 5268 5163 5170 5420 +f 5397 5292 5301 5388 +f 5365 5316 5325 5356 +f 5493 5348 5337 5484 +f 5461 5139 5141 5245 5452 +f 5256 5249 5752 5745 +f 5280 5273 5720 5713 +f 5304 5208 5215 5688 5681 +f 5124 5126 5329 5656 5649 +f 5154 5156 5233 5776 5769 +f 5488 5481 4858 4860 5621 +f 5360 5353 4832 4834 5517 +f 5392 5385 5540 5549 +f 5424 5417 5564 5573 +f 5456 5449 5588 5597 +f 4873 5609 5796 5785 4871 +f 4847 5629 5660 5669 4845 +f 5529 5692 5701 5536 +f 5553 5724 5733 5560 +f 5577 5756 5765 5584 +f 4814 4820 5748 5757 5576 +f 4788 4794 5716 5725 5552 +f 5521 5684 5693 5528 +f 5633 5652 5661 5628 +f 5601 5780 5797 5608 +f 5448 5441 5580 5589 +f 5416 5409 5556 5565 +f 5384 5377 5532 5541 +f 4833 5352 5501 5624 4827 +f 4859 5480 5473 5612 4853 +f 5232 5225 5792 5777 +f 5328 5321 5664 5657 +f 5214 5216 5297 5696 5689 +f 5272 5178 5185 5728 5721 +f 5248 5241 5760 5753 +f 5469 5236 5133 5140 5460 +f 5509 5109 5111 5349 5492 +f 5373 5308 5317 5364 +f 5405 5284 5293 5396 +f 5437 5260 5269 5428 +f 5770 5763 5758 5767 +f 5738 5731 5726 5735 +f 5706 5699 5694 5703 +f 5674 5667 5662 5671 +f 5642 5783 5786 5639 +f 4854 5611 5606 4877 +f 5586 5579 5574 5583 +f 5562 5555 5550 5559 +f 5538 5531 5526 5535 +f 4828 5623 5626 4851 +f 5482 5475 5470 5479 +f 5450 5443 5438 5447 +f 5418 5411 5406 5415 +f 5386 5379 5374 5383 +f 5354 5495 5498 5351 +f 5330 5323 5318 5327 +f 5194 5299 5294 5221 +f 5274 5176 5179 5271 +f 5250 5243 5238 5247 +f 5226 5335 5338 5223 +f 5123 5117 5127 +f 4818 4813 4822 +f 4746 4743 4849 4843 +f 4665 4663 4756 4745 +f 4669 4670 4668 +f 4751 4752 4753 4750 +f 4785 4782 4783 +f 4793 4794 4792 +f 4809 4810 4808 +f 4826 4827 4828 +f 4829 4830 4826 +f 4835 4836 4834 +f 4863 4864 4860 +f 4861 4862 4863 +f 5115 5116 5111 +f 5145 5146 5141 +f 5175 5176 5171 +f 5205 5206 5201 +f 5223 5224 5225 5222 +f 5231 5233 5230 +f 5247 5248 5249 5246 +f 5263 5264 5265 +f 5271 5272 5273 5270 +f 5287 5288 5289 5286 +f 5295 5297 5294 +f 5311 5312 5313 5310 +f 5327 5328 5329 +f 5335 5336 5337 5334 +f 5351 5352 5353 5350 +f 5367 5368 5369 5366 +f 5383 5384 5385 5382 +f 5399 5400 5401 5398 +f 5415 5416 5417 5414 +f 5431 5432 5433 5430 +f 5447 5448 5449 5446 +f 5463 5464 5465 5462 +f 5479 5480 5481 5478 +f 5495 5496 5497 5494 +f 5511 5512 5513 5510 +f 5527 5528 5529 5526 +f 5543 5544 5545 5542 +f 5559 5560 5561 5558 +f 5575 5576 5577 5574 +f 5591 5592 5593 5590 +f 5607 5608 5609 5606 +f 5623 5624 5625 5622 +f 5639 5640 5641 5638 +f 5655 5656 5657 5654 +f 5671 5672 5673 5670 +f 5687 5688 5689 5686 +f 5703 5704 5705 5702 +f 5719 5720 5721 5718 +f 5735 5736 5737 5734 +f 5751 5752 5753 5750 +f 5767 5768 5769 5766 +f 5783 5784 5785 5782 +f 4664 4673 4672 4662 +f 4665 4745 4744 4666 +f 4745 4756 4755 4742 +f 4746 4843 4842 4747 +f 4798 4777 4776 4799 +f 4850 4829 4828 4851 +f 4794 4788 4787 4792 +f 4830 4836 4835 4826 +f 4846 4840 4839 4844 +f 5130 5105 5104 5131 +f 5190 5165 5164 5191 +f 5125 5118 5117 5123 +f 5185 5178 5177 5183 +f 5335 5226 5229 5336 +f 5235 5134 5133 5236 +f 5243 5250 5253 5244 +f 5259 5266 5269 5260 +f 5176 5274 5277 5171 +f 5283 5290 5293 5284 +f 5299 5194 5193 5300 +f 5307 5314 5317 5308 +f 5323 5330 5333 5324 +f 5116 5346 5349 5111 +f 5495 5354 5357 5496 +f 5363 5370 5373 5364 +f 5379 5386 5389 5380 +f 5395 5402 5405 5396 +f 5411 5418 5421 5412 +f 5427 5434 5437 5428 +f 5443 5450 5453 5444 +f 5459 5466 5469 5460 +f 5475 5482 5485 5476 +f 5491 5506 5509 5492 +f 5623 4828 4827 5624 +f 5515 5522 5525 5516 +f 5531 5538 5541 5532 +f 5547 4776 4775 5548 +f 5555 5562 5565 5556 +f 5571 4802 4801 5572 +f 5579 5586 5589 5580 +f 5595 5602 5605 5596 +f 5611 4854 4853 5612 +f 5619 5634 5637 5620 +f 5783 5642 5645 5784 +f 5651 5658 5661 5652 +f 5667 5674 5677 5668 +f 5683 5690 5693 5684 +f 5699 5706 5709 5700 +f 5715 5722 5725 5716 +f 5731 5738 5741 5732 +f 5747 5754 5757 5748 +f 5763 5770 5773 5764 +f 5779 5794 5797 5780 +f 5226 5223 5222 5227 +f 5258 5255 5254 5259 +f 5290 5287 5286 5291 +f 5322 5319 5318 5323 +f 5354 5351 5350 5355 +f 5386 5383 5382 5387 +f 5418 5415 5414 5419 +f 5450 5447 5446 5451 +f 5482 5479 5478 5483 +f 5514 5511 5510 5515 +f 5546 5543 5542 5547 +f 5578 5575 5574 5579 +f 5610 5607 5606 5611 +f 5642 5639 5638 5643 +f 5674 5671 5670 5675 +f 5706 5703 5702 5707 +f 5738 5735 5734 5739 +f 5770 5767 5766 5771 +f 5268 5429 5428 5269 +f 5292 5397 5396 5293 +f 5316 5365 5364 5317 +f 5348 5493 5492 5349 +f 5139 5461 5460 5140 +f 5248 5753 5752 5249 +f 5272 5721 5720 5273 +f 5214 5689 5688 5215 +f 5328 5657 5656 5329 +f 5154 5769 5768 5155 +f 5488 5621 5620 5489 +f 5360 5517 5516 5361 +f 5392 5549 5548 5393 +f 5424 5573 5572 5425 +f 5456 5597 5596 5457 +f 5784 4872 4871 5785 +f 5668 4846 4845 5669 +f 5700 5537 5536 5701 +f 5732 5561 5560 5733 +f 5764 5585 5584 5765 +f 5208 5211 5207 +f 5202 5203 5201 +f 5178 5181 5177 +f 5172 5173 5171 +f 5148 5151 5147 +f 5142 5143 5141 +f 5118 5121 5117 +f 5112 5113 5111 +f 5113 5114 5111 +f 5128 5129 5127 +f 5143 5144 5141 +f 5158 5159 5157 +f 5173 5174 5171 +f 5188 5189 5187 +f 5203 5204 5201 +f 5218 5219 5217 +f 5748 4820 4819 5749 +f 5716 4794 4793 5717 +f 5684 5521 5520 5685 +f 5652 5633 5632 5653 +f 5780 5601 5600 5781 +f 5440 5581 5580 5441 +f 5408 5557 5556 5409 +f 5376 5533 5532 5377 +f 5500 5625 5624 5501 +f 5472 5613 5612 5473 +f 5224 5793 5792 5225 +f 5312 5673 5672 5313 +f 5288 5705 5704 5289 +f 5264 5737 5736 5265 +f 5252 5445 5444 5253 +f 5228 5477 5476 5229 +f 5332 5497 5496 5333 +f 5199 5381 5380 5200 +f 5276 5413 5412 5277 +f 5786 5783 5782 5787 +f 5754 5751 5750 5755 +f 5722 5719 5718 5723 +f 5690 5687 5686 5691 +f 5658 5655 5654 5659 +f 5626 5623 5622 5627 +f 5594 5591 5590 5595 +f 5562 5559 5558 5563 +f 5530 5527 5526 5531 +f 5498 5495 5494 5499 +f 5466 5463 5462 5467 +f 5434 5431 5430 5435 +f 5402 5399 5398 5403 +f 5370 5367 5366 5371 +f 5338 5335 5334 5339 +f 5306 5303 5302 5307 +f 5274 5271 5270 5275 +f 5242 5239 5238 5243 +f 5795 5782 5785 5796 +f 5771 5778 5781 5772 +f 5755 5762 5765 5756 +f 5739 5746 5749 5740 +f 5723 5730 5733 5724 +f 5707 5714 5717 5708 +f 5691 5698 5701 5692 +f 5675 5682 5685 5676 +f 5659 5666 5669 5660 +f 5643 5650 5653 5644 +f 5635 5622 5625 5636 +f 4864 5618 5621 4860 +f 5603 5610 5613 5604 +f 5587 5594 5597 5588 +f 4812 5578 5581 4808 +f 5563 5570 5573 5564 +f 4786 5554 5557 4782 +f 5539 5546 5549 5540 +f 5523 5530 5533 5524 +f 4838 5514 5517 4834 +f 5507 5494 5497 5508 +f 5483 5490 5493 5484 +f 5467 5474 5477 5468 +f 5451 5458 5461 5452 +f 5435 5442 5445 5436 +f 5419 5426 5429 5420 +f 5403 5410 5413 5404 +f 5387 5394 5397 5388 +f 5371 5378 5381 5372 +f 5355 5362 5365 5356 +f 5347 5334 5337 5348 +f 5331 5104 5103 5332 +f 5315 5322 5325 5316 +f 5206 5306 5309 5201 +f 5291 5298 5301 5292 +f 5275 5282 5285 5276 +f 5267 5164 5163 5268 +f 5251 5258 5261 5252 +f 5146 5242 5245 5141 +f 5227 5234 5237 5228 +f 5215 5208 5207 5213 +f 5155 5148 5147 5153 +f 5220 5195 5194 5221 +f 5160 5135 5134 5161 +f 4872 4866 4865 4870 +f 4834 4832 4831 4835 +f 4820 4814 4813 4818 +f 4876 4855 4854 4877 +f 4824 4803 4802 4825 +f 4750 4837 4836 4751 +f 4742 4850 4849 4743 +f 4668 4749 4748 4669 +f 4662 4757 4756 4663 +f 5791 5792 5793 5790 +f 5775 5776 5777 5774 +f 5759 5760 5761 5758 +f 5743 5744 5745 5742 +f 5727 5728 5729 5726 +f 5711 5712 5713 5710 +f 5695 5696 5697 5694 +f 5679 5680 5681 5678 +f 5663 5664 5665 5662 +f 5647 5648 5649 5646 +f 5631 5632 5633 5630 +f 5615 5616 5617 5614 +f 5599 5600 5601 5598 +f 5583 5584 5585 5582 +f 5567 5568 5569 5566 +f 5551 5552 5553 5550 +f 5535 5536 5537 5534 +f 5519 5520 5521 5518 +f 5503 5504 5505 5502 +f 5487 5488 5489 5486 +f 5471 5472 5473 5470 +f 5455 5456 5457 5454 +f 5439 5440 5441 5438 +f 5423 5424 5425 5422 +f 5407 5408 5409 5406 +f 5391 5392 5393 5390 +f 5375 5376 5377 5374 +f 5359 5360 5361 5358 +f 5343 5344 5345 5342 +f 5327 5329 5326 +f 5319 5320 5321 5318 +f 5303 5304 5305 5302 +f 5295 5296 5297 +f 5279 5280 5281 5278 +f 5263 5265 5262 +f 5255 5256 5257 5254 +f 5239 5240 5241 5238 +f 5231 5232 5233 +f 5204 5205 5201 +f 5174 5175 5171 +f 5144 5145 5141 +f 5114 5115 5111 +f 4871 4872 4870 +f 4863 4860 4861 +f 4845 4846 4844 +f 4836 4837 4838 4834 +f 4826 4828 4829 +f 4819 4820 4818 +f 4810 4811 4812 4808 +f 4783 4784 4785 +f 4785 4786 4782 +f 4743 4744 4745 4742 +f 4663 4664 4662 +f 4671 4669 4748 4753 +f 4754 4751 4836 4830 +f 4844 4839 4848 +f 5183 5177 5187 +f 5134 5235 5230 5161 +f 5266 5259 5254 5263 +f 5290 5283 5278 5287 +f 5314 5307 5302 5311 +f 5346 5116 5119 5343 +f 5370 5363 5358 5367 +f 5402 5395 5390 5399 +f 5434 5427 5422 5431 +f 5466 5459 5454 5463 +f 5506 5491 5486 5503 +f 5522 5515 5510 5519 +f 4776 5547 5542 4799 +f 4802 5571 5566 4825 +f 5602 5595 5590 5599 +f 5634 5619 5614 5631 +f 5658 5651 5646 5655 +f 5690 5683 5678 5687 +f 5722 5715 5710 5719 +f 5754 5747 5742 5751 +f 5794 5779 5774 5791 +f 5421 5169 5171 5277 5412 +f 5389 5300 5193 5200 5380 +f 5357 5324 5333 5496 +f 5485 5336 5229 5476 +f 5453 5244 5253 5444 +f 5264 5257 5744 5737 +f 5288 5281 5712 5705 +f 5312 5305 5680 5673 +f 5340 5345 5640 5789 +f 5240 5148 5155 5768 5761 +f 5504 5489 5620 5637 +f 5368 5361 5516 5525 +f 4781 5400 5393 5548 4775 +f 4807 5432 5425 5572 4801 +f 5464 5457 5596 5605 +f 4866 4872 5784 5645 5616 +f 4840 4846 5668 5677 5512 +f 5537 5700 5709 5544 +f 5561 5732 5741 5568 +f 5585 5764 5773 5592 +f 4821 5569 5740 5749 4819 +f 4795 5545 5708 5717 4793 +f 5513 5676 5685 5520 +f 5617 5644 5653 5632 +f 5593 5772 5781 5600 +f 5440 5433 4806 4808 5581 +f 5408 5401 4780 4782 5557 +f 5376 5369 5524 5533 +f 5500 5505 5636 5625 +f 5472 5465 5604 5613 +f 5224 5341 5788 5793 +f 5320 5313 5672 5665 +f 5296 5289 5704 5697 +f 5184 5186 5265 5736 5729 +f 5445 5252 5261 5436 +f 5477 5228 5237 5468 +f 5497 5332 5103 5110 5508 +f 5381 5199 5201 5309 5372 +f 5413 5276 5285 5404 +f 5782 5795 5790 5787 +f 5762 5755 5750 5759 +f 5730 5723 5718 5727 +f 5698 5691 5686 5695 +f 5666 5659 5654 5663 +f 5622 5635 5630 5627 +f 5610 5603 5598 5607 +f 5578 4812 4815 5575 +f 5554 4786 4789 5551 +f 5530 5523 5518 5527 +f 5494 5507 5502 5499 +f 5474 5467 5462 5471 +f 5442 5435 5430 5439 +f 5410 5403 5398 5407 +f 5378 5371 5366 5375 +f 5334 5347 5342 5339 +f 5322 5315 5310 5319 +f 5298 5291 5286 5295 +f 5164 5267 5262 5191 +f 5242 5146 5149 5239 +f 5213 5207 5217 +f 4870 4865 4874 +f 4792 4787 4796 +f 4750 4747 4842 4837 +f 4668 4666 4744 4749 +f 4666 4667 4665 +f 4747 4748 4749 4746 +f 4790 4791 4787 +f 4787 4788 4789 +f 4797 4798 4795 +f 4815 4817 4813 +f 4813 4814 4815 +f 4824 4825 4822 +f 4832 4833 4831 +f 4841 4842 4843 +f 4848 4849 4850 +f 4851 4847 4848 +f 4865 4867 4868 +f 4874 4875 4873 +f 4876 4877 4873 +f 5129 5131 5126 +f 5151 5152 5147 +f 5159 5160 5161 +f 5189 5191 5186 +f 5211 5212 5207 +f 5219 5220 5221 +f 5235 5236 5237 5234 +f 5251 5252 5253 5250 +f 5267 5268 5269 5266 +f 5283 5284 5285 5282 +f 5299 5300 5301 5298 +f 5315 5316 5317 5314 +f 5331 5332 5333 5330 +f 5347 5348 5349 5346 +f 5363 5364 5365 5362 +f 5379 5380 5381 5378 +f 5395 5396 5397 5394 +f 5411 5412 5413 5410 +f 5427 5428 5429 5426 +f 5443 5444 5445 5442 +f 5459 5460 5461 5458 +f 5475 5476 5477 5474 +f 5491 5492 5493 5490 +f 5507 5508 5509 5506 +f 5523 5524 5525 5522 +f 5539 5540 5541 5538 +f 5555 5556 5557 5554 +f 5571 5572 5573 5570 +f 5587 5588 5589 5586 +f 5603 5604 5605 5602 +f 5619 5620 5621 5618 +f 5635 5636 5637 5634 +f 5651 5652 5653 5650 +f 5667 5668 5669 5666 +f 5683 5684 5685 5682 +f 5699 5700 5701 5698 +f 5715 5716 5717 5714 +f 5731 5732 5733 5730 +f 5747 5748 5749 5746 +f 5763 5764 5765 5762 +f 5779 5780 5781 5778 +f 5795 5796 5797 5794 +f 4670 4667 4666 4668 +f 4671 4753 4752 4672 +f 4753 4748 4747 4750 +f 4754 4830 4829 4755 +f 4791 4797 4796 4787 +f 4817 4823 4822 4813 +f 4833 4827 4826 4831 +f 4847 4845 4844 4848 +f 4873 4871 4870 4874 +f 5126 5124 5123 5127 +f 5156 5154 5153 5157 +f 5186 5184 5183 5187 +f 5216 5214 5213 5217 +f 5231 5222 5225 5232 +f 5239 5149 5148 5240 +f 5255 5246 5249 5256 +f 5191 5262 5265 5186 +f 5279 5270 5273 5280 +f 5295 5286 5289 5296 +f 5303 5209 5208 5304 +f 5319 5310 5313 5320 +f 5131 5326 5329 5126 +f 5351 5498 5501 5352 +f 5367 5358 5361 5368 +f 5383 5374 5377 5384 +f 5399 5390 5393 5400 +f 5415 5406 5409 5416 +f 5431 5422 5425 5432 +f 5447 5438 5441 5448 +f 5463 5454 5457 5464 +f 5479 5470 5473 5480 +f 5503 5486 5489 5504 +f 4851 5626 5629 4847 +f 5519 5510 5513 5520 +f 5535 5526 5529 5536 +f 4799 5542 5545 4795 +f 5559 5550 5553 5560 +f 4825 5566 5569 4821 +f 5583 5574 5577 5584 +f 5599 5590 5593 5600 +f 4877 5606 5609 4873 +f 5631 5614 5617 5632 +f 5639 5786 5789 5640 +f 5655 5646 5649 5656 +f 5671 5662 5665 5672 +f 5687 5678 5681 5688 +f 5703 5694 5697 5704 +f 5719 5710 5713 5720 +f 5735 5726 5729 5736 +f 5751 5742 5745 5752 +f 5767 5758 5761 5768 +f 5791 5774 5777 5792 +f 5234 5231 5230 5235 +f 5266 5263 5262 5267 +f 5298 5295 5294 5299 +f 5330 5327 5326 5331 +f 5362 5359 5358 5363 +f 5394 5391 5390 5395 +f 5426 5423 5422 5427 +f 5458 5455 5454 5459 +f 5490 5487 5486 5491 +f 5522 5519 5518 5523 +f 5554 5551 5550 5555 +f 5586 5583 5582 5587 +f 5618 5615 5614 5619 +f 5650 5647 5646 5651 +f 5682 5679 5678 5683 +f 5714 5711 5710 5715 +f 5746 5743 5742 5747 +f 5778 5775 5774 5779 +f 5169 5421 5420 5170 +f 5300 5389 5388 5301 +f 5324 5357 5356 5325 +f 5336 5485 5484 5337 +f 5244 5453 5452 5245 +f 5256 5745 5744 5257 +f 5280 5713 5712 5281 +f 5304 5681 5680 5305 +f 5124 5649 5648 5125 +f 5232 5777 5776 5233 +f 5480 4859 4858 5481 +f 5352 4833 4832 5353 +f 5384 5541 5540 5385 +f 5416 5565 5564 5417 +f 5448 5589 5588 5449 +f 5796 5609 5608 5797 +f 5660 5629 5628 5661 +f 5692 5529 5528 5693 +f 5724 5553 5552 5725 +f 5756 5577 5576 5757 +f 5217 5219 5216 +f 5209 5210 5211 +f 5179 5181 5178 +f 5157 5159 5156 +f 5149 5150 5151 +s 909 +f 5103 5104 5105 +f 5119 5120 5121 +f 5343 5119 5118 5344 +f 5115 5120 5119 5116 +f 5101 4901 4900 5098 +f 5073 5083 5082 5070 +f 5075 5091 5093 5076 +f 5091 5089 5088 5092 +f 5070 5122 5121 5071 +f 4902 5115 5114 4903 +f 5092 5094 5097 5093 +f 5064 5066 5069 5065 +f 5109 5110 5108 +f 5099 5101 5098 +f 5084 5085 5086 +f 5078 5079 5077 +f 5071 5073 5070 +f 4902 4903 4904 +f 4896 4897 4895 +f 5067 5071 5121 +f 5060 5072 5066 +f 5088 5100 5094 5092 +f 4894 5065 5069 4905 +f 5098 4900 5113 5107 +f 5344 5118 5125 5648 5641 +f 5084 5096 5105 5130 +f 5090 4897 4901 5101 +f 5086 5080 5078 +f 5095 5099 5106 +f 4901 4898 4899 +f 5061 5062 5060 +f 5067 5068 5066 +f 5081 5082 5083 +f 5089 5090 5088 +f 5095 5096 5094 +f 5103 5107 5102 +f 5072 5060 5062 5073 +f 5100 5088 5090 5101 +f 5071 5067 5066 5072 +f 5084 5130 5129 5085 +f 5089 4895 4897 5090 +f 5087 5097 5096 5084 +f 5067 5121 5120 5068 +f 5107 5113 5112 5102 +f 5344 5641 5640 5345 +f 5111 5109 5108 5112 +f 4899 5114 5113 4900 +f 5081 5129 5128 5082 +f 5061 5077 5079 5062 +f 5099 5095 5094 5100 +f 5077 5075 5074 5078 +f 4903 4899 4898 4904 +f 5086 5074 5076 5087 +f 4904 4892 4894 4905 +f 5103 5106 5107 +f 5096 5097 5094 +f 5081 5083 5080 +f 5075 5076 5074 +f 5068 5069 5066 +f 4899 4900 4901 +f 4893 4894 4892 +f 5081 5085 5129 +f 5078 5074 5086 +f 5062 5079 5083 5073 +f 4902 5068 5120 5115 +f 5108 5102 5112 +f 5070 5082 5128 5122 +f 5076 5093 5097 5087 +f 5060 5066 5064 +f 4892 4904 4898 4896 +f 4899 4903 5114 +f 4904 4905 4902 +f 5064 5065 5063 +f 5071 5072 5073 +f 5086 5087 5084 +f 5092 5093 5091 +f 5099 5100 5101 +f 4896 4898 4901 4897 +f 5078 5080 5083 5079 +f 4895 4893 4892 4896 +f 5063 5061 5060 5064 +f 5085 5081 5080 5086 +f 5098 5107 5106 5099 +f 4893 5063 5065 4894 +f 4905 5069 5068 4902 +f 5095 5106 5105 5096 +f 5110 5103 5102 5108 +f 5119 5121 5118 +f 5105 5106 5103 +s 917 +f 5195 5196 5193 +f 5205 5210 5209 5206 +f 5017 4929 4928 5014 +f 4989 4999 4998 4986 +f 4991 5007 5009 4992 +f 5007 5005 5004 5008 +f 4986 5212 5211 4987 +f 4930 5205 5204 4931 +f 5008 5010 5013 5009 +f 4980 4982 4985 4981 +f 5199 5200 5198 +f 5015 5017 5014 +f 5000 5001 5002 +f 4994 4995 4993 +f 4987 4989 4986 +f 4930 4931 4932 +f 4924 4925 4923 +f 4997 5001 5219 +f 4976 4988 4982 +f 5004 5016 5010 5008 +f 4922 4981 4985 4933 +f 5014 4928 5203 5197 +f 4930 4984 5210 5205 +f 4978 4995 4999 4989 +f 4994 4990 5002 +f 4983 4987 5211 +f 4921 4922 4920 +f 4927 4928 4929 +f 4984 4985 4982 +f 4991 4992 4990 +f 4997 4999 4996 +f 5012 5013 5010 +f 5193 5196 5197 +f 4932 4920 4922 4933 +f 5002 4990 4992 5003 +f 4931 4927 4926 4932 +f 4993 4991 4990 4994 +f 5015 5011 5010 5016 +f 4977 4993 4995 4978 +f 4997 5219 5218 4998 +f 4927 5204 5203 4928 +f 5201 5199 5198 5202 +f 5197 5203 5202 5192 +f 4983 5211 5210 4984 +f 5003 5013 5012 5000 +f 5005 4923 4925 5006 +f 5000 5220 5219 5001 +f 4987 4983 4982 4988 +f 5016 5004 5006 5017 +f 4988 4976 4978 4989 +f 5193 5197 5192 +f 5011 5012 5010 +f 5005 5006 5004 +f 4997 4998 4999 +f 4983 4984 4982 +f 4977 4978 4976 +f 4929 4926 4927 +f 4927 4931 5204 +f 5002 4996 4994 +f 5006 4925 4929 5017 +f 5000 5012 5195 5220 +f 5198 5192 5202 +f 4986 4998 5218 5212 +f 4992 5009 5013 5003 +f 4976 4982 4980 +f 4920 4932 4926 4924 +f 5011 5015 5196 +f 4932 4933 4930 +f 4980 4981 4979 +f 4987 4988 4989 +f 5002 5003 5000 +f 5008 5009 5007 +f 5015 5016 5017 +f 4924 4926 4929 4925 +f 4994 4996 4999 4995 +f 4923 4921 4920 4924 +f 4979 4977 4976 4980 +f 5001 4997 4996 5002 +f 5014 5197 5196 5015 +f 4921 4979 4981 4922 +f 4933 4985 4984 4930 +f 5011 5196 5195 5012 +f 5200 5193 5192 5198 +f 5193 5194 5195 +s 905 +f 5165 5166 5163 +f 5175 5180 5179 5176 +f 4891 4971 4970 4888 +f 4947 4957 4956 4944 +f 4973 4969 4968 4974 +f 4951 4949 4948 4952 +f 4889 4885 4884 4890 +f 4952 4954 4957 4953 +f 4882 4884 4887 4883 +f 4972 4973 4974 +f 4966 4967 4965 +f 4960 4961 4958 +f 4945 4946 4947 +f 4889 4890 4891 +f 4882 4883 4881 +f 4955 4959 5189 +f 4960 4954 4952 +f 4944 4956 5188 5182 +f 5168 5162 5172 +f 4958 4886 5165 5190 +f 4880 4967 4971 4891 +f 4934 4946 4940 +f 4878 4890 4884 4882 +f 4941 4945 5181 +f 4886 4887 4884 +f 4935 4936 4934 +f 4941 4942 4940 +f 4955 4956 4957 +f 4963 4964 4962 +f 4969 4970 4971 +f 5163 5167 5162 +f 4946 4934 4936 4947 +f 4974 4962 4964 4975 +f 4888 5167 5166 4889 +f 4944 5182 5181 4945 +f 4965 4963 4962 4966 +f 4879 4965 4967 4880 +f 4961 4887 4886 4958 +f 4941 5181 5180 4942 +f 5167 5173 5172 5162 +f 5171 5169 5168 5172 +f 4969 5174 5173 4970 +f 4955 5189 5188 4956 +f 4935 4951 4953 4936 +f 4972 5175 5174 4973 +f 4959 4955 4954 4960 +f 4937 4935 4934 4938 +f 4881 4879 4878 4882 +f 4960 4948 4950 4961 +f 4890 4878 4880 4891 +f 5163 5166 5167 +f 4971 4968 4969 +f 4955 4957 4954 +f 4949 4950 4948 +f 4942 4943 4940 +f 4885 4886 4884 +f 4879 4880 4878 +f 4885 4889 5166 +f 4934 4940 4938 +f 4962 4974 4968 4966 +f 4936 4953 4957 4947 +f 4972 4942 5180 5175 +f 4888 4970 5173 5167 +f 4950 4883 4887 4961 +f 4952 4948 4960 +f 4969 4973 5174 +f 4889 4891 4888 +f 4945 4947 4944 +f 4952 4953 4951 +f 4958 4959 4960 +f 4974 4975 4972 +f 5169 5170 5168 +f 4938 4940 4943 4939 +f 4966 4968 4971 4967 +f 4945 4941 4940 4946 +f 4958 5190 5189 4959 +f 4949 4881 4883 4950 +f 4975 4943 4942 4972 +f 4885 5166 5165 4886 +f 5170 5163 5162 5168 +f 5163 5164 5165 +s 913 +f 5135 5136 5133 +f 5145 5150 5149 5146 +f 4919 5041 5040 4916 +f 5031 5055 5054 5028 +f 5057 5053 5052 5058 +f 5035 5033 5032 5036 +f 4917 4913 4912 4918 +f 5036 5038 5041 5037 +f 4910 4912 4915 4911 +f 5056 5057 5058 +f 5050 5051 5049 +f 5044 5045 5042 +f 5029 5030 5031 +f 4917 4918 4919 +f 4910 4911 4909 +f 5053 5057 5159 +f 4908 5037 5041 4919 +f 5028 5054 5158 5152 +f 5138 5132 5142 +f 5056 4914 5135 5160 +f 5050 5046 5058 +f 5018 5030 5024 +f 4906 4918 4912 4910 +f 5039 5043 5144 +f 4914 4915 4912 +f 5019 5020 5018 +f 5025 5026 5024 +f 5041 5038 5039 +f 5047 5048 5046 +f 5053 5055 5052 +f 5133 5137 5132 +f 5030 5018 5020 5031 +f 5058 5046 5048 5059 +f 4916 5137 5136 4917 +f 5028 5152 5151 5029 +f 5049 5047 5046 5050 +f 4907 5035 5037 4908 +f 5059 4915 4914 5056 +f 5025 5151 5150 5026 +f 5137 5143 5142 5132 +f 5141 5139 5138 5142 +f 5039 5144 5143 5040 +f 5053 5159 5158 5054 +f 5019 5049 5051 5020 +f 5056 5160 5159 5057 +f 5043 5039 5038 5044 +f 5021 5019 5018 5022 +f 4909 4907 4906 4910 +f 5044 5032 5034 5045 +f 4918 4906 4908 4919 +f 5133 5136 5137 +f 5053 5054 5055 +f 5039 5040 5041 +f 5033 5034 5032 +f 5026 5027 5024 +f 4913 4914 4912 +f 4907 4908 4906 +f 4913 4917 5136 +f 5018 5024 5022 +f 5058 5052 5050 +f 5048 4911 4915 5059 +f 5042 5026 5150 5145 +f 4916 5040 5143 5137 +f 5020 5051 5055 5031 +f 5032 5044 5038 5036 +f 5025 5029 5151 +f 4917 4919 4916 +f 5029 5031 5028 +f 5036 5037 5035 +f 5042 5043 5044 +f 5058 5059 5056 +f 5139 5140 5138 +f 5022 5024 5027 5023 +f 5050 5052 5055 5051 +f 5029 5025 5024 5030 +f 5042 5145 5144 5043 +f 5047 4909 4911 5048 +f 5045 5027 5026 5042 +f 4913 5136 5135 4914 +f 5140 5133 5132 5138 +f 5133 5134 5135 +s 932 +f 5022 5023 5021 +f 5034 5023 5027 5045 +f 5033 5021 5023 5034 +s 921 +f 4938 4939 4937 +f 4964 4939 4943 4975 +f 4963 4937 4939 4964 +s 857 +f 4859 4853 4852 4857 +f 4770 4856 4855 4771 +f 4769 4764 4763 4766 +f 4683 4769 4768 4684 +f 4682 4679 4678 4680 +f 4858 4859 4857 +f 4763 4764 4765 4762 +f 4678 4679 4677 +f 4680 4678 4760 4765 +f 4766 4763 4868 4863 +f 4682 4685 4676 4679 +f 4762 4759 4875 4869 +f 4677 4675 4772 4761 +f 4681 4682 4680 +f 4767 4768 4769 4766 +f 4854 4855 4856 +f 4676 4685 4684 4674 +f 4677 4761 4760 4678 +f 4761 4772 4771 4758 +f 4762 4869 4868 4763 +f 4856 4862 4861 4852 +f 4860 4858 4857 4861 +f 4766 4863 4862 4767 +f 4758 4876 4875 4759 +f 4680 4765 4764 4681 +f 4674 4773 4772 4675 +f 4854 4856 4852 +f 4852 4853 4854 +f 4759 4760 4761 4758 +f 4675 4676 4674 +f 4683 4681 4764 4769 +f 4770 4767 4862 4856 +f 4857 4852 4861 +f 4758 4771 4855 4876 +f 4674 4684 4768 4773 +f 4684 4685 4683 +f 4771 4772 4773 4770 +f 4679 4676 4675 4677 +f 4685 4682 4681 4683 +f 4765 4760 4759 4762 +f 4773 4768 4767 4770 +f 4863 4868 4867 4864 +s 865 +f 4811 4816 4815 4812 +f 4741 4736 4735 4738 +f 4733 4728 4727 4730 +f 4709 4706 4705 4707 +f 4703 4700 4699 4701 +f 4739 4740 4741 4738 +f 4708 4709 4707 +f 4698 4708 4736 4741 +f 4726 4739 4803 4824 +f 4805 4800 4809 +f 4738 4735 4810 4804 +f 4707 4705 4732 4737 +f 4699 4700 4698 +f 4727 4728 4729 4726 +f 4800 4801 4802 +f 4803 4804 4800 +f 4698 4741 4740 4699 +f 4704 4733 4732 4705 +f 4726 4824 4823 4727 +f 4734 4811 4810 4735 +f 4808 4806 4805 4809 +f 4804 4810 4809 4800 +f 4730 4817 4816 4731 +f 4729 4740 4739 4726 +f 4701 4729 4728 4702 +f 4700 4709 4708 4698 +f 4800 4802 4803 +f 4735 4736 4737 4734 +f 4705 4706 4704 +f 4701 4699 4740 4729 +f 4730 4727 4823 4817 +f 4706 4709 4700 4703 +f 4734 4731 4816 4811 +f 4704 4702 4728 4733 +f 4702 4703 4701 +f 4731 4732 4733 4730 +f 4806 4807 4805 +f 4706 4703 4702 4704 +f 4707 4737 4736 4708 +f 4737 4732 4731 4734 +f 4738 4804 4803 4739 +f 4807 4801 4800 4805 +s 861 +f 4781 4775 4774 4779 +f 4722 4778 4777 4723 +f 4721 4716 4715 4718 +f 4695 4721 4720 4696 +f 4694 4691 4690 4692 +f 4780 4781 4779 +f 4715 4716 4717 4714 +f 4690 4691 4689 +f 4692 4690 4712 4717 +f 4718 4715 4790 4785 +f 4779 4774 4783 +f 4714 4711 4797 4791 +f 4689 4687 4724 4713 +f 4693 4694 4692 +f 4719 4720 4721 4718 +f 4776 4777 4778 +f 4688 4697 4696 4686 +f 4689 4713 4712 4690 +f 4713 4724 4723 4710 +f 4714 4791 4790 4715 +f 4778 4784 4783 4774 +f 4782 4780 4779 4783 +f 4718 4785 4784 4719 +f 4710 4798 4797 4711 +f 4692 4717 4716 4693 +f 4686 4725 4724 4687 +f 4776 4778 4774 +f 4774 4775 4776 +f 4711 4712 4713 4710 +f 4687 4688 4686 +f 4695 4693 4716 4721 +f 4722 4719 4784 4778 +f 4694 4697 4688 4691 +f 4710 4723 4777 4798 +f 4686 4696 4720 4725 +f 4696 4697 4695 +f 4723 4724 4725 4722 +f 4691 4688 4687 4689 +f 4697 4694 4693 4695 +f 4717 4712 4711 4714 +f 4725 4720 4719 4722 +f 4785 4790 4789 4786 +g boat +usemtl bluteal +s 1 +f 384 383 452 451 +f 271 270 381 380 +f 14 429 435 6 +f 17 417 429 14 +f 407 406 425 11 +f 413 410 409 +f 412 411 24 +f 25 400 406 405 +f 331 336 312 40 +f 287 286 289 50 +f 415 416 18 +f 412 413 18 +f 405 406 19 +f 332 311 425 406 +f 401 410 412 +f 433 427 426 442 +f 270 435 434 381 +f 408 426 427 414 +f 403 417 373 +f 403 404 24 +f 19 409 410 +f 413 414 415 18 +f 451 452 453 4 +f 311 40 50 289 +f 402 24 25 +f 401 25 405 410 +f 403 411 416 +f 408 407 11 426 +f 428 15 2 434 +f 270 269 6 435 +f 434 2 382 381 +f 454 453 1 441 +f 426 11 1 442 +f 416 415 15 428 +f 414 413 409 408 +f 403 24 411 +f 402 25 401 +f 332 331 40 311 +f 288 287 50 290 +f 416 411 18 +f 410 405 19 +f 406 407 19 +f 311 289 441 425 +f 403 416 417 +f 428 434 435 429 +f 442 452 383 433 +f 416 428 429 417 +f 412 402 401 +f 289 286 454 441 +f 407 408 409 19 +f 18 411 412 +f 453 454 449 4 +f 40 312 290 50 +f 24 404 400 25 +f 24 402 412 +f 374 373 417 17 +f 413 412 410 +f 415 414 427 15 +f 15 427 433 2 +f 11 425 441 1 +f 453 452 442 1 +f 2 433 383 382 +s 5 +f 269 268 436 6 +f 445 444 306 305 +f 388 387 444 443 +f 12 423 439 10 +f 16 419 431 13 +f 20 423 12 +f 368 367 419 16 +f 366 365 377 376 +f 299 298 387 386 +f 347 346 358 357 +f 341 340 352 +f 345 352 322 35 +f 31 338 314 39 +f 35 322 316 +f 37 318 292 45 +f 39 314 302 41 +f 297 296 308 307 +f 263 262 294 293 +f 443 444 445 7 +f 21 396 397 +f 392 393 386 8 +f 376 377 372 23 +f 366 367 368 22 +f 349 350 351 29 +f 343 344 30 +f 340 341 30 +f 303 304 44 +f 293 294 295 43 +f 261 262 263 46 +f 202 249 440 446 +f 255 253 314 338 +f 301 308 296 310 +f 316 322 337 313 +f 348 356 377 365 +f 375 418 419 367 +f 430 436 437 431 +f 391 437 436 268 +f 418 430 431 419 +f 369 421 397 +f 342 350 371 395 +f 337 352 340 +f 313 301 310 316 +f 232 255 338 344 +f 210 202 446 304 +f 245 240 399 422 +f 267 268 269 5 +f 299 300 293 43 +f 307 308 303 44 +f 344 339 30 +f 29 351 352 +f 357 358 353 28 +f 22 368 369 +f 374 375 376 23 +f 390 391 392 8 +f 398 399 21 +f 447 448 443 7 +f 247 59 60 245 +f 202 201 58 249 +f 251 55 211 210 +f 255 53 54 253 +f 240 239 233 232 +f 262 261 45 292 +f 304 303 41 302 +f 309 42 295 294 +f 315 38 42 309 +f 337 31 39 +f 340 339 31 337 +f 342 341 351 350 +f 350 349 364 371 +f 300 299 386 393 +f 367 366 376 375 +f 397 396 370 +f 369 368 16 420 +f 422 20 12 424 +f 420 16 13 +f 430 14 6 436 +f 424 12 10 440 +f 389 388 443 448 +f 446 445 305 304 +f 268 267 392 391 +f 448 447 10 439 +f 438 9 390 389 +f 432 13 9 438 +f 420 13 432 +f 418 17 14 430 +f 399 398 20 422 +f 397 370 369 +f 375 374 17 418 +f 344 343 394 399 +f 356 355 372 377 +f 348 347 357 356 +f 346 345 35 321 +f 337 39 313 +f 321 35 38 315 +f 313 39 41 301 +f 298 297 307 306 +f 264 263 293 300 +f 266 265 257 264 +f 232 231 53 255 +f 253 54 55 251 +f 210 209 203 202 +f 249 58 59 247 +f 245 60 241 240 +f 445 446 7 +f 394 395 396 21 +f 386 387 388 8 +f 369 370 22 +f 364 365 366 22 +f 352 345 29 +f 347 348 349 29 +f 341 342 343 30 +f 304 305 44 +f 295 296 297 43 +f 263 264 257 46 +f 249 247 424 440 +f 253 251 302 314 +f 262 292 309 294 +f 321 315 318 324 +f 337 322 352 +f 387 298 306 444 +f 369 420 421 +f 432 438 439 423 +f 438 389 448 439 +f 423 421 420 432 +f 264 300 393 266 +f 321 324 358 346 +f 315 309 292 318 +f 240 232 344 399 +f 251 210 304 302 +f 247 245 422 424 +f 265 266 267 5 +f 297 298 299 43 +f 305 306 307 44 +f 30 339 340 +f 345 346 347 29 +f 355 356 357 28 +f 370 371 364 22 +f 388 389 390 8 +f 397 398 21 +f 399 394 21 +f 446 447 7 +f 303 308 301 41 +f 42 310 296 295 +f 38 316 310 42 +f 35 316 38 +f 34 324 318 37 +f 339 344 338 31 +f 341 352 351 +f 353 358 324 34 +f 349 348 365 364 +f 343 342 395 394 +f 396 395 371 370 +f 398 397 421 20 +f 20 421 423 +f 13 431 437 9 +f 9 437 391 390 +f 447 446 440 10 +f 267 266 393 392 +s 6 +f 27 363 26 +f 26 363 334 +f 27 330 329 +f 325 330 320 36 +f 261 260 291 45 +f 265 272 258 257 +f 360 361 27 +f 32 333 334 +f 331 332 32 +f 325 326 327 33 +f 274 282 291 260 +f 323 317 320 330 +f 334 363 359 +f 360 362 400 404 +f 323 330 361 +f 317 291 282 320 +f 259 260 261 46 +f 328 329 33 +f 332 333 32 +f 354 355 28 +f 281 49 273 280 +f 317 37 45 291 +f 323 34 37 317 +f 328 327 335 +f 354 353 34 323 +f 27 329 328 +f 360 27 26 362 +f 362 26 333 332 +f 328 359 27 +f 328 335 334 +f 326 325 36 319 +f 319 36 49 281 +f 260 259 275 274 +f 372 373 23 +f 335 336 331 32 +f 330 325 33 +f 33 327 328 +f 281 280 288 290 +f 319 312 336 326 +f 361 354 323 +f 362 332 406 400 +f 359 328 334 +f 290 312 319 281 +f 257 258 259 46 +f 329 330 33 +f 334 335 32 +f 353 354 28 +f 373 374 23 +f 49 282 274 273 +f 36 320 282 49 +f 327 326 336 335 +f 27 361 330 +f 334 333 26 +f 27 359 363 +s 62 +f 62 244 236 63 +f 223 228 222 221 +f 66 216 214 67 +f 68 206 198 197 +f 187 192 185 61 +f 221 222 65 +f 192 187 70 +f 78 167 166 216 222 +f 183 181 244 185 +f 78 77 173 167 +f 140 183 185 192 +f 77 78 222 228 +f 191 192 70 +f 222 217 65 +f 173 172 168 167 +f 166 165 80 179 +f 183 74 75 181 +f 146 145 141 140 +f 178 71 147 146 +f 140 139 74 183 +f 181 75 175 174 +f 179 80 71 178 +f 228 223 64 +f 198 193 69 +f 166 179 214 216 +f 181 174 236 244 +f 178 146 198 206 +f 146 140 192 198 +f 174 173 77 228 236 +f 179 178 206 214 +f 197 198 69 +f 227 228 64 +f 193 198 192 191 +f 67 214 206 68 +f 217 222 216 66 +f 63 236 228 227 +f 61 185 244 62 +s 2 +f 355 354 373 372 +f 449 450 451 4 +f 380 381 382 3 +f 284 278 385 450 +f 378 379 380 3 +f 450 449 285 284 +f 385 384 451 450 +f 382 383 384 3 +f 361 360 404 403 373 354 +f 283 284 285 47 +f 384 385 378 3 +f 279 278 284 283 +s 3 +f 259 258 276 275 +f 273 274 275 48 +f 276 258 272 379 +f 275 276 277 48 +f 280 279 283 288 +f 272 271 380 379 +f 278 277 378 385 +f 279 280 273 48 +f 271 272 265 5 +f 269 270 271 5 +f 277 278 279 48 +f 277 276 379 378 +s 51 +f 239 238 234 233 +f 58 250 248 59 +f 60 246 242 241 +f 189 188 200 199 +f 229 230 231 52 +f 199 200 201 57 +f 224 220 234 238 +f 186 243 248 250 +f 187 188 189 70 +f 237 238 239 51 +f 188 187 61 186 +f 235 63 227 226 +f 243 62 63 235 +f 186 61 62 243 +f 226 225 237 242 +f 224 223 221 220 +f 241 242 237 51 +f 225 226 227 64 +f 235 226 242 246 +f 243 235 246 248 +f 188 186 250 200 +f 223 224 225 64 +f 233 234 229 52 +f 225 224 238 237 +f 59 248 246 60 +f 201 200 250 58 +s 53 +f 53 256 254 54 +f 55 252 212 211 +f 217 218 219 65 +f 218 215 256 230 +f 205 196 212 252 +f 205 68 197 196 +f 215 66 67 213 +f 220 219 229 234 +f 218 217 66 215 +f 213 67 68 205 +f 219 220 221 65 +f 215 213 254 256 +f 213 205 252 254 +f 219 218 230 229 +f 54 254 252 55 +f 231 230 256 53 +s 103 +f 195 194 208 207 +f 189 190 191 70 +f 193 194 195 69 +f 194 193 191 190 +f 190 189 199 204 +f 207 208 209 56 +f 194 190 204 208 +f 203 204 199 57 +f 209 208 204 203 +s 81 +f 157 162 156 155 +f 84 150 123 122 +f 161 162 157 82 +f 129 123 150 156 162 135 +f 155 156 151 83 +f 129 128 124 123 +f 128 129 130 88 +f 122 123 124 85 +f 130 129 135 81 +f 151 156 150 84 +f 81 135 162 161 +s 76 +f 139 138 184 74 +f 75 182 176 175 +f 97 96 133 87 +f 132 126 88 +f 131 136 182 184 +f 133 132 131 184 138 +f 131 132 88 +f 159 160 161 82 +f 136 81 161 160 +f 160 159 170 176 +f 131 130 81 136 +f 137 138 139 73 +f 116 132 133 96 +f 136 160 176 182 +f 130 131 88 +f 175 176 170 76 +f 87 133 138 137 +f 74 184 182 75 +s 100 +f 172 171 169 168 +f 170 171 172 76 +f 153 154 155 83 +f 168 169 163 79 +f 154 153 163 169 +f 158 157 155 154 +f 158 154 169 171 +f 157 158 159 82 +f 159 158 171 170 +s 72 +f 71 177 148 147 +f 80 180 177 71 +f 107 106 120 119 +f 102 112 120 106 +f 152 149 180 164 +f 151 152 153 83 +f 106 105 103 102 +f 112 86 143 148 +f 152 151 84 149 +f 149 84 122 121 +f 102 101 86 112 +f 163 164 165 79 +f 149 121 177 180 +f 121 120 112 148 177 +f 147 148 143 72 +f 153 152 164 163 +f 165 164 180 80 +s 86 +f 86 111 144 143 +f 143 144 145 72 +f 111 134 142 144 +f 99 100 101 92 +f 100 99 93 98 +f 134 87 137 142 +f 98 97 87 134 +f 141 142 137 73 +f 111 100 98 134 +f 97 98 93 89 +f 101 100 111 86 +f 145 144 142 141 +s 85 +f 113 118 110 109 +f 99 104 94 93 +f 109 110 105 91 +f 101 102 103 92 +f 104 110 118 94 +f 103 104 99 92 +f 96 95 117 116 +f 116 115 126 132 +f 117 118 113 90 +f 95 96 97 89 +f 93 94 95 89 +f 105 106 107 91 +f 115 116 117 90 +f 105 110 104 103 +f 95 94 118 117 +s 96 +f 115 114 127 126 +f 114 108 125 127 +f 113 114 115 90 +f 114 113 109 108 +f 108 107 119 125 +f 124 125 119 85 +f 107 108 109 91 +f 126 127 128 88 +f 128 127 125 124 +s 82 +f 119 120 85 +f 121 122 85 +f 120 121 85 +s 74 +f 140 141 73 +f 139 140 73 +s 71 +f 167 168 79 +f 145 146 72 +f 166 167 79 +f 174 175 76 +f 172 173 76 +f 146 147 72 +f 165 166 79 +f 173 174 76 +s 56 +f 211 212 207 56 +f 196 195 207 212 +f 195 196 197 69 +s 58 +f 201 202 57 +f 202 203 57 +s 55 +f 209 210 56 +f 210 211 56 +s 54 +f 231 232 52 +f 232 233 52 +s 52 +f 239 240 51 +f 240 241 51 +s 4 +f 285 286 287 47 +f 287 288 283 47 +f 449 454 286 285 +g engine +usemtl black +s 116 +f 2694 2693 2305 2304 +f 1783 1782 1941 1940 +f 2721 2722 2723 470 +f 2302 2303 458 +f 2196 2195 563 1612 1606 +f 562 2204 2203 1636 1630 +f 1942 1941 563 2195 1881 +f 554 555 2301 2299 +f 2302 2268 2726 2782 +f 2302 2301 555 2249 2268 +f 562 563 1941 1782 +f 563 554 1618 1612 +f 2303 2304 2305 458 +f 2725 2726 2721 470 +f 1612 1611 1607 1606 +f 1624 1623 1619 1618 +f 1648 1647 1643 1642 +f 2693 2692 2306 2305 +f 2783 2782 2726 2725 +f 2781 2786 2304 2303 +f 1636 1635 1631 1630 +f 1618 1617 1613 1612 +f 2781 2782 2783 455 +f 2693 2694 2695 457 +f 2301 2302 458 +f 555 562 1630 1648 +f 563 562 555 554 +f 554 2299 2298 2269 2220 +f 2694 2304 2786 2687 +f 562 1782 1781 1800 2204 +f 2250 2249 555 1648 1642 +f 554 2220 2219 1624 1618 +f 2300 2301 458 +f 2305 2306 2300 458 +f 2785 2786 2781 455 +f 2782 2781 2303 2302 +f 2786 2785 2688 2687 +s 133 +f 2457 2456 2255 2254 +f 2240 2239 2258 2257 +f 2256 2251 533 +f 2240 2241 2242 557 +f 2236 2230 558 +f 2230 2231 2232 558 +f 2258 2256 2455 2728 +f 2232 2233 2234 558 +f 2237 2238 557 +f 2242 2243 2237 557 +f 2255 2256 533 +f 2241 2240 2257 2262 +f 2456 2455 2256 2255 +f 2235 2234 2251 2256 +f 2251 2252 2253 533 +f 2239 2240 557 +f 2235 2236 558 +f 2235 2256 2258 2239 +f 2457 2254 2276 2310 +f 2234 2235 558 +f 2238 2239 557 +f 2253 2254 2255 533 +f 2246 2245 2243 2242 +f 2277 2276 2254 2253 +f 2728 2727 2259 2258 +s 166 +f 2570 2569 2419 2418 +f 2566 2565 2282 2281 +f 2276 2275 2311 2310 +f 2426 2425 2418 2417 +f 2422 2427 2289 2288 +f 2286 2292 2280 2279 +f 550 2222 2271 511 +f 2232 2231 2229 2228 +f 2208 2207 2238 2237 +f 2189 2188 2225 2224 +f 2214 2213 2192 2191 +f 2200 2199 2211 2210 +f 567 2194 2083 606 +f 2178 2177 2075 2074 +f 2078 2077 2177 2176 +f 2080 2079 2065 2064 +f 1667 1666 2145 2144 +f 606 2083 1984 1983 +f 1987 1986 2072 2071 +f 2076 2081 2070 2069 +f 1945 1944 1880 1879 +f 1671 1670 1794 1793 +f 1519 1518 1530 1529 +f 1437 1436 1467 702 +f 1415 1414 1453 708 +f 1116 1115 1111 1110 +f 2424 2425 2426 544 +f 2313 2314 2315 546 +f 2292 2286 543 +f 2286 2287 2288 543 +f 2280 2281 502 +f 2274 2275 534 +f 2224 2225 547 +f 2216 2217 559 +f 2208 2209 2210 560 +f 2204 2198 561 +f 2198 2199 2200 561 +f 2188 2189 570 +f 2180 2174 574 +f 2174 2175 2176 574 +f 2146 2147 2148 584 +f 2139 2140 583 +f 2077 2078 573 +f 2073 2074 615 +f 2062 2063 2064 572 +f 1985 1986 1987 616 +f 1943 1944 1945 617 +f 1938 1939 1940 618 +f 1883 1884 629 +f 1793 1794 649 +f 1606 1607 667 +f 1495 1496 605 +f 1468 1470 2207 2206 +f 1438 2206 2218 +f 1465 1438 1478 +f 1416 1454 2235 +f 1416 2239 2238 1464 +f 565 1501 1492 1508 +f 2077 2075 2177 +f 1988 2070 2081 2063 +f 2180 2179 569 2188 2139 +f 2206 1794 2149 2218 +f 569 568 549 548 +f 2233 2227 2278 +f 2270 1525 1524 552 +f 2281 2280 549 2223 2272 +f 2427 2416 2316 2289 +f 2287 2285 2423 +f 2291 2314 2312 2274 +f 2201 2209 2243 2245 +f 549 568 2194 2223 +f 2147 2192 2213 +f 1798 2211 2199 +f 565 1882 2197 +f 2180 2139 2137 2182 +f 2072 1986 1984 2083 +f 1794 1670 1668 2149 +f 1518 1514 1528 1530 +f 1462 1464 2238 +f 1459 1458 2207 +f 1476 1478 2217 +f 1473 1472 2217 2236 +f 1116 1110 1532 1526 +f 1499 1500 1495 605 +f 1667 1668 1663 585 +f 1794 1795 649 +f 1879 1880 1875 630 +f 1940 1941 618 +f 1947 1948 1943 617 +f 1987 1988 1989 616 +f 2064 2065 2066 572 +f 2072 2073 615 +f 2080 2081 2076 573 +f 2138 2139 583 +f 2144 2145 2146 584 +f 2176 2177 2178 574 +f 2181 2182 2183 571 +f 2189 2190 2191 570 +f 2203 2204 561 +f 2207 2208 560 +f 2214 2215 2216 559 +f 2225 2226 547 +f 2273 2274 534 +f 2279 2280 502 +f 2284 2285 2279 502 +f 2291 2292 543 +f 2315 2316 2317 546 +f 2423 2424 544 +f 2426 2427 2422 544 +f 2510 2511 2506 514 +f 1416 1415 708 1454 +f 1438 1437 702 1468 +f 1520 1519 1529 1534 +f 1670 1669 1663 1668 +f 1944 1943 1936 1942 +f 1948 1947 1775 1774 +f 1986 1985 1979 1984 +f 2077 2076 2069 2075 +f 1993 1992 605 1497 +f 2139 2138 2132 2137 +f 2182 2181 2174 2180 +f 1666 1665 2134 2133 +f 2186 2185 2066 2065 +f 2188 2187 2140 2139 +f 2199 2198 1799 1798 +f 2201 2200 2210 2209 +f 2215 2214 2191 2190 +f 2190 2189 2224 2229 +f 2209 2208 2237 2243 +f 2233 2232 2228 2227 +f 2227 2226 2273 2278 +f 2314 2313 2307 2312 +f 2278 2277 2253 2252 +f 2316 2315 2290 2289 +f 511 2271 2507 2506 +f 2424 2423 2285 2284 +f 2567 2566 2511 2510 +f 2565 2570 2283 2282 +f 2275 2274 2312 2311 +f 2427 2426 2417 2416 +f 2423 2422 2288 2287 +f 2287 2286 2279 2285 +f 2223 550 511 2272 +f 2203 2202 2244 2250 +f 2217 2216 2230 2236 +f 2194 567 550 2223 +f 2213 2212 2148 2147 +f 2206 2205 1795 1794 +f 2193 567 606 2082 +f 2179 2178 2074 2073 +f 2143 2142 2146 2145 +f 2081 2080 2064 2063 +f 1668 1667 2144 2149 +f 2082 606 1983 1982 +f 1988 1987 2071 2070 +f 1991 604 629 1884 +f 1500 1499 1505 1504 +f 1887 1886 1877 1876 +f 1798 1797 1791 1796 +f 1606 1605 1625 1624 +f 1514 1513 1523 1528 +f 1459 707 706 1458 +f 2569 2570 2565 501 +f 2506 2507 2508 514 +f 2422 2423 544 +f 2417 2418 2419 545 +f 2311 2312 2307 531 +f 2288 2289 2290 543 +f 2281 2282 502 +f 2275 2276 2277 534 +f 2228 2229 2224 547 +f 2217 2218 559 +f 2210 2211 2205 560 +f 2205 2206 560 +f 2200 2201 2202 561 +f 2187 2188 570 +f 2179 2180 574 +f 2148 2149 584 +f 2140 2141 2142 583 +f 2132 2133 2134 586 +f 2074 2075 2069 615 +f 2069 2070 2071 615 +f 1992 1993 1994 604 +f 1983 1984 1979 603 +f 1942 1936 618 +f 1936 1937 1938 618 +f 1875 1876 1877 630 +f 1791 1792 1793 649 +f 1605 1606 667 +f 1496 1497 605 +f 1456 1473 2236 +f 1472 1476 2217 +f 1470 1459 2207 +f 1458 1462 2238 2207 +f 565 552 1509 1501 +f 1606 1624 2219 2196 +f 1788 1937 1948 1774 +f 1666 2133 2143 2145 +f 568 569 2179 2073 +f 565 1508 1507 1882 +f 1798 1796 2211 +f 2147 2141 2192 +f 569 548 2225 2188 +f 548 549 2280 2292 +f 2425 2283 2570 2418 +f 2281 2272 2511 2566 +f 548 2292 2291 2274 2225 +f 552 2221 2270 +f 2233 2278 2252 +f 2215 2190 2229 2231 +f 552 565 2197 2221 +f 568 2073 2072 2083 2194 +f 2079 2175 2186 2065 +f 1882 1507 1887 1876 +f 1509 552 1524 1512 +f 1451 1416 1464 +f 1416 2235 2239 +f 1454 1456 2236 2235 +f 1438 2218 2217 1478 +f 1438 1468 2206 +f 1122 1116 1526 2589 +f 1498 1499 605 +f 1665 1666 1667 585 +f 1795 1796 1791 649 +f 1886 1887 1883 629 +f 1941 1942 618 +f 1981 1982 1983 603 +f 1991 1992 604 +f 2071 2072 615 +f 2076 2077 573 +f 2136 2137 2132 586 +f 2142 2143 2138 583 +f 2149 2144 584 +f 2178 2179 574 +f 2185 2186 2181 571 +f 2191 2192 2187 570 +f 2202 2203 561 +f 2206 2207 560 +f 2212 2213 2214 559 +f 2218 2212 559 +f 2226 2227 2228 547 +f 2277 2278 2273 534 +f 2282 2283 2284 502 +f 2290 2291 543 +f 2309 2310 2311 531 +f 2415 2416 2417 545 +f 2565 2566 2567 501 +f 1122 1121 1117 1116 +f 707 1460 1457 706 +f 1513 1512 1524 1523 +f 1797 1802 1792 1791 +f 1943 1948 1937 1936 +f 1989 1988 2063 2062 +f 1994 1993 1982 1981 +f 1992 1991 1498 605 +f 2138 2143 2133 2132 +f 2181 2186 2175 2174 +f 2142 2141 2147 2146 +f 2183 2182 2137 2136 +f 2187 2192 2141 2140 +f 2205 2211 1796 1795 +f 2212 2218 2149 2148 +f 567 2193 2222 550 +f 2216 2215 2231 2230 +f 2202 2201 2245 2244 +f 2234 2233 2252 2251 +f 2226 2225 2274 2273 +f 2317 2316 2416 2415 +f 2452 2457 2310 2309 +f 2315 2314 2291 2290 +f 2272 511 2506 2511 +f 2425 2424 2284 2283 +f 1532 1531 1527 1526 +s 135 +f 2325 2330 2320 2319 +f 2724 2725 470 +f 2320 2330 2730 2453 +f 2320 2321 530 +f 2729 2730 469 +f 2731 2730 2724 2723 +f 2723 2724 470 +f 2330 2718 2724 2730 +f 2319 2320 530 +f 2730 2731 469 +f 2730 2729 2454 2453 +s 117 +f 2718 2717 2773 2772 +f 2718 2719 472 +f 2718 2772 2784 2724 +f 2690 2684 456 +f 2784 2785 455 +f 2785 2784 2689 2688 +f 2717 2718 472 +f 2688 2689 456 +f 2689 2690 456 +f 2783 2784 455 +f 2784 2783 2725 2724 +s 118 +f 2772 2771 2767 2766 +f 2556 2555 2551 2550 +f 2765 2766 460 +f 2421 2415 545 +f 2556 2550 2420 2568 +f 2421 2420 2550 2623 2690 2689 2766 2429 +f 2420 2421 545 +f 2766 2767 460 +f 2569 2568 2420 2419 +f 2608 2607 2623 2622 +f 2772 2773 459 +f 2604 2605 500 +f 2772 2766 2689 2784 +f 2605 2690 2623 2607 +f 2419 2420 545 +f 2605 2600 500 +f 2771 2772 459 +f 2605 2604 2684 2690 +f 2766 2765 2430 2429 +s 132 +f 2266 2265 2261 2260 +f 2696 2695 2686 2685 +f 2270 490 2598 2597 +f 2603 2602 2297 2296 +f 553 2220 2269 490 +f 564 2196 2219 553 +f 627 1882 1876 1875 +f 2695 2696 2691 457 +f 2598 2599 2594 487 +f 2515 2516 2512 513 +f 2456 2457 2452 532 +f 2295 2296 2297 499 +f 2265 2266 2267 467 +f 2258 2259 468 +f 2248 2249 556 +f 1527 1528 1523 489 +f 1942 1881 1880 1944 +f 2247 2262 2264 +f 2591 1525 2270 2597 +f 2298 2601 2599 2269 +f 1526 1527 489 +f 2219 2220 553 +f 2249 2250 556 +f 2259 2260 2261 468 +f 2267 2268 467 +f 2454 2455 2456 532 +f 2596 2597 2598 487 +f 2684 2685 2686 456 +f 1881 627 1875 1880 +f 2197 564 553 2221 +f 2249 2248 2263 2268 +f 513 2513 2589 488 +f 2604 2603 2685 2684 +f 2592 2591 2597 2596 +f 2590 2589 1526 489 +f 2267 2266 2722 2721 +f 2265 2264 2262 2261 +f 2729 2728 2455 2454 +f 2727 2732 2260 2259 +f 490 2269 2599 2598 +f 2602 2601 2298 2297 +f 2691 2696 2296 2295 +f 1531 1530 1528 1527 +f 2221 553 490 2270 +f 2247 2246 2242 2241 +f 2195 564 627 1881 +f 2731 2732 2727 469 +f 2600 2601 2602 500 +f 2590 2591 2592 488 +f 2297 2298 499 +f 2263 2264 2265 467 +f 2257 2258 468 +f 2246 2247 2248 556 +f 2195 2196 564 +f 1523 1524 489 +f 2603 2296 2696 2685 +f 2732 2722 2266 2260 +f 2247 2241 2262 +f 1524 1525 489 +f 2244 2245 2246 556 +f 2250 2244 556 +f 2261 2262 2257 468 +f 2268 2263 467 +f 2298 2299 499 +f 2512 2513 513 +f 2589 2590 488 +f 2602 2603 2604 500 +f 2727 2728 2729 469 +f 564 2197 1882 627 +f 2248 2247 2264 2263 +f 2601 2600 2594 2599 +f 2591 2590 489 1525 +f 2268 2267 2721 2726 +f 2732 2731 2723 2722 +s 155 +f 2609 2608 2622 2621 +f 2613 2612 2606 2611 +f 2612 2613 2614 485 +f 2610 2611 2606 498 +f 2620 2621 2622 497 +f 2614 2615 2616 485 +f 2608 2609 2610 498 +f 2618 2619 2620 497 +f 2619 2618 2549 2548 +s 159 +f 2607 2608 498 +f 2595 2605 2607 2617 +f 2617 2612 485 +f 2585 2584 2617 2616 +f 2612 2617 2607 2606 +f 2606 2607 498 +f 2593 2595 2617 2584 +f 2616 2617 485 +s 160 +f 2514 513 488 2593 +f 2622 2623 497 +f 2592 2593 488 +f 2584 2497 2514 2593 +f 2584 2585 486 +f 2623 2618 497 +f 2600 2605 2595 2594 +f 2594 2595 487 +f 2514 2515 513 +f 2583 2584 486 +f 2595 2596 487 +f 2584 2583 2498 2497 +f 2593 2592 2596 2595 +s 185 +f 2491 2490 2557 2556 +f 2568 2569 501 +f 2497 2491 2509 2514 +f 2490 2491 516 +f 2567 2568 501 +f 2491 2556 2568 2509 +f 2491 2492 516 +f 2497 2496 2492 2491 +f 2568 2567 2510 2509 +s 164 +f 2516 2515 2508 2507 +f 1485 1484 1496 1495 +f 1110 1109 1105 1104 +f 1531 1532 512 +f 1110 1104 2513 1532 +f 551 1480 1520 1534 +f 566 551 2222 2193 +f 551 1534 1533 2271 +f 2082 1497 1496 566 +f 1481 566 1496 1484 +f 1103 1104 779 +f 1533 1534 512 +f 2512 2516 1533 512 +f 1529 1530 1531 512 +f 1104 1122 2589 2513 +f 566 2193 2082 +f 551 2271 2222 +f 2271 1533 2516 2507 +f 1993 1497 2082 1982 +f 551 566 1481 1480 +f 1104 1105 779 +f 1534 1529 512 +f 1104 1103 1123 1122 +f 2513 2512 512 1532 +s 138 +f 2715 2716 2717 472 +f 2333 2334 2335 542 +f 2323 2324 2319 530 +f 2325 2326 2327 471 +f 2339 2340 2341 529 +f 2326 2325 2319 2324 +f 2334 2333 2428 2433 +f 2329 2328 2720 2719 +f 2322 2321 2341 2340 +f 2338 2337 2331 2336 +f 2719 2720 2715 472 +f 2335 2336 2331 542 +f 2321 2322 2323 530 +f 2327 2328 2329 471 +f 2337 2338 2339 529 +s 224 +f 2321 2320 2342 2341 +f 2341 2342 529 +f 2308 2318 2332 2342 +f 2332 2333 542 +f 2453 2452 2309 2308 +f 2342 2337 529 +f 2453 2308 2342 2320 +f 2331 2332 542 +f 2337 2342 2332 2331 +s 225 +f 2333 2332 2429 2428 +f 2317 2318 546 +f 2318 2313 546 +f 2318 2317 2415 2421 +f 2429 2430 541 +f 2318 2421 2429 2332 +f 2428 2429 541 +s 119 +f 2300 2306 2294 2293 +f 2691 2692 457 +f 2294 2306 2692 +f 2299 2293 499 +f 2695 2694 2687 2686 +f 2301 2300 2293 2299 +f 2293 2294 2295 499 +f 2686 2687 2688 456 +f 2692 2693 457 +f 2692 2691 2295 2294 +s 253 +f 1883 1887 1507 628 +f 1128 1127 1147 1146 +f 1140 1139 1135 1134 +f 1507 1508 628 +f 1127 1128 775 +f 1146 1140 1884 1506 +f 1128 1146 1506 1498 +f 1128 1129 775 +f 1508 1503 628 +f 1492 1491 1503 1508 +f 1884 1883 628 1506 +f 1486 1485 1495 1500 +f 1505 1506 628 +f 1140 1134 1991 1884 +f 1490 1486 1500 1504 +f 1134 1128 1498 1991 +f 1503 1504 1505 628 +f 1134 1133 1129 1128 +f 1146 1145 1141 1140 +f 1491 1490 1504 1503 +f 1499 1498 1506 1505 +s 416 +f 1593 1598 1538 681 +f 684 1535 1582 1581 +f 1571 1576 1540 683 +f 1587 1588 1589 679 +f 1535 1538 1541 1540 +f 1540 1576 1582 1535 +f 1597 1598 1593 680 +f 1541 682 683 1540 +f 1581 1582 1577 685 +f 1541 1538 1598 1588 +f 1575 1576 1571 686 +f 681 1538 1535 684 +f 1577 1582 1576 1575 +f 682 1541 1588 1587 +f 1589 1588 1598 1597 +s 255 +f 2198 2204 1800 1799 +f 1801 1800 1656 1655 +f 1673 1672 1654 1653 +f 1661 1660 1772 1771 +f 1799 1800 650 +f 1783 1784 1778 659 +f 1778 1779 1780 659 +f 1655 1656 1651 647 +f 1642 1643 665 +f 1630 1631 663 +f 1618 1619 669 +f 1781 1658 1656 1800 +f 1786 1784 1939 +f 1642 1636 2203 2250 +f 1617 1618 669 +f 1629 1630 663 +f 1641 1642 665 +f 1653 1654 1655 647 +f 1782 1783 659 +f 1785 1786 660 +f 1800 1801 650 +f 1630 1629 1649 1648 +f 1786 1785 1778 1784 +f 1802 1801 1655 1654 +f 1784 1783 1940 1939 +f 1790 1789 1773 1772 +f 1658 1657 1651 1656 +f 1642 1641 1637 1636 +f 1797 1798 1799 650 +f 1786 1787 660 +f 1780 1781 659 +f 1647 1648 664 +f 1635 1636 666 +f 1623 1624 668 +f 1611 1612 670 +f 1672 1792 1802 1654 +f 1790 1772 1660 1779 +f 1612 1613 670 +f 1624 1625 668 +f 1636 1637 666 +f 1648 1649 664 +f 1771 1772 1773 661 +f 1781 1782 659 +f 1789 1790 1785 660 +f 1801 1802 1797 650 +f 1785 1790 1779 1778 +f 1659 1658 1781 1780 +f 1787 1786 1939 1938 +s 264 +f 2185 2184 2067 2066 +f 2116 2117 588 +f 2066 2067 572 +f 2067 2068 572 +f 2184 2185 571 +f 2184 2183 2136 2135 +f 2117 2116 2166 2165 +f 2117 2118 588 +f 2117 2165 2184 2135 +f 2068 2062 572 +f 2183 2184 571 +s 265 +f 2165 2166 575 +f 2068 2067 1688 1698 1777 1776 1921 1978 +f 2165 1688 2067 2184 +f 1990 1985 616 +f 1927 1926 1922 1921 +f 2165 2164 1689 1688 +f 1990 1989 2062 2068 +f 2164 2165 575 +f 1990 2068 1978 2003 +f 1927 1921 1776 1946 +f 1989 1990 616 +s 282 +f 1665 1664 2135 2134 +f 1681 1686 1676 1675 +f 2134 2135 586 +f 1808 1803 646 +f 1676 1677 658 +f 1663 1664 585 +f 1674 1652 1686 1808 +f 1652 1662 1676 1686 +f 1673 1674 648 +f 1686 1681 645 +f 2123 2124 587 +f 1674 1673 1653 1652 +f 1808 1807 2124 2123 +f 2123 2122 2118 2117 +f 2135 2136 586 +f 1807 1808 646 +f 1675 1676 658 +f 1664 1665 585 +f 2123 2117 2135 1664 +f 1664 1674 1808 2123 +f 1674 1669 648 +f 1685 1686 645 +f 2122 2123 587 +f 1669 1674 1664 1663 +f 1803 1808 1686 1685 +s 303 +f 2008 2009 2010 601 +f 2006 2007 2002 614 +f 2009 2008 2002 2007 +f 2010 2011 2012 601 +f 2004 2005 2006 614 +s 270 +f 1998 1997 2013 2012 +f 1867 1866 1997 1996 +f 1947 1946 1776 1775 +f 1693 1698 1688 1687 +f 2003 2004 614 +f 1994 1995 604 +f 1946 1947 617 +f 1920 1921 620 +f 1776 1777 661 +f 1687 1688 576 +f 1860 1927 1946 1878 +f 1995 1980 2013 1997 +f 1866 1860 1878 1885 +f 1662 1657 662 +f 1697 1698 657 +f 1777 1771 661 +f 1885 1886 629 +f 1927 1928 619 +f 1977 1978 613 +f 2002 2003 614 +f 1662 1661 1771 1777 +f 1921 1920 1973 1978 +f 1946 1945 1879 1878 +f 1995 1994 1981 1980 +f 2004 2003 1978 1977 +f 1860 1859 1928 1927 +f 1866 1865 1861 1860 +f 2013 2008 601 +f 1996 1997 602 +f 1945 1946 617 +f 1921 1922 620 +f 1859 1860 632 +f 1775 1776 661 +f 1688 1689 576 +f 1662 1777 1698 1676 +f 1885 1995 1997 1866 +f 1980 1990 2003 2013 +f 1661 1662 662 +f 1698 1693 657 +f 1860 1861 632 +f 1926 1927 619 +f 1978 1973 613 +f 1997 1998 602 +f 2012 2013 601 +f 1677 1676 1698 1697 +f 604 1995 1885 629 +f 2008 2013 2003 2002 +s 306 +f 2005 2004 1977 1976 +s 271 +f 2124 2125 2120 587 +f 1695 1696 1697 657 +f 1677 1678 1679 658 +f 1683 1684 1685 645 +f 1803 1804 1805 646 +f 1682 1681 1675 1680 +f 1804 1803 1685 1684 +f 1678 1677 1697 1696 +f 2120 2121 2122 587 +f 1693 1694 1695 657 +f 1679 1680 1675 658 +f 1681 1682 1683 645 +f 1805 1806 1807 646 +f 1807 1806 2125 2124 +s 403 +f 1623 1622 1620 1619 +f 675 1583 1622 1621 +f 682 1542 1539 683 +f 1621 1622 1623 668 +f 1571 1572 1573 686 +f 1550 1551 671 +f 1539 1549 1548 1583 1572 +f 1583 1548 1620 1622 +f 1539 1542 1551 1549 +f 1549 1543 676 +f 1619 1620 1615 669 +f 1551 1550 1543 1549 +f 1542 682 1587 1592 +f 1548 1547 1615 1620 +f 1602 672 1639 1644 +f 1592 1591 672 1602 +f 1572 1571 683 1539 +f 1643 1644 1639 665 +f 1551 1552 671 +f 1547 1548 676 +f 1552 1551 1542 1592 1602 +f 1552 1602 1644 1646 +f 1548 1549 676 +f 1552 1553 671 +f 1591 1592 1587 679 +f 1645 1646 1647 664 +f 1573 1572 1583 675 +f 1553 1552 1646 1645 +f 1647 1646 1644 1643 +s 405 +f 1641 1640 1638 1637 +f 1591 1590 1601 672 +f 1595 1596 1597 680 +f 1596 1600 1601 1590 +f 1637 1638 1633 666 +f 1596 1595 673 1600 +f 1600 673 1633 1638 +f 1590 1589 1597 1596 +f 1589 1590 1591 679 +f 1601 1600 1638 1640 +f 1639 1640 1641 665 +f 672 1601 1640 1639 +s 407 +f 1635 1634 1632 1631 +f 673 1599 1634 1633 +f 1595 1594 1599 673 +f 1609 1610 1611 670 +f 1569 1570 674 +f 1537 1570 1569 1599 1594 +f 1599 1569 1632 1634 +f 1568 1569 674 +f 1593 1594 1595 680 +f 1631 1632 1627 663 +f 1536 684 1581 1580 +f 1594 1593 681 1537 +f 1569 1568 1627 1632 +f 1586 678 1603 1608 +f 1580 1579 678 1586 +f 1537 681 684 1536 +f 1607 1608 1603 667 +f 1570 1564 674 +f 1537 1536 1558 1570 +f 1559 1586 1608 1610 +f 1559 1558 1536 1580 1586 +f 1579 1580 1581 685 +f 1633 1634 1635 666 +f 1560 1559 1610 1609 +f 1611 1610 1608 1607 +s 640 +f 1629 1628 1650 1649 +f 1627 1628 1629 663 +f 1567 1554 1650 1628 +f 1649 1650 1645 664 +f 1554 1553 1645 1650 +f 1567 1566 1555 1554 +f 1553 1554 1555 671 +f 1566 1567 1568 674 +f 1568 1567 1628 1627 +s 639 +f 1617 1616 1614 1613 +f 1615 1616 1617 669 +f 1546 1561 1614 1616 +f 1613 1614 1609 670 +f 1561 1560 1609 1614 +f 1546 1545 1562 1561 +f 1560 1561 1562 677 +f 1545 1546 1547 676 +f 1547 1546 1616 1615 +s 409 +f 678 1585 1604 1603 +f 1603 1604 1605 667 +f 1574 1584 1585 1578 +f 1577 1578 1579 685 +f 1578 1577 1575 1574 +f 1584 675 1621 1626 +f 1574 1573 675 1584 +f 1625 1626 1621 668 +f 1573 1574 1575 686 +f 1585 1584 1626 1604 +f 1579 1578 1585 678 +f 1605 1604 1626 1625 +s 637 +f 1545 1544 1563 1562 +f 1562 1563 1557 677 +f 1563 1544 1556 1565 +f 1564 1565 1566 674 +f 1565 1564 1557 1563 +f 1543 1544 1545 676 +f 1555 1556 1550 671 +f 1550 1556 1544 1543 +f 1566 1565 1556 1555 +s 425 +f 696 1463 1452 710 +f 698 1477 1466 704 +f 700 1471 1475 699 +f 702 1467 1469 695 +f 705 1461 1463 696 +f 708 1453 1455 697 +f 1385 1384 1436 1435 +f 703 1437 1438 +f 1352 1309 1453 1414 +f 1428 1426 1457 1460 +f 1325 1386 1440 1466 +f 1447 1445 1471 1474 +f 1449 1447 1474 1455 +f 1441 1325 1466 1477 +f 1430 1428 1460 1469 +f 1422 1421 1452 1463 +f 1439 1440 1435 703 +f 1454 708 697 1456 +f 1462 705 696 1464 +f 1468 702 695 1470 +f 1472 700 699 1476 +f 1478 698 704 1465 +f 1464 696 710 1451 +f 1470 695 707 1459 +f 1456 697 701 1473 +f 1476 699 698 1478 +f 1473 701 700 1472 +f 1465 704 1439 1438 +f 1458 706 705 1462 +f 1451 710 1417 1416 +f 1435 1436 1437 703 +f 1426 1424 1461 1457 +f 1384 1433 1432 1467 1436 +f 1445 1443 1475 1471 +f 1309 1449 1455 1453 +f 1443 1441 1477 1475 +f 1432 1430 1469 1467 +f 1424 1422 1463 1461 +f 1438 1439 703 +f 1353 1352 1414 1413 +f 710 1452 1418 1417 +f 706 1457 1461 705 +f 704 1466 1440 1439 +f 701 1474 1471 700 +f 699 1475 1477 698 +f 697 1455 1474 701 +f 695 1469 1460 707 +s 426 +f 1417 1418 1413 709 +f 1421 1420 1354 1418 1452 +f 1416 1417 709 +f 1386 1385 1435 1440 +f 709 1415 1416 +f 1413 1414 1415 709 +s 490 +f 1143 1144 1145 776 +f 1141 1142 1137 777 +f 1145 1144 1142 1141 +f 1036 1035 1144 1143 +f 1035 1066 1142 1144 +f 1066 1065 1137 1142 +s 576 +f 912 911 1131 1136 +f 1064 912 1136 1138 +f 1065 1064 1138 1137 +f 1139 1138 1136 1135 +f 1135 1136 1131 778 +f 1137 1138 1139 777 +s 492 +f 1129 1130 1125 775 +f 1131 1132 1133 778 +f 1133 1132 1130 1129 +f 911 910 1132 1131 +f 910 1045 1130 1132 +f 1045 1044 1125 1130 +s 586 +f 1037 1036 1143 1148 +f 1125 1126 1127 775 +f 1044 1043 1126 1125 +f 1127 1126 1148 1147 +f 1147 1148 1143 776 +f 1043 1037 1148 1126 +s 495 +f 1117 1118 1113 781 +f 1119 1120 1121 780 +f 1121 1120 1118 1117 +f 1097 1096 1120 1119 +f 1096 1027 1118 1120 +f 1027 1026 1113 1118 +s 583 +f 1019 1018 1107 1112 +f 1025 1019 1112 1114 +f 1026 1025 1114 1113 +f 1115 1114 1112 1111 +f 1113 1114 1115 781 +f 1111 1112 1107 782 +s 497 +f 1107 1108 1109 782 +f 1105 1106 1101 779 +f 1109 1108 1106 1105 +f 1018 1017 1108 1107 +f 1017 862 1106 1108 +f 862 861 1101 1106 +s 565 +f 1098 1097 1119 1124 +f 1101 1102 1103 779 +f 861 860 1102 1101 +f 1103 1102 1124 1123 +f 860 1098 1124 1102 +f 1123 1124 1119 780 +s 486 +f 1115 1116 781 +f 1110 1111 782 +f 1122 1123 780 +f 1116 1117 781 +f 1109 1110 782 +f 1121 1122 780 +s 482 +f 1146 1147 776 +f 1134 1135 778 +f 1139 1140 777 +f 1145 1146 776 +f 1133 1134 778 +f 1140 1141 777 +s 408 +f 1559 1560 677 +f 1558 1559 677 +f 1557 1558 677 +f 1564 1570 1558 1557 +s 373 +f 1652 1653 647 +f 1651 1652 647 +f 1657 1662 1652 1651 +s 374 +f 1659 1660 1661 662 +f 1660 1659 1780 1779 +f 1657 1658 1659 662 +s 283 +f 1669 1670 1671 648 +f 1672 1671 1793 1792 +f 1671 1672 1673 648 +s 268 +f 2164 2163 1690 1689 +f 1691 1692 1687 576 +f 2166 2167 2162 575 +f 1694 1693 1687 1692 +f 1689 1690 1691 576 +f 2162 2163 2164 575 +f 2116 2115 2167 2166 +s 657 +f 1789 1788 1774 1773 +f 1773 1774 1775 661 +s 332 +f 1788 1787 1938 1937 +f 1787 1788 1789 660 +s 334 +f 1859 1858 1929 1928 +f 1928 1929 1924 619 +f 1918 1919 1920 620 +f 1924 1925 1926 619 +f 1922 1923 1918 620 +f 1926 1925 1923 1922 +s 349 +f 1865 1864 1862 1861 +f 1861 1862 1857 632 +f 1857 1858 1859 632 +s 304 +f 1863 1864 1865 631 +f 1998 1999 2000 602 +f 1999 1998 2012 2011 +f 1868 1867 1996 2001 +f 1867 1868 1863 631 +f 2000 2001 1996 602 +s 350 +f 1866 1867 631 +f 1865 1866 631 +s 313 +f 1886 1885 1878 1877 +f 1877 1878 630 +f 1878 1879 630 +s 320 +f 1920 1919 1974 1973 +f 1973 1974 1975 613 +f 1975 1976 1977 613 +s 310 +f 1985 1990 1980 1979 +f 1980 1981 603 +f 1979 1980 603 +s 266 +f 2079 2078 2176 2175 +f 2078 2079 2080 573 +s 286 +f 2118 2119 2114 588 +f 2114 2115 2116 588 +f 2122 2121 2119 2118 +s 227 +f 2307 2308 531 +f 2308 2309 531 +f 2313 2318 2308 2307 +s 139 +f 2453 2454 532 +f 2330 2325 471 +f 2452 2453 532 +f 2329 2330 471 +f 2330 2329 2719 2718 +s 122 +f 2430 2431 2432 541 +f 2765 2764 2431 2430 +f 2432 2433 2428 541 +s 187 +f 2551 2552 2547 504 +f 2553 2554 2555 503 +f 2555 2554 2552 2551 +f 2490 2489 2558 2557 +f 2557 2558 2553 503 +f 2547 2548 2549 504 +s 203 +f 2488 2489 2490 516 +f 2496 2495 2493 2492 +f 2492 2493 2488 516 +s 156 +f 2585 2586 2587 486 +f 2498 2499 2494 515 +f 2583 2588 2499 2498 +f 2587 2588 2583 486 +f 2494 2495 2496 515 +f 2586 2585 2616 2615 +s 204 +f 2497 2498 515 +f 2496 2497 515 +s 165 +f 2509 2510 514 +f 2515 2514 2509 2508 +f 2508 2509 514 +s 177 +f 2549 2550 504 +f 2618 2623 2550 2549 +f 2550 2551 504 +s 188 +f 2555 2556 503 +f 2556 2557 503 +s 120 +f 2773 2774 2769 459 +f 2763 2764 2765 460 +f 2771 2770 2768 2767 +f 2717 2716 2774 2773 +f 2769 2770 2771 459 +f 2767 2768 2763 460 +s 436 +f 1354 1353 1413 1418 +g heads +usemtl silver +s 128 +f 2702 2701 2753 2752 +f 2752 2751 2745 2750 +f 2704 2703 2697 2702 +f 2755 2756 2751 465 +f 2737 2738 2733 466 +f 2699 2700 2701 478 +f 2391 2392 2393 524 +f 2398 2396 2410 2408 2451 2736 2754 2700 +f 2393 2394 2395 524 +f 2701 2702 2697 478 +f 2753 2754 2755 465 +f 2396 2395 2411 2410 +f 2739 2744 2734 2733 +f 2399 2398 2700 2699 +f 2701 2700 2754 2753 +f 2755 2754 2736 2735 +f 2751 2756 2746 2745 +f 2703 2708 2698 2697 +f 2398 2397 2391 2396 +f 2735 2736 2737 466 +f 2697 2698 2699 478 +f 2702 2752 2750 2704 +f 2756 2734 2744 2746 +f 2395 2396 2391 524 +f 2733 2734 2735 466 +f 2751 2752 2753 465 +f 2397 2402 2392 2391 +f 2740 2739 2733 2738 +f 2756 2755 2735 2734 +s 142 +f 2402 2401 2375 2374 +f 2394 2393 2371 2370 +f 2395 2394 2412 2411 +f 2409 2414 2404 2403 +f 2407 2408 2403 536 +f 2399 2400 2401 477 +f 2372 2392 2402 2374 +f 2406 2382 2445 2447 +f 2397 2398 2399 477 +f 2405 2406 2407 536 +f 2413 2414 2409 523 +f 2408 2407 2446 2451 +f 2393 2392 2372 2371 +f 2401 2400 2376 2375 +f 2387 2386 2414 2413 +f 2406 2405 2383 2382 +f 2410 2409 2403 2408 +f 2409 2410 2411 523 +f 2401 2402 2397 477 +f 2384 2404 2414 2386 +f 2394 2370 2388 2412 +f 2400 2698 2708 2376 +f 2403 2404 2405 536 +f 2411 2412 2413 523 +f 2407 2406 2447 2446 +f 2405 2404 2384 2383 +f 2388 2387 2413 2412 +f 2400 2399 2699 2698 +s 131 +f 2450 2451 2446 535 +f 2738 2449 2443 2740 +f 2444 2443 2449 2448 +f 2737 2736 2451 2450 +f 2448 2449 2450 535 +f 2446 2447 2448 535 +f 2738 2737 2450 2449 +s 150 +f 2657 2656 2676 2675 +f 2645 2644 2682 2681 +f 2665 2664 2674 2673 +f 2673 2672 2666 2671 +f 2682 2683 2678 491 +f 2674 2675 2676 479 +f 2666 2667 2668 492 +f 2519 2520 2521 510 +f 2669 2651 2645 2681 +f 2653 2667 2677 2655 +f 2521 2522 2517 510 +f 2664 2665 2660 480 +f 2672 2673 2674 479 +f 2680 2681 2682 491 +f 2539 2538 2520 2519 +f 2678 2683 2522 2521 +f 2664 2663 2675 2674 +f 2644 2643 2683 2682 +f 2656 2655 2677 2676 +f 2668 2667 2653 2652 +f 2670 2669 2681 2680 +f 2672 2677 2667 2666 +f 2523 2528 2518 2517 +f 2676 2677 2672 479 +f 2668 2669 2670 492 +f 2660 2661 2662 480 +f 2517 2518 2519 510 +f 2663 2574 2657 2675 +f 2524 2522 2683 2643 +f 2662 2663 2664 480 +f 2670 2671 2666 492 +f 2678 2679 2680 491 +f 2524 2523 2517 2522 +f 2671 2670 2680 2679 +f 2669 2668 2652 2651 +f 2663 2662 2575 2574 +s 151 +f 2479 2478 2660 2665 +f 2478 2479 2480 521 +f 2477 2475 2576 2661 +f 2480 2481 2476 521 +f 2462 2461 2538 2537 +f 2662 2661 2576 2575 +f 2478 2477 2661 2660 +f 2476 2481 2471 2470 +f 2476 2477 2478 521 +f 2671 2679 2520 2538 2461 2479 2665 2673 +f 2477 2476 2470 2475 +f 2679 2678 2521 2520 +s 195 +f 2540 2539 2519 2518 +f 2536 2535 2529 2534 +f 2539 2540 2535 509 +f 2460 2461 2462 522 +f 2463 2536 2534 2465 +f 2458 2459 2460 522 +f 2537 2538 2539 509 +f 2535 2540 2530 2529 +f 2480 2479 2461 2460 +f 2464 2469 2459 2458 +f 2462 2463 2458 522 +f 2540 2518 2528 2530 +f 2481 2459 2469 2471 +f 2535 2536 2537 509 +f 2465 2464 2458 2463 +f 2481 2480 2460 2459 +f 2463 2462 2537 2536 +s 275 +f 2088 2087 2159 2158 +f 2106 2105 2087 2086 +f 1727 1726 1762 1761 +f 2090 2095 2085 2084 +f 1825 1824 1818 1817 +f 1749 1748 1740 1739 +f 1751 1750 1768 1767 +f 1753 1758 1748 1747 +f 2104 2105 2106 593 +f 2084 2085 2086 594 +f 1767 1768 1769 651 +f 1759 1760 1761 582 +f 1751 1752 1747 652 +f 1740 1748 1758 1742 +f 2161 1762 1726 2151 +f 2107 2085 2095 2097 +f 1770 1730 1728 1760 +f 1754 1752 1766 1764 2159 2087 2105 1822 +f 1753 1754 1755 639 +f 1761 1762 1763 582 +f 1769 1770 1765 651 +f 1825 1826 1821 640 +f 2102 2103 2104 593 +f 2156 2157 2158 581 +f 1754 1753 1747 1752 +f 1752 1751 1767 1766 +f 1750 1749 1739 1738 +f 1826 1825 1817 1816 +f 2091 2090 2084 2089 +f 1728 1727 1761 1760 +f 2107 2106 2086 2085 +f 2089 2088 2158 2157 +f 1824 1823 2104 2103 +f 2161 2160 1763 1762 +f 2157 2156 2150 2155 +f 2103 2102 2096 2101 +f 1744 1743 1757 1756 +f 1732 1731 1769 1768 +f 1822 1821 1755 1754 +f 1766 1765 1759 1764 +f 2160 2161 2156 581 +f 2106 2107 2102 593 +f 2086 2087 2088 594 +f 1821 1822 1823 640 +f 1765 1766 1767 651 +f 1757 1758 1753 639 +f 1749 1750 1751 652 +f 1824 2103 2101 1818 +f 1826 1816 1744 1756 +f 2089 2157 2155 2091 +f 1750 1738 1732 1768 +f 1747 1748 1749 652 +f 1755 1756 1757 639 +f 1763 1764 1759 582 +f 1823 1824 1825 640 +f 2088 2089 2084 594 +f 2158 2159 2160 581 +f 1765 1770 1760 1759 +f 1821 1826 1756 1755 +f 1731 1730 1770 1769 +f 1743 1742 1758 1757 +f 2102 2107 2097 2096 +f 2156 2161 2151 2150 +f 2160 2159 1764 1763 +f 1823 1822 2105 2104 +s 298 +f 2052 2051 2043 2042 +f 2056 2061 2051 2050 +f 2054 2055 2050 608 +f 1957 1958 1959 596 +f 2043 2051 2061 2045 +f 1959 1960 1955 596 +f 2056 2057 2058 595 +f 2057 2056 2050 2055 +f 1958 1957 2036 2035 +f 2047 2046 2060 2059 +f 1960 1959 2058 2057 +f 2060 2061 2056 595 +f 2052 2053 2054 608 +f 1955 1956 1957 596 +f 1958 2035 2047 2059 +f 2050 2051 2052 608 +f 2058 2059 2060 595 +f 1959 1958 2059 2058 +f 2046 2045 2061 2060 +s 300 +f 1963 1962 1954 1953 +f 1953 1954 1949 607 +f 2053 2041 1964 1952 +f 2053 2052 2042 2041 +f 1964 1963 1953 1952 +f 1951 1952 1953 607 +f 1949 1950 1951 607 +f 2054 2053 1952 1951 +s 299 +f 1957 1956 2037 2036 +f 1831 1830 1909 1908 +f 1845 1850 1840 1839 +f 1846 1844 2037 1956 +f 1845 1846 1847 637 +f 1846 1845 1839 1844 +f 2055 2054 1951 1950 +f 1956 1955 1847 1846 +f 1849 1850 1845 637 +f 2055 1950 1891 1909 1830 1848 1960 2057 +f 1847 1848 1849 637 +f 1892 1891 1950 1949 +f 1955 1960 1848 1847 +s 342 +f 1849 1848 1830 1829 +f 1833 1838 1828 1827 +f 1831 1832 1827 638 +f 1832 1907 1905 1834 +f 1829 1830 1831 638 +f 1910 1911 1906 625 +f 1907 1906 1900 1905 +f 1832 1831 1908 1907 +f 1911 1910 1890 1889 +f 1834 1833 1827 1832 +f 1906 1907 1908 625 +f 1911 1889 1899 1901 +f 1827 1828 1829 638 +f 1908 1909 1910 625 +f 1906 1911 1901 1900 +s 315 +f 1894 1899 1889 1888 +f 1895 1893 1954 1962 +f 1892 1893 1888 626 +f 1893 1892 1949 1954 +f 1895 1894 1888 1893 +f 1888 1889 1890 626 +f 1890 1891 1892 626 +f 1910 1909 1891 1890 +s 357 +f 1850 1828 1838 1840 +f 1850 1849 1829 1828 +s 129 +f 2445 2444 2448 2447 +g cylinders +usemtl black +f 2440 2441 537 +f 2444 2445 2440 537 +f 2741 2740 2443 2442 +f 2441 2442 537 +f 2442 2443 2444 537 +s 120 +f 2780 2779 2759 2758 +f 2716 2715 2709 2714 +f 2709 2710 2711 474 +f 2714 2776 2774 2716 +f 2775 2776 2777 461 +f 2775 2780 2770 2769 +f 2715 2720 2710 2709 +f 2713 2714 2709 474 +f 2780 2758 2768 2770 +f 2779 2780 2775 461 +f 2776 2775 2769 2774 +f 2714 2713 2777 2776 +s 126 +f 2432 2431 2437 2436 +f 2762 2437 2431 2764 +f 2762 2761 2438 2437 +s 138 +f 2366 2365 2327 2326 +f 2358 2357 2323 2322 +f 2359 2358 2352 2351 +f 2361 2366 2356 2355 +f 2363 2364 2365 473 +f 2351 2352 2353 527 +f 2324 2356 2366 2326 +f 2346 2334 2433 2435 +f 2353 2354 2349 527 +f 2365 2366 2361 473 +f 2346 2345 2335 2334 +f 2339 2338 2354 2353 +f 2365 2364 2328 2327 +f 2357 2356 2324 2323 +f 2434 2435 2436 539 +f 2357 2358 2359 528 +f 2336 2344 2354 2338 +f 2358 2322 2340 2352 +f 2364 2710 2720 2328 +f 2355 2356 2357 528 +f 2436 2437 2438 539 +f 2347 2346 2435 2434 +f 2345 2344 2336 2335 +f 2340 2339 2353 2352 +f 2364 2363 2711 2710 +s 127 +f 2742 2741 2442 2441 +f 2381 2380 2441 2440 +f 2348 2343 540 +f 2348 2439 2441 2380 +f 2748 2742 2760 2778 +f 2438 2439 539 +f 2348 2347 2434 2439 +f 2761 2760 2439 2438 +f 2350 2349 2343 2348 +f 2347 2348 540 +f 2742 2441 2439 2760 +f 2350 2348 2380 2390 +f 2439 2434 539 +f 2748 2747 2743 2742 +s 142 +f 2378 2377 2707 2706 +f 2385 2390 2380 2379 +f 2712 2713 474 +f 2385 2386 2387 525 +f 2379 2380 538 +f 2373 2374 2375 475 +f 2367 2368 526 +f 2359 2360 528 +f 2362 2360 2368 2378 +f 2360 2355 528 +f 2368 2369 526 +f 2375 2376 2377 475 +f 2380 2381 538 +f 2387 2388 2389 525 +f 2711 2712 474 +f 2374 2373 2367 2372 +f 2382 2381 2440 2445 +f 2370 2369 2389 2388 +f 2363 2362 2712 2711 +f 2377 2376 2708 2707 +f 2360 2359 2351 2350 +f 2386 2385 2379 2384 +f 2362 2361 2355 2360 +f 2390 2385 525 +f 2383 2384 2379 538 +f 2378 2373 475 +f 2371 2372 2367 526 +f 2362 2363 473 +f 2378 2706 2712 2362 +f 2360 2350 2390 2368 +f 2361 2362 473 +f 2369 2370 2371 526 +f 2377 2378 475 +f 2381 2382 2383 538 +f 2389 2390 525 +f 2373 2378 2368 2367 +f 2369 2368 2390 2389 +s 125 +f 2777 2778 461 +f 2706 2707 476 +f 2706 2748 2778 2712 +f 2707 2708 2703 476 +f 2778 2779 461 +f 2713 2712 2778 2777 +f 2779 2778 2760 2759 +f 2759 2760 462 +f 2705 2706 476 +f 2703 2704 2705 476 +f 2760 2761 462 +f 2706 2705 2749 2748 +s 150 +f 2655 2654 2648 2653 +f 2659 2654 481 +f 2652 2653 2648 494 +f 2647 2642 493 +f 2642 2643 2644 493 +f 2648 2649 494 +f 2654 2655 2656 481 +f 2654 2659 2649 2648 +f 2650 2649 2647 2646 +f 2658 2659 481 +f 2650 2651 2652 494 +f 2646 2647 493 +f 2644 2645 2646 493 +f 2649 2650 494 +f 2656 2657 2658 481 +f 2643 2642 2525 2524 +f 2651 2650 2646 2645 +s 152 +f 2582 2631 2659 2572 +f 2573 2572 2659 2658 +s 155 +f 2615 2614 2634 2633 +f 2621 2620 2640 2639 +f 2548 2547 2541 2546 +f 2632 2633 2634 483 +f 2577 2578 2579 484 +f 2611 2625 2635 2613 +f 2627 2609 2621 2639 +f 2541 2542 2543 506 +f 2626 2627 2628 496 +f 2640 2641 2636 495 +f 2630 2635 2625 2624 +f 2628 2627 2639 2638 +f 2626 2625 2611 2610 +f 2614 2613 2635 2634 +f 2620 2619 2641 2640 +f 2581 2580 2633 2632 +f 2636 2641 2546 2545 +f 2547 2552 2542 2541 +f 2634 2635 2630 483 +f 2579 2580 2581 484 +f 2548 2546 2641 2619 +f 2580 2586 2615 2633 +f 2545 2546 2541 506 +f 2624 2625 2626 496 +f 2638 2639 2640 495 +f 2627 2626 2610 2609 +f 2580 2579 2587 2586 +s 153 +f 2582 2581 2632 2631 +f 2637 2636 2545 2544 +f 2572 2571 2474 2473 +f 2636 2637 495 +f 2628 2629 496 +f 2532 2526 2544 2562 +f 2631 2629 2649 2659 +f 2572 2473 2503 2582 +f 2629 2624 496 +f 2637 2638 495 +f 2631 2632 483 +f 2582 2577 484 +f 2629 2637 2647 2649 +f 2637 2544 2526 2647 +f 2581 2582 484 +f 2630 2631 483 +f 2532 2531 2527 2526 +f 2631 2630 2624 2629 +f 2629 2628 2638 2637 +s 151 +f 2573 2574 2575 482 +f 2474 2475 2470 519 +f 2470 2471 2472 519 +f 2572 2573 482 +f 2571 2576 2475 2474 +f 2575 2576 2571 482 +f 2473 2474 519 +f 2472 2473 519 +f 2571 2572 482 +f 2574 2573 2658 2657 +s 156 +f 2501 2500 2494 2499 +f 2500 2505 2495 2494 +f 2579 2578 2588 2587 +f 2501 2499 2588 2578 +f 2578 2577 2502 2501 +s 187 +f 2487 2486 2561 2560 +f 2560 2559 2553 2558 +f 2559 2560 2561 505 +f 2482 2483 2484 518 +f 2564 2542 2552 2554 +f 2488 2493 2483 2482 +f 2559 2564 2554 2553 +f 2563 2564 2559 505 +f 2487 2560 2558 2489 +f 2486 2487 2482 518 +f 2489 2488 2482 2487 +f 2564 2563 2543 2542 +s 192 +f 2467 2466 2533 2532 +f 2562 2563 505 +f 2467 2468 520 +f 2467 2532 2562 2485 +f 2466 2467 520 +f 2544 2545 506 +f 2472 2471 2469 2468 +f 2486 2485 2562 2561 +f 2563 2562 2544 2543 +f 2561 2562 505 +f 2468 2469 2464 520 +f 2473 2467 2485 2503 +f 2464 2465 2466 520 +f 2543 2544 506 +f 2473 2472 2468 2467 +s 203 +f 2504 2505 2500 517 +f 2505 2483 2493 2495 +f 2500 2501 2502 517 +f 2505 2504 2484 2483 +s 268 +f 2168 2173 2163 2162 +f 2114 2119 2109 2108 +f 2168 2169 2170 577 +f 1722 1694 1692 1712 +f 2173 1714 1690 2163 +f 2172 2173 2168 577 +f 1692 1691 1713 1712 +f 2173 2172 1715 1714 +f 2113 2112 2170 2169 +f 2169 2168 2162 2167 +f 2115 2114 2108 2113 +f 2112 2113 2108 590 +f 2113 2169 2167 2115 +f 2108 2109 2110 590 +f 1695 1694 1722 1721 +f 1691 1690 1714 1713 +s 273 +f 2172 2171 1716 1715 +f 2171 2172 577 +f 2092 2093 592 +f 2099 2093 2111 2129 +f 1716 1711 578 +f 2093 2094 592 +f 1718 1717 1711 1716 +f 2093 2092 2154 2153 +f 2099 2098 2094 2093 +f 2170 2171 577 +f 2090 2091 2092 592 +f 2093 2153 2171 2111 +f 1715 1716 578 +f 2094 2095 2090 592 +f 2098 2097 2095 2094 +f 2112 2111 2171 2170 +s 275 +f 1811 1810 2129 2128 +f 2092 2091 2155 2154 +f 2130 2129 2111 2110 +f 1737 1736 1734 1733 +f 1729 1734 1724 1723 +f 2152 2153 579 +f 2111 2112 590 +f 2098 2099 591 +f 1817 1818 1819 642 +f 1745 1746 641 +f 1737 1738 1739 654 +f 1733 1734 653 +f 1725 1726 1727 580 +f 1717 1718 655 +f 1718 1716 1724 1734 +f 1810 1706 1746 1820 +f 1704 1718 1734 1736 +f 1703 1704 656 +f 1724 1725 580 +f 1731 1732 1733 653 +f 1736 1737 654 +f 1743 1744 1745 641 +f 1809 1810 644 +f 1819 1820 642 +f 2099 2100 591 +f 2129 2130 589 +f 2153 2154 579 +f 1730 1729 1723 1728 +f 1704 1703 1719 1718 +f 1810 1809 1707 1706 +f 2153 2152 1725 1724 +f 1820 1819 2100 2099 +f 1816 1815 1745 1744 +f 1738 1737 1733 1732 +f 1742 1741 1735 1740 +f 1706 1705 1699 1704 +f 2150 2151 2152 579 +f 2110 2111 590 +f 2096 2097 2098 591 +f 1815 1816 1817 642 +f 1746 1741 641 +f 1739 1740 1735 654 +f 1734 1729 653 +f 1727 1728 1723 580 +f 1718 1719 655 +f 1820 2099 2129 1810 +f 2153 1724 1716 2171 +f 1706 1704 1736 1746 +f 1704 1699 656 +f 1723 1724 580 +f 1729 1730 1731 653 +f 1735 1736 654 +f 1741 1742 1743 641 +f 1810 1811 644 +f 1820 1815 642 +f 2100 2101 2096 591 +f 2128 2129 589 +f 2154 2155 2150 579 +f 1741 1746 1736 1735 +f 1815 1820 1746 1745 +f 2152 2151 1726 1725 +f 1819 1818 2101 2100 +s 271 +f 1683 1682 1710 1709 +f 1701 1700 1680 1679 +f 1703 1702 1720 1719 +f 1705 1710 1700 1699 +f 1813 1814 1809 644 +f 1711 1712 1713 578 +f 1701 1702 1703 656 +f 2131 2109 2119 2121 +f 1812 2127 2125 1806 +f 1699 1700 1701 656 +f 1713 1714 1715 578 +f 1811 1812 1813 644 +f 1702 1701 1679 1678 +f 1814 1813 1805 1804 +f 2127 2126 2120 2125 +f 1812 1811 2128 2127 +f 2131 2130 2110 2109 +f 1684 1683 1709 1708 +f 1696 1695 1721 1720 +f 2126 2127 2128 589 +f 1721 1722 1717 655 +f 1709 1710 1705 643 +f 1680 1700 1710 1682 +f 1814 1804 1684 1708 +f 1702 1678 1696 1720 +f 1707 1708 1709 643 +f 1719 1720 1721 655 +f 2130 2131 2126 589 +f 1717 1722 1712 1711 +f 1809 1814 1708 1707 +f 1813 1812 1806 1805 +f 2126 2131 2121 2120 +s 298 +f 2044 2049 2039 2038 +f 2044 2045 2046 597 +f 2038 2039 610 +f 2042 2043 2038 610 +f 2049 2044 597 +f 2045 2044 2038 2043 +f 2046 2047 2048 597 +f 2039 2040 610 +f 2040 2041 2042 610 +f 2048 2049 597 +s 299 +f 2034 2033 2049 2048 +f 2033 2034 598 +f 1841 1842 635 +f 1839 1840 1841 635 +f 2032 2033 598 +f 1844 1843 2032 2037 +f 2035 2034 2048 2047 +f 2031 2030 2022 2021 +f 2034 2035 2036 598 +f 1842 1843 635 +f 2031 2021 2049 2033 +f 1843 1844 1839 635 +f 2036 2037 2032 598 +s 303 +f 2016 2015 2007 2006 +f 2020 2025 2015 2014 +f 2024 2025 2020 599 +f 2029 1999 2011 2023 +f 2016 2017 2018 612 +f 2026 2027 2028 600 +f 2011 2010 2024 2023 +f 2029 2028 2000 1999 +f 2022 2023 2024 599 +f 2007 2015 2025 2009 +f 2014 2015 2016 612 +f 2028 2029 2030 600 +f 2030 2029 2023 2022 +f 2010 2009 2025 2024 +s 300 +f 2041 2040 1965 1964 +s 315 +f 2019 2018 1969 1968 +f 1896 1895 1962 1961 +f 1967 1968 611 +f 1961 1962 1963 609 +f 1894 1895 1896 624 +f 2021 2019 2039 2049 +f 1897 1966 1968 1915 +f 1898 1899 1894 624 +f 1966 1961 609 +f 1903 1902 1898 1897 +f 1897 1896 1961 1966 +f 1968 1969 611 +f 1963 1964 1965 609 +f 1896 1897 624 +f 2019 1968 1966 2039 +f 1903 1897 1915 1933 +f 1897 1898 624 +f 1965 1966 609 +f 1902 1901 1899 1898 +f 1916 1915 1968 1967 +f 2040 2039 1966 1965 +s 306 +f 1969 1970 1971 611 +f 1971 1972 1967 611 +f 2017 2016 2006 2005 +f 1976 1975 1971 1970 +f 2018 2017 1970 1969 +f 2017 2005 1976 1970 +f 1975 1974 1972 1971 +s 334 +f 1930 1935 1925 1924 +f 1934 1935 1930 621 +f 1851 1852 1853 634 +f 1935 1913 1923 1925 +f 1858 1857 1851 1856 +f 1935 1934 1914 1913 +f 1856 1855 1932 1931 +f 1931 1930 1924 1929 +f 1930 1931 1932 621 +f 1856 1931 1929 1858 +f 1855 1856 1851 634 +f 1857 1862 1852 1851 +s 320 +f 1912 1913 1914 622 +f 1916 1917 1912 622 +f 1917 1916 1967 1972 +f 1919 1918 1912 1917 +f 1919 1917 1972 1974 +f 1918 1923 1913 1912 +s 304 +f 1871 1870 2027 2026 +f 1870 1868 2001 2027 +f 1870 1869 1863 1868 +f 1869 1874 1864 1863 +f 2028 2027 2001 2000 +s 301 +f 1843 1842 2033 2032 +f 1872 2031 2033 1842 +s 339 +f 1855 1854 1933 1932 +f 1841 1840 1838 1837 +f 1915 1916 622 +f 1835 1836 636 +f 1836 1903 1933 1854 +f 1836 1837 636 +f 1933 1934 621 +f 1836 1835 1904 1903 +f 1842 1841 1837 1836 +f 1914 1915 622 +f 1833 1834 1835 636 +f 1842 1836 1854 1872 +f 1837 1838 1833 636 +f 1932 1933 621 +f 1934 1933 1915 1914 +s 349 +f 1869 1870 1871 633 +f 1874 1873 1853 1852 +f 1874 1852 1862 1864 +f 1873 1874 1869 633 +s 365 +f 1705 1706 643 +f 1706 1707 643 +s 342 +f 1835 1834 1905 1904 +f 1902 1903 623 +f 1903 1904 623 +f 1900 1901 1902 623 +f 1904 1905 1900 623 +s 354 +f 1873 1872 1854 1853 +f 1854 1855 634 +f 1853 1854 634 +s 305 +f 1871 1872 633 +f 1872 1871 2026 2031 +f 1872 1873 633 +s 302 +f 2031 2026 600 +f 2019 2014 612 +f 2020 2021 599 +f 2021 2020 2014 2019 +f 2030 2031 600 +f 2018 2019 612 +f 2021 2022 599 +s 220 +f 2349 2354 2344 2343 +f 2343 2344 2345 540 +f 2345 2346 2347 540 +s 219 +f 2350 2351 527 +f 2349 2350 527 +s 122 +f 2757 2758 2759 462 +f 2433 2432 2436 2435 +f 2763 2768 2758 2757 +f 2761 2762 2757 462 +f 2764 2763 2757 2762 +s 195 +f 2529 2530 2531 507 +f 2533 2534 2529 507 +f 2466 2465 2534 2533 +f 2531 2532 507 +f 2532 2533 507 +s 208 +f 2485 2486 518 +f 2504 2503 2485 2484 +f 2484 2485 518 +s 157 +f 2503 2504 517 +f 2577 2582 2503 2502 +f 2502 2503 517 +s 170 +f 2527 2528 2523 508 +f 2523 2524 2525 508 +f 2531 2530 2528 2527 +f 2642 2647 2526 2525 +f 2526 2527 508 +f 2525 2526 508 +s 128 +f 2745 2746 2747 463 +f 2739 2740 2741 464 +f 2743 2744 2739 464 +f 2749 2750 2745 463 +f 2705 2704 2750 2749 +f 2747 2746 2744 2743 +f 2747 2748 463 +f 2741 2742 464 +f 2742 2743 464 +f 2748 2749 463 +g emounts +usemtl dkdkgrey +s 500 +f 970 969 791 1030 +f 835 834 872 799 +f 1075 1076 1077 802 +f 970 965 811 +f 854 871 872 834 +f 1013 972 970 1030 +f 1030 1088 870 1013 +f 969 970 811 +f 1087 1088 794 +f 973 972 1013 792 +f 1089 1088 1030 791 +f 792 1013 870 869 +f 1077 1076 1088 1087 +f 961 960 972 971 +f 971 972 814 +f 952 947 822 +f 872 871 870 1088 1076 +f 952 970 972 960 +f 951 952 822 +f 972 973 814 +f 1088 1089 794 +f 952 951 965 970 +f 1076 1075 799 872 +s 253 +f 1511 1516 1510 690 +f 691 1502 1494 1493 +f 1483 1488 1482 694 +f 1491 1492 1493 692 +f 1483 1484 1485 693 +f 1510 1516 1522 1479 +f 1485 1486 1487 693 +f 1493 1494 1489 692 +f 1484 1483 694 1481 +f 1501 691 1493 1492 +f 1512 1511 690 1509 +f 1480 687 1521 1520 +f 1509 690 691 1501 +f 1490 1489 1487 1486 +f 1481 694 687 1480 +f 1489 1490 1491 692 +f 1479 1482 1502 1510 +f 1482 1488 1494 1502 +f 1487 1488 1483 693 +f 694 1482 1479 687 +f 1489 1494 1488 1487 +f 690 1510 1502 691 +f 687 1479 1522 1521 +s 166 +f 1517 1522 1516 1515 +f 1517 1518 1519 688 +f 1511 1512 1513 689 +f 1519 1520 1521 688 +f 1518 1517 1515 1514 +f 1515 1516 1511 689 +f 1513 1514 1515 689 +f 1521 1522 1517 688 +s 447 +f 1376 1377 737 +f 1392 1394 1396 1398 1400 1376 1335 1402 1404 1406 1408 1410 1299 1362 1412 1389 +f 1375 1376 737 +f 741 1394 1392 742 +f 739 1398 1396 740 +f 1377 1376 1400 738 +f 734 1404 1402 735 +f 732 1408 1406 733 +f 1300 1299 1410 731 +f 727 1389 1412 728 +f 728 1412 1362 1361 +f 731 1410 1408 732 +f 733 1406 1404 734 +f 735 1402 1335 1334 +f 738 1400 1398 739 +f 740 1396 1394 741 +f 742 1392 1389 727 +f 1362 1357 729 +f 1361 1362 729 +s 509 +f 996 997 810 +f 901 902 796 +f 1031 996 994 1048 +f 942 952 960 958 +f 902 903 796 +f 995 996 810 +f 903 902 1048 797 +f 943 942 996 995 +f 993 994 807 +f 900 901 796 +f 1074 1031 1048 902 +f 958 994 996 942 +f 994 989 807 +f 994 993 797 1048 +s 425 +f 712 1450 1448 713 +f 714 1446 1444 715 +f 716 1442 1327 1326 +f 720 1431 1429 721 +f 722 1427 1425 723 +f 724 1423 1419 725 +f 1409 731 732 1407 +f 1405 733 734 1403 +f 1401 735 1334 1333 +f 1399 1434 1433 1384 1378 +f 1409 1407 1448 1450 +f 1407 1405 1446 1448 +f 1300 1301 1302 730 +f 1379 1378 1384 1383 +f 1422 724 725 1421 +f 1426 722 723 1424 +f 1430 720 721 1428 +f 1441 716 1326 1325 +f 1445 714 715 1443 +f 1449 712 713 1447 +f 1309 1308 712 1449 +f 1447 713 714 1445 +f 1443 715 716 1441 +f 1432 719 720 1430 +f 1428 721 722 1426 +f 1424 723 724 1422 +f 1302 1301 1307 1306 +f 1432 1433 719 +f 1403 1401 1442 1444 +f 1301 1409 1450 1307 +f 1405 1403 1444 1446 +f 1433 1434 719 +f 1403 734 735 1401 +f 1407 732 733 1405 +f 1301 1300 731 1409 +f 723 1425 1423 724 +f 721 1429 1427 722 +f 719 1434 1431 720 +f 715 1444 1442 716 +f 713 1448 1446 714 +f 1308 1307 1450 712 +s 426 +f 1390 727 728 1411 +f 1411 728 1361 1360 +f 1399 738 739 1397 +f 1395 740 741 1393 +f 1391 742 727 1390 +f 1385 1386 1387 718 +f 1393 1391 1425 1427 +f 1390 1411 1419 1423 +f 1399 1397 1431 1434 +f 1391 1390 1423 1425 +f 1384 1385 718 +f 1419 1420 725 +f 1381 1382 1383 718 +f 1395 1393 1427 1429 +f 1420 1419 1411 1360 1354 +f 1397 1395 1429 1431 +f 1383 1384 718 +f 1420 1421 725 +f 1393 741 742 1391 +f 1397 739 740 1395 +f 1378 1377 738 1399 +f 1360 1359 1355 1354 +s 620 +f 1274 1275 1276 749 +f 1280 1281 1282 750 +f 1347 1348 1343 748 +f 1276 1275 1281 1280 +f 1339 1338 1348 1347 +f 1343 1348 1275 1274 +f 1282 1281 1338 1337 +f 1337 1338 1339 747 +f 1281 1275 1348 1338 +s 437 +f 1352 1351 711 1309 +f 1340 1339 1347 1346 +f 1339 1340 1341 747 +f 1306 1307 1308 711 +f 1401 1333 1327 1442 +f 1325 1326 717 +f 1359 1360 1361 729 +f 1325 717 1387 1386 +f 1341 1340 1358 1357 +f 1332 1333 1334 736 +f 1308 1309 711 +f 1340 1346 1356 1358 +f 1326 1327 1328 717 +f 1357 1358 1359 729 +f 1333 1332 1328 1327 +s 615 +f 1373 1374 1369 745 +f 1368 1374 1255 1249 +f 1367 1368 1363 746 +f 1369 1374 1368 1367 +f 1250 1249 1255 1254 +f 1256 1255 1374 1373 +f 1363 1368 1249 1248 +f 1248 1249 1250 743 +f 1254 1255 1256 744 +s 463 +f 1318 1317 1315 1314 +f 1317 1318 1319 752 +f 1184 1185 1186 751 +f 1318 1314 1329 1331 +f 1315 1316 1311 753 +f 1328 1329 1323 717 +f 1311 1316 1179 1178 +f 1186 1185 1322 1321 +f 1332 1331 1329 1328 +f 1319 1318 1331 1330 +f 1317 1322 1316 1315 +f 1180 1179 1185 1184 +f 1321 1322 1317 752 +f 1178 1179 1180 754 +f 1179 1316 1322 1185 +f 1313 1314 1315 753 +f 1330 1331 1332 736 +f 1314 1313 1323 1329 +s 440 +f 1372 1371 1381 1388 +f 1312 1311 1178 1177 +f 1158 1157 763 1168 +f 1323 1324 717 +f 1177 1176 1168 1242 1258 +f 1257 1372 1388 1324 +f 1157 1158 1159 774 +f 1256 1257 744 +f 1311 1312 1313 753 +f 1387 1388 1381 718 +f 1163 1176 1175 +f 1313 1312 1324 1323 +f 1163 1162 1176 +f 1371 1372 1373 745 +f 1258 1252 744 +f 1161 1162 1163 773 +f 1158 1168 1176 1162 +f 1177 1258 1257 1324 1312 +f 1257 1258 744 +f 1162 1161 1159 1158 +f 1168 763 1243 1242 +f 1257 1256 1373 1372 +f 717 1324 1388 1387 +s 442 +f 1370 1369 1367 1366 +f 1369 1370 1371 745 +f 1377 1378 1379 737 +f 1371 1370 1382 1381 +f 1370 1366 1380 1382 +f 1379 1380 1375 737 +f 1380 1379 1383 1382 +s 450 +f 1286 1285 1220 1219 +f 1200 1199 759 1210 +f 1363 1364 1365 746 +f 1334 1335 736 +f 1297 1298 730 +f 1203 1204 1205 769 +f 1189 1188 1187 1246 1234 +f 1247 1246 1187 1320 1336 +f 1299 1298 1283 1342 1362 +f 1200 1210 1218 1204 +f 1335 1336 736 +f 1205 1218 1217 +f 1287 1286 1298 1297 +f 1365 1364 1376 1375 +f 1235 1234 1246 1245 +f 1205 1204 1218 +f 1298 1299 730 +f 1219 1218 1210 1268 1284 +f 1247 1336 1335 1376 1364 +f 1219 1284 1283 1298 1286 +f 1199 1200 1201 770 +f 1285 1286 1287 757 +f 1299 1300 730 +f 1336 1330 736 +f 1204 1203 1201 1200 +f 1210 759 1269 1268 +f 1364 1363 1248 1247 +s 438 +f 1294 1293 1304 1310 +f 1343 1344 1345 748 +f 1293 1294 1295 756 +f 1345 1344 1350 1349 +f 1351 1350 1310 711 +f 1344 1273 1310 1350 +f 1310 1304 711 +f 1349 1350 1351 726 +f 1344 1343 1274 1273 +s 467 +f 1303 1302 1306 1305 +f 1292 1291 1289 1288 +f 1289 1290 1285 757 +f 1221 1290 1296 1227 +f 1226 1227 1228 755 +f 1291 1292 1293 756 +f 1304 1305 1306 711 +f 1285 1290 1221 1220 +f 1228 1227 1296 1295 +f 1293 1292 1305 1304 +f 1291 1296 1290 1289 +f 1222 1221 1227 1226 +f 1295 1296 1291 756 +f 1287 1288 1289 757 +f 1292 1288 1303 1305 +f 1220 1221 1222 758 +f 1302 1303 1297 730 +f 1288 1287 1297 1303 +s 477 +f 1251 1250 1254 1253 +f 1240 1239 1237 1236 +f 1156 1155 1149 1154 +f 1239 1240 1241 764 +f 1155 1156 1157 774 +f 1190 1238 1244 1167 +f 1153 1154 1149 771 +f 1243 1244 1239 764 +f 1157 1156 1167 763 +f 1239 1244 1238 1237 +f 1241 1240 1253 1252 +f 763 1167 1244 1243 +f 1233 1238 1190 766 +f 1252 1253 1254 744 +f 1237 1238 1233 765 +f 1240 1236 1251 1253 +f 1167 1156 1154 1190 +f 1235 1236 1237 765 +f 1250 1251 1245 743 +f 1154 1153 766 1190 +f 1236 1235 1245 1251 +s 460 +f 1272 1273 749 +f 1228 1229 755 +f 1231 1230 1229 1272 1260 +f 1271 1272 749 +f 1261 1260 1272 1271 +f 1273 1274 749 +f 1229 1230 755 +f 1273 1272 1229 1294 1310 +f 1230 1224 755 +f 1229 1228 1295 1294 +s 471 +f 1262 1261 1271 1277 +f 1196 1195 762 1232 +f 1278 1279 1280 750 +f 1263 1264 1259 761 +f 1209 1198 1196 1232 +f 1232 1264 1270 1209 +f 1261 1262 1263 761 +f 1276 1277 1271 749 +f 1259 1264 1232 762 +f 759 1209 1270 1269 +f 1267 1266 1279 1278 +f 1265 1270 1264 1263 +f 1199 1198 1209 759 +f 1265 1266 1267 760 +f 1197 1198 1199 770 +f 1266 1262 1277 1279 +f 1195 1196 1191 767 +f 1269 1270 1265 760 +f 1198 1197 1191 1196 +f 1266 1265 1263 1262 +f 1277 1276 1280 1279 +s 604 +f 1202 1208 1216 1192 +f 1201 1202 1197 770 +f 1197 1202 1192 1191 +f 1211 1216 1208 1207 +f 1193 1192 1216 1215 +f 1203 1208 1202 1201 +f 1215 1216 1211 768 +f 1191 1192 1193 767 +f 1207 1208 1203 769 +s 595 +f 1159 1160 1155 774 +f 1160 1166 1174 1150 +f 1155 1160 1150 1149 +f 1169 1174 1166 1165 +f 1151 1150 1174 1173 +f 1161 1166 1160 1159 +f 1165 1166 1161 773 +f 1149 1150 1151 771 +f 1173 1174 1169 772 +s 466 +f 1230 1214 1213 +f 1259 1260 1261 761 +f 1214 1230 1231 1194 +f 1195 1194 1231 762 +f 1213 1214 1215 768 +f 1213 1224 1230 +f 1260 1259 762 1231 +s 608 +f 1206 1205 1217 1223 +f 1224 1225 1226 755 +f 1205 1206 1207 769 +f 1222 1223 1217 758 +f 1213 1212 1225 1224 +f 1211 1212 1213 768 +f 1212 1206 1223 1225 +f 1212 1211 1207 1206 +f 1223 1222 1226 1225 +s 462 +f 1188 1172 1171 +f 1172 1188 1189 1152 +f 1233 1234 1235 765 +f 1153 1152 1189 766 +f 1171 1172 1173 772 +f 1171 1182 1188 +f 1234 1233 766 1189 +s 599 +f 1164 1163 1175 1181 +f 1180 1181 1175 754 +f 1163 1164 1165 773 +f 1182 1183 1184 751 +f 1171 1170 1183 1182 +f 1170 1164 1181 1183 +f 1169 1170 1171 772 +f 1170 1169 1165 1164 +f 1181 1180 1184 1183 +s 565 +f 1097 1098 1099 787 +f 859 860 861 790 +f 860 859 1099 1098 +s 497 +f 1014 792 869 868 +f 980 979 975 974 +f 1015 1016 789 +f 1017 1016 1014 868 862 +f 861 862 790 +f 1016 1017 789 +f 981 980 1016 1015 +f 867 868 869 793 +f 974 1014 1016 980 +f 862 863 790 +f 1017 1018 789 +f 974 973 792 1014 +f 868 867 863 862 +s 514 +f 1085 1086 1081 801 +f 835 836 831 827 +f 873 1080 1086 849 +f 838 837 831 836 +f 1075 1080 873 799 +f 800 849 1086 1085 +f 836 835 799 873 +f 837 838 839 830 +f 849 838 836 873 +f 1081 1082 1083 801 +f 839 838 849 800 +s 495 +f 1092 1091 1095 1094 +f 1095 1096 787 +f 1028 1022 788 +f 1029 1028 1027 1096 1090 +f 1027 1028 788 +f 1093 1094 1095 787 +f 1083 1082 1094 1093 +f 1091 1090 1096 1095 +f 1096 1097 787 +f 1089 1090 1091 794 +f 1082 1078 1092 1094 +f 1026 1027 788 +f 1091 1092 1087 794 +f 1082 1081 1079 1078 +s 520 +f 880 881 882 826 +f 892 881 879 916 +f 881 880 874 879 +f 1051 1050 1060 1059 +f 806 892 1050 1049 +f 878 879 874 823 +f 892 916 1060 1050 +f 882 881 892 806 +s 492 +f 1045 1046 786 +f 903 904 905 796 +f 1047 1046 1045 910 904 +f 1044 1045 786 +f 993 992 1047 797 +f 905 904 910 909 +f 1046 1040 786 +f 909 910 785 +f 1010 1046 1047 992 +f 910 911 785 +f 904 903 797 1047 +s 490 +f 1032 798 1073 1072 +f 998 997 798 1032 +f 1069 1070 1071 795 +f 1049 1050 1051 803 +f 1035 1034 1032 1072 1066 +f 998 1032 1034 1004 +f 1035 1036 783 +f 1065 1066 784 +f 1071 1072 1073 795 +f 1053 1052 1070 1069 +f 1071 1070 1068 1067 +f 1005 1004 1034 1033 +f 1067 1068 1061 784 +f 1051 1052 1053 803 +f 1033 1034 783 +f 1052 1058 1068 1070 +f 1034 1035 783 +f 1066 1067 784 +f 1004 1003 999 998 +f 1052 1051 1059 1058 +f 1072 1071 1067 1066 +s 558 +f 851 856 848 847 +f 837 842 832 831 +f 847 848 843 829 +f 831 832 833 827 +f 841 842 837 830 +f 842 848 856 832 +f 855 856 851 828 +f 843 848 842 841 +f 833 832 856 855 +s 498 +f 1084 1083 1093 1100 +f 845 844 858 857 +f 843 844 845 829 +f 850 1084 1100 858 +f 857 858 790 +f 1099 1100 1093 787 +f 840 839 800 850 +f 859 858 1100 1099 +f 844 843 841 840 +f 1083 1084 1085 801 +f 840 850 858 844 +f 839 840 841 830 +f 858 859 790 +f 850 800 1085 1084 +s 493 +f 914 907 785 +f 897 914 915 877 +f 913 914 785 +f 1061 1062 1063 784 +f 878 877 915 805 +f 1063 1062 914 913 +f 1057 1056 1062 1061 +f 897 896 907 914 +f 1055 1056 1057 804 +f 896 897 898 824 +f 1056 915 914 1062 +f 1056 1055 805 915 +s 568 +f 894 899 891 890 +f 880 885 875 874 +f 884 885 880 826 +f 885 891 899 875 +f 890 891 886 825 +f 874 875 876 823 +f 898 899 894 824 +f 886 891 885 884 +f 876 875 899 898 +s 508 +f 1054 1053 1069 1074 +f 888 887 901 900 +f 1053 1054 1049 803 +f 902 901 893 1054 1074 +f 886 887 888 825 +f 887 886 884 883 +f 997 996 1031 798 +f 798 1031 1074 1073 +f 883 882 806 893 +f 1074 1069 795 +f 882 883 884 826 +f 883 893 901 887 +f 1073 1074 795 +f 893 806 1049 1054 +s 528 +f 1006 1005 1033 1039 +f 1008 1009 808 +f 918 928 936 934 +f 934 1006 1008 918 +f 1007 1008 808 +f 919 918 1008 1007 +f 1042 1041 1039 1038 +f 1009 1008 1041 1040 +f 1040 1041 1042 786 +f 1005 1006 809 +f 1008 1006 1039 1041 +f 1006 1001 809 +f 1038 1039 1033 783 +s 496 +f 986 985 1022 1028 +f 986 1028 1029 968 +f 969 968 1029 791 +f 985 986 987 812 +f 987 988 983 812 +f 1090 1089 791 1029 +s 536 +f 928 927 977 982 +f 984 985 812 +f 927 928 820 +f 928 982 984 936 +f 981 982 813 +f 1020 1021 1015 789 +f 985 984 1023 1022 +f 1024 1023 1021 1020 +f 937 936 984 983 +f 983 984 812 +f 928 923 820 +f 984 982 1021 1023 +f 982 977 813 +f 1022 1023 1024 788 +f 982 981 1015 1021 +s 512 +f 1003 1004 1005 809 +f 929 930 931 816 +f 931 932 933 816 +f 1001 1002 1003 809 +f 933 932 1002 1001 +f 1003 1002 1000 999 +f 935 940 930 929 +f 997 998 999 810 +f 932 944 1000 1002 +f 999 1000 995 810 +f 932 931 945 944 +s 511 +f 956 955 921 920 +f 956 920 1012 990 +f 957 956 990 989 +f 991 990 1012 1011 +f 989 990 991 807 +f 991 992 993 807 +f 992 991 1011 1010 +s 499 +f 926 925 963 962 +f 975 976 971 814 +f 926 962 976 978 +f 973 974 975 814 +f 927 926 978 977 +f 979 978 976 975 +f 977 978 979 813 +f 925 926 927 820 +f 923 924 925 820 +f 979 980 981 813 +s 501 +f 968 967 987 986 +f 967 968 969 811 +f 965 966 967 811 +f 967 966 988 987 +f 951 950 966 965 +f 950 938 988 966 +f 950 949 939 938 +s 544 +f 940 948 946 930 +f 931 930 946 945 +f 949 950 951 822 +f 947 948 949 822 +s 529 +f 924 923 917 922 +f 964 924 922 954 +f 925 924 964 963 +f 955 954 922 921 +f 921 922 917 815 +f 919 920 921 815 +f 920 919 1007 1012 +s 572 +f 896 895 908 907 +f 894 895 896 824 +f 895 889 906 908 +f 895 894 890 889 +f 889 888 900 906 +f 905 906 900 796 +f 888 889 890 825 +f 907 908 909 785 +f 906 905 909 908 +s 562 +f 865 866 867 793 +f 845 846 847 829 +f 863 864 857 790 +f 846 845 857 864 +f 867 866 864 863 +f 852 851 847 846 +f 851 852 853 828 +f 852 846 864 866 +f 853 852 866 865 +s 515 +f 833 834 835 827 +f 834 833 855 854 +s 504 +f 854 853 865 871 +f 853 854 855 828 +s 503 +f 869 870 793 +f 871 865 793 +f 870 871 793 +s 523 +f 876 877 878 823 +f 877 876 898 897 +s 576 +f 1064 1063 913 912 +f 911 912 913 785 +f 1063 1064 1065 784 +s 542 +f 936 937 819 +f 918 919 815 +f 923 928 918 917 +f 935 936 819 +f 917 918 815 +s 531 +f 936 935 929 934 +f 933 934 816 +f 934 929 816 +f 934 933 1001 1006 +s 537 +f 938 937 983 988 +f 939 940 935 819 +f 949 948 940 939 +f 937 938 939 819 +s 546 +f 959 960 821 +f 941 942 817 +f 947 952 942 941 +f 960 961 821 +f 942 943 817 +s 533 +f 948 947 941 946 +f 945 946 941 817 +f 943 944 945 817 +f 944 943 995 1000 +s 543 +f 953 954 955 818 +f 959 964 954 953 +f 955 956 957 818 +s 527 +f 958 957 989 994 +f 957 958 818 +f 958 953 818 +f 960 959 953 958 +s 541 +f 962 961 971 976 +f 961 962 963 821 +f 963 964 959 821 +s 494 +f 1010 1009 1040 1046 +f 1011 1012 1007 808 +f 1009 1010 1011 808 +s 583 +f 1025 1024 1020 1019 +f 1024 1025 1026 788 +f 1018 1019 1020 789 +s 586 +f 1043 1042 1038 1037 +f 1036 1037 1038 783 +f 1042 1043 1044 786 +s 491 +f 1058 1057 1061 1068 +f 1057 1058 1059 804 +f 1059 1060 1055 804 +s 506 +f 1077 1078 1079 802 +f 1081 1086 1080 1079 +f 1079 1080 1075 802 +f 1078 1077 1087 1092 +s 481 +f 1152 1151 1173 1172 +f 1151 1152 1153 771 +s 465 +f 1177 1178 754 +f 1176 1177 754 +f 1175 1176 754 +s 458 +f 1187 1186 1321 1320 +f 1245 1246 743 +f 1186 1187 751 +f 1246 1247 743 +f 1187 1188 751 +f 1188 1182 751 +f 1247 1248 743 +s 475 +f 1193 1194 1195 767 +f 1194 1193 1215 1214 +s 469 +f 1217 1218 758 +f 1219 1220 758 +f 1218 1219 758 +s 459 +f 1242 1241 1252 1258 +f 1241 1242 1243 764 +s 461 +f 1267 1268 1269 760 +f 1268 1267 1278 1284 +s 449 +f 1342 1341 1357 1362 +f 1283 1284 750 +f 1284 1278 750 +f 1341 1342 1337 747 +f 1282 1283 750 +f 1283 1282 1337 1342 +s 453 +f 1319 1320 1321 752 +f 1320 1319 1330 1336 +s 445 +f 1346 1345 1349 1356 +f 1345 1346 1347 748 +s 436 +f 1354 1355 726 +f 1353 1354 726 +f 1359 1358 1356 1355 +f 1355 1356 1349 726 +f 1351 1352 1353 726 +s 455 +f 1365 1366 1367 746 +f 1366 1365 1375 1380 +s 521 +f 879 878 805 916 +f 1055 1060 916 805 +g intakes +usemtl silver +s 713 +f 3118 3117 3124 3125 +f 3112 3111 3119 3120 +f 3108 3107 3115 3116 +f 3104 3103 3111 3112 +f 3100 3099 3107 3108 +f 3096 3095 3103 3104 +f 3092 3091 3099 3100 +f 3088 3087 3095 3096 +f 3084 3083 3091 3092 +f 3080 3079 3087 3088 +f 3076 3075 3083 3084 +f 3114 3121 3071 3073 +f 3122 3065 3070 +f 3126 3066 3064 +f 3076 3077 3060 3061 +f 3080 3081 3056 3057 +f 3051 3052 3060 3059 +f 3055 3048 3056 3063 +f 3042 3043 3035 3027 +f 3036 3037 3029 3028 +f 3008 3009 3028 3029 +f 2962 2961 3021 3020 +f 2965 2964 3018 3017 +f 3013 3012 3004 3005 +f 3009 3008 3000 3001 +f 3003 3002 2994 2995 +f 2997 2996 2988 2989 +f 2993 2992 2984 2985 +f 2987 2986 2978 2979 +f 2981 2980 2972 2973 +f 2977 2976 2968 2969 +f 2970 2969 2962 2963 +f 2954 2955 2869 2868 +f 2943 2942 2949 2950 +f 2937 2936 2944 2945 +f 2933 2932 2940 2941 +f 2929 2928 2936 2937 +f 2925 2924 2932 2933 +f 2921 2920 2928 2929 +f 2917 2916 2924 2925 +f 2913 2912 2920 2921 +f 2909 2908 2916 2917 +f 2905 2904 2912 2913 +f 2901 2900 2908 2909 +f 2947 2946 2898 2897 +f 2950 2949 2895 2894 +f 2907 2900 2889 2882 +f 2904 2905 2884 2885 +f 2880 2881 2889 2888 +f 2875 2876 2884 2883 +f 2873 2872 2867 2866 +f 2864 2865 2857 2856 +f 2859 2860 2852 2851 +f 2834 2835 2854 2855 +f 2839 2832 2857 2850 +f 2789 2788 2846 2845 +f 2787 2794 2793 2841 2849 +f 2832 2839 2831 2824 +f 2836 2835 2827 2828 +f 2824 2831 2823 2816 +f 2828 2827 2819 2820 +f 2816 2823 2815 2808 +f 2820 2819 2811 2812 +f 2808 2815 2807 2800 +f 2812 2811 2803 2804 +f 2800 2807 2799 2792 +f 2804 2803 2795 2796 +f 2798 2797 2790 2791 +f 2795 2794 2787 2788 +f 2801 2800 2792 2793 +f 2805 2804 2796 2797 +f 2809 2808 2800 2801 +f 2813 2812 2804 2805 +f 2817 2816 2808 2809 +f 2821 2820 2812 2813 +f 2825 2824 2816 2817 +f 2829 2828 2820 2821 +f 2833 2832 2824 2825 +f 2837 2836 2828 2829 +f 2799 2798 2791 2848 2840 +f 2791 2790 2844 2843 +f 2788 2787 2847 2846 +f 2837 2838 2851 2852 +f 2833 2834 2855 2856 +f 2861 2862 2854 2853 +f 2865 2858 2850 2857 +f 2872 2873 2879 2887 +f 2876 2877 2885 2884 +f 2905 2906 2883 2884 +f 2901 2902 2887 2888 +f 2952 2892 2890 +f 2948 2891 2896 +f 2940 2947 2897 2899 +f 2902 2901 2909 2910 +f 2906 2905 2913 2914 +f 2910 2909 2917 2918 +f 2914 2913 2921 2922 +f 2918 2917 2925 2926 +f 2922 2921 2929 2930 +f 2926 2925 2933 2934 +f 2930 2929 2937 2938 +f 2934 2933 2941 2942 +f 2938 2937 2945 2946 +f 2944 2943 2950 2951 +f 2969 2968 2961 2962 +f 2978 2977 2969 2970 +f 2986 2985 2977 2978 +f 2994 2993 2985 2986 +f 3002 3001 2993 2994 +f 3010 3009 3001 3002 +f 2961 2968 2967 3015 3023 +f 2963 2962 3020 3019 +f 3012 3013 3024 3025 +f 3009 3010 3027 3028 +f 3035 3036 3028 3027 +f 3046 3047 3053 3061 +f 3050 3051 3059 3058 +f 3079 3080 3057 3058 +f 3075 3076 3061 3062 +f 3126 3125 3067 3066 +f 3123 3122 3070 3069 +f 3122 3115 3114 3073 3065 +f 3077 3076 3084 3085 +f 3081 3080 3088 3089 +f 3085 3084 3092 3093 +f 3089 3088 3096 3097 +f 3093 3092 3100 3101 +f 3097 3096 3104 3105 +f 3101 3100 3108 3109 +f 3105 3104 3112 3113 +f 3109 3108 3116 3117 +f 3113 3112 3120 3121 +f 3119 3118 3125 3126 +f 3117 3116 3123 3124 +f 3111 3110 3118 3119 +f 3107 3106 3114 3115 +f 3103 3102 3110 3111 +f 3099 3098 3106 3107 +f 3095 3094 3102 3103 +f 3091 3090 3098 3099 +f 3087 3086 3094 3095 +f 3083 3082 3090 3091 +f 3079 3078 3086 3087 +f 3075 3074 3082 3083 +f 3121 3120 3072 3071 +f 3124 3123 3069 3068 +f 3074 3075 3062 3063 +f 3077 3078 3059 3060 +f 3053 3054 3062 3061 +f 3048 3049 3057 3056 +f 3044 3045 3060 3052 +f 3032 3033 3025 3024 +f 3011 3012 3025 3026 +f 2961 3023 3021 +f 2965 3017 3022 +f 3012 3011 3003 3004 +f 3004 3003 2995 2996 +f 2996 2995 2987 2988 +f 2988 2987 2979 2980 +f 2980 2979 2971 2972 +f 2971 2970 2963 2964 +f 2958 2959 3045 3044 +f 2942 2941 2948 2949 +f 2936 2935 2943 2944 +f 2932 2939 2947 2940 +f 2928 2927 2935 2936 +f 2924 2931 2939 2932 +f 2920 2919 2927 2928 +f 2916 2923 2931 2924 +f 2912 2911 2919 2920 +f 2908 2915 2923 2916 +f 2904 2903 2911 2912 +f 2900 2907 2915 2908 +f 2946 2945 2952 2890 2898 +f 2951 2950 2894 2893 +f 2900 2901 2888 2889 +f 2903 2904 2885 2886 +f 2879 2880 2888 2887 +f 2874 2875 2883 2882 +f 2868 2869 2861 2853 +f 2863 2864 2856 2855 +f 2858 2859 2851 2850 +f 2835 2836 2853 2854 +f 2838 2839 2850 2851 +f 2790 2789 2845 2844 +f 2793 2792 2842 2841 +f 2839 2838 2830 2831 +f 2835 2834 2826 2827 +f 2831 2830 2822 2823 +f 2827 2826 2818 2819 +f 2823 2822 2814 2815 +f 2819 2818 2810 2811 +f 2815 2814 2806 2807 +f 2811 2810 2802 2803 +f 2807 2806 2798 2799 +f 2803 2802 2794 2795 +f 2797 2796 2789 2790 +f 2796 2795 2788 2789 +f 2802 2801 2793 2794 +f 2806 2805 2797 2798 +f 2810 2809 2801 2802 +f 2814 2813 2805 2806 +f 2818 2817 2809 2810 +f 2822 2821 2813 2814 +f 2826 2825 2817 2818 +f 2830 2829 2821 2822 +f 2834 2833 2825 2826 +f 2838 2837 2829 2830 +f 2792 2799 2840 2842 +f 2791 2843 2848 +f 2787 2849 2847 +f 2836 2837 2852 2853 +f 2832 2833 2856 2857 +f 2862 2863 2855 2854 +f 2866 2867 2852 2860 +f 2881 2874 2882 2889 +f 2877 2878 2886 2885 +f 2906 2907 2882 2883 +f 2902 2903 2886 2887 +f 2952 2951 2893 2892 +f 2949 2948 2896 2895 +f 2948 2941 2940 2899 2891 +f 2903 2902 2910 2911 +f 2907 2906 2914 2915 +f 2911 2910 2918 2919 +f 2915 2914 2922 2923 +f 2919 2918 2926 2927 +f 2923 2922 2930 2931 +f 2927 2926 2934 2935 +f 2931 2930 2938 2939 +f 2935 2934 2942 2943 +f 2939 2938 2946 2947 +f 2945 2944 2951 2952 +f 2958 3044 2869 2955 +f 2972 2971 2964 2965 +f 2979 2978 2970 2971 +f 2985 2984 2976 2977 +f 2989 2988 2980 2981 +f 2995 2994 2986 2987 +f 3001 3000 2992 2993 +f 3005 3004 2996 2997 +f 3011 3010 3002 3003 +f 2973 2972 2965 3022 3014 +f 2964 2963 3019 3018 +f 3010 3011 3026 3027 +f 3033 3034 3026 3025 +f 3040 3041 3026 3034 +f 3041 3040 3047 3046 +f 3049 3050 3058 3057 +f 3054 3055 3063 3062 +f 3078 3079 3058 3059 +f 3081 3074 3063 3056 +f 3125 3124 3068 3067 +f 3120 3119 3126 3064 3072 +f 3074 3081 3089 3082 +f 3078 3077 3085 3086 +f 3082 3089 3097 3090 +f 3086 3085 3093 3094 +f 3090 3097 3105 3098 +f 3094 3093 3101 3102 +f 3098 3105 3113 3106 +f 3102 3101 3109 3110 +f 3106 3113 3121 3114 +f 3110 3109 3117 3118 +f 3116 3115 3122 3123 +s off +f 3023 3015 3016 3014 3022 +f 2890 2892 2893 2894 2895 +f 2890 2895 2896 2891 +f 2849 2841 2842 2840 2848 +f 3044 3043 2870 2869 +f 2848 2846 2847 2849 +f 2848 2843 2844 2845 2846 +f 2891 2899 2897 2898 2890 +f 3022 3020 3021 3023 +f 3022 3017 3018 3019 3020 +s 715 +f 2863 2862 2861 2860 2859 2858 2865 2864 +f 2873 2870 2878 2879 +f 2881 2880 2879 2878 2877 2876 2875 2874 +f 2870 2873 2866 2869 +f 2869 2866 2860 2861 +s 716 +f 2960 2959 2958 2957 +f 2871 2872 2887 2886 +f 2867 2868 2853 2852 +f 2953 2954 2868 2871 +f 3041 3042 3027 3026 +f 3042 3041 3046 3045 +f 2957 2958 2955 2956 +f 2872 2871 2868 2867 +f 2954 2953 2956 2955 +f 2959 2960 3042 3045 +f 3045 3046 3061 3060 +s 717 +f 2960 2957 3043 3042 +f 2870 2871 2886 2878 +f 2956 2953 2871 2870 +f 3043 2957 2956 2870 +s 722 +f 3038 3039 3031 3030 +f 3013 3006 3031 3024 +f 3007 3006 2998 2999 +f 2991 2990 2982 2983 +f 2975 2974 2966 2967 +f 2974 2981 2973 2966 +f 2982 2989 2981 2974 +f 2990 2997 2989 2982 +f 2998 3005 2997 2990 +f 3006 3013 3005 2998 +f 3007 3008 3029 3030 +f 3039 3032 3024 3031 +f 3037 3038 3030 3029 +f 2966 2973 3014 3016 +f 3008 3007 2999 3000 +f 3000 2999 2991 2992 +f 2992 2991 2983 2984 +f 2984 2983 2975 2976 +f 2976 2975 2967 2968 +f 2983 2982 2974 2975 +f 2999 2998 2990 2991 +f 2967 2966 3016 3015 +f 3006 3007 3030 3031 +s 724 +f 3047 3044 3052 3053 +f 3043 3040 3034 3035 +f 3055 3054 3053 3052 3051 3050 3049 3048 +f 3040 3043 3044 3047 +f 3037 3036 3035 3034 3033 3032 3039 3038 +s 727 +f 3064 3066 3067 3068 3069 +f 3064 3069 3070 3065 +f 3065 3073 3071 3072 3064 +g exhaust +usemtl bronze +s 731 +f 3175 3174 3195 3194 +f 3172 3179 3190 3197 +f 3128 3129 3185 3186 +f 3133 3134 3127 3189 3181 +f 3179 3172 3164 3171 +f 3175 3176 3168 3167 +f 3171 3164 3156 3163 +f 3167 3168 3160 3159 +f 3163 3156 3148 3155 +f 3159 3160 3152 3151 +f 3155 3148 3140 3147 +f 3151 3152 3144 3143 +f 3147 3140 3132 3139 +f 3143 3144 3136 3135 +f 3137 3138 3131 3130 +f 3134 3135 3128 3127 +f 3140 3141 3133 3132 +f 3144 3145 3137 3136 +f 3148 3149 3141 3140 +f 3152 3153 3145 3144 +f 3156 3157 3149 3148 +f 3160 3161 3153 3152 +f 3164 3165 3157 3156 +f 3168 3169 3161 3160 +f 3172 3173 3165 3164 +f 3176 3177 3169 3168 +f 3131 3138 3139 3180 3188 +f 3130 3131 3183 3184 +f 3127 3128 3186 3187 +f 3178 3177 3192 3191 +f 3174 3173 3196 3195 +f 3176 3175 3194 3193 +f 3179 3178 3191 3190 +f 3129 3130 3184 3185 +f 3132 3133 3181 3182 +f 3178 3179 3171 3170 +f 3174 3175 3167 3166 +f 3170 3171 3163 3162 +f 3166 3167 3159 3158 +f 3162 3163 3155 3154 +f 3158 3159 3151 3150 +f 3154 3155 3147 3146 +f 3150 3151 3143 3142 +f 3146 3147 3139 3138 +f 3142 3143 3135 3134 +f 3136 3137 3130 3129 +f 3135 3136 3129 3128 +f 3141 3142 3134 3133 +f 3145 3146 3138 3137 +f 3149 3150 3142 3141 +f 3153 3154 3146 3145 +f 3157 3158 3150 3149 +f 3161 3162 3154 3153 +f 3165 3166 3158 3157 +f 3169 3170 3162 3161 +f 3173 3174 3166 3165 +f 3177 3178 3170 3169 +f 3139 3132 3182 3180 +f 3131 3188 3183 +f 3127 3187 3189 +f 3177 3176 3193 3192 +f 3173 3172 3197 3196 +s off +f 3372 3373 3371 +f 3367 3368 3371 3373 +f 3362 3359 3351 3353 +f 3352 3353 3351 +f 3350 3348 3347 3346 3345 +f 3350 3345 3344 3349 +f 3217 3225 3224 3226 3218 +f 3209 3210 3216 +f 3207 3208 3216 3210 +f 3364 3365 3363 3204 3202 3203 +f 3199 3200 3194 3196 +f 3195 3196 3194 +f 3188 3180 3182 3181 3189 +f 3197 3190 3196 +f 3198 3199 3196 3190 +f 3280 3287 3286 3364 3203 3281 +f 3208 3205 3214 3216 +f 3215 3216 3214 +f 3358 3351 3357 +f 3359 3360 3357 3351 +f 3366 3367 3373 3375 +f 3374 3375 3373 +f 3370 3371 3377 +f 3368 3369 3377 3371 +f 3361 3362 3353 3355 +f 3354 3355 3353 +f 3211 3212 3210 +f 3206 3207 3210 3212 +f 3363 3285 3284 3283 3282 3204 +f 3200 3201 3192 3194 +f 3193 3194 3192 +f 3189 3184 3183 3188 +f 3189 3187 3186 3185 3184 +f 3191 3192 3190 +f 3201 3198 3190 3192 +f 3205 3206 3212 3214 +f 3213 3214 3212 +f 3218 3220 3219 3217 +f 3218 3223 3222 3221 3220 +f 3349 3341 3343 3342 3350 +f 3356 3357 3355 +f 3360 3361 3355 3357 +f 3369 3366 3375 3377 +f 3376 3377 3375 +s 733 +f 3365 3364 3369 3368 +f 3369 3364 3286 3366 +f 3200 3206 3282 3281 +f 3199 3202 3207 3206 3200 +f 3284 3287 3280 3283 +f 3203 3202 3199 3198 +f 3203 3198 3201 3281 +f 3361 3367 3286 3285 +f 3360 3365 3368 3367 3361 +f 3363 3359 3362 3285 +f 3363 3365 3360 3359 +f 3362 3361 3285 +f 3367 3366 3286 +f 3283 3280 3281 3282 +f 3208 3204 3282 3205 +f 3202 3204 3208 3207 +f 3201 3200 3281 +f 3206 3205 3282 +f 3287 3284 3285 3286 +s 734 +f 3269 3270 3277 3276 +f 3263 3264 3272 3271 +f 3259 3260 3268 3267 +f 3255 3256 3264 3263 +f 3251 3252 3260 3259 +f 3247 3248 3256 3255 +f 3243 3244 3252 3251 +f 3239 3240 3248 3247 +f 3235 3236 3244 3243 +f 3231 3232 3240 3239 +f 3227 3228 3236 3235 +f 3273 3274 3224 3225 +f 3276 3277 3221 3222 +f 3227 3234 3209 3216 +f 3232 3231 3212 3211 +f 3233 3232 3211 3210 +f 3229 3228 3215 3214 +f 3279 3217 3219 +f 3275 3223 3218 +f 3274 3267 3226 3224 +f 3228 3229 3237 3236 +f 3232 3233 3241 3240 +f 3236 3237 3245 3244 +f 3240 3241 3249 3248 +f 3244 3245 3253 3252 +f 3248 3249 3257 3256 +f 3252 3253 3261 3260 +f 3256 3257 3265 3264 +f 3260 3261 3269 3268 +f 3264 3265 3273 3272 +f 3270 3271 3278 3277 +f 3268 3269 3276 3275 +f 3262 3263 3271 3270 +f 3266 3259 3267 3274 +f 3254 3255 3263 3262 +f 3258 3251 3259 3266 +f 3246 3247 3255 3254 +f 3250 3243 3251 3258 +f 3238 3239 3247 3246 +f 3242 3235 3243 3250 +f 3230 3231 3239 3238 +f 3234 3227 3235 3242 +f 3279 3272 3273 3225 3217 +f 3277 3278 3220 3221 +f 3228 3227 3216 3215 +f 3231 3230 3213 3212 +f 3234 3233 3210 3209 +f 3230 3229 3214 3213 +f 3278 3279 3219 3220 +f 3275 3276 3222 3223 +f 3267 3268 3275 3218 3226 +f 3229 3230 3238 3237 +f 3233 3234 3242 3241 +f 3237 3238 3246 3245 +f 3241 3242 3250 3249 +f 3245 3246 3254 3253 +f 3249 3250 3258 3257 +f 3253 3254 3262 3261 +f 3257 3258 3266 3265 +f 3261 3262 3270 3269 +f 3265 3266 3274 3273 +f 3271 3272 3279 3278 +s 739 +f 3334 3333 3358 3357 +f 3338 3337 3354 3353 +f 3288 3289 3347 3348 +f 3291 3292 3344 3345 +f 3292 3299 3300 3341 3349 +f 3337 3338 3330 3329 +f 3333 3334 3326 3325 +f 3329 3330 3322 3321 +f 3325 3326 3318 3317 +f 3321 3322 3314 3313 +f 3317 3318 3310 3309 +f 3313 3314 3306 3305 +f 3309 3310 3302 3301 +f 3305 3306 3298 3297 +f 3301 3302 3294 3293 +f 3295 3296 3289 3288 +f 3298 3299 3292 3291 +f 3304 3305 3297 3296 +f 3308 3301 3293 3300 +f 3312 3313 3305 3304 +f 3316 3309 3301 3308 +f 3320 3321 3313 3312 +f 3324 3317 3309 3316 +f 3328 3329 3321 3320 +f 3332 3325 3317 3324 +f 3336 3337 3329 3328 +f 3340 3333 3325 3332 +f 3294 3295 3288 3350 3342 +f 3289 3290 3346 3347 +f 3340 3339 3352 3351 +f 3337 3336 3355 3354 +f 3335 3334 3357 3356 +f 3339 3338 3353 3352 +f 3288 3348 3350 +f 3292 3349 3344 +f 3300 3293 3343 3341 +f 3338 3339 3331 3330 +f 3334 3335 3327 3326 +f 3330 3331 3323 3322 +f 3326 3327 3319 3318 +f 3322 3323 3315 3314 +f 3318 3319 3311 3310 +f 3314 3315 3307 3306 +f 3310 3311 3303 3302 +f 3306 3307 3299 3298 +f 3302 3303 3295 3294 +f 3296 3297 3290 3289 +f 3297 3298 3291 3290 +f 3303 3304 3296 3295 +f 3307 3308 3300 3299 +f 3311 3312 3304 3303 +f 3315 3316 3308 3307 +f 3319 3320 3312 3311 +f 3323 3324 3316 3315 +f 3327 3328 3320 3319 +f 3331 3332 3324 3323 +f 3335 3336 3328 3327 +f 3339 3340 3332 3331 +f 3293 3294 3342 3343 +f 3290 3291 3345 3346 +f 3333 3340 3351 3358 +f 3336 3335 3356 3355 +s 741 +f 3430 3431 3438 3437 +f 3424 3425 3433 3432 +f 3420 3421 3429 3428 +f 3416 3417 3425 3424 +f 3412 3413 3421 3420 +f 3408 3409 3417 3416 +f 3404 3405 3413 3412 +f 3400 3401 3409 3408 +f 3396 3397 3405 3404 +f 3392 3393 3401 3400 +f 3388 3389 3397 3396 +f 3434 3435 3385 3386 +f 3437 3438 3382 3383 +f 3389 3388 3377 3376 +f 3392 3391 3374 3373 +f 3395 3394 3371 3370 +f 3391 3390 3375 3374 +f 3440 3378 3380 +f 3436 3384 3379 +f 3435 3428 3387 3385 +f 3389 3390 3398 3397 +f 3393 3394 3402 3401 +f 3397 3398 3406 3405 +f 3401 3402 3410 3409 +f 3405 3406 3414 3413 +f 3409 3410 3418 3417 +f 3413 3414 3422 3421 +f 3417 3418 3426 3425 +f 3421 3422 3430 3429 +f 3425 3426 3434 3433 +f 3431 3432 3439 3438 +f 3429 3430 3437 3436 +f 3423 3424 3432 3431 +f 3427 3420 3428 3435 +f 3415 3416 3424 3423 +f 3419 3412 3420 3427 +f 3407 3408 3416 3415 +f 3411 3404 3412 3419 +f 3399 3400 3408 3407 +f 3403 3396 3404 3411 +f 3391 3392 3400 3399 +f 3395 3388 3396 3403 +f 3440 3433 3434 3386 3378 +f 3438 3439 3381 3382 +f 3388 3395 3370 3377 +f 3393 3392 3373 3372 +f 3394 3393 3372 3371 +f 3390 3389 3376 3375 +f 3439 3440 3380 3381 +f 3436 3437 3383 3384 +f 3428 3429 3436 3379 3387 +f 3390 3391 3399 3398 +f 3394 3395 3403 3402 +f 3398 3399 3407 3406 +f 3402 3403 3411 3410 +f 3406 3407 3415 3414 +f 3410 3411 3419 3418 +f 3414 3415 3423 3422 +f 3418 3419 3427 3426 +f 3422 3423 3431 3430 +f 3426 3427 3435 3434 +f 3432 3433 3440 3439 +s 743 +f 3378 3386 3385 3387 3379 +f 3379 3381 3380 3378 +f 3379 3384 3383 3382 3381 +g shaft +usemtl silver +s 747 +f 3652 3651 3632 3633 +f 3576 3575 3556 3557 +f 3500 3499 3480 3481 +f 3481 3480 3461 3462 +f 3557 3556 3537 3538 +f 3633 3632 3613 3614 +f 3443 3442 3651 3652 +f 3595 3594 3575 3576 +f 3519 3518 3499 3500 +f 3462 3461 3442 3443 +f 3538 3537 3518 3519 +f 3614 3613 3594 3595 +s 748 +f 3446 3445 3654 3655 +f 3656 3655 3636 3637 +f 3638 3637 3618 3619 +f 3634 3633 3614 3615 +f 3616 3615 3596 3597 +f 3598 3597 3578 3579 +f 3580 3579 3560 3561 +f 3562 3561 3542 3543 +f 3558 3557 3538 3539 +f 3540 3539 3520 3521 +f 3522 3521 3502 3503 +f 3504 3503 3484 3485 +f 3486 3485 3466 3467 +f 3482 3481 3462 3463 +f 3465 3464 3445 3446 +f 3464 3463 3444 3445 +f 3483 3482 3463 3464 +f 3501 3500 3481 3482 +f 3505 3504 3485 3486 +f 3523 3522 3503 3504 +f 3541 3540 3521 3522 +f 3559 3558 3539 3540 +f 3577 3576 3557 3558 +f 3581 3580 3561 3562 +f 3599 3598 3579 3580 +f 3617 3616 3597 3598 +f 3635 3634 3615 3616 +f 3653 3652 3633 3634 +f 3657 3656 3637 3638 +f 3447 3446 3655 3656 +f 3445 3444 3653 3654 +f 3655 3654 3635 3636 +f 3637 3636 3617 3618 +f 3619 3618 3599 3600 +f 3615 3614 3595 3596 +f 3597 3596 3577 3578 +f 3579 3578 3559 3560 +f 3561 3560 3541 3542 +f 3543 3542 3523 3524 +f 3539 3538 3519 3520 +f 3521 3520 3501 3502 +f 3503 3502 3483 3484 +f 3485 3484 3465 3466 +f 3466 3465 3446 3447 +f 3463 3462 3443 3444 +f 3467 3466 3447 3448 +f 3484 3483 3464 3465 +f 3502 3501 3482 3483 +f 3520 3519 3500 3501 +f 3524 3523 3504 3505 +f 3542 3541 3522 3523 +f 3560 3559 3540 3541 +f 3578 3577 3558 3559 +f 3596 3595 3576 3577 +f 3600 3599 3580 3581 +f 3618 3617 3598 3599 +f 3636 3635 3616 3617 +f 3654 3653 3634 3635 +f 3444 3443 3652 3653 +f 3448 3447 3656 3657 +s 749 +f 3658 3657 3638 3639 +f 3582 3581 3562 3563 +f 3506 3505 3486 3487 +f 3487 3486 3467 3468 +f 3563 3562 3543 3544 +f 3639 3638 3619 3620 +f 3449 3448 3657 3658 +f 3601 3600 3581 3582 +f 3525 3524 3505 3506 +f 3468 3467 3448 3449 +f 3544 3543 3524 3525 +f 3620 3619 3600 3601 +s 750 +f 3640 3639 3620 3621 +f 3564 3563 3544 3545 +f 3488 3487 3468 3469 +f 3507 3506 3487 3488 +f 3583 3582 3563 3564 +f 3659 3658 3639 3640 +f 3621 3620 3601 3602 +f 3545 3544 3525 3526 +f 3469 3468 3449 3450 +f 3526 3525 3506 3507 +f 3602 3601 3582 3583 +f 3450 3449 3658 3659 +s 751 +f 3660 3659 3640 3641 +f 3584 3583 3564 3565 +f 3508 3507 3488 3489 +f 3489 3488 3469 3470 +f 3565 3564 3545 3546 +f 3641 3640 3621 3622 +f 3451 3450 3659 3660 +f 3603 3602 3583 3584 +f 3527 3526 3507 3508 +f 3470 3469 3450 3451 +f 3546 3545 3526 3527 +f 3622 3621 3602 3603 +s 752 +f 3454 3453 3662 3663 +f 3664 3663 3644 3645 +f 3646 3645 3626 3627 +f 3642 3641 3622 3623 +f 3624 3623 3604 3605 +f 3606 3605 3586 3587 +f 3588 3587 3568 3569 +f 3570 3569 3550 3551 +f 3566 3565 3546 3547 +f 3548 3547 3528 3529 +f 3530 3529 3510 3511 +f 3512 3511 3492 3493 +f 3494 3493 3474 3475 +f 3490 3489 3470 3471 +f 3473 3472 3453 3454 +f 3472 3471 3452 3453 +f 3491 3490 3471 3472 +f 3509 3508 3489 3490 +f 3513 3512 3493 3494 +f 3531 3530 3511 3512 +f 3549 3548 3529 3530 +f 3567 3566 3547 3548 +f 3585 3584 3565 3566 +f 3589 3588 3569 3570 +f 3607 3606 3587 3588 +f 3625 3624 3605 3606 +f 3643 3642 3623 3624 +f 3661 3660 3641 3642 +f 3665 3664 3645 3646 +f 3455 3454 3663 3664 +f 3453 3452 3661 3662 +f 3663 3662 3643 3644 +f 3645 3644 3625 3626 +f 3627 3626 3607 3608 +f 3623 3622 3603 3604 +f 3605 3604 3585 3586 +f 3587 3586 3567 3568 +f 3569 3568 3549 3550 +f 3551 3550 3531 3532 +f 3547 3546 3527 3528 +f 3529 3528 3509 3510 +f 3511 3510 3491 3492 +f 3493 3492 3473 3474 +f 3474 3473 3454 3455 +f 3471 3470 3451 3452 +f 3475 3474 3455 3456 +f 3492 3491 3472 3473 +f 3510 3509 3490 3491 +f 3528 3527 3508 3509 +f 3532 3531 3512 3513 +f 3550 3549 3530 3531 +f 3568 3567 3548 3549 +f 3586 3585 3566 3567 +f 3604 3603 3584 3585 +f 3608 3607 3588 3589 +f 3626 3625 3606 3607 +f 3644 3643 3624 3625 +f 3662 3661 3642 3643 +f 3452 3451 3660 3661 +f 3456 3455 3664 3665 +s 746 +f 3460 3459 3668 3669 +f 3669 3650 3441 +f 3666 3665 3646 3647 +f 3648 3647 3628 3629 +f 3630 3629 3610 3611 +f 3612 3611 3592 3593 +f 3593 3574 3441 +f 3590 3589 3570 3571 +f 3572 3571 3552 3553 +f 3554 3553 3534 3535 +f 3536 3535 3516 3517 +f 3517 3498 3441 +f 3514 3513 3494 3495 +f 3496 3495 3476 3477 +f 3478 3477 3458 3459 +f 3477 3476 3457 3458 +f 3495 3494 3475 3476 +f 3498 3479 3441 +f 3517 3516 3497 3498 +f 3535 3534 3515 3516 +f 3553 3552 3533 3534 +f 3571 3570 3551 3552 +f 3574 3555 3441 +f 3593 3592 3573 3574 +f 3611 3610 3591 3592 +f 3629 3628 3609 3610 +f 3647 3646 3627 3628 +f 3650 3631 3441 +f 3669 3668 3649 3650 +f 3459 3458 3667 3668 +f 3460 3669 3441 +f 3457 3456 3665 3666 +f 3667 3666 3647 3648 +f 3649 3648 3629 3630 +f 3631 3630 3611 3612 +f 3612 3593 3441 +f 3609 3608 3589 3590 +f 3591 3590 3571 3572 +f 3573 3572 3553 3554 +f 3555 3554 3535 3536 +f 3536 3517 3441 +f 3533 3532 3513 3514 +f 3515 3514 3495 3496 +f 3497 3496 3477 3478 +f 3479 3478 3459 3460 +f 3476 3475 3456 3457 +f 3479 3460 3441 +f 3498 3497 3478 3479 +f 3516 3515 3496 3497 +f 3534 3533 3514 3515 +f 3552 3551 3532 3533 +f 3555 3536 3441 +f 3574 3573 3554 3555 +f 3592 3591 3572 3573 +f 3610 3609 3590 3591 +f 3628 3627 3608 3609 +f 3631 3612 3441 +f 3650 3649 3630 3631 +f 3668 3667 3648 3649 +f 3458 3457 3666 3667 +s off +f 3461 3480 3499 3518 3537 3556 3575 3594 3613 3632 3651 3442 +g hub +f 4048 4058 4068 4078 4088 4098 4108 4118 4128 4038 +f 3864 3874 3884 3894 3904 3914 3924 3934 3944 3854 +f 3680 3690 3700 3710 3720 3730 3740 3750 3760 3670 +s 754 +f 3741 3740 3730 3731 +f 3701 3700 3690 3691 +f 3691 3690 3680 3681 +f 3731 3730 3720 3721 +f 3671 3670 3760 3761 +f 3751 3750 3740 3741 +f 3711 3710 3700 3701 +f 3681 3680 3670 3671 +f 3721 3720 3710 3711 +f 3761 3760 3750 3751 +s 755 +f 3672 3671 3761 3762 +f 3732 3731 3721 3722 +f 3692 3691 3681 3682 +f 3702 3701 3691 3692 +f 3742 3741 3731 3732 +f 3762 3761 3751 3752 +f 3722 3721 3711 3712 +f 3682 3681 3671 3672 +f 3712 3711 3701 3702 +f 3752 3751 3741 3742 +s 756 +f 3743 3742 3732 3733 +f 3703 3702 3692 3693 +f 3693 3692 3682 3683 +f 3733 3732 3722 3723 +f 3673 3672 3762 3763 +f 3753 3752 3742 3743 +f 3713 3712 3702 3703 +f 3683 3682 3672 3673 +f 3723 3722 3712 3713 +f 3763 3762 3752 3753 +s 757 +f 3674 3673 3763 3764 +f 3734 3733 3723 3724 +f 3694 3693 3683 3684 +f 3704 3703 3693 3694 +f 3744 3743 3733 3734 +f 3764 3763 3753 3754 +f 3724 3723 3713 3714 +f 3684 3683 3673 3674 +f 3714 3713 3703 3704 +f 3754 3753 3743 3744 +s 758 +f 3745 3744 3734 3735 +f 3705 3704 3694 3695 +f 3695 3694 3684 3685 +f 3735 3734 3724 3725 +f 3675 3674 3764 3765 +f 3755 3754 3744 3745 +f 3715 3714 3704 3705 +f 3685 3684 3674 3675 +f 3725 3724 3714 3715 +f 3765 3764 3754 3755 +s 759 +f 3676 3675 3765 3766 +f 3736 3735 3725 3726 +f 3696 3695 3685 3686 +f 3706 3705 3695 3696 +f 3746 3745 3735 3736 +f 3766 3765 3755 3756 +f 3726 3725 3715 3716 +f 3686 3685 3675 3676 +f 3716 3715 3705 3706 +f 3756 3755 3745 3746 +s 760 +f 3747 3746 3736 3737 +f 3707 3706 3696 3697 +f 3697 3696 3686 3687 +f 3737 3736 3726 3727 +f 3677 3676 3766 3767 +f 3757 3756 3746 3747 +f 3717 3716 3706 3707 +f 3687 3686 3676 3677 +f 3727 3726 3716 3717 +f 3767 3766 3756 3757 +s 761 +f 3838 3699 3689 3839 +f 3775 3749 3739 3776 +f 3838 3837 3799 3798 3709 3699 +f 3678 3677 3767 3768 +f 3758 3757 3747 3748 +f 3738 3737 3727 3728 +f 3718 3717 3707 3708 +f 3698 3697 3687 3688 +f 3688 3687 3677 3678 +f 3708 3707 3697 3698 +f 3728 3727 3717 3718 +f 3748 3747 3737 3738 +f 3768 3767 3757 3758 +f 3759 3819 3818 3769 +f 3719 3797 3796 3729 +f 3769 3818 3817 3679 +f 3679 3840 3839 3689 +f 3729 3777 3776 3739 +f 3775 3774 3820 3819 3759 3749 +f 3679 3678 3768 3769 +f 3759 3758 3748 3749 +f 3739 3738 3728 3729 +f 3719 3718 3708 3709 +f 3699 3698 3688 3689 +f 3689 3688 3678 3679 +f 3709 3708 3698 3699 +f 3729 3728 3718 3719 +f 3749 3748 3738 3739 +f 3769 3768 3758 3759 +f 3798 3797 3719 3709 +f 3795 3778 3777 3729 3796 +f 3816 3841 3840 3679 3817 +s 766 +f 3935 3934 3924 3925 +f 3895 3894 3884 3885 +f 3865 3864 3854 3855 +f 3905 3904 3894 3895 +f 3945 3944 3934 3935 +f 3925 3924 3914 3915 +f 3885 3884 3874 3875 +f 3875 3874 3864 3865 +f 3915 3914 3904 3905 +f 3855 3854 3944 3945 +s 767 +f 3946 3945 3935 3936 +f 3906 3905 3895 3896 +f 3866 3865 3855 3856 +f 3896 3895 3885 3886 +f 3936 3935 3925 3926 +f 3856 3855 3945 3946 +f 3916 3915 3905 3906 +f 3876 3875 3865 3866 +f 3886 3885 3875 3876 +f 3926 3925 3915 3916 +s 768 +f 3937 3936 3926 3927 +f 3897 3896 3886 3887 +f 3867 3866 3856 3857 +f 3907 3906 3896 3897 +f 3947 3946 3936 3937 +f 3927 3926 3916 3917 +f 3887 3886 3876 3877 +f 3877 3876 3866 3867 +f 3917 3916 3906 3907 +f 3857 3856 3946 3947 +s 769 +f 3948 3947 3937 3938 +f 3908 3907 3897 3898 +f 3868 3867 3857 3858 +f 3898 3897 3887 3888 +f 3938 3937 3927 3928 +f 3858 3857 3947 3948 +f 3918 3917 3907 3908 +f 3878 3877 3867 3868 +f 3888 3887 3877 3878 +f 3928 3927 3917 3918 +s 770 +f 3939 3938 3928 3929 +f 3899 3898 3888 3889 +f 3869 3868 3858 3859 +f 3909 3908 3898 3899 +f 3949 3948 3938 3939 +f 3929 3928 3918 3919 +f 3889 3888 3878 3879 +f 3879 3878 3868 3869 +f 3919 3918 3908 3909 +f 3859 3858 3948 3949 +s 771 +f 3950 3949 3939 3940 +f 3910 3909 3899 3900 +f 3870 3869 3859 3860 +f 3900 3899 3889 3890 +f 3940 3939 3929 3930 +f 3860 3859 3949 3950 +f 3920 3919 3909 3910 +f 3880 3879 3869 3870 +f 3890 3889 3879 3880 +f 3930 3929 3919 3920 +s 772 +f 3941 3940 3930 3931 +f 3901 3900 3890 3891 +f 3871 3870 3860 3861 +f 3911 3910 3900 3901 +f 3951 3950 3940 3941 +f 3931 3930 3920 3921 +f 3891 3890 3880 3881 +f 3881 3880 3870 3871 +f 3921 3920 3910 3911 +f 3861 3860 3950 3951 +s 773 +f 3863 4024 4023 3873 +f 3913 3961 3960 3923 +f 3959 3958 4004 4003 3943 3933 +f 3982 3981 3903 3893 +f 3952 3951 3941 3942 +f 3932 3931 3921 3922 +f 3912 3911 3901 3902 +f 3892 3891 3881 3882 +f 3872 3871 3861 3862 +f 3882 3881 3871 3872 +f 3902 3901 3891 3892 +f 3922 3921 3911 3912 +f 3942 3941 3931 3932 +f 3862 3861 3951 3952 +f 3979 3962 3961 3913 3980 +f 4000 4025 4024 3863 4001 +f 4022 3883 3873 4023 +f 3959 3933 3923 3960 +f 4022 4021 3983 3982 3893 3883 +f 3953 3952 3942 3943 +f 3933 3932 3922 3923 +f 3913 3912 3902 3903 +f 3893 3892 3882 3883 +f 3873 3872 3862 3863 +f 3883 3882 3872 3873 +f 3903 3902 3892 3893 +f 3923 3922 3912 3913 +f 3943 3942 3932 3933 +f 3863 3862 3952 3953 +f 3943 4003 4002 3953 +f 3903 3981 3980 3913 +f 3953 4002 4001 3863 +s 778 +f 4109 4108 4098 4099 +f 4069 4068 4058 4059 +f 4059 4058 4048 4049 +f 4099 4098 4088 4089 +f 4039 4038 4128 4129 +f 4119 4118 4108 4109 +f 4079 4078 4068 4069 +f 4049 4048 4038 4039 +f 4089 4088 4078 4079 +f 4129 4128 4118 4119 +s 779 +f 4040 4039 4129 4130 +f 4100 4099 4089 4090 +f 4060 4059 4049 4050 +f 4070 4069 4059 4060 +f 4110 4109 4099 4100 +f 4130 4129 4119 4120 +f 4090 4089 4079 4080 +f 4050 4049 4039 4040 +f 4080 4079 4069 4070 +f 4120 4119 4109 4110 +s 780 +f 4111 4110 4100 4101 +f 4071 4070 4060 4061 +f 4061 4060 4050 4051 +f 4101 4100 4090 4091 +f 4041 4040 4130 4131 +f 4121 4120 4110 4111 +f 4081 4080 4070 4071 +f 4051 4050 4040 4041 +f 4091 4090 4080 4081 +f 4131 4130 4120 4121 +s 781 +f 4042 4041 4131 4132 +f 4102 4101 4091 4092 +f 4062 4061 4051 4052 +f 4072 4071 4061 4062 +f 4112 4111 4101 4102 +f 4132 4131 4121 4122 +f 4092 4091 4081 4082 +f 4052 4051 4041 4042 +f 4082 4081 4071 4072 +f 4122 4121 4111 4112 +s 782 +f 4113 4112 4102 4103 +f 4073 4072 4062 4063 +f 4063 4062 4052 4053 +f 4103 4102 4092 4093 +f 4043 4042 4132 4133 +f 4123 4122 4112 4113 +f 4083 4082 4072 4073 +f 4053 4052 4042 4043 +f 4093 4092 4082 4083 +f 4133 4132 4122 4123 +s 783 +f 4044 4043 4133 4134 +f 4104 4103 4093 4094 +f 4064 4063 4053 4054 +f 4074 4073 4063 4064 +f 4114 4113 4103 4104 +f 4134 4133 4123 4124 +f 4094 4093 4083 4084 +f 4054 4053 4043 4044 +f 4084 4083 4073 4074 +f 4124 4123 4113 4114 +s 784 +f 4115 4114 4104 4105 +f 4075 4074 4064 4065 +f 4065 4064 4054 4055 +f 4105 4104 4094 4095 +f 4045 4044 4134 4135 +f 4125 4124 4114 4115 +f 4085 4084 4074 4075 +f 4055 4054 4044 4045 +f 4095 4094 4084 4085 +f 4135 4134 4124 4125 +s 785 +f 4206 4067 4057 4207 +f 4143 4117 4107 4144 +f 4206 4205 4167 4166 4077 4067 +f 4137 4136 4126 4127 +f 4117 4116 4106 4107 +f 4097 4096 4086 4087 +f 4077 4076 4066 4067 +f 4057 4056 4046 4047 +f 4067 4066 4056 4057 +f 4087 4086 4076 4077 +f 4107 4106 4096 4097 +f 4127 4126 4116 4117 +f 4047 4046 4136 4137 +f 4127 4187 4186 4137 +f 4087 4165 4164 4097 +f 4137 4186 4185 4047 +f 4047 4208 4207 4057 +f 4097 4145 4144 4107 +f 4143 4142 4188 4187 4127 4117 +f 4166 4165 4087 4077 +f 4136 4135 4125 4126 +f 4116 4115 4105 4106 +f 4096 4095 4085 4086 +f 4076 4075 4065 4066 +f 4056 4055 4045 4046 +f 4066 4065 4055 4056 +f 4086 4085 4075 4076 +f 4106 4105 4095 4096 +f 4126 4125 4115 4116 +f 4046 4045 4135 4136 +f 4163 4146 4145 4097 4164 +f 4184 4209 4208 4047 4185 +g prop +usemtl dkteal +f 4215 4214 4216 +f 4211 4210 4212 +f 4201 4205 4209 4202 +f 4195 4196 4194 +f 4190 4189 4191 +f 4180 4184 4188 4181 +f 4174 4175 4173 +f 4169 4168 4170 +f 4159 4163 4167 4160 +f 4152 4151 4153 +f 4148 4147 4149 +f 4138 4142 4146 4139 +f 4205 4206 4207 +f 4167 4163 4164 +f 4164 4165 4167 +f 4179 4157 4155 4177 +f 4219 4176 4174 4217 +f 4175 4151 4173 +f 4196 4214 4194 +f 4215 4170 4213 +f 4152 4191 4150 +f 4192 4210 4190 +f 4171 4147 4169 +f 4211 4168 4161 4204 +f 4183 4203 4202 4180 +f 4138 4181 4188 4142 +f 4180 4202 4209 4184 +f 4204 4161 4160 4201 +f 4169 4147 4140 4162 +f 4213 4168 4211 +f 4150 4189 4148 +f 4173 4149 4171 +f 4194 4212 4192 +f 4154 4193 4152 +f 4217 4172 4215 +f 4177 4155 4153 4175 +f 4158 4199 4197 4156 +f 4142 4143 4144 +f 4188 4184 4185 +f 4185 4186 4188 +f 4148 4141 4140 4147 +f 4152 4150 4151 +f 4162 4159 4160 4161 +f 4171 4170 4172 +f 4177 4175 4174 4176 +f 4190 4183 4182 4189 +f 4194 4192 4193 +f 4204 4201 4202 4203 +f 4213 4212 4214 +f 4219 4217 4216 4218 +f 4215 4213 4214 +f 4211 4204 4203 4210 +f 4198 4196 4195 4197 +f 4192 4191 4193 +f 4183 4180 4181 4182 +f 4173 4171 4172 +f 4169 4162 4161 4168 +f 4156 4154 4153 4155 +f 4150 4149 4151 +f 4141 4138 4139 4140 +f 4186 4187 4188 +f 4144 4145 4142 +f 4145 4146 4142 +f 4221 4178 4176 4219 +f 4198 4218 4216 4196 +f 4217 4174 4172 +f 4154 4195 4193 +f 4194 4214 4212 +f 4173 4151 4149 +f 4150 4191 4189 +f 4213 4170 4168 +f 4190 4210 4203 4183 +f 4141 4182 4181 4138 +f 4159 4139 4146 4163 +f 4201 4160 4167 4205 +f 4162 4140 4139 4159 +f 4148 4189 4182 4141 +f 4171 4149 4147 +f 4192 4212 4210 +f 4152 4193 4191 +f 4215 4172 4170 +f 4196 4216 4214 +f 4175 4153 4151 +f 4156 4197 4195 4154 +f 4200 4220 4218 4198 +f 4165 4166 4167 +f 4207 4208 4205 +f 4208 4209 4205 +f 4150 4148 4149 +f 4154 4152 4153 +f 4158 4156 4155 4157 +f 4171 4169 4170 +f 4173 4172 4174 +f 4179 4177 4176 4178 +f 4192 4190 4191 +f 4194 4193 4195 +f 4200 4198 4197 4199 +f 4213 4211 4212 +f 4217 4215 4216 +f 4221 4219 4218 4220 +s 761 +f 3847 3846 3848 +f 3843 3842 3844 +f 3833 3837 3841 3834 +f 3827 3828 3826 +f 3822 3821 3823 +f 3812 3816 3820 3813 +f 3806 3807 3805 +f 3801 3800 3802 +f 3791 3795 3799 3792 +f 3784 3783 3785 +f 3780 3779 3781 +f 3770 3774 3778 3771 +f 3837 3838 3839 +f 3799 3795 3796 +f 3796 3797 3799 +f 3811 3789 3787 3809 +f 3851 3808 3806 3849 +f 3807 3783 3805 +f 3828 3846 3826 +f 3847 3802 3845 +f 3784 3823 3782 +f 3824 3842 3822 +f 3803 3779 3801 +f 3843 3800 3793 3836 +f 3815 3835 3834 3812 +f 3770 3813 3820 3774 +f 3812 3834 3841 3816 +f 3836 3793 3792 3833 +f 3801 3779 3772 3794 +f 3845 3800 3843 +f 3782 3821 3780 +f 3805 3781 3803 +f 3826 3844 3824 +f 3786 3825 3784 +f 3849 3804 3847 +f 3809 3787 3785 3807 +f 3790 3831 3829 3788 +f 3774 3775 3776 +f 3820 3816 3817 +f 3817 3818 3820 +f 3780 3773 3772 3779 +f 3784 3782 3783 +f 3794 3791 3792 3793 +f 3803 3802 3804 +f 3809 3807 3806 3808 +f 3822 3815 3814 3821 +f 3826 3824 3825 +f 3836 3833 3834 3835 +f 3845 3844 3846 +f 3851 3849 3848 3850 +f 3847 3845 3846 +f 3843 3836 3835 3842 +f 3830 3828 3827 3829 +f 3824 3823 3825 +f 3815 3812 3813 3814 +f 3805 3803 3804 +f 3801 3794 3793 3800 +f 3788 3786 3785 3787 +f 3782 3781 3783 +f 3773 3770 3771 3772 +f 3818 3819 3820 +f 3776 3777 3774 +f 3777 3778 3774 +f 3853 3810 3808 3851 +f 3830 3850 3848 3828 +f 3849 3806 3804 +f 3786 3827 3825 +f 3826 3846 3844 +f 3805 3783 3781 +f 3782 3823 3821 +f 3845 3802 3800 +f 3822 3842 3835 3815 +f 3773 3814 3813 3770 +f 3791 3771 3778 3795 +f 3833 3792 3799 3837 +f 3794 3772 3771 3791 +f 3780 3821 3814 3773 +f 3803 3781 3779 +f 3824 3844 3842 +f 3784 3825 3823 +f 3847 3804 3802 +f 3828 3848 3846 +f 3807 3785 3783 +f 3788 3829 3827 3786 +f 3832 3852 3850 3830 +f 3797 3798 3799 +f 3839 3840 3837 +f 3840 3841 3837 +f 3782 3780 3781 +f 3786 3784 3785 +f 3790 3788 3787 3789 +f 3803 3801 3802 +f 3805 3804 3806 +f 3811 3809 3808 3810 +f 3824 3822 3823 +f 3826 3825 3827 +f 3832 3830 3829 3831 +f 3845 3843 3844 +f 3849 3847 3848 +f 3853 3851 3850 3852 +s off +f 3789 3811 3810 3853 3852 3832 3831 3790 +f 3973 3995 3994 4037 4036 4016 4015 3974 +f 4157 4179 4178 4221 4220 4200 4199 4158 +s 773 +f 4035 4033 4032 4034 +f 4031 4029 4030 +f 4020 4017 4018 4019 +f 4009 4010 4008 +f 4006 3999 3998 4005 +f 3993 3991 3990 3992 +f 3987 3986 3988 +f 3978 3975 3976 3977 +f 3966 3965 3967 +f 3964 3957 3956 3963 +f 4004 4000 4001 +f 4001 4002 4004 +f 3958 3959 3960 +f 3974 4015 4013 3972 +f 3993 3971 3969 3991 +f 4033 3990 3988 +f 3970 4011 4009 +f 4010 4030 4028 +f 3989 3967 3965 +f 3966 4007 4005 +f 4029 3986 3984 +f 3985 3963 3956 3978 +f 4020 3977 3976 4017 +f 3996 4018 4025 4000 +f 3954 3997 4004 3958 +f 3999 4019 4018 3996 +f 4027 3984 3977 4020 +f 3987 3965 3963 +f 4008 4028 4026 +f 3968 4009 4007 +f 4031 3988 3986 +f 4012 4032 4030 +f 3991 3969 3967 +f 4035 3992 3990 4033 +f 3995 3973 3971 3993 +f 3983 3979 3980 +f 3980 3981 3983 +f 4021 4022 4023 +f 3954 3958 3962 3955 +f 3966 3964 3965 +f 3970 3968 3969 +f 3975 3979 3983 3976 +f 3987 3985 3986 +f 3991 3989 3990 +f 3996 4000 4004 3997 +f 4008 4006 4007 +f 4012 4010 4011 +f 4017 4021 4025 4018 +f 4029 4027 4028 +f 4033 4031 4032 +f 4037 4035 4034 4036 +f 4031 4030 4032 +f 4027 4026 4028 +f 4016 4014 4013 4015 +f 4010 4009 4011 +f 4006 4005 4007 +f 3995 3993 3992 3994 +f 3989 3988 3990 +f 3985 3984 3986 +f 3974 3972 3971 3973 +f 3968 3967 3969 +f 3964 3963 3965 +f 4023 4024 4021 +f 4024 4025 4021 +f 3981 3982 3983 +f 4016 4036 4034 4014 +f 3972 4013 4011 3970 +f 3991 3967 3989 +f 4012 4030 4010 +f 4031 3986 4029 +f 3968 4007 3966 +f 4008 4026 4006 +f 3987 3963 3985 +f 3964 4005 3998 3957 +f 3978 3956 3955 3975 +f 4017 3976 3983 4021 +f 3975 3955 3962 3979 +f 3957 3998 3997 3954 +f 4006 4026 4019 3999 +f 4029 3984 4027 +f 3966 4005 3964 +f 3989 3965 3987 +f 4010 4028 4008 +f 3970 4009 3968 +f 4033 3988 4031 +f 4014 4034 4032 4012 +f 4037 3994 3992 4035 +f 3960 3961 3958 +f 3961 3962 3958 +f 4002 4003 4004 +f 3957 3954 3955 3956 +f 3968 3966 3967 +f 3972 3970 3969 3971 +f 3985 3978 3977 3984 +f 3988 3989 3987 +f 3999 3996 3997 3998 +f 4008 4007 4009 +f 4014 4012 4011 4013 +f 4027 4020 4019 4026 +f 4029 4028 4030 +g rudder +usemtl bluteal +s 790 +f 4263 4238 4240 +f 4263 4230 4232 +f 4262 4260 4242 +f 4262 4252 4254 +f 4262 4244 4246 +f 4255 4257 4256 4254 +f 4247 4249 4248 4246 +f 4240 4238 4239 4241 +f 4232 4230 4231 4233 +f 4222 4224 4225 4223 +f 4241 4239 4255 4253 +f 4233 4231 4243 4261 +f 4263 4224 4222 +f 4231 4229 4245 4243 +f 4239 4237 4257 4255 +f 4227 4223 4249 4247 +f 4230 4228 4229 4231 +f 4238 4236 4237 4239 +f 4245 4247 4246 4244 +f 4253 4255 4254 4252 +f 4261 4243 4242 4260 +f 4262 4250 4252 +f 4262 4258 4260 +f 4263 4228 4230 +f 4263 4236 4238 +f 4263 4240 4224 +f 4263 4232 4234 +f 4263 4222 4226 +f 4262 4254 4256 +f 4262 4246 4248 +f 4257 4259 4258 4256 +f 4249 4251 4250 4248 +f 4224 4240 4241 4225 +f 4234 4232 4233 4235 +f 4226 4222 4223 4227 +f 4225 4241 4253 4251 +f 4235 4233 4261 4259 +f 4262 4242 4244 +f 4229 4227 4247 4245 +f 4237 4235 4259 4257 +f 4223 4225 4251 4249 +f 4228 4226 4227 4229 +f 4236 4234 4235 4237 +f 4243 4245 4244 4242 +f 4251 4253 4252 4250 +f 4259 4261 4260 4258 +f 4262 4248 4250 +f 4262 4256 4258 +f 4263 4226 4228 +f 4263 4234 4236 +s 792 +f 4264 4295 4296 +f 4264 4291 4292 +f 4267 4304 4305 +f 4267 4300 4301 +f 4277 4275 4268 4305 +f 4285 4283 4302 4301 +f 4273 4272 4298 4269 +f 4296 4295 4280 4282 +f 4292 4291 4270 4274 +f 4271 4288 4289 4272 +f 4282 4280 4281 4283 +f 4274 4270 4273 4275 +f 4264 4265 4266 +f 4276 4274 4275 4277 +f 4284 4282 4283 4285 +f 4266 4265 4286 4288 +f 4293 4292 4274 4276 +f 4297 4296 4282 4284 +f 4272 4289 4299 4298 +f 4283 4281 4303 4302 +f 4267 4269 4298 +f 4267 4301 4302 +f 4267 4305 4268 +f 4264 4292 4293 +f 4264 4296 4297 +f 4264 4294 4295 +f 4264 4290 4291 +f 4267 4303 4304 +f 4267 4299 4300 +f 4279 4277 4305 4304 +f 4287 4285 4301 4300 +f 4275 4273 4269 4268 +f 4295 4294 4278 4280 +f 4291 4290 4271 4270 +f 4288 4286 4287 4289 +f 4280 4278 4279 4281 +f 4270 4271 4272 4273 +f 4267 4268 4269 +f 4278 4276 4277 4279 +f 4286 4284 4285 4287 +f 4290 4266 4288 4271 +f 4294 4293 4276 4278 +f 4265 4297 4284 4286 +f 4289 4287 4300 4299 +f 4281 4279 4304 4303 +f 4267 4298 4299 +f 4267 4302 4303 +f 4264 4266 4290 +f 4264 4293 4294 +f 4264 4297 4265 +g seat +usemtl black +s 795 +f 4428 4430 4431 4429 +f 4420 4422 4423 4421 +f 4412 4414 4415 4413 +f 4402 4406 4407 4403 +f 4396 4398 4399 4397 +f 4388 4390 4391 4389 +f 4380 4382 4383 4381 +f 4370 4374 4375 4371 +f 4360 4362 4363 4361 +f 4352 4354 4355 4353 +f 4344 4346 4347 4345 +f 4306 4321 4320 4319 4318 4307 +f 4364 4362 4412 4410 +f 4338 4341 4402 4405 +f 4348 4346 4428 4426 +f 4356 4354 4420 4418 +f 4321 4306 4386 4384 +f 4317 4318 4378 4376 +f 4313 4314 4373 4400 +f 4309 4310 4394 4392 +f 4391 4393 4415 4417 +f 4383 4385 4423 4425 +f 4375 4377 4431 4433 +f 4399 4401 4407 4409 +f 4308 4307 4318 +f 4397 4399 4409 4411 +f 4371 4375 4433 4404 +f 4381 4383 4425 4427 +f 4389 4391 4417 4419 +f 4307 4388 4386 +f 4310 4311 4396 4394 +f 4312 4313 4400 +f 4316 4317 4376 4374 +f 4321 4384 4382 +f 4358 4356 4418 4416 +f 4350 4348 4426 4424 +f 4342 4338 4405 4432 +f 4366 4364 4410 4408 +f 4313 4312 4311 4310 4314 +f 4341 4338 4339 4340 +f 4346 4348 4349 4347 +f 4354 4356 4357 4355 +f 4362 4364 4365 4363 +f 4366 4369 4367 +f 4374 4376 4377 4375 +f 4382 4384 4385 4383 +f 4390 4392 4393 4391 +f 4398 4400 4401 +f 4405 4402 4403 4404 +f 4410 4412 4413 4411 +f 4418 4420 4421 4419 +f 4426 4428 4429 4427 +f 4430 4432 4433 4431 +f 4422 4424 4425 4423 +f 4414 4416 4417 4415 +f 4406 4408 4409 4407 +f 4398 4401 4399 +f 4394 4396 4397 4395 +f 4386 4388 4389 4387 +f 4378 4380 4381 4379 +f 4373 4370 4371 4372 +f 4366 4368 4369 +f 4358 4360 4361 4359 +f 4350 4352 4353 4351 +f 4342 4344 4345 4343 +f 4309 4315 4314 4310 +f 4362 4360 4414 4412 +f 4341 4368 4406 4402 +f 4346 4344 4430 4428 +f 4354 4352 4422 4420 +f 4320 4321 4382 +f 4318 4319 4380 4378 +f 4314 4315 4370 4373 +f 4400 4398 4312 +f 4308 4309 4392 4390 +f 4386 4306 4307 +f 4385 4387 4421 4423 +f 4377 4379 4429 4431 +f 4401 4372 4403 4407 +f 4393 4395 4413 4415 +f 4395 4397 4411 4413 +f 4372 4371 4404 4403 +f 4379 4381 4427 4429 +f 4387 4389 4419 4421 +f 4307 4308 4390 4388 +f 4311 4312 4398 4396 +f 4315 4316 4374 4370 +f 4319 4320 4382 4380 +f 4360 4358 4416 4414 +f 4352 4350 4424 4422 +f 4344 4342 4432 4430 +f 4368 4366 4408 4406 +f 4308 4318 4317 4316 4315 4309 +f 4338 4342 4343 4339 +f 4348 4350 4351 4349 +f 4356 4358 4359 4357 +f 4364 4366 4367 4365 +f 4376 4378 4379 4377 +f 4384 4386 4387 4385 +f 4392 4394 4395 4393 +f 4400 4373 4372 4401 +f 4408 4410 4411 4409 +f 4416 4418 4419 4417 +f 4424 4426 4427 4425 +f 4432 4405 4404 4433 +s 798 +f 4332 4331 4330 4329 4333 +f 4334 4328 4327 4326 4325 4335 +f 4333 4334 4361 4363 +f 4329 4330 4369 4340 +f 4325 4326 4345 4347 +f 4323 4324 4351 +f 4322 4323 4351 4353 +f 4326 4327 4343 4345 +f 4369 4330 4331 +f 4332 4333 4363 4365 +f 4337 4355 4357 +f 4324 4323 4322 4337 4336 4325 +f 4333 4329 4328 4334 +f 4336 4337 4357 +f 4334 4335 4359 4361 +f 4331 4367 4369 +f 4328 4329 4340 4339 +f 4324 4325 4347 4349 +f 4337 4322 4353 4355 +f 4324 4349 4351 +f 4327 4328 4339 4343 +f 4331 4332 4365 4367 +f 4335 4336 4357 4359 +f 4335 4325 4336 +f 4368 4341 4340 4369 +g stand +usemtl dkdkgrey +s off +f 4547 4546 4549 4548 +f 4435 4434 4438 4444 4445 4440 +f 4491 4490 4493 4492 +f 4448 4479 4478 4450 +f 4527 4445 4456 4528 +f 4482 4445 4453 4483 +f 4435 4436 4437 4434 +f 4487 4486 4489 4488 +s 816 +f 4458 4459 4448 4441 +f 4464 4465 4439 4449 +f 4479 4480 4465 4464 +f 4494 4495 4480 4479 +f 4492 4493 4474 4477 +f 4477 4474 4459 4458 +f 4437 4436 4441 4448 4449 4439 +f 4459 4494 4479 4448 +s 817 +f 4547 4548 4541 4540 +f 4531 4530 4533 4532 +f 4487 4488 4473 4472 +f 4441 4436 4435 4440 4442 4443 +f 4461 4458 4441 4443 +f 4531 4457 4440 4530 +f 4540 4541 4534 4537 +f 4472 4473 4454 4457 +f 4457 4454 4442 4440 +f 4476 4477 4458 4461 +f 4491 4492 4477 4476 +f 4537 4534 4443 4442 +s 815 +f 4509 4506 4503 4502 +f 4484 4485 4466 4469 +f 4469 4466 4438 4447 +f 4434 4437 4439 4446 4447 4438 +f 4502 4503 4438 4466 +f 4499 4500 4485 4484 +f 4465 4462 4446 4439 +f 4480 4481 4462 4465 +f 4495 4496 4481 4480 +s 819 +f 4449 4448 4450 4451 +f 4453 4452 4451 4450 +f 4452 4453 4445 4444 +f 4447 4446 4451 4452 +s 840 +f 4549 4546 4543 4544 +f 4543 4542 4545 4544 +s 829 +f 4460 4497 4494 4459 +f 4495 4494 4497 4496 +s 830 +f 4499 4498 4501 4500 +f 4498 4455 4456 4501 +s 821 +f 4483 4453 4455 4498 +f 4473 4470 4455 4454 +f 4468 4469 4447 4452 +f 4488 4489 4470 4473 +f 4483 4484 4469 4468 +f 4454 4455 4453 4442 +f 4498 4499 4484 4483 +s 820 +f 4450 4478 4497 4460 +f 4460 4461 4443 4450 +f 4481 4478 4463 4462 +f 4496 4497 4478 4481 +f 4490 4491 4476 4475 +f 4475 4476 4461 4460 +f 4462 4463 4451 4446 +s 823 +f 4463 4464 4449 4451 +f 4478 4479 4464 4463 +s 833 +f 4646 4648 4510 4517 +f 4529 4526 4523 4522 +f 4516 4517 4510 4513 +f 4513 4510 4507 4508 +f 4522 4523 4520 4519 +f 4660 4654 4521 4520 +f 4659 4655 4654 4660 +f 4657 4661 4660 4658 +f 4660 4661 4659 +f 4640 4646 4517 4514 +f 4520 4521 4514 4517 +f 4507 4506 4509 4508 +f 4519 4520 4517 4516 +f 4532 4533 4526 4529 +f 4658 4660 4520 4523 +s 818 +f 4482 4483 4468 4467 +f 4467 4468 4452 4444 +f 4504 4505 4467 4444 +s 825 +f 4489 4486 4471 4470 +f 4470 4471 4456 4455 +s 826 +f 4486 4487 4472 4471 +f 4471 4472 4457 4456 +s 827 +f 4493 4490 4475 4474 +f 4474 4475 4460 4459 +s 828 +f 4501 4456 4445 4482 +f 4485 4482 4467 4466 +f 4500 4501 4482 4485 +s 832 +f 4503 4504 4444 4438 +f 4510 4511 4504 4507 +f 4648 4649 4647 +f 4645 4649 4648 4646 +f 4647 4643 4642 4648 +f 4648 4642 4511 4510 +f 4506 4507 4504 4503 +f 4642 4643 4641 +s 831 +f 4512 4513 4508 4505 +f 4508 4509 4502 4505 +f 4518 4519 4516 4515 +f 4528 4529 4522 4525 +f 4531 4532 4529 4528 +f 4525 4522 4519 4518 +f 4515 4516 4513 4512 +f 4505 4502 4466 4467 +f 4528 4456 4457 4531 +s 834 +f 4653 4650 4652 4654 +f 4651 4652 4650 +f 4642 4640 4514 4511 +f 4524 4525 4518 4521 +f 4514 4515 4512 4511 +f 4639 4640 4638 +f 4654 4655 4653 +f 4511 4512 4505 4504 +f 4521 4518 4515 4514 +f 4527 4528 4525 4524 +f 4654 4652 4524 4521 +f 4641 4638 4640 4642 +s 836 +f 4530 4440 4445 4527 +f 4533 4530 4527 4526 +f 4651 4656 4658 4652 +f 4652 4658 4523 4524 +f 4526 4527 4524 4523 +f 4657 4658 4656 +s 837 +f 4541 4538 4535 4534 +f 4544 4545 4538 4541 +f 4548 4549 4544 4541 +f 4534 4535 4450 4443 +s 838 +f 4545 4542 4539 4538 +f 4538 4539 4536 4535 +f 4535 4536 4453 4450 +s 839 +f 4536 4537 4442 4453 +f 4546 4547 4540 4543 +f 4542 4543 4540 4539 +f 4539 4540 4537 4536 +s 835 +f 4645 4646 4644 +f 4639 4644 4646 4640 +g steer +usemtl black +f 4635 4628 4644 4639 +f 4635 4639 4638 4636 +f 4634 4629 4628 4635 +s 834 +f 4597 4602 4605 4595 +f 4596 4589 4591 4597 +f 4635 4636 4637 4634 +f 4596 4597 4595 +f 4594 4595 4605 4600 +f 4633 4636 4638 4641 +f 4601 4604 4629 4634 +f 4587 4588 4586 +f 4599 4600 4601 4598 +f 4580 4599 4598 4581 +f 4632 4637 4636 4633 +f 4600 4605 4604 4601 +f 4593 4596 4595 4594 +f 4593 4594 4592 +f 4586 4592 4599 4580 +f 4596 4593 4588 4589 +f 4581 4598 4637 4632 +f 4590 4591 4589 +f 4603 4604 4605 4602 +f 4588 4593 4592 4586 +f 4594 4600 4599 4592 +f 4601 4634 4637 4598 +s 832 +f 4625 4647 4649 4622 +f 4633 4641 4643 4630 +f 4626 4623 4622 4627 +f 4583 4578 4631 4624 +f 4627 4622 4649 4645 +f 4623 4624 4625 4622 +f 4583 4624 4623 4584 +f 4624 4631 4630 4625 +f 4631 4632 4633 4630 +f 4579 4580 4581 4578 +f 4625 4630 4643 4647 +f 4582 4579 4578 4583 +f 4581 4632 4631 4578 +f 4627 4645 4644 4628 +s 845 +f 4589 4588 4587 4590 +f 4583 4584 4585 4582 +f 4603 4584 4623 4626 +f 4586 4580 4579 4587 +f 4602 4585 4584 4603 +f 4590 4582 4585 4591 +f 4597 4591 4585 4602 +f 4590 4587 4579 4582 +f 4627 4628 4629 4626 +f 4603 4626 4629 4604 +g throttle +usemtl red +s 833 +f 4611 4657 4656 4612 +f 4611 4606 4661 4657 +f 4607 4608 4609 4606 +f 4610 4607 4606 4611 +f 4609 4659 4661 4606 +s 834 +f 4573 4618 4621 4570 +f 4569 4574 4577 4567 +f 4568 4561 4563 4569 +f 4554 4551 4550 4555 +f 4575 4576 4577 4574 +f 4562 4563 4561 +f 4573 4576 4613 4618 +f 4568 4565 4560 4561 +f 4553 4570 4621 4616 +f 4558 4564 4571 4552 +f 4559 4560 4558 +f 4571 4572 4573 4570 +f 4565 4568 4567 4566 +f 4572 4577 4576 4573 +f 4608 4615 4614 4609 +f 4616 4621 4620 4617 +f 4555 4608 4607 4556 +f 4552 4571 4570 4553 +f 4615 4616 4617 4614 +f 4565 4566 4564 +f 4551 4552 4553 4550 +f 4555 4550 4615 4608 +f 4617 4620 4650 4653 +f 4609 4614 4655 4659 +f 4566 4567 4577 4572 +f 4568 4569 4567 +f 4619 4620 4621 4618 +f 4560 4565 4564 4558 +f 4566 4572 4571 4564 +f 4553 4616 4615 4550 +f 4617 4653 4655 4614 +s 836 +f 4618 4613 4612 4619 +f 4619 4651 4650 4620 +f 4619 4612 4656 4651 +s 841 +f 4575 4610 4613 4576 +f 4611 4612 4613 4610 +f 4562 4559 4551 4554 +f 4569 4563 4557 4574 +f 4562 4554 4557 4563 +f 4574 4557 4556 4575 +f 4558 4552 4551 4559 +f 4575 4556 4607 4610 +f 4555 4556 4557 4554 +f 4561 4560 4559 4562 +# 6273 elements diff --git a/data/mesh_02.obj b/data/mesh_02.obj new file mode 100644 index 0000000..0edaf34 --- /dev/null +++ b/data/mesh_02.obj @@ -0,0 +1,7214 @@ +# Viewpoint Datalabs International, Inc. Copyright 1996 + + +mtllib ./vp.mtl + +g +v 0.786019 -2.928538 0.601628 +v 0.787557 -2.907031 0.601650 +v 0.907193 -2.908894 0.550182 +v 0.902064 -2.928018 0.550057 +v 1.023440 -2.956840 0.481313 +v 1.017128 -2.970083 0.481210 +v 1.101541 -3.010835 0.441949 +v 1.087422 -3.020051 0.441933 +v 1.106929 -3.145379 0.395161 +v 1.091562 -3.144946 0.395144 +v 1.072088 -3.235354 0.377412 +v 1.077035 -3.157159 0.277621 +v 1.064921 -3.214447 0.290776 +v 1.021403 -3.201481 0.168705 +v 1.038110 -3.154783 0.137595 +v 1.077220 -3.018806 0.314615 +v 1.074982 -3.018031 0.239323 +v 1.042151 -3.030779 0.086701 +v 1.064326 -2.943164 0.204697 +v 1.021818 -2.957978 0.044387 +v 0.975907 -2.855559 -0.005333 +v 1.035428 -2.841887 0.171577 +v 1.011729 -2.818190 0.239631 +v 0.772762 -2.912492 0.717615 +v 0.907387 -2.923344 0.685008 +v 1.020136 -2.965400 0.658615 +v 1.097976 -3.067994 0.586489 +v 1.100485 -3.190069 0.544074 +v 0.770828 -2.937952 0.775106 +v 0.903720 -2.963398 0.760914 +v 0.999774 -3.027202 0.760806 +v 1.046470 -3.163512 0.760373 +v 1.037090 -3.238383 0.760190 +v 1.074062 -3.238380 0.527702 +v 0.893578 -2.804472 0.281931 +v 0.782004 -2.795410 0.279693 +v 0.698799 -2.801319 0.275004 +v 0.675365 -2.938091 0.585189 +v 0.661901 -2.921910 0.586087 +v 0.665882 -2.925934 0.710389 +v 0.560051 -2.971251 0.514855 +v 0.543453 -2.950871 0.514979 +v 0.555355 -2.970095 0.691185 +v 0.932929 -3.089451 0.852653 +v 0.866542 -3.038278 0.852679 +v 0.963457 -3.158557 0.852644 +v 0.771187 -3.008775 0.852663 +v 0.671917 -2.952009 0.761131 +v 0.685978 -3.046776 0.852632 +v 0.583250 -3.009146 0.760837 +v 0.632573 -3.092436 0.852583 +v 0.823277 -3.121259 0.885215 +v 0.770024 -3.097687 0.885199 +v 0.717890 -3.127336 0.885165 +v 0.695662 -3.148001 0.885157 +v 0.599302 -3.142824 0.852540 +v 0.677427 -3.175218 0.885148 +v 0.587659 -3.190575 0.852484 +v 0.670639 -3.215333 0.885132 +v 0.850614 -3.153811 0.885202 +v 0.852737 -3.194399 0.885187 +v 0.943579 -3.238376 0.852558 +v 0.685633 -3.238381 0.885102 +v 0.840481 -3.238389 0.885136 +v 0.986468 -2.855529 -0.011956 +v 1.036222 -2.962744 0.037093 +v 1.057487 -3.036565 0.080302 +v 1.054966 -3.160047 0.131091 +v 0.953122 -2.854421 -0.068876 +v 0.985483 -2.957746 -0.057919 +v 1.019390 -3.058597 -0.042315 +v 1.009796 -3.167722 -0.004136 +v 0.986530 -3.201493 0.053273 +v 0.905391 -3.053835 -0.136203 +v 0.895036 -2.957297 -0.125308 +v 0.887260 -2.854405 -0.108414 +v 0.907334 -3.150203 -0.141691 +v 0.891522 -3.201486 -0.107920 +v 0.798525 -3.145032 -0.174300 +v 0.801578 -3.042581 -0.168863 +v 0.802988 -2.964290 -0.145041 +v 0.812682 -2.854389 -0.126191 +v 0.707237 -2.954707 -0.130756 +v 0.730402 -2.854357 -0.117064 +v 0.687061 -3.034578 -0.157076 +v 0.669942 -3.140672 -0.145304 +v 0.791184 -3.201484 -0.146210 +v 0.683376 -3.201475 -0.124516 +v 0.680277 -2.854345 -0.083039 +v 0.605010 -2.955611 -0.068740 +v 0.577713 -3.033063 -0.043603 +v 0.584799 -3.145787 -0.010707 +v 0.600187 -3.201477 0.001230 +v 0.541462 -2.935125 0.085168 +v 0.620955 -2.855412 -0.016222 +v 0.531662 -3.029833 0.116483 +v 0.555642 -3.146120 0.137200 +v 0.590839 -3.201479 0.159142 +v 0.631776 -2.855329 -0.009756 +v 0.566744 -2.944517 0.088975 +v 0.558824 -2.932812 0.213749 +v 0.601732 -2.841651 0.141089 +v 0.552408 -3.033704 0.126091 +v 0.538244 -3.027855 0.247684 +v 0.571163 -3.144282 0.146245 +v 0.556490 -3.151489 0.278832 +v 0.567925 -3.215084 0.277742 +v 0.545355 -3.238381 0.401191 +v 0.515299 -3.158295 0.421111 +v 0.504552 -3.045186 0.466680 +v 0.534684 -3.037446 0.354751 +v 0.615730 -2.815993 0.209595 +v 0.475195 -3.034925 0.466812 +v 0.476549 -3.052179 0.634725 +v 0.494045 -3.160833 0.418894 +v 0.475884 -3.159244 0.586422 +v 0.534676 -3.238383 0.576237 +v 0.528877 -3.174860 0.760344 +v 0.528487 -3.075514 0.760567 +v 0.620069 -3.238380 0.852422 +v 0.560282 -3.238374 0.760130 +v 1.043198 -3.241457 0.769490 +v 0.947325 -3.241451 0.864192 +v 0.841622 -3.241463 0.897592 +v 0.682861 -3.241456 0.897559 +v 0.615641 -3.241454 0.864053 +v 0.554343 -3.241448 0.769429 +v 0.528091 -3.241457 0.580889 +v 0.539039 -3.241456 0.401420 +v 0.562180 -3.218158 0.274852 +v 0.585672 -3.204554 0.153256 +v 0.595257 -3.204551 -0.008646 +v 0.680548 -3.204550 -0.137570 +v 0.791078 -3.204558 -0.159811 +v 0.893952 -3.204560 -0.120554 +v 0.991361 -3.204567 0.044711 +v 1.027114 -3.204555 0.163059 +v 1.071733 -3.218158 0.288215 +v 1.079081 -3.238428 0.377041 +v 1.081105 -3.241456 0.531129 +v 1.071733 -3.270523 0.288214 +v 1.079080 -3.293819 0.377041 +v 1.081104 -3.293821 0.531128 +v 1.043198 -3.293823 0.769490 +v 0.947324 -3.293815 0.864192 +v 0.841621 -3.293829 0.897592 +v 0.682861 -3.293821 0.897558 +v 0.615641 -3.293820 0.864052 +v 0.554343 -3.293814 0.769428 +v 0.528090 -3.293823 0.580889 +v 0.539038 -3.293821 0.401420 +v 0.562179 -3.270524 0.274852 +v 0.585672 -3.256919 0.153255 +v 1.027114 -3.256921 0.163059 +v 0.893951 -3.294219 -0.120554 +v 0.991360 -3.294219 0.044711 +v 1.027113 -3.294219 0.163059 +v 0.585671 -3.294219 0.153256 +v 0.595255 -3.294219 -0.008646 +v 0.680546 -3.294219 -0.137570 +v 0.791077 -3.294219 -0.159812 +v 0.903816 -2.903723 0.409087 +v 0.905746 -2.925559 0.458751 +v 0.790406 -2.914967 0.482225 +v 0.790793 -2.895555 0.429593 +v 1.018182 -2.931984 0.351433 +v 1.025488 -2.953660 0.369957 +v 1.018342 -2.949813 0.400882 +v 0.790138 -2.871559 0.387279 +v 0.787987 -2.841679 0.340474 +v 0.914136 -2.845706 0.325947 +v 0.912999 -2.878417 0.370259 +v 1.015141 -2.886044 0.280661 +v 1.021929 -2.906811 0.284496 +v 1.017217 -2.915387 0.319981 +v 0.685314 -2.868801 0.376137 +v 0.688271 -2.841438 0.325026 +v 0.597187 -2.896330 0.344932 +v 0.599270 -2.886341 0.301924 +v 0.604511 -2.868714 0.294449 +v 0.577213 -2.940670 0.448258 +v 0.575888 -2.944491 0.419575 +v 0.587015 -2.919345 0.393668 +v 0.682337 -2.889899 0.427220 +v 0.679472 -2.908538 0.484016 +v 0.578191 -2.929036 0.441868 +v 0.680449 -2.896904 0.477628 +v 0.791384 -2.903331 0.475837 +v 0.906724 -2.913923 0.452362 +v 1.019319 -2.938179 0.394494 +v 1.018984 -2.925163 0.362409 +v 0.902406 -2.898798 0.421672 +v 0.791527 -2.890346 0.442937 +v 0.682278 -2.884057 0.442476 +v 0.585389 -2.913921 0.408412 +v 1.017454 -2.902199 0.319002 +v 1.016298 -2.881953 0.293736 +v 0.915292 -2.841615 0.339021 +v 0.789142 -2.837587 0.353549 +v 0.689427 -2.837347 0.338100 +v 0.605667 -2.864622 0.307524 +v 0.599852 -2.881745 0.340187 +v 0.686410 -2.854633 0.370879 +v 0.790442 -2.856759 0.383933 +v 0.915448 -2.863334 0.367673 +v 1.134076 -2.073764 0.125220 +v 1.100784 -2.840772 0.063859 +v 1.121226 -2.082448 0.281435 +v 1.077482 -2.848263 0.183241 +v 1.049602 -2.093997 0.420646 +v 1.009420 -2.858189 0.294717 +v 0.930108 -2.106653 0.521664 +v 0.906959 -2.869041 0.381315 +v 0.780934 -2.118488 0.569105 +v 0.785697 -2.879164 0.429853 +v 0.624792 -2.127701 0.555750 +v 0.664096 -2.887017 0.432939 +v 0.487609 -2.132838 0.485339 +v 0.560669 -2.891407 0.390105 +v 0.386351 -2.133204 0.365386 +v 0.491161 -2.891663 0.307871 +v 0.336248 -2.128763 0.214291 +v 0.466153 -2.887750 0.198757 +v 0.349097 -2.120078 0.058076 +v 0.489454 -2.880259 0.079375 +v 0.420722 -2.108528 -0.081137 +v 0.557517 -2.870332 -0.032100 +v 0.540217 -2.095873 -0.182154 +v 0.659978 -2.859481 -0.118699 +v 0.689391 -2.084038 -0.229594 +v 0.781240 -2.849359 -0.167237 +v 0.845533 -2.074826 -0.216238 +v 0.902840 -2.841503 -0.170322 +v 0.984872 -2.069637 -0.144119 +v 1.006268 -2.837114 -0.127489 +v 1.086195 -2.069264 -0.024214 +v 1.075776 -2.836857 -0.045255 +v 1.099357 -1.937180 0.285132 +v 1.111786 -1.928778 0.134029 +v 1.065471 -1.924427 -0.010516 +v 0.967464 -1.924788 -0.126497 +v 0.832685 -1.929805 -0.196257 +v 0.681653 -1.938717 -0.209175 +v 0.537360 -1.950165 -0.163286 +v 0.421775 -1.962406 -0.065576 +v 0.352495 -1.973576 0.069081 +v 0.340066 -1.981978 0.220184 +v 0.377305 -1.987318 0.372941 +v 0.478375 -1.986952 0.492687 +v 0.619167 -1.980950 0.550470 +v 0.770199 -1.972039 0.563388 +v 0.914492 -1.960592 0.517499 +v 1.030077 -1.948350 0.419788 +v 0.751339 -1.850779 0.469324 +v 0.858293 -1.842294 0.435310 +v 0.943969 -1.833221 0.362884 +v 0.995321 -1.824939 0.263071 +v 1.004534 -1.818712 0.151069 +v 0.970204 -1.815487 0.043927 +v 0.897558 -1.815754 -0.042042 +v 0.797655 -1.819474 -0.093750 +v 0.685705 -1.826079 -0.103325 +v 0.578750 -1.834564 -0.069312 +v 0.493075 -1.843638 0.003116 +v 0.441722 -1.851918 0.102928 +v 0.432509 -1.858146 0.214931 +v 0.384043 -1.902884 0.366993 +v 0.485102 -1.902527 0.486719 +v 0.639389 -1.857384 0.459749 +v 0.583406 -1.776776 0.258793 +v 0.621062 -1.776637 0.303356 +v 0.672847 -1.774709 0.330159 +v 0.730876 -1.771286 0.335122 +v 0.786316 -1.766887 0.317490 +v 0.830726 -1.762184 0.279949 +v 0.857345 -1.757891 0.228210 +v 0.862121 -1.754664 0.170154 +v 0.844325 -1.752992 0.114618 +v 0.806669 -1.753130 0.070055 +v 0.754884 -1.755058 0.043252 +v 0.696855 -1.758482 0.038289 +v 0.641416 -1.762880 0.055921 +v 0.597005 -1.767583 0.093462 +v 0.570387 -1.771877 0.145201 +v 0.565611 -1.775104 0.203256 +v 0.507322 -1.827416 0.433629 +v 0.437965 -1.827668 0.351484 +v 0.276676 -1.301333 0.457017 +v 0.631338 -1.958341 0.583740 +v 0.179644 -1.471140 0.419720 +v 0.501134 -2.028466 0.525199 +v 0.119448 -1.629419 0.315006 +v 0.408378 -2.099356 0.417180 +v 0.105254 -1.752074 0.158818 +v 0.367193 -2.160221 0.276124 +v 0.139222 -1.820431 -0.025069 +v 0.383848 -2.201795 0.123508 +v 0.216182 -1.824085 -0.208656 +v 0.455809 -2.217747 -0.017434 +v 0.324417 -1.762477 -0.363997 +v 0.572118 -2.205649 -0.125244 +v 0.447448 -1.644988 -0.467440 +v 0.715070 -2.167346 -0.183510 +v 0.566545 -1.489505 -0.503239 +v 0.862901 -2.108664 -0.183361 +v 0.663579 -1.319699 -0.465942 +v 0.993105 -2.038540 -0.124822 +v 0.723775 -1.161420 -0.361228 +v 1.085861 -1.967650 -0.016800 +v 0.737969 -1.038765 -0.205038 +v 1.127045 -1.906785 0.124254 +v 0.703999 -0.970408 -0.021153 +v 1.110390 -1.865212 0.276870 +v 0.627040 -0.966755 0.162436 +v 1.038430 -1.849259 0.417811 +v 0.518805 -1.028362 0.317776 +v 0.922120 -1.861355 0.525622 +v 0.395774 -1.145850 0.421219 +v 0.779169 -1.899660 0.583889 +v 0.086510 -1.364582 0.276657 +v 0.165325 -1.226657 0.306952 +v 0.262062 -1.100366 0.277875 +v 0.361995 -1.004935 0.193853 +v 0.449908 -0.954894 0.067677 +v 0.512420 -0.957862 -0.081443 +v 0.540010 -1.013385 -0.230804 +v 0.528482 -1.113012 -0.357670 +v 0.479587 -1.241574 -0.442723 +v 0.400772 -1.379501 -0.473018 +v 0.304034 -1.505792 -0.443941 +v 0.204102 -1.601222 -0.359919 +v 0.116188 -1.651262 -0.233743 +v 0.053678 -1.648296 -0.084623 +v 0.026086 -1.592772 0.064739 +v 0.037616 -1.493146 0.191604 +v 0.823165 -2.050884 0.551657 +v 0.703088 -2.098548 0.551536 +v 0.597330 -2.155506 0.503986 +v 0.521989 -2.213087 0.416247 +v 0.488536 -2.262524 0.301675 +v 0.502065 -2.296292 0.177711 +v 0.560515 -2.309250 0.063231 +v 0.654988 -2.299424 -0.024338 +v 0.771100 -2.268310 -0.071665 +v 0.891175 -2.220647 -0.071545 +v 0.996935 -2.163689 -0.023994 +v 1.072274 -2.106107 0.063745 +v 1.105727 -2.056670 0.178318 +v 1.092199 -2.022901 0.302280 +v 1.033750 -2.009944 0.416761 +v 0.939277 -2.019770 0.504329 +v 0.056989 -1.417129 -0.128923 +v 0.042326 -1.387622 -0.049546 +v 0.048452 -1.334675 0.017877 +v 0.074438 -1.266350 0.063078 +v 0.116324 -1.193050 0.079178 +v 0.167735 -1.125933 0.063725 +v 0.220844 -1.075217 0.019072 +v 0.267565 -1.048623 -0.047983 +v 0.300786 -1.050199 -0.127233 +v 0.315450 -1.079707 -0.206611 +v 0.309323 -1.132654 -0.274034 +v 0.283338 -1.200978 -0.319235 +v 0.241452 -1.274278 -0.335335 +v 0.190041 -1.341396 -0.319882 +v 0.136931 -1.392113 -0.275229 +v 0.090211 -1.418706 -0.208173 +v 0.991541 -2.181738 0.303020 +v 0.960478 -2.174852 0.363861 +v 0.910271 -2.180075 0.410399 +v 0.848563 -2.196610 0.435551 +v 0.784749 -2.221941 0.435487 +v 0.728544 -2.252211 0.410217 +v 0.688504 -2.282812 0.363588 +v 0.670726 -2.309085 0.302699 +v 0.677915 -2.327031 0.236819 +v 0.708978 -2.333918 0.175979 +v 0.759185 -2.328696 0.129440 +v 0.820894 -2.312161 0.104288 +v 0.884707 -2.286830 0.104352 +v 0.940913 -2.256561 0.129622 +v 0.980952 -2.225959 0.176251 +v 0.998731 -2.199685 0.237141 +v 0.754618 -1.773825 -0.351634 +v 0.445512 -1.941771 -0.264650 +v 0.598411 -1.871910 -0.341264 +v 0.319197 -1.972774 -0.133454 +v 0.238697 -1.960198 0.032348 +v 0.216269 -1.905957 0.207516 +v 0.255325 -1.818309 0.365380 +v 0.485656 -1.599225 0.539362 +v 0.890353 -1.662451 -0.294182 +v 0.984950 -1.554741 -0.177653 +v 1.024007 -1.467093 -0.019788 +v 1.001578 -1.412854 0.155379 +v 0.349923 -1.710600 0.481909 +v 0.641865 -1.501140 0.528991 +v 0.794765 -1.431280 0.452377 +v 0.921080 -1.400277 0.321181 +v 1.623254 -0.058139 -0.150848 +v 1.920992 -0.560413 0.351398 +v 1.614233 -0.169145 -0.261481 +v 1.926915 -0.643886 0.262807 +v 1.663402 -0.262002 -0.378115 +v 1.976469 -0.717163 0.166201 +v 1.763279 -0.322574 -0.482992 +v 2.062111 -0.769088 0.076287 +v 1.898658 -0.341639 -0.560147 +v 2.170804 -0.791754 0.006752 +v 2.048927 -0.316295 -0.597831 +v 2.285997 -0.781712 -0.031816 +v 2.188930 -0.251846 -0.590833 +v 2.390156 -0.740491 -0.033546 +v 2.301512 -0.155402 -0.539197 +v 2.467423 -0.674365 0.001825 +v 2.369690 -0.041729 -0.450937 +v 2.506035 -0.593403 0.068912 +v 2.378712 0.069277 -0.340303 +v 2.500112 -0.509929 0.157503 +v 2.329543 0.162134 -0.223670 +v 2.450558 -0.436653 0.254109 +v 2.229666 0.222706 -0.118793 +v 2.364916 -0.384728 0.344023 +v 2.094287 0.241771 -0.041638 +v 2.256223 -0.362062 0.413558 +v 1.944017 0.216426 -0.003954 +v 2.141030 -0.372103 0.452126 +v 1.801733 0.150531 -0.011475 +v 2.036871 -0.413325 0.453856 +v 1.689097 0.054116 -0.063058 +v 1.959604 -0.479450 0.418485 +v 1.585242 -0.064487 -0.360483 +v 1.593970 0.042887 -0.253471 +v 1.657657 0.151468 -0.168552 +v 1.766608 0.244728 -0.118658 +v 1.904235 0.308467 -0.111382 +v 2.049588 0.332982 -0.147834 +v 2.180537 0.314541 -0.222464 +v 2.277146 0.255952 -0.323909 +v 2.324706 0.166133 -0.436726 +v 2.315979 0.058759 -0.543739 +v 2.259804 -0.054811 -0.636991 +v 2.147429 -0.151086 -0.688541 +v 2.005713 -0.206822 -0.685827 +v 1.860360 -0.231337 -0.649374 +v 1.729412 -0.212896 -0.574745 +v 1.632803 -0.154306 -0.473300 +v 1.851576 -0.077551 -0.662815 +v 1.754512 -0.063882 -0.607497 +v 1.682904 -0.020453 -0.532303 +v 1.647650 0.046123 -0.448679 +v 1.654119 0.125713 -0.369357 +v 1.701326 0.206197 -0.306413 +v 1.782084 0.275325 -0.269429 +v 1.884098 0.322570 -0.264037 +v 1.991839 0.340741 -0.291056 +v 2.088902 0.327072 -0.346374 +v 2.160511 0.283643 -0.421569 +v 2.195765 0.217067 -0.505193 +v 2.189296 0.137478 -0.584514 +v 2.226114 0.008704 -0.682163 +v 2.113755 -0.087561 -0.733699 +v 1.959316 -0.059379 -0.689834 +v 2.015022 0.143720 -0.614586 +v 1.973161 0.107889 -0.633757 +v 1.920281 0.083399 -0.636552 +v 1.864435 0.073979 -0.622546 +v 1.814122 0.081065 -0.593872 +v 1.777002 0.103576 -0.554895 +v 1.758729 0.138086 -0.511548 +v 1.762082 0.179340 -0.470432 +v 1.786552 0.221060 -0.437805 +v 1.828413 0.256893 -0.418635 +v 1.881293 0.281382 -0.415840 +v 1.937139 0.290801 -0.429844 +v 1.987452 0.283715 -0.458519 +v 2.024570 0.261205 -0.497496 +v 2.042845 0.226694 -0.540842 +v 2.039492 0.185440 -0.581959 +v 2.076011 -0.000792 -0.734242 +v 2.153120 0.065255 -0.698886 +v 1.989742 -0.491018 0.393756 +v 1.955715 -0.562370 0.334632 +v 1.960934 -0.635935 0.256558 +v 2.004606 -0.700515 0.171419 +v 2.080083 -0.746276 0.092177 +v 2.175873 -0.766252 0.030896 +v 2.277393 -0.757402 -0.003093 +v 2.369189 -0.721074 -0.004619 +v 2.437284 -0.662797 0.026554 +v 2.471312 -0.591445 0.085678 +v 2.466093 -0.517880 0.163752 +v 2.422420 -0.453301 0.248891 +v 2.346943 -0.407541 0.328134 +v 2.251154 -0.387564 0.389414 +v 2.149634 -0.396414 0.423404 +v 2.057838 -0.432742 0.424929 +v 2.272074 -0.438359 0.438673 +v 2.170554 -0.447208 0.472664 +v 2.078759 -0.483537 0.474188 +v 2.010663 -0.541813 0.443016 +v 1.976635 -0.613165 0.383892 +v 1.981854 -0.686730 0.305817 +v 2.025527 -0.751310 0.220678 +v 2.101003 -0.797070 0.141437 +v 2.196794 -0.817047 0.080156 +v 2.298314 -0.808197 0.046166 +v 2.390109 -0.771869 0.044641 +v 2.458205 -0.713592 0.075814 +v 2.492232 -0.642240 0.134938 +v 2.487013 -0.568675 0.213012 +v 2.443341 -0.504096 0.298151 +v 2.367864 -0.458335 0.377393 +v 2.458114 -1.420465 0.381856 +v 2.446310 -1.410195 0.369510 +v 2.449583 -1.420356 0.344998 +v 2.469010 -1.430890 0.330259 +v 2.481426 -1.440292 0.331393 +v 2.487318 -1.443179 0.338042 +v 2.482575 -1.440668 0.362532 +v 2.435650 -1.386773 0.323467 +v 2.429746 -1.381620 0.371328 +v 2.474173 -1.406125 0.300120 +v 2.515998 -1.437771 0.305923 +v 2.527194 -1.444486 0.330498 +v 2.522778 -1.436007 0.377465 +v 2.454219 -1.399631 0.406579 +v 2.430851 -1.292167 0.375268 +v 2.457505 -1.277198 0.290487 +v 2.514655 -1.312284 0.255045 +v 2.579113 -1.349214 0.278885 +v 2.481628 -1.418869 0.411230 +v 2.566163 -1.351069 0.381385 +v 2.520232 -1.322599 0.441505 +v 2.481713 -1.312557 0.422294 +v 2.588793 -1.361804 0.317255 +v 2.650998 -1.216998 0.313569 +v 2.637180 -1.202623 0.382595 +v 2.578871 -1.173572 0.439716 +v 2.528897 -1.160636 0.427957 +v 2.473162 -1.163954 0.391837 +v 2.486812 -1.185991 0.286411 +v 2.563513 -1.200965 0.250526 +v 2.629210 -1.208289 0.279070 +v 2.694240 -1.091362 0.299049 +v 2.688587 -1.075872 0.370373 +v 2.626437 -1.040931 0.435452 +v 2.666122 -1.102545 0.264501 +v 2.604431 -1.095248 0.250411 +v 2.526613 -1.090707 0.307129 +v 2.497126 -1.062893 0.384632 +v 2.557580 -1.049906 0.425822 +v 2.427788 -1.421077 0.767792 +v 2.410443 -1.414130 0.741715 +v 2.416892 -1.415110 0.710305 +v 2.446879 -1.425044 0.692658 +v 2.474256 -1.431038 0.700191 +v 2.482752 -1.432804 0.723236 +v 2.475968 -1.431739 0.746829 +v 2.451249 -1.427290 0.768591 +v 2.357392 -1.347799 0.730877 +v 2.393822 -1.376235 0.678094 +v 2.445659 -1.404232 0.652317 +v 2.500278 -1.411980 0.668402 +v 2.518481 -1.412144 0.705713 +v 2.493482 -1.398171 0.762181 +v 2.453487 -1.389265 0.798440 +v 2.406744 -1.369815 0.792679 +v 2.515050 -1.292944 0.612468 +v 2.554031 -1.288391 0.663774 +v 2.518378 -1.264699 0.738999 +v 2.397640 -1.230802 0.771672 +v 2.352515 -1.242805 0.690254 +v 2.399880 -1.265281 0.616344 +v 2.463119 -1.291877 0.584167 +v 2.465790 -1.238513 0.794978 +v 2.365320 -1.143849 0.656609 +v 2.410883 -1.160618 0.577606 +v 2.477868 -1.171139 0.542115 +v 2.402481 -1.117161 0.733363 +v 2.480558 -1.122273 0.751975 +v 2.535559 -1.142820 0.705554 +v 2.574993 -1.163681 0.624134 +v 2.533051 -1.180838 0.559750 +v 2.595258 -1.021133 0.572758 +v 2.559640 -0.995783 0.661795 +v 2.498510 -0.979329 0.705800 +v 2.543678 -1.038207 0.507785 +v 2.486285 -1.073261 0.512909 +v 2.421939 -1.070266 0.562969 +v 2.396317 -1.045621 0.619649 +v 2.409117 -1.013477 0.699167 +v 2.361635 -1.146519 1.102936 +v 2.331435 -1.140843 1.111950 +v 2.314117 -1.152556 1.108892 +v 2.305754 -1.166675 1.096030 +v 2.316934 -1.191476 1.076253 +v 2.342006 -1.200506 1.061357 +v 2.360434 -1.197050 1.066741 +v 2.380024 -1.170858 1.081125 +v 2.381494 -1.096362 1.076051 +v 2.408317 -1.149427 1.031036 +v 2.370986 -1.195848 0.996326 +v 2.320845 -1.210153 0.998038 +v 2.254589 -1.160436 1.065220 +v 2.280635 -1.196655 1.027390 +v 2.280483 -1.117074 1.092520 +v 2.324145 -1.087553 1.098183 +v 2.197987 -1.101460 0.959213 +v 2.234608 -1.145825 0.916543 +v 2.291899 -1.156390 0.880497 +v 2.367524 -1.129257 0.884141 +v 2.236201 -1.048331 1.005223 +v 2.309773 -1.013897 1.009901 +v 2.362653 -1.023664 0.992213 +v 2.406385 -1.073603 0.932751 +v 2.389286 -0.997718 0.855805 +v 2.346204 -0.942460 0.904935 +v 2.287138 -0.923640 0.922986 +v 2.217926 -0.941305 0.903746 +v 2.178340 -1.008156 0.842846 +v 2.366738 -1.068709 0.800301 +v 2.223126 -1.051406 0.802474 +v 2.286362 -1.080797 0.783229 +v 2.394866 -0.915622 0.785825 +v 2.343490 -0.841171 0.823491 +v 2.264115 -0.820155 0.831033 +v 2.207612 -0.853387 0.805916 +v 2.371685 -0.996256 0.739739 +v 2.286616 -0.993170 0.709204 +v 2.223897 -0.954219 0.719138 +v 2.185849 -0.910432 0.749697 +v 2.424089 -0.819443 0.715228 +v 2.339042 -0.757233 0.759124 +v 2.244227 -0.766681 0.766023 +v 2.427818 -0.932737 0.723020 +v 2.509179 -0.872952 0.673194 +v 2.574464 -0.892686 0.616013 +v 2.610360 -0.917082 0.507947 +v 2.600772 -0.993303 0.470028 +v 2.648952 -0.938746 0.430020 +v 2.390769 -0.995162 0.706181 +v 2.528401 -1.026101 0.442822 +v 2.705450 -0.961026 0.341128 +v 2.712309 -0.989042 0.271247 +v 2.671654 -1.019840 0.235219 +v 2.586576 -1.035443 0.227840 +v 2.496489 -1.047931 0.277691 +v 2.462925 -1.029882 0.365693 +v 2.448852 -1.028639 0.424189 +v 2.382734 -1.023871 0.508831 +v 2.333352 -1.002741 0.581947 +v 2.344811 -1.009033 0.654934 +v 2.267631 -0.947789 0.638904 +v 2.219001 -0.913376 0.670577 +v 2.181780 -0.860039 0.699574 +v 2.203290 -0.802855 0.748007 +v 2.549359 -0.797719 0.535251 +v 2.497888 -0.770945 0.595589 +v 2.585326 -0.817174 0.468758 +v 2.622653 -0.826266 0.389460 +v 2.660586 -0.840540 0.283982 +v 2.665172 -0.885657 0.215745 +v 2.310264 -0.694181 0.691931 +v 2.223202 -0.712268 0.710501 +v 2.420527 -0.726001 0.649229 +v 2.183692 -0.747865 0.704595 +v 2.167818 -0.810590 0.667957 +v 2.197701 -0.857120 0.621152 +v 2.247393 -0.876634 0.569736 +v 2.305819 -0.892561 0.523184 +v 2.359446 -0.916353 0.477552 +v 2.423577 -0.951605 0.399456 +v 2.440742 -0.968404 0.334558 +v 2.485622 -0.978877 0.254820 +v 2.555184 -0.971246 0.198759 +v 2.627858 -0.936401 0.180120 +v 2.537881 -0.644137 0.387478 +v 2.478510 -0.616886 0.467050 +v 2.579527 -0.685636 0.302305 +v 2.604701 -0.733623 0.211598 +v 2.605230 -0.781530 0.141668 +v 2.402414 -0.594356 0.547250 +v 2.281770 -0.602176 0.625111 +v 2.189153 -0.646525 0.652126 +v 2.253877 -0.529620 0.556286 +v 2.153677 -0.577930 0.609574 +v 2.178499 -0.478541 0.436263 +v 2.083875 -0.523671 0.503109 +v 2.013054 -0.569685 0.552671 +v 2.081981 -0.625236 0.621936 +v 2.100171 -0.695604 0.636647 +v 2.148044 -0.712735 0.660512 +v 2.360111 -0.515446 0.462613 +v 2.428555 -0.533780 0.369823 +v 2.471238 -0.550995 0.307399 +v 2.511336 -0.586927 0.224919 +v 2.526870 -0.646474 0.144826 +v 2.525414 -0.709966 0.098136 +v 2.416027 -0.681310 0.068953 +v 2.436781 -0.597567 0.107413 +v 2.414046 -0.554953 0.151239 +v 2.368743 -0.519636 0.214872 +v 2.318974 -0.495754 0.267274 +v 2.260166 -0.480760 0.332756 +v 2.550383 -0.851041 0.107283 +v 2.488975 -0.771522 0.070085 +v 2.424307 -0.837553 0.062914 +v 2.353430 -0.870423 0.115255 +v 2.327793 -0.764165 0.075363 +v 2.478880 -0.900067 0.113551 +v 2.404709 -0.933178 0.174661 +v 2.345137 -0.637419 0.091250 +v 2.377595 -0.606598 0.098238 +v 2.274565 -0.753040 0.166661 +v 2.301123 -0.848137 0.218732 +v 2.345961 -0.914974 0.267970 +v 2.341564 -0.851619 0.388387 +v 2.287622 -0.792734 0.325587 +v 2.263828 -0.710314 0.246365 +v 2.315680 -0.614567 0.127279 +v 2.307512 -0.863165 0.427497 +v 2.177859 -0.727738 0.269228 +v 2.157067 -0.602121 0.217346 +v 2.268923 -0.606123 0.173283 +v 2.108341 -0.738600 0.297560 +v 2.081400 -0.600647 0.273802 +v 2.255818 -0.862594 0.474459 +v 2.204501 -0.855035 0.517149 +v 2.140364 -0.833654 0.443806 +v 2.188514 -0.831705 0.384859 +v 2.052571 -0.737490 0.370660 +v 2.000765 -0.625660 0.354304 +v 2.000955 -0.761041 0.466470 +v 1.934257 -0.672707 0.452990 +v 1.915706 -0.814327 0.564952 +v 2.061878 -0.806358 0.530192 +v 1.964868 -0.842302 0.604239 +v 1.867750 -0.719927 0.551639 +v 2.161158 -0.818326 0.581649 +v 2.136009 -0.770873 0.631593 +v 2.092478 -0.764335 0.614325 +v 2.000506 -0.807326 0.670819 +v 2.245679 -0.807064 0.356339 +v 1.827464 -0.845028 0.657677 +v 1.786676 -0.767718 0.638740 +v 1.867191 -0.865969 0.692278 +v 1.887626 -0.845629 0.755711 +v 1.805098 -0.832068 0.784204 +v 1.783768 -0.848174 0.765672 +v 1.940677 -0.598623 0.485857 +v 2.012368 -0.548093 0.393019 +v 1.881897 -0.667506 0.593401 +v 1.812243 -0.707915 0.688828 +v 1.738897 -0.799952 0.739523 +v 1.751713 -0.765651 0.765549 +v 2.094538 -0.521529 0.297807 +v 2.192826 -0.518375 0.234439 +v 1.918831 -0.637958 0.649504 +v 1.976174 -0.671937 0.703105 +v 2.000242 -0.738074 0.712447 +v 1.848448 -0.680772 0.742335 +v 1.783242 -0.741103 0.801898 +v 1.808573 -0.764436 0.818757 +v 1.901390 -0.705916 0.775427 +v 1.904679 -0.777936 0.797654 +v 1.815814 -0.790317 0.811131 +v 1.763151 -0.841544 0.748430 +v 2.347207 -0.559788 0.129472 +v 2.307997 -0.536935 0.165017 +v 2.252801 -0.527764 0.214822 +v 1.306815 0.345572 0.221760 +v 1.970246 -0.004896 0.119119 +v 1.306815 0.150297 0.182917 +v 1.885066 -0.135583 0.088089 +v 1.306815 -0.015248 0.072303 +v 1.812853 -0.246374 -0.000274 +v 1.306815 -0.125862 -0.093242 +v 1.764602 -0.320402 -0.132520 +v 1.306815 -0.164704 -0.288516 +v 1.747659 -0.346397 -0.288516 +v 1.306815 -0.125862 -0.483790 +v 1.764602 -0.320402 -0.444511 +v 1.306815 -0.015248 -0.649335 +v 1.812853 -0.246374 -0.576757 +v 1.306815 0.150297 -0.759949 +v 1.885066 -0.135583 -0.665122 +v 1.306815 0.345572 -0.798791 +v 1.970246 -0.004896 -0.696151 +v 1.306814 0.540847 -0.759949 +v 2.055427 0.125790 -0.665122 +v 1.306815 0.706392 -0.649335 +v 2.127640 0.236580 -0.576757 +v 1.306815 0.817006 -0.483790 +v 2.175889 0.310608 -0.444511 +v 1.306814 0.855849 -0.288516 +v 2.192834 0.336604 -0.288516 +v 1.306815 0.817006 -0.093242 +v 2.175889 0.310608 -0.132520 +v 1.306815 0.706392 0.072303 +v 2.127640 0.236580 -0.000274 +v 1.306814 0.540847 0.182917 +v 2.055427 0.125790 0.088089 +v 1.129849 0.186960 0.094406 +v 1.129849 0.345572 0.125957 +v 1.129849 0.504185 0.094406 +v 1.129849 0.638649 0.004560 +v 1.129849 0.728495 -0.129904 +v 1.129849 0.760046 -0.288516 +v 1.129849 0.728495 -0.447127 +v 1.129849 0.638649 -0.581593 +v 1.129849 0.504185 -0.671439 +v 1.129849 0.345572 -0.702988 +v 1.129849 0.186960 -0.671439 +v 1.129848 0.052495 -0.581593 +v 1.129849 -0.037351 -0.447127 +v 1.129849 -0.068901 -0.288516 +v 1.129849 -0.037351 -0.129904 +v 1.129848 0.052495 0.004560 +v 2.157869 0.024060 0.017383 +v 2.088680 -0.082091 0.042586 +v 2.019492 -0.188241 0.017383 +v 1.960838 -0.278231 -0.054391 +v 1.921646 -0.338360 -0.161808 +v 1.907883 -0.359475 -0.288516 +v 1.921646 -0.338360 -0.415223 +v 1.960838 -0.278231 -0.522641 +v 2.019492 -0.188241 -0.594414 +v 2.088680 -0.082091 -0.619618 +v 2.157869 0.024060 -0.594414 +v 2.216522 0.114050 -0.522641 +v 2.255715 0.174179 -0.415223 +v 2.269477 0.195294 -0.288516 +v 2.255715 0.174179 -0.161808 +v 2.216522 0.114050 -0.054391 +v 0.996819 0.125302 -0.288516 +v 0.996819 0.142069 -0.204222 +v 0.996818 0.189817 -0.132761 +v 0.996819 0.261278 -0.085012 +v 0.996819 0.345572 -0.068245 +v 0.996819 0.429866 -0.085012 +v 0.996819 0.501327 -0.132761 +v 0.996819 0.549076 -0.204222 +v 0.996818 0.565843 -0.288516 +v 0.996819 0.549076 -0.372810 +v 0.996819 0.501327 -0.444271 +v 0.996819 0.429866 -0.492019 +v 0.996819 0.345572 -0.508787 +v 0.996819 0.261278 -0.492019 +v 0.996818 0.189817 -0.444271 +v 0.996819 0.142069 -0.372810 +v 2.273794 0.007296 -0.288516 +v 2.266481 -0.003926 -0.221178 +v 2.245652 -0.035882 -0.164091 +v 2.214481 -0.083707 -0.125947 +v 2.177710 -0.140120 -0.112552 +v 2.140941 -0.196534 -0.125947 +v 2.109768 -0.244358 -0.164091 +v 2.088939 -0.276313 -0.221178 +v 2.081625 -0.287535 -0.288516 +v 2.088939 -0.276313 -0.355854 +v 2.109768 -0.244358 -0.412941 +v 2.140941 -0.196534 -0.451085 +v 2.177710 -0.140120 -0.464479 +v 2.214481 -0.083707 -0.451085 +v 2.245652 -0.035882 -0.412941 +v 2.266481 -0.003926 -0.355854 +v 1.653766 0.213423 -0.761987 +v 1.528826 -0.097187 -0.623311 +v 1.586149 0.045322 -0.725946 +v 1.490524 -0.192409 -0.469705 +v 1.477075 -0.225847 -0.288516 +v 1.490524 -0.192409 -0.107326 +v 1.528826 -0.097187 0.046279 +v 1.653766 0.213423 0.184955 +v 1.721383 0.381524 -0.725946 +v 1.778707 0.524033 -0.623311 +v 1.817008 0.619255 -0.469705 +v 1.830458 0.652692 -0.288516 +v 1.586149 0.045322 0.148915 +v 1.721383 0.381524 0.148915 +v 1.778707 0.524033 0.046279 +v 1.817008 0.619255 -0.107326 +v -0.786019 -2.928538 0.601628 +v -0.787557 -2.907031 0.601650 +v -0.907193 -2.908894 0.550182 +v -0.902064 -2.928018 0.550057 +v -1.023440 -2.956840 0.481313 +v -1.017128 -2.970083 0.481210 +v -1.101541 -3.010835 0.441949 +v -1.087422 -3.020051 0.441933 +v -1.106929 -3.145379 0.395161 +v -1.091562 -3.144946 0.395144 +v -1.072088 -3.235354 0.377412 +v -1.077035 -3.157159 0.277621 +v -1.064921 -3.214447 0.290776 +v -1.021403 -3.201481 0.168705 +v -1.038110 -3.154783 0.137595 +v -1.077220 -3.018806 0.314615 +v -1.074982 -3.018031 0.239323 +v -1.042151 -3.030779 0.086701 +v -1.064326 -2.943164 0.204697 +v -1.021818 -2.957978 0.044387 +v -0.975907 -2.855559 -0.005333 +v -1.035428 -2.841887 0.171577 +v -1.011729 -2.818190 0.239631 +v -0.772762 -2.912492 0.717615 +v -0.907387 -2.923344 0.685008 +v -1.020136 -2.965400 0.658615 +v -1.097976 -3.067994 0.586489 +v -1.100485 -3.190069 0.544074 +v -0.770828 -2.937952 0.775106 +v -0.903720 -2.963398 0.760914 +v -0.999774 -3.027202 0.760806 +v -1.046470 -3.163512 0.760373 +v -1.037090 -3.238383 0.760190 +v -1.074062 -3.238380 0.527702 +v -0.893578 -2.804472 0.281931 +v -0.782004 -2.795410 0.279693 +v -0.698799 -2.801319 0.275004 +v -0.675365 -2.938091 0.585189 +v -0.661901 -2.921910 0.586087 +v -0.665882 -2.925934 0.710389 +v -0.560051 -2.971251 0.514855 +v -0.543453 -2.950871 0.514979 +v -0.555355 -2.970095 0.691185 +v -0.932929 -3.089451 0.852653 +v -0.866542 -3.038278 0.852679 +v -0.963457 -3.158557 0.852644 +v -0.771187 -3.008775 0.852663 +v -0.671917 -2.952009 0.761131 +v -0.685978 -3.046776 0.852632 +v -0.583250 -3.009146 0.760837 +v -0.632573 -3.092436 0.852583 +v -0.823277 -3.121259 0.885215 +v -0.770024 -3.097687 0.885199 +v -0.717890 -3.127336 0.885165 +v -0.695662 -3.148001 0.885157 +v -0.599302 -3.142824 0.852540 +v -0.677427 -3.175218 0.885148 +v -0.587659 -3.190575 0.852484 +v -0.670639 -3.215333 0.885132 +v -0.850614 -3.153811 0.885202 +v -0.852737 -3.194399 0.885187 +v -0.943579 -3.238376 0.852558 +v -0.685633 -3.238381 0.885102 +v -0.840481 -3.238389 0.885136 +v -0.986468 -2.855529 -0.011956 +v -1.036222 -2.962744 0.037093 +v -1.057487 -3.036565 0.080302 +v -1.054966 -3.160047 0.131091 +v -0.953122 -2.854421 -0.068876 +v -0.985483 -2.957746 -0.057919 +v -1.019390 -3.058597 -0.042315 +v -1.009796 -3.167722 -0.004136 +v -0.986530 -3.201493 0.053273 +v -0.905391 -3.053835 -0.136203 +v -0.895036 -2.957297 -0.125308 +v -0.887260 -2.854405 -0.108414 +v -0.907334 -3.150203 -0.141691 +v -0.891522 -3.201486 -0.107920 +v -0.798525 -3.145032 -0.174300 +v -0.801578 -3.042581 -0.168863 +v -0.802988 -2.964290 -0.145041 +v -0.812682 -2.854389 -0.126191 +v -0.707237 -2.954707 -0.130756 +v -0.730402 -2.854357 -0.117064 +v -0.687061 -3.034578 -0.157076 +v -0.669942 -3.140672 -0.145304 +v -0.791184 -3.201484 -0.146210 +v -0.683376 -3.201475 -0.124516 +v -0.680277 -2.854345 -0.083039 +v -0.605010 -2.955611 -0.068740 +v -0.577713 -3.033063 -0.043603 +v -0.584799 -3.145787 -0.010707 +v -0.600187 -3.201477 0.001230 +v -0.541462 -2.935125 0.085168 +v -0.620955 -2.855412 -0.016222 +v -0.531662 -3.029833 0.116483 +v -0.555642 -3.146120 0.137200 +v -0.590839 -3.201479 0.159142 +v -0.631776 -2.855329 -0.009756 +v -0.566744 -2.944517 0.088975 +v -0.558824 -2.932812 0.213749 +v -0.601732 -2.841651 0.141089 +v -0.552408 -3.033704 0.126091 +v -0.538244 -3.027855 0.247684 +v -0.571163 -3.144282 0.146245 +v -0.556490 -3.151489 0.278832 +v -0.567925 -3.215084 0.277742 +v -0.545355 -3.238381 0.401191 +v -0.515299 -3.158295 0.421111 +v -0.504552 -3.045186 0.466680 +v -0.534684 -3.037446 0.354751 +v -0.615730 -2.815993 0.209595 +v -0.475195 -3.034925 0.466812 +v -0.476549 -3.052179 0.634725 +v -0.494045 -3.160833 0.418894 +v -0.475884 -3.159244 0.586422 +v -0.534676 -3.238383 0.576237 +v -0.528877 -3.174860 0.760344 +v -0.528487 -3.075514 0.760567 +v -0.620069 -3.238380 0.852422 +v -0.560282 -3.238374 0.760130 +v -1.043198 -3.241457 0.769490 +v -0.947325 -3.241451 0.864192 +v -0.841622 -3.241463 0.897592 +v -0.682861 -3.241456 0.897559 +v -0.615641 -3.241454 0.864053 +v -0.554343 -3.241448 0.769429 +v -0.528091 -3.241457 0.580889 +v -0.539039 -3.241456 0.401420 +v -0.562180 -3.218158 0.274852 +v -0.585672 -3.204554 0.153256 +v -0.595257 -3.204551 -0.008646 +v -0.680548 -3.204550 -0.137570 +v -0.791078 -3.204558 -0.159811 +v -0.893952 -3.204560 -0.120554 +v -0.991361 -3.204567 0.044711 +v -1.027114 -3.204555 0.163059 +v -1.071733 -3.218158 0.288215 +v -1.079081 -3.238428 0.377041 +v -1.081105 -3.241456 0.531129 +v -1.071733 -3.270523 0.288214 +v -1.079080 -3.293819 0.377041 +v -1.081104 -3.293821 0.531128 +v -1.043198 -3.293823 0.769490 +v -0.947324 -3.293815 0.864192 +v -0.841621 -3.293829 0.897592 +v -0.682861 -3.293821 0.897558 +v -0.615641 -3.293820 0.864052 +v -0.554343 -3.293814 0.769428 +v -0.528090 -3.293823 0.580889 +v -0.539038 -3.293821 0.401420 +v -0.562179 -3.270524 0.274852 +v -0.585672 -3.256919 0.153255 +v -1.027114 -3.256921 0.163059 +v -0.893951 -3.294219 -0.120554 +v -0.991360 -3.294219 0.044711 +v -1.027113 -3.294219 0.163059 +v -0.585671 -3.294219 0.153256 +v -0.595255 -3.294219 -0.008646 +v -0.680546 -3.294219 -0.137570 +v -0.791077 -3.294219 -0.159812 +v -0.903816 -2.903723 0.409087 +v -0.905746 -2.925559 0.458751 +v -0.790406 -2.914967 0.482225 +v -0.790793 -2.895555 0.429593 +v -1.018182 -2.931984 0.351433 +v -1.025488 -2.953660 0.369957 +v -1.018342 -2.949813 0.400882 +v -0.790138 -2.871559 0.387279 +v -0.787987 -2.841679 0.340474 +v -0.914136 -2.845706 0.325947 +v -0.912999 -2.878417 0.370259 +v -1.015141 -2.886044 0.280661 +v -1.021929 -2.906811 0.284496 +v -1.017217 -2.915387 0.319981 +v -0.685314 -2.868801 0.376137 +v -0.688271 -2.841438 0.325026 +v -0.597187 -2.896330 0.344932 +v -0.599270 -2.886341 0.301924 +v -0.604511 -2.868714 0.294449 +v -0.577213 -2.940670 0.448258 +v -0.575888 -2.944491 0.419575 +v -0.587015 -2.919345 0.393668 +v -0.682337 -2.889899 0.427220 +v -0.679472 -2.908538 0.484016 +v -0.578191 -2.929036 0.441868 +v -0.680449 -2.896904 0.477628 +v -0.791384 -2.903331 0.475837 +v -0.906724 -2.913923 0.452362 +v -1.019319 -2.938179 0.394494 +v -1.018984 -2.925163 0.362409 +v -0.902406 -2.898798 0.421672 +v -0.791527 -2.890346 0.442937 +v -0.682278 -2.884057 0.442476 +v -0.585389 -2.913921 0.408412 +v -1.017454 -2.902199 0.319002 +v -1.016298 -2.881953 0.293736 +v -0.915292 -2.841615 0.339021 +v -0.789142 -2.837587 0.353549 +v -0.689427 -2.837347 0.338100 +v -0.605667 -2.864622 0.307524 +v -0.599852 -2.881745 0.340187 +v -0.686410 -2.854633 0.370879 +v -0.790442 -2.856759 0.383933 +v -0.915448 -2.863334 0.367673 +v -1.134076 -2.073764 0.125220 +v -1.100784 -2.840772 0.063859 +v -1.121226 -2.082448 0.281435 +v -1.077482 -2.848263 0.183241 +v -1.049602 -2.093997 0.420646 +v -1.009420 -2.858189 0.294717 +v -0.930108 -2.106653 0.521664 +v -0.906959 -2.869041 0.381315 +v -0.780934 -2.118488 0.569105 +v -0.785697 -2.879164 0.429853 +v -0.624792 -2.127701 0.555750 +v -0.664096 -2.887017 0.432939 +v -0.487609 -2.132838 0.485339 +v -0.560669 -2.891407 0.390105 +v -0.386351 -2.133204 0.365386 +v -0.491161 -2.891663 0.307871 +v -0.336248 -2.128763 0.214291 +v -0.466153 -2.887750 0.198757 +v -0.349097 -2.120078 0.058076 +v -0.489454 -2.880259 0.079375 +v -0.420722 -2.108528 -0.081137 +v -0.557517 -2.870332 -0.032100 +v -0.540217 -2.095873 -0.182154 +v -0.659978 -2.859481 -0.118699 +v -0.689391 -2.084038 -0.229594 +v -0.781240 -2.849359 -0.167237 +v -0.845533 -2.074826 -0.216238 +v -0.902840 -2.841503 -0.170322 +v -0.984872 -2.069637 -0.144119 +v -1.006268 -2.837114 -0.127489 +v -1.086195 -2.069264 -0.024214 +v -1.075776 -2.836857 -0.045255 +v -1.099357 -1.937180 0.285132 +v -1.111786 -1.928778 0.134029 +v -1.065471 -1.924427 -0.010516 +v -0.967464 -1.924788 -0.126497 +v -0.832685 -1.929805 -0.196257 +v -0.681653 -1.938717 -0.209175 +v -0.537360 -1.950165 -0.163286 +v -0.421775 -1.962406 -0.065576 +v -0.352495 -1.973576 0.069081 +v -0.340066 -1.981978 0.220184 +v -0.377305 -1.987318 0.372941 +v -0.478375 -1.986952 0.492687 +v -0.619167 -1.980950 0.550470 +v -0.770199 -1.972039 0.563388 +v -0.914492 -1.960592 0.517499 +v -1.030077 -1.948350 0.419788 +v -0.751339 -1.850779 0.469324 +v -0.858293 -1.842294 0.435310 +v -0.943969 -1.833221 0.362884 +v -0.995321 -1.824939 0.263071 +v -1.004534 -1.818712 0.151069 +v -0.970204 -1.815487 0.043927 +v -0.897558 -1.815754 -0.042042 +v -0.797655 -1.819474 -0.093750 +v -0.685705 -1.826079 -0.103325 +v -0.578750 -1.834564 -0.069312 +v -0.493075 -1.843638 0.003116 +v -0.441722 -1.851918 0.102928 +v -0.432509 -1.858146 0.214931 +v -0.384043 -1.902884 0.366993 +v -0.485102 -1.902527 0.486719 +v -0.639389 -1.857384 0.459749 +v -0.583406 -1.776776 0.258793 +v -0.621062 -1.776637 0.303356 +v -0.672847 -1.774709 0.330159 +v -0.730876 -1.771286 0.335122 +v -0.786316 -1.766887 0.317490 +v -0.830726 -1.762184 0.279949 +v -0.857345 -1.757891 0.228210 +v -0.862121 -1.754664 0.170154 +v -0.844325 -1.752992 0.114618 +v -0.806669 -1.753130 0.070055 +v -0.754884 -1.755058 0.043252 +v -0.696855 -1.758482 0.038289 +v -0.641416 -1.762880 0.055921 +v -0.597005 -1.767583 0.093462 +v -0.570387 -1.771877 0.145201 +v -0.565611 -1.775104 0.203256 +v -0.507322 -1.827416 0.433629 +v -0.437965 -1.827668 0.351484 +v -0.276676 -1.301333 0.457017 +v -0.631338 -1.958341 0.583740 +v -0.179644 -1.471140 0.419720 +v -0.501134 -2.028466 0.525199 +v -0.119448 -1.629419 0.315006 +v -0.408378 -2.099356 0.417180 +v -0.105254 -1.752074 0.158818 +v -0.367193 -2.160221 0.276124 +v -0.139222 -1.820431 -0.025069 +v -0.383848 -2.201795 0.123508 +v -0.216182 -1.824085 -0.208656 +v -0.455809 -2.217747 -0.017434 +v -0.324417 -1.762477 -0.363997 +v -0.572118 -2.205649 -0.125244 +v -0.447448 -1.644988 -0.467440 +v -0.715070 -2.167346 -0.183510 +v -0.566545 -1.489505 -0.503239 +v -0.862901 -2.108664 -0.183361 +v -0.663579 -1.319699 -0.465942 +v -0.993105 -2.038540 -0.124822 +v -0.723775 -1.161420 -0.361228 +v -1.085861 -1.967650 -0.016800 +v -0.737969 -1.038765 -0.205038 +v -1.127045 -1.906785 0.124254 +v -0.703999 -0.970408 -0.021153 +v -1.110390 -1.865212 0.276870 +v -0.627040 -0.966755 0.162436 +v -1.038430 -1.849259 0.417811 +v -0.518805 -1.028362 0.317776 +v -0.922120 -1.861355 0.525622 +v -0.395774 -1.145850 0.421219 +v -0.779169 -1.899660 0.583889 +v -0.086510 -1.364582 0.276657 +v -0.165325 -1.226657 0.306952 +v -0.262062 -1.100366 0.277875 +v -0.361995 -1.004935 0.193853 +v -0.449908 -0.954894 0.067677 +v -0.512420 -0.957862 -0.081443 +v -0.540010 -1.013385 -0.230804 +v -0.528482 -1.113012 -0.357670 +v -0.479587 -1.241574 -0.442723 +v -0.400772 -1.379501 -0.473018 +v -0.304034 -1.505792 -0.443941 +v -0.204102 -1.601222 -0.359919 +v -0.116188 -1.651262 -0.233743 +v -0.053678 -1.648296 -0.084623 +v -0.026086 -1.592772 0.064739 +v -0.037616 -1.493146 0.191604 +v -0.823165 -2.050884 0.551657 +v -0.703088 -2.098548 0.551536 +v -0.597330 -2.155506 0.503986 +v -0.521989 -2.213087 0.416247 +v -0.488536 -2.262524 0.301675 +v -0.502065 -2.296292 0.177711 +v -0.560515 -2.309250 0.063231 +v -0.654988 -2.299424 -0.024338 +v -0.771100 -2.268310 -0.071665 +v -0.891175 -2.220647 -0.071545 +v -0.996935 -2.163689 -0.023994 +v -1.072274 -2.106107 0.063745 +v -1.105727 -2.056670 0.178318 +v -1.092199 -2.022901 0.302280 +v -1.033750 -2.009944 0.416761 +v -0.939277 -2.019770 0.504329 +v -0.056989 -1.417129 -0.128923 +v -0.042326 -1.387622 -0.049546 +v -0.048452 -1.334675 0.017877 +v -0.074438 -1.266350 0.063078 +v -0.116324 -1.193050 0.079178 +v -0.167735 -1.125933 0.063725 +v -0.220844 -1.075217 0.019072 +v -0.267565 -1.048623 -0.047983 +v -0.300786 -1.050199 -0.127233 +v -0.315450 -1.079707 -0.206611 +v -0.309323 -1.132654 -0.274034 +v -0.283338 -1.200978 -0.319235 +v -0.241452 -1.274278 -0.335335 +v -0.190041 -1.341396 -0.319882 +v -0.136931 -1.392113 -0.275229 +v -0.090211 -1.418706 -0.208173 +v -0.991541 -2.181738 0.303020 +v -0.960478 -2.174852 0.363861 +v -0.910271 -2.180075 0.410399 +v -0.848563 -2.196610 0.435551 +v -0.784749 -2.221941 0.435487 +v -0.728544 -2.252211 0.410217 +v -0.688504 -2.282812 0.363588 +v -0.670726 -2.309085 0.302699 +v -0.677915 -2.327031 0.236819 +v -0.708978 -2.333918 0.175979 +v -0.759185 -2.328696 0.129440 +v -0.820894 -2.312161 0.104288 +v -0.884707 -2.286830 0.104352 +v -0.940913 -2.256561 0.129622 +v -0.980952 -2.225959 0.176251 +v -0.998731 -2.199685 0.237141 +v -0.754618 -1.773825 -0.351634 +v -0.445512 -1.941771 -0.264650 +v -0.598411 -1.871910 -0.341264 +v -0.319197 -1.972774 -0.133454 +v -0.238697 -1.960198 0.032348 +v -0.216269 -1.905957 0.207516 +v -0.255325 -1.818309 0.365380 +v -0.485656 -1.599225 0.539362 +v -0.890353 -1.662451 -0.294182 +v -0.984950 -1.554741 -0.177653 +v -1.024007 -1.467093 -0.019788 +v -1.001578 -1.412854 0.155379 +v -0.349923 -1.710600 0.481909 +v -0.641865 -1.501140 0.528991 +v -0.794765 -1.431280 0.452377 +v -0.921080 -1.400277 0.321181 +v 0.000000 -0.840689 0.558902 +v 0.000000 -1.217591 0.558902 +v 0.000000 -1.417026 0.588448 +v 0.000000 -1.586917 0.470263 +v 0.000000 -1.697714 0.086165 +v 0.000000 -1.727260 -0.305320 +v 0.000000 -1.646008 -0.608166 +v 0.000000 -1.431799 -0.726350 +v 0.000000 -1.210205 -0.726350 +v 0.000000 -0.945065 -0.563847 +v 0.000000 -0.840689 -0.497369 +v -0.262299 -1.417026 0.588515 +v -0.262309 -1.217591 0.558970 +v -0.262309 -0.840689 0.558970 +v -0.262665 -0.840689 -0.497300 +v -0.262688 -0.945065 -0.563779 +v -0.262742 -1.210205 -0.726282 +v -0.262742 -1.431799 -0.726282 +v -0.262703 -1.646008 -0.608099 +v -0.262600 -1.727260 -0.305251 +v -0.262468 -1.697714 0.086233 +v -0.262338 -1.586917 0.470332 +v -0.480989 -1.677992 -0.286115 +v -0.480867 -1.651029 0.071141 +v -0.480749 -1.549919 0.364306 +v -0.480713 -1.394884 0.461361 +v -0.480722 -1.212886 0.437097 +v -0.480722 -0.840704 0.502545 +v -0.481047 -0.840704 -0.461371 +v -0.481068 -0.966839 -0.522038 +v -0.481118 -1.206145 -0.670333 +v -0.481118 -1.408365 -0.670333 +v -0.481081 -1.603845 -0.562481 +v -0.649797 -1.156924 -0.495856 +v -0.649804 -1.342083 -0.512200 +v -0.649777 -1.484589 -0.433576 +v -0.649708 -1.538643 -0.232103 +v -0.649621 -1.518986 0.028338 +v -0.649535 -1.445276 0.240307 +v -0.649507 -1.332255 0.311061 +v -0.649515 -1.199577 0.293372 +v -0.649515 -0.840746 0.293372 +v -0.649751 -0.840746 -0.359866 +v -0.649762 -0.947090 -0.391848 +v -0.790724 -0.840746 0.171394 +v -0.790835 -0.840746 -0.158250 +v -0.790843 -0.941798 -0.178996 +v -0.815688 -1.050080 -0.229704 +v -0.741764 -1.180644 -0.229704 +v -0.719175 -1.281132 -0.192828 +v -0.719146 -1.319248 -0.098314 +v -0.719108 -1.305387 0.023862 +v -0.741650 -1.253411 0.143738 +v -0.741638 -1.147102 0.180621 +v -0.790724 -1.022096 0.171394 +v -0.235435 -0.692714 0.501230 +v 0.000000 -0.692714 0.501169 +v 0.000000 -0.692714 -0.446846 +v -0.235755 -0.692714 -0.446784 +v -0.431755 -0.692728 -0.414537 +v -0.583169 -0.692766 -0.323436 +v -0.709792 -0.692766 -0.142483 +v -0.709693 -0.692766 0.153376 +v -0.582956 -0.692766 0.307244 +v -0.431463 -0.692728 0.450587 +v -0.496301 -0.571387 0.097596 +v -0.407673 -0.571387 0.205197 +v -0.301733 -0.571361 0.305438 +v -0.164649 -0.571351 0.340852 +v 0.000000 -0.571351 0.340810 +v 0.000000 -0.571351 -0.322143 +v -0.164873 -0.571351 -0.322100 +v -0.301937 -0.571361 -0.299550 +v -0.407822 -0.571387 -0.235841 +v -0.496372 -0.571387 -0.109300 +v -0.176564 -0.515313 -0.151812 +v -0.238485 -0.515328 -0.114556 +v -0.290267 -0.515328 -0.040555 +v -0.290227 -0.515328 0.080437 +v -0.238397 -0.515328 0.143361 +v -0.176444 -0.515313 0.201982 +v -0.096278 -0.515307 0.222691 +v 0.000000 -0.515307 0.222666 +v 0.000000 -0.515307 -0.165024 +v -0.096409 -0.515307 -0.164999 +v -1.623254 -0.058139 -0.150848 +v -1.920992 -0.560413 0.351398 +v -1.614233 -0.169145 -0.261481 +v -1.926915 -0.643886 0.262807 +v -1.663402 -0.262002 -0.378115 +v -1.976469 -0.717163 0.166201 +v -1.763279 -0.322574 -0.482992 +v -2.062111 -0.769088 0.076287 +v -1.898658 -0.341639 -0.560147 +v -2.170804 -0.791754 0.006752 +v -2.048927 -0.316295 -0.597831 +v -2.285997 -0.781712 -0.031816 +v -2.188930 -0.251846 -0.590833 +v -2.390156 -0.740491 -0.033546 +v -2.301512 -0.155402 -0.539197 +v -2.467423 -0.674365 0.001825 +v -2.369690 -0.041729 -0.450937 +v -2.506035 -0.593403 0.068912 +v -2.378712 0.069277 -0.340303 +v -2.500112 -0.509929 0.157503 +v -2.329543 0.162134 -0.223670 +v -2.450558 -0.436653 0.254109 +v -2.229666 0.222706 -0.118793 +v -2.364916 -0.384728 0.344023 +v -2.094287 0.241771 -0.041638 +v -2.256223 -0.362062 0.413558 +v -1.944017 0.216426 -0.003954 +v -2.141030 -0.372103 0.452126 +v -1.801733 0.150531 -0.011475 +v -2.036871 -0.413325 0.453856 +v -1.689097 0.054116 -0.063058 +v -1.959604 -0.479450 0.418485 +v -1.585242 -0.064487 -0.360483 +v -1.593970 0.042887 -0.253471 +v -1.657657 0.151468 -0.168552 +v -1.766608 0.244728 -0.118658 +v -1.904235 0.308467 -0.111382 +v -2.049588 0.332982 -0.147834 +v -2.180537 0.314541 -0.222464 +v -2.277146 0.255952 -0.323909 +v -2.324706 0.166133 -0.436726 +v -2.315979 0.058759 -0.543739 +v -2.259804 -0.054811 -0.636991 +v -2.147429 -0.151086 -0.688541 +v -2.005713 -0.206822 -0.685827 +v -1.860360 -0.231337 -0.649374 +v -1.729412 -0.212896 -0.574745 +v -1.632803 -0.154306 -0.473300 +v -1.851576 -0.077551 -0.662815 +v -1.754512 -0.063882 -0.607497 +v -1.682904 -0.020453 -0.532303 +v -1.647650 0.046123 -0.448679 +v -1.654119 0.125713 -0.369357 +v -1.701326 0.206197 -0.306413 +v -1.782084 0.275325 -0.269429 +v -1.884098 0.322570 -0.264037 +v -1.991839 0.340741 -0.291056 +v -2.088902 0.327072 -0.346374 +v -2.160511 0.283643 -0.421569 +v -2.195765 0.217067 -0.505193 +v -2.189296 0.137478 -0.584514 +v -2.226114 0.008704 -0.682163 +v -2.113755 -0.087561 -0.733699 +v -1.959316 -0.059379 -0.689834 +v -2.015022 0.143720 -0.614586 +v -1.973161 0.107889 -0.633757 +v -1.920281 0.083399 -0.636552 +v -1.864435 0.073979 -0.622546 +v -1.814122 0.081065 -0.593872 +v -1.777002 0.103576 -0.554895 +v -1.758729 0.138086 -0.511548 +v -1.762082 0.179340 -0.470432 +v -1.786552 0.221060 -0.437805 +v -1.828413 0.256893 -0.418635 +v -1.881293 0.281382 -0.415840 +v -1.937139 0.290801 -0.429844 +v -1.987452 0.283715 -0.458519 +v -2.024570 0.261205 -0.497496 +v -2.042845 0.226694 -0.540842 +v -2.039492 0.185440 -0.581959 +v -2.076011 -0.000792 -0.734242 +v -2.153120 0.065255 -0.698886 +v -1.989742 -0.491018 0.393756 +v -1.955715 -0.562370 0.334632 +v -1.960934 -0.635935 0.256558 +v -2.004606 -0.700515 0.171419 +v -2.080083 -0.746276 0.092177 +v -2.175873 -0.766252 0.030896 +v -2.277393 -0.757402 -0.003093 +v -2.369189 -0.721074 -0.004619 +v -2.437284 -0.662797 0.026554 +v -2.471312 -0.591445 0.085678 +v -2.466093 -0.517880 0.163752 +v -2.422420 -0.453301 0.248891 +v -2.346943 -0.407541 0.328134 +v -2.251154 -0.387564 0.389414 +v -2.149634 -0.396414 0.423404 +v -2.057838 -0.432742 0.424929 +v -2.272074 -0.438359 0.438673 +v -2.170554 -0.447208 0.472664 +v -2.078759 -0.483537 0.474188 +v -2.010663 -0.541813 0.443016 +v -1.976635 -0.613165 0.383892 +v -1.981854 -0.686730 0.305817 +v -2.025527 -0.751310 0.220678 +v -2.101003 -0.797070 0.141437 +v -2.196794 -0.817047 0.080156 +v -2.298314 -0.808197 0.046166 +v -2.390109 -0.771869 0.044641 +v -2.458205 -0.713592 0.075814 +v -2.492232 -0.642240 0.134938 +v -2.487013 -0.568675 0.213012 +v -2.443341 -0.504096 0.298151 +v -2.367864 -0.458335 0.377393 +v -2.458114 -1.420465 0.381856 +v -2.446310 -1.410195 0.369510 +v -2.449583 -1.420356 0.344998 +v -2.469010 -1.430890 0.330259 +v -2.481426 -1.440292 0.331393 +v -2.487318 -1.443179 0.338042 +v -2.482575 -1.440668 0.362532 +v -2.435650 -1.386773 0.323467 +v -2.429746 -1.381620 0.371328 +v -2.474173 -1.406125 0.300120 +v -2.515998 -1.437771 0.305923 +v -2.527194 -1.444486 0.330498 +v -2.522778 -1.436007 0.377465 +v -2.454219 -1.399631 0.406579 +v -2.430851 -1.292167 0.375268 +v -2.457505 -1.277198 0.290487 +v -2.514655 -1.312284 0.255045 +v -2.579113 -1.349214 0.278885 +v -2.481628 -1.418869 0.411230 +v -2.566163 -1.351069 0.381385 +v -2.520232 -1.322599 0.441505 +v -2.481713 -1.312557 0.422294 +v -2.588793 -1.361804 0.317255 +v -2.650998 -1.216998 0.313569 +v -2.637180 -1.202623 0.382595 +v -2.578871 -1.173572 0.439716 +v -2.528897 -1.160636 0.427957 +v -2.473162 -1.163954 0.391837 +v -2.486812 -1.185991 0.286411 +v -2.563513 -1.200965 0.250526 +v -2.629210 -1.208289 0.279070 +v -2.694240 -1.091362 0.299049 +v -2.688587 -1.075872 0.370373 +v -2.626437 -1.040931 0.435452 +v -2.666122 -1.102545 0.264501 +v -2.604431 -1.095248 0.250411 +v -2.526613 -1.090707 0.307129 +v -2.497126 -1.062893 0.384632 +v -2.557580 -1.049906 0.425822 +v -2.427788 -1.421077 0.767792 +v -2.410443 -1.414130 0.741715 +v -2.416892 -1.415110 0.710305 +v -2.446879 -1.425044 0.692658 +v -2.474256 -1.431038 0.700191 +v -2.482752 -1.432804 0.723236 +v -2.475968 -1.431739 0.746829 +v -2.451249 -1.427290 0.768591 +v -2.357392 -1.347799 0.730877 +v -2.393822 -1.376235 0.678094 +v -2.445659 -1.404232 0.652317 +v -2.500278 -1.411980 0.668402 +v -2.518481 -1.412144 0.705713 +v -2.493482 -1.398171 0.762181 +v -2.453487 -1.389265 0.798440 +v -2.406744 -1.369815 0.792679 +v -2.515050 -1.292944 0.612468 +v -2.554031 -1.288391 0.663774 +v -2.518378 -1.264699 0.738999 +v -2.397640 -1.230802 0.771672 +v -2.352515 -1.242805 0.690254 +v -2.399880 -1.265281 0.616344 +v -2.463119 -1.291877 0.584167 +v -2.465790 -1.238513 0.794978 +v -2.365320 -1.143849 0.656609 +v -2.410883 -1.160618 0.577606 +v -2.477868 -1.171139 0.542115 +v -2.402481 -1.117161 0.733363 +v -2.480558 -1.122273 0.751975 +v -2.535559 -1.142820 0.705554 +v -2.574993 -1.163681 0.624134 +v -2.533051 -1.180838 0.559750 +v -2.595258 -1.021133 0.572758 +v -2.559640 -0.995783 0.661795 +v -2.498510 -0.979329 0.705800 +v -2.543678 -1.038207 0.507785 +v -2.486285 -1.073261 0.512909 +v -2.421939 -1.070266 0.562969 +v -2.396317 -1.045621 0.619649 +v -2.409117 -1.013477 0.699167 +v -2.361635 -1.146519 1.102936 +v -2.331435 -1.140843 1.111950 +v -2.314117 -1.152556 1.108892 +v -2.305754 -1.166675 1.096030 +v -2.316934 -1.191476 1.076253 +v -2.342006 -1.200506 1.061357 +v -2.360434 -1.197050 1.066741 +v -2.380024 -1.170858 1.081125 +v -2.381494 -1.096362 1.076051 +v -2.408317 -1.149427 1.031036 +v -2.370986 -1.195848 0.996326 +v -2.320845 -1.210153 0.998038 +v -2.254589 -1.160436 1.065220 +v -2.280635 -1.196655 1.027390 +v -2.280483 -1.117074 1.092520 +v -2.324145 -1.087553 1.098183 +v -2.197987 -1.101460 0.959213 +v -2.234608 -1.145825 0.916543 +v -2.291899 -1.156390 0.880497 +v -2.367524 -1.129257 0.884141 +v -2.236201 -1.048331 1.005223 +v -2.309773 -1.013897 1.009901 +v -2.362653 -1.023664 0.992213 +v -2.406385 -1.073603 0.932751 +v -2.389286 -0.997718 0.855805 +v -2.346204 -0.942460 0.904935 +v -2.287138 -0.923640 0.922986 +v -2.217926 -0.941305 0.903746 +v -2.178340 -1.008156 0.842846 +v -2.366738 -1.068709 0.800301 +v -2.223126 -1.051406 0.802474 +v -2.286362 -1.080797 0.783229 +v -2.394866 -0.915622 0.785825 +v -2.343490 -0.841171 0.823491 +v -2.264115 -0.820155 0.831033 +v -2.207612 -0.853387 0.805916 +v -2.371685 -0.996256 0.739739 +v -2.286616 -0.993170 0.709204 +v -2.223897 -0.954219 0.719138 +v -2.185849 -0.910432 0.749697 +v -2.424089 -0.819443 0.715228 +v -2.339042 -0.757233 0.759124 +v -2.244227 -0.766681 0.766023 +v -2.427818 -0.932737 0.723020 +v -2.509179 -0.872952 0.673194 +v -2.574464 -0.892686 0.616013 +v -2.610360 -0.917082 0.507947 +v -2.600772 -0.993303 0.470028 +v -2.648952 -0.938746 0.430020 +v -2.390769 -0.995162 0.706181 +v -2.528401 -1.026101 0.442822 +v -2.705450 -0.961026 0.341128 +v -2.712309 -0.989042 0.271247 +v -2.671654 -1.019840 0.235219 +v -2.586576 -1.035443 0.227840 +v -2.496489 -1.047931 0.277691 +v -2.462925 -1.029882 0.365693 +v -2.448852 -1.028639 0.424189 +v -2.382734 -1.023871 0.508831 +v -2.333352 -1.002741 0.581947 +v -2.344811 -1.009033 0.654934 +v -2.267631 -0.947789 0.638904 +v -2.219001 -0.913376 0.670577 +v -2.181780 -0.860039 0.699574 +v -2.203290 -0.802855 0.748007 +v -2.549359 -0.797719 0.535251 +v -2.497888 -0.770945 0.595589 +v -2.585326 -0.817174 0.468758 +v -2.622653 -0.826266 0.389460 +v -2.660586 -0.840540 0.283982 +v -2.665172 -0.885657 0.215745 +v -2.310264 -0.694181 0.691931 +v -2.223202 -0.712268 0.710501 +v -2.420527 -0.726001 0.649229 +v -2.183692 -0.747865 0.704595 +v -2.167818 -0.810590 0.667957 +v -2.197701 -0.857120 0.621152 +v -2.247393 -0.876634 0.569736 +v -2.305819 -0.892561 0.523184 +v -2.359446 -0.916353 0.477552 +v -2.423577 -0.951605 0.399456 +v -2.440742 -0.968404 0.334558 +v -2.485622 -0.978877 0.254820 +v -2.555184 -0.971246 0.198759 +v -2.627858 -0.936401 0.180120 +v -2.537881 -0.644137 0.387478 +v -2.478510 -0.616886 0.467050 +v -2.579527 -0.685636 0.302305 +v -2.604701 -0.733623 0.211598 +v -2.605230 -0.781530 0.141668 +v -2.402414 -0.594356 0.547250 +v -2.281770 -0.602176 0.625111 +v -2.189153 -0.646525 0.652126 +v -2.253877 -0.529620 0.556286 +v -2.153677 -0.577930 0.609574 +v -2.178499 -0.478541 0.436263 +v -2.083875 -0.523671 0.503109 +v -2.013054 -0.569685 0.552671 +v -2.081981 -0.625236 0.621936 +v -2.100171 -0.695604 0.636647 +v -2.148044 -0.712735 0.660512 +v -2.360111 -0.515446 0.462613 +v -2.428555 -0.533780 0.369823 +v -2.471238 -0.550995 0.307399 +v -2.511336 -0.586927 0.224919 +v -2.526870 -0.646474 0.144826 +v -2.525414 -0.709966 0.098136 +v -2.416027 -0.681310 0.068953 +v -2.436781 -0.597567 0.107413 +v -2.414046 -0.554953 0.151239 +v -2.368743 -0.519636 0.214872 +v -2.318974 -0.495754 0.267274 +v -2.260166 -0.480760 0.332756 +v -2.550383 -0.851041 0.107283 +v -2.488975 -0.771522 0.070085 +v -2.424307 -0.837553 0.062914 +v -2.353430 -0.870423 0.115255 +v -2.327793 -0.764165 0.075363 +v -2.478880 -0.900067 0.113551 +v -2.404709 -0.933178 0.174661 +v -2.345137 -0.637419 0.091250 +v -2.377595 -0.606598 0.098238 +v -2.274565 -0.753040 0.166661 +v -2.301123 -0.848137 0.218732 +v -2.345961 -0.914974 0.267970 +v -2.341564 -0.851619 0.388387 +v -2.287622 -0.792734 0.325587 +v -2.263828 -0.710314 0.246365 +v -2.315680 -0.614567 0.127279 +v -2.307512 -0.863165 0.427497 +v -2.177859 -0.727738 0.269228 +v -2.157067 -0.602121 0.217346 +v -2.268923 -0.606123 0.173283 +v -2.108341 -0.738600 0.297560 +v -2.081400 -0.600647 0.273802 +v -2.255818 -0.862594 0.474459 +v -2.204501 -0.855035 0.517149 +v -2.140364 -0.833654 0.443806 +v -2.188514 -0.831705 0.384859 +v -2.052571 -0.737490 0.370660 +v -2.000765 -0.625660 0.354304 +v -2.000955 -0.761041 0.466470 +v -1.934257 -0.672707 0.452990 +v -1.915706 -0.814327 0.564952 +v -2.061878 -0.806358 0.530192 +v -1.964868 -0.842302 0.604239 +v -1.867750 -0.719927 0.551639 +v -2.161158 -0.818326 0.581649 +v -2.136009 -0.770873 0.631593 +v -2.092478 -0.764335 0.614325 +v -2.000506 -0.807326 0.670819 +v -2.245679 -0.807064 0.356339 +v -1.827464 -0.845028 0.657677 +v -1.786676 -0.767718 0.638740 +v -1.867191 -0.865969 0.692278 +v -1.887626 -0.845629 0.755711 +v -1.805098 -0.832068 0.784204 +v -1.783768 -0.848174 0.765672 +v -1.940677 -0.598623 0.485857 +v -2.012368 -0.548093 0.393019 +v -1.881897 -0.667506 0.593401 +v -1.812243 -0.707915 0.688828 +v -1.738897 -0.799952 0.739523 +v -1.751713 -0.765651 0.765549 +v -2.094538 -0.521529 0.297807 +v -2.192826 -0.518375 0.234439 +v -1.918831 -0.637958 0.649504 +v -1.976174 -0.671937 0.703105 +v -2.000242 -0.738074 0.712447 +v -1.848448 -0.680772 0.742335 +v -1.783242 -0.741103 0.801898 +v -1.808573 -0.764436 0.818757 +v -1.901390 -0.705916 0.775427 +v -1.904679 -0.777936 0.797654 +v -1.815814 -0.790317 0.811131 +v -1.763151 -0.841544 0.748430 +v -2.347207 -0.559788 0.129472 +v -2.307997 -0.536935 0.165017 +v -2.252801 -0.527764 0.214822 +v 0.005871 1.350316 -0.886750 +v 0.005794 1.509556 -0.750557 +v -0.230159 1.487532 -0.696821 +v -0.314581 1.329661 -0.836396 +v -0.683046 1.400683 -0.479693 +v -0.579118 1.269061 -0.723955 +v -0.768313 1.267839 -0.243274 +v -0.971293 1.138016 -0.368971 +v -1.058050 0.971981 -0.062842 +v -0.794241 1.114513 0.056744 +v -0.671219 0.854235 0.431629 +v -0.895077 0.738257 0.291984 +v -0.719383 0.447928 0.550785 +v -0.490260 0.515998 0.734879 +v -0.579876 0.260665 0.735616 +v -0.430451 0.102704 0.816277 +v -0.113326 0.000598 0.850271 +v -0.083679 0.118230 0.853136 +v -0.015855 0.091041 0.837372 +v -0.307020 1.248611 -0.843372 +v 0.005866 1.294734 -0.860496 +v -0.652605 1.135162 -0.673574 +v -0.971306 1.045959 -0.410787 +v -1.059102 0.881727 -0.097164 +v -0.908709 0.636424 0.252632 +v -0.707832 0.396231 0.475815 +v -0.566424 0.201403 0.651966 +v -0.441262 0.075824 0.725701 +v -0.305432 0.299573 0.828785 +v -1.264273 0.449619 0.275725 +v -1.281271 0.652920 0.175265 +v -0.238207 0.004903 0.845752 +v -0.226736 -0.033969 0.778462 +v -0.164620 0.154770 0.829124 +v -1.450284 0.420262 0.104539 +v -1.442443 0.565737 0.046512 +v -1.446624 0.708076 -0.183093 +v -1.273035 0.828200 -0.068799 +v -1.290098 0.861782 -0.369297 +v -1.460551 0.699653 -0.376201 +v -1.256266 0.683005 -0.673151 +v -0.975317 0.700042 -0.761768 +v -1.483624 0.569905 -0.558964 +v -0.683539 0.813690 -0.893767 +v -0.337936 0.880196 -1.029625 +v -0.974975 0.018739 0.413563 +v -1.229840 0.003148 0.245975 +v -1.466634 0.226995 0.095106 +v -0.821318 -0.034281 0.642277 +v -0.575419 -0.099591 0.805859 +v -1.484793 0.102000 -0.021613 +v -1.255179 -0.222439 0.072717 +v -0.982571 -0.194876 0.292810 +v -0.844321 -0.236894 0.624393 +v -0.990468 -0.510053 0.177612 +v -0.851905 -0.521837 0.443191 +v -0.575437 -0.299562 0.798491 +v -0.560033 -0.566355 0.629068 +v -1.067357 -0.494972 -0.089793 +v -1.255251 -0.299210 -0.147273 +v -1.503932 0.022977 -0.207091 +v -1.297577 -0.272873 -0.389768 +v -1.517021 0.011888 -0.384834 +v -1.059565 -0.462426 -0.328270 +v -1.503195 0.409195 -0.653951 +v -1.306871 0.447673 -0.799188 +v -0.982923 0.400342 -0.920459 +v -0.706571 0.476526 -1.059169 +v -1.514100 0.259092 -0.635129 +v -1.340806 0.191881 -0.813115 +v -1.005924 0.072092 -0.981793 +v -0.668182 0.052303 -1.110986 +v -1.520687 0.094939 -0.536706 +v -1.323278 -0.184984 -0.654645 +v -1.005794 -0.465433 -0.517988 +v -0.890649 -0.493516 -0.751131 +v -0.967494 -0.222311 -0.895411 +v -0.264748 -0.313173 0.820315 +v -0.260650 -0.580764 0.655200 +v -0.218461 -0.117979 0.869238 +v -0.237337 -0.327314 0.863791 +v -0.222232 -0.586704 0.696068 +v -0.191357 -0.150269 0.904556 +v 0.005364 -0.315405 0.858149 +v 0.005457 -0.589347 0.685468 +v 0.005316 -0.133456 0.920082 +v -0.247770 -1.050193 0.587406 +v -0.227110 -1.050193 0.632155 +v 0.005533 -1.050193 0.635950 +v -0.523816 -1.050193 0.528375 +v -0.765391 -1.050193 0.346402 +v -0.910538 -1.050193 0.092123 +v -0.965729 -1.050193 -0.051231 +v -0.924493 -1.050193 -0.276600 +v -0.841683 -1.050193 -0.479414 +v -0.683050 -1.050193 -0.591581 +v -0.598871 -0.513304 -0.905545 +v -0.482841 -1.050193 -0.675985 +v -0.276200 -0.531424 -0.847437 +v -0.241316 -1.050193 -0.682554 +v 0.006059 -0.522779 -0.788372 +v 0.006070 -1.050193 -0.661753 +v 0.006080 -0.219938 -0.930094 +v -0.284095 -0.283002 -0.979762 +v -0.629752 -0.279562 -1.031320 +v -0.299547 0.043960 -1.080583 +v 0.006082 0.078030 -1.022972 +v -0.314676 0.464315 -1.111950 +v 0.006063 0.469219 -1.090899 +v 0.005963 0.902086 -0.979942 +v -0.460183 0.537306 0.671402 +v 0.005331 0.735450 0.596979 +v -0.253174 0.680348 0.593082 +v -0.230448 0.596824 0.567254 +v -0.139901 0.494053 0.637261 +v -0.212076 0.255629 0.760477 +v -0.205948 0.633167 0.648864 +v -0.163725 0.590859 0.679038 +v 0.005312 0.669281 0.661733 +v 0.005304 0.613366 0.699080 +v -0.116562 0.553907 0.718480 +v 0.005300 0.567695 0.721305 +v 0.005306 0.503277 0.724248 +v -0.093794 0.504960 0.734658 +v 0.005284 0.466889 0.788759 +v -0.082156 0.449112 0.835016 +v 0.058049 0.409838 0.845554 +v -0.076109 0.365167 0.873382 +v 0.005269 0.393053 0.845671 +v -0.052654 0.277769 0.845836 +v 0.005282 0.295467 0.844612 +v -0.040825 0.156195 0.750323 +v 0.005335 0.142873 0.760661 +v -0.123287 0.175650 0.745024 +v -0.158815 0.403239 0.819261 +v -0.164620 0.325203 0.827535 +v -0.146974 0.251422 0.794659 +v -0.204503 0.385189 0.724463 +v -0.221561 0.304589 0.750982 +v -0.679385 0.672255 0.427805 +v -0.689430 0.755538 0.461203 +v -0.015858 0.055510 0.895520 +v -0.101357 -0.017956 0.912395 +v -0.154776 -0.041510 0.829106 +v -0.329893 0.573922 0.601969 +v -0.368884 0.611846 0.630954 +v -0.467186 1.451970 -0.623335 +v -0.839667 1.212862 -0.586894 +v -0.832378 1.093661 -0.565896 +v -0.570278 0.897431 0.376321 +v 0.581082 0.897572 0.376798 +v 0.843916 1.093866 -0.565202 +v 0.851192 1.213069 -0.586193 +v 0.478684 1.452086 -0.622943 +v 0.379547 0.611937 0.631264 +v 0.340591 0.574004 0.602248 +v 0.144874 -0.048734 0.829222 +v 0.700199 0.755708 0.461779 +v 0.690202 0.672423 0.428372 +v 0.222513 0.345768 0.751162 +v 0.200631 0.413666 0.724638 +v 0.156985 0.239364 0.794786 +v 0.174586 0.313148 0.827675 +v 0.175180 0.359140 0.828801 +v 0.154858 0.431705 0.819397 +v 0.133964 0.175682 0.745131 +v 0.051502 0.156206 0.750361 +v 0.063221 0.277783 0.845884 +v 0.086027 0.328295 0.873449 +v 0.104398 0.504984 0.734740 +v 0.127167 0.553937 0.718581 +v 0.174354 0.590901 0.679179 +v 0.222719 0.255682 0.760657 +v 0.150589 0.494088 0.637382 +v 0.241168 0.596882 0.567449 +v 0.263853 0.680412 0.593296 +v 0.470832 0.537420 0.671788 +v 0.326821 0.464394 -1.111685 +v 0.311768 0.044035 -1.080330 +v 0.642012 -0.279407 -1.030793 +v 0.296311 -0.282931 -0.979520 +v 0.253475 -1.050132 -0.682349 +v 0.288369 -0.531354 -0.847203 +v 0.494995 -1.050073 -0.675580 +v 0.611083 -0.513156 -0.905044 +v 0.695133 -1.050024 -0.591010 +v 0.853673 -1.049985 -0.478712 +v 0.936315 -1.049965 -0.275828 +v 0.977364 -1.049954 -0.050425 +v 0.922055 -1.049969 0.092882 +v 0.776698 -1.050004 0.347041 +v 0.534972 -1.050063 0.528814 +v 0.238180 -1.050136 0.632347 +v 0.201981 -0.150221 0.841819 +v 0.233136 -0.586649 0.696257 +v 0.248038 -0.327255 0.801093 +v 0.979627 -0.222072 -0.894605 +v 0.902728 -0.493296 -0.750388 +v 1.017673 -0.465185 -0.517149 +v 1.335201 -0.184659 -0.653543 +v 1.532444 0.095313 -0.535441 +v 0.680426 0.052467 -1.110427 +v 1.018056 0.072340 -0.980954 +v 1.352770 0.192210 -0.811999 +v 1.525898 0.259465 -0.633870 +v 0.718668 0.476700 -1.058578 +v 0.994924 0.400584 -0.919639 +v 1.318759 0.447995 -0.798100 +v 1.514973 0.409564 -0.652701 +v 1.071286 -0.462165 -0.327387 +v 1.528672 0.012261 -0.383571 +v 1.309303 -0.272554 -0.388688 +v 1.515433 0.023346 -0.205840 +v 1.266781 -0.298901 -0.146228 +v 1.078889 -0.494709 -0.088904 +v 0.570987 -0.566217 0.629537 +v 0.586174 -0.293977 0.749379 +v 0.863001 -0.521627 0.443902 +v 1.001782 -0.509809 0.178438 +v 0.855187 -0.231242 0.575504 +v 0.993712 -0.194634 0.293629 +v 1.266509 -0.222131 0.073762 +v 1.496121 0.102365 -0.020379 +v 0.586111 -0.099449 0.806340 +v 0.832131 -0.034078 0.642962 +v 1.477835 0.227355 0.096326 +v 1.240971 0.003451 0.247000 +v 0.985964 0.018979 0.414374 +v 0.349911 0.880279 -1.029341 +v 0.695416 0.813859 -0.893196 +v 1.495284 0.570270 -0.557729 +v 0.987112 0.700282 -0.760954 +v 1.267992 0.683313 -0.672106 +v 1.472026 0.700012 -0.374986 +v 1.301529 0.862098 -0.368223 +v 1.284224 0.828513 -0.067739 +v 1.457939 0.708432 -0.181889 +v 1.453604 0.566091 0.047712 +v 1.461431 0.420618 0.105745 +v 0.175231 0.154811 0.847408 +v 0.237436 -0.033912 0.778655 +v 0.248842 0.004963 0.845954 +v 1.292302 0.653235 0.176332 +v 1.275270 0.449930 0.276777 +v 0.316008 0.299649 0.829042 +v 0.451978 0.075933 0.726070 +v 0.577170 0.201544 0.652441 +v 0.718677 0.396405 0.476406 +v 0.919680 0.636648 0.253389 +v 1.070302 0.881988 -0.096281 +v 0.982726 1.046199 -0.409978 +v 0.664222 1.135323 -0.673029 +v 0.318749 1.248687 -0.843113 +v 0.094279 0.118251 0.871354 +v 0.102794 -0.018127 0.850352 +v 0.441085 0.102810 0.816639 +v 0.590539 0.260809 0.736101 +v 0.500861 0.516120 0.735289 +v 0.730153 0.448106 0.551386 +v 0.905990 0.738477 0.292730 +v 0.681988 0.854401 0.432190 +v 0.805257 1.114709 0.057407 +v 1.069200 0.972241 -0.061961 +v 0.982655 1.138255 -0.368162 +v 0.779540 1.268028 -0.242634 +v 0.590744 1.269204 -0.723469 +v 0.694437 1.400852 -0.479121 +v 0.326285 1.329739 -0.836131 +v 0.241708 1.487589 -0.696626 +v 0.072890 0.137229 0.801786 +v -0.045793 -0.058932 0.871513 +v 0.071877 0.210342 0.798123 +v -0.046740 0.216982 0.798079 +v 0.005300 0.244603 0.816629 +v 0.019833 0.187086 0.788645 +v 0.159937 0.702535 0.594777 +v 0.000000 -0.773452 0.713246 +v -0.059247 -0.792610 0.711362 +v -0.095865 -0.842765 0.706430 +v -0.095868 -0.904763 0.700334 +v -0.059254 -0.954921 0.695401 +v -0.000009 -0.974084 0.693517 +v 0.059240 -0.954932 0.695400 +v 0.095863 -0.904780 0.700331 +v 0.095872 -0.842783 0.706428 +v 0.059262 -0.792621 0.711361 +v 0.000000 -0.768140 0.659227 +v -0.059247 -0.787297 0.657343 +v -0.095865 -0.837453 0.652411 +v -0.095868 -0.899451 0.646314 +v -0.059254 -0.949610 0.641382 +v -0.000009 -0.968772 0.639498 +v 0.059240 -0.949620 0.641381 +v 0.095863 -0.899469 0.646312 +v 0.095872 -0.837471 0.652409 +v 0.059262 -0.787309 0.657342 +v 0.000000 -0.129937 0.958315 +v -0.059247 -0.148387 0.952823 +v -0.095865 -0.196689 0.938444 +v -0.095868 -0.256397 0.920671 +v -0.059254 -0.304703 0.906292 +v -0.000009 -0.323158 0.900798 +v 0.059240 -0.304714 0.906288 +v 0.095863 -0.256414 0.920666 +v 0.095872 -0.196707 0.938440 +v 0.059262 -0.148397 0.952820 +v 0.059262 -0.132912 0.900796 +v 0.095872 -0.181220 0.886416 +v 0.095863 -0.240928 0.868642 +v 0.059240 -0.289227 0.854265 +v -0.000009 -0.307672 0.848775 +v -0.059254 -0.289217 0.854268 +v -0.095868 -0.240911 0.868648 +v -0.095865 -0.181204 0.886421 +v -0.059247 -0.132901 0.900799 +v 0.000000 -0.114451 0.906291 +v 0.000000 -0.451627 0.806734 +v -0.059247 -0.469299 0.799102 +v -0.095865 -0.515567 0.779122 +v -0.095868 -0.572759 0.754424 +v -0.059254 -0.619030 0.734443 +v -0.000009 -0.636707 0.726808 +v 0.059240 -0.619040 0.734438 +v 0.095863 -0.572775 0.754417 +v 0.095872 -0.515584 0.779115 +v 0.059262 -0.469310 0.799098 +v 0.059262 -0.447790 0.749266 +v 0.095872 -0.494065 0.729284 +v 0.095863 -0.551256 0.704586 +v 0.059240 -0.597520 0.684607 +v -0.000009 -0.615188 0.676977 +v -0.059254 -0.597510 0.684611 +v -0.095868 -0.551239 0.704593 +v -0.095865 -0.494048 0.729290 +v -0.059247 -0.447780 0.749271 +v 0.000000 -0.430108 0.756902 +v -1.306815 0.345572 0.221760 +v -1.970246 -0.004896 0.119119 +v -1.306815 0.150297 0.182917 +v -1.885066 -0.135583 0.088089 +v -1.306815 -0.015248 0.072303 +v -1.812853 -0.246374 -0.000274 +v -1.306815 -0.125862 -0.093242 +v -1.764602 -0.320402 -0.132520 +v -1.306815 -0.164704 -0.288516 +v -1.747659 -0.346397 -0.288516 +v -1.306815 -0.125862 -0.483790 +v -1.764602 -0.320402 -0.444511 +v -1.306815 -0.015248 -0.649335 +v -1.812853 -0.246374 -0.576757 +v -1.306815 0.150297 -0.759949 +v -1.885066 -0.135583 -0.665122 +v -1.306815 0.345572 -0.798791 +v -1.970246 -0.004896 -0.696151 +v -1.306814 0.540847 -0.759949 +v -2.055427 0.125790 -0.665122 +v -1.306815 0.706392 -0.649335 +v -2.127640 0.236580 -0.576757 +v -1.306815 0.817006 -0.483790 +v -2.175889 0.310608 -0.444511 +v -1.306814 0.855849 -0.288516 +v -2.192834 0.336604 -0.288516 +v -1.306815 0.817006 -0.093242 +v -2.175889 0.310608 -0.132520 +v -1.306815 0.706392 0.072303 +v -2.127640 0.236580 -0.000274 +v -1.306814 0.540847 0.182917 +v -2.055427 0.125790 0.088089 +v -1.129849 0.186960 0.094406 +v -1.129849 0.345572 0.125957 +v -1.129849 0.504185 0.094406 +v -1.129849 0.638649 0.004560 +v -1.129849 0.728495 -0.129904 +v -1.129849 0.760046 -0.288516 +v -1.129849 0.728495 -0.447127 +v -1.129849 0.638649 -0.581593 +v -1.129849 0.504185 -0.671439 +v -1.129849 0.345572 -0.702988 +v -1.129849 0.186960 -0.671439 +v -1.129848 0.052495 -0.581593 +v -1.129849 -0.037351 -0.447127 +v -1.129849 -0.068901 -0.288516 +v -1.129849 -0.037351 -0.129904 +v -1.129848 0.052495 0.004560 +v -2.157869 0.024060 0.017383 +v -2.088680 -0.082091 0.042586 +v -2.019492 -0.188241 0.017383 +v -1.960838 -0.278231 -0.054391 +v -1.921646 -0.338360 -0.161808 +v -1.907883 -0.359475 -0.288516 +v -1.921646 -0.338360 -0.415223 +v -1.960838 -0.278231 -0.522641 +v -2.019492 -0.188241 -0.594414 +v -2.088680 -0.082091 -0.619618 +v -2.157869 0.024060 -0.594414 +v -2.216522 0.114050 -0.522641 +v -2.255715 0.174179 -0.415223 +v -2.269477 0.195294 -0.288516 +v -2.255715 0.174179 -0.161808 +v -2.216522 0.114050 -0.054391 +v -0.996819 0.125302 -0.288516 +v -0.996819 0.142069 -0.204222 +v -0.996818 0.189817 -0.132761 +v -0.996819 0.261278 -0.085012 +v -0.996819 0.345572 -0.068245 +v -0.996819 0.429866 -0.085012 +v -0.996819 0.501327 -0.132761 +v -0.996819 0.549076 -0.204222 +v -0.996818 0.565843 -0.288516 +v -0.996819 0.549076 -0.372810 +v -0.996819 0.501327 -0.444271 +v -0.996819 0.429866 -0.492019 +v -0.996819 0.345572 -0.508787 +v -0.996819 0.261278 -0.492019 +v -0.996818 0.189817 -0.444271 +v -0.996819 0.142069 -0.372810 +v -2.273794 0.007296 -0.288516 +v -2.266481 -0.003926 -0.221178 +v -2.245652 -0.035882 -0.164091 +v -2.214481 -0.083707 -0.125947 +v -2.177710 -0.140120 -0.112552 +v -2.140941 -0.196534 -0.125947 +v -2.109768 -0.244358 -0.164091 +v -2.088939 -0.276313 -0.221178 +v -2.081625 -0.287535 -0.288516 +v -2.088939 -0.276313 -0.355854 +v -2.109768 -0.244358 -0.412941 +v -2.140941 -0.196534 -0.451085 +v -2.177710 -0.140120 -0.464479 +v -2.214481 -0.083707 -0.451085 +v -2.245652 -0.035882 -0.412941 +v -2.266481 -0.003926 -0.355854 +v -1.653766 0.213423 -0.761987 +v -1.528826 -0.097187 -0.623311 +v -1.586149 0.045322 -0.725946 +v -1.490524 -0.192409 -0.469705 +v -1.477075 -0.225847 -0.288516 +v -1.490524 -0.192409 -0.107326 +v -1.528826 -0.097187 0.046279 +v -1.653766 0.213423 0.184955 +v -1.721383 0.381524 -0.725946 +v -1.778707 0.524033 -0.623311 +v -1.817008 0.619255 -0.469705 +v -1.830458 0.652692 -0.288516 +v -1.586149 0.045322 0.148915 +v -1.721383 0.381524 0.148915 +v -1.778707 0.524033 0.046279 +v -1.817008 0.619255 -0.107326 +v -0.187055 2.266492 -0.830954 +v -0.307165 2.256252 -0.795770 +v -0.275750 2.130272 -0.708268 +v -0.165536 2.164839 -0.745132 +v -0.416054 2.233526 -0.707535 +v -0.375172 2.106480 -0.631685 +v -0.332168 2.112302 -0.574402 +v -0.255211 2.115301 -0.630751 +v -0.282781 2.130503 -0.506869 +v -0.225401 2.127288 -0.546128 +v -0.140936 2.120265 -0.585217 +v -0.155660 2.119535 -0.668215 +v -0.000003 2.123183 -0.608480 +v -0.000003 2.125899 -0.679678 +v -0.000003 2.188265 -0.757535 +v -0.357403 2.143732 -0.325303 +v -0.456495 2.092493 -0.351798 +v -0.365545 2.157311 -0.180326 +v -0.477658 2.075927 -0.182708 +v -0.490667 2.099245 -0.364174 +v -0.559558 2.137107 -0.382321 +v -0.584213 2.082423 -0.187098 +v -0.331433 2.169831 -0.022672 +v -0.444102 2.059856 0.004349 +v -0.572342 2.028578 0.054001 +v -0.368743 2.073967 0.157892 +v -0.270796 2.178771 0.073647 +v -0.525207 2.023368 0.249290 +v -0.270059 2.098032 0.306985 +v -0.184110 2.185215 0.159225 +v -0.361582 2.032398 0.460733 +v -0.134358 2.108360 0.392918 +v -0.088376 2.188799 0.202757 +v -0.172453 2.054771 0.560306 +v -0.000003 2.074469 0.590607 +v -0.000003 2.126771 0.430511 +v -0.000003 2.190238 0.220239 +v -0.000003 2.314345 0.148359 +v -0.068840 2.313591 0.139325 +v -0.164300 2.311724 0.116824 +v -0.259930 2.306543 0.053917 +v -0.319551 2.299504 -0.031675 +v -0.348133 2.288781 -0.182719 +v -0.000003 2.331478 0.111529 +v -0.061697 2.331009 0.105825 +v -0.141287 2.330283 0.096967 +v -0.232529 2.325469 0.038313 +v -0.288508 2.318822 -0.042673 +v -0.321829 2.308118 -0.184972 +v -0.274703 2.446806 -0.135981 +v -0.269132 2.368203 -0.059092 +v -0.219577 2.347112 0.022226 +v -0.143629 2.352897 0.085565 +v -0.083852 2.385100 0.091435 +v -0.000003 2.475193 0.078617 +v -0.034377 2.471488 0.070723 +v -0.000003 2.529076 0.063453 +v -0.052778 2.589062 0.027810 +v -0.000003 2.593226 0.045823 +v -0.231926 2.551207 -0.149294 +v -0.236104 2.524531 -0.126932 +v -0.167844 2.554747 -0.069549 +v -0.172808 2.566792 -0.090474 +v -0.270298 2.535848 -0.222707 +v -0.214794 2.451369 -0.086163 +v -0.200965 2.481547 -0.095247 +v -0.297585 2.436957 -0.204284 +v -0.212741 2.422400 -0.059109 +v -0.190850 2.409340 -0.038957 +v -0.143504 2.406895 0.017759 +v -0.108672 2.426237 0.031275 +v -0.084524 2.464651 0.025772 +v -0.090089 2.490066 0.011783 +v -0.158692 2.504199 -0.068212 +v -0.106213 2.505291 -0.027466 +v -0.116351 2.566703 -0.024061 +v -0.289382 2.421385 -0.315811 +v -0.306346 2.296294 -0.312567 +v -0.264686 2.511813 -0.319604 +v -0.340922 2.275133 -0.322756 +v -0.199429 2.489064 -0.454855 +v -0.227903 2.408700 -0.465839 +v -0.243891 2.284107 -0.465687 +v -0.266485 2.261437 -0.495266 +v -0.117067 2.479218 -0.506783 +v -0.134608 2.394988 -0.515476 +v -0.142866 2.279294 -0.524343 +v -0.144913 2.255870 -0.562777 +v -0.000002 2.474760 -0.533879 +v -0.000003 2.363637 -0.541105 +v -0.000003 2.277023 -0.552013 +v -0.000003 2.253343 -0.593054 +v -0.115745 2.578044 -0.026483 +v -0.076421 2.271080 -0.883770 +v -0.186467 2.258181 -0.867070 +v -0.323573 2.230726 -0.827995 +v -0.438511 2.202117 -0.741865 +v -0.583805 2.102863 -0.390400 +v -0.590179 2.049013 -0.201652 +v -0.073463 2.041224 -0.691972 +v -0.000006 2.276473 -0.888545 +v -0.000003 2.050756 -0.704198 +v -0.276607 2.034031 -0.657899 +v -0.349043 2.021079 -0.599987 +v -0.472554 2.008581 -0.403932 +v -0.546260 2.003182 -0.188603 +v -0.568457 1.993456 0.058454 +v -0.529835 1.985792 0.243535 +v -0.362883 1.994985 0.460745 +v -0.171034 2.017905 0.562681 +v -0.000006 2.287348 -0.856320 +v -0.165526 2.038810 -0.683024 +v -0.000003 2.033740 0.590387 +v -0.074233 2.281730 -0.851712 +v -0.061340 2.184875 -0.757808 +v -0.059998 2.123521 -0.680952 +v -0.051630 2.119174 -0.607491 +v -0.052988 2.253605 -0.590108 +v -0.050606 2.379312 -0.538447 +v -0.041029 2.474888 -0.531423 +v -0.054734 2.277817 -0.544933 +v -0.000004 2.155687 -0.801841 +v -0.075099 2.152738 -0.797716 +v -0.176401 2.134409 -0.780258 +v -0.304524 2.102540 -0.736486 +v -0.400085 2.073691 -0.645952 +v -0.524007 2.040989 -0.421974 +v -0.585190 2.010457 -0.192246 +v -0.112495 2.072145 -0.555111 +v -0.049602 2.078440 -0.555665 +v 0.000000 2.072443 -0.553211 +v 0.000000 2.070849 0.325681 +v -0.115623 2.066716 0.315310 +v -0.247108 2.047304 0.245782 +v -0.370089 2.043509 0.107071 +v -0.399468 2.045435 -0.028610 +v -0.372184 2.055371 -0.197122 +v -0.321911 2.059052 -0.343992 +v -0.237668 2.067577 -0.497052 +v -0.188260 2.071930 -0.536908 +v -0.106857 2.584080 -0.050059 +v -0.048643 2.594127 -0.000307 +v -0.000003 2.597942 0.016200 +v -0.000003 2.489383 -0.515020 +v -0.037877 2.489501 -0.512770 +v -0.107555 2.493468 -0.490190 +v -0.183029 2.502492 -0.442605 +v -0.248069 2.523338 -0.312946 +v -0.247972 2.545363 -0.229872 +v -0.212809 2.559437 -0.162598 +v -0.158635 2.573972 -0.108696 +v -0.559769 2.147902 -0.543134 +v -0.515805 2.172402 -0.639867 +v -0.530742 2.180394 -0.525645 +v -0.488671 2.204352 -0.612968 +v -0.464038 2.108914 -0.492682 +v -0.425169 2.107697 -0.563172 +v -0.422101 2.099096 -0.462699 +v -0.382699 2.105699 -0.526132 +v -0.316186 2.134912 -0.454478 +v -0.338464 2.139323 -0.400769 +v -0.326496 2.270567 -0.385534 +v -0.302054 2.266002 -0.441059 +v -0.465093 2.026070 0.368527 +v -0.321626 2.085999 0.241009 +v -0.285690 2.290201 -0.392423 +v -0.269214 2.415043 -0.394122 +v -0.242628 2.500440 -0.390526 +v -0.226120 2.512916 -0.381072 +v -0.229679 2.181993 0.125006 +v -0.214341 2.309134 0.093941 +v -0.189134 2.327876 0.076211 +v -0.183829 2.350005 0.062466 +v -0.467501 1.988574 0.367633 +v -0.583492 2.018210 -0.069292 +v -0.582450 2.052476 -0.064241 +v -0.552947 2.023555 0.160216 +v -0.554710 1.987205 0.159895 +v -0.275861 2.005235 0.518965 +v -0.275919 2.042375 0.517772 +v -0.053443 2.419649 0.083914 +v -0.034289 2.540361 0.047355 +v -0.047627 2.552094 0.038776 +v 0.165536 2.164839 -0.745132 +v 0.275750 2.130272 -0.708268 +v 0.307165 2.256252 -0.795770 +v 0.187055 2.266492 -0.830954 +v 0.375172 2.106480 -0.631685 +v 0.416054 2.233526 -0.707535 +v 0.255211 2.115301 -0.630751 +v 0.332168 2.112302 -0.574402 +v 0.225401 2.127288 -0.546128 +v 0.282781 2.130503 -0.506869 +v 0.155660 2.119535 -0.668215 +v 0.140936 2.120265 -0.585217 +v 0.051630 2.119174 -0.607491 +v 0.059998 2.123521 -0.680952 +v 0.061340 2.184875 -0.757808 +v 0.316186 2.134912 -0.454478 +v 0.382699 2.105699 -0.526132 +v 0.477658 2.075927 -0.182708 +v 0.456495 2.092493 -0.351798 +v 0.357403 2.143732 -0.325303 +v 0.365545 2.157311 -0.180326 +v 0.490667 2.099245 -0.364174 +v 0.425169 2.107697 -0.563172 +v 0.488671 2.204352 -0.612968 +v 0.584213 2.082423 -0.187098 +v 0.559558 2.137107 -0.382321 +v 0.444102 2.059856 0.004349 +v 0.331433 2.169831 -0.022672 +v 0.572342 2.028578 0.054001 +v 0.582450 2.052476 -0.064241 +v 0.270796 2.178771 0.073647 +v 0.368743 2.073967 0.157892 +v 0.525207 2.023368 0.249290 +v 0.552947 2.023555 0.160216 +v 0.229679 2.181993 0.125006 +v 0.321626 2.085999 0.241009 +v 0.465093 2.026070 0.368527 +v 0.088376 2.188799 0.202757 +v 0.134358 2.108360 0.392918 +v 0.270059 2.098032 0.306985 +v 0.184110 2.185215 0.159225 +v 0.172453 2.054771 0.560306 +v 0.275919 2.042375 0.517772 +v 0.361582 2.032398 0.460733 +v 0.068840 2.313591 0.139325 +v 0.164300 2.311724 0.116824 +v 0.259930 2.306543 0.053917 +v 0.214341 2.309134 0.093941 +v 0.319551 2.299504 -0.031675 +v 0.348133 2.288781 -0.182719 +v 0.061697 2.331009 0.105825 +v 0.141287 2.330283 0.096967 +v 0.232529 2.325469 0.038313 +v 0.189134 2.327876 0.076211 +v 0.288508 2.318822 -0.042673 +v 0.321829 2.308118 -0.184972 +v 0.269132 2.368203 -0.059092 +v 0.274703 2.446806 -0.135981 +v 0.219577 2.347112 0.022226 +v 0.183829 2.350005 0.062466 +v 0.083852 2.385100 0.091435 +v 0.143629 2.352897 0.085565 +v 0.053443 2.419649 0.083914 +v 0.034377 2.471488 0.070723 +v 0.034289 2.540361 0.047355 +v 0.047627 2.552094 0.038776 +v 0.052778 2.589062 0.027810 +v 0.172808 2.566792 -0.090474 +v 0.167844 2.554747 -0.069549 +v 0.236104 2.524531 -0.126932 +v 0.231926 2.551207 -0.149294 +v 0.270298 2.535848 -0.222707 +v 0.200965 2.481547 -0.095247 +v 0.214794 2.451369 -0.086163 +v 0.297585 2.436957 -0.204284 +v 0.212741 2.422400 -0.059109 +v 0.190850 2.409340 -0.038957 +v 0.108672 2.426237 0.031275 +v 0.143504 2.406895 0.017759 +v 0.084524 2.464651 0.025772 +v 0.090089 2.490066 0.011783 +v 0.158692 2.504199 -0.068212 +v 0.106213 2.505291 -0.027466 +v 0.116351 2.566703 -0.024061 +v 0.306346 2.296294 -0.312567 +v 0.289382 2.421385 -0.315811 +v 0.264686 2.511813 -0.319604 +v 0.340922 2.275133 -0.322756 +v 0.269214 2.415043 -0.394122 +v 0.227903 2.408700 -0.465839 +v 0.199429 2.489064 -0.454855 +v 0.242628 2.500440 -0.390526 +v 0.243891 2.284107 -0.465687 +v 0.285690 2.290201 -0.392423 +v 0.266485 2.261437 -0.495266 +v 0.302054 2.266002 -0.441059 +v 0.134608 2.394988 -0.515476 +v 0.117067 2.479218 -0.506783 +v 0.142866 2.279294 -0.524343 +v 0.144913 2.255870 -0.562777 +v 0.041029 2.474888 -0.531423 +v 0.050606 2.379312 -0.538447 +v 0.054734 2.277817 -0.544933 +v 0.052988 2.253605 -0.590108 +v 0.115745 2.578044 -0.026483 +v 0.226120 2.512916 -0.381072 +v 0.183029 2.502492 -0.442605 +v 0.107555 2.493468 -0.490190 +v 0.037877 2.489501 -0.512770 +v 0.048643 2.594127 -0.000307 +v 0.106857 2.584080 -0.050059 +v 0.158635 2.573972 -0.108696 +v 0.212809 2.559437 -0.162598 +v 0.247972 2.545363 -0.229872 +v 0.248069 2.523338 -0.312946 +v 0.515805 2.172402 -0.639867 +v 0.438511 2.202117 -0.741865 +v 0.590179 2.049013 -0.201652 +v 0.583805 2.102863 -0.390400 +v 0.075099 2.152738 -0.797716 +v 0.076421 2.271080 -0.883770 +v 0.323573 2.230726 -0.827995 +v 0.400085 2.073691 -0.645952 +v 0.304524 2.102540 -0.736486 +v 0.559769 2.147902 -0.543134 +v 0.524007 2.040989 -0.421974 +v 0.585190 2.010457 -0.192246 +v 0.583492 2.018210 -0.069292 +v 0.529835 1.985792 0.243535 +v 0.554710 1.987205 0.159895 +v 0.467501 1.988574 0.367633 +v 0.362883 1.994985 0.460745 +v 0.275861 2.005235 0.518965 +v 0.171034 2.017905 0.562681 +v 0.568457 1.993456 0.058454 +v 0.074233 2.281730 -0.851712 +v 0.186467 2.258181 -0.867070 +v 0.176401 2.134409 -0.780258 +v 0.399468 2.045435 -0.028610 +v 0.370089 2.043509 0.107071 +v 0.247108 2.047304 0.245782 +v 0.115623 2.066716 0.315310 +v 0.049602 2.078440 -0.555665 +v 0.112495 2.072145 -0.555111 +v 0.188260 2.071930 -0.536908 +v 0.237668 2.067577 -0.497052 +v 0.321911 2.059052 -0.343992 +v 0.372184 2.055371 -0.197122 +v 0.073463 2.041224 -0.691972 +v 0.165526 2.038810 -0.683024 +v 0.276607 2.034031 -0.657899 +v 0.349043 2.021079 -0.599987 +v 0.472554 2.008581 -0.403932 +v 0.546260 2.003182 -0.188603 +v 0.530742 2.180394 -0.525645 +v 0.464038 2.108914 -0.492682 +v 0.422101 2.099096 -0.462699 +v 0.338464 2.139323 -0.400769 +v 0.326496 2.270567 -0.385534 +v -0.515127 1.874297 -0.461265 +v -0.512371 1.822589 -0.437378 +v -0.498180 1.964411 -0.439438 +v -0.476088 1.971013 -0.391472 +v -0.442861 1.954352 -0.331701 +v -0.387982 1.866606 -0.254715 +v -0.489640 1.791951 -0.386557 +v -0.456622 1.775527 -0.326952 +v -0.434545 1.773131 -0.287014 +v -0.473463 1.847951 -0.350158 +v -0.422196 1.883887 -0.408013 +v -0.395523 1.903794 -0.374814 +v -0.434768 1.799981 -0.137872 +v -0.374416 1.917079 -0.151280 +v -0.349714 2.001132 -0.154634 +v -0.611282 1.599814 -0.278646 +v -0.604132 1.674121 -0.132815 +v -0.583313 1.580479 -0.423823 +v -0.347973 2.140823 -0.227219 +v -0.430611 1.798772 -0.518312 +v -0.371463 1.815847 -0.544950 +v -0.423842 1.881654 -0.528425 +v -0.367647 1.877229 -0.532282 +v -0.404045 1.924808 -0.498587 +v -0.359140 1.907618 -0.509737 +v -0.380767 1.951340 -0.454269 +v -0.354318 1.942381 -0.434140 +v -0.310359 2.134199 -0.458734 +v -0.337693 2.135631 -0.365516 +v -0.194717 1.904192 -0.560406 +v -0.227718 1.782029 -0.566981 +v -0.210665 2.135795 -0.532142 +v 0.000000 2.133890 -0.570091 +v 0.000000 1.892917 -0.583920 +v 0.000000 1.793341 -0.594343 +v 0.000000 1.665464 -0.723012 +v -0.290232 1.635684 -0.665025 +v -0.457486 1.627730 -0.572201 +v -0.288728 2.282881 -0.240955 +v -0.278601 2.273607 -0.359993 +v -0.245438 2.265396 -0.459760 +v -0.202357 2.354130 -0.228910 +v -0.200615 2.344693 -0.326432 +v -0.172841 2.337263 -0.403493 +v -0.126711 2.400392 -0.229428 +v -0.129316 2.394350 -0.296820 +v -0.104779 2.391018 -0.338242 +v 0.000000 1.807521 0.684757 +v 0.000000 1.896634 0.613382 +v -0.144549 1.791377 0.633352 +v -0.115621 1.885786 0.549833 +v -0.213136 1.757715 0.518773 +v -0.171056 1.834867 0.468986 +v -0.254886 1.737050 0.372539 +v -0.207076 1.804938 0.364078 +v -0.149741 1.831210 0.386184 +v -0.240678 1.691781 0.413536 +v -0.059284 1.932917 0.456746 +v 0.000000 1.965344 0.494111 +v -0.194280 1.678478 0.478710 +v -0.124802 1.683106 0.570628 +v 0.000000 1.686959 0.605531 +v -0.326104 2.046422 -0.031963 +v -0.323471 2.169918 -0.091303 +v -0.327224 1.960350 0.037032 +v -0.377926 1.847099 0.039789 +v -0.532363 1.714199 0.079780 +v -0.261131 2.073662 0.061288 +v -0.270922 2.030841 0.096912 +v -0.297869 1.865005 0.106829 +v -0.265067 1.849636 0.154519 +v -0.201009 1.862357 0.217382 +v -0.164279 1.918301 0.248809 +v -0.096700 1.953570 0.280515 +v -0.061726 2.008265 0.269652 +v -0.069601 2.064814 0.224850 +v -0.142839 2.075776 0.195998 +v -0.202753 2.089402 0.110056 +v -0.237103 2.031143 0.170219 +v -0.034613 2.026020 0.309002 +v -0.032643 2.068776 0.255449 +v -0.327413 1.722835 0.214258 +v -0.287123 2.288412 -0.166632 +v -0.283469 2.195833 0.008535 +v -0.246301 2.297589 -0.056847 +v -0.256357 2.208662 0.051917 +v -0.312767 2.116656 0.055960 +v -0.228987 2.142449 0.106882 +v -0.147650 2.109724 0.208845 +v -0.192083 2.220325 0.128713 +v -0.054949 2.128282 0.222119 +v -0.093052 2.223406 0.174811 +v 0.000000 2.240117 0.184918 +v -0.171532 2.304138 0.024927 +v -0.093066 2.306800 0.066051 +v 0.000000 2.309867 0.096553 +v 0.000000 2.375527 -0.007879 +v 0.000000 2.411919 -0.122650 +v -0.056389 2.409917 -0.134063 +v -0.087800 2.372497 -0.039155 +v -0.140708 2.367643 -0.088995 +v -0.098696 2.406209 -0.168724 +v -0.168260 2.362622 -0.141007 +v -0.109397 2.404479 -0.186410 +v 0.000000 2.254937 -0.528605 +v -0.175468 2.261446 -0.508733 +v -0.113166 2.332258 -0.455244 +v -0.059624 2.388877 -0.369687 +v 0.000000 2.329989 -0.478620 +v 0.000000 2.388923 -0.377519 +v -0.664970 1.569244 0.159656 +v -0.502552 1.572820 0.247938 +v -0.386004 1.656990 0.268942 +v -0.416088 1.508308 0.436300 +v -0.332126 1.508318 0.525061 +v -0.518499 1.559354 0.237870 +v -0.438125 1.501487 0.452956 +v -0.349150 1.499763 0.550456 +v -0.151069 1.557444 0.647942 +v -0.139485 1.570605 0.626687 +v 0.000000 1.586247 0.661550 +v 0.000000 1.573298 0.688091 +v -0.528924 1.348225 0.495028 +v -0.654464 1.413929 0.325764 +v -0.710292 1.522034 0.157066 +v -0.759046 1.474779 0.124654 +v -0.715659 1.372870 0.301973 +v -0.587030 1.238865 0.534920 +v -0.223430 1.174905 0.832655 +v 0.000000 1.178494 0.880653 +v -0.423603 1.174610 0.699562 +v 0.000000 1.087702 0.915123 +v -0.264519 1.090276 0.843649 +v -0.471534 1.124158 0.724792 +v -0.623500 1.212523 0.535866 +v -0.762022 1.341576 0.282003 +v -0.687778 1.171086 0.488757 +v -0.574561 1.007025 0.621773 +v -0.326921 0.889927 0.754288 +v 0.000000 0.840937 0.827983 +v 0.000000 0.682282 0.623633 +v -0.360385 0.761720 0.575233 +v -0.626413 0.952733 0.482823 +v -0.749275 1.144118 0.368120 +v -0.803587 1.307760 0.210347 +v -0.361947 0.691049 0.343791 +v 0.000000 0.613641 0.381227 +v -0.627598 0.915807 0.268922 +v -0.775352 1.129668 0.183551 +v -0.763130 1.151843 0.023235 +v -0.627448 0.957243 0.051040 +v -0.390901 0.723750 0.079440 +v 0.000000 0.636430 0.088391 +v 0.000000 0.742881 -0.165540 +v 0.000000 1.040062 -0.505497 +v -0.413606 0.850018 -0.146581 +v -0.654175 1.053515 -0.146410 +v -0.772203 1.198410 -0.128162 +v -0.669446 1.202225 -0.369024 +v -0.401080 1.100365 -0.444091 +v -0.751318 1.295872 -0.308407 +v 0.000000 1.224444 -0.637672 +v 0.000000 1.419014 -0.749731 +v -0.395132 1.236345 -0.556580 +v -0.385033 1.410074 -0.658598 +v -0.655511 1.302521 -0.473685 +v -0.725788 1.376750 -0.366664 +v -0.711620 1.441974 -0.409039 +v -0.616036 1.421005 -0.566358 +v 0.000000 1.558861 -0.772577 +v -0.345625 1.523682 -0.683890 +v -0.550627 1.503762 -0.575128 +v -0.690995 1.478962 -0.417038 +v -0.731841 1.486719 -0.280430 +v -0.750626 1.448547 -0.269911 +v -0.749222 1.514054 -0.118499 +v -0.775123 1.403957 -0.213535 +v -0.762085 1.496304 -0.082714 +v -0.801792 1.351037 -0.116344 +v -0.778529 1.473085 -0.032552 +v -0.818923 1.315393 0.009473 +v -0.786272 1.460700 0.003253 +v -0.822808 1.308298 0.107611 +v -0.786678 1.453242 0.062267 +v 0.000000 2.149815 0.231318 +v 0.000000 2.087518 0.277678 +v 0.000000 2.047154 0.344610 +v -0.471704 1.549546 0.261580 +v -0.506344 1.927161 -0.459436 +v -0.415422 1.917736 -0.291394 +v 0.000000 0.890564 -0.366968 +v -0.407343 0.974284 -0.326785 +v -0.654852 1.127014 -0.263902 +v -0.360583 1.977544 -0.299052 +v 0.000000 0.932870 0.890302 +v -0.295720 0.958652 0.817717 +v -0.532120 1.063474 0.697474 +v -0.343653 0.815542 0.673833 +v 0.000000 0.751328 0.734880 +v -0.600487 0.969597 0.561370 +v 0.000000 0.640704 0.506664 +v -0.361165 0.719127 0.463746 +v -0.627006 0.927012 0.380106 +v -0.376424 0.695303 0.210406 +v 0.000000 0.612940 0.233599 +v -0.627523 0.924429 0.158771 +v -0.148211 1.655268 -0.705423 +v -0.381715 1.636005 -0.628433 +v -0.176512 1.543669 -0.740357 +v -0.457543 1.515541 -0.639558 +v -0.633856 1.492710 -0.503328 +v -0.720349 1.483539 -0.351213 +v -0.740532 1.500386 -0.199464 +v -0.196644 1.414279 -0.715783 +v -0.511052 1.415295 -0.622169 +v -0.677777 1.431580 -0.494767 +v -0.536359 1.266118 -0.522778 +v -0.705162 1.337795 -0.425824 +v -0.747475 1.412467 -0.320384 +v -0.765681 1.482438 -0.195106 +v -0.201802 1.226260 -0.606494 +v -0.546510 1.145498 -0.411921 +v -0.725309 1.245306 -0.342653 +v -0.772803 1.348944 -0.262347 +v -0.784754 1.450613 -0.148057 +v -0.204837 1.062713 -0.481591 +v -0.542257 1.042737 -0.298371 +v -0.208031 0.922029 -0.350986 +v -0.538004 0.949240 -0.143139 +v -0.721069 1.127096 -0.133736 +v -0.796878 1.272809 -0.121888 +v -0.806764 1.411744 -0.072833 +v -0.211225 0.783196 -0.156161 +v -0.519874 0.828169 0.069790 +v -0.709898 1.046713 0.041097 +v -0.800958 1.231188 0.018459 +v -0.819462 1.387225 0.009676 +v -0.199636 0.664392 0.088858 +v -0.512521 0.796895 0.191646 +v -0.192246 0.637878 0.229847 +v -0.505168 0.790322 0.315973 +v -0.716215 1.014240 0.234169 +v -0.809113 1.216370 0.149308 +v -0.821653 1.379795 0.089904 +v -0.772862 1.464010 0.093461 +v -0.184856 0.636064 0.373306 +v -0.504467 0.810376 0.433970 +v -0.184455 0.664214 0.498579 +v -0.503767 0.845250 0.543323 +v -0.702297 1.040467 0.437590 +v -0.786180 1.223413 0.294764 +v -0.184054 0.707183 0.615208 +v -0.481989 0.881337 0.633757 +v -0.175513 0.769909 0.722335 +v -0.460212 0.938419 0.705666 +v -0.638464 1.079314 0.564922 +v -0.728082 1.251571 0.386972 +v -0.166974 0.853629 0.810938 +v -0.422617 1.002320 0.776694 +v -0.151036 0.935646 0.875133 +v -0.375760 1.100494 0.803878 +v -0.553054 1.160265 0.641564 +v -0.695540 1.272550 0.410822 +v -0.135098 1.081883 0.901043 +v -0.330314 1.169453 0.785385 +v -0.515935 1.202105 0.633389 +v -0.659523 1.304344 0.425599 +v -0.752846 1.423754 0.220974 +v -0.114106 1.171437 0.877833 +v -0.776515 1.407778 0.210780 +v -0.811840 1.379520 0.142350 +v -0.591694 1.383194 0.416746 +v -0.441940 1.334843 0.540334 +v -0.077996 1.569803 0.675836 +v -0.072199 1.582858 0.651938 +v -0.233386 1.543392 0.575874 +v -0.247691 1.532535 0.599199 +v -0.393638 1.494879 0.501706 +v -0.374107 1.502567 0.480680 +v -0.446470 1.524474 0.345055 +v -0.471374 1.518499 0.343523 +v -0.222318 1.683315 0.443100 +v -0.166421 1.679191 0.526160 +v -0.063640 1.686848 0.588079 +v -0.072304 1.803078 0.657543 +v -0.057838 1.897863 0.581607 +v -0.143338 1.858210 0.510015 +v -0.178843 1.776965 0.576063 +v -0.230980 1.773413 0.360749 +v -0.192096 1.800223 0.513233 +v -0.161091 1.821519 0.562392 +v -0.130085 1.837978 0.611551 +v 0.000000 1.848449 0.667516 +v -0.065071 1.849866 0.639534 +v -0.294553 1.974870 0.081320 +v -0.160323 2.030761 0.228352 +v -0.074000 2.175844 0.198465 +v -0.169867 2.157767 0.162731 +v -0.242672 2.168297 0.073352 +v -0.298119 2.148987 0.026200 +v -0.115152 2.017553 0.156549 +v -0.168233 2.011273 0.145885 +v -0.228416 2.014419 0.115986 +v -0.263092 2.004510 0.073692 +v -0.269793 1.938484 0.091387 +v -0.259557 1.920020 0.101469 +v -0.208077 1.945140 0.143319 +v -0.167140 1.961150 0.156246 +v -0.119519 1.987425 0.165465 +v -0.104449 2.011727 0.162308 +v -0.491050 1.540186 0.254578 +v -0.682378 1.467981 0.241415 +v -0.553357 1.515768 0.235100 +v -0.353355 1.530083 0.344968 +v -0.361036 1.522618 0.353044 +v -0.411920 1.537542 0.312929 +v -0.294705 1.521548 0.386092 +v -0.301928 1.514683 0.394911 +v -0.236880 1.513234 0.426710 +v -0.243268 1.507065 0.436681 +v -0.167234 1.544988 0.479125 +v -0.172861 1.539757 0.489737 +v -0.096792 1.577687 0.532358 +v -0.101041 1.572603 0.544245 +v -0.048219 1.580862 0.544036 +v -0.050564 1.575805 0.555693 +v 0.000000 1.589213 0.555477 +v 0.000000 1.583682 0.567260 +v 0.000000 1.449520 0.739982 +v 0.000000 1.436921 0.737554 +v -0.075372 1.429359 0.730447 +v -0.077579 1.441815 0.732118 +v -0.146695 1.412952 0.707735 +v -0.150226 1.425272 0.708614 +v -0.245938 1.375512 0.645643 +v -0.250033 1.387999 0.646649 +v -0.321193 1.345109 0.602259 +v -0.357520 1.329366 0.590477 +v -0.361642 1.335331 0.582716 +v -0.354685 1.343030 0.584577 +v -0.258841 1.357163 0.626602 +v -0.258696 1.345987 0.627153 +v -0.164845 1.365243 0.662992 +v -0.164657 1.354172 0.663449 +v -0.085081 1.375099 0.679020 +v -0.084705 1.364243 0.679449 +v 0.000000 1.376067 0.679324 +v 0.000000 1.365219 0.679549 +v -0.206924 1.758658 0.248524 +v -0.203840 1.756872 0.260826 +v -0.231008 1.716982 0.274667 +v -0.236528 1.712670 0.264635 +v -0.230170 1.668782 0.334014 +v -0.232182 1.658131 0.329581 +v -0.234380 1.663298 0.326139 +v -0.261186 1.911589 0.148196 +v -0.259557 1.920020 0.141972 +v -0.203643 1.947085 0.214170 +v -0.206248 1.937778 0.221744 +v -0.274189 1.934370 0.127424 +v -0.268935 1.934305 0.125881 +v -0.268578 1.999341 0.098910 +v -0.265239 2.011732 0.101058 +v -0.263092 2.004510 0.095065 +v -0.164646 1.962320 0.234950 +v -0.164770 1.954229 0.244122 +v -0.119519 1.987425 0.250050 +v -0.115834 1.981958 0.261309 +v -0.104449 2.011727 0.244719 +v -0.094684 2.014434 0.254297 +v -0.111269 2.016805 0.235643 +v -0.130207 2.021955 0.237820 +v -0.110083 2.022812 0.240583 +v -0.453903 1.685838 -0.426531 +v -0.448491 1.687618 -0.433580 +v -0.444922 1.694717 -0.432182 +v -0.449470 1.696971 -0.437579 +v -0.458400 1.704559 -0.342269 +v -0.455644 1.707950 -0.316835 +v -0.453577 1.706793 -0.312981 +v -0.460269 1.699167 -0.309812 +v -0.461900 1.695894 -0.314131 +v -0.436764 2.025000 -0.430550 +v -0.425404 2.018460 -0.436069 +v -0.366637 1.993569 -0.377757 +v -0.364853 1.994687 -0.377773 +v -0.366244 2.006066 -0.371759 +v -0.367149 1.996599 -0.364885 +v -0.373548 1.999894 -0.367202 +v -0.455293 1.993948 -0.524740 +v -0.442851 1.990154 -0.524384 +v -0.451491 1.936017 -0.547976 +v -0.463102 1.938336 -0.548543 +v -0.229144 2.019993 0.174315 +v -0.222347 2.015109 0.169272 +v -0.168557 2.017801 0.224633 +v -0.164452 2.011397 0.217821 +v -0.438245 2.006328 -0.314179 +v -0.431966 2.012270 -0.316657 +v -0.391594 1.982942 -0.272355 +v -0.399161 1.977045 -0.269953 +v -0.476462 2.020567 -0.389573 +v -0.469529 2.027750 -0.392812 +v -0.517302 1.985586 -0.468982 +v -0.514232 1.991978 -0.477904 +v -0.529061 1.939212 -0.492594 +v -0.527004 1.941116 -0.502956 +v -0.542289 1.875339 -0.499459 +v -0.540440 1.874681 -0.509821 +v -0.545883 1.794161 -0.485343 +v -0.543602 1.790577 -0.495266 +v -0.510051 1.736251 -0.438863 +v -0.505032 1.727728 -0.445445 +v -0.357506 1.945762 -0.238077 +v -0.356600 1.947430 -0.226802 +v -0.356361 1.944756 -0.221039 +v -0.359746 1.933246 -0.229314 +v -0.198037 1.644332 0.371466 +v -0.199028 1.634275 0.367445 +v -0.163269 1.635860 0.414519 +v -0.163060 1.625234 0.411001 +v -0.121900 1.626351 0.464214 +v -0.122233 1.615812 0.460782 +v -0.078368 1.628521 0.505479 +v -0.077493 1.618453 0.504378 +v -0.039372 1.627411 0.521702 +v -0.038984 1.616395 0.520365 +v 0.000000 1.626073 0.537961 +v 0.000000 1.614251 0.536330 +v -0.177693 1.797291 0.269876 +v -0.176299 1.804614 0.258979 +v -0.143912 1.842892 0.306014 +v -0.150215 1.832678 0.313399 +v -0.104058 1.860869 0.419256 +v -0.100894 1.861371 0.430130 +v -0.107739 1.855404 0.434648 +v -0.114757 1.849728 0.418386 +v -0.472872 1.865719 -0.555412 +v -0.460813 1.864482 -0.554693 +v -0.481168 1.789156 -0.540103 +v -0.468029 1.789085 -0.540269 +v -0.460364 1.717267 -0.466592 +v -0.452829 1.711922 -0.463266 +v -0.446935 1.719244 -0.473000 +v -0.349038 1.759902 -0.540458 +v -0.352062 1.746346 -0.541589 +v -0.330708 1.756719 -0.543444 +v -0.289384 1.791699 -0.547145 +v -0.302029 1.800033 -0.543755 +v -0.263504 1.872617 -0.524421 +v -0.277199 1.870340 -0.522024 +v -0.290458 1.918326 -0.500290 +v -0.301601 1.910123 -0.500557 +v -0.323757 1.949227 -0.453957 +v -0.327374 1.944936 -0.448085 +v -0.334344 1.941415 -0.447209 +v -0.414571 1.744054 -0.492674 +v -0.418748 1.734059 -0.486546 +v -0.418654 1.729310 -0.478756 +v 0.515127 1.874297 -0.461265 +v 0.512371 1.822589 -0.437378 +v 0.498180 1.964411 -0.439438 +v 0.476088 1.971013 -0.391472 +v 0.442861 1.954352 -0.331701 +v 0.387982 1.866606 -0.254715 +v 0.489640 1.791951 -0.386557 +v 0.456622 1.775527 -0.326952 +v 0.434545 1.773131 -0.287014 +v 0.473463 1.847951 -0.350158 +v 0.422196 1.883887 -0.408013 +v 0.395523 1.903794 -0.374814 +v 0.434768 1.799981 -0.137872 +v 0.374416 1.917079 -0.151280 +v 0.349714 2.001132 -0.154634 +v 0.611282 1.599814 -0.278646 +v 0.604132 1.674121 -0.132815 +v 0.583313 1.580479 -0.423823 +v 0.347973 2.140823 -0.227219 +v 0.430611 1.798772 -0.518312 +v 0.371463 1.815847 -0.544950 +v 0.423842 1.881654 -0.528425 +v 0.367647 1.877229 -0.532282 +v 0.404045 1.924808 -0.498587 +v 0.359140 1.907618 -0.509737 +v 0.380767 1.951340 -0.454269 +v 0.354318 1.942381 -0.434140 +v 0.310359 2.134199 -0.458734 +v 0.337693 2.135631 -0.365516 +v 0.194717 1.904192 -0.560406 +v 0.227718 1.782029 -0.566981 +v 0.210665 2.135795 -0.532142 +v 0.290232 1.635684 -0.665025 +v 0.457486 1.627730 -0.572201 +v 0.288728 2.282881 -0.240955 +v 0.278601 2.273607 -0.359993 +v 0.245438 2.265396 -0.459760 +v 0.202357 2.354130 -0.228910 +v 0.200615 2.344693 -0.326432 +v 0.172841 2.337263 -0.403493 +v 0.126711 2.400392 -0.229428 +v 0.129316 2.394350 -0.296820 +v 0.104779 2.391018 -0.338242 +v 0.144549 1.791377 0.633352 +v 0.115621 1.885786 0.549833 +v 0.213136 1.757715 0.518773 +v 0.171056 1.834867 0.468986 +v 0.254886 1.737050 0.372539 +v 0.207076 1.804938 0.364078 +v 0.149741 1.831210 0.386184 +v 0.240678 1.691781 0.413536 +v 0.059284 1.932917 0.456746 +v 0.194280 1.678478 0.478710 +v 0.124802 1.683106 0.570628 +v 0.326104 2.046422 -0.031963 +v 0.323471 2.169918 -0.091303 +v 0.327224 1.960350 0.037032 +v 0.377926 1.847099 0.039789 +v 0.532363 1.714199 0.079780 +v 0.261131 2.073662 0.061288 +v 0.270922 2.030841 0.096912 +v 0.297869 1.865005 0.106829 +v 0.265067 1.849636 0.154519 +v 0.201009 1.862357 0.217382 +v 0.164279 1.918301 0.248809 +v 0.096700 1.953570 0.280515 +v 0.061726 2.008265 0.269652 +v 0.069601 2.064814 0.224850 +v 0.142839 2.075776 0.195998 +v 0.202753 2.089402 0.110056 +v 0.237103 2.031143 0.170219 +v 0.034613 2.026020 0.309002 +v 0.032643 2.068776 0.255449 +v 0.327413 1.722835 0.214258 +v 0.287123 2.288412 -0.166632 +v 0.283469 2.195833 0.008535 +v 0.246301 2.297589 -0.056847 +v 0.256357 2.208662 0.051917 +v 0.312767 2.116656 0.055960 +v 0.228987 2.142449 0.106882 +v 0.147650 2.109724 0.208845 +v 0.192083 2.220325 0.128713 +v 0.054949 2.128282 0.222119 +v 0.093052 2.223406 0.174811 +v 0.171532 2.304138 0.024927 +v 0.093066 2.306800 0.066051 +v 0.056389 2.409917 -0.134063 +v 0.087800 2.372497 -0.039155 +v 0.140708 2.367643 -0.088995 +v 0.098696 2.406209 -0.168724 +v 0.168260 2.362622 -0.141007 +v 0.109397 2.404479 -0.186410 +v 0.175468 2.261446 -0.508733 +v 0.113166 2.332258 -0.455244 +v 0.059624 2.388877 -0.369687 +v 0.664970 1.569244 0.159656 +v 0.502552 1.572820 0.247938 +v 0.386004 1.656990 0.268942 +v 0.416088 1.508308 0.436300 +v 0.332126 1.508318 0.525061 +v 0.518499 1.559354 0.237870 +v 0.438125 1.501487 0.452956 +v 0.349150 1.499763 0.550456 +v 0.151069 1.557444 0.647942 +v 0.139485 1.570605 0.626687 +v 0.528924 1.348225 0.495028 +v 0.654464 1.413929 0.325764 +v 0.710292 1.522034 0.157066 +v 0.759046 1.474779 0.124654 +v 0.715659 1.372870 0.301973 +v 0.587030 1.238865 0.534920 +v 0.223430 1.174905 0.832655 +v 0.423603 1.174610 0.699562 +v 0.264519 1.090276 0.843649 +v 0.471534 1.124158 0.724792 +v 0.623500 1.212523 0.535866 +v 0.762022 1.341576 0.282003 +v 0.687778 1.171086 0.488757 +v 0.574561 1.007025 0.621773 +v 0.326921 0.889927 0.754288 +v 0.360385 0.761720 0.575233 +v 0.626413 0.952733 0.482823 +v 0.749275 1.144118 0.368120 +v 0.803587 1.307760 0.210347 +v 0.361947 0.691049 0.343791 +v 0.627598 0.915807 0.268922 +v 0.775352 1.129668 0.183551 +v 0.763130 1.151843 0.023235 +v 0.627448 0.957243 0.051040 +v 0.390901 0.723750 0.079440 +v 0.413606 0.850018 -0.146581 +v 0.654175 1.053515 -0.146410 +v 0.772203 1.198410 -0.128162 +v 0.669446 1.202225 -0.369024 +v 0.401080 1.100365 -0.444091 +v 0.751318 1.295872 -0.308407 +v 0.395132 1.236345 -0.556580 +v 0.385033 1.410074 -0.658598 +v 0.655511 1.302521 -0.473685 +v 0.725788 1.376750 -0.366664 +v 0.711620 1.441974 -0.409039 +v 0.616036 1.421005 -0.566358 +v 0.345625 1.523682 -0.683890 +v 0.550627 1.503762 -0.575128 +v 0.690995 1.478962 -0.417038 +v 0.731841 1.486719 -0.280430 +v 0.750626 1.448547 -0.269911 +v 0.749222 1.514054 -0.118499 +v 0.775123 1.403957 -0.213535 +v 0.762085 1.496304 -0.082714 +v 0.801792 1.351037 -0.116344 +v 0.778529 1.473085 -0.032552 +v 0.818923 1.315393 0.009473 +v 0.786272 1.460700 0.003253 +v 0.822808 1.308298 0.107611 +v 0.786678 1.453242 0.062267 +v 0.471704 1.549546 0.261580 +v 0.506344 1.927161 -0.459436 +v 0.415422 1.917736 -0.291394 +v 0.407343 0.974284 -0.326785 +v 0.654852 1.127014 -0.263902 +v 0.360583 1.977544 -0.299052 +v 0.295720 0.958652 0.817717 +v 0.532120 1.063474 0.697474 +v 0.343653 0.815542 0.673833 +v 0.600487 0.969597 0.561370 +v 0.361165 0.719127 0.463746 +v 0.627006 0.927012 0.380106 +v 0.376424 0.695303 0.210406 +v 0.627523 0.924429 0.158771 +v 0.148211 1.655268 -0.705423 +v 0.381715 1.636005 -0.628433 +v 0.176512 1.543669 -0.740357 +v 0.457543 1.515541 -0.639558 +v 0.633856 1.492710 -0.503328 +v 0.720349 1.483539 -0.351213 +v 0.740532 1.500386 -0.199464 +v 0.196644 1.414279 -0.715783 +v 0.511052 1.415295 -0.622169 +v 0.677777 1.431580 -0.494767 +v 0.536359 1.266118 -0.522778 +v 0.705162 1.337795 -0.425824 +v 0.747475 1.412467 -0.320384 +v 0.765681 1.482438 -0.195106 +v 0.201802 1.226260 -0.606494 +v 0.546510 1.145498 -0.411921 +v 0.725309 1.245306 -0.342653 +v 0.772803 1.348944 -0.262347 +v 0.784754 1.450613 -0.148057 +v 0.204837 1.062713 -0.481591 +v 0.542257 1.042737 -0.298371 +v 0.208031 0.922029 -0.350986 +v 0.538004 0.949240 -0.143139 +v 0.721069 1.127096 -0.133736 +v 0.796878 1.272809 -0.121888 +v 0.806764 1.411744 -0.072833 +v 0.211225 0.783196 -0.156161 +v 0.519874 0.828169 0.069790 +v 0.709898 1.046713 0.041097 +v 0.800958 1.231188 0.018459 +v 0.819462 1.387225 0.009676 +v 0.199636 0.664392 0.088858 +v 0.512521 0.796895 0.191646 +v 0.192246 0.637878 0.229847 +v 0.505168 0.790322 0.315973 +v 0.716215 1.014240 0.234169 +v 0.809113 1.216370 0.149308 +v 0.821653 1.379795 0.089904 +v 0.772862 1.464010 0.093461 +v 0.184856 0.636064 0.373306 +v 0.504467 0.810376 0.433970 +v 0.184455 0.664214 0.498579 +v 0.503767 0.845250 0.543323 +v 0.702297 1.040467 0.437590 +v 0.786180 1.223413 0.294764 +v 0.184054 0.707183 0.615208 +v 0.481989 0.881337 0.633757 +v 0.175513 0.769909 0.722335 +v 0.460212 0.938419 0.705666 +v 0.638464 1.079314 0.564922 +v 0.728082 1.251571 0.386972 +v 0.166974 0.853629 0.810938 +v 0.422617 1.002320 0.776694 +v 0.151036 0.935646 0.875133 +v 0.375760 1.100494 0.803878 +v 0.553054 1.160265 0.641564 +v 0.695540 1.272550 0.410822 +v 0.135098 1.081883 0.901043 +v 0.330314 1.169453 0.785385 +v 0.515935 1.202105 0.633389 +v 0.659523 1.304344 0.425599 +v 0.752846 1.423754 0.220974 +v 0.114106 1.171437 0.877833 +v 0.776515 1.407778 0.210780 +v 0.811840 1.379520 0.142350 +v 0.591694 1.383194 0.416746 +v 0.441940 1.334843 0.540334 +v 0.077996 1.569803 0.675836 +v 0.072199 1.582858 0.651938 +v 0.233386 1.543392 0.575874 +v 0.247691 1.532535 0.599199 +v 0.393638 1.494879 0.501706 +v 0.374107 1.502567 0.480680 +v 0.446470 1.524474 0.345055 +v 0.471374 1.518499 0.343523 +v 0.222318 1.683315 0.443100 +v 0.166421 1.679191 0.526160 +v 0.063640 1.686848 0.588079 +v 0.072304 1.803078 0.657543 +v 0.057838 1.897863 0.581607 +v 0.143338 1.858210 0.510015 +v 0.178843 1.776965 0.576063 +v 0.230980 1.773413 0.360749 +v 0.192096 1.800223 0.513233 +v 0.161091 1.821519 0.562392 +v 0.130085 1.837978 0.611551 +v 0.065071 1.849866 0.639534 +v 0.294553 1.974870 0.081320 +v 0.160323 2.030761 0.228352 +v 0.074000 2.175844 0.198465 +v 0.169867 2.157767 0.162731 +v 0.242672 2.168297 0.073352 +v 0.298119 2.148987 0.026200 +v 0.115152 2.017553 0.156549 +v 0.168233 2.011273 0.145885 +v 0.228416 2.014419 0.115986 +v 0.263092 2.004510 0.073692 +v 0.269793 1.938484 0.091387 +v 0.259557 1.920020 0.101469 +v 0.208077 1.945140 0.143319 +v 0.167140 1.961150 0.156246 +v 0.119519 1.987425 0.165465 +v 0.104449 2.011727 0.162308 +v 0.491050 1.540186 0.254578 +v 0.682378 1.467981 0.241415 +v 0.553357 1.515768 0.235100 +v 0.353355 1.530083 0.344968 +v 0.361036 1.522618 0.353044 +v 0.411920 1.537542 0.312929 +v 0.294705 1.521548 0.386092 +v 0.301928 1.514683 0.394911 +v 0.236880 1.513234 0.426710 +v 0.243268 1.507065 0.436681 +v 0.167234 1.544988 0.479125 +v 0.172861 1.539757 0.489737 +v 0.096792 1.577687 0.532358 +v 0.101041 1.572603 0.544245 +v 0.048219 1.580862 0.544036 +v 0.050564 1.575805 0.555693 +v 0.075372 1.429359 0.730447 +v 0.077579 1.441815 0.732118 +v 0.146695 1.412952 0.707735 +v 0.150226 1.425272 0.708614 +v 0.245938 1.375512 0.645643 +v 0.250033 1.387999 0.646649 +v 0.321193 1.345109 0.602259 +v 0.357520 1.329366 0.590477 +v 0.361642 1.335331 0.582716 +v 0.354685 1.343030 0.584577 +v 0.258841 1.357163 0.626602 +v 0.258696 1.345987 0.627153 +v 0.164845 1.365243 0.662992 +v 0.164657 1.354172 0.663449 +v 0.085081 1.375099 0.679020 +v 0.084705 1.364243 0.679449 +v 0.206924 1.758658 0.248524 +v 0.203840 1.756872 0.260826 +v 0.231008 1.716982 0.274667 +v 0.236528 1.712670 0.264635 +v 0.230170 1.668782 0.334014 +v 0.232182 1.658131 0.329581 +v 0.234380 1.663298 0.326139 +v 0.261186 1.911589 0.148196 +v 0.259557 1.920020 0.141972 +v 0.203643 1.947085 0.214170 +v 0.206248 1.937778 0.221744 +v 0.274189 1.934370 0.127424 +v 0.268935 1.934305 0.125881 +v 0.268578 1.999341 0.098910 +v 0.265239 2.011732 0.101058 +v 0.263092 2.004510 0.095065 +v 0.164646 1.962320 0.234950 +v 0.164770 1.954229 0.244122 +v 0.119519 1.987425 0.250050 +v 0.115834 1.981958 0.261309 +v 0.104449 2.011727 0.244719 +v 0.094684 2.014434 0.254297 +v 0.111269 2.016805 0.235643 +v 0.130207 2.021955 0.237820 +v 0.110083 2.022812 0.240583 +v 0.453903 1.685838 -0.426531 +v 0.448491 1.687618 -0.433580 +v 0.444922 1.694717 -0.432182 +v 0.449470 1.696971 -0.437579 +v 0.458400 1.704559 -0.342269 +v 0.455644 1.707950 -0.316835 +v 0.453577 1.706793 -0.312981 +v 0.460269 1.699167 -0.309812 +v 0.461900 1.695894 -0.314131 +v 0.436764 2.025000 -0.430550 +v 0.425404 2.018460 -0.436069 +v 0.366637 1.993569 -0.377757 +v 0.364853 1.994687 -0.377773 +v 0.366244 2.006066 -0.371759 +v 0.367149 1.996599 -0.364885 +v 0.373548 1.999894 -0.367202 +v 0.455293 1.993948 -0.524740 +v 0.442851 1.990154 -0.524384 +v 0.451491 1.936017 -0.547976 +v 0.463102 1.938336 -0.548543 +v 0.229144 2.019993 0.174315 +v 0.222347 2.015109 0.169272 +v 0.168557 2.017801 0.224633 +v 0.164452 2.011397 0.217821 +v 0.438245 2.006328 -0.314179 +v 0.431966 2.012270 -0.316657 +v 0.391594 1.982942 -0.272355 +v 0.399161 1.977045 -0.269953 +v 0.476462 2.020567 -0.389573 +v 0.469529 2.027750 -0.392812 +v 0.517302 1.985586 -0.468982 +v 0.514232 1.991978 -0.477904 +v 0.529061 1.939212 -0.492594 +v 0.527004 1.941116 -0.502956 +v 0.542289 1.875339 -0.499459 +v 0.540440 1.874681 -0.509821 +v 0.545883 1.794161 -0.485343 +v 0.543602 1.790577 -0.495266 +v 0.510051 1.736251 -0.438863 +v 0.505032 1.727728 -0.445445 +v 0.357506 1.945762 -0.238077 +v 0.356600 1.947430 -0.226802 +v 0.356361 1.944756 -0.221039 +v 0.359746 1.933246 -0.229314 +v 0.198037 1.644332 0.371466 +v 0.199028 1.634275 0.367445 +v 0.163269 1.635860 0.414519 +v 0.163060 1.625234 0.411001 +v 0.121900 1.626351 0.464214 +v 0.122233 1.615812 0.460782 +v 0.078368 1.628521 0.505479 +v 0.077493 1.618453 0.504378 +v 0.039372 1.627411 0.521702 +v 0.038984 1.616395 0.520365 +v 0.177693 1.797291 0.269876 +v 0.176299 1.804614 0.258979 +v 0.143912 1.842892 0.306014 +v 0.150215 1.832678 0.313399 +v 0.104058 1.860869 0.419256 +v 0.100894 1.861371 0.430130 +v 0.107739 1.855404 0.434648 +v 0.114757 1.849728 0.418386 +v 0.472872 1.865719 -0.555412 +v 0.460813 1.864482 -0.554693 +v 0.481168 1.789156 -0.540103 +v 0.468029 1.789085 -0.540269 +v 0.460364 1.717267 -0.466592 +v 0.452829 1.711922 -0.463266 +v 0.446935 1.719244 -0.473000 +v 0.349038 1.759902 -0.540458 +v 0.352062 1.746346 -0.541589 +v 0.330708 1.756719 -0.543444 +v 0.289384 1.791699 -0.547145 +v 0.302029 1.800033 -0.543755 +v 0.263504 1.872617 -0.524421 +v 0.277199 1.870340 -0.522024 +v 0.290458 1.918326 -0.500290 +v 0.301601 1.910123 -0.500557 +v 0.323757 1.949227 -0.453957 +v 0.327374 1.944936 -0.448085 +v 0.334344 1.941415 -0.447209 +v 0.414571 1.744054 -0.492674 +v 0.418748 1.734059 -0.486546 +v 0.418654 1.729310 -0.478756 +v -0.191822 1.994182 0.184361 +v -0.184688 2.056364 0.166017 +v -0.213100 2.047200 0.152892 +v -0.233862 2.023631 0.144121 +v -0.241412 1.991974 0.142055 +v -0.233727 1.960709 0.147248 +v -0.212865 1.938216 0.158307 +v -0.184416 1.930520 0.172270 +v -0.156005 1.939684 0.185395 +v -0.135242 1.963253 0.194166 +v -0.127692 1.994911 0.196231 +v -0.135378 2.026175 0.191039 +v -0.156240 2.048668 0.179980 +v -0.164929 2.100404 0.122152 +v -0.214140 2.084531 0.099419 +v -0.250101 2.043708 0.084228 +v -0.263178 1.988875 0.080650 +v -0.249866 1.934724 0.089644 +v -0.213733 1.895764 0.108799 +v -0.164459 1.882435 0.132983 +v -0.115248 1.898308 0.155717 +v -0.079286 1.939129 0.170908 +v -0.066209 1.993963 0.174487 +v -0.079521 2.048114 0.165493 +v -0.115655 2.087074 0.146337 +v -0.137838 2.114500 0.064522 +v -0.194661 2.096171 0.038272 +v -0.236186 2.049034 0.020731 +v -0.251286 1.985718 0.016599 +v -0.235915 1.923190 0.026984 +v -0.194191 1.878202 0.049102 +v -0.137294 1.862811 0.077028 +v -0.080471 1.881140 0.103279 +v -0.038946 1.928277 0.120820 +v -0.023845 1.991593 0.124951 +v -0.039217 2.054121 0.114566 +v -0.080941 2.099109 0.092448 +v -0.110674 2.094877 0.008566 +v -0.159884 2.079004 -0.014167 +v -0.195846 2.038182 -0.029358 +v -0.208923 1.983348 -0.032936 +v -0.195611 1.929197 -0.023943 +v -0.159477 1.890237 -0.004787 +v -0.110203 1.876908 0.019398 +v -0.060993 1.892780 0.042131 +v -0.025031 1.933602 0.057322 +v -0.011954 1.988436 0.060900 +v -0.025266 2.042587 0.051907 +v -0.061400 2.081547 0.032751 +v -0.090715 2.046791 -0.030721 +v -0.119128 2.037627 -0.043845 +v -0.139890 2.014058 -0.052616 +v -0.147440 1.982401 -0.054682 +v -0.139754 1.951136 -0.049489 +v -0.118893 1.928643 -0.038430 +v -0.090444 1.920946 -0.024466 +v -0.062032 1.930111 -0.011342 +v -0.041269 1.953680 -0.002570 +v -0.033719 1.985338 -0.000505 +v -0.041405 2.016603 -0.005698 +v -0.062267 2.039096 -0.016757 +v -0.083310 1.983128 -0.042811 +v -0.213817 2.009256 0.165009 +v -0.217668 1.993113 0.163955 +v -0.213748 1.977170 0.166603 +v -0.203109 1.965699 0.172243 +v -0.188603 1.961775 0.179363 +v -0.174115 1.966449 0.186056 +v -0.163526 1.978468 0.190528 +v -0.159677 1.994611 0.191582 +v -0.163597 2.010553 0.188933 +v -0.174235 2.022024 0.183294 +v -0.188741 2.025948 0.176174 +v -0.203230 2.021275 0.169482 +v 0.191822 1.994182 0.184361 +v 0.184688 2.056364 0.166017 +v 0.213100 2.047200 0.152892 +v 0.233862 2.023631 0.144121 +v 0.241412 1.991974 0.142055 +v 0.233727 1.960709 0.147248 +v 0.212865 1.938216 0.158307 +v 0.184416 1.930520 0.172270 +v 0.156005 1.939684 0.185395 +v 0.135242 1.963253 0.194166 +v 0.127692 1.994911 0.196231 +v 0.135378 2.026175 0.191039 +v 0.156240 2.048668 0.179980 +v 0.164929 2.100404 0.122152 +v 0.214140 2.084531 0.099419 +v 0.250101 2.043708 0.084228 +v 0.263178 1.988875 0.080650 +v 0.249866 1.934724 0.089644 +v 0.213733 1.895764 0.108799 +v 0.164459 1.882435 0.132983 +v 0.115248 1.898308 0.155717 +v 0.079286 1.939129 0.170908 +v 0.066209 1.993963 0.174487 +v 0.079521 2.048114 0.165493 +v 0.115655 2.087074 0.146337 +v 0.137838 2.114500 0.064522 +v 0.194661 2.096171 0.038272 +v 0.236186 2.049034 0.020731 +v 0.251286 1.985718 0.016599 +v 0.235915 1.923190 0.026984 +v 0.194191 1.878202 0.049102 +v 0.137294 1.862811 0.077028 +v 0.080471 1.881140 0.103279 +v 0.038946 1.928277 0.120820 +v 0.023845 1.991593 0.124951 +v 0.039217 2.054121 0.114566 +v 0.080941 2.099109 0.092448 +v 0.110674 2.094877 0.008566 +v 0.159884 2.079004 -0.014167 +v 0.195846 2.038182 -0.029358 +v 0.208923 1.983348 -0.032936 +v 0.195611 1.929197 -0.023943 +v 0.159477 1.890237 -0.004787 +v 0.110203 1.876908 0.019398 +v 0.060993 1.892780 0.042131 +v 0.025031 1.933602 0.057322 +v 0.011954 1.988436 0.060900 +v 0.025266 2.042587 0.051907 +v 0.061400 2.081547 0.032751 +v 0.090715 2.046791 -0.030721 +v 0.119128 2.037627 -0.043845 +v 0.139890 2.014058 -0.052616 +v 0.147440 1.982401 -0.054682 +v 0.139754 1.951136 -0.049489 +v 0.118893 1.928643 -0.038430 +v 0.090444 1.920946 -0.024466 +v 0.062032 1.930111 -0.011342 +v 0.041269 1.953680 -0.002570 +v 0.033719 1.985338 -0.000505 +v 0.041405 2.016603 -0.005698 +v 0.062267 2.039096 -0.016757 +v 0.083310 1.983128 -0.042811 +v 0.213817 2.009256 0.165009 +v 0.217668 1.993113 0.163955 +v 0.213748 1.977170 0.166603 +v 0.203109 1.965699 0.172243 +v 0.188603 1.961775 0.179363 +v 0.174115 1.966449 0.186056 +v 0.163526 1.978468 0.190528 +v 0.159677 1.994611 0.191582 +v 0.163597 2.010553 0.188933 +v 0.174235 2.022024 0.183294 +v 0.188741 2.025948 0.176174 +v 0.203230 2.021275 0.169482 +v 0.790843 -0.941798 -0.178996 +v 0.790724 -1.022096 0.171394 +v 0.790724 -0.840746 0.171394 +v 0.790835 -0.840746 -0.158250 +v 0.262309 -1.217591 0.558970 +v 0.262299 -1.417026 0.588515 +v 0.262309 -0.840689 0.558970 +v 0.096409 -0.515307 -0.164999 +v 0.176564 -0.515313 -0.151812 +v 0.238485 -0.515328 -0.114556 +v 0.290267 -0.515328 -0.040555 +v 0.290227 -0.515328 0.080437 +v 0.238397 -0.515328 0.143361 +v 0.176444 -0.515313 0.201982 +v 0.096278 -0.515307 0.222691 +v 0.262688 -0.945065 -0.563779 +v 0.262665 -0.840689 -0.497300 +v 0.262742 -1.210205 -0.726282 +v 0.262742 -1.431799 -0.726282 +v 0.262703 -1.646008 -0.608099 +v 0.262600 -1.727260 -0.305251 +v 0.262468 -1.697714 0.086233 +v 0.262338 -1.586917 0.470332 +v 0.480867 -1.651029 0.071141 +v 0.480989 -1.677992 -0.286115 +v 0.480749 -1.549919 0.364306 +v 0.480713 -1.394884 0.461361 +v 0.480722 -1.212886 0.437097 +v 0.480722 -0.840704 0.502545 +v 0.481068 -0.966839 -0.522038 +v 0.481047 -0.840704 -0.461371 +v 0.481118 -1.206145 -0.670333 +v 0.481118 -1.408365 -0.670333 +v 0.481081 -1.603845 -0.562481 +v 0.649804 -1.342083 -0.512200 +v 0.649797 -1.156924 -0.495856 +v 0.649777 -1.484589 -0.433576 +v 0.649708 -1.538643 -0.232103 +v 0.649621 -1.518986 0.028338 +v 0.649535 -1.445276 0.240307 +v 0.649507 -1.332255 0.311061 +v 0.649515 -1.199577 0.293372 +v 0.649515 -0.840746 0.293372 +v 0.649762 -0.947090 -0.391848 +v 0.649751 -0.840746 -0.359866 +v 0.815688 -1.050080 -0.229704 +v 0.741764 -1.180644 -0.229704 +v 0.719175 -1.281132 -0.192828 +v 0.719146 -1.319248 -0.098314 +v 0.719108 -1.305387 0.023862 +v 0.741650 -1.253411 0.143738 +v 0.741638 -1.147102 0.180621 +v 0.235435 -0.692714 0.501230 +v 0.235755 -0.692714 -0.446784 +v 0.431755 -0.692728 -0.414537 +v 0.583169 -0.692766 -0.323436 +v 0.709792 -0.692766 -0.142483 +v 0.709693 -0.692766 0.153376 +v 0.582956 -0.692766 0.307244 +v 0.431463 -0.692728 0.450587 +v 0.407673 -0.571387 0.205197 +v 0.496301 -0.571387 0.097596 +v 0.301733 -0.571361 0.305438 +v 0.164649 -0.571351 0.340852 +v 0.164873 -0.571351 -0.322100 +v 0.301937 -0.571361 -0.299550 +v 0.407822 -0.571387 -0.235841 +v 0.496372 -0.571387 -0.109300 +# 3618 vertices + +# 0 vertex parms + +# 0 texture vertices + +# 0 normals + +g shoe1l +usemtl black +s 1 +f 29 24 40 48 +f 118 121 120 58 +f 119 114 116 118 +f 115 116 114 113 +f 105 97 98 +f 94 95 89 90 +f 83 90 89 84 +f 87 88 86 79 +f 82 76 75 81 +f 76 69 70 75 +f 67 71 70 66 +f 20 66 65 21 +f 61 46 44 60 +f 51 55 54 49 +f 48 49 47 29 +f 43 40 39 42 +f 33 34 28 +f 28 9 7 27 +f 3 4 1 2 +f 25 3 2 24 +f 30 25 24 29 +f 11 9 28 34 +f 42 39 38 41 +f 29 47 45 30 +f 49 54 53 47 +f 60 44 45 52 +f 46 62 33 32 +f 66 70 69 65 +f 75 70 71 74 +f 80 74 77 79 +f 79 86 85 80 +f 68 15 14 +f 88 93 92 86 +f 93 98 97 92 +f 100 94 96 103 +f 115 109 108 +f 50 43 114 119 +f 120 63 59 58 +f 113 42 41 110 +f 63 64 61 60 52 53 54 55 57 59 +f 48 40 43 50 +f 119 118 58 56 +f 116 115 108 117 +f 114 43 42 113 +f 97 105 103 96 +f 91 96 94 90 +f 85 91 90 83 +f 79 77 78 87 +f 83 84 82 81 +f 72 77 74 71 +f 68 72 71 67 +f 18 67 66 20 +f 61 64 62 46 +f 56 57 55 51 +f 50 51 49 48 +f 30 45 44 31 +f 39 2 1 38 +f 32 27 26 31 +f 27 7 5 26 +f 5 6 4 3 +f 26 5 3 25 +f 31 26 25 30 +f 40 24 2 39 +f 46 32 31 44 +f 47 53 52 45 +f 58 59 57 56 +f 27 32 33 28 +f 67 18 15 68 +f 14 73 72 68 +f 73 78 77 72 +f 80 85 83 81 +f 81 75 74 80 +f 86 92 91 85 +f 92 97 96 91 +f 94 100 99 95 +f 113 110 109 115 +f 50 119 56 51 +f 118 116 117 121 +g shoe2l +usemtl white +s 2 +f 173 175 174 +f 23 112 37 36 35 +f 21 99 102 22 +f 101 104 111 182 183 178 179 +f 108 109 106 107 +f 101 102 99 100 +f 38 1 164 185 +f 36 170 171 35 +f 6 168 163 4 +f 18 20 19 17 +f 17 12 15 18 +f 9 10 8 7 +f 9 11 10 +f 16 12 17 +f 21 22 19 20 +f 166 175 172 162 +f 165 169 176 184 +f 103 104 101 100 +f 110 111 106 109 +f 112 102 101 179 180 +f 99 21 65 69 89 95 +f 178 180 179 +f 166 168 167 +f 112 23 22 102 +f 182 111 110 41 181 +f 98 107 106 105 +f 183 184 176 178 +f 35 171 173 23 +f 164 1 4 163 +f 6 8 16 167 168 +f 14 15 12 13 +f 7 8 6 5 +f 11 13 12 10 +f 167 16 17 19 174 175 166 +f 23 173 174 19 22 +f 162 172 169 165 +f 37 177 170 36 +f 41 38 185 181 +f 105 106 104 103 +f 111 104 106 +f 177 37 112 180 +f 12 16 8 10 +f 89 69 76 82 84 +f 181 183 182 +g shoe3l +usemtl dkgrey +s 24 +f 143 150 151 142 +f 149 144 145 146 147 148 +f 141 152 153 154 +f 142 151 152 141 +f 144 149 150 143 +s 6 +f 13 11 139 138 +f 87 78 135 134 +f 107 98 131 130 +f 120 121 127 126 +f 33 62 123 122 +f 63 120 126 125 +f 108 107 130 129 +f 88 87 134 133 +f 14 13 138 137 +f 11 34 140 139 +f 78 73 136 135 +f 98 93 132 131 +f 121 117 128 127 +f 62 64 124 123 +f 64 63 125 124 +f 117 108 129 128 +f 93 88 133 132 +f 73 14 137 136 +f 34 33 122 140 +s 23 +f 136 137 154 157 156 +f 138 139 142 141 +f 135 136 156 155 +f 137 138 141 154 +f 139 140 143 142 +f 140 122 144 143 +s 21 +f 122 123 145 144 +f 125 126 148 147 +f 123 124 146 145 +f 124 125 147 146 +s 22 +f 131 132 159 158 153 +f 127 128 150 149 +f 128 129 151 150 +f 130 131 153 152 +f 126 127 149 148 +f 129 130 152 151 +s off +f 134 135 155 161 +f 133 134 161 160 +f 156 159 160 161 155 +f 157 158 159 156 +f 132 133 160 159 +f 154 153 158 157 +g shoe4l +usemtl black +f 168 166 191 190 +s 30 +f 187 188 193 194 +f 189 190 191 192 +f 194 195 186 187 +f 188 189 192 193 +s 31 +f 197 198 205 196 +f 199 200 203 204 +f 198 199 204 205 +f 200 201 202 203 +s 27 +f 164 163 189 188 +f 185 164 188 187 +f 163 168 190 189 +f 181 185 187 186 +s 26 +f 162 165 193 192 +f 165 184 194 193 +f 166 162 192 191 +f 184 183 195 194 +s 17 +f 180 178 202 201 +f 183 181 186 195 +s 1 +f 175 173 197 196 +s 29 +f 173 171 198 197 +f 177 180 201 200 +f 171 170 199 198 +f 170 177 200 199 +s 28 +f 169 172 205 204 +f 176 169 204 203 +f 172 175 196 205 +f 178 176 203 202 +g lowlegl +usemtl dkblue_pure +s 1 +f 210 208 238 253 +f 218 216 250 249 +f 226 224 246 245 +f 234 232 242 241 +f 237 236 206 207 +f 229 228 230 231 +f 221 220 222 223 +f 213 212 214 215 +f 207 206 208 209 +f 215 214 216 217 +f 223 222 224 225 +f 231 230 232 233 +f 208 206 239 238 +f 232 230 243 242 +f 224 222 247 246 +f 216 214 251 250 +f 248 249 268 267 +f 212 210 253 252 +f 220 218 249 248 +f 228 226 245 244 +f 236 234 241 240 +f 235 234 236 237 +f 227 226 228 229 +f 219 218 220 221 +f 211 210 212 213 +f 209 208 210 211 +f 217 216 218 219 +f 225 224 226 227 +f 233 232 234 235 +f 206 236 240 239 +f 230 228 244 243 +f 222 220 248 247 +f 214 212 252 251 +f 267 268 286 287 +s 2 +f 269 249 250 +f 286 269 272 271 +f 263 264 283 282 +f 259 260 279 278 +f 255 256 275 274 +f 246 247 266 265 +f 242 243 262 261 +f 238 239 258 257 +f 284 285 270 271 272 273 274 275 276 277 278 279 280 281 282 283 +f 253 238 257 256 +f 241 242 261 260 +f 245 246 265 264 +f 268 269 286 +f 256 257 276 275 +f 260 261 280 279 +f 264 265 284 283 +f 287 286 271 270 +f 248 266 247 +f 266 267 287 +f 262 263 282 281 +f 258 259 278 277 +f 254 255 274 273 +f 250 251 254 269 +f 243 244 263 262 +f 239 240 259 258 +f 251 252 255 254 +f 252 253 256 255 +f 240 241 260 259 +f 244 245 264 263 +f 269 254 273 272 +f 257 258 277 276 +f 261 262 281 280 +f 265 266 285 284 +f 266 287 270 285 +s off +f 266 248 267 +f 249 269 268 +f 235 237 207 209 211 213 215 217 219 221 223 225 227 229 231 233 +g uplegl +s 6 +f 395 399 315 313 +f 391 396 291 289 +f 388 387 299 297 +f 384 392 307 305 +f 348 349 368 383 +f 344 345 380 379 +f 340 341 376 375 +f 336 337 372 371 +f 332 333 352 367 +f 328 329 364 363 +f 324 325 360 359 +f 320 321 356 355 +f 317 319 336 351 +f 309 311 348 347 +f 301 303 344 343 +f 293 295 340 339 +f 292 290 320 335 +f 300 298 332 331 +f 308 306 328 327 +f 316 314 324 323 +f 398 316 318 397 +f 393 308 310 394 +f 385 300 302 386 +f 390 292 294 389 +f 396 290 292 390 +f 387 298 300 385 +f 392 306 308 393 +f 399 314 316 398 +f 290 288 321 320 +f 314 312 325 324 +f 306 304 329 328 +f 298 296 333 332 +f 319 289 337 336 +f 295 297 341 340 +f 303 305 345 344 +f 311 313 349 348 +f 333 334 353 352 +f 321 322 357 356 +f 325 326 361 360 +f 329 330 365 364 +f 349 350 369 368 +f 337 338 373 372 +f 341 342 377 376 +f 345 346 381 380 +f 394 395 313 311 +f 386 384 305 303 +f 389 388 297 295 +f 397 391 289 319 +f 399 398 317 315 +f 396 390 293 291 +f 387 385 301 299 +f 392 393 309 307 +f 347 348 383 382 +f 343 344 379 378 +f 339 340 375 374 +f 351 336 371 370 +f 331 332 367 366 +f 327 328 363 362 +f 323 324 359 358 +f 335 320 355 354 +f 315 317 351 350 +f 307 309 347 346 +f 299 301 343 342 +f 291 293 339 338 +f 294 292 335 334 +f 302 300 331 330 +f 310 308 327 326 +f 318 316 323 322 +f 397 318 288 391 +f 394 310 312 395 +f 386 302 304 384 +f 389 294 296 388 +f 391 288 290 396 +f 388 296 298 387 +f 384 304 306 392 +f 395 312 314 399 +f 288 318 322 321 +f 312 310 326 325 +f 304 302 330 329 +f 296 294 334 333 +f 289 291 338 337 +f 297 299 342 341 +f 305 307 346 345 +f 313 315 350 349 +f 334 335 354 353 +f 322 323 358 357 +f 326 327 362 361 +f 330 331 366 365 +f 350 351 370 369 +f 338 339 374 373 +f 342 343 378 377 +f 346 347 382 381 +f 393 394 311 309 +f 385 386 303 301 +f 390 389 295 293 +f 398 397 319 317 +s off +f 366 367 352 353 354 355 356 357 358 359 360 361 362 363 364 365 +f 382 383 368 369 370 371 372 373 374 375 376 377 378 379 380 381 +g lowarml +s 1 +f 442 460 441 +f 460 461 481 +f 456 457 476 475 +f 452 453 472 471 +f 448 449 468 467 +f 444 445 448 463 +f 440 441 460 459 +f 436 437 456 455 +f 432 433 452 451 +f 404 402 432 447 +f 412 410 444 443 +f 420 418 440 439 +f 428 426 436 435 +f 478 479 464 465 466 467 468 469 470 471 472 473 474 475 476 477 +f 425 424 426 427 +f 417 416 418 419 +f 409 408 410 411 +f 401 400 402 403 +f 407 406 408 409 +f 415 414 416 417 +f 423 422 424 425 +f 431 430 400 401 +f 430 428 435 434 +f 422 420 439 438 +f 414 412 443 442 +f 406 404 447 446 +f 447 432 451 450 +f 435 436 455 454 +f 439 440 459 458 +f 443 463 462 +f 463 448 467 466 +f 451 452 471 470 +f 455 456 475 474 +f 459 460 479 478 +f 460 481 464 479 +f 463 443 444 +f 480 463 466 465 +f 457 458 477 476 +f 453 454 473 472 +f 449 450 469 468 +f 461 462 480 481 +f 460 442 461 +f 437 438 457 456 +f 433 434 453 452 +f 445 446 449 448 +f 410 408 445 444 +f 418 416 441 440 +f 426 424 437 436 +f 402 400 433 432 +f 427 426 428 429 +f 419 418 420 421 +f 411 410 412 413 +f 403 402 404 405 +f 405 404 406 407 +f 413 412 414 415 +f 421 420 422 423 +f 429 428 430 431 +f 400 430 434 433 +f 424 422 438 437 +f 416 414 442 441 +f 408 406 446 445 +f 446 447 450 449 +f 434 435 454 453 +f 438 439 458 457 +f 442 443 462 461 +f 462 463 480 +f 450 451 470 469 +f 454 455 474 473 +f 458 459 478 477 +f 481 480 465 464 +s off +f 425 427 496 495 +f 417 419 492 491 +f 409 411 488 487 +f 401 403 484 483 +f 403 405 485 484 +f 411 413 489 488 +f 419 421 493 492 +f 427 429 497 496 +f 423 425 495 494 +f 415 417 491 490 +f 407 409 487 486 +f 431 401 483 482 +f 405 407 486 485 +f 413 415 490 489 +f 421 423 494 493 +f 429 431 482 497 +g sleavel +usemtl white +f 492 493 512 511 +f 488 489 508 507 +f 484 485 504 503 +f 496 497 500 499 +f 495 496 499 498 +f 483 484 503 502 +f 487 488 507 506 +f 491 492 511 510 +f 493 494 513 512 +f 489 490 509 508 +f 485 486 505 504 +f 497 482 501 500 +f 512 513 498 499 500 501 502 503 504 505 506 507 508 509 510 511 +f 482 483 502 501 +f 486 487 506 505 +f 490 491 510 509 +f 494 495 498 513 +g handl +usemtl skin +s 1 +f 704 703 770 771 +f 702 701 714 769 +f 750 768 745 747 +f 743 742 692 761 +f 766 765 764 767 +f 756 763 762 754 +f 691 690 759 760 +f 724 727 757 758 +f 751 735 739 753 +f 747 745 736 738 +f 744 719 718 722 +f 740 741 742 737 +f 734 736 739 735 +f 731 730 732 726 +f 723 726 727 724 +f 716 719 720 715 +f 716 709 712 717 +f 699 707 700 +f 677 676 711 706 +f 700 707 708 +f 695 696 703 704 +f 698 681 682 699 +f 694 683 679 695 +f 687 686 688 689 +f 666 659 679 683 +f 659 658 660 678 679 +f 648 649 674 675 +f 652 654 670 671 +f 657 635 665 667 +f 644 645 663 662 +f 637 638 658 659 +f 654 630 631 655 +f 652 653 654 +f 650 643 589 651 +f 647 646 548 549 +f 644 546 545 645 +f 636 642 592 587 +f 639 585 640 +f 633 636 637 +f 632 631 623 621 +f 617 622 629 625 +f 612 611 624 622 +f 612 616 602 603 +f 615 618 619 614 +f 614 613 607 608 +f 606 604 598 597 +f 605 606 597 596 +f 593 594 595 596 597 598 599 600 +f 590 578 577 591 +f 582 583 585 586 +f 581 576 571 582 +f 574 573 577 578 +f 563 562 574 575 +f 553 568 561 554 +f 558 557 564 565 +f 553 554 555 556 557 558 559 560 +f 543 542 550 549 +f 538 537 545 546 +f 528 541 542 529 +f 533 536 537 538 +f 527 535 528 522 +f 521 529 530 523 +f 518 524 525 519 +f 514 515 516 517 518 519 520 +f 517 523 524 518 +f 522 528 529 521 +f 527 532 534 535 +f 527 514 520 526 532 +f 528 535 540 541 +f 531 544 537 536 +f 544 543 549 548 +f 552 540 539 547 +f 557 556 563 564 +f 567 568 553 560 +f 568 572 573 561 +f 576 567 566 571 +f 580 572 576 581 +f 584 569 575 579 +f 588 584 579 589 +f 590 589 579 578 +f 603 599 598 604 +f 593 601 608 594 +f 605 607 613 609 +f 616 617 618 615 +f 612 622 617 616 +f 611 610 623 624 +f 620 619 627 628 +f 632 621 620 628 +f 625 636 633 +f 638 586 585 639 +f 636 625 629 642 +f 644 641 547 546 +f 648 550 551 649 +f 649 551 643 650 +f 652 591 653 +f 653 591 592 642 +f 628 627 635 657 +f 641 644 662 661 +f 666 664 634 633 +f 654 655 669 670 +f 649 650 673 674 +f 645 646 677 663 +f 681 662 663 682 +f 685 684 686 687 +f 684 683 694 686 +f 697 680 681 698 +f 696 697 702 703 +f 663 677 706 682 +f 712 711 676 675 +f 682 706 707 699 +f 715 710 709 716 +f 717 718 719 716 +f 720 723 724 725 +f 728 729 730 731 +f 736 734 737 738 +f 740 729 670 669 +f 723 720 719 744 +f 736 745 746 739 +f 733 735 751 752 +f 751 690 689 752 +f 757 688 705 758 +f 754 762 759 753 +f 761 760 765 766 +f 667 693 741 668 +f 745 768 755 746 +f 573 574 562 561 +f 703 702 769 770 +f 705 704 771 758 +f 769 714 713 721 +f 725 721 715 720 +f 748 743 761 766 +f 693 692 742 741 +f 763 764 765 762 +f 692 691 760 761 +f 727 733 752 757 +f 753 739 746 754 +f 747 738 743 748 +f 722 728 731 744 +f 741 740 669 668 +f 734 732 730 737 +f 726 732 733 727 +f 728 722 672 671 +f 721 713 710 715 +f 717 712 675 674 +f 713 714 700 +f 706 711 708 707 +f 700 708 709 710 +f 694 695 704 705 +f 698 699 700 701 +f 695 679 678 696 +f 687 689 690 691 +f 664 666 683 684 +f 660 661 680 678 +f 647 648 675 676 +f 651 652 671 672 +f 656 657 667 668 +f 635 634 664 665 +f 638 639 660 658 +f 655 631 632 656 +f 654 653 630 +f 651 589 590 +f 551 552 643 +f 645 545 548 646 +f 640 585 588 643 +f 639 640 641 +f 637 636 587 +f 626 625 633 634 +f 622 624 630 629 +f 618 617 625 626 +f 610 611 604 606 +f 614 619 620 613 +f 615 614 608 601 +f 609 610 606 605 +f 595 607 605 596 +f 601 593 600 602 +f 591 577 580 592 +f 581 582 586 587 +f 582 571 570 583 +f 575 574 578 579 +f 564 563 575 569 +f 564 569 570 565 +f 559 558 565 566 +f 561 562 555 554 +f 542 541 551 550 +f 538 546 547 539 +f 529 542 543 530 +f 534 533 538 539 +f 526 525 536 533 +f 523 530 531 524 +f 519 525 526 520 +f 521 516 515 522 +f 521 523 517 516 +f 514 527 522 515 +f 532 526 533 534 +f 536 525 524 531 +f 535 534 539 540 +f 530 543 544 531 +f 537 544 548 545 +f 551 541 540 552 +f 556 555 562 563 +f 560 559 566 567 +f 565 570 571 566 +f 572 568 567 576 +f 573 572 580 577 +f 583 570 569 584 +f 583 584 588 585 +f 592 580 581 587 +f 602 600 599 603 +f 594 608 607 595 +f 603 604 611 612 +f 602 616 615 601 +f 613 620 621 609 +f 621 623 610 609 +f 619 618 626 627 +f 630 624 623 631 +f 627 626 634 635 +f 637 587 586 638 +f 641 640 547 +f 640 643 552 547 +f 647 549 550 648 +f 643 588 589 +f 651 590 591 652 +f 630 653 642 629 +f 656 632 628 657 +f 639 641 661 660 +f 659 666 633 637 +f 655 656 668 669 +f 650 651 672 673 +f 646 647 676 677 +f 680 661 662 681 +f 665 664 684 685 +f 685 687 691 692 693 +f 696 678 680 697 +f 697 698 701 702 +f 686 694 705 688 +f 709 708 711 712 +f 700 710 713 +f 700 714 701 +f 674 673 718 717 +f 673 672 722 718 +f 671 670 729 728 +f 733 732 734 735 +f 737 730 729 740 +f 738 737 742 743 +f 744 731 726 723 +f 749 750 747 748 +f 754 746 755 756 +f 757 752 689 688 +f 759 690 751 753 +f 762 765 760 759 +f 665 685 693 667 +f 749 748 766 767 +f 749 767 764 763 756 755 768 750 +f 769 721 725 770 +f 758 771 770 725 724 +g uparml +usemtl dkblue_pure +s 52 +f 879 883 799 797 +f 875 880 775 773 +f 872 871 783 781 +f 868 876 791 789 +f 832 833 852 867 +f 828 829 864 863 +f 824 825 860 859 +f 820 821 856 855 +f 816 817 836 851 +f 812 813 848 847 +f 808 809 844 843 +f 804 805 840 839 +f 801 803 820 835 +f 793 795 832 831 +f 785 787 828 827 +f 777 779 824 823 +f 776 774 804 819 +f 784 782 816 815 +f 792 790 812 811 +f 800 798 808 807 +f 882 800 802 881 +f 877 792 794 878 +f 869 784 786 870 +f 874 776 778 873 +f 880 774 776 874 +f 871 782 784 869 +f 876 790 792 877 +f 883 798 800 882 +f 774 772 805 804 +f 798 796 809 808 +f 790 788 813 812 +f 782 780 817 816 +f 803 773 821 820 +f 779 781 825 824 +f 787 789 829 828 +f 795 797 833 832 +f 817 818 837 836 +f 805 806 841 840 +f 809 810 845 844 +f 813 814 849 848 +f 833 834 853 852 +f 821 822 857 856 +f 825 826 861 860 +f 829 830 865 864 +f 878 879 797 795 +f 870 868 789 787 +f 873 872 781 779 +f 881 875 773 803 +f 883 882 801 799 +f 880 874 777 775 +f 871 869 785 783 +f 876 877 793 791 +f 831 832 867 866 +f 827 828 863 862 +f 823 824 859 858 +f 835 820 855 854 +f 815 816 851 850 +f 811 812 847 846 +f 807 808 843 842 +f 819 804 839 838 +f 799 801 835 834 +f 791 793 831 830 +f 783 785 827 826 +f 775 777 823 822 +f 778 776 819 818 +f 786 784 815 814 +f 794 792 811 810 +f 802 800 807 806 +f 881 802 772 875 +f 878 794 796 879 +f 870 786 788 868 +f 873 778 780 872 +f 875 772 774 880 +f 872 780 782 871 +f 868 788 790 876 +f 879 796 798 883 +f 772 802 806 805 +f 796 794 810 809 +f 788 786 814 813 +f 780 778 818 817 +f 773 775 822 821 +f 781 783 826 825 +f 789 791 830 829 +f 797 799 834 833 +f 818 819 838 837 +f 806 807 842 841 +f 810 811 846 845 +f 814 815 850 849 +f 834 835 854 853 +f 822 823 858 857 +f 826 827 862 861 +f 830 831 866 865 +f 877 878 795 793 +f 869 870 787 785 +f 874 873 779 777 +f 882 881 803 801 +s off +f 850 851 836 837 838 839 840 841 842 843 844 845 846 847 848 849 +f 866 867 852 853 854 855 856 857 858 859 860 861 862 863 864 865 +g shoe1r +usemtl black +s 1 +f 931 923 907 912 +f 941 1003 1004 1001 +f 1001 999 997 1002 +f 996 997 999 998 +f 981 980 988 +f 973 972 978 977 +f 967 972 973 966 +f 962 969 971 970 +f 964 958 959 965 +f 958 953 952 959 +f 949 953 954 950 +f 904 948 949 903 +f 943 927 929 944 +f 932 937 938 934 +f 912 930 932 931 +f 925 922 923 926 +f 911 917 916 +f 910 890 892 911 +f 885 884 887 886 +f 907 885 886 908 +f 912 907 908 913 +f 917 911 892 894 +f 924 921 922 925 +f 913 928 930 912 +f 930 936 937 932 +f 935 928 927 943 +f 915 916 945 929 +f 948 952 953 949 +f 957 954 953 958 +f 962 960 957 963 +f 963 968 969 962 +f 897 898 951 +f 969 975 976 971 +f 975 980 981 976 +f 986 979 977 983 +f 991 992 998 +f 1002 997 926 933 +f 941 942 946 1003 +f 993 924 925 996 +f 942 940 938 937 936 935 943 944 947 946 +f 933 926 923 931 +f 939 941 1001 1002 +f 1000 991 998 999 +f 996 925 926 997 +f 979 986 988 980 +f 973 977 979 974 +f 966 973 974 968 +f 970 961 960 962 +f 964 965 967 966 +f 954 957 960 955 +f 950 954 955 951 +f 903 949 950 901 +f 929 945 947 944 +f 934 938 940 939 +f 931 932 934 933 +f 914 927 928 913 +f 921 884 885 922 +f 914 909 910 915 +f 909 888 890 910 +f 886 887 889 888 +f 908 886 888 909 +f 913 908 909 914 +f 922 885 907 923 +f 927 914 915 929 +f 928 935 936 930 +f 939 940 942 941 +f 911 916 915 910 +f 951 898 901 950 +f 951 955 956 897 +f 955 960 961 956 +f 964 966 968 963 +f 963 957 958 964 +f 968 974 975 969 +f 974 979 980 975 +f 978 982 983 977 +f 998 992 993 996 +f 934 939 1002 933 +f 1004 1000 999 1001 +g shoe2r +usemtl white +s 2 +f 1057 1058 1056 +f 918 919 920 995 906 +f 905 985 982 904 +f 1062 1061 1066 1065 994 987 984 +f 990 989 992 991 +f 983 982 985 984 +f 1068 1047 884 921 +f 918 1054 1053 919 +f 887 1046 1051 889 +f 900 902 903 901 +f 901 898 895 900 +f 890 891 893 892 +f 893 894 892 +f 900 895 899 +f 903 902 905 904 +f 1045 1055 1058 1049 +f 1067 1059 1052 1048 +f 983 984 987 986 +f 992 989 994 993 +f 1063 1062 984 985 995 +f 978 972 952 948 904 982 +f 1062 1063 1061 +f 1050 1051 1049 +f 985 905 906 995 +f 1064 924 993 994 1065 +f 988 989 990 981 +f 1061 1059 1067 1066 +f 906 1056 1054 918 +f 1046 887 884 1047 +f 1051 1050 899 891 889 +f 896 895 898 897 +f 888 889 891 890 +f 893 895 896 894 +f 1049 1058 1057 902 900 899 1050 +f 905 902 1057 1056 906 +f 1048 1052 1055 1045 +f 919 1053 1060 920 +f 1064 1068 921 924 +f 986 987 989 988 +f 989 987 994 +f 1063 995 920 1060 +f 893 891 899 895 +f 967 965 959 952 972 +f 1065 1066 1064 +g shoe3r +usemtl dkgrey +s 24 +f 1025 1034 1033 1026 +f 1031 1030 1029 1028 1027 1032 +f 1037 1036 1035 1024 +f 1024 1035 1034 1025 +f 1026 1033 1032 1027 +s 6 +f 1021 1022 894 896 +f 1017 1018 961 970 +f 1013 1014 981 990 +f 1009 1010 1004 1003 +f 1005 1006 945 916 +f 1008 1009 1003 946 +f 1012 1013 990 991 +f 1016 1017 970 971 +f 1020 1021 896 897 +f 1022 1023 917 894 +f 1018 1019 956 961 +f 1014 1015 976 981 +f 1010 1011 1000 1004 +f 1006 1007 947 945 +f 1007 1008 946 947 +f 1011 1012 991 1000 +f 1015 1016 971 976 +f 1019 1020 897 956 +f 1023 1005 916 917 +s 23 +f 1039 1040 1037 1020 1019 +f 1024 1025 1022 1021 +f 1038 1039 1019 1018 +f 1037 1024 1021 1020 +f 1025 1026 1023 1022 +f 1026 1027 1005 1023 +s 21 +f 1027 1028 1006 1005 +f 1030 1031 1009 1008 +f 1028 1029 1007 1006 +f 1029 1030 1008 1007 +s 22 +f 1036 1041 1042 1015 1014 +f 1032 1033 1011 1010 +f 1033 1034 1012 1011 +f 1035 1036 1014 1013 +f 1031 1032 1010 1009 +f 1034 1035 1013 1012 +s off +f 1044 1038 1018 1017 +f 1043 1044 1017 1016 +f 1038 1044 1043 1042 1039 +f 1039 1042 1041 1040 +f 1042 1043 1016 1015 +f 1040 1041 1036 1037 +g shoe4r +usemtl black +f 1073 1074 1049 1051 +s 30 +f 1077 1076 1071 1070 +f 1075 1074 1073 1072 +f 1070 1069 1078 1077 +f 1076 1075 1072 1071 +s 31 +f 1079 1088 1081 1080 +f 1087 1086 1083 1082 +f 1088 1087 1082 1081 +f 1086 1085 1084 1083 +s 27 +f 1071 1072 1046 1047 +f 1070 1071 1047 1068 +f 1072 1073 1051 1046 +f 1069 1070 1068 1064 +s 26 +f 1075 1076 1048 1045 +f 1076 1077 1067 1048 +f 1074 1075 1045 1049 +f 1077 1078 1066 1067 +s 17 +f 1084 1085 1061 1063 +f 1078 1069 1064 1066 +s 1 +f 1079 1080 1056 1058 +s 29 +f 1080 1081 1054 1056 +f 1083 1084 1063 1060 +f 1081 1082 1053 1054 +f 1082 1083 1060 1053 +s 28 +f 1087 1088 1055 1052 +f 1086 1087 1052 1059 +f 1088 1079 1058 1055 +f 1085 1086 1059 1061 +g lowlegr +usemtl dkblue_pure +s 1 +f 1136 1121 1091 1093 +f 1132 1133 1099 1101 +f 1128 1129 1107 1109 +f 1124 1125 1115 1117 +f 1090 1089 1119 1120 +f 1114 1113 1111 1112 +f 1106 1105 1103 1104 +f 1098 1097 1095 1096 +f 1092 1091 1089 1090 +f 1100 1099 1097 1098 +f 1108 1107 1105 1106 +f 1116 1115 1113 1114 +f 1121 1122 1089 1091 +f 1125 1126 1113 1115 +f 1129 1130 1105 1107 +f 1133 1134 1097 1099 +f 1150 1151 1132 1131 +f 1135 1136 1093 1095 +f 1131 1132 1101 1103 +f 1127 1128 1109 1111 +f 1123 1124 1117 1119 +f 1120 1119 1117 1118 +f 1112 1111 1109 1110 +f 1104 1103 1101 1102 +f 1096 1095 1093 1094 +f 1094 1093 1091 1092 +f 1102 1101 1099 1100 +f 1110 1109 1107 1108 +f 1118 1117 1115 1116 +f 1122 1123 1119 1089 +f 1126 1127 1111 1113 +f 1130 1131 1103 1105 +f 1134 1135 1095 1097 +f 1170 1169 1151 1150 +s 2 +f 1133 1132 1152 +f 1154 1155 1152 1169 +f 1165 1166 1147 1146 +f 1161 1162 1143 1142 +f 1157 1158 1139 1138 +f 1148 1149 1130 1129 +f 1144 1145 1126 1125 +f 1140 1141 1122 1121 +f 1166 1165 1164 1163 1162 1161 1160 1159 1158 1157 1156 1155 1154 1153 1168 1167 +f 1139 1140 1121 1136 +f 1143 1144 1125 1124 +f 1147 1148 1129 1128 +f 1169 1152 1151 +f 1158 1159 1140 1139 +f 1162 1163 1144 1143 +f 1166 1167 1148 1147 +f 1153 1154 1169 1170 +f 1130 1149 1131 +f 1170 1150 1149 +f 1164 1165 1146 1145 +f 1160 1161 1142 1141 +f 1156 1157 1138 1137 +f 1152 1137 1134 1133 +f 1145 1146 1127 1126 +f 1141 1142 1123 1122 +f 1137 1138 1135 1134 +f 1138 1139 1136 1135 +f 1142 1143 1124 1123 +f 1146 1147 1128 1127 +f 1155 1156 1137 1152 +f 1159 1160 1141 1140 +f 1163 1164 1145 1144 +f 1167 1168 1149 1148 +f 1168 1153 1170 1149 +s off +f 1150 1131 1149 +f 1151 1152 1132 +f 1116 1114 1112 1110 1108 1106 1104 1102 1100 1098 1096 1094 1092 1090 1120 1118 +g uplegr +s 6 +f 1196 1198 1282 1278 +f 1172 1174 1279 1274 +f 1180 1182 1270 1271 +f 1188 1190 1275 1267 +f 1266 1251 1232 1231 +f 1262 1263 1228 1227 +f 1258 1259 1224 1223 +f 1254 1255 1220 1219 +f 1250 1235 1216 1215 +f 1246 1247 1212 1211 +f 1242 1243 1208 1207 +f 1238 1239 1204 1203 +f 1234 1219 1202 1200 +f 1230 1231 1194 1192 +f 1226 1227 1186 1184 +f 1222 1223 1178 1176 +f 1218 1203 1173 1175 +f 1214 1215 1181 1183 +f 1210 1211 1189 1191 +f 1206 1207 1197 1199 +f 1280 1201 1199 1281 +f 1277 1193 1191 1276 +f 1269 1185 1183 1268 +f 1272 1177 1175 1273 +f 1273 1175 1173 1279 +f 1268 1183 1181 1270 +f 1276 1191 1189 1275 +f 1281 1199 1197 1282 +f 1203 1204 1171 1173 +f 1207 1208 1195 1197 +f 1211 1212 1187 1189 +f 1215 1216 1179 1181 +f 1219 1220 1172 1202 +f 1223 1224 1180 1178 +f 1227 1228 1188 1186 +f 1231 1232 1196 1194 +f 1235 1236 1217 1216 +f 1239 1240 1205 1204 +f 1243 1244 1209 1208 +f 1247 1248 1213 1212 +f 1251 1252 1233 1232 +f 1255 1256 1221 1220 +f 1259 1260 1225 1224 +f 1263 1264 1229 1228 +f 1194 1196 1278 1277 +f 1186 1188 1267 1269 +f 1178 1180 1271 1272 +f 1202 1172 1274 1280 +f 1198 1200 1281 1282 +f 1174 1176 1273 1279 +f 1182 1184 1268 1270 +f 1190 1192 1276 1275 +f 1265 1266 1231 1230 +f 1261 1262 1227 1226 +f 1257 1258 1223 1222 +f 1253 1254 1219 1234 +f 1249 1250 1215 1214 +f 1245 1246 1211 1210 +f 1241 1242 1207 1206 +f 1237 1238 1203 1218 +f 1233 1234 1200 1198 +f 1229 1230 1192 1190 +f 1225 1226 1184 1182 +f 1221 1222 1176 1174 +f 1217 1218 1175 1177 +f 1213 1214 1183 1185 +f 1209 1210 1191 1193 +f 1205 1206 1199 1201 +f 1274 1171 1201 1280 +f 1278 1195 1193 1277 +f 1267 1187 1185 1269 +f 1271 1179 1177 1272 +f 1279 1173 1171 1274 +f 1270 1181 1179 1271 +f 1275 1189 1187 1267 +f 1282 1197 1195 1278 +f 1204 1205 1201 1171 +f 1208 1209 1193 1195 +f 1212 1213 1185 1187 +f 1216 1217 1177 1179 +f 1220 1221 1174 1172 +f 1224 1225 1182 1180 +f 1228 1229 1190 1188 +f 1232 1233 1198 1196 +f 1236 1237 1218 1217 +f 1240 1241 1206 1205 +f 1244 1245 1210 1209 +f 1248 1249 1214 1213 +f 1252 1253 1234 1233 +f 1256 1257 1222 1221 +f 1260 1261 1226 1225 +f 1264 1265 1230 1229 +f 1192 1194 1277 1276 +f 1184 1186 1269 1268 +f 1176 1178 1272 1273 +f 1200 1202 1280 1281 +s off +f 1248 1247 1246 1245 1244 1243 1242 1241 1240 1239 1238 1237 1236 1235 1250 1249 +f 1264 1263 1262 1261 1260 1259 1258 1257 1256 1255 1254 1253 1252 1251 1266 1265 +g pelvis +s 9 +f 3607 3608 3553 3554 +f 3554 3553 3552 3551 +f 1337 1329 1330 1336 +f 1329 1337 1327 1328 +f 1328 1327 1345 1344 +f 3602 3596 3551 3552 +s 8 +f 3600 3599 3598 3597 3601 +f 3600 3601 3590 3589 +f 3596 3597 3585 3586 +f 3589 3590 3576 3574 +f 3586 3585 3583 3582 +f 3578 3579 3557 3555 +f 3575 3574 3572 3571 +f 3570 3571 1288 1289 +f 3555 3557 1283 1284 +f 1335 1331 1332 1333 1334 +f 1320 1321 1335 1334 +f 1316 1317 1331 1330 +f 1306 1307 1321 1320 +f 1313 1314 1317 1316 +f 1295 1296 1310 1309 +f 1302 1303 1306 1305 +f 1289 1288 1302 1301 +f 1285 1284 1295 1294 +f 1290 1289 1301 1300 +f 1286 1285 1294 1304 +f 1294 1295 1309 1308 +f 1301 1302 1305 1315 +f 1305 1306 1320 1319 +f 1309 1310 1324 1323 +f 1319 1320 1334 1333 +f 1323 1324 1327 1337 +f 1296 1283 1339 1338 +f 1310 1296 1338 1347 +f 3569 3570 1289 1290 +f 3573 3556 1285 1286 +f 3577 3578 3555 3556 +f 3584 3575 3571 3570 +f 3588 3589 3574 3575 +f 3592 3593 3579 3578 +f 3599 3600 3589 3588 +f 3552 3553 3593 3592 +f 3603 1339 1283 3557 +f 3610 3603 3557 3579 +f 3608 3609 3593 3553 +f 3601 3597 3596 3602 +f 3601 3602 3591 3590 +f 3597 3598 3587 3585 +f 3590 3591 3577 3576 +f 3585 3587 3584 3583 +f 3582 3583 3569 3568 +f 3574 3576 3573 3572 +f 3571 3572 1287 1288 +f 3556 3555 1284 1285 +f 1327 1324 1346 1345 +f 1336 1330 1331 1335 +f 1321 1322 1336 1335 +f 1317 1318 1332 1331 +f 1307 1308 1322 1321 +f 1314 1315 1318 1317 +f 1299 1300 1314 1313 +f 1303 1304 1307 1306 +f 1288 1287 1303 1302 +f 1284 1283 1296 1295 +f 1291 1290 1300 1299 +f 1287 1286 1304 1303 +f 1304 1294 1308 1307 +f 1300 1301 1315 1314 +f 1315 1305 1319 1318 +f 1308 1309 1323 1322 +f 1318 1319 1333 1332 +f 1322 1323 1337 1336 +f 1324 1310 1347 1346 +f 3568 3569 1290 1291 +f 3572 3573 1286 1287 +f 3576 3577 3556 3573 +f 3583 3584 3570 3569 +f 3587 3588 3575 3584 +f 3591 3592 3578 3577 +f 3598 3599 3588 3587 +f 3602 3552 3592 3591 +f 3609 3610 3579 3593 +s 11 +f 1366 3558 3615 1353 +f 3562 3563 3611 3612 +f 3618 3612 3608 3607 +f 1353 3615 3604 1340 +f 3612 3611 3609 3608 +f 1340 3604 3567 1293 +f 3595 3594 3580 3581 +f 3567 3566 1292 1293 +f 1350 1351 1364 1363 +f 1356 1357 1360 1359 +f 1342 1343 1356 1355 +f 1347 1338 1351 1350 +f 1311 1325 1343 1342 +f 1325 1326 1329 1328 +f 1298 1299 1313 1312 +f 1366 1367 1358 1359 1360 1361 1362 1363 1364 1365 +f 1297 1298 1312 1311 +f 1326 1316 1330 1329 +f 1325 1328 1344 1343 +f 1338 1339 1352 1351 +f 1343 1344 1357 1356 +f 1357 1348 1361 1360 +f 1351 1352 1365 1364 +f 1365 3565 3564 3563 3562 3561 3560 3559 3558 1366 +f 3581 3580 3566 3567 +f 3551 3596 3586 3594 +f 3606 3607 3554 3595 +f 3614 1352 1339 3603 +f 3617 3618 3607 3606 +f 3561 3562 3612 3618 +f 3565 1365 1352 3614 +f 3558 3559 3616 3615 +f 3563 3564 3613 3611 +f 3559 3560 3617 3616 +f 3615 3616 3605 3604 +f 3611 3613 3610 3609 +f 3604 3605 3581 3567 +f 3594 3586 3582 3580 +f 3566 3568 1291 1292 +f 1354 1355 1358 1367 +f 1349 1350 1363 1362 +f 1355 1356 1359 1358 +f 1341 1342 1355 1354 +f 1346 1347 1350 1349 +f 1297 1311 1342 1341 +f 1312 1313 1316 1326 +f 1292 1291 1299 1298 +f 1293 1292 1298 1297 +f 1311 1312 1326 1325 +f 1293 1297 1341 1340 +f 1345 1346 1349 1348 +f 1340 1341 1354 1353 +f 1344 1345 1348 1357 +f 1348 1349 1362 1361 +f 1353 1354 1367 1366 +f 3580 3582 3568 3566 +f 3554 3551 3594 3595 +f 3605 3606 3595 3581 +f 3613 3614 3603 3610 +f 3616 3617 3606 3605 +f 3560 3561 3618 3617 +f 3564 3565 3614 3613 +g lowarmr +s 1 +f 1447 1432 1449 1428 +f 1446 1447 1428 1427 +f 1442 1443 1424 1423 +f 1438 1439 1420 1419 +f 1434 1435 1416 1431 +f 1430 1431 1411 +f 1426 1427 1408 1407 +f 1422 1423 1404 1403 +f 1418 1419 1400 1415 +f 1414 1415 1372 1374 +f 1410 1411 1380 1382 +f 1406 1407 1388 1390 +f 1402 1403 1396 1398 +f 1369 1368 1398 1399 +f 1393 1392 1390 1391 +f 1385 1384 1382 1383 +f 1377 1376 1374 1375 +f 1371 1370 1368 1369 +f 1379 1378 1376 1377 +f 1387 1386 1384 1385 +f 1395 1394 1392 1393 +f 1445 1444 1443 1442 1441 1440 1439 1438 1437 1436 1435 1434 1433 1432 1447 1446 +f 1403 1404 1394 1396 +f 1407 1408 1386 1388 +f 1411 1412 1378 1380 +f 1415 1400 1370 1372 +f 1419 1420 1401 1400 +f 1423 1424 1405 1404 +f 1427 1428 1409 1408 +f 1431 1416 1413 1412 +f 1435 1436 1417 1416 +f 1439 1440 1421 1420 +f 1443 1444 1425 1424 +f 1449 1429 1428 +f 1409 1428 1410 +f 1432 1433 1448 1449 +f 1445 1446 1427 1426 +f 1441 1442 1423 1422 +f 1437 1438 1419 1418 +f 1448 1431 1430 +f 1429 1430 1411 1410 +f 1425 1426 1407 1406 +f 1421 1422 1403 1402 +f 1417 1418 1415 1414 +f 1413 1414 1374 1376 +f 1409 1410 1382 1384 +f 1405 1406 1390 1392 +f 1401 1402 1398 1368 +f 1399 1398 1396 1397 +f 1391 1390 1388 1389 +f 1383 1382 1380 1381 +f 1375 1374 1372 1373 +f 1373 1372 1370 1371 +f 1381 1380 1378 1379 +f 1389 1388 1386 1387 +f 1397 1396 1394 1395 +f 1400 1401 1368 1370 +f 1404 1405 1392 1394 +f 1408 1409 1384 1386 +f 1412 1413 1376 1378 +f 1416 1417 1414 1413 +f 1420 1421 1402 1401 +f 1424 1425 1406 1405 +f 1429 1410 1428 +f 1449 1448 1430 1429 +f 1436 1437 1418 1417 +f 1440 1441 1422 1421 +f 1444 1445 1426 1425 +f 1433 1434 1431 1448 +f 1412 1411 1431 +s off +f 1464 1465 1397 1395 +f 1460 1461 1389 1387 +f 1456 1457 1381 1379 +f 1452 1453 1373 1371 +f 1451 1452 1371 1369 +f 1455 1456 1379 1377 +f 1459 1460 1387 1385 +f 1463 1464 1395 1393 +f 1465 1450 1399 1397 +f 1461 1462 1391 1389 +f 1457 1458 1383 1381 +f 1453 1454 1375 1373 +f 1450 1451 1369 1399 +f 1454 1455 1377 1375 +f 1458 1459 1385 1383 +f 1462 1463 1393 1391 +g sleaver +usemtl white +f 1480 1481 1462 1461 +f 1476 1477 1458 1457 +f 1472 1473 1454 1453 +f 1468 1469 1450 1465 +f 1479 1478 1477 1476 1475 1474 1473 1472 1471 1470 1469 1468 1467 1466 1481 1480 +f 1469 1470 1451 1450 +f 1473 1474 1455 1454 +f 1477 1478 1459 1458 +f 1481 1466 1463 1462 +f 1479 1480 1461 1460 +f 1475 1476 1457 1456 +f 1471 1472 1453 1452 +f 1467 1468 1465 1464 +f 1466 1467 1464 1463 +f 1470 1471 1452 1451 +f 1474 1475 1456 1455 +f 1478 1479 1460 1459 +g handr +usemtl skin +s 1 +f 1726 1739 1672 1673 +f 1689 1681 1682 1737 +f 1688 1683 1689 1693 +f 1734 1729 1711 1716 +f 1709 1710 1660 1661 +f 1730 1733 1732 1731 +f 1729 1728 1659 1660 +f 1725 1720 1701 1695 +f 1722 1714 1707 1721 +f 1716 1711 1706 1715 +f 1712 1699 1696 1690 +f 1636 1637 1708 1709 +f 1705 1698 1700 1702 +f 1695 1701 1700 1694 +f 1639 1640 1690 1696 +f 1683 1678 1681 1689 +f 1642 1643 1680 1685 +f 1668 1682 1681 +f 1675 1676 1679 1674 +f 1678 1677 1676 1668 +f 1673 1672 1663 1662 +f 1669 1668 1667 1666 +f 1664 1646 1647 1663 +f 1659 1658 1657 1655 +f 1652 1651 1634 1632 +f 1646 1648 1629 1628 +f 1644 1643 1616 1615 +f 1640 1639 1620 1619 +f 1636 1635 1625 1624 +f 1633 1632 1602 1603 +f 1626 1628 1607 1606 +f 1624 1600 1599 1623 +f 1598 1621 1622 +f 1558 1557 1619 +f 1611 1520 1519 +f 1614 1516 1513 1613 +f 1611 1556 1553 1608 +f 1609 1608 1607 +f 1555 1604 1605 +f 1602 1601 1593 1594 +f 1597 1598 1592 1590 +f 1594 1593 1585 1586 +f 1574 1572 1579 1578 +f 1581 1588 1587 1582 +f 1569 1576 1582 1583 +f 1573 1574 1578 1577 +f 1564 1573 1575 1563 +f 1570 1568 1561 1569 +f 1560 1548 1545 1559 +f 1555 1554 1550 1549 +f 1551 1538 1539 1550 +f 1547 1546 1542 1543 +f 1537 1543 1531 1532 +f 1533 1538 1537 1532 +f 1534 1533 1526 1527 +f 1522 1523 1530 1529 +f 1518 1519 1509 1510 +f 1507 1515 1514 1506 +f 1498 1511 1510 1497 +f 1507 1506 1501 1502 +f 1501 1504 1493 1494 +f 1492 1499 1498 1491 +f 1488 1494 1493 1487 +f 1490 1483 1484 1489 +f 1484 1485 1491 1489 +f 1483 1490 1495 1482 +f 1502 1501 1494 1500 +f 1499 1492 1493 1504 +f 1508 1507 1502 1503 +f 1499 1512 1511 1498 +f 1513 1516 1512 1505 +f 1520 1508 1509 1519 +f 1531 1530 1523 1524 +f 1535 1534 1527 1528 +f 1534 1539 1538 1533 +f 1544 1535 1536 1540 +f 1545 1548 1540 1541 +f 1552 1537 1538 1551 +f 1553 1556 1552 1551 +f 1555 1549 1548 1560 +f 1571 1567 1568 1570 +f 1563 1575 1576 1562 +f 1580 1579 1572 1571 +f 1569 1583 1584 1570 +f 1577 1589 1588 1581 +f 1577 1578 1591 1589 +f 1595 1594 1586 1587 +f 1599 1591 1592 1598 +f 1603 1602 1594 1595 +f 1606 1554 1555 1605 +f 1515 1608 1609 +f 1515 1520 1611 1608 +f 1616 1518 1517 1615 +f 1557 1556 1611 +f 1620 1559 1558 1619 +f 1597 1610 1621 1598 +f 1625 1596 1600 1624 +f 1628 1629 1609 1607 +f 1605 1601 1634 1627 +f 1637 1636 1624 1623 +f 1641 1640 1619 1618 +f 1645 1644 1615 1614 +f 1649 1630 1629 1648 +f 1653 1652 1632 1633 +f 1661 1660 1659 1655 1653 +f 1665 1648 1646 1664 +f 1670 1669 1666 1665 +f 1656 1673 1662 1654 +f 1680 1679 1676 1677 +f 1681 1678 1668 +f 1669 1682 1668 +f 1685 1686 1641 1642 +f 1686 1690 1640 1641 +f 1696 1697 1638 1639 +f 1703 1702 1700 1701 +f 1708 1697 1698 1705 +f 1711 1710 1705 1706 +f 1691 1694 1699 1712 +f 1716 1715 1718 1717 +f 1724 1723 1714 1722 +f 1656 1657 1720 1725 +f 1721 1719 1658 1727 +f 1727 1728 1733 1730 +f 1635 1661 1653 1633 +f 1735 1734 1716 1717 +f 1718 1736 1723 1724 1731 1732 1735 1717 +f 1738 1693 1689 1737 +f 1692 1693 1738 1739 1726 +f 1739 1738 1671 1672 +f 1737 1682 1669 1670 +f 1715 1713 1736 1718 +f 1729 1660 1710 1711 +f 1735 1732 1733 1734 +f 1722 1730 1731 1724 +f 1728 1727 1658 1659 +f 1726 1725 1695 1692 +f 1721 1707 1703 1719 +f 1706 1704 1713 1715 +f 1690 1686 1687 1712 +f 1705 1710 1709 1708 +f 1703 1707 1704 1702 +f 1694 1700 1698 1699 +f 1692 1695 1694 1691 +f 1683 1688 1687 1684 +f 1685 1680 1677 1684 +f 1668 1675 1667 +f 1674 1679 1644 1645 +f 1676 1675 1668 +f 1672 1671 1664 1663 +f 1667 1650 1649 1666 +f 1663 1647 1651 1662 +f 1657 1656 1654 1655 +f 1651 1647 1627 1634 +f 1647 1646 1628 1626 1627 +f 1643 1642 1617 1616 +f 1639 1638 1622 1620 +f 1635 1633 1603 1625 +f 1630 1631 1613 1612 +f 1627 1626 1606 1605 +f 1623 1599 1598 1622 +f 1622 1621 1620 +f 1619 1557 1611 1618 +f 1517 1516 1614 1615 +f 1613 1513 1514 1612 +f 1555 1560 1610 1604 +f 1608 1553 1607 +f 1605 1604 1601 +f 1589 1591 1599 1600 +f 1593 1597 1590 1585 +f 1590 1592 1579 1580 +f 1571 1570 1584 1580 +f 1582 1587 1586 1583 +f 1576 1575 1581 1582 +f 1565 1566 1572 1574 +f 1564 1565 1574 1573 +f 1568 1567 1566 1565 1564 1563 1562 1561 +f 1559 1545 1546 1558 +f 1554 1553 1551 1550 +f 1550 1539 1544 1549 +f 1546 1545 1541 1542 +f 1543 1542 1530 1531 +f 1522 1529 1536 1521 +f 1533 1532 1525 1526 +f 1528 1527 1526 1525 1524 1523 1522 1521 +f 1517 1518 1510 1511 +f 1514 1513 1505 1506 +f 1497 1510 1509 1496 +f 1506 1505 1504 1501 +f 1490 1496 1503 1495 +f 1491 1498 1497 1489 +f 1487 1493 1492 1486 +f 1488 1487 1486 1485 1484 1483 1482 +f 1486 1492 1491 1485 +f 1489 1497 1496 1490 +f 1503 1502 1500 1495 +f 1500 1494 1488 1482 1495 +f 1509 1508 1503 1496 +f 1504 1505 1512 1499 +f 1516 1517 1511 1512 +f 1515 1507 1508 1520 +f 1532 1531 1524 1525 +f 1528 1521 1536 1535 +f 1529 1541 1540 1536 +f 1539 1534 1535 1544 +f 1549 1544 1540 1548 +f 1547 1543 1537 1552 +f 1557 1547 1552 1556 +f 1546 1547 1557 1558 +f 1572 1566 1567 1571 +f 1562 1576 1569 1561 +f 1577 1581 1575 1573 +f 1583 1586 1585 1584 +f 1584 1585 1590 1580 +f 1592 1591 1578 1579 +f 1596 1595 1587 1588 +f 1596 1588 1589 1600 +f 1601 1604 1593 +f 1607 1553 1554 1606 +f 1610 1597 1593 1604 +f 1514 1515 1609 1612 +f 1617 1519 1518 1616 +f 1618 1611 1519 1617 +f 1621 1559 1620 +f 1610 1560 1559 1621 +f 1625 1603 1595 1596 +f 1629 1630 1612 1609 +f 1601 1602 1632 1634 +f 1638 1637 1623 1622 +f 1642 1641 1618 1617 +f 1631 1645 1614 1613 +f 1650 1631 1630 1649 +f 1655 1654 1652 1653 +f 1654 1662 1651 1652 +f 1666 1649 1648 1665 +f 1671 1670 1665 1664 +f 1650 1674 1645 1631 +f 1643 1644 1679 1680 +f 1667 1675 1674 1650 +f 1684 1677 1678 1683 +f 1684 1687 1686 1685 +f 1693 1692 1691 1688 +f 1699 1698 1697 1696 +f 1706 1705 1702 1704 +f 1637 1638 1697 1708 +f 1712 1687 1688 1691 +f 1707 1714 1713 1704 +f 1720 1719 1703 1701 +f 1720 1657 1658 1719 +f 1726 1673 1656 1725 +f 1721 1727 1730 1722 +f 1734 1733 1728 1729 +f 1636 1709 1661 1635 +f 1714 1723 1736 1713 +f 1529 1530 1542 1541 +f 1738 1737 1670 1671 +g coat +usemtl dkblue_pure +s 5 +f 2007 2008 1893 2005 +f 1746 1744 1747 +f 1742 1743 1745 1886 +f 1755 1768 1753 1754 +f 1746 1747 1748 1749 +f 1741 1740 1743 1742 +f 1750 1880 1752 1754 1753 +f 2005 1893 2006 1892 +f 1756 1757 1773 1771 +f 1880 1750 1749 1748 1751 +f 1886 1745 1887 1744 +f 1756 1758 1757 +f 1771 1773 1768 1755 +f 1747 1744 1887 +f 2003 1892 2006 +f 1740 1741 2008 2007 +s 6 +f 1980 1896 1933 +f 1990 2003 2002 1989 +f 1989 1975 1974 1990 +f 1891 1971 1969 1991 +f 1967 1987 1986 1964 +f 1960 1967 1964 1959 +f 1961 1958 1954 1953 +f 1972 1970 1948 1947 +f 1947 1943 1942 1946 +f 1939 1951 1949 1938 +f 1963 1985 1980 +f 1935 1933 1825 1823 +f 1958 1929 1928 1954 +f 1924 1937 1925 1923 +f 1922 1920 1919 1924 +f 1842 1846 1918 1920 +f 1992 1968 1849 1760 +f 1990 1971 1891 +f 1762 1888 1781 +f 1847 1807 1783 1784 +f 1847 1845 1811 1807 +f 1844 1836 1815 1816 +f 1836 1838 1839 1837 +f 1832 1798 1803 1833 +f 1821 1827 1828 1824 +f 1822 1820 1823 1825 +f 1789 1819 1772 1767 +f 1813 1809 1810 1816 +f 1808 1809 1813 1812 +f 1780 1781 1806 1805 +f 1801 1799 1800 1802 +f 1793 1795 1797 1796 +f 1787 1790 1791 1786 +f 1785 1765 1769 1786 +f 1778 1762 1781 1780 +f 1748 1763 1764 1751 +f 1743 1740 1760 1759 +f 1747 1762 1763 1748 +f 1819 1883 1772 +f 1776 1777 1778 1779 +f 1783 1761 1759 1784 +f 1766 1788 1789 1767 +f 1792 1794 1795 1793 +f 1799 1791 1790 1800 +f 1806 1781 1783 1807 +f 1810 1806 1807 1811 +f 1814 1813 1816 1815 +f 1796 1817 1819 1789 +f 1820 1821 1824 1823 +f 1818 1826 1827 1821 +f 1831 1794 1798 1832 +f 1815 1836 1837 1835 +f 1843 1838 1836 1844 +f 1846 1842 1843 1845 +f 1784 1759 1760 1849 +f 1764 1879 1880 1751 +f 1762 1747 1887 1888 +f 2003 1990 1891 1892 +f 1898 1988 1999 1897 +f 1905 1979 1984 1912 +f 1916 1997 2000 +f 1968 1917 1848 1849 +f 1920 1918 1941 1919 +f 1840 1842 1920 1922 +f 1938 1926 1925 1937 +f 1957 1930 1929 1958 +f 1934 1935 1823 1824 +f 1944 1948 1970 1973 1976 1977 1978 1965 1962 1952 1950 1940 +f 1939 1940 1950 1951 +f 1947 1948 1944 1943 +f 1954 1949 1951 1953 +f 1959 1964 1963 1956 +f 1961 1966 1967 1960 +f 1983 1966 1965 1978 +f 1974 1973 1970 1972 +f 1988 1982 1975 1989 +f 1987 1983 1982 1988 +f 1991 2005 1892 1891 +f 1980 1933 1963 +f 1825 1933 1896 2010 +f 1756 1883 1882 +f 1881 1993 2009 1758 +f 1740 2007 1992 1760 +f 1989 2002 1999 1988 +f 1982 1983 1978 1977 +f 1975 1976 1973 1974 +f 1991 1969 1968 1992 +f 1964 1986 1985 1963 +f 1958 1960 1959 1957 +f 1961 1953 1952 1962 +f 1971 1946 1945 1969 +f 1946 1942 1941 1945 +f 1939 1938 1937 1936 +f 1955 1956 1935 1934 +f 1932 1934 1824 1828 +f 1954 1928 1927 1949 +f 1922 1924 1923 1921 +f 1924 1919 1936 1937 +f 1918 1917 1945 1941 +f 1945 1917 1968 1969 +f 1997 1916 1912 1984 +f 1932 1931 1955 1934 +f 1898 1987 1988 +f 1792 1791 1794 +f 1879 1764 1765 +f 1829 1826 1818 1797 +f 1848 1846 1845 1847 +f 1811 1844 1816 1810 +f 1838 1840 1841 1839 +f 1833 1803 1814 1834 +f 1829 1797 1795 1830 +f 1819 1822 1882 1883 +f 1817 1818 1821 1820 +f 1800 1790 1787 1774 1775 1776 1779 1782 1804 1808 1812 1802 +f 1812 1813 1801 1802 +f 1804 1805 1809 1808 +f 1803 1798 1799 1801 +f 1788 1793 1796 1789 +f 1786 1791 1792 1785 +f 1786 1769 1774 1787 +f 1779 1778 1780 1782 +f 1775 1770 1777 1776 +f 1769 1765 1764 1770 +f 1743 1759 1761 1745 +f 1745 1761 1888 1887 +f 1769 1770 1775 1774 +f 1781 1888 1761 1783 +f 1765 1785 1788 1766 +f 1785 1792 1793 1788 +f 1794 1791 1799 1798 +f 1782 1780 1805 1804 +f 1809 1805 1806 1810 +f 1801 1813 1814 1803 +f 1796 1797 1818 1817 +f 1817 1820 1822 1819 +f 1758 1756 1882 1881 +f 1830 1795 1794 1831 +f 1834 1814 1815 1835 +f 1842 1840 1838 1843 +f 1845 1843 1844 1811 +f 1847 1784 1849 1848 +f 1822 1825 2010 1882 +f 1960 1958 1961 +f 2009 1993 1979 1905 +f 1846 1848 1917 1918 +f 1919 1941 1942 1936 +f 1840 1922 1921 1841 +f 1949 1927 1926 1938 +f 1955 1931 1930 1957 +f 1935 1956 1963 1933 +f 1943 1939 1936 1942 +f 1943 1944 1940 1939 +f 1971 1972 1947 1946 +f 1953 1951 1950 1952 +f 1957 1959 1956 1955 +f 1962 1965 1966 1961 +f 1987 1967 1966 1983 +f 1990 1974 1972 1971 +f 1982 1977 1976 1975 +f 1992 2007 2005 1991 +s 9 +f 1879 1765 1752 1880 +f 1752 1765 1766 1754 +f 1756 1771 1772 1883 +f 1754 1766 1767 1755 +f 1755 1767 1772 1771 +s 8 +f 1770 1764 1763 1777 +f 1777 1763 1762 1778 +s 10 +f 1757 1871 1873 1773 +f 1850 1750 1753 +f 1773 1873 1855 1768 +f 1872 1758 2009 +f 1758 1872 1871 1757 +f 1850 1753 1768 1855 +s off +f 1826 1829 1830 1831 1832 1833 1834 1835 1837 1839 1841 1921 1923 1925 1926 1927 1928 1929 1930 1931 1932 1828 1827 +s 18 +f 1896 1994 2010 +f 2001 2000 1897 1999 2002 +f 1987 1998 1996 1986 +f 1985 1995 1981 1980 +f 1987 1898 1897 1998 +f 2004 2003 2006 +f 1979 1981 1995 1984 +f 2003 2004 2001 2002 +f 1986 1996 1995 1985 +f 1981 1994 1896 1980 +f 2010 1994 1881 +f 1993 1994 1981 1979 +f 1984 1995 1996 1997 +f 1998 1897 2000 1997 1996 +f 1994 1993 1881 +f 1881 1882 2010 +g shirt +usemtl white +s 6 +f 1899 1912 1916 +f 1853 1852 1885 1884 +f 1894 1895 1916 +f 1878 1877 1884 1850 +f 1885 1850 1884 +f 1915 1914 1895 1894 +s 5 +f 1895 1900 1899 1916 +f 1850 1885 1750 +f 1878 1850 1855 +f 1851 1741 1742 1886 1744 1746 1749 1889 1852 +f 2001 1890 2000 +f 1914 1913 1900 1895 +f 2001 2004 2006 1893 2008 1741 1851 2015 1915 1890 +f 1749 1750 1889 +f 1854 1853 1884 1877 +f 1750 1885 1852 1889 +f 1916 2000 1894 +f 1894 2000 1890 1915 +g tie +usemtl fldkred +s 4 +f 1861 1862 1910 +f 1906 1905 1901 2011 +f 1911 1913 1914 +f 1908 1870 2013 1907 +f 1913 1909 1904 1900 +f 1912 1901 1905 +f 1870 1869 2012 2013 +f 1860 1857 1854 1863 +f 1856 1852 1853 +f 1862 1861 1863 +f 1869 1876 1873 2012 +f 1911 1861 1910 +f 1866 1864 1868 +f 1911 1910 1913 +f 2015 1858 1859 1915 +f 1860 1863 1861 +f 1872 1906 2011 2014 +f 1877 1878 1875 1874 +f 1865 1874 1875 1867 +f 1859 1858 1857 1860 +f 1856 1851 1852 +f 1865 1867 1868 1864 +f 1855 1873 1876 +f 1912 1899 1903 1902 +f 1909 1866 1904 +f 1866 1909 1864 +f 1903 1908 1907 1902 +f 1872 2014 1871 +f 1851 1858 2015 +f 1871 2014 2013 2012 +f 1906 2009 1905 +f 1862 1909 1910 +f 1875 1876 1869 1867 +f 1859 1860 1861 +f 1857 1856 1853 1854 +f 1867 1869 1870 1868 +f 1899 1900 1904 1903 +f 1868 1870 1908 1866 +f 1906 1872 2009 +f 1855 1876 1875 1878 +f 1871 2012 1873 +f 2014 2011 1907 2013 +f 1904 1866 1908 1903 +f 1910 1909 1913 +f 1902 1907 2011 1901 +f 1912 1902 1901 +f 1862 1863 1865 1864 +f 1851 1856 1857 1858 +f 1863 1874 1865 +f 1863 1854 1877 1874 +f 1911 1914 1915 +f 1862 1864 1909 +f 1915 1859 1861 1911 +g buttons +usemtl black +s off +f 2063 2068 2067 2064 +f 2059 2072 2071 2060 +f 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 +f 2043 2048 2047 2044 +f 2039 2052 2051 2040 +f 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 +f 2023 2033 2034 2024 +f 2019 2029 2030 2020 +f 2035 2034 2033 2032 2031 2030 2029 2028 2027 2026 +f 2016 2026 2027 2017 +f 2020 2030 2031 2021 +f 2024 2034 2035 2025 +f 2036 2055 2054 2037 +f 2040 2051 2050 2041 +f 2044 2047 2046 2045 +f 2056 2075 2074 2057 +f 2060 2071 2070 2061 +f 2064 2067 2066 2065 +f 2062 2069 2068 2063 +f 2058 2073 2072 2059 +f 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 +f 2042 2049 2048 2043 +f 2038 2053 2052 2039 +f 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 +f 2022 2032 2033 2023 +f 2018 2028 2029 2019 +f 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 +f 2017 2027 2028 2018 +f 2021 2031 2032 2022 +f 2025 2035 2026 2016 +f 2037 2054 2053 2038 +f 2041 2050 2049 2042 +f 2045 2046 2055 2036 +f 2057 2074 2073 2058 +f 2061 2070 2069 2062 +f 2065 2066 2075 2056 +g uparmr +usemtl dkblue_pure +f 2169 2168 2167 2166 2165 2164 2163 2162 2161 2160 2159 2158 2157 2156 2171 2170 +f 2153 2152 2151 2150 2149 2148 2147 2146 2145 2144 2143 2142 2141 2140 2155 2154 +s 52 +f 2105 2107 2185 2186 +f 2081 2083 2177 2178 +f 2089 2091 2174 2173 +f 2097 2099 2182 2181 +f 2169 2170 2135 2134 +f 2165 2166 2131 2130 +f 2161 2162 2127 2126 +f 2157 2158 2139 2138 +f 2153 2154 2119 2118 +f 2149 2150 2115 2114 +f 2145 2146 2111 2110 +f 2141 2142 2123 2122 +f 2137 2138 2103 2101 +f 2133 2134 2095 2093 +f 2129 2130 2087 2085 +f 2125 2126 2079 2077 +f 2121 2122 2082 2084 +f 2117 2118 2090 2092 +f 2113 2114 2098 2100 +f 2109 2110 2106 2076 +f 2187 2102 2100 2183 +f 2180 2094 2092 2172 +f 2175 2086 2084 2176 +f 2184 2078 2076 2179 +f 2176 2084 2082 2177 +f 2172 2092 2090 2174 +f 2183 2100 2098 2182 +f 2179 2076 2106 2185 +f 2110 2111 2104 2106 +f 2114 2115 2096 2098 +f 2118 2119 2088 2090 +f 2122 2123 2080 2082 +f 2126 2127 2081 2079 +f 2130 2131 2089 2087 +f 2134 2135 2097 2095 +f 2138 2139 2105 2103 +f 2142 2143 2108 2123 +f 2146 2147 2112 2111 +f 2150 2151 2116 2115 +f 2154 2155 2120 2119 +f 2158 2159 2124 2139 +f 2162 2163 2128 2127 +f 2166 2167 2132 2131 +f 2170 2171 2136 2135 +f 2095 2097 2181 2180 +f 2087 2089 2173 2175 +f 2079 2081 2178 2184 +f 2103 2105 2186 2187 +f 2107 2077 2179 2185 +f 2083 2085 2176 2177 +f 2091 2093 2172 2174 +f 2099 2101 2183 2182 +f 2168 2169 2134 2133 +f 2164 2165 2130 2129 +f 2160 2161 2126 2125 +f 2156 2157 2138 2137 +f 2152 2153 2118 2117 +f 2148 2149 2114 2113 +f 2144 2145 2110 2109 +f 2140 2141 2122 2121 +f 2136 2137 2101 2099 +f 2132 2133 2093 2091 +f 2128 2129 2085 2083 +f 2124 2125 2077 2107 +f 2120 2121 2084 2086 +f 2116 2117 2092 2094 +f 2112 2113 2100 2102 +f 2108 2109 2076 2078 +f 2186 2104 2102 2187 +f 2181 2096 2094 2180 +f 2173 2088 2086 2175 +f 2178 2080 2078 2184 +f 2177 2082 2080 2178 +f 2174 2090 2088 2173 +f 2182 2098 2096 2181 +f 2185 2106 2104 2186 +f 2111 2112 2102 2104 +f 2115 2116 2094 2096 +f 2119 2120 2086 2088 +f 2123 2108 2078 2080 +f 2127 2128 2083 2081 +f 2131 2132 2091 2089 +f 2135 2136 2099 2097 +f 2139 2124 2107 2105 +f 2143 2144 2109 2108 +f 2147 2148 2113 2112 +f 2151 2152 2117 2116 +f 2155 2140 2121 2120 +f 2159 2160 2125 2124 +f 2163 2164 2129 2128 +f 2167 2168 2133 2132 +f 2171 2156 2137 2136 +f 2093 2095 2180 2172 +f 2085 2087 2175 2176 +f 2077 2079 2184 2179 +f 2101 2103 2187 2183 +g hat +usemtl brown +s 1 +f 2411 2410 2406 2405 +f 2390 2389 2527 2528 +f 2384 2383 2382 2381 +f 2223 2222 2412 2409 +f 2405 2406 2402 2401 +f 2397 2388 2391 2398 +f 2389 2388 2392 +f 2383 2384 2201 2200 +f 2377 2378 2375 2372 +f 2352 2351 2218 2216 +f 2344 2342 2341 2343 +f 2191 2199 2303 2302 +f 2219 2221 2222 2223 +f 2214 2213 2352 2357 +f 2210 2205 2206 2211 +f 2207 2206 2204 +f 2200 2201 2303 2304 +f 2190 2193 2194 2195 +f 2189 2192 2193 2190 +f 2195 2199 2191 2190 +f 2205 2203 2204 2206 +f 2206 2207 2208 2209 +f 2211 2212 2364 2215 2213 +f 2216 2218 2367 2221 2219 +f 2188 2191 2302 2301 +f 2343 2341 2208 2207 +f 2346 2344 2343 2345 +f 2372 2375 2376 2373 +f 2372 2371 2381 2377 +f 2388 2389 2390 2391 +f 2395 2396 2392 2388 +f 2402 2403 2404 2399 2397 +f 2409 2412 2413 2414 2410 +f 2298 2202 2385 2506 +f 2389 2392 2526 2527 +f 2528 2527 2387 2386 +f 2410 2414 2407 2406 +f 2526 2525 2394 2393 +f 2385 2384 2381 2371 +f 2223 2409 2408 2224 +f 2403 2402 2406 2407 +f 2399 2400 2395 2388 2397 +f 2375 2378 2387 2393 +f 2384 2385 2202 2201 +f 2379 2380 2378 2377 +f 2357 2352 2216 2217 +f 2348 2345 2204 2203 +f 2199 2198 2304 2303 +f 2224 2220 2219 2223 +f 2351 2352 2213 2215 +f 2211 2206 2209 2363 2212 +f 2344 2346 2194 2193 +f 2201 2202 2302 2303 +f 2195 2194 2196 2197 +f 2188 2189 2190 2191 +f 2197 2198 2199 2195 +f 2346 2347 2196 2194 +f 2342 2344 2193 2192 +f 2210 2211 2213 2214 +f 2217 2216 2219 2220 +f 2301 2302 2202 2298 +f 2345 2343 2207 2204 +f 2347 2346 2345 2348 +f 2371 2372 2373 2374 +f 2377 2381 2382 2379 +f 2378 2380 2386 2387 +f 2376 2375 2393 2394 +f 2401 2402 2397 2398 +f 2408 2409 2410 2411 +f 2506 2385 2371 2374 +f 2392 2396 2525 2526 +f 2527 2526 2393 2387 +s 14 +f 2434 2242 2231 2433 +f 2456 2455 2464 2459 +f 2472 2471 2468 2467 +f 2472 2473 2278 2277 +f 2463 2460 2459 2464 +f 2452 2439 2454 2453 +f 2451 2435 2434 2450 +f 2447 2429 2427 2446 +f 2443 2444 2428 2440 +f 2242 2434 2435 2244 +f 2429 2423 2425 2427 +f 2360 2359 2233 2240 +f 2263 2280 2250 2249 +f 2269 2273 2274 2270 +f 2264 2254 2251 2266 +f 2253 2252 2255 2256 2257 2258 2259 2260 2262 2261 +f 2257 2240 2241 2258 +f 2236 2237 2254 +f 2247 2248 2249 2250 +f 2240 2233 2232 2241 +f 2237 2236 2235 2238 +f 2241 2232 2231 2368 +f 2251 2237 2248 2247 +f 2252 2237 2238 2255 +f 2258 2241 2368 2243 2259 +f 2260 2370 2263 2262 +f 2355 2268 2269 2354 +f 2276 2277 2306 2307 +f 2273 2272 2307 2306 +f 2354 2353 2265 2264 +f 2368 2231 2242 2243 +f 2427 2425 2426 2428 +f 2433 2231 2421 2431 +f 2441 2440 2428 2442 +f 2446 2427 2428 2444 +f 2450 2434 2433 2431 2448 +f 2453 2454 2436 2451 +f 2459 2460 2461 2462 +f 2471 2472 2277 2276 +f 2457 2456 2459 2462 +f 2447 2449 2430 +f 2432 2422 2424 2430 +f 2454 2475 2437 2436 +f 2460 2467 2468 2461 +f 2455 2456 2445 2426 +f 2443 2440 2439 2452 +f 2430 2429 2447 +f 2445 2442 2428 +f 2435 2436 2437 2246 2244 +f 2430 2424 2423 2429 +f 2370 2260 2369 +f 2257 2360 2240 +f 2274 2273 2306 2308 +f 2370 2245 2280 2263 +f 2268 2272 2273 2269 +f 2236 2254 2264 2265 +f 2261 2249 2248 2253 +f 2256 2239 2360 +f 2237 2251 2254 +f 2244 2246 2245 2370 2369 +f 2239 2234 2359 2360 +f 2238 2235 2234 2239 +f 2244 2369 2243 2242 +f 2248 2237 2252 2253 +f 2255 2238 2239 2256 +f 2259 2243 2369 2260 +f 2262 2263 2249 2261 +f 2353 2354 2269 2270 +f 2277 2278 2308 2306 +f 2355 2354 2264 2266 +f 2360 2257 2256 +f 2431 2421 2422 2432 +f 2438 2439 2440 2441 +f 2445 2428 2426 +f 2448 2431 2432 2449 +f 2452 2453 2451 2450 2448 2449 2447 2446 2444 2443 +f 2457 2442 2445 2456 +f 2463 2469 2467 2460 +f 2439 2438 2475 2454 +f 2473 2472 2467 2469 +f 2432 2430 2449 +f 2435 2451 2436 +s 19 +f 2485 2457 2462 2476 +f 2441 2442 2484 2483 +f 2468 2471 2479 2478 +f 2476 2477 2478 2479 2331 2330 2480 2481 2482 2483 2484 2485 +f 2336 2335 2266 2251 +f 2332 2331 2276 2307 +f 2335 2336 2337 2338 2328 2329 2330 2331 2332 2333 2334 2356 +f 2333 2332 2307 2272 +f 2337 2336 2251 2247 +f 2356 2355 2266 2335 +f 2471 2276 2331 2479 +f 2442 2457 2485 2484 +f 2438 2441 2483 2482 +f 2461 2468 2478 2477 +f 2437 2475 2481 2480 +f 2328 2338 2250 2280 +f 2355 2356 2334 2268 +f 2330 2329 2245 2246 +f 2329 2328 2280 2245 +f 2334 2333 2272 2268 +f 2338 2337 2247 2250 +f 2246 2437 2480 2330 +f 2461 2477 2476 2462 +f 2475 2438 2482 2481 +s 2 +f 2507 2374 2373 2492 +f 2488 2395 2400 2498 +f 2363 2362 2294 2212 +f 2282 2188 2301 2281 +f 2361 2351 2215 2295 +f 2208 2285 2286 2209 +f 2365 2295 2215 2364 +f 2283 2189 2188 2282 +f 2365 2364 2212 2294 +f 2492 2373 2376 2487 +f 2396 2489 2495 2525 +f 2491 2506 2374 2507 +f 2394 2486 2487 2376 +f 2342 2340 2339 2341 +f 2298 2288 2281 2301 +f 2192 2284 2340 2342 +f 2362 2363 2209 2286 +f 2284 2192 2189 2283 +f 2341 2339 2285 2208 +f 2395 2488 2489 2396 +f 2506 2491 2288 2298 +f 2525 2495 2486 2394 +s 8 +f 2520 2521 2515 2514 +f 2524 2505 2509 2518 +f 2504 2300 2319 2512 +f 2496 2497 2524 2523 +f 2490 2508 2520 2519 +f 2490 2491 2507 2508 +f 2327 2326 2291 2290 +f 2323 2322 2295 2365 2294 +f 2318 2317 2287 2289 +f 2291 2292 2314 2313 +f 2289 2287 2310 2309 +f 2294 2362 2286 2315 +f 2281 2288 2309 2310 +f 2286 2285 2314 2315 +f 2324 2325 2326 2327 2316 2317 2318 2319 2320 2321 2322 2323 +f 2290 2291 2313 2312 +f 2317 2316 2299 2287 +f 2322 2321 2296 2361 2295 +f 2326 2325 2292 2291 +f 2490 2309 2288 2491 +f 2494 2508 2507 2492 +f 2508 2494 2521 2520 +f 2505 2524 2497 +f 2502 2503 2504 2512 2511 +f 2523 2524 2518 2517 +f 2521 2522 2516 2515 +f 2505 2500 2499 2510 2509 +f 2289 2519 2513 2318 +f 2493 2496 2523 2522 +f 2309 2490 2519 2289 +f 2487 2486 2495 2489 2496 2493 +f 2316 2327 2290 2299 +f 2324 2323 2294 2293 +f 2320 2319 2300 2297 +f 2292 2293 2315 2314 +f 2287 2299 2311 2310 +f 2311 2282 2281 2310 +f 2312 2313 2284 2283 +f 2313 2314 2285 2339 2340 2284 +f 2283 2282 2311 2312 +f 2299 2290 2312 2311 +f 2315 2293 2294 +f 2321 2320 2297 2366 2296 +f 2325 2324 2293 2292 +f 2492 2487 2493 2494 +f 2509 2510 2511 2512 2319 2318 2513 2514 2515 2516 2517 2518 +f 2494 2493 2522 2521 +f 2519 2520 2514 2513 +f 2499 2501 2502 2511 2510 +f 2522 2523 2517 2516 +s 10 +f 2222 2300 2504 2412 +f 2367 2366 2297 2221 +f 2221 2297 2300 2222 +f 2404 2403 2499 2500 +f 2412 2504 2503 2413 +f 2502 2414 2413 2503 +f 2351 2361 2296 2218 +f 2366 2367 2218 2296 +f 2499 2403 2407 2501 +f 2414 2502 2501 2407 +s 35 +f 2505 2399 2404 2500 +f 2497 2488 2498 2505 +f 2399 2505 2498 2400 +f 2497 2496 2489 2488 +g band +usemtl black +s 6 +f 2529 2528 2386 2466 +f 2465 2380 2379 2382 2470 +f 2391 2390 2458 2420 +f 2417 2423 2424 2418 +f 2398 2419 2417 2401 +f 2353 2350 2349 +f 2353 2349 2267 2265 +f 2275 2274 2308 2305 +f 2305 2279 2200 2304 +f 2347 2350 2271 2196 +f 2228 2234 2235 2229 +f 2210 2229 2230 2205 +f 2224 2225 2226 2220 +f 2214 2228 2229 2210 +f 2358 2359 2234 2228 +f 2236 2265 2267 2230 +f 2270 2274 2275 2271 +f 2350 2347 2348 2349 +f 2408 2415 2225 2224 +f 2391 2420 2419 2398 +f 2419 2425 2423 2417 +f 2465 2463 2464 2466 +f 2473 2474 2279 2278 +f 2474 2473 2469 2470 +f 2455 2458 2529 2464 +f 2529 2466 2464 +f 2416 2411 2405 2418 +f 2458 2390 2528 2529 +f 2383 2474 2470 2382 +f 2465 2470 2469 2463 +f 2420 2458 2455 2426 +f 2416 2422 2421 2415 +f 2401 2417 2418 2405 +f 2359 2358 2227 2233 +f 2278 2279 2305 2308 +f 2350 2353 2270 2271 +f 2229 2235 2236 2230 +f 2225 2231 2232 2226 +f 2220 2226 2227 2217 +f 2357 2358 2228 2214 +f 2226 2232 2233 2227 +f 2230 2267 2203 2205 +f 2275 2198 2197 2196 2271 +f 2198 2275 2305 2304 +f 2349 2348 2203 2267 +f 2358 2357 2217 2227 +f 2411 2416 2415 2408 +f 2415 2421 2231 2225 +f 2420 2426 2425 2419 +f 2380 2465 2466 2386 +f 2383 2200 2279 2474 +f 2422 2416 2418 2424 +g facial +usemtl skin +s 1 +f 2848 2846 2847 2849 +f 3276 2856 2857 3277 +f 2856 2854 2855 2857 +f 3388 3400 3402 3389 +f 3392 3388 3390 3391 +f 3375 3377 3380 3376 +f 3369 3371 3372 3370 +f 3298 3363 3364 3299 +f 3353 3355 3356 3354 +f 3343 3347 3348 3344 +f 3308 3339 3340 3309 +f 3327 3319 3322 3323 +f 3311 3304 3303 3310 +f 3296 3298 3300 3297 +f 3389 3390 3388 +f 3331 3332 3333 3334 3330 +f 3308 3309 3307 +f 3291 3289 3288 3290 +f 3281 3279 3278 3280 +f 3095 3263 3264 3262 +f 3260 3261 3314 3312 +f 3256 3257 3302 3306 +f 3252 3253 3342 3316 +f 2588 2578 3238 3040 +f 3237 3032 3244 3245 +f 3036 3296 3295 3241 +f 3231 3087 3266 3269 +f 3032 3042 3235 3240 +f 3093 3092 3229 3228 +f 3100 3291 3293 3221 +f 3227 3093 3275 3277 +f 3033 3238 3245 3244 +f 3094 3099 3219 3224 +f 3105 3112 3223 3222 +f 3104 3099 3218 3214 +f 3108 3153 3205 3207 +f 3153 3108 3210 3206 +f 3143 3141 3189 3196 +f 3134 3135 3171 3164 +f 3141 3143 3195 3188 +f 3114 3158 3117 3187 3194 +f 3127 3130 3168 3170 +f 3130 3127 3169 3167 +f 3120 3117 3186 3181 +f 3156 3110 3201 3199 +f 2682 2683 3185 3190 +f 2691 2692 3166 3173 +f 3118 3186 3191 3157 +f 2669 2728 3206 3210 +f 3119 3148 3179 3181 +f 2994 3000 3147 +f 3232 3145 3267 +f 3134 3004 3165 +f 3356 3358 3385 3383 +f 3097 3220 3222 +f 3121 3183 3188 3116 +f 3184 3140 3142 3189 +f 3128 3129 3133 3164 3171 +f 3133 3163 3132 3022 3006 +f 3167 3169 3125 3126 +f 3125 3123 3178 3173 +f 3148 3123 3174 3179 +f 3157 3113 3198 3192 +f 3201 3109 3155 3199 +f 3205 3153 3109 3201 +f 3107 3208 3214 3103 3152 +f 3221 2659 2661 3216 +f 3098 3095 3224 3219 +f 3230 3091 3287 3286 3225 +f 2650 3227 3277 2857 +f 3091 3088 3228 3229 +f 3364 3366 3270 3268 +f 3085 3089 3084 3047 3062 3086 +f 3081 2634 2638 3082 +f 3020 2562 2634 3081 +f 3029 3080 3079 3026 +f 3076 2626 2625 3074 +f 3070 3066 3065 3073 +f 3070 3072 3248 3249 +f 3065 3066 3064 +f 3053 3375 3374 3052 +f 2716 3060 3061 2715 +f 3253 3252 3261 3260 3259 +f 3057 3247 3059 3058 +f 3053 3311 3313 3054 +f 3046 3045 3246 3050 +f 3002 3045 3046 3001 +f 3373 3037 3241 3295 +f 3363 3234 3041 3365 +f 3033 3040 3238 +f 3242 3241 3037 3035 +f 3026 3027 3030 3029 +f 3007 3017 3024 3023 +f 3159 2565 2564 3019 3021 +f 3336 3012 3014 3329 +f 3399 3015 3013 3396 +f 3012 3013 3015 3014 +f 3400 3008 3384 3387 3401 +f 3362 3361 3003 3002 2994 +f 2993 3147 3000 +f 2999 2990 2989 +f 2998 2994 2997 2996 +f 2993 3343 3346 3147 +f 3353 2989 2990 3355 +f 2545 2742 2705 2546 +f 2979 2977 2978 2980 +f 2967 2922 2921 2968 +f 2956 2958 2957 2955 +f 2948 2950 2949 2947 +f 2940 2942 2941 2939 +f 2932 2934 2933 2931 +f 2924 2926 2925 2923 +f 2914 2913 2912 2918 +f 2896 2894 2895 2897 +f 2887 2886 2885 2888 +f 2983 2985 2984 +f 2943 2946 2945 2944 +f 2900 2902 2901 +f 2873 2875 2874 2872 +f 2863 2865 2864 2862 +f 2645 2842 2840 +f 2898 2900 2830 2839 +f 2886 2887 2836 2835 +f 2926 2924 2832 2831 +f 2964 2587 2603 2963 +f 2822 2823 2814 2577 +f 2819 2818 2583 2581 +f 2807 2808 2643 2646 +f 2816 2820 2821 2580 +f 2853 2851 2805 2649 +f 2871 2794 2658 2873 +f 2803 2804 2649 2648 +f 2813 2814 2579 2590 +f 2810 2801 2652 2646 +f 2797 2799 2665 2656 +f 2785 2791 2664 2666 +f 2788 2784 2668 2725 +f 2781 2783 2727 2671 +f 2793 2798 2658 2662 +f 2754 2749 2704 2706 +f 2760 2765 2710 2708 +f 2779 2771 2677 2732 2672 +f 2752 2747 2695 2688 +f 2739 2744 2698 2701 +f 2756 2758 2686 2722 +f 2770 2776 2732 2677 +f 2769 2767 2682 2734 +f 2755 2750 2691 2684 +f 2767 2769 2733 2681 +f 2729 2782 2784 2667 +f 2723 2929 2943 +f 2930 2719 2535 2946 +f 2717 2843 2883 2884 2642 +f 2703 2704 2749 2742 +f 2794 2871 2867 2660 +f 2906 2972 2973 2987 2988 2905 +f 2773 2800 2713 +f 2760 2753 2690 2687 +f 2761 2709 2707 2754 +f 2741 2703 2545 2547 2702 +f 2697 2702 2740 2745 +f 2745 2747 2696 2697 +f 2693 2694 2743 2750 +f 2759 2764 2679 2687 +f 2733 2675 2770 2768 +f 2777 2730 2670 2781 +f 2781 2670 2728 2783 +f 2792 2786 2666 2664 +f 2802 2795 2660 2867 2868 +f 2797 2841 2654 2655 +f 2865 2806 2647 2869 +f 2854 2856 2958 2956 +f 2644 2808 2807 2647 +f 2642 2641 2717 +f 2640 2596 2546 2705 +f 2576 2637 2636 2573 +f 2632 2630 2631 2633 +f 2614 2623 2630 2632 +f 2629 2626 2627 2628 +f 2605 2610 2620 +f 2827 2619 2615 2828 +f 2613 2614 2612 2593 +f 2602 2961 2963 2603 +f 2609 2587 2588 2716 +f 2925 2825 2608 2923 +f 2825 2901 2902 2605 2606 +f 2602 2895 2888 2601 +f 2824 2891 2892 2598 2594 +f 2543 2594 2592 2544 +f 2882 2586 2583 2880 +f 2591 2577 2814 2813 +f 2580 2587 2964 2965 2816 +f 2816 2582 2819 2820 +f 2570 2569 2572 2573 +f 2976 2977 2560 +f 2914 2556 2555 2913 +f 2912 2919 2934 2932 +f 2552 2554 2982 2980 +f 2553 2554 2552 2551 +f 2940 2938 2967 2969 +f 2535 2543 2544 2945 2946 +f 2541 2719 2534 +f 2530 2531 2540 +f 2537 2538 2535 2539 +f 2719 2930 2927 2534 +f 2939 2531 2530 2937 +f 2533 2534 2927 2931 +f 2537 2908 2909 2538 +f 2540 2531 2539 +f 2541 2540 2539 +f 2542 2538 2909 2910 2546 +f 2922 2936 2934 2919 +f 2551 2552 2550 2549 +f 2550 2552 2980 2978 +f 2920 2553 2551 2968 2921 +f 2915 2984 2985 2556 2914 +f 2904 2567 2547 2903 +f 2571 2572 2569 2568 +f 2823 2822 2578 2815 +f 2583 2586 2581 +f 2812 2817 2581 2589 +f 2957 2591 2813 2955 +f 2592 2593 2548 2544 +f 2594 2598 2597 2592 +f 2601 2888 2885 2600 +f 2605 2902 2899 2604 +f 2892 2923 2608 2598 +f 2832 2836 2837 2831 +f 2603 2587 2609 2604 +f 2612 2568 2548 2593 +f 2592 2829 2613 2593 +f 2620 2610 2715 2714 +f 2622 2625 2624 2621 +f 2628 2631 2630 2629 +f 2612 2571 2568 +f 2573 2636 2635 2570 +f 2627 2639 2637 2576 2575 2574 2633 2631 2628 +f 2881 2878 2600 2611 +f 2810 2809 2717 2840 +f 2848 2850 2952 2950 +f 2858 2651 2803 2861 +f 2654 2645 2640 +f 2870 2864 2866 +f 2791 2663 2660 2795 +f 2724 2661 2793 2789 +f 2780 2786 2665 2674 +f 2764 2771 2678 2679 +f 2758 2685 2681 2763 +f 2687 2690 2752 2759 +f 2690 2696 2747 2752 +f 2739 2700 2694 2744 +f 2736 2738 2700 2566 +f 2749 2754 2707 2705 +f 2772 2765 2679 2678 +f 2678 2673 2780 2772 +f 2567 2904 2905 2988 2975 +f 2877 2875 2798 2659 +f 2796 2792 2664 2657 +f 2645 2840 2717 2641 +f 2718 2935 2937 2530 +f 2731 2776 2770 2675 +f 2784 2788 2726 2667 +f 2738 2736 2565 2699 +f 2757 2755 2684 2720 +f 2775 2769 2734 2676 +f 2768 2770 2677 2735 +f 2751 2756 2722 2688 +f 2737 2739 2701 2567 +f 2759 2752 2688 2722 2686 +f 2785 2779 2672 2729 2667 +f 2753 2760 2708 2706 +f 2761 2754 2706 2708 +f 2789 2793 2662 2725 +f 2777 2781 2671 2731 +f 2790 2788 2725 2662 +f 2786 2780 2673 2666 +f 2792 2796 2656 2665 +f 2809 2810 2646 2643 +f 2955 2813 2590 2953 +f 2861 2803 2648 2863 +f 2864 2870 2872 2862 +f 2850 2852 2954 2952 +f 2947 2811 2586 2882 +f 2802 2807 2646 2652 +f 2820 2819 2581 2817 +f 2966 2962 2585 +f 2824 2599 2889 2891 +f 2924 2893 2833 2832 +f 2887 2894 2837 2836 +f 2645 2654 2841 2842 +f 2866 2869 2868 2867 +f 2866 2864 2865 2869 +f 2875 2877 2876 2874 +f 2903 2906 2905 2904 +f 2963 2966 2965 2964 +f 2986 2988 2987 +f 2886 2890 2889 2885 +f 2898 2896 2897 2899 +f 2913 2920 2919 2912 +f 2926 2900 2901 2925 +f 2934 2936 2935 2933 +f 2942 2907 2908 2941 +f 2950 2952 2951 2949 +f 2961 2960 2959 2962 +f 2968 2970 2969 2967 +f 2981 2979 2980 2982 +f 2742 2749 2705 +f 3347 3343 2993 2992 +f 2997 3325 3324 2996 +f 2998 2990 2999 +f 2998 2999 3000 +f 3005 3326 3325 2997 3001 +f 3344 3348 3328 3334 +f 3009 3008 3400 3388 +f 3392 3009 3388 +f 3384 3008 3010 3382 +f 3344 3334 3333 3150 3345 +f 3160 3021 3019 3390 3389 3022 +f 3025 3024 3017 3016 +f 3027 3028 3031 3030 +f 3037 3038 3035 +f 3039 3034 3041 3234 +f 3365 3041 3235 3367 +f 3038 3037 3373 3376 +f 3001 3046 3047 3005 +f 3050 3305 3301 3051 +f 3054 3313 3315 3055 +f 3058 3059 3049 3048 +f 3257 3256 3255 3254 3258 +f 3056 3061 3060 3055 +f 3062 3047 3046 3050 3051 +f 3064 3066 3250 3251 +f 2714 3071 3248 3072 2622 +f 3070 3073 3074 3072 +f 3074 3073 3077 3076 +f 3026 3079 3065 3063 +f 3016 3020 3081 3025 +f 3082 2638 2639 3083 +f 3086 3062 3297 3300 +f 3088 3231 3269 3271 +f 3228 3088 3271 3273 +f 3227 2650 2651 3226 +f 3095 3262 3233 3224 +f 3292 3278 2859 2876 +f 3103 3101 3217 3213 +f 3152 3103 3213 3211 +f 3111 3106 3208 3202 +f 3115 3111 3202 3194 +f 3119 3118 3190 3185 +f 3178 3123 3148 3180 +f 3169 3174 3123 3125 +f 3131 3126 3166 3161 +f 3160 3162 3131 3021 +f 3124 3128 3171 3176 +f 3189 3142 3144 3196 +f 3223 3144 3197 3097 3222 +f 3084 3096 3097 3197 3144 3142 3140 3138 3136 +f 3385 3358 3323 3322 3386 +f 3004 3327 3326 3005 +f 3001 2997 2994 3002 +f 3354 3381 3338 3352 +f 3119 3185 3180 3148 +f 2676 3198 3200 2730 +f 2669 3210 3212 2724 +f 2692 2699 3161 3166 +f 2683 2720 3180 3185 +f 3110 3154 3205 3201 +f 3117 3158 3191 3186 +f 3127 3122 3174 3169 +f 3130 3132 3163 3168 +f 3117 3120 3182 3187 +f 3143 3112 3203 3195 +f 3135 3137 3176 3171 +f 3141 3139 3184 3189 +f 3108 3151 3212 3210 +f 3113 3155 3200 3198 +f 3100 3102 3213 3217 +f 3112 3143 3196 3223 +f 3105 3215 3209 +f 3087 3232 3267 3266 +f 3370 3372 3276 3274 +f 3290 3280 3278 3292 +f 3092 3281 3283 3229 +f 3042 3369 3367 3235 +f 3299 3364 3268 3265 +f 3099 3094 3225 3218 +f 3032 3240 3243 3244 +f 3035 3038 3380 3379 3239 +f 3341 3247 3317 +f 3255 3256 3306 3309 +f 3259 3260 3312 3310 +f 3095 3098 3220 3263 +f 3279 2858 2859 3278 +f 3284 3288 3289 3285 +f 3299 3300 3298 +f 3324 3325 3326 3327 3323 +f 3386 3387 3385 +f 3297 3294 3295 3296 +f 3305 3307 3309 3306 +f 3318 3315 3314 3316 +f 3335 3338 3337 3336 +f 3346 3343 3344 3345 +f 3354 3352 3351 3353 +f 3362 3346 3345 3359 +f 3370 3368 3367 3369 +f 3373 3295 3294 3374 +f 3387 3384 3383 3385 +f 3399 3396 3395 3397 +f 3052 3374 3294 3051 +f 3266 3267 3145 3265 +f 3275 3273 3272 3274 +f 2850 2848 2849 2851 +f 2854 2852 2853 2855 +f 2846 2843 2844 2847 +f 3273 3271 3269 3268 3270 3272 +f 3275 3274 3276 3277 +f 3005 3136 3165 3004 +f 3394 3392 3391 3393 +f 3382 3337 3338 3381 +f 3371 2957 2958 3372 +f 3363 3365 3366 3364 +f 3355 3357 3358 3356 +f 3347 3349 3350 3348 +f 3339 3341 3342 3340 +f 3334 3328 3329 3330 +f 3313 3311 3310 3312 +f 3304 3301 3302 3303 +f 3398 3399 3397 +f 3360 3361 3362 3359 +f 3317 3318 3316 +f 3290 3292 3293 3291 +f 3280 3282 3283 3281 +f 3262 3264 3089 +f 3261 3252 3316 3314 +f 3257 3258 3303 3302 +f 3253 3254 3340 3342 +f 3377 3054 3040 3378 +f 2577 3237 3245 2822 +f 3034 3036 3241 3242 +f 3090 3087 3231 3230 +f 3033 3244 3243 3239 +f 3093 3228 3273 3275 +f 3291 3100 3217 3289 +f 3092 3093 3227 3226 +f 3042 3032 3237 3236 +f 3090 3094 3224 3233 +f 3098 3105 3222 3220 +f 3106 3104 3214 3208 +f 3151 3108 3207 3211 +f 3109 3153 3206 3204 +f 3102 3100 3221 3216 +f 3137 3135 3172 3177 +f 3139 3141 3188 3183 +f 3110 3156 3114 3194 3202 +f 3122 3127 3170 3175 +f 3132 3130 3167 3162 +f 3149 3120 3181 3179 +f 3114 3156 3199 3193 +f 2734 2682 3190 3192 +f 2684 2691 3173 3178 +f 3118 3157 3192 3190 +f 3107 3207 3205 3154 +f 3359 3345 3150 +f 3362 2994 3147 3346 +f 3086 3300 3299 3265 3145 +f 3165 3172 3135 3134 +f 3101 3285 3289 3217 +f 3321 3402 3401 3387 3386 3322 +f 3144 3223 3196 +f 3121 3124 3176 3183 +f 3177 3138 3140 3184 +f 3133 3006 3004 3134 3164 +f 3168 3163 3133 3129 +f 3129 3128 3170 3168 +f 3173 3166 3126 3125 +f 3121 3116 3187 3182 +f 3191 3193 3113 3157 +f 3204 2670 2730 3200 +f 3206 2728 2670 3204 +f 3104 3106 3209 3215 +f 3286 3285 3101 3218 3225 +f 3097 3096 3263 3220 +f 3287 3091 3229 3283 +f 3372 2958 2856 3276 +f 3091 3230 3231 3088 +f 3145 3085 3086 +f 3136 3005 3047 3084 +f 3028 3082 3083 3031 +f 3080 3078 3077 3079 +f 3079 3077 3073 3065 +f 3075 2627 2626 3076 +f 3071 3061 3056 +f 3250 3066 3070 3249 +f 3044 3063 3065 3064 +f 3054 3377 3375 3053 +f 2716 2588 3040 3060 +f 3339 3059 3247 3341 +f 3057 3056 3318 3317 3247 +f 3052 3304 3311 3053 +f 3045 3049 3308 3307 3246 +f 3003 3043 3045 3002 +f 3296 3036 3039 3298 +f 3236 3237 2577 2591 +f 3239 3379 3378 3040 3033 +f 3243 3242 3035 3239 +f 3028 3027 3024 3025 +f 3019 3391 3390 +f 3329 3014 3015 3330 +f 3348 3350 3335 3328 +f 3394 3396 3013 3011 +f 3010 3011 3013 3012 +f 3383 3381 3354 3356 +f 3004 3006 3319 3327 +f 2994 2998 3000 +f 2999 2989 3146 2991 +f 2998 2996 2995 +f 3355 2990 2995 3357 +f 3351 3349 2991 3146 +f 2975 2988 2986 2974 +f 2977 2976 2974 2978 +f 2962 2966 2963 2961 +f 2954 2956 2955 2953 +f 2883 2948 2947 2882 +f 2938 2940 2939 2937 +f 2928 2932 2931 2927 +f 2893 2924 2923 2892 +f 2907 2906 2903 2911 +f 2894 2887 2888 2895 +f 2881 2884 2882 2880 +f 2974 2976 2975 +f 2914 2918 2917 2916 2915 +f 2891 2893 2892 +f 2872 2870 2871 2873 +f 2862 2860 2861 2863 +f 2840 2842 2841 2653 +f 2896 2898 2839 2838 +f 2890 2886 2835 2834 +f 2900 2926 2831 2830 +f 2587 2815 2578 2588 +f 2823 2821 2579 2814 +f 2818 2879 2880 2583 +f 2847 2844 2643 2808 +f 2817 2812 2590 2579 +f 2805 2806 2648 2649 +f 2798 2875 2873 2658 +f 2855 2853 2649 2804 +f 2821 2823 2815 2580 +f 2801 2796 2657 2652 +f 2799 2800 2674 2665 +f 2791 2795 2657 2664 +f 2784 2782 2727 2668 +f 2783 2787 2668 2727 +f 2773 2766 2710 2712 +f 2741 2748 2704 2703 +f 2765 2772 2712 2710 +f 2771 2764 2680 2735 2677 +f 2747 2745 2698 2695 +f 2744 2746 2695 2698 +f 2758 2763 2680 2686 +f 2776 2778 2672 2732 +f 2767 2762 2683 2682 +f 2750 2743 2692 2691 +f 2733 2768 2763 2681 +f 2787 2783 2728 2669 +f 2758 2756 2721 2685 +f 2719 2541 2535 +f 2845 2717 2809 +f 2742 2545 2703 +f 2969 2971 2942 2940 +f 2799 2797 2655 +f 2679 2765 2760 2687 +f 2766 2711 2709 2761 +f 2748 2741 2702 2697 2696 +f 2547 2567 2701 2740 2702 +f 2694 2693 2746 2744 +f 2750 2755 2689 2693 +f 2756 2751 2689 2721 +f 2769 2775 2675 2733 +f 2776 2731 2671 2778 +f 2778 2671 2727 2782 +f 2726 2663 2791 2785 2667 +f 2793 2661 2659 2798 +f 2796 2801 2653 2656 +f 2802 2868 2869 2647 2807 +f 2857 2855 2804 2650 +f 2806 2805 2644 2647 +f 2846 2848 2950 2948 +f 2642 2611 2596 2640 2645 2641 +f 2636 2638 2634 2635 +f 2635 2634 2562 2561 +f 2571 2632 2633 2574 +f 2624 2625 2626 2629 +f 2623 2614 2615 2619 +f 2827 2826 2621 2619 +f 2613 2615 2614 +f 2601 2960 2961 2602 +f 2715 2610 2609 2716 +f 2837 2838 2839 2830 2831 +f 2607 2608 2825 2606 +f 2603 2897 2895 2602 +f 2599 2824 2594 2595 +f 2542 2595 2594 2543 +f 2879 2818 2584 2959 +f 2949 2589 2811 2947 +f 2815 2587 2580 +f 2582 2584 2818 2819 +f 2574 2575 2572 2571 +f 2568 2569 2558 2548 +f 2566 2560 2564 2565 2736 +f 2913 2555 2553 2920 +f 2982 2554 2556 2985 +f 2555 2556 2554 2553 +f 2987 2973 2970 2549 2986 +f 2911 2903 2547 2545 +f 2541 2539 2535 +f 2532 2718 2530 2540 +f 2536 2537 2539 +f 2941 2536 2531 2939 +f 2718 2532 2933 2935 +f 2532 2533 2931 2933 +f 2908 2537 2536 2941 +f 2531 2536 2539 +f 2533 2532 2540 +f 2540 2541 2534 2533 +f 2918 2912 2932 2928 +f 2974 2986 2549 2550 +f 2974 2550 2978 +f 2968 2551 2549 2970 +f 2929 2723 2917 2918 2928 +f 2567 2975 2976 2560 2566 2737 +f 2557 2558 2569 2570 +f 2575 2576 2573 2572 +f 2582 2585 2584 +f 2811 2589 2581 2586 +f 2951 2812 2589 2949 +f 2962 2959 2584 2585 +f 2546 2596 2595 2542 +f 2600 2885 2889 2599 +f 2604 2899 2897 2603 +f 2597 2598 2608 2607 +f 2836 2832 2833 2834 2835 +f 2604 2609 2610 2605 +f 2600 2599 2595 2596 2611 +f 2829 2828 2615 2613 +f 2622 2621 2826 2620 2714 +f 2621 2624 2623 2619 +f 2629 2630 2623 2624 +f 2612 2614 2632 2571 +f 2570 2635 2561 2557 +f 2637 2639 2638 2636 +f 2884 2881 2611 2642 +f 2849 2847 2808 2644 +f 2851 2849 2644 2805 +f 2803 2651 2650 2804 +f 2801 2810 2840 2653 +f 2876 2859 2860 2874 +f 2790 2794 2660 2663 +f 2788 2790 2663 2726 +f 2779 2785 2666 2673 +f 2771 2779 2673 2678 +f 2762 2767 2681 2685 +f 2757 2721 2689 2755 +f 2693 2689 2751 2746 +f 2738 2743 2694 2700 +f 2566 2700 2739 2737 +f 2753 2748 2696 2690 +f 2773 2713 2711 2766 +f 2799 2655 2774 2713 2800 +f 2705 2707 2709 2711 2713 2774 2655 2654 2640 +f 2972 2906 2907 2942 2971 +f 2546 2910 2911 2545 +f 2543 2535 2538 2542 +f 2936 2922 2967 2938 +f 2721 2757 2762 2685 +f 2730 2777 2775 2676 +f 2724 2789 2787 2669 +f 2743 2738 2699 2692 +f 2762 2757 2720 2683 +f 2778 2782 2729 2672 +f 2763 2768 2735 2680 +f 2746 2751 2688 2695 +f 2745 2740 2701 2698 +f 2764 2759 2686 2680 +f 2772 2780 2674 2712 +f 2748 2753 2706 2704 +f 2766 2761 2708 2710 +f 2787 2789 2725 2668 +f 2775 2777 2731 2675 +f 2794 2790 2662 2658 +f 2800 2773 2712 2674 +f 2786 2792 2665 +f 2844 2845 2809 2643 +f 2852 2854 2956 2954 +f 2874 2860 2862 2872 +f 2806 2865 2863 2648 +f 2812 2951 2953 2590 +f 2843 2846 2948 2883 +f 2795 2802 2652 2657 +f 2821 2820 2817 2579 +f 2816 2965 2966 2585 2582 +f 2901 2825 2925 +f 2893 2890 2834 2833 +f 2894 2896 2838 2837 +f 2841 2797 2656 2653 +f 2860 2859 2858 2861 +f 2867 2871 2870 2866 +f 2882 2884 2883 +f 2907 2911 2910 2909 2908 +f 2971 2973 2972 +f 2880 2879 2878 2881 +f 2890 2893 2891 2889 +f 2900 2898 2899 2902 +f 2920 2921 2922 2919 +f 2929 2928 2927 2930 +f 2937 2935 2936 2938 +f 2943 2929 2930 2946 +f 2953 2951 2952 2954 +f 2960 2878 2879 2959 +f 2971 2969 2970 2973 +f 2983 2981 2982 2985 +f 2600 2878 2960 2601 +f 3349 3347 2992 2991 +f 3357 2995 2996 3324 +f 2998 2995 2990 +f 2999 2991 2992 +f 2992 2993 3000 2999 +f 3335 3350 3352 3338 +f 3008 3009 3011 3010 +f 3392 3394 3011 3009 +f 3337 3382 3010 3012 3336 +f 3330 3015 3399 3398 3331 +f 3319 3006 3022 3320 +f 3023 3024 3027 3026 +f 3238 2578 2822 3245 +f 3034 3039 3036 +f 3041 3034 3240 3235 +f 3371 3236 2591 2957 +f 3003 3007 3044 3043 +f 3043 3048 3049 3045 +f 3051 3301 3304 3052 +f 3055 3315 3318 3056 +f 3049 3059 3339 3308 +f 3253 3259 3258 3254 +f 3055 3060 3040 3054 +f 3044 3007 3023 3063 +f 3044 3064 3251 3043 +f 2714 2715 3061 3071 +f 3072 3074 2625 2622 +f 3076 3077 3078 3075 +f 3023 3026 3063 +f 3025 3081 3082 3028 +f 3075 3078 3080 3029 3030 3031 3083 2639 2627 +f 3062 3051 3294 3297 +f 3262 3145 3232 3233 +f 3366 3368 3272 3270 +f 3279 3226 2651 2858 +f 3084 3089 3096 +f 3284 3282 3288 +f 3218 3101 3103 3214 +f 3212 3216 2661 2724 +f 3112 3105 3209 3203 +f 3116 3115 3194 3187 +f 3186 3118 3119 3181 +f 3182 3175 3124 3121 +f 3175 3170 3128 3124 +f 3167 3126 3131 3162 +f 3021 3131 3161 3159 +f 3136 3138 3177 3172 +f 3115 3116 3188 3195 +f 3195 3203 3111 3115 +f 3389 3402 3321 3320 3022 +f 2659 3221 3293 2877 +f 3099 3104 3215 3219 +f 3085 3145 3262 3089 +f 2989 3353 3351 3146 +f 3113 3193 3199 3155 +f 3107 3152 3211 3207 +f 2699 2565 3159 3161 +f 2720 2684 3178 3180 +f 2676 2734 3192 3198 +f 3158 3114 3193 3191 +f 3122 3149 3179 3174 +f 3022 3132 3162 3160 +f 3120 3149 3122 3175 3182 +f 3107 3154 3110 3202 3208 +f 3137 3139 3183 3176 +f 3139 3137 3177 3184 +f 3151 3102 3216 3212 +f 3155 3109 3204 3200 +f 3102 3151 3211 3213 +f 3106 3111 3203 3209 +f 3105 3098 3219 3215 +f 3087 3090 3233 3232 +f 3369 3042 3236 3371 +f 3281 3092 3226 3279 +f 3280 3290 3288 3282 +f 3368 3370 3274 3272 +f 3298 3039 3234 3363 +f 3094 3090 3230 3225 +f 3240 3034 3242 3243 +f 3038 3376 3380 +f 3307 3305 3050 3246 +f 3254 3255 3309 3340 +f 3258 3259 3310 3303 +f 3264 3263 3096 3089 +f 3285 3286 3287 3284 +f 3287 3283 3282 3284 +f 3292 2876 2877 3293 +f 3320 3321 3322 3319 +f 3378 3379 3380 3377 +f 3401 3402 3400 +f 3301 3305 3306 3302 +f 3315 3313 3312 3314 +f 3328 3335 3336 3329 +f 3341 3317 3316 3342 +f 3349 3351 3352 3350 +f 3357 3324 3323 3358 +f 3365 3367 3368 3366 +f 3376 3373 3374 3375 +f 3381 3383 3384 3382 +f 3396 3394 3393 3395 +f 3136 3172 3165 +f 3269 3266 3265 3268 +f 2843 2717 2845 2844 +f 2852 2850 2851 2853 +g hair +usemtl brnhair +f 3360 3359 3150 3007 +f 3067 3043 3251 +f 3058 3068 3069 3057 +f 2563 2562 3020 3018 +f 3332 3331 3398 3397 3016 3017 +f 2826 2827 2618 2620 +f 2605 2620 2618 2606 +f 2560 2559 2563 2564 +f 2977 2979 2559 2560 +f 2558 2557 2983 2984 2915 2916 +f 2559 2561 2562 2563 +f 2606 2618 2617 2607 +f 2829 2592 2616 +f 2548 2723 2943 2944 +f 3395 3020 3016 3397 +f 3067 3048 3043 +f 3068 3067 3251 3250 +f 3071 3069 3249 3248 +f 3057 3069 3071 3056 +f 2564 2563 3018 3019 +f 3019 3018 3393 3391 +f 2827 2828 2617 2618 +f 2558 2916 2917 2723 2548 +f 2597 2607 2617 2616 +f 2981 2561 2559 2979 +f 2544 2548 2944 2945 +f 2983 2557 2561 2981 +f 2592 2597 2616 +f 2828 2829 2616 2617 +f 3361 3360 3007 3003 +f 3393 3018 3020 3395 +f 3067 3068 3058 3048 +f 3007 3150 3333 3332 3017 +f 3069 3068 3250 3249 +g irisr +usemtl deepgreen +f 3473 3472 3413 3414 +f 3469 3468 3409 3410 +f 3465 3476 3405 3406 +f 3466 3465 3406 3407 +f 3470 3469 3410 3411 +f 3474 3473 3414 3415 +f 3472 3471 3412 3413 +f 3468 3467 3408 3409 +f 3476 3475 3404 3405 +f 3467 3466 3407 3408 +f 3471 3470 3411 3412 +f 3404 3475 3474 3415 +g eyewhiter +usemtl white +f 3464 3463 3462 +f 3464 3459 3458 +f 3464 3455 3454 +f 3463 3451 3450 3462 +f 3459 3447 3446 3458 +f 3455 3443 3442 3454 +f 3451 3439 3438 3450 +f 3447 3435 3434 3446 +f 3443 3431 3430 3442 +f 3439 3427 3426 3438 +f 3435 3423 3422 3434 +f 3431 3419 3418 3430 +f 3427 3415 3414 3426 +f 3423 3411 3410 3422 +f 3419 3407 3406 3418 +f 3418 3406 3405 3417 +f 3422 3410 3409 3421 +f 3426 3414 3413 3425 +f 3430 3418 3417 3429 +f 3434 3422 3421 3433 +f 3438 3426 3425 3437 +f 3442 3430 3429 3441 +f 3446 3434 3433 3445 +f 3450 3438 3437 3449 +f 3454 3442 3441 3453 +f 3458 3446 3445 3457 +f 3462 3450 3449 3461 +f 3464 3454 3453 +f 3464 3458 3457 +f 3464 3462 3461 +f 3464 3452 3463 +f 3464 3460 3459 +f 3464 3456 3455 +f 3452 3440 3451 3463 +f 3460 3448 3447 3459 +f 3456 3444 3443 3455 +f 3440 3428 3439 3451 +f 3448 3436 3435 3447 +f 3444 3432 3431 3443 +f 3428 3416 3427 3439 +f 3436 3424 3423 3435 +f 3432 3420 3419 3431 +f 3416 3404 3415 3427 +f 3424 3412 3411 3423 +f 3420 3408 3407 3419 +f 3417 3405 3404 3416 +f 3421 3409 3408 3420 +f 3425 3413 3412 3424 +f 3429 3417 3416 3428 +f 3433 3421 3420 3432 +f 3437 3425 3424 3436 +f 3441 3429 3428 3440 +f 3445 3433 3432 3444 +f 3449 3437 3436 3448 +f 3453 3441 3440 3452 +f 3457 3445 3444 3456 +f 3461 3449 3448 3460 +f 3464 3453 3452 +f 3464 3457 3456 +f 3464 3461 3460 +g pupilr +usemtl black +f 3469 3470 3403 +f 3473 3474 3403 +f 3465 3466 3403 +f 3476 3465 3403 +f 3472 3473 3403 +f 3468 3469 3403 +f 3470 3471 3403 +f 3474 3475 3403 +f 3466 3467 3403 +f 3475 3476 3403 +f 3471 3472 3403 +f 3467 3468 3403 +g irisl +usemtl deepgreen +f 3489 3488 3547 3548 +f 3485 3484 3543 3544 +f 3481 3480 3539 3540 +f 3480 3479 3550 3539 +f 3484 3483 3542 3543 +f 3488 3487 3546 3547 +f 3489 3548 3549 3478 +f 3486 3485 3544 3545 +f 3482 3481 3540 3541 +f 3479 3478 3549 3550 +f 3483 3482 3541 3542 +f 3487 3486 3545 3546 +g eyewhitel +usemtl white +f 3535 3536 3538 +f 3531 3532 3538 +f 3527 3528 3538 +f 3535 3523 3524 3536 +f 3531 3519 3520 3532 +f 3527 3515 3516 3528 +f 3523 3511 3512 3524 +f 3519 3507 3508 3520 +f 3515 3503 3504 3516 +f 3511 3499 3500 3512 +f 3507 3495 3496 3508 +f 3503 3491 3492 3504 +f 3499 3487 3488 3500 +f 3495 3483 3484 3496 +f 3491 3479 3480 3492 +f 3492 3480 3481 3493 +f 3496 3484 3485 3497 +f 3500 3488 3489 3501 +f 3504 3492 3493 3505 +f 3508 3496 3497 3509 +f 3512 3500 3501 3513 +f 3516 3504 3505 3517 +f 3520 3508 3509 3521 +f 3524 3512 3513 3525 +f 3528 3516 3517 3529 +f 3532 3520 3521 3533 +f 3536 3524 3525 3537 +f 3528 3529 3538 +f 3532 3533 3538 +f 3536 3537 3538 +f 3534 3535 3538 +f 3530 3531 3538 +f 3526 3527 3538 +f 3534 3522 3523 3535 +f 3530 3518 3519 3531 +f 3526 3514 3515 3527 +f 3522 3510 3511 3523 +f 3518 3506 3507 3519 +f 3514 3502 3503 3515 +f 3510 3498 3499 3511 +f 3506 3494 3495 3507 +f 3502 3490 3491 3503 +f 3498 3486 3487 3499 +f 3494 3482 3483 3495 +f 3490 3478 3479 3491 +f 3493 3481 3482 3494 +f 3497 3485 3486 3498 +f 3501 3489 3478 3490 +f 3505 3493 3494 3506 +f 3509 3497 3498 3510 +f 3513 3501 3490 3502 +f 3517 3505 3506 3518 +f 3521 3509 3510 3522 +f 3525 3513 3502 3514 +f 3529 3517 3518 3530 +f 3533 3521 3522 3534 +f 3537 3525 3514 3526 +f 3529 3530 3538 +f 3533 3534 3538 +f 3537 3526 3538 +g pupill +usemtl black +f 3477 3543 3542 +f 3477 3547 3546 +f 3477 3539 3550 +f 3477 3540 3539 +f 3477 3548 3547 +f 3477 3544 3543 +f 3477 3542 3541 +f 3477 3546 3545 +f 3477 3550 3549 +f 3477 3541 3540 +f 3477 3549 3548 +f 3477 3545 3544 +# 3442 elements diff --git a/data/mesh_03.vtk b/data/mesh_03.vtk new file mode 100644 index 0000000..d041211 --- /dev/null +++ b/data/mesh_03.vtk @@ -0,0 +1,28 @@ +# vtk DataFile Version 3.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 12 float +10 10 0 +20 10 0 +20 20 0 +10 20 0 +20 30 0 +10 30 0 +0 20 0 +0 10 0 +10 0 0 +20 0 0 +30 10 0 +30 20 0 +POLYGONS 10 40 +3 8 9 0 +3 2 10 11 +3 10 2 1 +3 2 5 3 +3 4 5 2 +3 7 0 6 +3 3 6 0 +3 9 1 0 +3 0 1 3 +3 1 2 3 diff --git a/data/mesh_04.vtk b/data/mesh_04.vtk new file mode 100644 index 0000000..11162da --- /dev/null +++ b/data/mesh_04.vtk @@ -0,0 +1,5461 @@ +# vtk DataFile Version 3.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 2205 float +0 -0.2048 -0.090616 0 -0.2016 -0.091464 0 -0.1984 -0.09232 +0 -0.1952 -0.093296 0 -0.192 -0.094312 0 -0.1888 -0.095248 +0 -0.1856 -0.096328 0 -0.1824 -0.09752 0 -0.1792 -0.09876 +0 -0.176 -0.100104 0 -0.1728 -0.101392 0 -0.1696 -0.1028 +0 -0.1664 -0.104032 0 -0.1632 -0.105344 0 -0.160 -0.106376 +0 -0.1568 -0.107336 0 -0.1536 -0.108224 0 -0.1504 -0.108808 +0 -0.1472 -0.10928 0 -0.144 -0.109536 0 -0.1408 -0.109664 +0 -0.1376 -0.109672 0 -0.1344 -0.1096 0 -0.1312 -0.109536 +0 -0.128 -0.10956 0 -0.1248 -0.10956 0 -0.1216 -0.109576 +0 -0.1184 -0.10932 0 -0.1152 -0.109096 0 -0.112 -0.108848 +0 -0.1088 -0.10836 0 -0.1056 -0.107944 0 -0.1024 -0.10744 +0 -0.0992002 -0.106952 0 -0.0960002 -0.106784 0 -0.0928002 -0.106168 +0 -0.0896002 -0.106032 0 -0.0864002 -0.105592 0 -0.0832002 -0.105088 +0 -0.0800002 -0.104456 0 -0.0768002 -0.104184 0 -0.0736002 -0.103688 +0 -0.0704002 -0.103344 0 -0.0672002 -0.10332 0 -0.0640002 -0.103152 +0 -0.0608002 -0.10324 0 -0.0576002 -0.10284 0 -0.0544003 -0.102432 +0 -0.0512003 -0.101784 0.00335392 -0.2048 -0.0910582 0.00339514 -0.2016 -0.0921775 +0.00343224 -0.1984 -0.0931848 0.00346935 -0.1952 -0.0941921 0.00351293 -0.192 -0.0953753 +0.0035568 -0.1888 -0.0965665 0.00360598 -0.1856 -0.0979016 0.00365986 -0.1824 -0.0993646 +0.00371581 -0.1792 -0.100884 0.00377411 -0.176 -0.102467 0.00382358 -0.1728 -0.10381 +0.00387982 -0.1696 -0.105337 0.00393018 -0.1664 -0.106704 0.00397906 -0.1632 -0.108031 +0.00402323 -0.16 -0.10923 0.00406151 -0.1568 -0.110269 0.0040883 -0.1536 -0.110997 +0.0041098 -0.1504 -0.11158 0.00412099 -0.1472 -0.111884 0.00412953 -0.144 -0.112116 +0.00413129 -0.1408 -0.112164 0.00413159 -0.1376 -0.112172 0.00413159 -0.1344 -0.112172 +0.00412717 -0.1312 -0.112052 0.00412747 -0.128 -0.11206 0.00412776 -0.1248 -0.112068 +0.00413453 -0.1216 -0.112252 0.00412806 -0.1184 -0.112076 0.00412393 -0.1152 -0.111964 +0.00411039 -0.112 -0.111596 0.00408919 -0.1088 -0.111021 0.00407064 -0.1056 -0.110517 +0.00404943 -0.1024 -0.109941 0.0040247 -0.0992002 -0.10927 0.00401439 -0.0960002 -0.10899 +0.00398995 -0.0928002 -0.108327 0.00397494 -0.0896002 -0.107919 0.00396169 -0.0864002 -0.107559 +0.00393489 -0.0832002 -0.106832 0.0039184 -0.0800002 -0.106384 0.00389985 -0.0768002 -0.10588 +0.00387776 -0.0736002 -0.105281 0.00387394 -0.0704002 -0.105177 0.00387688 -0.0672002 -0.105257 +0.00386451 -0.0640002 -0.104921 0.00386981 -0.0608002 -0.105065 0.00385067 -0.0576002 -0.104545 +0.0038333 -0.0544003 -0.104073 0.00381534 -0.0512003 -0.103586 0.00682217 -0.2048 -0.0924847 +0.00691162 -0.2016 -0.0936974 0.00700402 -0.1984 -0.09495 0.00709583 -0.1952 -0.0961946 +0.00720589 -0.192 -0.0976866 0.007313 -0.1888 -0.0991386 0.00744247 -0.1856 -0.100894 +0.00756547 -0.1824 -0.102561 0.00769201 -0.1792 -0.104277 0.00780912 -0.176 -0.105864 +0.00792683 -0.1728 -0.10746 0.00803865 -0.1696 -0.108976 0.00814282 -0.1664 -0.110388 +0.00823875 -0.1632 -0.111689 0.00833173 -0.16 -0.112949 0.00840059 -0.1568 -0.113883 +0.00844767 -0.1536 -0.114521 0.00847886 -0.1504 -0.114944 0.00849652 -0.1472 -0.115183 +0.00850947 -0.144 -0.115359 0.00851829 -0.1408 -0.115478 0.00851123 -0.1376 -0.115383 +0.00850829 -0.1344 -0.115343 0.00850123 -0.1312 -0.115247 0.00850947 -0.128 -0.115359 +0.00852006 -0.1248 -0.115502 0.00853477 -0.1216 -0.115702 0.00854301 -0.1184 -0.115813 +0.00852241 -0.1152 -0.115534 0.00848651 -0.112 -0.115047 0.00843943 -0.1088 -0.114409 +0.00838293 -0.1056 -0.113643 0.00832997 -0.1024 -0.112925 0.00829642 -0.0992002 -0.11247 +0.0082411 -0.0960002 -0.11172 0.00821874 -0.0928002 -0.111417 0.00817401 -0.0896002 -0.110811 +0.00811986 -0.0864002 -0.110077 0.00808691 -0.0832002 -0.10963 0.00807043 -0.0800002 -0.109407 +0.00802099 -0.0768002 -0.108737 0.00799333 -0.0736002 -0.108362 0.00798097 -0.0704002 -0.108194 +0.00797391 -0.0672002 -0.108098 0.00797097 -0.0640002 -0.108058 0.00795802 -0.0608002 -0.107883 +0.00792918 -0.0576002 -0.107492 0.00788092 -0.0544003 -0.106838 0.00784679 -0.0512003 -0.106375 +0.0103178 -0.2048 -0.0930376 0.0104695 -0.2016 -0.0944052 0.0106582 -0.1984 -0.0961068 +0.0108407 -0.1952 -0.0977527 0.0110426 -0.192 -0.0995736 0.0112543 -0.1888 -0.101482 +0.01148 -0.1856 -0.103517 0.0116934 -0.1824 -0.105442 0.0118953 -0.1792 -0.107262 +0.0120858 -0.176 -0.10898 0.0122542 -0.1728 -0.110499 0.0124112 -0.1696 -0.111914 +0.0125805 -0.1664 -0.113441 0.0127066 -0.1632 -0.114578 0.0128186 -0.16 -0.115587 +0.0128935 -0.1568 -0.116263 0.0129447 -0.1536 -0.116724 0.0129932 -0.1504 -0.117162 +0.0130178 -0.1472 -0.117384 0.013039 -0.144 -0.117575 0.0130531 -0.1408 -0.117702 +0.0130566 -0.1376 -0.117734 0.0130461 -0.1344 -0.117639 0.0130214 -0.1312 -0.117416 +0.0130496 -0.128 -0.117671 0.0131007 -0.1248 -0.118132 0.0131378 -0.1216 -0.118466 +0.0131519 -0.1184 -0.118593 0.0130769 -0.1152 -0.117917 0.0130381 -0.112 -0.117567 +0.0129976 -0.1088 -0.117201 0.0128459 -0.1056 -0.115834 0.0127806 -0.1024 -0.115245 +0.0127392 -0.0992002 -0.114872 0.0126951 -0.0960002 -0.114474 0.0126431 -0.0928002 -0.114005 +0.0125373 -0.0896002 -0.113051 0.0125038 -0.0864002 -0.112749 0.0124526 -0.0832002 -0.112288 +0.0124094 -0.0800002 -0.111898 0.0123512 -0.0768002 -0.111373 0.0123062 -0.0736002 -0.110968 +0.0122886 -0.0704002 -0.110809 0.0122648 -0.0672002 -0.110594 0.0122666 -0.0640002 -0.11061 +0.0122216 -0.0608002 -0.110204 0.0121713 -0.0576002 -0.109751 0.0121237 -0.0544003 -0.109322 +0.0120514 -0.0512003 -0.10867 0.0138997 -0.2048 -0.0937027 0.0141544 -0.2016 -0.0954199 +0.014442 -0.1984 -0.0973587 0.0147413 -0.1952 -0.0993766 0.0150242 -0.192 -0.101284 +0.0153235 -0.1888 -0.103302 0.0155771 -0.1856 -0.105011 0.0158741 -0.1824 -0.107013 +0.0161417 -0.1792 -0.108817 0.0163507 -0.176 -0.110226 0.0165831 -0.1728 -0.111793 +0.0167721 -0.1696 -0.113067 0.0169576 -0.1664 -0.114317 0.0171137 -0.1632 -0.11537 +0.0172322 -0.16 -0.116169 0.0172992 -0.1568 -0.11662 0.0173508 -0.1536 -0.116968 +0.0174165 -0.1504 -0.117411 0.0174741 -0.1472 -0.117799 0.0175257 -0.144 -0.118147 +0.0175562 -0.1408 -0.118353 0.0175656 -0.1376 -0.118416 0.0175762 -0.1344 -0.118487 +0.0175856 -0.1312 -0.118551 0.0176044 -0.128 -0.118677 0.0176044 -0.1248 -0.118677 +0.0176501 -0.1216 -0.118986 0.0176325 -0.1184 -0.118867 0.0176102 -0.1152 -0.118717 +0.0175269 -0.112 -0.118155 0.0174271 -0.1088 -0.117482 0.0173121 -0.1056 -0.116707 +0.0170585 -0.1024 -0.114998 0.0169681 -0.0992002 -0.114388 0.0170749 -0.0960002 -0.115108 +0.0170761 -0.0928002 -0.115116 0.0170585 -0.0896002 -0.114998 0.0169658 -0.0864002 -0.114373 +0.0169 -0.0832002 -0.113929 0.0168155 -0.0800002 -0.11336 0.0167204 -0.0768002 -0.112719 +0.0166418 -0.0736002 -0.112188 0.016569 -0.0704002 -0.111698 0.0165326 -0.0672002 -0.111452 +0.0164751 -0.0640002 -0.111065 0.0164 -0.0608002 -0.110558 0.016346 -0.0576002 -0.110194 +0.016265 -0.0544003 -0.109648 0.0161922 -0.0512003 -0.109158 0.017329 -0.2048 -0.0930725 +0.0176994 -0.2016 -0.0950623 0.0180787 -0.1984 -0.0970993 0.0184858 -0.1952 -0.0992858 +0.0188738 -0.192 -0.10137 0.0192004 -0.1888 -0.103124 0.0195284 -0.1856 -0.104886 +0.0198462 -0.1824 -0.106592 0.0201156 -0.1792 -0.108039 0.0203514 -0.176 -0.109306 +0.0205681 -0.1728 -0.11047 0.0207907 -0.1696 -0.111665 0.0209796 -0.1664 -0.11268 +0.0211392 -0.1632 -0.113537 0.0212636 -0.16 -0.114205 0.0213676 -0.1568 -0.114764 +0.0214555 -0.1536 -0.115236 0.0215316 -0.1504 -0.115645 0.0216224 -0.1472 -0.116132 +0.0216971 -0.144 -0.116533 0.0217806 -0.1408 -0.116982 0.021864 -0.1376 -0.11743 +0.0219372 -0.1344 -0.117823 0.0219563 -0.1312 -0.117925 0.0219709 -0.128 -0.118004 +0.0219636 -0.1248 -0.117965 0.0219841 -0.1216 -0.118075 0.0219533 -0.1184 -0.11791 +0.0218626 -0.1152 -0.117422 0.0216253 -0.112 -0.116148 0.0215038 -0.1088 -0.115495 +0.0214115 -0.1056 -0.115 0.0210279 -0.1024 -0.112939 0.0207511 -0.0992002 -0.111453 +0.0207658 -0.0960002 -0.111531 0.0208961 -0.0928002 -0.112231 0.0211333 -0.0896002 -0.113505 +0.0212182 -0.0864002 -0.113962 0.0212344 -0.0832002 -0.114048 0.0212007 -0.0800002 -0.113867 +0.0210821 -0.0768002 -0.11323 0.0209166 -0.0736002 -0.112341 0.0207628 -0.0704002 -0.111516 +0.0206105 -0.0672002 -0.110698 0.0204846 -0.0640002 -0.110021 0.0203733 -0.0608002 -0.109424 +0.0203089 -0.0576002 -0.109077 0.0201976 -0.0544003 -0.10848 0.0200995 -0.0512003 -0.107953 +0.020892 -0.2048 -0.0930351 0.0213898 -0.2016 -0.0952519 0.021821 -0.1984 -0.0971721 +0.0223048 -0.1952 -0.0993264 0.0227132 -0.192 -0.101145 0.0231128 -0.1888 -0.102925 +0.0234652 -0.1856 -0.104494 0.0237684 -0.1824 -0.105844 0.0240453 -0.1792 -0.107077 +0.0242925 -0.176 -0.108178 0.0245081 -0.1728 -0.109138 0.0247254 -0.1696 -0.110106 +0.0249147 -0.1664 -0.110949 0.025069 -0.1632 -0.111636 0.025211 -0.16 -0.112268 +0.0253249 -0.1568 -0.112775 0.0254774 -0.1536 -0.113455 0.0256071 -0.1504 -0.114032 +0.0257088 -0.1472 -0.114485 0.0258104 -0.144 -0.114938 0.0259156 -0.1408 -0.115406 +0.0260646 -0.1376 -0.116069 0.0262066 -0.1344 -0.116702 0.0263118 -0.1312 -0.11717 +0.0263661 -0.128 -0.117412 0.0263678 -0.1248 -0.11742 0.0263012 -0.1216 -0.117123 +0.0261873 -0.1184 -0.116616 0.0260418 -0.1152 -0.115968 0.025835 -0.112 -0.115047 +0.0255142 -0.1088 -0.113618 0.0252583 -0.1056 -0.112479 0.0249445 -0.1024 -0.111082 +0.0243889 -0.0992002 -0.108607 0.0244397 -0.0960002 -0.108834 0.0246431 -0.0928002 -0.109739 +0.0249621 -0.0896002 -0.11116 0.0252425 -0.0864002 -0.112409 0.025388 -0.0832002 -0.113056 +0.0254441 -0.0800002 -0.113306 0.0253898 -0.0768002 -0.113064 0.025197 -0.0736002 -0.112206 +0.0249428 -0.0704002 -0.111074 0.0246694 -0.0672002 -0.109856 0.024445 -0.0640002 -0.108857 +0.0242907 -0.0608002 -0.10817 0.0241575 -0.0576002 -0.107577 0.0240173 -0.0544003 -0.106952 +0.0238718 -0.0512003 -0.106305 0.024655 -0.2048 -0.0935414 0.0252055 -0.2016 -0.09563 +0.0257234 -0.1984 -0.0975949 0.0262413 -0.1952 -0.0995598 0.0267021 -0.192 -0.101308 +0.0271425 -0.1888 -0.102979 0.027485 -0.1856 -0.104279 0.027799 -0.1824 -0.10547 +0.0280458 -0.1792 -0.106406 0.0282741 -0.176 -0.107272 0.0284903 -0.1728 -0.108092 +0.0286941 -0.1696 -0.108866 0.0288552 -0.1664 -0.109477 0.0289878 -0.1632 -0.10998 +0.0291244 -0.16 -0.110498 0.0292773 -0.1568 -0.111078 0.0294689 -0.1536 -0.111806 +0.0296015 -0.1504 -0.112308 0.029785 -0.1472 -0.113005 0.0299766 -0.144 -0.113732 +0.0302295 -0.1408 -0.114691 0.0304334 -0.1376 -0.115465 0.0305924 -0.1344 -0.116068 +0.0307392 -0.1312 -0.116625 0.0308656 -0.128 -0.117105 0.0308717 -0.1248 -0.117128 +0.030782 -0.1216 -0.116787 0.0305883 -0.1184 -0.116053 0.0303233 -0.1152 -0.115047 +0.0300358 -0.112 -0.113956 0.0296953 -0.1088 -0.112664 0.0290856 -0.1056 -0.110351 +0.0287941 -0.1024 -0.109245 0.0284882 -0.0992002 -0.108085 0.0283169 -0.0960002 -0.107435 +0.0287125 -0.0928002 -0.108936 0.0291142 -0.0896002 -0.11046 0.0294078 -0.0864002 -0.111574 +0.0296932 -0.0832002 -0.112657 0.0298135 -0.0800002 -0.113113 0.0297524 -0.0768002 -0.112881 +0.0296056 -0.0736002 -0.112324 0.0292997 -0.0704002 -0.111164 0.0289164 -0.0672002 -0.109709 +0.0285473 -0.0640002 -0.108309 0.0283455 -0.0608002 -0.107543 0.0281763 -0.0576002 -0.106901 +0.0279846 -0.0544003 -0.106174 0.0277848 -0.0512003 -0.105416 0.0286108 -0.2048 -0.0943159 +0.0292541 -0.2016 -0.0964365 0.0298207 -0.1984 -0.0983045 0.0303595 -0.1952 -0.100081 +0.0308356 -0.192 -0.10165 0.0313256 -0.1888 -0.103265 0.0316461 -0.1856 -0.104322 +0.0319108 -0.1824 -0.105194 0.0321268 -0.1792 -0.105906 0.0322708 -0.176 -0.106381 +0.0324403 -0.1728 -0.10694 0.0325936 -0.1696 -0.107445 0.0326888 -0.1664 -0.107759 +0.0327933 -0.1632 -0.108104 0.0329442 -0.16 -0.108601 0.0331741 -0.1568 -0.109359 +0.03349 -0.1536 -0.1104 0.0337872 -0.1504 -0.11138 0.0340473 -0.1472 -0.112237 +0.0342842 -0.144 -0.113018 0.034535 -0.1408 -0.113845 0.0348671 -0.1376 -0.11494 +0.0351435 -0.1344 -0.115851 0.035313 -0.1312 -0.11641 0.0354314 -0.128 -0.1168 +0.0354477 -0.1248 -0.116854 0.0353292 -0.1216 -0.116463 0.0349971 -0.1184 -0.115369 +0.0346279 -0.1152 -0.114151 0.0342238 -0.112 -0.112819 0.0336595 -0.1088 -0.110959 +0.0330046 -0.1056 -0.1088 0.0327445 -0.1024 -0.107943 0.0327677 -0.0992002 -0.108019 +0.0321616 -0.0960002 -0.106021 0.0323938 -0.0928002 -0.106787 0.0333901 -0.0896002 -0.110071 +0.0336734 -0.0864002 -0.111005 0.0339962 -0.0832002 -0.112069 0.0342401 -0.0800002 -0.112873 +0.0341983 -0.0768002 -0.112735 0.0340218 -0.0736002 -0.112153 0.0336827 -0.0704002 -0.111036 +0.0331648 -0.0672002 -0.109328 0.0327283 -0.0640002 -0.107889 0.032438 -0.0608002 -0.106932 +0.0322499 -0.0576002 -0.106312 0.0319828 -0.0544003 -0.105432 0.0317157 -0.0512003 -0.104551 +0.0327188 -0.2048 -0.0951053 0.0333955 -0.2016 -0.0970721 0.0340747 -0.1984 -0.0990466 +0.0346967 -0.1952 -0.100855 0.0352042 -0.192 -0.10233 0.0356284 -0.1888 -0.103563 +0.0359095 -0.1856 -0.10438 0.0360787 -0.1824 -0.104871 0.0361906 -0.1792 -0.105197 +0.0362816 -0.176 -0.105462 0.0363441 -0.1728 -0.105643 0.0364274 -0.1696 -0.105885 +0.0364794 -0.1664 -0.106036 0.0366694 -0.1632 -0.106589 0.0369297 -0.16 -0.107345 +0.0372498 -0.1568 -0.108276 0.0376115 -0.1536 -0.109327 0.0380019 -0.1504 -0.110462 +0.0383949 -0.1472 -0.111604 0.038754 -0.144 -0.112648 0.0390767 -0.1408 -0.113586 +0.0394411 -0.1376 -0.114645 0.0397768 -0.1344 -0.115621 0.0400397 -0.1312 -0.116385 +0.0401646 -0.128 -0.116748 0.0401204 -0.1248 -0.11662 0.0399538 -0.1216 -0.116136 +0.0395608 -0.1184 -0.114993 0.0389987 -0.1152 -0.113359 0.0383949 -0.112 -0.111604 +0.0375387 -0.1088 -0.109115 0.0370442 -0.1056 -0.107678 0.0371951 -0.1024 -0.108117 +0.0371327 -0.0992002 -0.107935 0.03643 -0.0960002 -0.105893 0.0367085 -0.0928002 -0.106702 +0.037281 -0.0896002 -0.108366 0.038054 -0.0864002 -0.110613 0.0383584 -0.0832002 -0.111498 +0.0387488 -0.0800002 -0.112633 0.0388087 -0.0768002 -0.112807 0.0385432 -0.0736002 -0.112035 +0.0381945 -0.0704002 -0.111022 0.0376818 -0.0672002 -0.109531 0.0371561 -0.0640002 -0.108003 +0.0368542 -0.0608002 -0.107126 0.0365445 -0.0576002 -0.106226 0.0362868 -0.0544003 -0.105477 +0.0358288 -0.0512003 -0.104145 0.0369602 -0.2048 -0.0958145 0.0377261 -0.2016 -0.0977999 +0.0384689 -0.1984 -0.0997256 0.0390563 -0.1952 -0.101248 0.0395486 -0.192 -0.102525 +0.0398682 -0.1888 -0.103353 0.0400554 -0.1856 -0.103838 0.0401158 -0.1824 -0.103995 +0.0401475 -0.1792 -0.104077 0.0400957 -0.176 -0.103943 0.0401187 -0.1728 -0.104002 +0.0401907 -0.1696 -0.104189 0.0402886 -0.1664 -0.104443 0.0404815 -0.1632 -0.104943 +0.0406917 -0.16 -0.105488 0.0410228 -0.1568 -0.106346 0.0414345 -0.1536 -0.107413 +0.0418117 -0.1504 -0.108391 0.0421946 -0.1472 -0.109384 0.0427359 -0.144 -0.110787 +0.043306 -0.1408 -0.112265 0.0437206 -0.1376 -0.11334 0.0441352 -0.1344 -0.114415 +0.0444145 -0.1312 -0.115139 0.0445527 -0.128 -0.115497 0.044544 -0.1248 -0.115474 +0.0443108 -0.1216 -0.11487 0.0437983 -0.1184 -0.113541 0.043067 -0.1152 -0.111645 +0.0420909 -0.112 -0.109115 0.0406456 -0.1088 -0.105368 0.041017 -0.1056 -0.106331 +0.041469 -0.1024 -0.107503 0.0413308 -0.0992002 -0.107145 0.0405304 -0.0960002 -0.10507 +0.0410544 -0.0928002 -0.106428 0.0414402 -0.0896002 -0.107428 0.0419499 -0.0864002 -0.108749 +0.0423702 -0.0832002 -0.109839 0.0429547 -0.0800002 -0.111354 0.0431591 -0.0768002 -0.111884 +0.0430152 -0.0736002 -0.111511 0.0427013 -0.0704002 -0.110698 0.0421485 -0.0672002 -0.109264 +0.0417138 -0.0640002 -0.108137 0.0413539 -0.0608002 -0.107204 0.0409767 -0.0576002 -0.106227 +0.040516 -0.0544003 -0.105032 0.0400179 -0.0512003 -0.103741 0.0410261 -0.2048 -0.0957053 +0.0418582 -0.2016 -0.0976464 0.0426683 -0.1984 -0.0995361 0.0432419 -0.1952 -0.100874 +0.0436832 -0.192 -0.101904 0.0439448 -0.1888 -0.102514 0.0440457 -0.1856 -0.102749 +0.0440394 -0.1824 -0.102735 0.0439826 -0.1792 -0.102602 0.0439385 -0.176 -0.102499 +0.0438944 -0.1728 -0.102396 0.0439133 -0.1696 -0.102441 0.0440394 -0.1664 -0.102735 +0.0442695 -0.1632 -0.103271 0.0444365 -0.16 -0.103661 0.0445689 -0.1568 -0.10397 +0.0444933 -0.1536 -0.103793 0.0443829 -0.1504 -0.103536 0.0445468 -0.1472 -0.103918 +0.0448368 -0.144 -0.104595 0.0463624 -0.1408 -0.108154 0.0472607 -0.1376 -0.110249 +0.0478154 -0.1344 -0.111543 0.0481369 -0.1312 -0.112293 0.0483891 -0.128 -0.112882 +0.0484049 -0.1248 -0.112918 0.0481748 -0.1216 -0.112382 0.0475633 -0.1184 -0.110955 +0.0466681 -0.1152 -0.108867 0.0454389 -0.112 -0.105999 0.0437116 -0.1088 -0.10197 +0.0443546 -0.1056 -0.10347 0.0450732 -0.1024 -0.105146 0.0451047 -0.0992002 -0.10522 +0.0443829 -0.0960002 -0.103536 0.0436643 -0.0928002 -0.10186 0.0444964 -0.0896002 -0.103801 +0.0451741 -0.0864002 -0.105382 0.0457068 -0.0832002 -0.106624 0.0464853 -0.0800002 -0.10844 +0.0469108 -0.0768002 -0.109433 0.0469297 -0.0736002 -0.109477 0.0468226 -0.0704002 -0.109227 +0.0463372 -0.0672002 -0.108095 0.0459968 -0.0640002 -0.107301 0.0455744 -0.0608002 -0.106316 +0.0450984 -0.0576002 -0.105205 0.0445059 -0.0544003 -0.103823 0.0438912 -0.0512003 -0.102389 +0.0452153 -0.2048 -0.0955984 0.0461662 -0.2016 -0.0976089 0.0469051 -0.1984 -0.099171 +0.0474865 -0.1952 -0.1004 0.0479244 -0.192 -0.101326 0.0481569 -0.1888 -0.101818 +0.0483485 -0.1856 -0.102223 0.0483177 -0.1824 -0.102158 0.0482288 -0.1792 -0.10197 +0.0480509 -0.176 -0.101594 0.048003 -0.1728 -0.101492 0.0479928 -0.1696 -0.101471 +0.0479928 -0.1664 -0.101471 0.0480954 -0.1632 -0.101688 0.0480099 -0.16 -0.101507 +0.0479209 -0.1568 -0.101319 0.0479551 -0.1536 -0.101391 0.0481056 -0.1504 -0.101709 +0.0482185 -0.1472 -0.101948 0.0482288 -0.144 -0.10197 0.04854 -0.1408 -0.102628 +0.0493199 -0.1376 -0.104277 0.0506573 -0.1344 -0.107104 0.0512525 -0.1312 -0.108363 +0.0516219 -0.128 -0.109144 0.051769 -0.1248 -0.109455 0.051639 -0.1216 -0.10918 +0.0510473 -0.1184 -0.107929 0.050134 -0.1152 -0.105998 0.0486734 -0.112 -0.10291 +0.0465459 -0.1088 -0.0984116 0.0468743 -0.1056 -0.0991059 0.0479346 -0.1024 -0.101348 +0.0481125 -0.0992002 -0.101724 0.0474831 -0.0960002 -0.100393 0.0468708 -0.0928002 -0.0990987 +0.0485777 -0.0896002 -0.102707 0.0480783 -0.0864002 -0.101652 0.0486461 -0.0832002 -0.102852 +0.0493165 -0.0800002 -0.104269 0.0503221 -0.0768002 -0.106396 0.0507018 -0.0736002 -0.107198 +0.0507531 -0.0704002 -0.107307 0.0505034 -0.0672002 -0.106779 0.0501511 -0.0640002 -0.106034 +0.0497543 -0.0608002 -0.105195 0.0491249 -0.0576002 -0.103864 0.0483382 -0.0544003 -0.102201 +0.0475994 -0.0512003 -0.100639 0.0495361 -0.2048 -0.0954742 0.0505383 -0.2016 -0.0974057 +0.0513636 -0.1984 -0.0989964 0.0519457 -0.1952 -0.100118 0.0524947 -0.192 -0.101176 +0.0527636 -0.1888 -0.101695 0.0529257 -0.1856 -0.102007 0.052922 -0.1824 -0.102 +0.0526568 -0.1792 -0.101489 0.0524468 -0.176 -0.101084 0.0522257 -0.1728 -0.100658 +0.0521078 -0.1696 -0.100431 0.0520452 -0.1664 -0.10031 0.0517541 -0.1632 -0.0997491 +0.0513157 -0.16 -0.098904 0.0507298 -0.1568 -0.097775 0.050074 -0.1536 -0.096511 +0.0508146 -0.1504 -0.0979383 0.0513672 -0.1472 -0.0990035 0.0517357 -0.144 -0.0997136 +0.0519199 -0.1408 -0.100069 0.0520525 -0.1376 -0.100324 0.0524357 -0.1344 -0.101063 +0.053261 -0.1312 -0.102653 0.0542889 -0.128 -0.104635 0.0546537 -0.1248 -0.105338 +0.05472 -0.1216 -0.105465 0.0544363 -0.1184 -0.104919 0.0535189 -0.1152 -0.103151 +0.0519715 -0.112 -0.100168 0.049853 -0.1088 -0.0960849 0.049503 -0.1056 -0.0954103 +0.0505677 -0.1024 -0.0974625 0.0507446 -0.0992002 -0.0978034 0.0499119 -0.0960002 -0.0961985 +0.0492966 -0.0928002 -0.0950126 0.0508625 -0.0896002 -0.0980306 0.0503209 -0.0864002 -0.0969868 +0.0514741 -0.0832002 -0.0992094 0.0518941 -0.0800002 -0.100019 0.0539242 -0.0768002 -0.103932 +0.0546132 -0.0736002 -0.10526 0.0547237 -0.0704002 -0.105473 0.0545763 -0.0672002 -0.105189 +0.0542152 -0.0640002 -0.104493 0.0538579 -0.0608002 -0.103804 0.0531099 -0.0576002 -0.102362 +0.0522331 -0.0544003 -0.100672 0.0513304 -0.0512003 -0.0989325 0.0538054 -0.2048 -0.0949783 +0.0549608 -0.2016 -0.0970178 0.0558243 -0.1984 -0.0985422 0.0566248 -0.1952 -0.0999552 +0.0571571 -0.192 -0.100895 0.0575869 -0.1888 -0.101654 0.0576737 -0.1856 -0.101807 +0.0575317 -0.1824 -0.101556 0.0572202 -0.1792 -0.101006 0.0567983 -0.176 -0.100261 +0.0564276 -0.1728 -0.0996072 0.0561437 -0.1696 -0.099106 0.0556942 -0.1664 -0.0983125 +0.0551461 -0.1632 -0.097345 0.0546335 -0.16 -0.0964401 0.053904 -0.1568 -0.0951524 +0.0533006 -0.1536 -0.0940874 0.0542943 -0.1504 -0.0958415 0.0550041 -0.1472 -0.0970944 +0.0552999 -0.144 -0.0976164 0.0553551 -0.1408 -0.0977139 0.055501 -0.1376 -0.0979714 +0.055568 -0.1344 -0.0980898 0.0555483 -0.1312 -0.098055 0.055777 -0.128 -0.0984587 +0.0567707 -0.1248 -0.100213 0.0573701 -0.1216 -0.101271 0.0574489 -0.1184 -0.10141 +0.0568298 -0.1152 -0.100317 0.0552999 -0.112 -0.0976164 0.0534426 -0.1088 -0.094338 +0.052027 -0.1056 -0.0918391 0.052445 -0.1024 -0.0925769 0.0527644 -0.0992002 -0.0931407 +0.0522517 -0.0960002 -0.0922358 0.0526342 -0.0928002 -0.092911 0.0525357 -0.0896002 -0.092737 +0.0528945 -0.0864002 -0.0933704 0.0536477 -0.0832002 -0.0946999 0.0550081 -0.0800002 -0.0971014 +0.0573464 -0.0768002 -0.101229 0.0583677 -0.0736002 -0.103032 0.0585925 -0.0704002 -0.103429 +0.0584781 -0.0672002 -0.103227 0.0581705 -0.0640002 -0.102684 0.0577171 -0.0608002 -0.101883 +0.05696 -0.0576002 -0.100547 0.0558046 -0.0544003 -0.0985074 0.0548424 -0.0512003 -0.096809 +0.058142 -0.2048 -0.094357 0.0595185 -0.2016 -0.0965909 0.0608615 -0.1984 -0.0987704 +0.0616882 -0.1952 -0.100112 0.0623094 -0.192 -0.10112 0.0625989 -0.1888 -0.10159 +0.0625444 -0.1856 -0.101502 0.0622758 -0.1824 -0.101066 0.061789 -0.1792 -0.100276 +0.0612098 -0.176 -0.0993357 0.0607314 -0.1728 -0.0985593 0.0602236 -0.1696 -0.0977352 +0.0596066 -0.1664 -0.096734 0.0591114 -0.1632 -0.0959303 0.0586246 -0.16 -0.0951402 +0.0582133 -0.1568 -0.0944728 0.0575754 -0.1536 -0.0934375 0.0591198 -0.1504 -0.0959439 +0.0596612 -0.1472 -0.0968225 0.0596654 -0.144 -0.0968293 0.0594262 -0.1408 -0.0964411 +0.0592121 -0.1376 -0.0960938 0.0590443 -0.1344 -0.0958213 0.0587211 -0.1312 -0.0952969 +0.05857 -0.128 -0.0950517 0.0586708 -0.1248 -0.0952152 0.0593884 -0.1216 -0.0963798 +0.0601103 -0.1184 -0.0975513 0.0600137 -0.1152 -0.0973946 0.0585994 -0.112 -0.0950994 +0.0568871 -0.1088 -0.0923206 0.0554938 -0.1056 -0.0900594 0.0546754 -0.1024 -0.0887313 +0.0550574 -0.0992002 -0.0893511 0.0546125 -0.0960002 -0.0886291 0.054004 -0.0928002 -0.0876415 +0.0543733 -0.0896002 -0.0882409 0.0547258 -0.0864002 -0.088813 0.0562199 -0.0832002 -0.0912376 +0.058931 -0.0800002 -0.0956374 0.0610839 -0.0768002 -0.0991314 0.0619275 -0.0736002 -0.1005 +0.0621877 -0.0704002 -0.100923 0.0621121 -0.0672002 -0.1008 0.0619107 -0.0640002 -0.100473 +0.0614071 -0.0608002 -0.0996558 0.0605929 -0.0576002 -0.0983345 0.0593045 -0.0544003 -0.0962436 +0.0581546 -0.0512003 -0.0943774 0.0628024 -0.2048 -0.0939889 0.0646246 -0.2016 -0.0967161 +0.0661003 -0.1984 -0.0989244 0.0669981 -0.1952 -0.100268 0.0675848 -0.192 -0.101146 +0.0677981 -0.1888 -0.101465 0.0675759 -0.1856 -0.101133 0.0670292 -0.1824 -0.100315 +0.0663669 -0.1792 -0.0993235 0.0657002 -0.176 -0.0983258 0.0650069 -0.1728 -0.0972881 +0.0643846 -0.1696 -0.0963569 0.063958 -0.1664 -0.0957183 0.063509 -0.1632 -0.0950465 +0.0631979 -0.16 -0.0945809 0.063029 -0.1568 -0.0943281 0.0615356 -0.1536 -0.0920931 +0.0638868 -0.1504 -0.0956119 0.0644113 -0.1472 -0.0963968 0.0642869 -0.144 -0.0962105 +0.0638291 -0.1408 -0.0955254 0.0632513 -0.1376 -0.0946607 0.0627579 -0.1344 -0.0939223 +0.0624512 -0.1312 -0.0934634 0.0621979 -0.128 -0.0930842 0.062269 -0.1248 -0.0931907 +0.0624868 -0.1216 -0.0935166 0.0628557 -0.1184 -0.0940687 0.0631801 -0.1152 -0.0945543 +0.0620157 -0.112 -0.0928115 0.0604289 -0.1088 -0.0904368 0.0593089 -0.1056 -0.0887606 +0.0581044 -0.1024 -0.086958 0.0570421 -0.0992002 -0.0853682 0.0569177 -0.0960002 -0.085182 +0.0562421 -0.0928002 -0.0841709 0.0560554 -0.0896002 -0.0838915 0.0571088 -0.0864002 -0.085468 +0.0589755 -0.0832002 -0.0882617 0.0632957 -0.0800002 -0.0947272 0.064878 -0.0768002 -0.0970952 +0.0656425 -0.0736002 -0.0982393 0.0658958 -0.0704002 -0.0986185 0.0658114 -0.0672002 -0.0984921 +0.0655358 -0.0640002 -0.0980797 0.0649047 -0.0608002 -0.0971351 0.0640335 -0.0576002 -0.0958314 +0.0624423 -0.0544003 -0.0934501 0.0611223 -0.0512003 -0.0914745 0.0677237 -0.2048 -0.0936948 +0.0697716 -0.2016 -0.0965281 0.0713744 -0.1984 -0.0987455 0.0723304 -0.1952 -0.100068 +0.0728694 -0.192 -0.100814 0.0729818 -0.1888 -0.100969 0.0726585 -0.1856 -0.100522 +0.0720117 -0.1824 -0.0996273 0.0710745 -0.1792 -0.0983306 0.0700059 -0.176 -0.0968523 +0.0692421 -0.1728 -0.0957955 0.0687969 -0.1696 -0.0951796 0.0685297 -0.1664 -0.09481 +0.0683751 -0.1632 -0.094596 0.0683188 -0.16 -0.0945182 0.068197 -0.1568 -0.0943496 +0.0669973 -0.1536 -0.0926898 0.0683329 -0.1504 -0.0945377 0.0691436 -0.1472 -0.0956593 +0.0687266 -0.144 -0.0950823 0.0682907 -0.1408 -0.0944793 0.0676393 -0.1376 -0.0935781 +0.0670207 -0.1344 -0.0927223 0.0666879 -0.1312 -0.0922619 0.069392 -0.128 -0.096003 +0.0695982 -0.1248 -0.0962882 0.0680002 -0.1216 -0.0940773 0.0671379 -0.1184 -0.0928843 +0.0668567 -0.1152 -0.0924953 0.0661209 -0.112 -0.0914774 0.0643822 -0.1088 -0.089072 +0.0636137 -0.1056 -0.0880087 0.062667 -0.1024 -0.086699 0.0615094 -0.0992002 -0.0850975 +0.0599114 -0.0960002 -0.0828866 0.0590209 -0.0928002 -0.0816547 0.0590397 -0.0896002 -0.0816806 +0.0605206 -0.0864002 -0.0837295 0.0629435 -0.0832002 -0.0870815 0.0670441 -0.0800002 -0.0927547 +0.0684969 -0.0768002 -0.0947646 0.0692139 -0.0736002 -0.0957566 0.0693827 -0.0704002 -0.09599 +0.069392 -0.0672002 -0.096003 0.069078 -0.0640002 -0.0955686 0.0681736 -0.0608002 -0.0943172 +0.0670301 -0.0576002 -0.0927352 0.065282 -0.0544003 -0.0903168 0.0637683 -0.0512003 -0.0882226 +0.0719681 -0.2048 -0.092217 0.0746899 -0.2016 -0.0957046 0.0764766 -0.1984 -0.097994 +0.0773773 -0.1952 -0.0991481 0.0778547 -0.192 -0.0997599 0.0779827 -0.1888 -0.0999238 +0.0776923 -0.1856 -0.0995517 0.0770327 -0.1824 -0.0987066 0.0756743 -0.1792 -0.096966 +0.0742322 -0.176 -0.0951181 0.0732281 -0.1728 -0.0938315 0.0729722 -0.1696 -0.0935036 +0.0728786 -0.1664 -0.0933838 0.0730411 -0.1632 -0.0935919 0.073361 -0.16 -0.0940018 +0.0732478 -0.1568 -0.0938568 0.0720616 -0.1536 -0.0923368 0.0724652 -0.1504 -0.092854 +0.0735677 -0.1472 -0.0942667 0.073169 -0.144 -0.0937559 0.0728097 -0.1408 -0.0932955 +0.0722831 -0.1376 -0.0926206 0.0718204 -0.1344 -0.0920278 0.0720321 -0.1312 -0.092299 +0.0770081 -0.128 -0.0986751 0.0772788 -0.1248 -0.099022 0.0754479 -0.1216 -0.0966759 +0.0726867 -0.1184 -0.0931378 0.0718106 -0.1152 -0.0920152 0.0706343 -0.112 -0.0905079 +0.0689165 -0.1088 -0.0883068 0.0682816 -0.1056 -0.0874933 0.0675925 -0.1024 -0.0866103 +0.0664703 -0.0992002 -0.0851724 0.0650627 -0.0960002 -0.0833687 0.0637977 -0.0928002 -0.0817478 +0.0636944 -0.0896002 -0.0816154 0.0648264 -0.0864002 -0.0830659 0.0679124 -0.0832002 -0.0870203 +0.0705457 -0.0800002 -0.0903944 0.0717663 -0.0768002 -0.0919584 0.0723176 -0.0736002 -0.0926648 +0.072416 -0.0704002 -0.0927909 0.0724504 -0.0672002 -0.0928351 0.0720616 -0.0640002 -0.0923368 +0.0710969 -0.0608002 -0.0911007 0.069704 -0.0576002 -0.0893159 0.0679272 -0.0544003 -0.0870392 +0.0664802 -0.0512003 -0.085185 0.0760244 -0.2048 -0.0903503 0.0789397 -0.2016 -0.0938149 +0.0806961 -0.1984 -0.0959023 0.0818293 -0.1952 -0.097249 0.0824422 -0.192 -0.0979774 +0.0826379 -0.1888 -0.09821 0.0823959 -0.1856 -0.0979223 0.0815202 -0.1824 -0.0968817 +0.0800523 -0.1792 -0.0951371 0.0781929 -0.176 -0.0929274 0.076797 -0.1728 -0.0912685 +0.0766219 -0.1696 -0.0910604 0.0768743 -0.1664 -0.0913603 0.0772657 -0.1632 -0.0918255 +0.0778272 -0.16 -0.0924927 0.0777499 -0.1568 -0.0924009 0.0764725 -0.1536 -0.0908828 +0.0761068 -0.1504 -0.0904482 0.0774203 -0.1472 -0.0920092 0.077173 -0.144 -0.0917153 +0.0767095 -0.1408 -0.0911644 0.076524 -0.1376 -0.0909441 0.0766477 -0.1344 -0.091091 +0.0771215 -0.1312 -0.0916541 0.0835496 -0.128 -0.0992935 0.0832972 -0.1248 -0.0989935 +0.0812266 -0.1216 -0.0965328 0.0785122 -0.1184 -0.0933069 0.0775336 -0.1152 -0.0921438 +0.0762923 -0.112 -0.0906686 0.0742165 -0.1088 -0.0882017 0.0728001 -0.1056 -0.0865184 +0.0722026 -0.1024 -0.0858083 0.0712755 -0.0992002 -0.0847064 0.0697303 -0.0960002 -0.0828701 +0.068592 -0.0928002 -0.0815173 0.0692152 -0.0896002 -0.0822579 0.0702505 -0.0864002 -0.0834883 +0.0718008 -0.0832002 -0.0853308 0.0736706 -0.0800002 -0.0875529 0.0747264 -0.0768002 -0.0888077 +0.0752364 -0.0736002 -0.0894137 0.0753394 -0.0704002 -0.0895362 0.0751179 -0.0672002 -0.0892729 +0.0745101 -0.0640002 -0.0885506 0.0735109 -0.0608002 -0.0873631 0.0721562 -0.0576002 -0.0857532 +0.070369 -0.0544003 -0.0836291 0.069107 -0.0512003 -0.0821294 0.0797659 -0.2048 -0.0880065 +0.0823017 -0.2016 -0.0908043 0.0843164 -0.1984 -0.0930271 0.0857187 -0.1952 -0.0945742 +0.0866051 -0.192 -0.0955523 0.0869812 -0.1888 -0.0959672 0.0867878 -0.1856 -0.0957538 +0.0859067 -0.1824 -0.0947817 0.0845313 -0.1792 -0.0932642 0.0826671 -0.176 -0.0912074 +0.0796799 -0.1728 -0.0879116 0.0798734 -0.1696 -0.088125 0.0804052 -0.1664 -0.0887119 +0.0811144 -0.1632 -0.0894943 0.0817484 -0.16 -0.0901937 0.081657 -0.1568 -0.090093 +0.0801903 -0.1536 -0.0884748 0.0794489 -0.1504 -0.0876567 0.080835 -0.1472 -0.0891861 +0.0805449 -0.144 -0.088866 0.0802065 -0.1408 -0.0884925 0.0806309 -0.1376 -0.0889608 +0.0815012 -0.1344 -0.0899211 0.086589 -0.1312 -0.0955345 0.0903766 -0.128 -0.0997134 +0.0901671 -0.1248 -0.0994822 0.0877441 -0.1216 -0.0968089 0.0862882 -0.1184 -0.0952025 +0.0850471 -0.1152 -0.0938333 0.0831506 -0.112 -0.0917408 0.082205 -0.1088 -0.0906976 +0.0814529 -0.1056 -0.0898677 0.0804804 -0.1024 -0.0887948 0.0791749 -0.0992002 -0.0873544 +0.0774987 -0.0960002 -0.085505 0.0761072 -0.0928002 -0.0839698 0.0757687 -0.0896002 -0.0835964 +0.0754571 -0.0864002 -0.0832526 0.075758 -0.0832002 -0.0835845 0.0766069 -0.0800002 -0.0845211 +0.0774289 -0.0768002 -0.085428 0.0777405 -0.0736002 -0.0857718 0.0777458 -0.0704002 -0.0857777 +0.0772892 -0.0672002 -0.0852739 0.0764672 -0.0640002 -0.0843669 0.0754571 -0.0608002 -0.0832526 +0.0740925 -0.0576002 -0.081747 0.0727225 -0.0544003 -0.0802354 0.0715244 -0.0512003 -0.0789136 +0.0828171 -0.2048 -0.0848734 0.0851189 -0.2016 -0.0872324 0.0878343 -0.1984 -0.0900152 +0.0896668 -0.1952 -0.0918932 0.0906837 -0.192 -0.0929353 0.0910133 -0.1888 -0.0932732 +0.0908457 -0.1856 -0.0931014 0.0900132 -0.1824 -0.0922482 0.0885662 -0.1792 -0.0907653 +0.0866666 -0.176 -0.0888185 0.0836887 -0.1728 -0.0857666 0.0828506 -0.1696 -0.0849078 +0.0835937 -0.1664 -0.0856693 0.0845267 -0.1632 -0.0866255 0.0851804 -0.16 -0.0872954 +0.0850463 -0.1568 -0.087158 0.0833423 -0.1536 -0.0854116 0.08275 -0.1504 -0.0848047 +0.0839792 -0.1472 -0.0860644 0.0829959 -0.144 -0.0850566 0.0828338 -0.1408 -0.0848906 +0.0844876 -0.1376 -0.0865854 0.0915776 -0.1344 -0.0938515 0.0960417 -0.1312 -0.0984264 +0.0975558 -0.128 -0.0999781 0.0974161 -0.1248 -0.0998349 0.0965668 -0.1216 -0.0989646 +0.0950639 -0.1184 -0.0974244 0.0933822 -0.1152 -0.0957009 0.0910859 -0.112 -0.0933476 +0.0897115 -0.1088 -0.091939 0.0886053 -0.1056 -0.0908053 0.0872755 -0.1024 -0.0894426 +0.0854877 -0.0992002 -0.0876103 0.0839624 -0.0960002 -0.0860472 0.0820908 -0.0928002 -0.0841291 +0.0803811 -0.0896002 -0.082377 0.0795542 -0.0864002 -0.0815296 0.0794481 -0.0832002 -0.0814208 +0.0796883 -0.0800002 -0.081667 0.0800291 -0.0768002 -0.0820163 0.0801967 -0.0736002 -0.082188 +0.0801241 -0.0704002 -0.0821136 0.0796436 -0.0672002 -0.0816212 0.0786603 -0.0640002 -0.0806134 +0.0774591 -0.0608002 -0.0793824 0.0763584 -0.0576002 -0.0782544 0.0750846 -0.0544003 -0.0769489 +0.0739169 -0.0512003 -0.0757522 0.0844248 -0.2048 -0.0803775 0.0876869 -0.2016 -0.0834832 +0.0910764 -0.1984 -0.0867102 0.0929363 -0.1952 -0.0884809 0.0939213 -0.192 -0.0894187 +0.0942342 -0.1888 -0.0897165 0.0940777 -0.1856 -0.0895676 0.093226 -0.1824 -0.0887567 +0.0918007 -0.1792 -0.0873997 0.0899755 -0.176 -0.0856621 0.0867483 -0.1728 -0.0825895 +0.0857285 -0.1696 -0.0816187 0.0864759 -0.1664 -0.0823303 0.0873103 -0.1632 -0.0831246 +0.0880229 -0.16 -0.0838031 0.0877622 -0.1568 -0.0835549 0.0859777 -0.1536 -0.0818559 +0.0856706 -0.1504 -0.0815635 0.0867309 -0.1472 -0.082573 0.0851955 -0.144 -0.0811112 +0.0853171 -0.1408 -0.081227 0.0881099 -0.1376 -0.0838858 0.0993561 -0.1344 -0.0945929 +0.101378 -0.1312 -0.0965181 0.102184 -0.128 -0.0972849 0.101998 -0.1248 -0.0971083 +0.100949 -0.1216 -0.0961099 0.0997327 -0.1184 -0.0949515 0.0986608 -0.1152 -0.093931 +0.0970095 -0.112 -0.0923588 0.0951322 -0.1088 -0.0905716 0.0932955 -0.1056 -0.0888229 +0.0913024 -0.1024 -0.0869253 0.0893208 -0.0992002 -0.0850387 0.0875189 -0.0960002 -0.0833232 +0.0851491 -0.0928002 -0.081067 0.0830922 -0.0896002 -0.0791088 0.0820319 -0.0864002 -0.0780993 +0.0818987 -0.0832002 -0.0779724 0.0822753 -0.0800002 -0.078331 0.0825939 -0.0768002 -0.0786344 +0.0828605 -0.0736002 -0.0788881 0.0828257 -0.0704002 -0.078855 0.0821188 -0.0672002 -0.078182 +0.0813598 -0.0640002 -0.0774594 0.0801894 -0.0608002 -0.0763451 0.07888 -0.0576002 -0.0750984 +0.077698 -0.0544003 -0.0739731 0.0763943 -0.0512003 -0.072732 0.0869366 -0.2048 -0.0768711 +0.0907003 -0.2016 -0.080199 0.0936789 -0.1984 -0.0828328 0.0956207 -0.1952 -0.0845497 +0.0966994 -0.192 -0.0855036 0.0969691 -0.1888 -0.0857421 0.0966455 -0.1856 -0.0854559 +0.0958184 -0.1824 -0.0847246 0.0945419 -0.1792 -0.0835959 0.0926301 -0.176 -0.0819054 +0.0887945 -0.1728 -0.0785139 0.0878296 -0.1696 -0.0776607 0.0886866 -0.1664 -0.0784185 +0.0895496 -0.1632 -0.0791816 0.0902808 -0.16 -0.0798281 0.0899631 -0.1568 -0.0795472 +0.0882611 -0.1536 -0.0780422 0.0876258 -0.1504 -0.0774805 0.0889803 -0.1472 -0.0786782 +0.0881712 -0.144 -0.0779627 0.0882611 -0.1408 -0.0780422 0.0890162 -0.1376 -0.0787099 +0.102063 -0.1344 -0.0902464 0.104622 -0.1312 -0.0925092 0.105467 -0.128 -0.0932564 +0.10518 -0.1248 -0.0930021 0.103975 -0.1216 -0.0919369 0.102723 -0.1184 -0.0908294 +0.101284 -0.1152 -0.0895575 0.0994503 -0.112 -0.087936 0.0968253 -0.1088 -0.0856149 +0.0947277 -0.1056 -0.0837601 0.0924922 -0.1024 -0.0817835 0.0903107 -0.0992002 -0.0798546 +0.0878176 -0.0960002 -0.0776501 0.0846172 -0.0928002 -0.0748203 0.082232 -0.0896002 -0.0727112 +0.0818184 -0.0864002 -0.0723455 0.0826515 -0.0832002 -0.0730821 0.0837183 -0.0800002 -0.0740254 +0.0844015 -0.0768002 -0.0746295 0.084791 -0.0736002 -0.074974 0.0849409 -0.0704002 -0.0751064 +0.0847191 -0.0672002 -0.0749104 0.083928 -0.0640002 -0.0742109 0.0828732 -0.0608002 -0.0732782 +0.081333 -0.0576002 -0.0719163 0.0799006 -0.0544003 -0.0706498 0.0783844 -0.0512003 -0.0693091 +0.0889156 -0.2048 -0.0729695 0.0917232 -0.2016 -0.0752736 0.094976 -0.1984 -0.077943 +0.0971034 -0.1952 -0.0796889 0.0983464 -0.192 -0.080709 0.0986989 -0.1888 -0.0809982 +0.0983402 -0.1856 -0.0807039 0.0973322 -0.1824 -0.0798766 0.0955882 -0.1792 -0.0784455 +0.0928549 -0.176 -0.0762023 0.0890331 -0.1728 -0.0730659 0.0890949 -0.1696 -0.0731166 +0.0897937 -0.1664 -0.0736901 0.0907337 -0.1632 -0.0744615 0.0915191 -0.16 -0.0751061 +0.0911542 -0.1568 -0.0748066 0.0892928 -0.1536 -0.073279 0.0889094 -0.1504 -0.0729644 +0.0902699 -0.1472 -0.0740809 0.0899236 -0.144 -0.0737967 0.0898865 -0.1408 -0.0737662 +0.0896515 -0.1376 -0.0735734 0.0894845 -0.1344 -0.0734364 0.100263 -0.1312 -0.0822822 +0.1056 -0.128 -0.086662 0.105334 -0.1248 -0.0864438 0.104023 -0.1216 -0.0853679 +0.101803 -0.1184 -0.0835459 0.0985381 -0.1152 -0.0808663 0.0939618 -0.112 -0.0771107 +0.0893917 -0.1088 -0.0733602 0.0848155 -0.1056 -0.0696047 0.08275 -0.1024 -0.0679096 +0.0806226 -0.0992002 -0.0661638 0.0787055 -0.0960002 -0.0645905 0.0742653 -0.0928002 -0.0609466 +0.0753043 -0.0896002 -0.0617992 0.0782356 -0.0864002 -0.0642048 0.0831458 -0.0832002 -0.0682344 +0.0852298 -0.0800002 -0.0699447 0.0862564 -0.0768002 -0.0707872 0.086782 -0.0736002 -0.0712186 +0.0869861 -0.0704002 -0.071386 0.0868995 -0.0672002 -0.071315 0.0862564 -0.0640002 -0.0707872 +0.0851803 -0.0608002 -0.0699041 0.0835044 -0.0576002 -0.0685288 0.0817605 -0.0544003 -0.0670976 +0.0799857 -0.0512003 -0.0656411 0.0875174 -0.2048 -0.0665858 0.0922924 -0.2016 -0.0702188 +0.0945845 -0.1984 -0.0719627 0.0966218 -0.1952 -0.0735128 0.0979525 -0.192 -0.0745252 +0.0986273 -0.1888 -0.0750386 0.0985127 -0.1856 -0.0749514 0.0973922 -0.1824 -0.0740989 +0.0952402 -0.1792 -0.0724616 0.0919868 -0.176 -0.0699863 0.0900131 -0.1728 -0.0684847 +0.0894783 -0.1696 -0.0680778 0.0898158 -0.1664 -0.0683345 0.0904588 -0.1632 -0.0688238 +0.0912101 -0.16 -0.0693953 0.0910063 -0.1568 -0.0692403 0.0889944 -0.1536 -0.0677096 +0.0889753 -0.1504 -0.0676951 0.0904843 -0.1472 -0.0688431 0.090185 -0.144 -0.0686155 +0.0897075 -0.1408 -0.0682522 0.0889563 -0.1376 -0.0676806 0.088084 -0.1344 -0.0670169 +0.0902296 -0.1312 -0.0686494 0.0989011 -0.128 -0.0752469 0.0978761 -0.1248 -0.074467 +0.0944317 -0.1216 -0.0718464 0.0889881 -0.1184 -0.0677048 0.0874792 -0.1152 -0.0665568 +0.0850152 -0.112 -0.0646821 0.0835318 -0.1088 -0.0635535 0.0819592 -0.1056 -0.062357 +0.0803484 -0.1024 -0.0611315 0.0775343 -0.0992002 -0.0589904 0.0760699 -0.0960002 -0.0578763 +0.0750385 -0.0928002 -0.0570916 0.0748475 -0.0896002 -0.0569462 0.0764647 -0.0864002 -0.0581766 +0.0814753 -0.0832002 -0.0619889 0.0860594 -0.0800002 -0.0654765 0.0874601 -0.0768002 -0.0665422 +0.0878803 -0.0736002 -0.0668619 0.0880776 -0.0704002 -0.0670121 0.0882113 -0.0672002 -0.0671138 +0.0877911 -0.0640002 -0.0667941 0.0868298 -0.0608002 -0.0660627 0.0853463 -0.0576002 -0.064934 +0.0834936 -0.0544003 -0.0635244 0.0813607 -0.0512003 -0.0619017 0.0875477 -0.2048 -0.0616565 +0.0910666 -0.2016 -0.0641347 0.0948603 -0.1984 -0.0668064 0.0965478 -0.1952 -0.0679949 +0.0976008 -0.192 -0.0687365 0.0982157 -0.1888 -0.0691695 0.098183 -0.1856 -0.0691465 +0.097228 -0.1824 -0.0684739 0.0952135 -0.1792 -0.0670552 0.0927541 -0.176 -0.0653232 +0.0909293 -0.1728 -0.064038 0.0901771 -0.1696 -0.0635083 0.0899874 -0.1664 -0.0633747 +0.0899809 -0.1632 -0.0633701 0.0905565 -0.16 -0.0637754 0.0907004 -0.1568 -0.0638768 +0.0888951 -0.1536 -0.0626054 0.0887447 -0.1504 -0.0624995 0.0906742 -0.1472 -0.0638583 +0.0904387 -0.144 -0.0636925 0.0898631 -0.1408 -0.0632872 0.0886073 -0.1376 -0.0624027 +0.0877701 -0.1344 -0.0618131 0.0870179 -0.1312 -0.0612834 0.0956255 -0.128 -0.0673454 +0.0954359 -0.1248 -0.0672118 0.0917011 -0.1216 -0.0645815 0.0874496 -0.1184 -0.0615874 +0.0867432 -0.1152 -0.0610899 0.0849576 -0.112 -0.0598324 0.083571 -0.1088 -0.0588558 +0.0824329 -0.1056 -0.0580543 0.0808958 -0.1024 -0.0569718 0.078286 -0.0992002 -0.0551338 +0.0777039 -0.0960002 -0.0547239 0.0754604 -0.0928002 -0.0531439 0.0762911 -0.0896002 -0.0537289 +0.0780179 -0.0864002 -0.054945 0.080052 -0.0832002 -0.0563776 0.0865535 -0.0800002 -0.0609563 +0.088555 -0.0768002 -0.0623659 0.0893791 -0.0736002 -0.0629463 0.0896015 -0.0704002 -0.0631029 +0.089765 -0.0672002 -0.0632181 0.0893399 -0.0640002 -0.0629186 0.0883784 -0.0608002 -0.0622415 +0.0869591 -0.0576002 -0.0612419 0.0851473 -0.0544003 -0.0599659 0.0829954 -0.0512003 -0.0584504 +0.0880747 -0.2048 -0.0572973 0.0918769 -0.2016 -0.0597708 0.0952499 -0.1984 -0.0619652 +0.097141 -0.1952 -0.0631954 0.0980731 -0.192 -0.0638018 0.0983279 -0.1888 -0.0639676 +0.0978518 -0.1856 -0.0636578 0.0967721 -0.1824 -0.0629555 0.095089 -0.1792 -0.0618605 +0.0932382 -0.176 -0.0606564 0.0916355 -0.1728 -0.0596138 0.0908911 -0.1696 -0.0591295 +0.0904284 -0.1664 -0.0588285 0.0902339 -0.1632 -0.058702 0.0902406 -0.16 -0.0587064 +0.0901199 -0.1568 -0.0586279 0.0882691 -0.1536 -0.0574238 0.0895701 -0.1504 -0.0582701 +0.0910386 -0.1472 -0.0592255 0.0906229 -0.144 -0.058955 0.0900663 -0.1408 -0.058593 +0.0891677 -0.1376 -0.0580084 0.0883496 -0.1344 -0.0574762 0.0880277 -0.1312 -0.0572668 +0.0877528 -0.128 -0.0570879 0.0878936 -0.1248 -0.0571795 0.0883295 -0.1216 -0.0574631 +0.0886514 -0.1184 -0.0576725 0.0882155 -0.1152 -0.0573889 0.085969 -0.112 -0.0559275 +0.0844669 -0.1088 -0.0549503 0.0834208 -0.1056 -0.0542697 0.0807653 -0.1024 -0.0525422 +0.0807787 -0.0992002 -0.0525509 0.0801819 -0.0960002 -0.0521626 0.0768826 -0.0928002 -0.0500163 +0.0792363 -0.0896002 -0.0515475 0.0806647 -0.0864002 -0.0524767 0.0833873 -0.0832002 -0.0542479 +0.0888324 -0.0800002 -0.0577903 0.0910185 -0.0768002 -0.0592124 0.0920445 -0.0736002 -0.0598799 +0.0922792 -0.0704002 -0.0600326 0.0922792 -0.0672002 -0.0600326 0.0916288 -0.0640002 -0.0596094 +0.0906765 -0.0608002 -0.0589899 0.0892348 -0.0576002 -0.058052 0.0871962 -0.0544003 -0.0567258 +0.0850436 -0.0512003 -0.0553254 0.0877292 -0.2048 -0.0525813 0.0893417 -0.2016 -0.0535478 +0.0936853 -0.1984 -0.0561511 0.0960938 -0.1952 -0.0575947 0.0971505 -0.192 -0.0582281 +0.0974113 -0.1888 -0.0583844 0.09678 -0.1856 -0.058006 0.0959154 -0.1824 -0.0574878 +0.0945224 -0.1792 -0.0566529 0.0931569 -0.176 -0.0558345 0.0919081 -0.1728 -0.0550859 +0.0907072 -0.1696 -0.0543662 0.090124 -0.1664 -0.0540166 0.089575 -0.1632 -0.0536876 +0.0890604 -0.16 -0.0533792 0.0883948 -0.1568 -0.0529802 0.086597 -0.1536 -0.0519027 +0.0884222 -0.1504 -0.0529967 0.0899044 -0.1472 -0.053885 0.0898563 -0.144 -0.0538562 +0.089623 -0.1408 -0.0537164 0.0892045 -0.1376 -0.0534655 0.0888751 -0.1344 -0.0532681 +0.0889506 -0.1312 -0.0533134 0.089081 -0.128 -0.0533915 0.0892113 -0.1248 -0.0534696 +0.0901926 -0.1216 -0.0540578 0.0905082 -0.1184 -0.054247 0.0894721 -0.1152 -0.0536259 +0.0873861 -0.112 -0.0523757 0.0858765 -0.1088 -0.0514709 0.0838179 -0.1056 -0.050237 +0.0836326 -0.1024 -0.050126 0.0842159 -0.0992002 -0.0504756 0.083317 -0.0960002 -0.0499368 +0.0804213 -0.0928002 -0.0482012 0.0826102 -0.0896002 -0.0495132 0.0832552 -0.0864002 -0.0498998 +0.0862607 -0.0832002 -0.0517012 0.0902681 -0.0800002 -0.054103 0.0930746 -0.0768002 -0.0557851 +0.0940284 -0.0736002 -0.0563568 0.0941862 -0.0704002 -0.0564514 0.0941793 -0.0672002 -0.0564473 +0.0934177 -0.0640002 -0.0559908 0.0922923 -0.0608002 -0.0553163 0.0906935 -0.0576002 -0.054358 +0.0887104 -0.0544003 -0.0531694 0.0865421 -0.0512003 -0.0518698 0.0862971 -0.2048 -0.0474959 +0.0883996 -0.2016 -0.0486531 0.090355 -0.1984 -0.0497293 0.0929132 -0.1952 -0.0511372 +0.0945392 -0.192 -0.0520321 0.095184 -0.1888 -0.052387 0.0950788 -0.1856 -0.0523292 +0.0945602 -0.1824 -0.0520437 0.0934669 -0.1792 -0.051442 0.0924366 -0.176 -0.0508749 +0.0915185 -0.1728 -0.0503696 0.0904952 -0.1696 -0.0498064 0.0897102 -0.1664 -0.0493744 +0.0888342 -0.1632 -0.0488922 0.087923 -0.16 -0.0483908 0.0865914 -0.1568 -0.0476579 +0.0852387 -0.1536 -0.0469134 0.0858765 -0.1504 -0.0472644 0.0880492 -0.1472 -0.0484602 +0.0892757 -0.144 -0.0491353 0.0896261 -0.1408 -0.0493281 0.0898784 -0.1376 -0.049467 +0.0900817 -0.1344 -0.0495789 0.0903761 -0.1312 -0.0497409 0.0914834 -0.128 -0.0503503 +0.0930253 -0.1248 -0.051199 0.093614 -0.1216 -0.051523 0.0932216 -0.1184 -0.051307 +0.091932 -0.1152 -0.0505972 0.0895561 -0.112 -0.0492896 0.0872923 -0.1088 -0.0480436 +0.0856803 -0.1056 -0.0471564 0.0873273 -0.1024 -0.0480629 0.0880001 -0.0992002 -0.0484332 +0.0874535 -0.0960002 -0.0481323 0.0847972 -0.0928002 -0.0466704 0.0853088 -0.0896002 -0.046952 +0.0872923 -0.0864002 -0.0480436 0.0893108 -0.0832002 -0.0491545 0.0915115 -0.0800002 -0.0503658 +0.0945882 -0.0768002 -0.0520592 0.0953452 -0.0736002 -0.0524757 0.0952611 -0.0704002 -0.0524295 +0.0949597 -0.0672002 -0.0522636 0.0943289 -0.0640002 -0.0519164 0.0932145 -0.0608002 -0.0513031 +0.0917287 -0.0576002 -0.0504853 0.0897663 -0.0544003 -0.0494053 0.0876567 -0.0512003 -0.0482442 +0.0845068 -0.2048 -0.0425357 0.0868506 -0.2016 -0.0437154 0.0885942 -0.1984 -0.044593 +0.0900519 -0.1952 -0.0453268 0.0915311 -0.192 -0.0460713 0.0925673 -0.1888 -0.0465928 +0.0929389 -0.1856 -0.0467799 0.0927745 -0.1824 -0.0466971 0.0922171 -0.1792 -0.0464166 +0.0916026 -0.176 -0.0461073 0.090938 -0.1728 -0.0457728 0.0903092 -0.1696 -0.0454562 +0.0897232 -0.1664 -0.0451613 0.0891301 -0.1632 -0.0448628 0.0885727 -0.16 -0.0445822 +0.0873651 -0.1568 -0.0439744 0.086086 -0.1536 -0.0433305 0.086529 -0.1504 -0.0435535 +0.0891373 -0.1472 -0.0448664 0.0902091 -0.144 -0.0454059 0.0907737 -0.1408 -0.04569 +0.0913596 -0.1376 -0.045985 0.0922957 -0.1344 -0.0464562 0.0944038 -0.1312 -0.0475172 +0.0958901 -0.128 -0.0482653 0.0964975 -0.1248 -0.0485711 0.0964475 -0.1216 -0.0485459 +0.0955114 -0.1184 -0.0480747 0.0938392 -0.1152 -0.0472331 0.091231 -0.112 -0.0459202 +0.0879653 -0.1088 -0.0442765 0.0884584 -0.1056 -0.0445247 0.090252 -0.1024 -0.0454275 +0.0906736 -0.0992002 -0.0456397 0.0903449 -0.0960002 -0.0454742 0.0872651 -0.0928002 -0.043924 +0.0875509 -0.0896002 -0.0440679 0.0906164 -0.0864002 -0.0456109 0.0919098 -0.0832002 -0.0462619 +0.0937035 -0.0800002 -0.0471647 0.0957543 -0.0768002 -0.048197 0.0960616 -0.0736002 -0.0483517 +0.09579 -0.0704002 -0.048215 0.095347 -0.0672002 -0.047992 0.0946753 -0.0640002 -0.0476539 +0.0934676 -0.0608002 -0.047046 0.0920742 -0.0576002 -0.0463447 0.0901806 -0.0544003 -0.0453915 +0.0881583 -0.0512003 -0.0443736 0.0829239 -0.2048 -0.0379805 0.085186 -0.2016 -0.0390166 +0.0870698 -0.1984 -0.0398794 0.088539 -0.1952 -0.0405523 0.0895791 -0.192 -0.0410287 +0.0903064 -0.1888 -0.0413618 0.0907938 -0.1856 -0.041585 0.0908883 -0.1824 -0.0416283 +0.0908956 -0.1792 -0.0416317 0.0906119 -0.176 -0.0415017 0.0903646 -0.1728 -0.0413885 +0.0902773 -0.1696 -0.0413485 0.0901973 -0.1664 -0.0413118 0.0899428 -0.1632 -0.0411953 +0.0897464 -0.16 -0.0411053 0.0894627 -0.1568 -0.0409754 0.0892809 -0.1536 -0.0408921 +0.0896591 -0.1504 -0.0410653 0.0903792 -0.1472 -0.0413951 0.0909974 -0.144 -0.0416783 +0.0919284 -0.1408 -0.0421047 0.093114 -0.1376 -0.0426477 0.095776 -0.1344 -0.043867 +0.0975216 -0.1312 -0.0446665 0.0983508 -0.128 -0.0450463 0.0985617 -0.1248 -0.0451429 +0.0981981 -0.1216 -0.0449763 0.0971434 -0.1184 -0.0444933 0.0954051 -0.1152 -0.0436971 +0.0926703 -0.112 -0.0424445 0.0889536 -0.1088 -0.0407422 0.0903646 -0.1056 -0.0413885 +0.0919357 -0.1024 -0.042108 0.0922775 -0.0992002 -0.0422646 0.0918338 -0.0960002 -0.0420614 +0.091172 -0.0928002 -0.0417583 0.08995 -0.0896002 -0.0411986 0.0923212 -0.0864002 -0.0422846 +0.093594 -0.0832002 -0.0428676 0.094925 -0.0800002 -0.0434772 0.0960015 -0.0768002 -0.0439703 +0.0960015 -0.0736002 -0.0439703 0.0953105 -0.0704002 -0.0436538 0.0946632 -0.0672002 -0.0433573 +0.0938486 -0.0640002 -0.0429842 0.0929758 -0.0608002 -0.0425844 0.0914702 -0.0576002 -0.0418948 +0.0897682 -0.0544003 -0.0411153 0.0879935 -0.0512003 -0.0403025 0.0816641 -0.2048 -0.0338249 +0.0839996 -0.2016 -0.0347923 0.0858548 -0.1984 -0.0355607 0.0875178 -0.1952 -0.0362495 +0.0886191 -0.192 -0.0367057 0.0892695 -0.1888 -0.0369751 0.0896021 -0.1856 -0.0371128 +0.0896538 -0.1824 -0.0371343 0.0898164 -0.1792 -0.0372016 0.0899495 -0.176 -0.0372567 +0.0900308 -0.1728 -0.0372904 0.0903634 -0.1696 -0.0374282 0.0906442 -0.1664 -0.0375445 +0.0908438 -0.1632 -0.0376272 0.0909694 -0.16 -0.0376792 0.0910359 -0.1568 -0.0377067 +0.0911912 -0.1536 -0.037771 0.091509 -0.1504 -0.0379027 0.0916272 -0.1472 -0.0379517 +0.0924772 -0.144 -0.0383037 0.0942289 -0.1408 -0.0390293 0.0967197 -0.1376 -0.0400609 +0.0986118 -0.1344 -0.0408446 0.0997205 -0.1312 -0.0413038 0.100216 -0.128 -0.041509 +0.100327 -0.1248 -0.0415549 0.0998092 -0.1216 -0.0413406 0.0986562 -0.1184 -0.040863 +0.0967788 -0.1152 -0.0400854 0.0939406 -0.112 -0.0389099 0.0903708 -0.1088 -0.0374312 +0.0915016 -0.1056 -0.0378996 0.0931055 -0.1024 -0.0385639 0.0932976 -0.0992002 -0.0386435 +0.0921372 -0.0960002 -0.0381629 0.0908955 -0.0928002 -0.0376486 0.0913168 -0.0896002 -0.0378231 +0.0936672 -0.0864002 -0.0387966 0.095005 -0.0832002 -0.0393507 0.0962614 -0.0800002 -0.0398711 +0.0967419 -0.0768002 -0.0400701 0.0963797 -0.0736002 -0.0399201 0.0953154 -0.0704002 -0.0394793 +0.0942806 -0.0672002 -0.0390507 0.0928468 -0.0640002 -0.0384568 0.0919672 -0.0608002 -0.0380925 +0.0905334 -0.0576002 -0.0374986 0.0893212 -0.0544003 -0.0369965 0.0879243 -0.0512003 -0.0364179 +0.0806641 -0.2048 -0.0299823 0.0831537 -0.2016 -0.0309076 0.0852458 -0.1984 -0.0316853 +0.0868581 -0.1952 -0.0322845 0.0881254 -0.192 -0.0327556 0.0890402 -0.1888 -0.0330956 +0.0894826 -0.1856 -0.0332601 0.0897676 -0.1824 -0.033366 0.0898201 -0.1792 -0.0333855 +0.0900375 -0.176 -0.0334663 0.090315 -0.1728 -0.0335695 0.0907124 -0.1696 -0.0337172 +0.0910949 -0.1664 -0.0338593 0.0915823 -0.1632 -0.0340405 0.0922347 -0.16 -0.034283 +0.0927746 -0.1568 -0.0344837 0.093442 -0.1536 -0.0347317 0.0940194 -0.1504 -0.0349464 +0.0947618 -0.1472 -0.0352223 0.096149 -0.144 -0.0357379 0.0977988 -0.1408 -0.0363511 +0.0994785 -0.1376 -0.0369755 0.100761 -0.1344 -0.0374521 0.101541 -0.1312 -0.0377419 +0.101961 -0.128 -0.037898 0.102028 -0.1248 -0.0379231 0.101383 -0.1216 -0.0376834 +0.0999959 -0.1184 -0.0371678 0.0980687 -0.1152 -0.0364515 0.0951067 -0.112 -0.0353505 +0.0922047 -0.1088 -0.0342718 0.0927071 -0.1056 -0.0344586 0.0939444 -0.1024 -0.0349185 +0.0940119 -0.0992002 -0.0349436 0.0931195 -0.0960002 -0.0346119 0.0909524 -0.0928002 -0.0338064 +0.0936594 -0.0896002 -0.0348126 0.0952867 -0.0864002 -0.0354174 0.0965165 -0.0832002 -0.0358745 +0.0976338 -0.0800002 -0.0362898 0.0978137 -0.0768002 -0.0363567 0.0970264 -0.0736002 -0.036064 +0.0958191 -0.0704002 -0.0356153 0.0943118 -0.0672002 -0.0350551 0.0925871 -0.0640002 -0.034414 +0.0913873 -0.0608002 -0.033968 0.09033 -0.0576002 -0.033575 0.0892802 -0.0544003 -0.0331848 +0.0880729 -0.0512003 -0.0327361 0.0799127 -0.2048 -0.0263982 0.0826094 -0.2016 -0.027289 +0.0847743 -0.1984 -0.0280042 0.0864987 -0.1952 -0.0285738 0.0879647 -0.192 -0.0290581 +0.0890738 -0.1888 -0.0294245 0.0898866 -0.1856 -0.029693 0.0902968 -0.1824 -0.0298285 +0.0905095 -0.1792 -0.0298987 0.090745 -0.176 -0.0299765 0.0910564 -0.1728 -0.0300794 +0.0916641 -0.1696 -0.0302801 0.0921579 -0.1664 -0.0304432 0.0925985 -0.1632 -0.0305888 +0.0932593 -0.16 -0.0308071 0.0943608 -0.1568 -0.031171 0.0954699 -0.1536 -0.0315373 +0.0966017 -0.1504 -0.0319112 0.0977032 -0.1472 -0.0322751 0.0988198 -0.144 -0.0326439 +0.100073 -0.1408 -0.033058 0.101327 -0.1376 -0.033472 0.102246 -0.1344 -0.0337756 +0.102975 -0.1312 -0.0340165 0.1034 -0.128 -0.0341571 0.10318 -0.1248 -0.0340843 +0.102314 -0.1216 -0.0337982 0.10097 -0.1184 -0.0333541 0.0989869 -0.1152 -0.0326991 +0.096032 -0.112 -0.031723 0.0936695 -0.1088 -0.0309426 0.0934341 -0.1056 -0.0308648 +0.094376 -0.1024 -0.031176 0.0941253 -0.0992002 -0.0310932 0.0929251 -0.0960002 -0.0306967 +0.0921959 -0.0928002 -0.0304558 0.0942469 -0.0896002 -0.0311333 0.0966701 -0.0864002 -0.0319338 +0.0977184 -0.0832002 -0.0322801 0.0985767 -0.0800002 -0.0325636 0.098326 -0.0768002 -0.0324808 +0.0974981 -0.0736002 -0.0322073 0.0961535 -0.0704002 -0.0317632 0.0941633 -0.0672002 -0.0311057 +0.0925985 -0.0640002 -0.0305888 0.0914286 -0.0608002 -0.0302024 0.0905247 -0.0576002 -0.0299037 +0.0894384 -0.0544003 -0.0295449 0.0884737 -0.0512003 -0.0292262 0.079209 -0.2048 -0.0229688 +0.0820749 -0.2016 -0.0237999 0.0842033 -0.1984 -0.024417 0.086055 -0.1952 -0.024954 +0.0877838 -0.192 -0.0254553 0.0890054 -0.1888 -0.0258095 0.0901119 -0.1856 -0.0261304 +0.0907803 -0.1824 -0.0263242 0.0912797 -0.1792 -0.026469 0.0916101 -0.176 -0.0265648 +0.0919559 -0.1728 -0.0266651 0.0924937 -0.1696 -0.0268211 0.0931468 -0.1664 -0.0270104 +0.0937 -0.1632 -0.0271709 0.0943839 -0.16 -0.0273692 0.0953597 -0.1568 -0.0276521 +0.0965813 -0.1536 -0.0280064 0.0979797 -0.1504 -0.0284119 0.0989171 -0.1472 -0.0286837 +0.0997316 -0.144 -0.0289199 0.100853 -0.1408 -0.0292452 0.101967 -0.1376 -0.0295682 +0.102943 -0.1344 -0.0298512 0.103696 -0.1312 -0.0300695 0.103934 -0.128 -0.0301386 +0.103727 -0.1248 -0.0300785 0.102843 -0.1216 -0.0298222 0.101368 -0.1184 -0.0293944 +0.0994012 -0.1152 -0.0288241 0.0971038 -0.112 -0.0281579 0.095037 -0.1088 -0.0275585 +0.0942072 -0.1056 -0.0273179 0.0942994 -0.1024 -0.0273447 0.0936616 -0.0992002 -0.0271597 +0.0916025 -0.0960002 -0.0265626 0.0924553 -0.0928002 -0.0268099 0.0955133 -0.0896002 -0.0276967 +0.0972191 -0.0864002 -0.0281913 0.0981641 -0.0832002 -0.0284654 0.0986482 -0.0800002 -0.0286057 +0.0983793 -0.0768002 -0.0285277 0.0976647 -0.0736002 -0.0283205 0.0963278 -0.0704002 -0.0279329 +0.094307 -0.0672002 -0.0273469 0.092632 -0.0640002 -0.0268612 0.0915564 -0.0608002 -0.0265492 +0.090473 -0.0576002 -0.0262351 0.0895971 -0.0544003 -0.0259811 0.088675 -0.0512003 -0.0257137 +0.077696 -0.2048 -0.0194604 0.0810561 -0.2016 -0.0203021 0.0832833 -0.1984 -0.0208599 +0.0851924 -0.1952 -0.0213381 0.0870471 -0.192 -0.0218026 0.0885215 -0.1888 -0.0221719 +0.089802 -0.1856 -0.0224926 0.0907953 -0.1824 -0.0227414 0.091548 -0.1792 -0.02293 +0.0921689 -0.176 -0.0230855 0.0926423 -0.1728 -0.023204 0.0931156 -0.1696 -0.0233226 +0.0937287 -0.1664 -0.0234762 0.094303 -0.1632 -0.02362 0.0950945 -0.16 -0.0238183 +0.0959636 -0.1568 -0.0240359 0.0969414 -0.1536 -0.0242809 0.0980046 -0.1504 -0.0245471 +0.098835 -0.1472 -0.0247551 0.0995489 -0.144 -0.0249339 0.100635 -0.1408 -0.0252061 +0.101931 -0.1376 -0.0255307 0.102987 -0.1344 -0.025795 0.103608 -0.1312 -0.0259505 +0.103778 -0.128 -0.0259933 0.10339 -0.1248 -0.0258961 0.102513 -0.1216 -0.0256764 +0.10114 -0.1184 -0.0253324 0.0992618 -0.1152 -0.024862 0.0975312 -0.112 -0.0244286 +0.0958705 -0.1088 -0.0240126 0.0948229 -0.1056 -0.0237502 0.0940003 -0.1024 -0.0235442 +0.0927587 -0.0992002 -0.0232332 0.0910514 -0.0960002 -0.0228056 0.0928595 -0.0928002 -0.0232585 +0.0960956 -0.0896002 -0.024069 0.0971432 -0.0864002 -0.0243314 0.0978882 -0.0832002 -0.024518 +0.0981443 -0.0800002 -0.0245821 0.0979425 -0.0768002 -0.0245316 0.0972441 -0.0736002 -0.0243567 +0.0957386 -0.0704002 -0.0239796 0.0936045 -0.0672002 -0.0234451 0.0923784 -0.0640002 -0.023138 +0.0913075 -0.0608002 -0.0228697 0.0903219 -0.0576002 -0.0226229 0.0894916 -0.0544003 -0.0224149 +0.0886147 -0.0512003 -0.0221953 0.0756986 -0.2048 -0.0160242 0.07861 -0.2016 -0.0166405 +0.081185 -0.1984 -0.0171855 0.0834234 -0.1952 -0.0176594 0.0855287 -0.192 -0.018105 +0.0874306 -0.1888 -0.0185076 0.088902 -0.1856 -0.0188191 0.0900368 -0.1824 -0.0190593 +0.0910543 -0.1792 -0.0192747 0.0919543 -0.176 -0.0194652 0.0927918 -0.1728 -0.0196425 +0.0934883 -0.1696 -0.01979 0.0940206 -0.1664 -0.0199026 0.0945449 -0.1632 -0.0200136 +0.0950771 -0.16 -0.0201263 0.0957033 -0.1568 -0.0202588 0.0964233 -0.1536 -0.0204112 +0.0972451 -0.1504 -0.0205852 0.0979964 -0.1472 -0.0207443 0.0988026 -0.144 -0.0209149 +0.099914 -0.1408 -0.0211502 0.101151 -0.1376 -0.0214119 0.10209 -0.1344 -0.0216107 +0.102395 -0.1312 -0.0216754 0.102442 -0.128 -0.0216853 0.10216 -0.1248 -0.0216257 +0.101518 -0.1216 -0.0214898 0.100282 -0.1184 -0.021228 0.0987243 -0.1152 -0.0208983 +0.0973155 -0.112 -0.0206001 0.0958128 -0.1088 -0.020282 0.0945684 -0.1056 -0.0200186 +0.0938014 -0.1024 -0.0198562 0.0912656 -0.0992002 -0.0193194 0.0914378 -0.0960002 -0.0193559 +0.0931596 -0.0928002 -0.0197204 0.0945214 -0.0896002 -0.0200087 0.095578 -0.0864002 -0.0202323 +0.096259 -0.0832002 -0.0203765 0.0965407 -0.0800002 -0.0204361 0.0964468 -0.0768002 -0.0204162 +0.095445 -0.0736002 -0.0202042 0.093684 -0.0704002 -0.0198314 0.0922204 -0.0672002 -0.0195216 +0.0912734 -0.0640002 -0.0193211 0.0904282 -0.0608002 -0.0191422 0.089669 -0.0576002 -0.0189815 +0.089035 -0.0544003 -0.0188473 0.0880254 -0.0512003 -0.0186335 0.0740458 -0.2048 -0.0128468 +0.0764893 -0.2016 -0.0132708 0.0789959 -0.1984 -0.0137057 0.0813921 -0.1952 -0.0141214 +0.0836227 -0.192 -0.0145084 0.0855775 -0.1888 -0.0148476 0.0874614 -0.1856 -0.0151744 +0.0889275 -0.1824 -0.0154288 0.0902596 -0.1792 -0.0156599 0.0914419 -0.176 -0.015865 +0.092443 -0.1728 -0.0160387 0.0934677 -0.1696 -0.0162165 0.094248 -0.1664 -0.0163519 +0.0949495 -0.1632 -0.0164736 0.0952806 -0.16 -0.016531 0.0957693 -0.1568 -0.0166158 +0.0962974 -0.1536 -0.0167074 0.0968018 -0.1504 -0.016795 0.0973694 -0.1472 -0.0168934 +0.0980788 -0.144 -0.0170165 0.0989852 -0.1408 -0.0171738 0.0997656 -0.1376 -0.0173092 +0.100412 -0.1344 -0.0174213 0.100767 -0.1312 -0.0174828 0.100751 -0.128 -0.0174801 +0.100459 -0.1248 -0.0174295 0.0998444 -0.1216 -0.0173228 0.0989773 -0.1184 -0.0171724 +0.0979054 -0.1152 -0.0169864 0.0965023 -0.112 -0.016743 0.0951229 -0.1088 -0.0165037 +0.0946736 -0.1056 -0.0164257 0.0932627 -0.1024 -0.0161809 0.0908744 -0.0992002 -0.0157666 +0.0907877 -0.0960002 -0.0157515 0.0908744 -0.0928002 -0.0157666 0.0921829 -0.0896002 -0.0159936 +0.0935228 -0.0864002 -0.0162261 0.0941534 -0.0832002 -0.0163355 0.0942795 -0.0800002 -0.0163573 +0.0939091 -0.0768002 -0.0162931 0.0927188 -0.0736002 -0.0160866 0.0915129 -0.0704002 -0.0158773 +0.0908113 -0.0672002 -0.0157556 0.0900704 -0.0640002 -0.0156271 0.0895265 -0.0608002 -0.0155327 +0.0889748 -0.0576002 -0.015437 0.0883206 -0.0544003 -0.0153235 0.0873905 -0.0512003 -0.0151621 +0.0731843 -0.2048 -0.00993827 0.0752057 -0.2016 -0.0102128 0.0773699 -0.1984 -0.0105067 +0.0794944 -0.1952 -0.0107952 0.0816664 -0.192 -0.0110901 0.0837196 -0.1888 -0.0113689 +0.0855349 -0.1856 -0.0116155 0.0872631 -0.1824 -0.0118501 0.0888723 -0.1792 -0.0120687 +0.0903151 -0.176 -0.0122646 0.0917023 -0.1728 -0.012453 0.0929469 -0.1696 -0.012622 +0.0939537 -0.1664 -0.0127587 0.0947464 -0.1632 -0.0128664 0.0954043 -0.16 -0.0129557 +0.0958562 -0.1568 -0.0130171 0.0962208 -0.1536 -0.0130666 0.0966331 -0.1504 -0.0131226 +0.0970453 -0.1472 -0.0131785 0.0974179 -0.144 -0.0132291 0.0978697 -0.1408 -0.0132905 +0.0983771 -0.1376 -0.0133594 0.0986862 -0.1344 -0.0134014 0.0986783 -0.1312 -0.0134003 +0.0985832 -0.128 -0.0133874 0.0983691 -0.1248 -0.0133583 0.0980917 -0.1216 -0.0133206 +0.0974971 -0.1184 -0.0132399 0.0965617 -0.1152 -0.0131129 0.0951427 -0.112 -0.0129202 +0.094786 -0.1088 -0.0128717 0.0939219 -0.1056 -0.0127544 0.092067 -0.1024 -0.0125025 +0.0905925 -0.0992002 -0.0123023 0.0902199 -0.0960002 -0.0122517 0.0902754 -0.0928002 -0.0122592 +0.091195 -0.0896002 -0.0123841 0.0920432 -0.0864002 -0.0124993 0.092281 -0.0832002 -0.0125316 +0.0922255 -0.0800002 -0.012524 0.0916627 -0.0768002 -0.0124476 0.0908145 -0.0736002 -0.0123324 +0.0901565 -0.0704002 -0.0122431 0.0894589 -0.0672002 -0.0121483 0.0889516 -0.0640002 -0.0120794 +0.0884918 -0.0608002 -0.012017 0.0880954 -0.0576002 -0.0119632 0.087493 -0.0544003 -0.0118814 +0.086621 -0.0512003 -0.0117629 0.0720515 -0.2048 -0.00709511 0.0738906 -0.2016 -0.00727621 +0.0755944 -0.1984 -0.00744398 0.0774255 -0.1952 -0.0076243 0.0794079 -0.192 -0.00781952 +0.0812868 -0.1888 -0.00800454 0.0832056 -0.1856 -0.00819348 0.0851641 -0.1824 -0.00838634 +0.0866768 -0.1792 -0.0085353 0.0883248 -0.176 -0.00869759 0.0899728 -0.1728 -0.00885987 +0.0914776 -0.1696 -0.00900805 0.0926399 -0.1664 -0.00912251 0.0936749 -0.1632 -0.00922443 +0.0943676 -0.16 -0.00929263 0.0948851 -0.1568 -0.00934359 0.0952752 -0.1536 -0.00938201 +0.0957688 -0.1504 -0.00943062 0.0958325 -0.1472 -0.00943689 0.0960315 -0.144 -0.00945649 +0.0962306 -0.1408 -0.00947609 0.0962863 -0.1376 -0.00948158 0.0961987 -0.1344 -0.00947295 +0.0959917 -0.1312 -0.00945257 0.0957688 -0.128 -0.00943062 0.0955777 -0.1248 -0.0094118 +0.0954026 -0.1216 -0.00939455 0.0950204 -0.1184 -0.00935692 0.0945188 -0.1152 -0.00930753 +0.0944313 -0.112 -0.0092989 0.0937545 -0.1088 -0.00923227 0.0925285 -0.1056 -0.00911153 +0.0914935 -0.1024 -0.00900961 0.0899967 -0.0992002 -0.00886222 0.0897021 -0.0960002 -0.00883321 +0.0897499 -0.0928002 -0.00883792 0.0902992 -0.0896002 -0.00889201 0.090562 -0.0864002 -0.00891789 +0.0902913 -0.0832002 -0.00889123 0.0900684 -0.0800002 -0.00886928 0.0896942 -0.0768002 -0.00883243 +0.0890413 -0.0736002 -0.00876814 0.088492 -0.0704002 -0.00871405 0.0879028 -0.0672002 -0.00865603 +0.0876321 -0.0640002 -0.00862938 0.0873535 -0.0608002 -0.00860194 0.0871385 -0.0576002 -0.00858077 +0.0864538 -0.0544003 -0.00851335 0.0876162 -0.0512003 -0.00862781 0.0702197 -0.2048 -0.00431271 +0.0718806 -0.2016 -0.00441471 0.0732859 -0.1984 -0.00450103 0.074827 -0.1952 -0.00459568 +0.0764959 -0.192 -0.00469817 0.0784043 -0.1888 -0.00481538 0.0802009 -0.1856 -0.00492572 +0.0820294 -0.1824 -0.00503803 0.0837941 -0.1792 -0.00514641 0.0855189 -0.176 -0.00525234 +0.08706 -0.1728 -0.00534699 0.088649 -0.1696 -0.00544458 0.0901581 -0.1664 -0.00553727 +0.091284 -0.1632 -0.00560642 0.0920106 -0.16 -0.00565105 0.0924259 -0.1568 -0.00567655 +0.0927213 -0.1536 -0.00569469 0.0930487 -0.1504 -0.0057148 0.0931844 -0.1472 -0.00572314 +0.0933202 -0.144 -0.00573148 0.0934479 -0.1408 -0.00573932 0.093392 -0.1376 -0.00573589 +0.0930167 -0.1344 -0.00571284 0.0927612 -0.1312 -0.00569715 0.0924977 -0.128 -0.00568096 +0.0924179 -0.1248 -0.00567606 0.092322 -0.1216 -0.00567017 0.0924498 -0.1184 -0.00567802 +0.0925776 -0.1152 -0.00568587 0.09233 -0.112 -0.00567066 0.091795 -0.1088 -0.00563781 +0.090765 -0.1056 -0.00557454 0.0899825 -0.1024 -0.00552648 0.08916 -0.0992002 -0.00547597 +0.0889843 -0.0960002 -0.00546518 0.0885771 -0.0928002 -0.00544017 0.0884254 -0.0896002 -0.00543085 +0.0883455 -0.0864002 -0.00542595 0.0881779 -0.0832002 -0.00541565 0.0879064 -0.0800002 -0.00539897 +0.0873554 -0.0768002 -0.00536514 0.0869242 -0.0736002 -0.00533865 0.086493 -0.0704002 -0.00531217 +0.0861896 -0.0672002 -0.00529354 0.0860618 -0.0640002 -0.00528569 0.0858462 -0.0608002 -0.00527245 +0.0852793 -0.0576002 -0.00523763 0.0848242 -0.0544003 -0.00520967 0.0834428 -0.0512003 -0.00512483 +0.0672278 -0.2048 -0.00164904 0.0686034 -0.2016 -0.00168279 0.0700429 -0.1984 -0.0017181 +0.0714425 -0.1952 -0.00175243 0.0729621 -0.192 -0.0017897 0.0745936 -0.1888 -0.00182972 +0.076505 -0.1856 -0.00187661 0.0784244 -0.1824 -0.00192369 0.0802559 -0.1792 -0.00196861 +0.0819274 -0.176 -0.00200961 0.0837268 -0.1728 -0.00205375 0.0852304 -0.1696 -0.00209063 +0.0867099 -0.1664 -0.00212693 0.0879975 -0.1632 -0.00215851 0.0887973 -0.16 -0.00217813 +0.0892851 -0.1568 -0.00219009 0.089637 -0.1536 -0.00219873 0.089813 -0.1504 -0.00220304 +0.0900449 -0.1472 -0.00220873 0.0902209 -0.144 -0.00221305 0.0904128 -0.1408 -0.00221775 +0.0901649 -0.1376 -0.00221167 0.089821 -0.1344 -0.00220324 0.089605 -0.1312 -0.00219794 +0.0892691 -0.128 -0.0021897 0.0892212 -0.1248 -0.00218852 0.0894291 -0.1216 -0.00219362 +0.0895971 -0.1184 -0.00219774 0.089725 -0.1152 -0.00220088 0.089717 -0.112 -0.00220069 +0.0892931 -0.1088 -0.00219029 0.0885334 -0.1056 -0.00217165 0.0880935 -0.1024 -0.00216086 +0.0875897 -0.0992002 -0.0021485 0.0874697 -0.0960002 -0.00214556 0.0868219 -0.0928002 -0.00212967 +0.086534 -0.0896002 -0.00212261 0.0861421 -0.0864002 -0.002113 0.0859182 -0.0832002 -0.0021075 +0.0855183 -0.0800002 -0.0020977 0.0851024 -0.0768002 -0.00208749 0.0848065 -0.0736002 -0.00208024 +0.0843746 -0.0704002 -0.00206964 0.0842307 -0.0672002 -0.00206611 0.0840947 -0.0640002 -0.00206278 +0.0840227 -0.0608002 -0.00206101 0.0834949 -0.0576002 -0.00204806 0.0827511 -0.0544003 -0.00202982 +0.0817594 -0.0512003 -0.00200549 0.0631472 -0.2048 0.000776227 0.0642751 -0.2016 0.000790092 +0.0655471 -0.1984 0.000805726 0.0670189 -0.1952 0.000823819 0.0686188 -0.192 0.000843485 +0.0704427 -0.1888 0.000865905 0.0724985 -0.1856 0.000891176 0.0745944 -0.1824 0.000916939 +0.0766022 -0.1792 0.00094162 0.0783141 -0.176 0.000962663 0.079994 -0.1728 0.000983312 +0.0815138 -0.1696 0.001002 0.0829137 -0.1664 0.0010192 0.0841856 -0.1632 0.00103484 +0.0851776 -0.16 0.00104703 0.0857535 -0.1568 0.00105411 0.0861615 -0.1536 0.00105913 +0.0864815 -0.1504 0.00106306 0.0866495 -0.1472 0.00106512 0.0869374 -0.144 0.00106866 +0.0869934 -0.1408 0.00106935 0.0868254 -0.1376 0.00106729 0.0865295 -0.1344 0.00106365 +0.0861295 -0.1312 0.00105873 0.0859935 -0.128 0.00105706 0.0859375 -0.1248 0.00105637 +0.0858495 -0.1216 0.00105529 0.0861375 -0.1184 0.00105883 0.0862575 -0.1152 0.00106031 +0.0863215 -0.112 0.00106109 0.0861535 -0.1088 0.00105903 0.0857535 -0.1056 0.00105411 +0.0852176 -0.1024 0.00104752 0.0848576 -0.0992002 0.0010431 0.0847536 -0.0960002 0.00104182 +0.0844496 -0.0928002 0.00103808 0.0840097 -0.0896002 0.00103267 0.0834337 -0.0864002 0.00102559 +0.0828817 -0.0832002 0.00101881 0.0824738 -0.0800002 0.0010138 0.0821538 -0.0768002 0.00100986 +0.0819778 -0.0736002 0.0010077 0.0818738 -0.0704002 0.00100642 0.0817298 -0.0672002 0.00100465 +0.0816658 -0.0640002 0.00100386 0.0816258 -0.0608002 0.00100337 0.0810419 -0.0576002 0.000996194 +0.0801459 -0.0544003 0.000985181 0.079402 -0.0512003 0.000976036 0.0611582 -0.2048 0.00300576 +0.0623408 -0.2016 0.00306388 0.0635872 -0.1984 0.00312514 0.0647219 -0.1952 0.0031809 +0.066256 -0.192 0.0032563 0.0676623 -0.1888 0.00332542 0.0694122 -0.1856 0.00341142 +0.07125 -0.1824 0.00350174 0.0730878 -0.1792 0.00359206 0.0748457 -0.176 0.00367846 +0.0764357 -0.1728 0.0037566 0.0779379 -0.1696 0.00383043 0.0792723 -0.1664 0.00389601 +0.0804149 -0.1632 0.00395217 0.0814537 -0.16 0.00400322 0.0822287 -0.1568 0.00404132 +0.0827801 -0.1536 0.00406841 0.0831237 -0.1504 0.0040853 0.0833874 -0.1472 0.00409826 +0.0834912 -0.144 0.00410336 0.083675 -0.1408 0.00411239 0.0835791 -0.1376 0.00410768 +0.0834113 -0.1344 0.00409944 0.0831077 -0.1312 0.00408451 0.082812 -0.128 0.00406998 +0.0826442 -0.1248 0.00406174 0.0824605 -0.1216 0.0040527 0.0826762 -0.1184 0.00406331 +0.082844 -0.1152 0.00407155 0.0830438 -0.112 0.00408137 0.082876 -0.1088 0.00407312 +0.0825084 -0.1056 0.00405506 0.0821409 -0.1024 0.004037 0.0819731 -0.0992002 0.00402875 +0.0818852 -0.0960002 0.00402443 0.0817653 -0.0928002 0.00401854 0.0813338 -0.0896002 0.00399733 +0.0808624 -0.0864002 0.00397416 0.0802711 -0.0832002 0.0039451 0.0797917 -0.0800002 0.00392154 +0.0794641 -0.0768002 0.00390544 0.0792723 -0.0736002 0.00389601 0.0793283 -0.0704002 0.00389876 +0.0793842 -0.0672002 0.00390151 0.0790566 -0.0640002 0.00388541 0.0789847 -0.0608002 0.00388188 +0.0785452 -0.0576002 0.00386028 0.0778181 -0.0544003 0.00382454 0.0768353 -0.0512003 0.00377624 + +POLYGONS 4224 16896 +3 0 49 1 +3 49 50 1 +3 1 50 2 +3 50 51 2 +3 2 51 3 +3 51 52 3 +3 3 52 4 +3 52 53 4 +3 4 53 5 +3 53 54 5 +3 5 54 6 +3 54 55 6 +3 6 55 7 +3 55 56 7 +3 7 56 8 +3 56 57 8 +3 8 57 9 +3 57 58 9 +3 9 58 10 +3 58 59 10 +3 10 59 11 +3 59 60 11 +3 11 60 12 +3 60 61 12 +3 12 61 13 +3 61 62 13 +3 13 62 14 +3 62 63 14 +3 14 63 15 +3 63 64 15 +3 15 64 16 +3 64 65 16 +3 16 65 17 +3 65 66 17 +3 17 66 18 +3 66 67 18 +3 18 67 19 +3 67 68 19 +3 19 68 20 +3 68 69 20 +3 20 69 21 +3 69 70 21 +3 21 70 22 +3 70 71 22 +3 22 71 23 +3 71 72 23 +3 23 72 24 +3 72 73 24 +3 24 73 25 +3 73 74 25 +3 25 74 26 +3 74 75 26 +3 26 75 27 +3 75 76 27 +3 27 76 28 +3 76 77 28 +3 28 77 29 +3 77 78 29 +3 29 78 30 +3 78 79 30 +3 30 79 31 +3 79 80 31 +3 31 80 32 +3 80 81 32 +3 32 81 33 +3 81 82 33 +3 33 82 34 +3 82 83 34 +3 34 83 35 +3 83 84 35 +3 35 84 36 +3 84 85 36 +3 36 85 37 +3 85 86 37 +3 37 86 38 +3 86 87 38 +3 38 87 39 +3 87 88 39 +3 39 88 40 +3 88 89 40 +3 40 89 41 +3 89 90 41 +3 41 90 42 +3 90 91 42 +3 42 91 43 +3 91 92 43 +3 43 92 44 +3 92 93 44 +3 44 93 45 +3 93 94 45 +3 45 94 46 +3 94 95 46 +3 46 95 47 +3 95 96 47 +3 47 96 48 +3 96 97 48 +3 49 98 50 +3 98 99 50 +3 50 99 51 +3 99 100 51 +3 51 100 52 +3 100 101 52 +3 52 101 53 +3 101 102 53 +3 53 102 54 +3 102 103 54 +3 54 103 55 +3 103 104 55 +3 55 104 56 +3 104 105 56 +3 56 105 57 +3 105 106 57 +3 57 106 58 +3 106 107 58 +3 58 107 59 +3 107 108 59 +3 59 108 60 +3 108 109 60 +3 60 109 61 +3 109 110 61 +3 61 110 62 +3 110 111 62 +3 62 111 63 +3 111 112 63 +3 63 112 64 +3 112 113 64 +3 64 113 65 +3 113 114 65 +3 65 114 66 +3 114 115 66 +3 66 115 67 +3 115 116 67 +3 67 116 68 +3 116 117 68 +3 68 117 69 +3 117 118 69 +3 69 118 70 +3 118 119 70 +3 70 119 71 +3 119 120 71 +3 71 120 72 +3 120 121 72 +3 72 121 73 +3 121 122 73 +3 73 122 74 +3 122 123 74 +3 74 123 75 +3 123 124 75 +3 75 124 76 +3 124 125 76 +3 76 125 77 +3 125 126 77 +3 77 126 78 +3 126 127 78 +3 78 127 79 +3 127 128 79 +3 79 128 80 +3 128 129 80 +3 80 129 81 +3 129 130 81 +3 81 130 82 +3 130 131 82 +3 82 131 83 +3 131 132 83 +3 83 132 84 +3 132 133 84 +3 84 133 85 +3 133 134 85 +3 85 134 86 +3 134 135 86 +3 86 135 87 +3 135 136 87 +3 87 136 88 +3 136 137 88 +3 88 137 89 +3 137 138 89 +3 89 138 90 +3 138 139 90 +3 90 139 91 +3 139 140 91 +3 91 140 92 +3 140 141 92 +3 92 141 93 +3 141 142 93 +3 93 142 94 +3 142 143 94 +3 94 143 95 +3 143 144 95 +3 95 144 96 +3 144 145 96 +3 96 145 97 +3 145 146 97 +3 98 147 99 +3 147 148 99 +3 99 148 100 +3 148 149 100 +3 100 149 101 +3 149 150 101 +3 101 150 102 +3 150 151 102 +3 102 151 103 +3 151 152 103 +3 103 152 104 +3 152 153 104 +3 104 153 105 +3 153 154 105 +3 105 154 106 +3 154 155 106 +3 106 155 107 +3 155 156 107 +3 107 156 108 +3 156 157 108 +3 108 157 109 +3 157 158 109 +3 109 158 110 +3 158 159 110 +3 110 159 111 +3 159 160 111 +3 111 160 112 +3 160 161 112 +3 112 161 113 +3 161 162 113 +3 113 162 114 +3 162 163 114 +3 114 163 115 +3 163 164 115 +3 115 164 116 +3 164 165 116 +3 116 165 117 +3 165 166 117 +3 117 166 118 +3 166 167 118 +3 118 167 119 +3 167 168 119 +3 119 168 120 +3 168 169 120 +3 120 169 121 +3 169 170 121 +3 121 170 122 +3 170 171 122 +3 122 171 123 +3 171 172 123 +3 123 172 124 +3 172 173 124 +3 124 173 125 +3 173 174 125 +3 125 174 126 +3 174 175 126 +3 126 175 127 +3 175 176 127 +3 127 176 128 +3 176 177 128 +3 128 177 129 +3 177 178 129 +3 129 178 130 +3 178 179 130 +3 130 179 131 +3 179 180 131 +3 131 180 132 +3 180 181 132 +3 132 181 133 +3 181 182 133 +3 133 182 134 +3 182 183 134 +3 134 183 135 +3 183 184 135 +3 135 184 136 +3 184 185 136 +3 136 185 137 +3 185 186 137 +3 137 186 138 +3 186 187 138 +3 138 187 139 +3 187 188 139 +3 139 188 140 +3 188 189 140 +3 140 189 141 +3 189 190 141 +3 141 190 142 +3 190 191 142 +3 142 191 143 +3 191 192 143 +3 143 192 144 +3 192 193 144 +3 144 193 145 +3 193 194 145 +3 145 194 146 +3 194 195 146 +3 147 196 148 +3 196 197 148 +3 148 197 149 +3 197 198 149 +3 149 198 150 +3 198 199 150 +3 150 199 151 +3 199 200 151 +3 151 200 152 +3 200 201 152 +3 152 201 153 +3 201 202 153 +3 153 202 154 +3 202 203 154 +3 154 203 155 +3 203 204 155 +3 155 204 156 +3 204 205 156 +3 156 205 157 +3 205 206 157 +3 157 206 158 +3 206 207 158 +3 158 207 159 +3 207 208 159 +3 159 208 160 +3 208 209 160 +3 160 209 161 +3 209 210 161 +3 161 210 162 +3 210 211 162 +3 162 211 163 +3 211 212 163 +3 163 212 164 +3 212 213 164 +3 164 213 165 +3 213 214 165 +3 165 214 166 +3 214 215 166 +3 166 215 167 +3 215 216 167 +3 167 216 168 +3 216 217 168 +3 168 217 169 +3 217 218 169 +3 169 218 170 +3 218 219 170 +3 170 219 171 +3 219 220 171 +3 171 220 172 +3 220 221 172 +3 172 221 173 +3 221 222 173 +3 173 222 174 +3 222 223 174 +3 174 223 175 +3 223 224 175 +3 175 224 176 +3 224 225 176 +3 176 225 177 +3 225 226 177 +3 177 226 178 +3 226 227 178 +3 178 227 179 +3 227 228 179 +3 179 228 180 +3 228 229 180 +3 180 229 181 +3 229 230 181 +3 181 230 182 +3 230 231 182 +3 182 231 183 +3 231 232 183 +3 183 232 184 +3 232 233 184 +3 184 233 185 +3 233 234 185 +3 185 234 186 +3 234 235 186 +3 186 235 187 +3 235 236 187 +3 187 236 188 +3 236 237 188 +3 188 237 189 +3 237 238 189 +3 189 238 190 +3 238 239 190 +3 190 239 191 +3 239 240 191 +3 191 240 192 +3 240 241 192 +3 192 241 193 +3 241 242 193 +3 193 242 194 +3 242 243 194 +3 194 243 195 +3 243 244 195 +3 196 245 197 +3 245 246 197 +3 197 246 198 +3 246 247 198 +3 198 247 199 +3 247 248 199 +3 199 248 200 +3 248 249 200 +3 200 249 201 +3 249 250 201 +3 201 250 202 +3 250 251 202 +3 202 251 203 +3 251 252 203 +3 203 252 204 +3 252 253 204 +3 204 253 205 +3 253 254 205 +3 205 254 206 +3 254 255 206 +3 206 255 207 +3 255 256 207 +3 207 256 208 +3 256 257 208 +3 208 257 209 +3 257 258 209 +3 209 258 210 +3 258 259 210 +3 210 259 211 +3 259 260 211 +3 211 260 212 +3 260 261 212 +3 212 261 213 +3 261 262 213 +3 213 262 214 +3 262 263 214 +3 214 263 215 +3 263 264 215 +3 215 264 216 +3 264 265 216 +3 216 265 217 +3 265 266 217 +3 217 266 218 +3 266 267 218 +3 218 267 219 +3 267 268 219 +3 219 268 220 +3 268 269 220 +3 220 269 221 +3 269 270 221 +3 221 270 222 +3 270 271 222 +3 222 271 223 +3 271 272 223 +3 223 272 224 +3 272 273 224 +3 224 273 225 +3 273 274 225 +3 225 274 226 +3 274 275 226 +3 226 275 227 +3 275 276 227 +3 227 276 228 +3 276 277 228 +3 228 277 229 +3 277 278 229 +3 229 278 230 +3 278 279 230 +3 230 279 231 +3 279 280 231 +3 231 280 232 +3 280 281 232 +3 232 281 233 +3 281 282 233 +3 233 282 234 +3 282 283 234 +3 234 283 235 +3 283 284 235 +3 235 284 236 +3 284 285 236 +3 236 285 237 +3 285 286 237 +3 237 286 238 +3 286 287 238 +3 238 287 239 +3 287 288 239 +3 239 288 240 +3 288 289 240 +3 240 289 241 +3 289 290 241 +3 241 290 242 +3 290 291 242 +3 242 291 243 +3 291 292 243 +3 243 292 244 +3 292 293 244 +3 245 294 246 +3 294 295 246 +3 246 295 247 +3 295 296 247 +3 247 296 248 +3 296 297 248 +3 248 297 249 +3 297 298 249 +3 249 298 250 +3 298 299 250 +3 250 299 251 +3 299 300 251 +3 251 300 252 +3 300 301 252 +3 252 301 253 +3 301 302 253 +3 253 302 254 +3 302 303 254 +3 254 303 255 +3 303 304 255 +3 255 304 256 +3 304 305 256 +3 256 305 257 +3 305 306 257 +3 257 306 258 +3 306 307 258 +3 258 307 259 +3 307 308 259 +3 259 308 260 +3 308 309 260 +3 260 309 261 +3 309 310 261 +3 261 310 262 +3 310 311 262 +3 262 311 263 +3 311 312 263 +3 263 312 264 +3 312 313 264 +3 264 313 265 +3 313 314 265 +3 265 314 266 +3 314 315 266 +3 266 315 267 +3 315 316 267 +3 267 316 268 +3 316 317 268 +3 268 317 269 +3 317 318 269 +3 269 318 270 +3 318 319 270 +3 270 319 271 +3 319 320 271 +3 271 320 272 +3 320 321 272 +3 272 321 273 +3 321 322 273 +3 273 322 274 +3 322 323 274 +3 274 323 275 +3 323 324 275 +3 275 324 276 +3 324 325 276 +3 276 325 277 +3 325 326 277 +3 277 326 278 +3 326 327 278 +3 278 327 279 +3 327 328 279 +3 279 328 280 +3 328 329 280 +3 280 329 281 +3 329 330 281 +3 281 330 282 +3 330 331 282 +3 282 331 283 +3 331 332 283 +3 283 332 284 +3 332 333 284 +3 284 333 285 +3 333 334 285 +3 285 334 286 +3 334 335 286 +3 286 335 287 +3 335 336 287 +3 287 336 288 +3 336 337 288 +3 288 337 289 +3 337 338 289 +3 289 338 290 +3 338 339 290 +3 290 339 291 +3 339 340 291 +3 291 340 292 +3 340 341 292 +3 292 341 293 +3 341 342 293 +3 294 343 295 +3 343 344 295 +3 295 344 296 +3 344 345 296 +3 296 345 297 +3 345 346 297 +3 297 346 298 +3 346 347 298 +3 298 347 299 +3 347 348 299 +3 299 348 300 +3 348 349 300 +3 300 349 301 +3 349 350 301 +3 301 350 302 +3 350 351 302 +3 302 351 303 +3 351 352 303 +3 303 352 304 +3 352 353 304 +3 304 353 305 +3 353 354 305 +3 305 354 306 +3 354 355 306 +3 306 355 307 +3 355 356 307 +3 307 356 308 +3 356 357 308 +3 308 357 309 +3 357 358 309 +3 309 358 310 +3 358 359 310 +3 310 359 311 +3 359 360 311 +3 311 360 312 +3 360 361 312 +3 312 361 313 +3 361 362 313 +3 313 362 314 +3 362 363 314 +3 314 363 315 +3 363 364 315 +3 315 364 316 +3 364 365 316 +3 316 365 317 +3 365 366 317 +3 317 366 318 +3 366 367 318 +3 318 367 319 +3 367 368 319 +3 319 368 320 +3 368 369 320 +3 320 369 321 +3 369 370 321 +3 321 370 322 +3 370 371 322 +3 322 371 323 +3 371 372 323 +3 323 372 324 +3 372 373 324 +3 324 373 325 +3 373 374 325 +3 325 374 326 +3 374 375 326 +3 326 375 327 +3 375 376 327 +3 327 376 328 +3 376 377 328 +3 328 377 329 +3 377 378 329 +3 329 378 330 +3 378 379 330 +3 330 379 331 +3 379 380 331 +3 331 380 332 +3 380 381 332 +3 332 381 333 +3 381 382 333 +3 333 382 334 +3 382 383 334 +3 334 383 335 +3 383 384 335 +3 335 384 336 +3 384 385 336 +3 336 385 337 +3 385 386 337 +3 337 386 338 +3 386 387 338 +3 338 387 339 +3 387 388 339 +3 339 388 340 +3 388 389 340 +3 340 389 341 +3 389 390 341 +3 341 390 342 +3 390 391 342 +3 343 392 344 +3 392 393 344 +3 344 393 345 +3 393 394 345 +3 345 394 346 +3 394 395 346 +3 346 395 347 +3 395 396 347 +3 347 396 348 +3 396 397 348 +3 348 397 349 +3 397 398 349 +3 349 398 350 +3 398 399 350 +3 350 399 351 +3 399 400 351 +3 351 400 352 +3 400 401 352 +3 352 401 353 +3 401 402 353 +3 353 402 354 +3 402 403 354 +3 354 403 355 +3 403 404 355 +3 355 404 356 +3 404 405 356 +3 356 405 357 +3 405 406 357 +3 357 406 358 +3 406 407 358 +3 358 407 359 +3 407 408 359 +3 359 408 360 +3 408 409 360 +3 360 409 361 +3 409 410 361 +3 361 410 362 +3 410 411 362 +3 362 411 363 +3 411 412 363 +3 363 412 364 +3 412 413 364 +3 364 413 365 +3 413 414 365 +3 365 414 366 +3 414 415 366 +3 366 415 367 +3 415 416 367 +3 367 416 368 +3 416 417 368 +3 368 417 369 +3 417 418 369 +3 369 418 370 +3 418 419 370 +3 370 419 371 +3 419 420 371 +3 371 420 372 +3 420 421 372 +3 372 421 373 +3 421 422 373 +3 373 422 374 +3 422 423 374 +3 374 423 375 +3 423 424 375 +3 375 424 376 +3 424 425 376 +3 376 425 377 +3 425 426 377 +3 377 426 378 +3 426 427 378 +3 378 427 379 +3 427 428 379 +3 379 428 380 +3 428 429 380 +3 380 429 381 +3 429 430 381 +3 381 430 382 +3 430 431 382 +3 382 431 383 +3 431 432 383 +3 383 432 384 +3 432 433 384 +3 384 433 385 +3 433 434 385 +3 385 434 386 +3 434 435 386 +3 386 435 387 +3 435 436 387 +3 387 436 388 +3 436 437 388 +3 388 437 389 +3 437 438 389 +3 389 438 390 +3 438 439 390 +3 390 439 391 +3 439 440 391 +3 392 441 393 +3 441 442 393 +3 393 442 394 +3 442 443 394 +3 394 443 395 +3 443 444 395 +3 395 444 396 +3 444 445 396 +3 396 445 397 +3 445 446 397 +3 397 446 398 +3 446 447 398 +3 398 447 399 +3 447 448 399 +3 399 448 400 +3 448 449 400 +3 400 449 401 +3 449 450 401 +3 401 450 402 +3 450 451 402 +3 402 451 403 +3 451 452 403 +3 403 452 404 +3 452 453 404 +3 404 453 405 +3 453 454 405 +3 405 454 406 +3 454 455 406 +3 406 455 407 +3 455 456 407 +3 407 456 408 +3 456 457 408 +3 408 457 409 +3 457 458 409 +3 409 458 410 +3 458 459 410 +3 410 459 411 +3 459 460 411 +3 411 460 412 +3 460 461 412 +3 412 461 413 +3 461 462 413 +3 413 462 414 +3 462 463 414 +3 414 463 415 +3 463 464 415 +3 415 464 416 +3 464 465 416 +3 416 465 417 +3 465 466 417 +3 417 466 418 +3 466 467 418 +3 418 467 419 +3 467 468 419 +3 419 468 420 +3 468 469 420 +3 420 469 421 +3 469 470 421 +3 421 470 422 +3 470 471 422 +3 422 471 423 +3 471 472 423 +3 423 472 424 +3 472 473 424 +3 424 473 425 +3 473 474 425 +3 425 474 426 +3 474 475 426 +3 426 475 427 +3 475 476 427 +3 427 476 428 +3 476 477 428 +3 428 477 429 +3 477 478 429 +3 429 478 430 +3 478 479 430 +3 430 479 431 +3 479 480 431 +3 431 480 432 +3 480 481 432 +3 432 481 433 +3 481 482 433 +3 433 482 434 +3 482 483 434 +3 434 483 435 +3 483 484 435 +3 435 484 436 +3 484 485 436 +3 436 485 437 +3 485 486 437 +3 437 486 438 +3 486 487 438 +3 438 487 439 +3 487 488 439 +3 439 488 440 +3 488 489 440 +3 441 490 442 +3 490 491 442 +3 442 491 443 +3 491 492 443 +3 443 492 444 +3 492 493 444 +3 444 493 445 +3 493 494 445 +3 445 494 446 +3 494 495 446 +3 446 495 447 +3 495 496 447 +3 447 496 448 +3 496 497 448 +3 448 497 449 +3 497 498 449 +3 449 498 450 +3 498 499 450 +3 450 499 451 +3 499 500 451 +3 451 500 452 +3 500 501 452 +3 452 501 453 +3 501 502 453 +3 453 502 454 +3 502 503 454 +3 454 503 455 +3 503 504 455 +3 455 504 456 +3 504 505 456 +3 456 505 457 +3 505 506 457 +3 457 506 458 +3 506 507 458 +3 458 507 459 +3 507 508 459 +3 459 508 460 +3 508 509 460 +3 460 509 461 +3 509 510 461 +3 461 510 462 +3 510 511 462 +3 462 511 463 +3 511 512 463 +3 463 512 464 +3 512 513 464 +3 464 513 465 +3 513 514 465 +3 465 514 466 +3 514 515 466 +3 466 515 467 +3 515 516 467 +3 467 516 468 +3 516 517 468 +3 468 517 469 +3 517 518 469 +3 469 518 470 +3 518 519 470 +3 470 519 471 +3 519 520 471 +3 471 520 472 +3 520 521 472 +3 472 521 473 +3 521 522 473 +3 473 522 474 +3 522 523 474 +3 474 523 475 +3 523 524 475 +3 475 524 476 +3 524 525 476 +3 476 525 477 +3 525 526 477 +3 477 526 478 +3 526 527 478 +3 478 527 479 +3 527 528 479 +3 479 528 480 +3 528 529 480 +3 480 529 481 +3 529 530 481 +3 481 530 482 +3 530 531 482 +3 482 531 483 +3 531 532 483 +3 483 532 484 +3 532 533 484 +3 484 533 485 +3 533 534 485 +3 485 534 486 +3 534 535 486 +3 486 535 487 +3 535 536 487 +3 487 536 488 +3 536 537 488 +3 488 537 489 +3 537 538 489 +3 490 539 491 +3 539 540 491 +3 491 540 492 +3 540 541 492 +3 492 541 493 +3 541 542 493 +3 493 542 494 +3 542 543 494 +3 494 543 495 +3 543 544 495 +3 495 544 496 +3 544 545 496 +3 496 545 497 +3 545 546 497 +3 497 546 498 +3 546 547 498 +3 498 547 499 +3 547 548 499 +3 499 548 500 +3 548 549 500 +3 500 549 501 +3 549 550 501 +3 501 550 502 +3 550 551 502 +3 502 551 503 +3 551 552 503 +3 503 552 504 +3 552 553 504 +3 504 553 505 +3 553 554 505 +3 505 554 506 +3 554 555 506 +3 506 555 507 +3 555 556 507 +3 507 556 508 +3 556 557 508 +3 508 557 509 +3 557 558 509 +3 509 558 510 +3 558 559 510 +3 510 559 511 +3 559 560 511 +3 511 560 512 +3 560 561 512 +3 512 561 513 +3 561 562 513 +3 513 562 514 +3 562 563 514 +3 514 563 515 +3 563 564 515 +3 515 564 516 +3 564 565 516 +3 516 565 517 +3 565 566 517 +3 517 566 518 +3 566 567 518 +3 518 567 519 +3 567 568 519 +3 519 568 520 +3 568 569 520 +3 520 569 521 +3 569 570 521 +3 521 570 522 +3 570 571 522 +3 522 571 523 +3 571 572 523 +3 523 572 524 +3 572 573 524 +3 524 573 525 +3 573 574 525 +3 525 574 526 +3 574 575 526 +3 526 575 527 +3 575 576 527 +3 527 576 528 +3 576 577 528 +3 528 577 529 +3 577 578 529 +3 529 578 530 +3 578 579 530 +3 530 579 531 +3 579 580 531 +3 531 580 532 +3 580 581 532 +3 532 581 533 +3 581 582 533 +3 533 582 534 +3 582 583 534 +3 534 583 535 +3 583 584 535 +3 535 584 536 +3 584 585 536 +3 536 585 537 +3 585 586 537 +3 537 586 538 +3 586 587 538 +3 539 588 540 +3 588 589 540 +3 540 589 541 +3 589 590 541 +3 541 590 542 +3 590 591 542 +3 542 591 543 +3 591 592 543 +3 543 592 544 +3 592 593 544 +3 544 593 545 +3 593 594 545 +3 545 594 546 +3 594 595 546 +3 546 595 547 +3 595 596 547 +3 547 596 548 +3 596 597 548 +3 548 597 549 +3 597 598 549 +3 549 598 550 +3 598 599 550 +3 550 599 551 +3 599 600 551 +3 551 600 552 +3 600 601 552 +3 552 601 553 +3 601 602 553 +3 553 602 554 +3 602 603 554 +3 554 603 555 +3 603 604 555 +3 555 604 556 +3 604 605 556 +3 556 605 557 +3 605 606 557 +3 557 606 558 +3 606 607 558 +3 558 607 559 +3 607 608 559 +3 559 608 560 +3 608 609 560 +3 560 609 561 +3 609 610 561 +3 561 610 562 +3 610 611 562 +3 562 611 563 +3 611 612 563 +3 563 612 564 +3 612 613 564 +3 564 613 565 +3 613 614 565 +3 565 614 566 +3 614 615 566 +3 566 615 567 +3 615 616 567 +3 567 616 568 +3 616 617 568 +3 568 617 569 +3 617 618 569 +3 569 618 570 +3 618 619 570 +3 570 619 571 +3 619 620 571 +3 571 620 572 +3 620 621 572 +3 572 621 573 +3 621 622 573 +3 573 622 574 +3 622 623 574 +3 574 623 575 +3 623 624 575 +3 575 624 576 +3 624 625 576 +3 576 625 577 +3 625 626 577 +3 577 626 578 +3 626 627 578 +3 578 627 579 +3 627 628 579 +3 579 628 580 +3 628 629 580 +3 580 629 581 +3 629 630 581 +3 581 630 582 +3 630 631 582 +3 582 631 583 +3 631 632 583 +3 583 632 584 +3 632 633 584 +3 584 633 585 +3 633 634 585 +3 585 634 586 +3 634 635 586 +3 586 635 587 +3 635 636 587 +3 588 637 589 +3 637 638 589 +3 589 638 590 +3 638 639 590 +3 590 639 591 +3 639 640 591 +3 591 640 592 +3 640 641 592 +3 592 641 593 +3 641 642 593 +3 593 642 594 +3 642 643 594 +3 594 643 595 +3 643 644 595 +3 595 644 596 +3 644 645 596 +3 596 645 597 +3 645 646 597 +3 597 646 598 +3 646 647 598 +3 598 647 599 +3 647 648 599 +3 599 648 600 +3 648 649 600 +3 600 649 601 +3 649 650 601 +3 601 650 602 +3 650 651 602 +3 602 651 603 +3 651 652 603 +3 603 652 604 +3 652 653 604 +3 604 653 605 +3 653 654 605 +3 605 654 606 +3 654 655 606 +3 606 655 607 +3 655 656 607 +3 607 656 608 +3 656 657 608 +3 608 657 609 +3 657 658 609 +3 609 658 610 +3 658 659 610 +3 610 659 611 +3 659 660 611 +3 611 660 612 +3 660 661 612 +3 612 661 613 +3 661 662 613 +3 613 662 614 +3 662 663 614 +3 614 663 615 +3 663 664 615 +3 615 664 616 +3 664 665 616 +3 616 665 617 +3 665 666 617 +3 617 666 618 +3 666 667 618 +3 618 667 619 +3 667 668 619 +3 619 668 620 +3 668 669 620 +3 620 669 621 +3 669 670 621 +3 621 670 622 +3 670 671 622 +3 622 671 623 +3 671 672 623 +3 623 672 624 +3 672 673 624 +3 624 673 625 +3 673 674 625 +3 625 674 626 +3 674 675 626 +3 626 675 627 +3 675 676 627 +3 627 676 628 +3 676 677 628 +3 628 677 629 +3 677 678 629 +3 629 678 630 +3 678 679 630 +3 630 679 631 +3 679 680 631 +3 631 680 632 +3 680 681 632 +3 632 681 633 +3 681 682 633 +3 633 682 634 +3 682 683 634 +3 634 683 635 +3 683 684 635 +3 635 684 636 +3 684 685 636 +3 637 686 638 +3 686 687 638 +3 638 687 639 +3 687 688 639 +3 639 688 640 +3 688 689 640 +3 640 689 641 +3 689 690 641 +3 641 690 642 +3 690 691 642 +3 642 691 643 +3 691 692 643 +3 643 692 644 +3 692 693 644 +3 644 693 645 +3 693 694 645 +3 645 694 646 +3 694 695 646 +3 646 695 647 +3 695 696 647 +3 647 696 648 +3 696 697 648 +3 648 697 649 +3 697 698 649 +3 649 698 650 +3 698 699 650 +3 650 699 651 +3 699 700 651 +3 651 700 652 +3 700 701 652 +3 652 701 653 +3 701 702 653 +3 653 702 654 +3 702 703 654 +3 654 703 655 +3 703 704 655 +3 655 704 656 +3 704 705 656 +3 656 705 657 +3 705 706 657 +3 657 706 658 +3 706 707 658 +3 658 707 659 +3 707 708 659 +3 659 708 660 +3 708 709 660 +3 660 709 661 +3 709 710 661 +3 661 710 662 +3 710 711 662 +3 662 711 663 +3 711 712 663 +3 663 712 664 +3 712 713 664 +3 664 713 665 +3 713 714 665 +3 665 714 666 +3 714 715 666 +3 666 715 667 +3 715 716 667 +3 667 716 668 +3 716 717 668 +3 668 717 669 +3 717 718 669 +3 669 718 670 +3 718 719 670 +3 670 719 671 +3 719 720 671 +3 671 720 672 +3 720 721 672 +3 672 721 673 +3 721 722 673 +3 673 722 674 +3 722 723 674 +3 674 723 675 +3 723 724 675 +3 675 724 676 +3 724 725 676 +3 676 725 677 +3 725 726 677 +3 677 726 678 +3 726 727 678 +3 678 727 679 +3 727 728 679 +3 679 728 680 +3 728 729 680 +3 680 729 681 +3 729 730 681 +3 681 730 682 +3 730 731 682 +3 682 731 683 +3 731 732 683 +3 683 732 684 +3 732 733 684 +3 684 733 685 +3 733 734 685 +3 686 735 687 +3 735 736 687 +3 687 736 688 +3 736 737 688 +3 688 737 689 +3 737 738 689 +3 689 738 690 +3 738 739 690 +3 690 739 691 +3 739 740 691 +3 691 740 692 +3 740 741 692 +3 692 741 693 +3 741 742 693 +3 693 742 694 +3 742 743 694 +3 694 743 695 +3 743 744 695 +3 695 744 696 +3 744 745 696 +3 696 745 697 +3 745 746 697 +3 697 746 698 +3 746 747 698 +3 698 747 699 +3 747 748 699 +3 699 748 700 +3 748 749 700 +3 700 749 701 +3 749 750 701 +3 701 750 702 +3 750 751 702 +3 702 751 703 +3 751 752 703 +3 703 752 704 +3 752 753 704 +3 704 753 705 +3 753 754 705 +3 705 754 706 +3 754 755 706 +3 706 755 707 +3 755 756 707 +3 707 756 708 +3 756 757 708 +3 708 757 709 +3 757 758 709 +3 709 758 710 +3 758 759 710 +3 710 759 711 +3 759 760 711 +3 711 760 712 +3 760 761 712 +3 712 761 713 +3 761 762 713 +3 713 762 714 +3 762 763 714 +3 714 763 715 +3 763 764 715 +3 715 764 716 +3 764 765 716 +3 716 765 717 +3 765 766 717 +3 717 766 718 +3 766 767 718 +3 718 767 719 +3 767 768 719 +3 719 768 720 +3 768 769 720 +3 720 769 721 +3 769 770 721 +3 721 770 722 +3 770 771 722 +3 722 771 723 +3 771 772 723 +3 723 772 724 +3 772 773 724 +3 724 773 725 +3 773 774 725 +3 725 774 726 +3 774 775 726 +3 726 775 727 +3 775 776 727 +3 727 776 728 +3 776 777 728 +3 728 777 729 +3 777 778 729 +3 729 778 730 +3 778 779 730 +3 730 779 731 +3 779 780 731 +3 731 780 732 +3 780 781 732 +3 732 781 733 +3 781 782 733 +3 733 782 734 +3 782 783 734 +3 735 784 736 +3 784 785 736 +3 736 785 737 +3 785 786 737 +3 737 786 738 +3 786 787 738 +3 738 787 739 +3 787 788 739 +3 739 788 740 +3 788 789 740 +3 740 789 741 +3 789 790 741 +3 741 790 742 +3 790 791 742 +3 742 791 743 +3 791 792 743 +3 743 792 744 +3 792 793 744 +3 744 793 745 +3 793 794 745 +3 745 794 746 +3 794 795 746 +3 746 795 747 +3 795 796 747 +3 747 796 748 +3 796 797 748 +3 748 797 749 +3 797 798 749 +3 749 798 750 +3 798 799 750 +3 750 799 751 +3 799 800 751 +3 751 800 752 +3 800 801 752 +3 752 801 753 +3 801 802 753 +3 753 802 754 +3 802 803 754 +3 754 803 755 +3 803 804 755 +3 755 804 756 +3 804 805 756 +3 756 805 757 +3 805 806 757 +3 757 806 758 +3 806 807 758 +3 758 807 759 +3 807 808 759 +3 759 808 760 +3 808 809 760 +3 760 809 761 +3 809 810 761 +3 761 810 762 +3 810 811 762 +3 762 811 763 +3 811 812 763 +3 763 812 764 +3 812 813 764 +3 764 813 765 +3 813 814 765 +3 765 814 766 +3 814 815 766 +3 766 815 767 +3 815 816 767 +3 767 816 768 +3 816 817 768 +3 768 817 769 +3 817 818 769 +3 769 818 770 +3 818 819 770 +3 770 819 771 +3 819 820 771 +3 771 820 772 +3 820 821 772 +3 772 821 773 +3 821 822 773 +3 773 822 774 +3 822 823 774 +3 774 823 775 +3 823 824 775 +3 775 824 776 +3 824 825 776 +3 776 825 777 +3 825 826 777 +3 777 826 778 +3 826 827 778 +3 778 827 779 +3 827 828 779 +3 779 828 780 +3 828 829 780 +3 780 829 781 +3 829 830 781 +3 781 830 782 +3 830 831 782 +3 782 831 783 +3 831 832 783 +3 784 833 785 +3 833 834 785 +3 785 834 786 +3 834 835 786 +3 786 835 787 +3 835 836 787 +3 787 836 788 +3 836 837 788 +3 788 837 789 +3 837 838 789 +3 789 838 790 +3 838 839 790 +3 790 839 791 +3 839 840 791 +3 791 840 792 +3 840 841 792 +3 792 841 793 +3 841 842 793 +3 793 842 794 +3 842 843 794 +3 794 843 795 +3 843 844 795 +3 795 844 796 +3 844 845 796 +3 796 845 797 +3 845 846 797 +3 797 846 798 +3 846 847 798 +3 798 847 799 +3 847 848 799 +3 799 848 800 +3 848 849 800 +3 800 849 801 +3 849 850 801 +3 801 850 802 +3 850 851 802 +3 802 851 803 +3 851 852 803 +3 803 852 804 +3 852 853 804 +3 804 853 805 +3 853 854 805 +3 805 854 806 +3 854 855 806 +3 806 855 807 +3 855 856 807 +3 807 856 808 +3 856 857 808 +3 808 857 809 +3 857 858 809 +3 809 858 810 +3 858 859 810 +3 810 859 811 +3 859 860 811 +3 811 860 812 +3 860 861 812 +3 812 861 813 +3 861 862 813 +3 813 862 814 +3 862 863 814 +3 814 863 815 +3 863 864 815 +3 815 864 816 +3 864 865 816 +3 816 865 817 +3 865 866 817 +3 817 866 818 +3 866 867 818 +3 818 867 819 +3 867 868 819 +3 819 868 820 +3 868 869 820 +3 820 869 821 +3 869 870 821 +3 821 870 822 +3 870 871 822 +3 822 871 823 +3 871 872 823 +3 823 872 824 +3 872 873 824 +3 824 873 825 +3 873 874 825 +3 825 874 826 +3 874 875 826 +3 826 875 827 +3 875 876 827 +3 827 876 828 +3 876 877 828 +3 828 877 829 +3 877 878 829 +3 829 878 830 +3 878 879 830 +3 830 879 831 +3 879 880 831 +3 831 880 832 +3 880 881 832 +3 833 882 834 +3 882 883 834 +3 834 883 835 +3 883 884 835 +3 835 884 836 +3 884 885 836 +3 836 885 837 +3 885 886 837 +3 837 886 838 +3 886 887 838 +3 838 887 839 +3 887 888 839 +3 839 888 840 +3 888 889 840 +3 840 889 841 +3 889 890 841 +3 841 890 842 +3 890 891 842 +3 842 891 843 +3 891 892 843 +3 843 892 844 +3 892 893 844 +3 844 893 845 +3 893 894 845 +3 845 894 846 +3 894 895 846 +3 846 895 847 +3 895 896 847 +3 847 896 848 +3 896 897 848 +3 848 897 849 +3 897 898 849 +3 849 898 850 +3 898 899 850 +3 850 899 851 +3 899 900 851 +3 851 900 852 +3 900 901 852 +3 852 901 853 +3 901 902 853 +3 853 902 854 +3 902 903 854 +3 854 903 855 +3 903 904 855 +3 855 904 856 +3 904 905 856 +3 856 905 857 +3 905 906 857 +3 857 906 858 +3 906 907 858 +3 858 907 859 +3 907 908 859 +3 859 908 860 +3 908 909 860 +3 860 909 861 +3 909 910 861 +3 861 910 862 +3 910 911 862 +3 862 911 863 +3 911 912 863 +3 863 912 864 +3 912 913 864 +3 864 913 865 +3 913 914 865 +3 865 914 866 +3 914 915 866 +3 866 915 867 +3 915 916 867 +3 867 916 868 +3 916 917 868 +3 868 917 869 +3 917 918 869 +3 869 918 870 +3 918 919 870 +3 870 919 871 +3 919 920 871 +3 871 920 872 +3 920 921 872 +3 872 921 873 +3 921 922 873 +3 873 922 874 +3 922 923 874 +3 874 923 875 +3 923 924 875 +3 875 924 876 +3 924 925 876 +3 876 925 877 +3 925 926 877 +3 877 926 878 +3 926 927 878 +3 878 927 879 +3 927 928 879 +3 879 928 880 +3 928 929 880 +3 880 929 881 +3 929 930 881 +3 882 931 883 +3 931 932 883 +3 883 932 884 +3 932 933 884 +3 884 933 885 +3 933 934 885 +3 885 934 886 +3 934 935 886 +3 886 935 887 +3 935 936 887 +3 887 936 888 +3 936 937 888 +3 888 937 889 +3 937 938 889 +3 889 938 890 +3 938 939 890 +3 890 939 891 +3 939 940 891 +3 891 940 892 +3 940 941 892 +3 892 941 893 +3 941 942 893 +3 893 942 894 +3 942 943 894 +3 894 943 895 +3 943 944 895 +3 895 944 896 +3 944 945 896 +3 896 945 897 +3 945 946 897 +3 897 946 898 +3 946 947 898 +3 898 947 899 +3 947 948 899 +3 899 948 900 +3 948 949 900 +3 900 949 901 +3 949 950 901 +3 901 950 902 +3 950 951 902 +3 902 951 903 +3 951 952 903 +3 903 952 904 +3 952 953 904 +3 904 953 905 +3 953 954 905 +3 905 954 906 +3 954 955 906 +3 906 955 907 +3 955 956 907 +3 907 956 908 +3 956 957 908 +3 908 957 909 +3 957 958 909 +3 909 958 910 +3 958 959 910 +3 910 959 911 +3 959 960 911 +3 911 960 912 +3 960 961 912 +3 912 961 913 +3 961 962 913 +3 913 962 914 +3 962 963 914 +3 914 963 915 +3 963 964 915 +3 915 964 916 +3 964 965 916 +3 916 965 917 +3 965 966 917 +3 917 966 918 +3 966 967 918 +3 918 967 919 +3 967 968 919 +3 919 968 920 +3 968 969 920 +3 920 969 921 +3 969 970 921 +3 921 970 922 +3 970 971 922 +3 922 971 923 +3 971 972 923 +3 923 972 924 +3 972 973 924 +3 924 973 925 +3 973 974 925 +3 925 974 926 +3 974 975 926 +3 926 975 927 +3 975 976 927 +3 927 976 928 +3 976 977 928 +3 928 977 929 +3 977 978 929 +3 929 978 930 +3 978 979 930 +3 931 980 932 +3 980 981 932 +3 932 981 933 +3 981 982 933 +3 933 982 934 +3 982 983 934 +3 934 983 935 +3 983 984 935 +3 935 984 936 +3 984 985 936 +3 936 985 937 +3 985 986 937 +3 937 986 938 +3 986 987 938 +3 938 987 939 +3 987 988 939 +3 939 988 940 +3 988 989 940 +3 940 989 941 +3 989 990 941 +3 941 990 942 +3 990 991 942 +3 942 991 943 +3 991 992 943 +3 943 992 944 +3 992 993 944 +3 944 993 945 +3 993 994 945 +3 945 994 946 +3 994 995 946 +3 946 995 947 +3 995 996 947 +3 947 996 948 +3 996 997 948 +3 948 997 949 +3 997 998 949 +3 949 998 950 +3 998 999 950 +3 950 999 951 +3 999 1000 951 +3 951 1000 952 +3 1000 1001 952 +3 952 1001 953 +3 1001 1002 953 +3 953 1002 954 +3 1002 1003 954 +3 954 1003 955 +3 1003 1004 955 +3 955 1004 956 +3 1004 1005 956 +3 956 1005 957 +3 1005 1006 957 +3 957 1006 958 +3 1006 1007 958 +3 958 1007 959 +3 1007 1008 959 +3 959 1008 960 +3 1008 1009 960 +3 960 1009 961 +3 1009 1010 961 +3 961 1010 962 +3 1010 1011 962 +3 962 1011 963 +3 1011 1012 963 +3 963 1012 964 +3 1012 1013 964 +3 964 1013 965 +3 1013 1014 965 +3 965 1014 966 +3 1014 1015 966 +3 966 1015 967 +3 1015 1016 967 +3 967 1016 968 +3 1016 1017 968 +3 968 1017 969 +3 1017 1018 969 +3 969 1018 970 +3 1018 1019 970 +3 970 1019 971 +3 1019 1020 971 +3 971 1020 972 +3 1020 1021 972 +3 972 1021 973 +3 1021 1022 973 +3 973 1022 974 +3 1022 1023 974 +3 974 1023 975 +3 1023 1024 975 +3 975 1024 976 +3 1024 1025 976 +3 976 1025 977 +3 1025 1026 977 +3 977 1026 978 +3 1026 1027 978 +3 978 1027 979 +3 1027 1028 979 +3 980 1029 981 +3 1029 1030 981 +3 981 1030 982 +3 1030 1031 982 +3 982 1031 983 +3 1031 1032 983 +3 983 1032 984 +3 1032 1033 984 +3 984 1033 985 +3 1033 1034 985 +3 985 1034 986 +3 1034 1035 986 +3 986 1035 987 +3 1035 1036 987 +3 987 1036 988 +3 1036 1037 988 +3 988 1037 989 +3 1037 1038 989 +3 989 1038 990 +3 1038 1039 990 +3 990 1039 991 +3 1039 1040 991 +3 991 1040 992 +3 1040 1041 992 +3 992 1041 993 +3 1041 1042 993 +3 993 1042 994 +3 1042 1043 994 +3 994 1043 995 +3 1043 1044 995 +3 995 1044 996 +3 1044 1045 996 +3 996 1045 997 +3 1045 1046 997 +3 997 1046 998 +3 1046 1047 998 +3 998 1047 999 +3 1047 1048 999 +3 999 1048 1000 +3 1048 1049 1000 +3 1000 1049 1001 +3 1049 1050 1001 +3 1001 1050 1002 +3 1050 1051 1002 +3 1002 1051 1003 +3 1051 1052 1003 +3 1003 1052 1004 +3 1052 1053 1004 +3 1004 1053 1005 +3 1053 1054 1005 +3 1005 1054 1006 +3 1054 1055 1006 +3 1006 1055 1007 +3 1055 1056 1007 +3 1007 1056 1008 +3 1056 1057 1008 +3 1008 1057 1009 +3 1057 1058 1009 +3 1009 1058 1010 +3 1058 1059 1010 +3 1010 1059 1011 +3 1059 1060 1011 +3 1011 1060 1012 +3 1060 1061 1012 +3 1012 1061 1013 +3 1061 1062 1013 +3 1013 1062 1014 +3 1062 1063 1014 +3 1014 1063 1015 +3 1063 1064 1015 +3 1015 1064 1016 +3 1064 1065 1016 +3 1016 1065 1017 +3 1065 1066 1017 +3 1017 1066 1018 +3 1066 1067 1018 +3 1018 1067 1019 +3 1067 1068 1019 +3 1019 1068 1020 +3 1068 1069 1020 +3 1020 1069 1021 +3 1069 1070 1021 +3 1021 1070 1022 +3 1070 1071 1022 +3 1022 1071 1023 +3 1071 1072 1023 +3 1023 1072 1024 +3 1072 1073 1024 +3 1024 1073 1025 +3 1073 1074 1025 +3 1025 1074 1026 +3 1074 1075 1026 +3 1026 1075 1027 +3 1075 1076 1027 +3 1027 1076 1028 +3 1076 1077 1028 +3 1029 1078 1030 +3 1078 1079 1030 +3 1030 1079 1031 +3 1079 1080 1031 +3 1031 1080 1032 +3 1080 1081 1032 +3 1032 1081 1033 +3 1081 1082 1033 +3 1033 1082 1034 +3 1082 1083 1034 +3 1034 1083 1035 +3 1083 1084 1035 +3 1035 1084 1036 +3 1084 1085 1036 +3 1036 1085 1037 +3 1085 1086 1037 +3 1037 1086 1038 +3 1086 1087 1038 +3 1038 1087 1039 +3 1087 1088 1039 +3 1039 1088 1040 +3 1088 1089 1040 +3 1040 1089 1041 +3 1089 1090 1041 +3 1041 1090 1042 +3 1090 1091 1042 +3 1042 1091 1043 +3 1091 1092 1043 +3 1043 1092 1044 +3 1092 1093 1044 +3 1044 1093 1045 +3 1093 1094 1045 +3 1045 1094 1046 +3 1094 1095 1046 +3 1046 1095 1047 +3 1095 1096 1047 +3 1047 1096 1048 +3 1096 1097 1048 +3 1048 1097 1049 +3 1097 1098 1049 +3 1049 1098 1050 +3 1098 1099 1050 +3 1050 1099 1051 +3 1099 1100 1051 +3 1051 1100 1052 +3 1100 1101 1052 +3 1052 1101 1053 +3 1101 1102 1053 +3 1053 1102 1054 +3 1102 1103 1054 +3 1054 1103 1055 +3 1103 1104 1055 +3 1055 1104 1056 +3 1104 1105 1056 +3 1056 1105 1057 +3 1105 1106 1057 +3 1057 1106 1058 +3 1106 1107 1058 +3 1058 1107 1059 +3 1107 1108 1059 +3 1059 1108 1060 +3 1108 1109 1060 +3 1060 1109 1061 +3 1109 1110 1061 +3 1061 1110 1062 +3 1110 1111 1062 +3 1062 1111 1063 +3 1111 1112 1063 +3 1063 1112 1064 +3 1112 1113 1064 +3 1064 1113 1065 +3 1113 1114 1065 +3 1065 1114 1066 +3 1114 1115 1066 +3 1066 1115 1067 +3 1115 1116 1067 +3 1067 1116 1068 +3 1116 1117 1068 +3 1068 1117 1069 +3 1117 1118 1069 +3 1069 1118 1070 +3 1118 1119 1070 +3 1070 1119 1071 +3 1119 1120 1071 +3 1071 1120 1072 +3 1120 1121 1072 +3 1072 1121 1073 +3 1121 1122 1073 +3 1073 1122 1074 +3 1122 1123 1074 +3 1074 1123 1075 +3 1123 1124 1075 +3 1075 1124 1076 +3 1124 1125 1076 +3 1076 1125 1077 +3 1125 1126 1077 +3 1078 1127 1079 +3 1127 1128 1079 +3 1079 1128 1080 +3 1128 1129 1080 +3 1080 1129 1081 +3 1129 1130 1081 +3 1081 1130 1082 +3 1130 1131 1082 +3 1082 1131 1083 +3 1131 1132 1083 +3 1083 1132 1084 +3 1132 1133 1084 +3 1084 1133 1085 +3 1133 1134 1085 +3 1085 1134 1086 +3 1134 1135 1086 +3 1086 1135 1087 +3 1135 1136 1087 +3 1087 1136 1088 +3 1136 1137 1088 +3 1088 1137 1089 +3 1137 1138 1089 +3 1089 1138 1090 +3 1138 1139 1090 +3 1090 1139 1091 +3 1139 1140 1091 +3 1091 1140 1092 +3 1140 1141 1092 +3 1092 1141 1093 +3 1141 1142 1093 +3 1093 1142 1094 +3 1142 1143 1094 +3 1094 1143 1095 +3 1143 1144 1095 +3 1095 1144 1096 +3 1144 1145 1096 +3 1096 1145 1097 +3 1145 1146 1097 +3 1097 1146 1098 +3 1146 1147 1098 +3 1098 1147 1099 +3 1147 1148 1099 +3 1099 1148 1100 +3 1148 1149 1100 +3 1100 1149 1101 +3 1149 1150 1101 +3 1101 1150 1102 +3 1150 1151 1102 +3 1102 1151 1103 +3 1151 1152 1103 +3 1103 1152 1104 +3 1152 1153 1104 +3 1104 1153 1105 +3 1153 1154 1105 +3 1105 1154 1106 +3 1154 1155 1106 +3 1106 1155 1107 +3 1155 1156 1107 +3 1107 1156 1108 +3 1156 1157 1108 +3 1108 1157 1109 +3 1157 1158 1109 +3 1109 1158 1110 +3 1158 1159 1110 +3 1110 1159 1111 +3 1159 1160 1111 +3 1111 1160 1112 +3 1160 1161 1112 +3 1112 1161 1113 +3 1161 1162 1113 +3 1113 1162 1114 +3 1162 1163 1114 +3 1114 1163 1115 +3 1163 1164 1115 +3 1115 1164 1116 +3 1164 1165 1116 +3 1116 1165 1117 +3 1165 1166 1117 +3 1117 1166 1118 +3 1166 1167 1118 +3 1118 1167 1119 +3 1167 1168 1119 +3 1119 1168 1120 +3 1168 1169 1120 +3 1120 1169 1121 +3 1169 1170 1121 +3 1121 1170 1122 +3 1170 1171 1122 +3 1122 1171 1123 +3 1171 1172 1123 +3 1123 1172 1124 +3 1172 1173 1124 +3 1124 1173 1125 +3 1173 1174 1125 +3 1125 1174 1126 +3 1174 1175 1126 +3 1127 1176 1128 +3 1176 1177 1128 +3 1128 1177 1129 +3 1177 1178 1129 +3 1129 1178 1130 +3 1178 1179 1130 +3 1130 1179 1131 +3 1179 1180 1131 +3 1131 1180 1132 +3 1180 1181 1132 +3 1132 1181 1133 +3 1181 1182 1133 +3 1133 1182 1134 +3 1182 1183 1134 +3 1134 1183 1135 +3 1183 1184 1135 +3 1135 1184 1136 +3 1184 1185 1136 +3 1136 1185 1137 +3 1185 1186 1137 +3 1137 1186 1138 +3 1186 1187 1138 +3 1138 1187 1139 +3 1187 1188 1139 +3 1139 1188 1140 +3 1188 1189 1140 +3 1140 1189 1141 +3 1189 1190 1141 +3 1141 1190 1142 +3 1190 1191 1142 +3 1142 1191 1143 +3 1191 1192 1143 +3 1143 1192 1144 +3 1192 1193 1144 +3 1144 1193 1145 +3 1193 1194 1145 +3 1145 1194 1146 +3 1194 1195 1146 +3 1146 1195 1147 +3 1195 1196 1147 +3 1147 1196 1148 +3 1196 1197 1148 +3 1148 1197 1149 +3 1197 1198 1149 +3 1149 1198 1150 +3 1198 1199 1150 +3 1150 1199 1151 +3 1199 1200 1151 +3 1151 1200 1152 +3 1200 1201 1152 +3 1152 1201 1153 +3 1201 1202 1153 +3 1153 1202 1154 +3 1202 1203 1154 +3 1154 1203 1155 +3 1203 1204 1155 +3 1155 1204 1156 +3 1204 1205 1156 +3 1156 1205 1157 +3 1205 1206 1157 +3 1157 1206 1158 +3 1206 1207 1158 +3 1158 1207 1159 +3 1207 1208 1159 +3 1159 1208 1160 +3 1208 1209 1160 +3 1160 1209 1161 +3 1209 1210 1161 +3 1161 1210 1162 +3 1210 1211 1162 +3 1162 1211 1163 +3 1211 1212 1163 +3 1163 1212 1164 +3 1212 1213 1164 +3 1164 1213 1165 +3 1213 1214 1165 +3 1165 1214 1166 +3 1214 1215 1166 +3 1166 1215 1167 +3 1215 1216 1167 +3 1167 1216 1168 +3 1216 1217 1168 +3 1168 1217 1169 +3 1217 1218 1169 +3 1169 1218 1170 +3 1218 1219 1170 +3 1170 1219 1171 +3 1219 1220 1171 +3 1171 1220 1172 +3 1220 1221 1172 +3 1172 1221 1173 +3 1221 1222 1173 +3 1173 1222 1174 +3 1222 1223 1174 +3 1174 1223 1175 +3 1223 1224 1175 +3 1176 1225 1177 +3 1225 1226 1177 +3 1177 1226 1178 +3 1226 1227 1178 +3 1178 1227 1179 +3 1227 1228 1179 +3 1179 1228 1180 +3 1228 1229 1180 +3 1180 1229 1181 +3 1229 1230 1181 +3 1181 1230 1182 +3 1230 1231 1182 +3 1182 1231 1183 +3 1231 1232 1183 +3 1183 1232 1184 +3 1232 1233 1184 +3 1184 1233 1185 +3 1233 1234 1185 +3 1185 1234 1186 +3 1234 1235 1186 +3 1186 1235 1187 +3 1235 1236 1187 +3 1187 1236 1188 +3 1236 1237 1188 +3 1188 1237 1189 +3 1237 1238 1189 +3 1189 1238 1190 +3 1238 1239 1190 +3 1190 1239 1191 +3 1239 1240 1191 +3 1191 1240 1192 +3 1240 1241 1192 +3 1192 1241 1193 +3 1241 1242 1193 +3 1193 1242 1194 +3 1242 1243 1194 +3 1194 1243 1195 +3 1243 1244 1195 +3 1195 1244 1196 +3 1244 1245 1196 +3 1196 1245 1197 +3 1245 1246 1197 +3 1197 1246 1198 +3 1246 1247 1198 +3 1198 1247 1199 +3 1247 1248 1199 +3 1199 1248 1200 +3 1248 1249 1200 +3 1200 1249 1201 +3 1249 1250 1201 +3 1201 1250 1202 +3 1250 1251 1202 +3 1202 1251 1203 +3 1251 1252 1203 +3 1203 1252 1204 +3 1252 1253 1204 +3 1204 1253 1205 +3 1253 1254 1205 +3 1205 1254 1206 +3 1254 1255 1206 +3 1206 1255 1207 +3 1255 1256 1207 +3 1207 1256 1208 +3 1256 1257 1208 +3 1208 1257 1209 +3 1257 1258 1209 +3 1209 1258 1210 +3 1258 1259 1210 +3 1210 1259 1211 +3 1259 1260 1211 +3 1211 1260 1212 +3 1260 1261 1212 +3 1212 1261 1213 +3 1261 1262 1213 +3 1213 1262 1214 +3 1262 1263 1214 +3 1214 1263 1215 +3 1263 1264 1215 +3 1215 1264 1216 +3 1264 1265 1216 +3 1216 1265 1217 +3 1265 1266 1217 +3 1217 1266 1218 +3 1266 1267 1218 +3 1218 1267 1219 +3 1267 1268 1219 +3 1219 1268 1220 +3 1268 1269 1220 +3 1220 1269 1221 +3 1269 1270 1221 +3 1221 1270 1222 +3 1270 1271 1222 +3 1222 1271 1223 +3 1271 1272 1223 +3 1223 1272 1224 +3 1272 1273 1224 +3 1225 1274 1226 +3 1274 1275 1226 +3 1226 1275 1227 +3 1275 1276 1227 +3 1227 1276 1228 +3 1276 1277 1228 +3 1228 1277 1229 +3 1277 1278 1229 +3 1229 1278 1230 +3 1278 1279 1230 +3 1230 1279 1231 +3 1279 1280 1231 +3 1231 1280 1232 +3 1280 1281 1232 +3 1232 1281 1233 +3 1281 1282 1233 +3 1233 1282 1234 +3 1282 1283 1234 +3 1234 1283 1235 +3 1283 1284 1235 +3 1235 1284 1236 +3 1284 1285 1236 +3 1236 1285 1237 +3 1285 1286 1237 +3 1237 1286 1238 +3 1286 1287 1238 +3 1238 1287 1239 +3 1287 1288 1239 +3 1239 1288 1240 +3 1288 1289 1240 +3 1240 1289 1241 +3 1289 1290 1241 +3 1241 1290 1242 +3 1290 1291 1242 +3 1242 1291 1243 +3 1291 1292 1243 +3 1243 1292 1244 +3 1292 1293 1244 +3 1244 1293 1245 +3 1293 1294 1245 +3 1245 1294 1246 +3 1294 1295 1246 +3 1246 1295 1247 +3 1295 1296 1247 +3 1247 1296 1248 +3 1296 1297 1248 +3 1248 1297 1249 +3 1297 1298 1249 +3 1249 1298 1250 +3 1298 1299 1250 +3 1250 1299 1251 +3 1299 1300 1251 +3 1251 1300 1252 +3 1300 1301 1252 +3 1252 1301 1253 +3 1301 1302 1253 +3 1253 1302 1254 +3 1302 1303 1254 +3 1254 1303 1255 +3 1303 1304 1255 +3 1255 1304 1256 +3 1304 1305 1256 +3 1256 1305 1257 +3 1305 1306 1257 +3 1257 1306 1258 +3 1306 1307 1258 +3 1258 1307 1259 +3 1307 1308 1259 +3 1259 1308 1260 +3 1308 1309 1260 +3 1260 1309 1261 +3 1309 1310 1261 +3 1261 1310 1262 +3 1310 1311 1262 +3 1262 1311 1263 +3 1311 1312 1263 +3 1263 1312 1264 +3 1312 1313 1264 +3 1264 1313 1265 +3 1313 1314 1265 +3 1265 1314 1266 +3 1314 1315 1266 +3 1266 1315 1267 +3 1315 1316 1267 +3 1267 1316 1268 +3 1316 1317 1268 +3 1268 1317 1269 +3 1317 1318 1269 +3 1269 1318 1270 +3 1318 1319 1270 +3 1270 1319 1271 +3 1319 1320 1271 +3 1271 1320 1272 +3 1320 1321 1272 +3 1272 1321 1273 +3 1321 1322 1273 +3 1274 1323 1275 +3 1323 1324 1275 +3 1275 1324 1276 +3 1324 1325 1276 +3 1276 1325 1277 +3 1325 1326 1277 +3 1277 1326 1278 +3 1326 1327 1278 +3 1278 1327 1279 +3 1327 1328 1279 +3 1279 1328 1280 +3 1328 1329 1280 +3 1280 1329 1281 +3 1329 1330 1281 +3 1281 1330 1282 +3 1330 1331 1282 +3 1282 1331 1283 +3 1331 1332 1283 +3 1283 1332 1284 +3 1332 1333 1284 +3 1284 1333 1285 +3 1333 1334 1285 +3 1285 1334 1286 +3 1334 1335 1286 +3 1286 1335 1287 +3 1335 1336 1287 +3 1287 1336 1288 +3 1336 1337 1288 +3 1288 1337 1289 +3 1337 1338 1289 +3 1289 1338 1290 +3 1338 1339 1290 +3 1290 1339 1291 +3 1339 1340 1291 +3 1291 1340 1292 +3 1340 1341 1292 +3 1292 1341 1293 +3 1341 1342 1293 +3 1293 1342 1294 +3 1342 1343 1294 +3 1294 1343 1295 +3 1343 1344 1295 +3 1295 1344 1296 +3 1344 1345 1296 +3 1296 1345 1297 +3 1345 1346 1297 +3 1297 1346 1298 +3 1346 1347 1298 +3 1298 1347 1299 +3 1347 1348 1299 +3 1299 1348 1300 +3 1348 1349 1300 +3 1300 1349 1301 +3 1349 1350 1301 +3 1301 1350 1302 +3 1350 1351 1302 +3 1302 1351 1303 +3 1351 1352 1303 +3 1303 1352 1304 +3 1352 1353 1304 +3 1304 1353 1305 +3 1353 1354 1305 +3 1305 1354 1306 +3 1354 1355 1306 +3 1306 1355 1307 +3 1355 1356 1307 +3 1307 1356 1308 +3 1356 1357 1308 +3 1308 1357 1309 +3 1357 1358 1309 +3 1309 1358 1310 +3 1358 1359 1310 +3 1310 1359 1311 +3 1359 1360 1311 +3 1311 1360 1312 +3 1360 1361 1312 +3 1312 1361 1313 +3 1361 1362 1313 +3 1313 1362 1314 +3 1362 1363 1314 +3 1314 1363 1315 +3 1363 1364 1315 +3 1315 1364 1316 +3 1364 1365 1316 +3 1316 1365 1317 +3 1365 1366 1317 +3 1317 1366 1318 +3 1366 1367 1318 +3 1318 1367 1319 +3 1367 1368 1319 +3 1319 1368 1320 +3 1368 1369 1320 +3 1320 1369 1321 +3 1369 1370 1321 +3 1321 1370 1322 +3 1370 1371 1322 +3 1323 1372 1324 +3 1372 1373 1324 +3 1324 1373 1325 +3 1373 1374 1325 +3 1325 1374 1326 +3 1374 1375 1326 +3 1326 1375 1327 +3 1375 1376 1327 +3 1327 1376 1328 +3 1376 1377 1328 +3 1328 1377 1329 +3 1377 1378 1329 +3 1329 1378 1330 +3 1378 1379 1330 +3 1330 1379 1331 +3 1379 1380 1331 +3 1331 1380 1332 +3 1380 1381 1332 +3 1332 1381 1333 +3 1381 1382 1333 +3 1333 1382 1334 +3 1382 1383 1334 +3 1334 1383 1335 +3 1383 1384 1335 +3 1335 1384 1336 +3 1384 1385 1336 +3 1336 1385 1337 +3 1385 1386 1337 +3 1337 1386 1338 +3 1386 1387 1338 +3 1338 1387 1339 +3 1387 1388 1339 +3 1339 1388 1340 +3 1388 1389 1340 +3 1340 1389 1341 +3 1389 1390 1341 +3 1341 1390 1342 +3 1390 1391 1342 +3 1342 1391 1343 +3 1391 1392 1343 +3 1343 1392 1344 +3 1392 1393 1344 +3 1344 1393 1345 +3 1393 1394 1345 +3 1345 1394 1346 +3 1394 1395 1346 +3 1346 1395 1347 +3 1395 1396 1347 +3 1347 1396 1348 +3 1396 1397 1348 +3 1348 1397 1349 +3 1397 1398 1349 +3 1349 1398 1350 +3 1398 1399 1350 +3 1350 1399 1351 +3 1399 1400 1351 +3 1351 1400 1352 +3 1400 1401 1352 +3 1352 1401 1353 +3 1401 1402 1353 +3 1353 1402 1354 +3 1402 1403 1354 +3 1354 1403 1355 +3 1403 1404 1355 +3 1355 1404 1356 +3 1404 1405 1356 +3 1356 1405 1357 +3 1405 1406 1357 +3 1357 1406 1358 +3 1406 1407 1358 +3 1358 1407 1359 +3 1407 1408 1359 +3 1359 1408 1360 +3 1408 1409 1360 +3 1360 1409 1361 +3 1409 1410 1361 +3 1361 1410 1362 +3 1410 1411 1362 +3 1362 1411 1363 +3 1411 1412 1363 +3 1363 1412 1364 +3 1412 1413 1364 +3 1364 1413 1365 +3 1413 1414 1365 +3 1365 1414 1366 +3 1414 1415 1366 +3 1366 1415 1367 +3 1415 1416 1367 +3 1367 1416 1368 +3 1416 1417 1368 +3 1368 1417 1369 +3 1417 1418 1369 +3 1369 1418 1370 +3 1418 1419 1370 +3 1370 1419 1371 +3 1419 1420 1371 +3 1372 1421 1373 +3 1421 1422 1373 +3 1373 1422 1374 +3 1422 1423 1374 +3 1374 1423 1375 +3 1423 1424 1375 +3 1375 1424 1376 +3 1424 1425 1376 +3 1376 1425 1377 +3 1425 1426 1377 +3 1377 1426 1378 +3 1426 1427 1378 +3 1378 1427 1379 +3 1427 1428 1379 +3 1379 1428 1380 +3 1428 1429 1380 +3 1380 1429 1381 +3 1429 1430 1381 +3 1381 1430 1382 +3 1430 1431 1382 +3 1382 1431 1383 +3 1431 1432 1383 +3 1383 1432 1384 +3 1432 1433 1384 +3 1384 1433 1385 +3 1433 1434 1385 +3 1385 1434 1386 +3 1434 1435 1386 +3 1386 1435 1387 +3 1435 1436 1387 +3 1387 1436 1388 +3 1436 1437 1388 +3 1388 1437 1389 +3 1437 1438 1389 +3 1389 1438 1390 +3 1438 1439 1390 +3 1390 1439 1391 +3 1439 1440 1391 +3 1391 1440 1392 +3 1440 1441 1392 +3 1392 1441 1393 +3 1441 1442 1393 +3 1393 1442 1394 +3 1442 1443 1394 +3 1394 1443 1395 +3 1443 1444 1395 +3 1395 1444 1396 +3 1444 1445 1396 +3 1396 1445 1397 +3 1445 1446 1397 +3 1397 1446 1398 +3 1446 1447 1398 +3 1398 1447 1399 +3 1447 1448 1399 +3 1399 1448 1400 +3 1448 1449 1400 +3 1400 1449 1401 +3 1449 1450 1401 +3 1401 1450 1402 +3 1450 1451 1402 +3 1402 1451 1403 +3 1451 1452 1403 +3 1403 1452 1404 +3 1452 1453 1404 +3 1404 1453 1405 +3 1453 1454 1405 +3 1405 1454 1406 +3 1454 1455 1406 +3 1406 1455 1407 +3 1455 1456 1407 +3 1407 1456 1408 +3 1456 1457 1408 +3 1408 1457 1409 +3 1457 1458 1409 +3 1409 1458 1410 +3 1458 1459 1410 +3 1410 1459 1411 +3 1459 1460 1411 +3 1411 1460 1412 +3 1460 1461 1412 +3 1412 1461 1413 +3 1461 1462 1413 +3 1413 1462 1414 +3 1462 1463 1414 +3 1414 1463 1415 +3 1463 1464 1415 +3 1415 1464 1416 +3 1464 1465 1416 +3 1416 1465 1417 +3 1465 1466 1417 +3 1417 1466 1418 +3 1466 1467 1418 +3 1418 1467 1419 +3 1467 1468 1419 +3 1419 1468 1420 +3 1468 1469 1420 +3 1421 1470 1422 +3 1470 1471 1422 +3 1422 1471 1423 +3 1471 1472 1423 +3 1423 1472 1424 +3 1472 1473 1424 +3 1424 1473 1425 +3 1473 1474 1425 +3 1425 1474 1426 +3 1474 1475 1426 +3 1426 1475 1427 +3 1475 1476 1427 +3 1427 1476 1428 +3 1476 1477 1428 +3 1428 1477 1429 +3 1477 1478 1429 +3 1429 1478 1430 +3 1478 1479 1430 +3 1430 1479 1431 +3 1479 1480 1431 +3 1431 1480 1432 +3 1480 1481 1432 +3 1432 1481 1433 +3 1481 1482 1433 +3 1433 1482 1434 +3 1482 1483 1434 +3 1434 1483 1435 +3 1483 1484 1435 +3 1435 1484 1436 +3 1484 1485 1436 +3 1436 1485 1437 +3 1485 1486 1437 +3 1437 1486 1438 +3 1486 1487 1438 +3 1438 1487 1439 +3 1487 1488 1439 +3 1439 1488 1440 +3 1488 1489 1440 +3 1440 1489 1441 +3 1489 1490 1441 +3 1441 1490 1442 +3 1490 1491 1442 +3 1442 1491 1443 +3 1491 1492 1443 +3 1443 1492 1444 +3 1492 1493 1444 +3 1444 1493 1445 +3 1493 1494 1445 +3 1445 1494 1446 +3 1494 1495 1446 +3 1446 1495 1447 +3 1495 1496 1447 +3 1447 1496 1448 +3 1496 1497 1448 +3 1448 1497 1449 +3 1497 1498 1449 +3 1449 1498 1450 +3 1498 1499 1450 +3 1450 1499 1451 +3 1499 1500 1451 +3 1451 1500 1452 +3 1500 1501 1452 +3 1452 1501 1453 +3 1501 1502 1453 +3 1453 1502 1454 +3 1502 1503 1454 +3 1454 1503 1455 +3 1503 1504 1455 +3 1455 1504 1456 +3 1504 1505 1456 +3 1456 1505 1457 +3 1505 1506 1457 +3 1457 1506 1458 +3 1506 1507 1458 +3 1458 1507 1459 +3 1507 1508 1459 +3 1459 1508 1460 +3 1508 1509 1460 +3 1460 1509 1461 +3 1509 1510 1461 +3 1461 1510 1462 +3 1510 1511 1462 +3 1462 1511 1463 +3 1511 1512 1463 +3 1463 1512 1464 +3 1512 1513 1464 +3 1464 1513 1465 +3 1513 1514 1465 +3 1465 1514 1466 +3 1514 1515 1466 +3 1466 1515 1467 +3 1515 1516 1467 +3 1467 1516 1468 +3 1516 1517 1468 +3 1468 1517 1469 +3 1517 1518 1469 +3 1470 1519 1471 +3 1519 1520 1471 +3 1471 1520 1472 +3 1520 1521 1472 +3 1472 1521 1473 +3 1521 1522 1473 +3 1473 1522 1474 +3 1522 1523 1474 +3 1474 1523 1475 +3 1523 1524 1475 +3 1475 1524 1476 +3 1524 1525 1476 +3 1476 1525 1477 +3 1525 1526 1477 +3 1477 1526 1478 +3 1526 1527 1478 +3 1478 1527 1479 +3 1527 1528 1479 +3 1479 1528 1480 +3 1528 1529 1480 +3 1480 1529 1481 +3 1529 1530 1481 +3 1481 1530 1482 +3 1530 1531 1482 +3 1482 1531 1483 +3 1531 1532 1483 +3 1483 1532 1484 +3 1532 1533 1484 +3 1484 1533 1485 +3 1533 1534 1485 +3 1485 1534 1486 +3 1534 1535 1486 +3 1486 1535 1487 +3 1535 1536 1487 +3 1487 1536 1488 +3 1536 1537 1488 +3 1488 1537 1489 +3 1537 1538 1489 +3 1489 1538 1490 +3 1538 1539 1490 +3 1490 1539 1491 +3 1539 1540 1491 +3 1491 1540 1492 +3 1540 1541 1492 +3 1492 1541 1493 +3 1541 1542 1493 +3 1493 1542 1494 +3 1542 1543 1494 +3 1494 1543 1495 +3 1543 1544 1495 +3 1495 1544 1496 +3 1544 1545 1496 +3 1496 1545 1497 +3 1545 1546 1497 +3 1497 1546 1498 +3 1546 1547 1498 +3 1498 1547 1499 +3 1547 1548 1499 +3 1499 1548 1500 +3 1548 1549 1500 +3 1500 1549 1501 +3 1549 1550 1501 +3 1501 1550 1502 +3 1550 1551 1502 +3 1502 1551 1503 +3 1551 1552 1503 +3 1503 1552 1504 +3 1552 1553 1504 +3 1504 1553 1505 +3 1553 1554 1505 +3 1505 1554 1506 +3 1554 1555 1506 +3 1506 1555 1507 +3 1555 1556 1507 +3 1507 1556 1508 +3 1556 1557 1508 +3 1508 1557 1509 +3 1557 1558 1509 +3 1509 1558 1510 +3 1558 1559 1510 +3 1510 1559 1511 +3 1559 1560 1511 +3 1511 1560 1512 +3 1560 1561 1512 +3 1512 1561 1513 +3 1561 1562 1513 +3 1513 1562 1514 +3 1562 1563 1514 +3 1514 1563 1515 +3 1563 1564 1515 +3 1515 1564 1516 +3 1564 1565 1516 +3 1516 1565 1517 +3 1565 1566 1517 +3 1517 1566 1518 +3 1566 1567 1518 +3 1519 1568 1520 +3 1568 1569 1520 +3 1520 1569 1521 +3 1569 1570 1521 +3 1521 1570 1522 +3 1570 1571 1522 +3 1522 1571 1523 +3 1571 1572 1523 +3 1523 1572 1524 +3 1572 1573 1524 +3 1524 1573 1525 +3 1573 1574 1525 +3 1525 1574 1526 +3 1574 1575 1526 +3 1526 1575 1527 +3 1575 1576 1527 +3 1527 1576 1528 +3 1576 1577 1528 +3 1528 1577 1529 +3 1577 1578 1529 +3 1529 1578 1530 +3 1578 1579 1530 +3 1530 1579 1531 +3 1579 1580 1531 +3 1531 1580 1532 +3 1580 1581 1532 +3 1532 1581 1533 +3 1581 1582 1533 +3 1533 1582 1534 +3 1582 1583 1534 +3 1534 1583 1535 +3 1583 1584 1535 +3 1535 1584 1536 +3 1584 1585 1536 +3 1536 1585 1537 +3 1585 1586 1537 +3 1537 1586 1538 +3 1586 1587 1538 +3 1538 1587 1539 +3 1587 1588 1539 +3 1539 1588 1540 +3 1588 1589 1540 +3 1540 1589 1541 +3 1589 1590 1541 +3 1541 1590 1542 +3 1590 1591 1542 +3 1542 1591 1543 +3 1591 1592 1543 +3 1543 1592 1544 +3 1592 1593 1544 +3 1544 1593 1545 +3 1593 1594 1545 +3 1545 1594 1546 +3 1594 1595 1546 +3 1546 1595 1547 +3 1595 1596 1547 +3 1547 1596 1548 +3 1596 1597 1548 +3 1548 1597 1549 +3 1597 1598 1549 +3 1549 1598 1550 +3 1598 1599 1550 +3 1550 1599 1551 +3 1599 1600 1551 +3 1551 1600 1552 +3 1600 1601 1552 +3 1552 1601 1553 +3 1601 1602 1553 +3 1553 1602 1554 +3 1602 1603 1554 +3 1554 1603 1555 +3 1603 1604 1555 +3 1555 1604 1556 +3 1604 1605 1556 +3 1556 1605 1557 +3 1605 1606 1557 +3 1557 1606 1558 +3 1606 1607 1558 +3 1558 1607 1559 +3 1607 1608 1559 +3 1559 1608 1560 +3 1608 1609 1560 +3 1560 1609 1561 +3 1609 1610 1561 +3 1561 1610 1562 +3 1610 1611 1562 +3 1562 1611 1563 +3 1611 1612 1563 +3 1563 1612 1564 +3 1612 1613 1564 +3 1564 1613 1565 +3 1613 1614 1565 +3 1565 1614 1566 +3 1614 1615 1566 +3 1566 1615 1567 +3 1615 1616 1567 +3 1568 1617 1569 +3 1617 1618 1569 +3 1569 1618 1570 +3 1618 1619 1570 +3 1570 1619 1571 +3 1619 1620 1571 +3 1571 1620 1572 +3 1620 1621 1572 +3 1572 1621 1573 +3 1621 1622 1573 +3 1573 1622 1574 +3 1622 1623 1574 +3 1574 1623 1575 +3 1623 1624 1575 +3 1575 1624 1576 +3 1624 1625 1576 +3 1576 1625 1577 +3 1625 1626 1577 +3 1577 1626 1578 +3 1626 1627 1578 +3 1578 1627 1579 +3 1627 1628 1579 +3 1579 1628 1580 +3 1628 1629 1580 +3 1580 1629 1581 +3 1629 1630 1581 +3 1581 1630 1582 +3 1630 1631 1582 +3 1582 1631 1583 +3 1631 1632 1583 +3 1583 1632 1584 +3 1632 1633 1584 +3 1584 1633 1585 +3 1633 1634 1585 +3 1585 1634 1586 +3 1634 1635 1586 +3 1586 1635 1587 +3 1635 1636 1587 +3 1587 1636 1588 +3 1636 1637 1588 +3 1588 1637 1589 +3 1637 1638 1589 +3 1589 1638 1590 +3 1638 1639 1590 +3 1590 1639 1591 +3 1639 1640 1591 +3 1591 1640 1592 +3 1640 1641 1592 +3 1592 1641 1593 +3 1641 1642 1593 +3 1593 1642 1594 +3 1642 1643 1594 +3 1594 1643 1595 +3 1643 1644 1595 +3 1595 1644 1596 +3 1644 1645 1596 +3 1596 1645 1597 +3 1645 1646 1597 +3 1597 1646 1598 +3 1646 1647 1598 +3 1598 1647 1599 +3 1647 1648 1599 +3 1599 1648 1600 +3 1648 1649 1600 +3 1600 1649 1601 +3 1649 1650 1601 +3 1601 1650 1602 +3 1650 1651 1602 +3 1602 1651 1603 +3 1651 1652 1603 +3 1603 1652 1604 +3 1652 1653 1604 +3 1604 1653 1605 +3 1653 1654 1605 +3 1605 1654 1606 +3 1654 1655 1606 +3 1606 1655 1607 +3 1655 1656 1607 +3 1607 1656 1608 +3 1656 1657 1608 +3 1608 1657 1609 +3 1657 1658 1609 +3 1609 1658 1610 +3 1658 1659 1610 +3 1610 1659 1611 +3 1659 1660 1611 +3 1611 1660 1612 +3 1660 1661 1612 +3 1612 1661 1613 +3 1661 1662 1613 +3 1613 1662 1614 +3 1662 1663 1614 +3 1614 1663 1615 +3 1663 1664 1615 +3 1615 1664 1616 +3 1664 1665 1616 +3 1617 1666 1618 +3 1666 1667 1618 +3 1618 1667 1619 +3 1667 1668 1619 +3 1619 1668 1620 +3 1668 1669 1620 +3 1620 1669 1621 +3 1669 1670 1621 +3 1621 1670 1622 +3 1670 1671 1622 +3 1622 1671 1623 +3 1671 1672 1623 +3 1623 1672 1624 +3 1672 1673 1624 +3 1624 1673 1625 +3 1673 1674 1625 +3 1625 1674 1626 +3 1674 1675 1626 +3 1626 1675 1627 +3 1675 1676 1627 +3 1627 1676 1628 +3 1676 1677 1628 +3 1628 1677 1629 +3 1677 1678 1629 +3 1629 1678 1630 +3 1678 1679 1630 +3 1630 1679 1631 +3 1679 1680 1631 +3 1631 1680 1632 +3 1680 1681 1632 +3 1632 1681 1633 +3 1681 1682 1633 +3 1633 1682 1634 +3 1682 1683 1634 +3 1634 1683 1635 +3 1683 1684 1635 +3 1635 1684 1636 +3 1684 1685 1636 +3 1636 1685 1637 +3 1685 1686 1637 +3 1637 1686 1638 +3 1686 1687 1638 +3 1638 1687 1639 +3 1687 1688 1639 +3 1639 1688 1640 +3 1688 1689 1640 +3 1640 1689 1641 +3 1689 1690 1641 +3 1641 1690 1642 +3 1690 1691 1642 +3 1642 1691 1643 +3 1691 1692 1643 +3 1643 1692 1644 +3 1692 1693 1644 +3 1644 1693 1645 +3 1693 1694 1645 +3 1645 1694 1646 +3 1694 1695 1646 +3 1646 1695 1647 +3 1695 1696 1647 +3 1647 1696 1648 +3 1696 1697 1648 +3 1648 1697 1649 +3 1697 1698 1649 +3 1649 1698 1650 +3 1698 1699 1650 +3 1650 1699 1651 +3 1699 1700 1651 +3 1651 1700 1652 +3 1700 1701 1652 +3 1652 1701 1653 +3 1701 1702 1653 +3 1653 1702 1654 +3 1702 1703 1654 +3 1654 1703 1655 +3 1703 1704 1655 +3 1655 1704 1656 +3 1704 1705 1656 +3 1656 1705 1657 +3 1705 1706 1657 +3 1657 1706 1658 +3 1706 1707 1658 +3 1658 1707 1659 +3 1707 1708 1659 +3 1659 1708 1660 +3 1708 1709 1660 +3 1660 1709 1661 +3 1709 1710 1661 +3 1661 1710 1662 +3 1710 1711 1662 +3 1662 1711 1663 +3 1711 1712 1663 +3 1663 1712 1664 +3 1712 1713 1664 +3 1664 1713 1665 +3 1713 1714 1665 +3 1666 1715 1667 +3 1715 1716 1667 +3 1667 1716 1668 +3 1716 1717 1668 +3 1668 1717 1669 +3 1717 1718 1669 +3 1669 1718 1670 +3 1718 1719 1670 +3 1670 1719 1671 +3 1719 1720 1671 +3 1671 1720 1672 +3 1720 1721 1672 +3 1672 1721 1673 +3 1721 1722 1673 +3 1673 1722 1674 +3 1722 1723 1674 +3 1674 1723 1675 +3 1723 1724 1675 +3 1675 1724 1676 +3 1724 1725 1676 +3 1676 1725 1677 +3 1725 1726 1677 +3 1677 1726 1678 +3 1726 1727 1678 +3 1678 1727 1679 +3 1727 1728 1679 +3 1679 1728 1680 +3 1728 1729 1680 +3 1680 1729 1681 +3 1729 1730 1681 +3 1681 1730 1682 +3 1730 1731 1682 +3 1682 1731 1683 +3 1731 1732 1683 +3 1683 1732 1684 +3 1732 1733 1684 +3 1684 1733 1685 +3 1733 1734 1685 +3 1685 1734 1686 +3 1734 1735 1686 +3 1686 1735 1687 +3 1735 1736 1687 +3 1687 1736 1688 +3 1736 1737 1688 +3 1688 1737 1689 +3 1737 1738 1689 +3 1689 1738 1690 +3 1738 1739 1690 +3 1690 1739 1691 +3 1739 1740 1691 +3 1691 1740 1692 +3 1740 1741 1692 +3 1692 1741 1693 +3 1741 1742 1693 +3 1693 1742 1694 +3 1742 1743 1694 +3 1694 1743 1695 +3 1743 1744 1695 +3 1695 1744 1696 +3 1744 1745 1696 +3 1696 1745 1697 +3 1745 1746 1697 +3 1697 1746 1698 +3 1746 1747 1698 +3 1698 1747 1699 +3 1747 1748 1699 +3 1699 1748 1700 +3 1748 1749 1700 +3 1700 1749 1701 +3 1749 1750 1701 +3 1701 1750 1702 +3 1750 1751 1702 +3 1702 1751 1703 +3 1751 1752 1703 +3 1703 1752 1704 +3 1752 1753 1704 +3 1704 1753 1705 +3 1753 1754 1705 +3 1705 1754 1706 +3 1754 1755 1706 +3 1706 1755 1707 +3 1755 1756 1707 +3 1707 1756 1708 +3 1756 1757 1708 +3 1708 1757 1709 +3 1757 1758 1709 +3 1709 1758 1710 +3 1758 1759 1710 +3 1710 1759 1711 +3 1759 1760 1711 +3 1711 1760 1712 +3 1760 1761 1712 +3 1712 1761 1713 +3 1761 1762 1713 +3 1713 1762 1714 +3 1762 1763 1714 +3 1715 1764 1716 +3 1764 1765 1716 +3 1716 1765 1717 +3 1765 1766 1717 +3 1717 1766 1718 +3 1766 1767 1718 +3 1718 1767 1719 +3 1767 1768 1719 +3 1719 1768 1720 +3 1768 1769 1720 +3 1720 1769 1721 +3 1769 1770 1721 +3 1721 1770 1722 +3 1770 1771 1722 +3 1722 1771 1723 +3 1771 1772 1723 +3 1723 1772 1724 +3 1772 1773 1724 +3 1724 1773 1725 +3 1773 1774 1725 +3 1725 1774 1726 +3 1774 1775 1726 +3 1726 1775 1727 +3 1775 1776 1727 +3 1727 1776 1728 +3 1776 1777 1728 +3 1728 1777 1729 +3 1777 1778 1729 +3 1729 1778 1730 +3 1778 1779 1730 +3 1730 1779 1731 +3 1779 1780 1731 +3 1731 1780 1732 +3 1780 1781 1732 +3 1732 1781 1733 +3 1781 1782 1733 +3 1733 1782 1734 +3 1782 1783 1734 +3 1734 1783 1735 +3 1783 1784 1735 +3 1735 1784 1736 +3 1784 1785 1736 +3 1736 1785 1737 +3 1785 1786 1737 +3 1737 1786 1738 +3 1786 1787 1738 +3 1738 1787 1739 +3 1787 1788 1739 +3 1739 1788 1740 +3 1788 1789 1740 +3 1740 1789 1741 +3 1789 1790 1741 +3 1741 1790 1742 +3 1790 1791 1742 +3 1742 1791 1743 +3 1791 1792 1743 +3 1743 1792 1744 +3 1792 1793 1744 +3 1744 1793 1745 +3 1793 1794 1745 +3 1745 1794 1746 +3 1794 1795 1746 +3 1746 1795 1747 +3 1795 1796 1747 +3 1747 1796 1748 +3 1796 1797 1748 +3 1748 1797 1749 +3 1797 1798 1749 +3 1749 1798 1750 +3 1798 1799 1750 +3 1750 1799 1751 +3 1799 1800 1751 +3 1751 1800 1752 +3 1800 1801 1752 +3 1752 1801 1753 +3 1801 1802 1753 +3 1753 1802 1754 +3 1802 1803 1754 +3 1754 1803 1755 +3 1803 1804 1755 +3 1755 1804 1756 +3 1804 1805 1756 +3 1756 1805 1757 +3 1805 1806 1757 +3 1757 1806 1758 +3 1806 1807 1758 +3 1758 1807 1759 +3 1807 1808 1759 +3 1759 1808 1760 +3 1808 1809 1760 +3 1760 1809 1761 +3 1809 1810 1761 +3 1761 1810 1762 +3 1810 1811 1762 +3 1762 1811 1763 +3 1811 1812 1763 +3 1764 1813 1765 +3 1813 1814 1765 +3 1765 1814 1766 +3 1814 1815 1766 +3 1766 1815 1767 +3 1815 1816 1767 +3 1767 1816 1768 +3 1816 1817 1768 +3 1768 1817 1769 +3 1817 1818 1769 +3 1769 1818 1770 +3 1818 1819 1770 +3 1770 1819 1771 +3 1819 1820 1771 +3 1771 1820 1772 +3 1820 1821 1772 +3 1772 1821 1773 +3 1821 1822 1773 +3 1773 1822 1774 +3 1822 1823 1774 +3 1774 1823 1775 +3 1823 1824 1775 +3 1775 1824 1776 +3 1824 1825 1776 +3 1776 1825 1777 +3 1825 1826 1777 +3 1777 1826 1778 +3 1826 1827 1778 +3 1778 1827 1779 +3 1827 1828 1779 +3 1779 1828 1780 +3 1828 1829 1780 +3 1780 1829 1781 +3 1829 1830 1781 +3 1781 1830 1782 +3 1830 1831 1782 +3 1782 1831 1783 +3 1831 1832 1783 +3 1783 1832 1784 +3 1832 1833 1784 +3 1784 1833 1785 +3 1833 1834 1785 +3 1785 1834 1786 +3 1834 1835 1786 +3 1786 1835 1787 +3 1835 1836 1787 +3 1787 1836 1788 +3 1836 1837 1788 +3 1788 1837 1789 +3 1837 1838 1789 +3 1789 1838 1790 +3 1838 1839 1790 +3 1790 1839 1791 +3 1839 1840 1791 +3 1791 1840 1792 +3 1840 1841 1792 +3 1792 1841 1793 +3 1841 1842 1793 +3 1793 1842 1794 +3 1842 1843 1794 +3 1794 1843 1795 +3 1843 1844 1795 +3 1795 1844 1796 +3 1844 1845 1796 +3 1796 1845 1797 +3 1845 1846 1797 +3 1797 1846 1798 +3 1846 1847 1798 +3 1798 1847 1799 +3 1847 1848 1799 +3 1799 1848 1800 +3 1848 1849 1800 +3 1800 1849 1801 +3 1849 1850 1801 +3 1801 1850 1802 +3 1850 1851 1802 +3 1802 1851 1803 +3 1851 1852 1803 +3 1803 1852 1804 +3 1852 1853 1804 +3 1804 1853 1805 +3 1853 1854 1805 +3 1805 1854 1806 +3 1854 1855 1806 +3 1806 1855 1807 +3 1855 1856 1807 +3 1807 1856 1808 +3 1856 1857 1808 +3 1808 1857 1809 +3 1857 1858 1809 +3 1809 1858 1810 +3 1858 1859 1810 +3 1810 1859 1811 +3 1859 1860 1811 +3 1811 1860 1812 +3 1860 1861 1812 +3 1813 1862 1814 +3 1862 1863 1814 +3 1814 1863 1815 +3 1863 1864 1815 +3 1815 1864 1816 +3 1864 1865 1816 +3 1816 1865 1817 +3 1865 1866 1817 +3 1817 1866 1818 +3 1866 1867 1818 +3 1818 1867 1819 +3 1867 1868 1819 +3 1819 1868 1820 +3 1868 1869 1820 +3 1820 1869 1821 +3 1869 1870 1821 +3 1821 1870 1822 +3 1870 1871 1822 +3 1822 1871 1823 +3 1871 1872 1823 +3 1823 1872 1824 +3 1872 1873 1824 +3 1824 1873 1825 +3 1873 1874 1825 +3 1825 1874 1826 +3 1874 1875 1826 +3 1826 1875 1827 +3 1875 1876 1827 +3 1827 1876 1828 +3 1876 1877 1828 +3 1828 1877 1829 +3 1877 1878 1829 +3 1829 1878 1830 +3 1878 1879 1830 +3 1830 1879 1831 +3 1879 1880 1831 +3 1831 1880 1832 +3 1880 1881 1832 +3 1832 1881 1833 +3 1881 1882 1833 +3 1833 1882 1834 +3 1882 1883 1834 +3 1834 1883 1835 +3 1883 1884 1835 +3 1835 1884 1836 +3 1884 1885 1836 +3 1836 1885 1837 +3 1885 1886 1837 +3 1837 1886 1838 +3 1886 1887 1838 +3 1838 1887 1839 +3 1887 1888 1839 +3 1839 1888 1840 +3 1888 1889 1840 +3 1840 1889 1841 +3 1889 1890 1841 +3 1841 1890 1842 +3 1890 1891 1842 +3 1842 1891 1843 +3 1891 1892 1843 +3 1843 1892 1844 +3 1892 1893 1844 +3 1844 1893 1845 +3 1893 1894 1845 +3 1845 1894 1846 +3 1894 1895 1846 +3 1846 1895 1847 +3 1895 1896 1847 +3 1847 1896 1848 +3 1896 1897 1848 +3 1848 1897 1849 +3 1897 1898 1849 +3 1849 1898 1850 +3 1898 1899 1850 +3 1850 1899 1851 +3 1899 1900 1851 +3 1851 1900 1852 +3 1900 1901 1852 +3 1852 1901 1853 +3 1901 1902 1853 +3 1853 1902 1854 +3 1902 1903 1854 +3 1854 1903 1855 +3 1903 1904 1855 +3 1855 1904 1856 +3 1904 1905 1856 +3 1856 1905 1857 +3 1905 1906 1857 +3 1857 1906 1858 +3 1906 1907 1858 +3 1858 1907 1859 +3 1907 1908 1859 +3 1859 1908 1860 +3 1908 1909 1860 +3 1860 1909 1861 +3 1909 1910 1861 +3 1862 1911 1863 +3 1911 1912 1863 +3 1863 1912 1864 +3 1912 1913 1864 +3 1864 1913 1865 +3 1913 1914 1865 +3 1865 1914 1866 +3 1914 1915 1866 +3 1866 1915 1867 +3 1915 1916 1867 +3 1867 1916 1868 +3 1916 1917 1868 +3 1868 1917 1869 +3 1917 1918 1869 +3 1869 1918 1870 +3 1918 1919 1870 +3 1870 1919 1871 +3 1919 1920 1871 +3 1871 1920 1872 +3 1920 1921 1872 +3 1872 1921 1873 +3 1921 1922 1873 +3 1873 1922 1874 +3 1922 1923 1874 +3 1874 1923 1875 +3 1923 1924 1875 +3 1875 1924 1876 +3 1924 1925 1876 +3 1876 1925 1877 +3 1925 1926 1877 +3 1877 1926 1878 +3 1926 1927 1878 +3 1878 1927 1879 +3 1927 1928 1879 +3 1879 1928 1880 +3 1928 1929 1880 +3 1880 1929 1881 +3 1929 1930 1881 +3 1881 1930 1882 +3 1930 1931 1882 +3 1882 1931 1883 +3 1931 1932 1883 +3 1883 1932 1884 +3 1932 1933 1884 +3 1884 1933 1885 +3 1933 1934 1885 +3 1885 1934 1886 +3 1934 1935 1886 +3 1886 1935 1887 +3 1935 1936 1887 +3 1887 1936 1888 +3 1936 1937 1888 +3 1888 1937 1889 +3 1937 1938 1889 +3 1889 1938 1890 +3 1938 1939 1890 +3 1890 1939 1891 +3 1939 1940 1891 +3 1891 1940 1892 +3 1940 1941 1892 +3 1892 1941 1893 +3 1941 1942 1893 +3 1893 1942 1894 +3 1942 1943 1894 +3 1894 1943 1895 +3 1943 1944 1895 +3 1895 1944 1896 +3 1944 1945 1896 +3 1896 1945 1897 +3 1945 1946 1897 +3 1897 1946 1898 +3 1946 1947 1898 +3 1898 1947 1899 +3 1947 1948 1899 +3 1899 1948 1900 +3 1948 1949 1900 +3 1900 1949 1901 +3 1949 1950 1901 +3 1901 1950 1902 +3 1950 1951 1902 +3 1902 1951 1903 +3 1951 1952 1903 +3 1903 1952 1904 +3 1952 1953 1904 +3 1904 1953 1905 +3 1953 1954 1905 +3 1905 1954 1906 +3 1954 1955 1906 +3 1906 1955 1907 +3 1955 1956 1907 +3 1907 1956 1908 +3 1956 1957 1908 +3 1908 1957 1909 +3 1957 1958 1909 +3 1909 1958 1910 +3 1958 1959 1910 +3 1911 1960 1912 +3 1960 1961 1912 +3 1912 1961 1913 +3 1961 1962 1913 +3 1913 1962 1914 +3 1962 1963 1914 +3 1914 1963 1915 +3 1963 1964 1915 +3 1915 1964 1916 +3 1964 1965 1916 +3 1916 1965 1917 +3 1965 1966 1917 +3 1917 1966 1918 +3 1966 1967 1918 +3 1918 1967 1919 +3 1967 1968 1919 +3 1919 1968 1920 +3 1968 1969 1920 +3 1920 1969 1921 +3 1969 1970 1921 +3 1921 1970 1922 +3 1970 1971 1922 +3 1922 1971 1923 +3 1971 1972 1923 +3 1923 1972 1924 +3 1972 1973 1924 +3 1924 1973 1925 +3 1973 1974 1925 +3 1925 1974 1926 +3 1974 1975 1926 +3 1926 1975 1927 +3 1975 1976 1927 +3 1927 1976 1928 +3 1976 1977 1928 +3 1928 1977 1929 +3 1977 1978 1929 +3 1929 1978 1930 +3 1978 1979 1930 +3 1930 1979 1931 +3 1979 1980 1931 +3 1931 1980 1932 +3 1980 1981 1932 +3 1932 1981 1933 +3 1981 1982 1933 +3 1933 1982 1934 +3 1982 1983 1934 +3 1934 1983 1935 +3 1983 1984 1935 +3 1935 1984 1936 +3 1984 1985 1936 +3 1936 1985 1937 +3 1985 1986 1937 +3 1937 1986 1938 +3 1986 1987 1938 +3 1938 1987 1939 +3 1987 1988 1939 +3 1939 1988 1940 +3 1988 1989 1940 +3 1940 1989 1941 +3 1989 1990 1941 +3 1941 1990 1942 +3 1990 1991 1942 +3 1942 1991 1943 +3 1991 1992 1943 +3 1943 1992 1944 +3 1992 1993 1944 +3 1944 1993 1945 +3 1993 1994 1945 +3 1945 1994 1946 +3 1994 1995 1946 +3 1946 1995 1947 +3 1995 1996 1947 +3 1947 1996 1948 +3 1996 1997 1948 +3 1948 1997 1949 +3 1997 1998 1949 +3 1949 1998 1950 +3 1998 1999 1950 +3 1950 1999 1951 +3 1999 2000 1951 +3 1951 2000 1952 +3 2000 2001 1952 +3 1952 2001 1953 +3 2001 2002 1953 +3 1953 2002 1954 +3 2002 2003 1954 +3 1954 2003 1955 +3 2003 2004 1955 +3 1955 2004 1956 +3 2004 2005 1956 +3 1956 2005 1957 +3 2005 2006 1957 +3 1957 2006 1958 +3 2006 2007 1958 +3 1958 2007 1959 +3 2007 2008 1959 +3 1960 2009 1961 +3 2009 2010 1961 +3 1961 2010 1962 +3 2010 2011 1962 +3 1962 2011 1963 +3 2011 2012 1963 +3 1963 2012 1964 +3 2012 2013 1964 +3 1964 2013 1965 +3 2013 2014 1965 +3 1965 2014 1966 +3 2014 2015 1966 +3 1966 2015 1967 +3 2015 2016 1967 +3 1967 2016 1968 +3 2016 2017 1968 +3 1968 2017 1969 +3 2017 2018 1969 +3 1969 2018 1970 +3 2018 2019 1970 +3 1970 2019 1971 +3 2019 2020 1971 +3 1971 2020 1972 +3 2020 2021 1972 +3 1972 2021 1973 +3 2021 2022 1973 +3 1973 2022 1974 +3 2022 2023 1974 +3 1974 2023 1975 +3 2023 2024 1975 +3 1975 2024 1976 +3 2024 2025 1976 +3 1976 2025 1977 +3 2025 2026 1977 +3 1977 2026 1978 +3 2026 2027 1978 +3 1978 2027 1979 +3 2027 2028 1979 +3 1979 2028 1980 +3 2028 2029 1980 +3 1980 2029 1981 +3 2029 2030 1981 +3 1981 2030 1982 +3 2030 2031 1982 +3 1982 2031 1983 +3 2031 2032 1983 +3 1983 2032 1984 +3 2032 2033 1984 +3 1984 2033 1985 +3 2033 2034 1985 +3 1985 2034 1986 +3 2034 2035 1986 +3 1986 2035 1987 +3 2035 2036 1987 +3 1987 2036 1988 +3 2036 2037 1988 +3 1988 2037 1989 +3 2037 2038 1989 +3 1989 2038 1990 +3 2038 2039 1990 +3 1990 2039 1991 +3 2039 2040 1991 +3 1991 2040 1992 +3 2040 2041 1992 +3 1992 2041 1993 +3 2041 2042 1993 +3 1993 2042 1994 +3 2042 2043 1994 +3 1994 2043 1995 +3 2043 2044 1995 +3 1995 2044 1996 +3 2044 2045 1996 +3 1996 2045 1997 +3 2045 2046 1997 +3 1997 2046 1998 +3 2046 2047 1998 +3 1998 2047 1999 +3 2047 2048 1999 +3 1999 2048 2000 +3 2048 2049 2000 +3 2000 2049 2001 +3 2049 2050 2001 +3 2001 2050 2002 +3 2050 2051 2002 +3 2002 2051 2003 +3 2051 2052 2003 +3 2003 2052 2004 +3 2052 2053 2004 +3 2004 2053 2005 +3 2053 2054 2005 +3 2005 2054 2006 +3 2054 2055 2006 +3 2006 2055 2007 +3 2055 2056 2007 +3 2007 2056 2008 +3 2056 2057 2008 +3 2009 2058 2010 +3 2058 2059 2010 +3 2010 2059 2011 +3 2059 2060 2011 +3 2011 2060 2012 +3 2060 2061 2012 +3 2012 2061 2013 +3 2061 2062 2013 +3 2013 2062 2014 +3 2062 2063 2014 +3 2014 2063 2015 +3 2063 2064 2015 +3 2015 2064 2016 +3 2064 2065 2016 +3 2016 2065 2017 +3 2065 2066 2017 +3 2017 2066 2018 +3 2066 2067 2018 +3 2018 2067 2019 +3 2067 2068 2019 +3 2019 2068 2020 +3 2068 2069 2020 +3 2020 2069 2021 +3 2069 2070 2021 +3 2021 2070 2022 +3 2070 2071 2022 +3 2022 2071 2023 +3 2071 2072 2023 +3 2023 2072 2024 +3 2072 2073 2024 +3 2024 2073 2025 +3 2073 2074 2025 +3 2025 2074 2026 +3 2074 2075 2026 +3 2026 2075 2027 +3 2075 2076 2027 +3 2027 2076 2028 +3 2076 2077 2028 +3 2028 2077 2029 +3 2077 2078 2029 +3 2029 2078 2030 +3 2078 2079 2030 +3 2030 2079 2031 +3 2079 2080 2031 +3 2031 2080 2032 +3 2080 2081 2032 +3 2032 2081 2033 +3 2081 2082 2033 +3 2033 2082 2034 +3 2082 2083 2034 +3 2034 2083 2035 +3 2083 2084 2035 +3 2035 2084 2036 +3 2084 2085 2036 +3 2036 2085 2037 +3 2085 2086 2037 +3 2037 2086 2038 +3 2086 2087 2038 +3 2038 2087 2039 +3 2087 2088 2039 +3 2039 2088 2040 +3 2088 2089 2040 +3 2040 2089 2041 +3 2089 2090 2041 +3 2041 2090 2042 +3 2090 2091 2042 +3 2042 2091 2043 +3 2091 2092 2043 +3 2043 2092 2044 +3 2092 2093 2044 +3 2044 2093 2045 +3 2093 2094 2045 +3 2045 2094 2046 +3 2094 2095 2046 +3 2046 2095 2047 +3 2095 2096 2047 +3 2047 2096 2048 +3 2096 2097 2048 +3 2048 2097 2049 +3 2097 2098 2049 +3 2049 2098 2050 +3 2098 2099 2050 +3 2050 2099 2051 +3 2099 2100 2051 +3 2051 2100 2052 +3 2100 2101 2052 +3 2052 2101 2053 +3 2101 2102 2053 +3 2053 2102 2054 +3 2102 2103 2054 +3 2054 2103 2055 +3 2103 2104 2055 +3 2055 2104 2056 +3 2104 2105 2056 +3 2056 2105 2057 +3 2105 2106 2057 +3 2058 2107 2059 +3 2107 2108 2059 +3 2059 2108 2060 +3 2108 2109 2060 +3 2060 2109 2061 +3 2109 2110 2061 +3 2061 2110 2062 +3 2110 2111 2062 +3 2062 2111 2063 +3 2111 2112 2063 +3 2063 2112 2064 +3 2112 2113 2064 +3 2064 2113 2065 +3 2113 2114 2065 +3 2065 2114 2066 +3 2114 2115 2066 +3 2066 2115 2067 +3 2115 2116 2067 +3 2067 2116 2068 +3 2116 2117 2068 +3 2068 2117 2069 +3 2117 2118 2069 +3 2069 2118 2070 +3 2118 2119 2070 +3 2070 2119 2071 +3 2119 2120 2071 +3 2071 2120 2072 +3 2120 2121 2072 +3 2072 2121 2073 +3 2121 2122 2073 +3 2073 2122 2074 +3 2122 2123 2074 +3 2074 2123 2075 +3 2123 2124 2075 +3 2075 2124 2076 +3 2124 2125 2076 +3 2076 2125 2077 +3 2125 2126 2077 +3 2077 2126 2078 +3 2126 2127 2078 +3 2078 2127 2079 +3 2127 2128 2079 +3 2079 2128 2080 +3 2128 2129 2080 +3 2080 2129 2081 +3 2129 2130 2081 +3 2081 2130 2082 +3 2130 2131 2082 +3 2082 2131 2083 +3 2131 2132 2083 +3 2083 2132 2084 +3 2132 2133 2084 +3 2084 2133 2085 +3 2133 2134 2085 +3 2085 2134 2086 +3 2134 2135 2086 +3 2086 2135 2087 +3 2135 2136 2087 +3 2087 2136 2088 +3 2136 2137 2088 +3 2088 2137 2089 +3 2137 2138 2089 +3 2089 2138 2090 +3 2138 2139 2090 +3 2090 2139 2091 +3 2139 2140 2091 +3 2091 2140 2092 +3 2140 2141 2092 +3 2092 2141 2093 +3 2141 2142 2093 +3 2093 2142 2094 +3 2142 2143 2094 +3 2094 2143 2095 +3 2143 2144 2095 +3 2095 2144 2096 +3 2144 2145 2096 +3 2096 2145 2097 +3 2145 2146 2097 +3 2097 2146 2098 +3 2146 2147 2098 +3 2098 2147 2099 +3 2147 2148 2099 +3 2099 2148 2100 +3 2148 2149 2100 +3 2100 2149 2101 +3 2149 2150 2101 +3 2101 2150 2102 +3 2150 2151 2102 +3 2102 2151 2103 +3 2151 2152 2103 +3 2103 2152 2104 +3 2152 2153 2104 +3 2104 2153 2105 +3 2153 2154 2105 +3 2105 2154 2106 +3 2154 2155 2106 +3 2107 2156 2108 +3 2156 2157 2108 +3 2108 2157 2109 +3 2157 2158 2109 +3 2109 2158 2110 +3 2158 2159 2110 +3 2110 2159 2111 +3 2159 2160 2111 +3 2111 2160 2112 +3 2160 2161 2112 +3 2112 2161 2113 +3 2161 2162 2113 +3 2113 2162 2114 +3 2162 2163 2114 +3 2114 2163 2115 +3 2163 2164 2115 +3 2115 2164 2116 +3 2164 2165 2116 +3 2116 2165 2117 +3 2165 2166 2117 +3 2117 2166 2118 +3 2166 2167 2118 +3 2118 2167 2119 +3 2167 2168 2119 +3 2119 2168 2120 +3 2168 2169 2120 +3 2120 2169 2121 +3 2169 2170 2121 +3 2121 2170 2122 +3 2170 2171 2122 +3 2122 2171 2123 +3 2171 2172 2123 +3 2123 2172 2124 +3 2172 2173 2124 +3 2124 2173 2125 +3 2173 2174 2125 +3 2125 2174 2126 +3 2174 2175 2126 +3 2126 2175 2127 +3 2175 2176 2127 +3 2127 2176 2128 +3 2176 2177 2128 +3 2128 2177 2129 +3 2177 2178 2129 +3 2129 2178 2130 +3 2178 2179 2130 +3 2130 2179 2131 +3 2179 2180 2131 +3 2131 2180 2132 +3 2180 2181 2132 +3 2132 2181 2133 +3 2181 2182 2133 +3 2133 2182 2134 +3 2182 2183 2134 +3 2134 2183 2135 +3 2183 2184 2135 +3 2135 2184 2136 +3 2184 2185 2136 +3 2136 2185 2137 +3 2185 2186 2137 +3 2137 2186 2138 +3 2186 2187 2138 +3 2138 2187 2139 +3 2187 2188 2139 +3 2139 2188 2140 +3 2188 2189 2140 +3 2140 2189 2141 +3 2189 2190 2141 +3 2141 2190 2142 +3 2190 2191 2142 +3 2142 2191 2143 +3 2191 2192 2143 +3 2143 2192 2144 +3 2192 2193 2144 +3 2144 2193 2145 +3 2193 2194 2145 +3 2145 2194 2146 +3 2194 2195 2146 +3 2146 2195 2147 +3 2195 2196 2147 +3 2147 2196 2148 +3 2196 2197 2148 +3 2148 2197 2149 +3 2197 2198 2149 +3 2149 2198 2150 +3 2198 2199 2150 +3 2150 2199 2151 +3 2199 2200 2151 +3 2151 2200 2152 +3 2200 2201 2152 +3 2152 2201 2153 +3 2201 2202 2153 +3 2153 2202 2154 +3 2202 2203 2154 +3 2154 2203 2155 +3 2203 2204 2155 + +CELL_DATA 4224 +POINT_DATA 2205 +TEXTURE_COORDINATES textureCoords 2 float +0.232877 0.35225 0.240705 0.35225 0.248532 0.35225 0.25636 0.35225 0.264188 +0.35225 0.272016 0.35225 0.279843 0.35225 0.287671 0.35225 0.295499 0.35225 +0.303327 0.35225 0.311155 0.35225 0.318982 0.35225 0.32681 0.35225 0.334638 +0.35225 0.342466 0.35225 0.350294 0.35225 0.358121 0.35225 0.365949 0.35225 +0.373777 0.35225 0.381605 0.35225 0.389432 0.35225 0.39726 0.35225 0.405088 +0.35225 0.412916 0.35225 0.420744 0.35225 0.428571 0.35225 0.436399 0.35225 +0.444227 0.35225 0.452055 0.35225 0.459883 0.35225 0.46771 0.35225 0.475538 +0.35225 0.483366 0.35225 0.491194 0.35225 0.499022 0.35225 0.506849 0.35225 +0.514677 0.35225 0.522505 0.35225 0.530333 0.35225 0.53816 0.35225 0.545988 +0.35225 0.553816 0.35225 0.561644 0.35225 0.569472 0.35225 0.577299 0.35225 +0.585127 0.35225 0.592955 0.35225 0.600783 0.35225 0.608611 0.35225 0.232877 +0.358121 0.240705 0.358121 0.248532 0.358121 0.25636 0.358121 0.264188 0.358121 +0.272016 0.358121 0.279843 0.358121 0.287671 0.358121 0.295499 0.358121 0.303327 +0.358121 0.311155 0.358121 0.318982 0.358121 0.32681 0.358121 0.334638 0.358121 +0.342466 0.358121 0.350294 0.358121 0.358121 0.358121 0.365949 0.358121 0.373777 +0.358121 0.381605 0.358121 0.389432 0.358121 0.39726 0.358121 0.405088 0.358121 +0.412916 0.358121 0.420744 0.358121 0.428571 0.358121 0.436399 0.358121 0.444227 +0.358121 0.452055 0.358121 0.459883 0.358121 0.46771 0.358121 0.475538 0.358121 +0.483366 0.358121 0.491194 0.358121 0.499022 0.358121 0.506849 0.358121 0.514677 +0.358121 0.522505 0.358121 0.530333 0.358121 0.53816 0.358121 0.545988 0.358121 +0.553816 0.358121 0.561644 0.358121 0.569472 0.358121 0.577299 0.358121 0.585127 +0.358121 0.592955 0.358121 0.600783 0.358121 0.608611 0.358121 0.232877 0.363992 +0.240705 0.363992 0.248532 0.363992 0.25636 0.363992 0.264188 0.363992 0.272016 +0.363992 0.279843 0.363992 0.287671 0.363992 0.295499 0.363992 0.303327 0.363992 +0.311155 0.363992 0.318982 0.363992 0.32681 0.363992 0.334638 0.363992 0.342466 +0.363992 0.350294 0.363992 0.358121 0.363992 0.365949 0.363992 0.373777 0.363992 +0.381605 0.363992 0.389432 0.363992 0.39726 0.363992 0.405088 0.363992 0.412916 +0.363992 0.420744 0.363992 0.428571 0.363992 0.436399 0.363992 0.444227 0.363992 +0.452055 0.363992 0.459883 0.363992 0.46771 0.363992 0.475538 0.363992 0.483366 +0.363992 0.491194 0.363992 0.499022 0.363992 0.506849 0.363992 0.514677 0.363992 +0.522505 0.363992 0.530333 0.363992 0.53816 0.363992 0.545988 0.363992 0.553816 +0.363992 0.561644 0.363992 0.569472 0.363992 0.577299 0.363992 0.585127 0.363992 +0.592955 0.363992 0.600783 0.363992 0.608611 0.363992 0.232877 0.369863 0.240705 +0.369863 0.248532 0.369863 0.25636 0.369863 0.264188 0.369863 0.272016 0.369863 +0.279843 0.369863 0.287671 0.369863 0.295499 0.369863 0.303327 0.369863 0.311155 +0.369863 0.318982 0.369863 0.32681 0.369863 0.334638 0.369863 0.342466 0.369863 +0.350294 0.369863 0.358121 0.369863 0.365949 0.369863 0.373777 0.369863 0.381605 +0.369863 0.389432 0.369863 0.39726 0.369863 0.405088 0.369863 0.412916 0.369863 +0.420744 0.369863 0.428571 0.369863 0.436399 0.369863 0.444227 0.369863 0.452055 +0.369863 0.459883 0.369863 0.46771 0.369863 0.475538 0.369863 0.483366 0.369863 +0.491194 0.369863 0.499022 0.369863 0.506849 0.369863 0.514677 0.369863 0.522505 +0.369863 0.530333 0.369863 0.53816 0.369863 0.545988 0.369863 0.553816 0.369863 +0.561644 0.369863 0.569472 0.369863 0.577299 0.369863 0.585127 0.369863 0.592955 +0.369863 0.600783 0.369863 0.608611 0.369863 0.232877 0.375734 0.240705 0.375734 +0.248532 0.375734 0.25636 0.375734 0.264188 0.375734 0.272016 0.375734 0.279843 +0.375734 0.287671 0.375734 0.295499 0.375734 0.303327 0.375734 0.311155 0.375734 +0.318982 0.375734 0.32681 0.375734 0.334638 0.375734 0.342466 0.375734 0.350294 +0.375734 0.358121 0.375734 0.365949 0.375734 0.373777 0.375734 0.381605 0.375734 +0.389432 0.375734 0.39726 0.375734 0.405088 0.375734 0.412916 0.375734 0.420744 +0.375734 0.428571 0.375734 0.436399 0.375734 0.444227 0.375734 0.452055 0.375734 +0.459883 0.375734 0.46771 0.375734 0.475538 0.375734 0.483366 0.375734 0.491194 +0.375734 0.499022 0.375734 0.506849 0.375734 0.514677 0.375734 0.522505 0.375734 +0.530333 0.375734 0.53816 0.375734 0.545988 0.375734 0.553816 0.375734 0.561644 +0.375734 0.569472 0.375734 0.577299 0.375734 0.585127 0.375734 0.592955 0.375734 +0.600783 0.375734 0.608611 0.375734 0.232877 0.381605 0.240705 0.381605 0.248532 +0.381605 0.25636 0.381605 0.264188 0.381605 0.272016 0.381605 0.279843 0.381605 +0.287671 0.381605 0.295499 0.381605 0.303327 0.381605 0.311155 0.381605 0.318982 +0.381605 0.32681 0.381605 0.334638 0.381605 0.342466 0.381605 0.350294 0.381605 +0.358121 0.381605 0.365949 0.381605 0.373777 0.381605 0.381605 0.381605 0.389432 +0.381605 0.39726 0.381605 0.405088 0.381605 0.412916 0.381605 0.420744 0.381605 +0.428571 0.381605 0.436399 0.381605 0.444227 0.381605 0.452055 0.381605 0.459883 +0.381605 0.46771 0.381605 0.475538 0.381605 0.483366 0.381605 0.491194 0.381605 +0.499022 0.381605 0.506849 0.381605 0.514677 0.381605 0.522505 0.381605 0.530333 +0.381605 0.53816 0.381605 0.545988 0.381605 0.553816 0.381605 0.561644 0.381605 +0.569472 0.381605 0.577299 0.381605 0.585127 0.381605 0.592955 0.381605 0.600783 +0.381605 0.608611 0.381605 0.232877 0.387476 0.240705 0.387476 0.248532 0.387476 +0.25636 0.387476 0.264188 0.387476 0.272016 0.387476 0.279843 0.387476 0.287671 +0.387476 0.295499 0.387476 0.303327 0.387476 0.311155 0.387476 0.318982 0.387476 +0.32681 0.387476 0.334638 0.387476 0.342466 0.387476 0.350294 0.387476 0.358121 +0.387476 0.365949 0.387476 0.373777 0.387476 0.381605 0.387476 0.389432 0.387476 +0.39726 0.387476 0.405088 0.387476 0.412916 0.387476 0.420744 0.387476 0.428571 +0.387476 0.436399 0.387476 0.444227 0.387476 0.452055 0.387476 0.459883 0.387476 +0.46771 0.387476 0.475538 0.387476 0.483366 0.387476 0.491194 0.387476 0.499022 +0.387476 0.506849 0.387476 0.514677 0.387476 0.522505 0.387476 0.530333 0.387476 +0.53816 0.387476 0.545988 0.387476 0.553816 0.387476 0.561644 0.387476 0.569472 +0.387476 0.577299 0.387476 0.585127 0.387476 0.592955 0.387476 0.600783 0.387476 +0.608611 0.387476 0.232877 0.393346 0.240705 0.393346 0.248532 0.393346 0.25636 +0.393346 0.264188 0.393346 0.272016 0.393346 0.279843 0.393346 0.287671 0.393346 +0.295499 0.393346 0.303327 0.393346 0.311155 0.393346 0.318982 0.393346 0.32681 +0.393346 0.334638 0.393346 0.342466 0.393346 0.350294 0.393346 0.358121 0.393346 +0.365949 0.393346 0.373777 0.393346 0.381605 0.393346 0.389432 0.393346 0.39726 +0.393346 0.405088 0.393346 0.412916 0.393346 0.420744 0.393346 0.428571 0.393346 +0.436399 0.393346 0.444227 0.393346 0.452055 0.393346 0.459883 0.393346 0.46771 +0.393346 0.475538 0.393346 0.483366 0.393346 0.491194 0.393346 0.499022 0.393346 +0.506849 0.393346 0.514677 0.393346 0.522505 0.393346 0.530333 0.393346 0.53816 +0.393346 0.545988 0.393346 0.553816 0.393346 0.561644 0.393346 0.569472 0.393346 +0.577299 0.393346 0.585127 0.393346 0.592955 0.393346 0.600783 0.393346 0.608611 +0.393346 0.232877 0.399217 0.240705 0.399217 0.248532 0.399217 0.25636 0.399217 +0.264188 0.399217 0.272016 0.399217 0.279843 0.399217 0.287671 0.399217 0.295499 +0.399217 0.303327 0.399217 0.311155 0.399217 0.318982 0.399217 0.32681 0.399217 +0.334638 0.399217 0.342466 0.399217 0.350294 0.399217 0.358121 0.399217 0.365949 +0.399217 0.373777 0.399217 0.381605 0.399217 0.389432 0.399217 0.39726 0.399217 +0.405088 0.399217 0.412916 0.399217 0.420744 0.399217 0.428571 0.399217 0.436399 +0.399217 0.444227 0.399217 0.452055 0.399217 0.459883 0.399217 0.46771 0.399217 +0.475538 0.399217 0.483366 0.399217 0.491194 0.399217 0.499022 0.399217 0.506849 +0.399217 0.514677 0.399217 0.522505 0.399217 0.530333 0.399217 0.53816 0.399217 +0.545988 0.399217 0.553816 0.399217 0.561644 0.399217 0.569472 0.399217 0.577299 +0.399217 0.585127 0.399217 0.592955 0.399217 0.600783 0.399217 0.608611 0.399217 +0.232877 0.405088 0.240705 0.405088 0.248532 0.405088 0.25636 0.405088 0.264188 +0.405088 0.272016 0.405088 0.279843 0.405088 0.287671 0.405088 0.295499 0.405088 +0.303327 0.405088 0.311155 0.405088 0.318982 0.405088 0.32681 0.405088 0.334638 +0.405088 0.342466 0.405088 0.350294 0.405088 0.358121 0.405088 0.365949 0.405088 +0.373777 0.405088 0.381605 0.405088 0.389432 0.405088 0.39726 0.405088 0.405088 +0.405088 0.412916 0.405088 0.420744 0.405088 0.428571 0.405088 0.436399 0.405088 +0.444227 0.405088 0.452055 0.405088 0.459883 0.405088 0.46771 0.405088 0.475538 +0.405088 0.483366 0.405088 0.491194 0.405088 0.499022 0.405088 0.506849 0.405088 +0.514677 0.405088 0.522505 0.405088 0.530333 0.405088 0.53816 0.405088 0.545988 +0.405088 0.553816 0.405088 0.561644 0.405088 0.569472 0.405088 0.577299 0.405088 +0.585127 0.405088 0.592955 0.405088 0.600783 0.405088 0.608611 0.405088 0.232877 +0.410959 0.240705 0.410959 0.248532 0.410959 0.25636 0.410959 0.264188 0.410959 +0.272016 0.410959 0.279843 0.410959 0.287671 0.410959 0.295499 0.410959 0.303327 +0.410959 0.311155 0.410959 0.318982 0.410959 0.32681 0.410959 0.334638 0.410959 +0.342466 0.410959 0.350294 0.410959 0.358121 0.410959 0.365949 0.410959 0.373777 +0.410959 0.381605 0.410959 0.389432 0.410959 0.39726 0.410959 0.405088 0.410959 +0.412916 0.410959 0.420744 0.410959 0.428571 0.410959 0.436399 0.410959 0.444227 +0.410959 0.452055 0.410959 0.459883 0.410959 0.46771 0.410959 0.475538 0.410959 +0.483366 0.410959 0.491194 0.410959 0.499022 0.410959 0.506849 0.410959 0.514677 +0.410959 0.522505 0.410959 0.530333 0.410959 0.53816 0.410959 0.545988 0.410959 +0.553816 0.410959 0.561644 0.410959 0.569472 0.410959 0.577299 0.410959 0.585127 +0.410959 0.592955 0.410959 0.600783 0.410959 0.608611 0.410959 0.232877 0.41683 +0.240705 0.41683 0.248532 0.41683 0.25636 0.41683 0.264188 0.41683 0.272016 +0.41683 0.279843 0.41683 0.287671 0.41683 0.295499 0.41683 0.303327 0.41683 +0.311155 0.41683 0.318982 0.41683 0.32681 0.41683 0.334638 0.41683 0.342466 +0.41683 0.350294 0.41683 0.358121 0.41683 0.365949 0.41683 0.373777 0.41683 +0.381605 0.41683 0.389432 0.41683 0.39726 0.41683 0.405088 0.41683 0.412916 +0.41683 0.420744 0.41683 0.428571 0.41683 0.436399 0.41683 0.444227 0.41683 +0.452055 0.41683 0.459883 0.41683 0.46771 0.41683 0.475538 0.41683 0.483366 +0.41683 0.491194 0.41683 0.499022 0.41683 0.506849 0.41683 0.514677 0.41683 +0.522505 0.41683 0.530333 0.41683 0.53816 0.41683 0.545988 0.41683 0.553816 +0.41683 0.561644 0.41683 0.569472 0.41683 0.577299 0.41683 0.585127 0.41683 +0.592955 0.41683 0.600783 0.41683 0.608611 0.41683 0.232877 0.422701 0.240705 +0.422701 0.248532 0.422701 0.25636 0.422701 0.264188 0.422701 0.272016 0.422701 +0.279843 0.422701 0.287671 0.422701 0.295499 0.422701 0.303327 0.422701 0.311155 +0.422701 0.318982 0.422701 0.32681 0.422701 0.334638 0.422701 0.342466 0.422701 +0.350294 0.422701 0.358121 0.422701 0.365949 0.422701 0.373777 0.422701 0.381605 +0.422701 0.389432 0.422701 0.39726 0.422701 0.405088 0.422701 0.412916 0.422701 +0.420744 0.422701 0.428571 0.422701 0.436399 0.422701 0.444227 0.422701 0.452055 +0.422701 0.459883 0.422701 0.46771 0.422701 0.475538 0.422701 0.483366 0.422701 +0.491194 0.422701 0.499022 0.422701 0.506849 0.422701 0.514677 0.422701 0.522505 +0.422701 0.530333 0.422701 0.53816 0.422701 0.545988 0.422701 0.553816 0.422701 +0.561644 0.422701 0.569472 0.422701 0.577299 0.422701 0.585127 0.422701 0.592955 +0.422701 0.600783 0.422701 0.608611 0.422701 0.232877 0.428571 0.240705 0.428571 +0.248532 0.428571 0.25636 0.428571 0.264188 0.428571 0.272016 0.428571 0.279843 +0.428571 0.287671 0.428571 0.295499 0.428571 0.303327 0.428571 0.311155 0.428571 +0.318982 0.428571 0.32681 0.428571 0.334638 0.428571 0.342466 0.428571 0.350294 +0.428571 0.358121 0.428571 0.365949 0.428571 0.373777 0.428571 0.381605 0.428571 +0.389432 0.428571 0.39726 0.428571 0.405088 0.428571 0.412916 0.428571 0.420744 +0.428571 0.428571 0.428571 0.436399 0.428571 0.444227 0.428571 0.452055 0.428571 +0.459883 0.428571 0.46771 0.428571 0.475538 0.428571 0.483366 0.428571 0.491194 +0.428571 0.499022 0.428571 0.506849 0.428571 0.514677 0.428571 0.522505 0.428571 +0.530333 0.428571 0.53816 0.428571 0.545988 0.428571 0.553816 0.428571 0.561644 +0.428571 0.569472 0.428571 0.577299 0.428571 0.585127 0.428571 0.592955 0.428571 +0.600783 0.428571 0.608611 0.428571 0.232877 0.434442 0.240705 0.434442 0.248532 +0.434442 0.25636 0.434442 0.264188 0.434442 0.272016 0.434442 0.279843 0.434442 +0.287671 0.434442 0.295499 0.434442 0.303327 0.434442 0.311155 0.434442 0.318982 +0.434442 0.32681 0.434442 0.334638 0.434442 0.342466 0.434442 0.350294 0.434442 +0.358121 0.434442 0.365949 0.434442 0.373777 0.434442 0.381605 0.434442 0.389432 +0.434442 0.39726 0.434442 0.405088 0.434442 0.412916 0.434442 0.420744 0.434442 +0.428571 0.434442 0.436399 0.434442 0.444227 0.434442 0.452055 0.434442 0.459883 +0.434442 0.46771 0.434442 0.475538 0.434442 0.483366 0.434442 0.491194 0.434442 +0.499022 0.434442 0.506849 0.434442 0.514677 0.434442 0.522505 0.434442 0.530333 +0.434442 0.53816 0.434442 0.545988 0.434442 0.553816 0.434442 0.561644 0.434442 +0.569472 0.434442 0.577299 0.434442 0.585127 0.434442 0.592955 0.434442 0.600783 +0.434442 0.608611 0.434442 0.232877 0.440313 0.240705 0.440313 0.248532 0.440313 +0.25636 0.440313 0.264188 0.440313 0.272016 0.440313 0.279843 0.440313 0.287671 +0.440313 0.295499 0.440313 0.303327 0.440313 0.311155 0.440313 0.318982 0.440313 +0.32681 0.440313 0.334638 0.440313 0.342466 0.440313 0.350294 0.440313 0.358121 +0.440313 0.365949 0.440313 0.373777 0.440313 0.381605 0.440313 0.389432 0.440313 +0.39726 0.440313 0.405088 0.440313 0.412916 0.440313 0.420744 0.440313 0.428571 +0.440313 0.436399 0.440313 0.444227 0.440313 0.452055 0.440313 0.459883 0.440313 +0.46771 0.440313 0.475538 0.440313 0.483366 0.440313 0.491194 0.440313 0.499022 +0.440313 0.506849 0.440313 0.514677 0.440313 0.522505 0.440313 0.530333 0.440313 +0.53816 0.440313 0.545988 0.440313 0.553816 0.440313 0.561644 0.440313 0.569472 +0.440313 0.577299 0.440313 0.585127 0.440313 0.592955 0.440313 0.600783 0.440313 +0.608611 0.440313 0.232877 0.446184 0.240705 0.446184 0.248532 0.446184 0.25636 +0.446184 0.264188 0.446184 0.272016 0.446184 0.279843 0.446184 0.287671 0.446184 +0.295499 0.446184 0.303327 0.446184 0.311155 0.446184 0.318982 0.446184 0.32681 +0.446184 0.334638 0.446184 0.342466 0.446184 0.350294 0.446184 0.358121 0.446184 +0.365949 0.446184 0.373777 0.446184 0.381605 0.446184 0.389432 0.446184 0.39726 +0.446184 0.405088 0.446184 0.412916 0.446184 0.420744 0.446184 0.428571 0.446184 +0.436399 0.446184 0.444227 0.446184 0.452055 0.446184 0.459883 0.446184 0.46771 +0.446184 0.475538 0.446184 0.483366 0.446184 0.491194 0.446184 0.499022 0.446184 +0.506849 0.446184 0.514677 0.446184 0.522505 0.446184 0.530333 0.446184 0.53816 +0.446184 0.545988 0.446184 0.553816 0.446184 0.561644 0.446184 0.569472 0.446184 +0.577299 0.446184 0.585127 0.446184 0.592955 0.446184 0.600783 0.446184 0.608611 +0.446184 0.232877 0.452055 0.240705 0.452055 0.248532 0.452055 0.25636 0.452055 +0.264188 0.452055 0.272016 0.452055 0.279843 0.452055 0.287671 0.452055 0.295499 +0.452055 0.303327 0.452055 0.311155 0.452055 0.318982 0.452055 0.32681 0.452055 +0.334638 0.452055 0.342466 0.452055 0.350294 0.452055 0.358121 0.452055 0.365949 +0.452055 0.373777 0.452055 0.381605 0.452055 0.389432 0.452055 0.39726 0.452055 +0.405088 0.452055 0.412916 0.452055 0.420744 0.452055 0.428571 0.452055 0.436399 +0.452055 0.444227 0.452055 0.452055 0.452055 0.459883 0.452055 0.46771 0.452055 +0.475538 0.452055 0.483366 0.452055 0.491194 0.452055 0.499022 0.452055 0.506849 +0.452055 0.514677 0.452055 0.522505 0.452055 0.530333 0.452055 0.53816 0.452055 +0.545988 0.452055 0.553816 0.452055 0.561644 0.452055 0.569472 0.452055 0.577299 +0.452055 0.585127 0.452055 0.592955 0.452055 0.600783 0.452055 0.608611 0.452055 +0.232877 0.457926 0.240705 0.457926 0.248532 0.457926 0.25636 0.457926 0.264188 +0.457926 0.272016 0.457926 0.279843 0.457926 0.287671 0.457926 0.295499 0.457926 +0.303327 0.457926 0.311155 0.457926 0.318982 0.457926 0.32681 0.457926 0.334638 +0.457926 0.342466 0.457926 0.350294 0.457926 0.358121 0.457926 0.365949 0.457926 +0.373777 0.457926 0.381605 0.457926 0.389432 0.457926 0.39726 0.457926 0.405088 +0.457926 0.412916 0.457926 0.420744 0.457926 0.428571 0.457926 0.436399 0.457926 +0.444227 0.457926 0.452055 0.457926 0.459883 0.457926 0.46771 0.457926 0.475538 +0.457926 0.483366 0.457926 0.491194 0.457926 0.499022 0.457926 0.506849 0.457926 +0.514677 0.457926 0.522505 0.457926 0.530333 0.457926 0.53816 0.457926 0.545988 +0.457926 0.553816 0.457926 0.561644 0.457926 0.569472 0.457926 0.577299 0.457926 +0.585127 0.457926 0.592955 0.457926 0.600783 0.457926 0.608611 0.457926 0.232877 +0.463796 0.240705 0.463796 0.248532 0.463796 0.25636 0.463796 0.264188 0.463796 +0.272016 0.463796 0.279843 0.463796 0.287671 0.463796 0.295499 0.463796 0.303327 +0.463796 0.311155 0.463796 0.318982 0.463796 0.32681 0.463796 0.334638 0.463796 +0.342466 0.463796 0.350294 0.463796 0.358121 0.463796 0.365949 0.463796 0.373777 +0.463796 0.381605 0.463796 0.389432 0.463796 0.39726 0.463796 0.405088 0.463796 +0.412916 0.463796 0.420744 0.463796 0.428571 0.463796 0.436399 0.463796 0.444227 +0.463796 0.452055 0.463796 0.459883 0.463796 0.46771 0.463796 0.475538 0.463796 +0.483366 0.463796 0.491194 0.463796 0.499022 0.463796 0.506849 0.463796 0.514677 +0.463796 0.522505 0.463796 0.530333 0.463796 0.53816 0.463796 0.545988 0.463796 +0.553816 0.463796 0.561644 0.463796 0.569472 0.463796 0.577299 0.463796 0.585127 +0.463796 0.592955 0.463796 0.600783 0.463796 0.608611 0.463796 0.232877 0.469667 +0.240705 0.469667 0.248532 0.469667 0.25636 0.469667 0.264188 0.469667 0.272016 +0.469667 0.279843 0.469667 0.287671 0.469667 0.295499 0.469667 0.303327 0.469667 +0.311155 0.469667 0.318982 0.469667 0.32681 0.469667 0.334638 0.469667 0.342466 +0.469667 0.350294 0.469667 0.358121 0.469667 0.365949 0.469667 0.373777 0.469667 +0.381605 0.469667 0.389432 0.469667 0.39726 0.469667 0.405088 0.469667 0.412916 +0.469667 0.420744 0.469667 0.428571 0.469667 0.436399 0.469667 0.444227 0.469667 +0.452055 0.469667 0.459883 0.469667 0.46771 0.469667 0.475538 0.469667 0.483366 +0.469667 0.491194 0.469667 0.499022 0.469667 0.506849 0.469667 0.514677 0.469667 +0.522505 0.469667 0.530333 0.469667 0.53816 0.469667 0.545988 0.469667 0.553816 +0.469667 0.561644 0.469667 0.569472 0.469667 0.577299 0.469667 0.585127 0.469667 +0.592955 0.469667 0.600783 0.469667 0.608611 0.469667 0.232877 0.475538 0.240705 +0.475538 0.248532 0.475538 0.25636 0.475538 0.264188 0.475538 0.272016 0.475538 +0.279843 0.475538 0.287671 0.475538 0.295499 0.475538 0.303327 0.475538 0.311155 +0.475538 0.318982 0.475538 0.32681 0.475538 0.334638 0.475538 0.342466 0.475538 +0.350294 0.475538 0.358121 0.475538 0.365949 0.475538 0.373777 0.475538 0.381605 +0.475538 0.389432 0.475538 0.39726 0.475538 0.405088 0.475538 0.412916 0.475538 +0.420744 0.475538 0.428571 0.475538 0.436399 0.475538 0.444227 0.475538 0.452055 +0.475538 0.459883 0.475538 0.46771 0.475538 0.475538 0.475538 0.483366 0.475538 +0.491194 0.475538 0.499022 0.475538 0.506849 0.475538 0.514677 0.475538 0.522505 +0.475538 0.530333 0.475538 0.53816 0.475538 0.545988 0.475538 0.553816 0.475538 +0.561644 0.475538 0.569472 0.475538 0.577299 0.475538 0.585127 0.475538 0.592955 +0.475538 0.600783 0.475538 0.608611 0.475538 0.232877 0.481409 0.240705 0.481409 +0.248532 0.481409 0.25636 0.481409 0.264188 0.481409 0.272016 0.481409 0.279843 +0.481409 0.287671 0.481409 0.295499 0.481409 0.303327 0.481409 0.311155 0.481409 +0.318982 0.481409 0.32681 0.481409 0.334638 0.481409 0.342466 0.481409 0.350294 +0.481409 0.358121 0.481409 0.365949 0.481409 0.373777 0.481409 0.381605 0.481409 +0.389432 0.481409 0.39726 0.481409 0.405088 0.481409 0.412916 0.481409 0.420744 +0.481409 0.428571 0.481409 0.436399 0.481409 0.444227 0.481409 0.452055 0.481409 +0.459883 0.481409 0.46771 0.481409 0.475538 0.481409 0.483366 0.481409 0.491194 +0.481409 0.499022 0.481409 0.506849 0.481409 0.514677 0.481409 0.522505 0.481409 +0.530333 0.481409 0.53816 0.481409 0.545988 0.481409 0.553816 0.481409 0.561644 +0.481409 0.569472 0.481409 0.577299 0.481409 0.585127 0.481409 0.592955 0.481409 +0.600783 0.481409 0.608611 0.481409 0.232877 0.48728 0.240705 0.48728 0.248532 +0.48728 0.25636 0.48728 0.264188 0.48728 0.272016 0.48728 0.279843 0.48728 +0.287671 0.48728 0.295499 0.48728 0.303327 0.48728 0.311155 0.48728 0.318982 +0.48728 0.32681 0.48728 0.334638 0.48728 0.342466 0.48728 0.350294 0.48728 +0.358121 0.48728 0.365949 0.48728 0.373777 0.48728 0.381605 0.48728 0.389432 +0.48728 0.39726 0.48728 0.405088 0.48728 0.412916 0.48728 0.420744 0.48728 +0.428571 0.48728 0.436399 0.48728 0.444227 0.48728 0.452055 0.48728 0.459883 +0.48728 0.46771 0.48728 0.475538 0.48728 0.483366 0.48728 0.491194 0.48728 +0.499022 0.48728 0.506849 0.48728 0.514677 0.48728 0.522505 0.48728 0.530333 +0.48728 0.53816 0.48728 0.545988 0.48728 0.553816 0.48728 0.561644 0.48728 +0.569472 0.48728 0.577299 0.48728 0.585127 0.48728 0.592955 0.48728 0.600783 +0.48728 0.608611 0.48728 0.232877 0.493151 0.240705 0.493151 0.248532 0.493151 +0.25636 0.493151 0.264188 0.493151 0.272016 0.493151 0.279843 0.493151 0.287671 +0.493151 0.295499 0.493151 0.303327 0.493151 0.311155 0.493151 0.318982 0.493151 +0.32681 0.493151 0.334638 0.493151 0.342466 0.493151 0.350294 0.493151 0.358121 +0.493151 0.365949 0.493151 0.373777 0.493151 0.381605 0.493151 0.389432 0.493151 +0.39726 0.493151 0.405088 0.493151 0.412916 0.493151 0.420744 0.493151 0.428571 +0.493151 0.436399 0.493151 0.444227 0.493151 0.452055 0.493151 0.459883 0.493151 +0.46771 0.493151 0.475538 0.493151 0.483366 0.493151 0.491194 0.493151 0.499022 +0.493151 0.506849 0.493151 0.514677 0.493151 0.522505 0.493151 0.530333 0.493151 +0.53816 0.493151 0.545988 0.493151 0.553816 0.493151 0.561644 0.493151 0.569472 +0.493151 0.577299 0.493151 0.585127 0.493151 0.592955 0.493151 0.600783 0.493151 +0.608611 0.493151 0.232877 0.499022 0.240705 0.499022 0.248532 0.499022 0.25636 +0.499022 0.264188 0.499022 0.272016 0.499022 0.279843 0.499022 0.287671 0.499022 +0.295499 0.499022 0.303327 0.499022 0.311155 0.499022 0.318982 0.499022 0.32681 +0.499022 0.334638 0.499022 0.342466 0.499022 0.350294 0.499022 0.358121 0.499022 +0.365949 0.499022 0.373777 0.499022 0.381605 0.499022 0.389432 0.499022 0.39726 +0.499022 0.405088 0.499022 0.412916 0.499022 0.420744 0.499022 0.428571 0.499022 +0.436399 0.499022 0.444227 0.499022 0.452055 0.499022 0.459883 0.499022 0.46771 +0.499022 0.475538 0.499022 0.483366 0.499022 0.491194 0.499022 0.499022 0.499022 +0.506849 0.499022 0.514677 0.499022 0.522505 0.499022 0.530333 0.499022 0.53816 +0.499022 0.545988 0.499022 0.553816 0.499022 0.561644 0.499022 0.569472 0.499022 +0.577299 0.499022 0.585127 0.499022 0.592955 0.499022 0.600783 0.499022 0.608611 +0.499022 0.232877 0.504892 0.240705 0.504892 0.248532 0.504892 0.25636 0.504892 +0.264188 0.504892 0.272016 0.504892 0.279843 0.504892 0.287671 0.504892 0.295499 +0.504892 0.303327 0.504892 0.311155 0.504892 0.318982 0.504892 0.32681 0.504892 +0.334638 0.504892 0.342466 0.504892 0.350294 0.504892 0.358121 0.504892 0.365949 +0.504892 0.373777 0.504892 0.381605 0.504892 0.389432 0.504892 0.39726 0.504892 +0.405088 0.504892 0.412916 0.504892 0.420744 0.504892 0.428571 0.504892 0.436399 +0.504892 0.444227 0.504892 0.452055 0.504892 0.459883 0.504892 0.46771 0.504892 +0.475538 0.504892 0.483366 0.504892 0.491194 0.504892 0.499022 0.504892 0.506849 +0.504892 0.514677 0.504892 0.522505 0.504892 0.530333 0.504892 0.53816 0.504892 +0.545988 0.504892 0.553816 0.504892 0.561644 0.504892 0.569472 0.504892 0.577299 +0.504892 0.585127 0.504892 0.592955 0.504892 0.600783 0.504892 0.608611 0.504892 +0.232877 0.510763 0.240705 0.510763 0.248532 0.510763 0.25636 0.510763 0.264188 +0.510763 0.272016 0.510763 0.279843 0.510763 0.287671 0.510763 0.295499 0.510763 +0.303327 0.510763 0.311155 0.510763 0.318982 0.510763 0.32681 0.510763 0.334638 +0.510763 0.342466 0.510763 0.350294 0.510763 0.358121 0.510763 0.365949 0.510763 +0.373777 0.510763 0.381605 0.510763 0.389432 0.510763 0.39726 0.510763 0.405088 +0.510763 0.412916 0.510763 0.420744 0.510763 0.428571 0.510763 0.436399 0.510763 +0.444227 0.510763 0.452055 0.510763 0.459883 0.510763 0.46771 0.510763 0.475538 +0.510763 0.483366 0.510763 0.491194 0.510763 0.499022 0.510763 0.506849 0.510763 +0.514677 0.510763 0.522505 0.510763 0.530333 0.510763 0.53816 0.510763 0.545988 +0.510763 0.553816 0.510763 0.561644 0.510763 0.569472 0.510763 0.577299 0.510763 +0.585127 0.510763 0.592955 0.510763 0.600783 0.510763 0.608611 0.510763 0.232877 +0.516634 0.240705 0.516634 0.248532 0.516634 0.25636 0.516634 0.264188 0.516634 +0.272016 0.516634 0.279843 0.516634 0.287671 0.516634 0.295499 0.516634 0.303327 +0.516634 0.311155 0.516634 0.318982 0.516634 0.32681 0.516634 0.334638 0.516634 +0.342466 0.516634 0.350294 0.516634 0.358121 0.516634 0.365949 0.516634 0.373777 +0.516634 0.381605 0.516634 0.389432 0.516634 0.39726 0.516634 0.405088 0.516634 +0.412916 0.516634 0.420744 0.516634 0.428571 0.516634 0.436399 0.516634 0.444227 +0.516634 0.452055 0.516634 0.459883 0.516634 0.46771 0.516634 0.475538 0.516634 +0.483366 0.516634 0.491194 0.516634 0.499022 0.516634 0.506849 0.516634 0.514677 +0.516634 0.522505 0.516634 0.530333 0.516634 0.53816 0.516634 0.545988 0.516634 +0.553816 0.516634 0.561644 0.516634 0.569472 0.516634 0.577299 0.516634 0.585127 +0.516634 0.592955 0.516634 0.600783 0.516634 0.608611 0.516634 0.232877 0.522505 +0.240705 0.522505 0.248532 0.522505 0.25636 0.522505 0.264188 0.522505 0.272016 +0.522505 0.279843 0.522505 0.287671 0.522505 0.295499 0.522505 0.303327 0.522505 +0.311155 0.522505 0.318982 0.522505 0.32681 0.522505 0.334638 0.522505 0.342466 +0.522505 0.350294 0.522505 0.358121 0.522505 0.365949 0.522505 0.373777 0.522505 +0.381605 0.522505 0.389432 0.522505 0.39726 0.522505 0.405088 0.522505 0.412916 +0.522505 0.420744 0.522505 0.428571 0.522505 0.436399 0.522505 0.444227 0.522505 +0.452055 0.522505 0.459883 0.522505 0.46771 0.522505 0.475538 0.522505 0.483366 +0.522505 0.491194 0.522505 0.499022 0.522505 0.506849 0.522505 0.514677 0.522505 +0.522505 0.522505 0.530333 0.522505 0.53816 0.522505 0.545988 0.522505 0.553816 +0.522505 0.561644 0.522505 0.569472 0.522505 0.577299 0.522505 0.585127 0.522505 +0.592955 0.522505 0.600783 0.522505 0.608611 0.522505 0.232877 0.528376 0.240705 +0.528376 0.248532 0.528376 0.25636 0.528376 0.264188 0.528376 0.272016 0.528376 +0.279843 0.528376 0.287671 0.528376 0.295499 0.528376 0.303327 0.528376 0.311155 +0.528376 0.318982 0.528376 0.32681 0.528376 0.334638 0.528376 0.342466 0.528376 +0.350294 0.528376 0.358121 0.528376 0.365949 0.528376 0.373777 0.528376 0.381605 +0.528376 0.389432 0.528376 0.39726 0.528376 0.405088 0.528376 0.412916 0.528376 +0.420744 0.528376 0.428571 0.528376 0.436399 0.528376 0.444227 0.528376 0.452055 +0.528376 0.459883 0.528376 0.46771 0.528376 0.475538 0.528376 0.483366 0.528376 +0.491194 0.528376 0.499022 0.528376 0.506849 0.528376 0.514677 0.528376 0.522505 +0.528376 0.530333 0.528376 0.53816 0.528376 0.545988 0.528376 0.553816 0.528376 +0.561644 0.528376 0.569472 0.528376 0.577299 0.528376 0.585127 0.528376 0.592955 +0.528376 0.600783 0.528376 0.608611 0.528376 0.232877 0.534247 0.240705 0.534247 +0.248532 0.534247 0.25636 0.534247 0.264188 0.534247 0.272016 0.534247 0.279843 +0.534247 0.287671 0.534247 0.295499 0.534247 0.303327 0.534247 0.311155 0.534247 +0.318982 0.534247 0.32681 0.534247 0.334638 0.534247 0.342466 0.534247 0.350294 +0.534247 0.358121 0.534247 0.365949 0.534247 0.373777 0.534247 0.381605 0.534247 +0.389432 0.534247 0.39726 0.534247 0.405088 0.534247 0.412916 0.534247 0.420744 +0.534247 0.428571 0.534247 0.436399 0.534247 0.444227 0.534247 0.452055 0.534247 +0.459883 0.534247 0.46771 0.534247 0.475538 0.534247 0.483366 0.534247 0.491194 +0.534247 0.499022 0.534247 0.506849 0.534247 0.514677 0.534247 0.522505 0.534247 +0.530333 0.534247 0.53816 0.534247 0.545988 0.534247 0.553816 0.534247 0.561644 +0.534247 0.569472 0.534247 0.577299 0.534247 0.585127 0.534247 0.592955 0.534247 +0.600783 0.534247 0.608611 0.534247 0.232877 0.540117 0.240705 0.540117 0.248532 +0.540117 0.25636 0.540117 0.264188 0.540117 0.272016 0.540117 0.279843 0.540117 +0.287671 0.540117 0.295499 0.540117 0.303327 0.540117 0.311155 0.540117 0.318982 +0.540117 0.32681 0.540117 0.334638 0.540117 0.342466 0.540117 0.350294 0.540117 +0.358121 0.540117 0.365949 0.540117 0.373777 0.540117 0.381605 0.540117 0.389432 +0.540117 0.39726 0.540117 0.405088 0.540117 0.412916 0.540117 0.420744 0.540117 +0.428571 0.540117 0.436399 0.540117 0.444227 0.540117 0.452055 0.540117 0.459883 +0.540117 0.46771 0.540117 0.475538 0.540117 0.483366 0.540117 0.491194 0.540117 +0.499022 0.540117 0.506849 0.540117 0.514677 0.540117 0.522505 0.540117 0.530333 +0.540117 0.53816 0.540117 0.545988 0.540117 0.553816 0.540117 0.561644 0.540117 +0.569472 0.540117 0.577299 0.540117 0.585127 0.540117 0.592955 0.540117 0.600783 +0.540117 0.608611 0.540117 0.232877 0.545988 0.240705 0.545988 0.248532 0.545988 +0.25636 0.545988 0.264188 0.545988 0.272016 0.545988 0.279843 0.545988 0.287671 +0.545988 0.295499 0.545988 0.303327 0.545988 0.311155 0.545988 0.318982 0.545988 +0.32681 0.545988 0.334638 0.545988 0.342466 0.545988 0.350294 0.545988 0.358121 +0.545988 0.365949 0.545988 0.373777 0.545988 0.381605 0.545988 0.389432 0.545988 +0.39726 0.545988 0.405088 0.545988 0.412916 0.545988 0.420744 0.545988 0.428571 +0.545988 0.436399 0.545988 0.444227 0.545988 0.452055 0.545988 0.459883 0.545988 +0.46771 0.545988 0.475538 0.545988 0.483366 0.545988 0.491194 0.545988 0.499022 +0.545988 0.506849 0.545988 0.514677 0.545988 0.522505 0.545988 0.530333 0.545988 +0.53816 0.545988 0.545988 0.545988 0.553816 0.545988 0.561644 0.545988 0.569472 +0.545988 0.577299 0.545988 0.585127 0.545988 0.592955 0.545988 0.600783 0.545988 +0.608611 0.545988 0.232877 0.551859 0.240705 0.551859 0.248532 0.551859 0.25636 +0.551859 0.264188 0.551859 0.272016 0.551859 0.279843 0.551859 0.287671 0.551859 +0.295499 0.551859 0.303327 0.551859 0.311155 0.551859 0.318982 0.551859 0.32681 +0.551859 0.334638 0.551859 0.342466 0.551859 0.350294 0.551859 0.358121 0.551859 +0.365949 0.551859 0.373777 0.551859 0.381605 0.551859 0.389432 0.551859 0.39726 +0.551859 0.405088 0.551859 0.412916 0.551859 0.420744 0.551859 0.428571 0.551859 +0.436399 0.551859 0.444227 0.551859 0.452055 0.551859 0.459883 0.551859 0.46771 +0.551859 0.475538 0.551859 0.483366 0.551859 0.491194 0.551859 0.499022 0.551859 +0.506849 0.551859 0.514677 0.551859 0.522505 0.551859 0.530333 0.551859 0.53816 +0.551859 0.545988 0.551859 0.553816 0.551859 0.561644 0.551859 0.569472 0.551859 +0.577299 0.551859 0.585127 0.551859 0.592955 0.551859 0.600783 0.551859 0.608611 +0.551859 0.232877 0.55773 0.240705 0.55773 0.248532 0.55773 0.25636 0.55773 +0.264188 0.55773 0.272016 0.55773 0.279843 0.55773 0.287671 0.55773 0.295499 +0.55773 0.303327 0.55773 0.311155 0.55773 0.318982 0.55773 0.32681 0.55773 +0.334638 0.55773 0.342466 0.55773 0.350294 0.55773 0.358121 0.55773 0.365949 +0.55773 0.373777 0.55773 0.381605 0.55773 0.389432 0.55773 0.39726 0.55773 +0.405088 0.55773 0.412916 0.55773 0.420744 0.55773 0.428571 0.55773 0.436399 +0.55773 0.444227 0.55773 0.452055 0.55773 0.459883 0.55773 0.46771 0.55773 +0.475538 0.55773 0.483366 0.55773 0.491194 0.55773 0.499022 0.55773 0.506849 +0.55773 0.514677 0.55773 0.522505 0.55773 0.530333 0.55773 0.53816 0.55773 +0.545988 0.55773 0.553816 0.55773 0.561644 0.55773 0.569472 0.55773 0.577299 +0.55773 0.585127 0.55773 0.592955 0.55773 0.600783 0.55773 0.608611 0.55773 +0.232877 0.563601 0.240705 0.563601 0.248532 0.563601 0.25636 0.563601 0.264188 +0.563601 0.272016 0.563601 0.279843 0.563601 0.287671 0.563601 0.295499 0.563601 +0.303327 0.563601 0.311155 0.563601 0.318982 0.563601 0.32681 0.563601 0.334638 +0.563601 0.342466 0.563601 0.350294 0.563601 0.358121 0.563601 0.365949 0.563601 +0.373777 0.563601 0.381605 0.563601 0.389432 0.563601 0.39726 0.563601 0.405088 +0.563601 0.412916 0.563601 0.420744 0.563601 0.428571 0.563601 0.436399 0.563601 +0.444227 0.563601 0.452055 0.563601 0.459883 0.563601 0.46771 0.563601 0.475538 +0.563601 0.483366 0.563601 0.491194 0.563601 0.499022 0.563601 0.506849 0.563601 +0.514677 0.563601 0.522505 0.563601 0.530333 0.563601 0.53816 0.563601 0.545988 +0.563601 0.553816 0.563601 0.561644 0.563601 0.569472 0.563601 0.577299 0.563601 +0.585127 0.563601 0.592955 0.563601 0.600783 0.563601 0.608611 0.563601 0.232877 +0.569472 0.240705 0.569472 0.248532 0.569472 0.25636 0.569472 0.264188 0.569472 +0.272016 0.569472 0.279843 0.569472 0.287671 0.569472 0.295499 0.569472 0.303327 +0.569472 0.311155 0.569472 0.318982 0.569472 0.32681 0.569472 0.334638 0.569472 +0.342466 0.569472 0.350294 0.569472 0.358121 0.569472 0.365949 0.569472 0.373777 +0.569472 0.381605 0.569472 0.389432 0.569472 0.39726 0.569472 0.405088 0.569472 +0.412916 0.569472 0.420744 0.569472 0.428571 0.569472 0.436399 0.569472 0.444227 +0.569472 0.452055 0.569472 0.459883 0.569472 0.46771 0.569472 0.475538 0.569472 +0.483366 0.569472 0.491194 0.569472 0.499022 0.569472 0.506849 0.569472 0.514677 +0.569472 0.522505 0.569472 0.530333 0.569472 0.53816 0.569472 0.545988 0.569472 +0.553816 0.569472 0.561644 0.569472 0.569472 0.569472 0.577299 0.569472 0.585127 +0.569472 0.592955 0.569472 0.600783 0.569472 0.608611 0.569472 0.232877 0.575342 +0.240705 0.575342 0.248532 0.575342 0.25636 0.575342 0.264188 0.575342 0.272016 +0.575342 0.279843 0.575342 0.287671 0.575342 0.295499 0.575342 0.303327 0.575342 +0.311155 0.575342 0.318982 0.575342 0.32681 0.575342 0.334638 0.575342 0.342466 +0.575342 0.350294 0.575342 0.358121 0.575342 0.365949 0.575342 0.373777 0.575342 +0.381605 0.575342 0.389432 0.575342 0.39726 0.575342 0.405088 0.575342 0.412916 +0.575342 0.420744 0.575342 0.428571 0.575342 0.436399 0.575342 0.444227 0.575342 +0.452055 0.575342 0.459883 0.575342 0.46771 0.575342 0.475538 0.575342 0.483366 +0.575342 0.491194 0.575342 0.499022 0.575342 0.506849 0.575342 0.514677 0.575342 +0.522505 0.575342 0.530333 0.575342 0.53816 0.575342 0.545988 0.575342 0.553816 +0.575342 0.561644 0.575342 0.569472 0.575342 0.577299 0.575342 0.585127 0.575342 +0.592955 0.575342 0.600783 0.575342 0.608611 0.575342 0.232877 0.581213 0.240705 +0.581213 0.248532 0.581213 0.25636 0.581213 0.264188 0.581213 0.272016 0.581213 +0.279843 0.581213 0.287671 0.581213 0.295499 0.581213 0.303327 0.581213 0.311155 +0.581213 0.318982 0.581213 0.32681 0.581213 0.334638 0.581213 0.342466 0.581213 +0.350294 0.581213 0.358121 0.581213 0.365949 0.581213 0.373777 0.581213 0.381605 +0.581213 0.389432 0.581213 0.39726 0.581213 0.405088 0.581213 0.412916 0.581213 +0.420744 0.581213 0.428571 0.581213 0.436399 0.581213 0.444227 0.581213 0.452055 +0.581213 0.459883 0.581213 0.46771 0.581213 0.475538 0.581213 0.483366 0.581213 +0.491194 0.581213 0.499022 0.581213 0.506849 0.581213 0.514677 0.581213 0.522505 +0.581213 0.530333 0.581213 0.53816 0.581213 0.545988 0.581213 0.553816 0.581213 +0.561644 0.581213 0.569472 0.581213 0.577299 0.581213 0.585127 0.581213 0.592955 +0.581213 0.600783 0.581213 0.608611 0.581213 0.232877 0.587084 0.240705 0.587084 +0.248532 0.587084 0.25636 0.587084 0.264188 0.587084 0.272016 0.587084 0.279843 +0.587084 0.287671 0.587084 0.295499 0.587084 0.303327 0.587084 0.311155 0.587084 +0.318982 0.587084 0.32681 0.587084 0.334638 0.587084 0.342466 0.587084 0.350294 +0.587084 0.358121 0.587084 0.365949 0.587084 0.373777 0.587084 0.381605 0.587084 +0.389432 0.587084 0.39726 0.587084 0.405088 0.587084 0.412916 0.587084 0.420744 +0.587084 0.428571 0.587084 0.436399 0.587084 0.444227 0.587084 0.452055 0.587084 +0.459883 0.587084 0.46771 0.587084 0.475538 0.587084 0.483366 0.587084 0.491194 +0.587084 0.499022 0.587084 0.506849 0.587084 0.514677 0.587084 0.522505 0.587084 +0.530333 0.587084 0.53816 0.587084 0.545988 0.587084 0.553816 0.587084 0.561644 +0.587084 0.569472 0.587084 0.577299 0.587084 0.585127 0.587084 0.592955 0.587084 +0.600783 0.587084 0.608611 0.587084 0.232877 0.592955 0.240705 0.592955 0.248532 +0.592955 0.25636 0.592955 0.264188 0.592955 0.272016 0.592955 0.279843 0.592955 +0.287671 0.592955 0.295499 0.592955 0.303327 0.592955 0.311155 0.592955 0.318982 +0.592955 0.32681 0.592955 0.334638 0.592955 0.342466 0.592955 0.350294 0.592955 +0.358121 0.592955 0.365949 0.592955 0.373777 0.592955 0.381605 0.592955 0.389432 +0.592955 0.39726 0.592955 0.405088 0.592955 0.412916 0.592955 0.420744 0.592955 +0.428571 0.592955 0.436399 0.592955 0.444227 0.592955 0.452055 0.592955 0.459883 +0.592955 0.46771 0.592955 0.475538 0.592955 0.483366 0.592955 0.491194 0.592955 +0.499022 0.592955 0.506849 0.592955 0.514677 0.592955 0.522505 0.592955 0.530333 +0.592955 0.53816 0.592955 0.545988 0.592955 0.553816 0.592955 0.561644 0.592955 +0.569472 0.592955 0.577299 0.592955 0.585127 0.592955 0.592955 0.592955 0.600783 +0.592955 0.608611 0.592955 0.232877 0.598826 0.240705 0.598826 0.248532 0.598826 +0.25636 0.598826 0.264188 0.598826 0.272016 0.598826 0.279843 0.598826 0.287671 +0.598826 0.295499 0.598826 0.303327 0.598826 0.311155 0.598826 0.318982 0.598826 +0.32681 0.598826 0.334638 0.598826 0.342466 0.598826 0.350294 0.598826 0.358121 +0.598826 0.365949 0.598826 0.373777 0.598826 0.381605 0.598826 0.389432 0.598826 +0.39726 0.598826 0.405088 0.598826 0.412916 0.598826 0.420744 0.598826 0.428571 +0.598826 0.436399 0.598826 0.444227 0.598826 0.452055 0.598826 0.459883 0.598826 +0.46771 0.598826 0.475538 0.598826 0.483366 0.598826 0.491194 0.598826 0.499022 +0.598826 0.506849 0.598826 0.514677 0.598826 0.522505 0.598826 0.530333 0.598826 +0.53816 0.598826 0.545988 0.598826 0.553816 0.598826 0.561644 0.598826 0.569472 +0.598826 0.577299 0.598826 0.585127 0.598826 0.592955 0.598826 0.600783 0.598826 +0.608611 0.598826 0.232877 0.604697 0.240705 0.604697 0.248532 0.604697 0.25636 +0.604697 0.264188 0.604697 0.272016 0.604697 0.279843 0.604697 0.287671 0.604697 +0.295499 0.604697 0.303327 0.604697 0.311155 0.604697 0.318982 0.604697 0.32681 +0.604697 0.334638 0.604697 0.342466 0.604697 0.350294 0.604697 0.358121 0.604697 +0.365949 0.604697 0.373777 0.604697 0.381605 0.604697 0.389432 0.604697 0.39726 +0.604697 0.405088 0.604697 0.412916 0.604697 0.420744 0.604697 0.428571 0.604697 +0.436399 0.604697 0.444227 0.604697 0.452055 0.604697 0.459883 0.604697 0.46771 +0.604697 0.475538 0.604697 0.483366 0.604697 0.491194 0.604697 0.499022 0.604697 +0.506849 0.604697 0.514677 0.604697 0.522505 0.604697 0.530333 0.604697 0.53816 +0.604697 0.545988 0.604697 0.553816 0.604697 0.561644 0.604697 0.569472 0.604697 +0.577299 0.604697 0.585127 0.604697 0.592955 0.604697 0.600783 0.604697 0.608611 +0.604697 0.232877 0.610568 0.240705 0.610568 0.248532 0.610568 0.25636 0.610568 +0.264188 0.610568 0.272016 0.610568 0.279843 0.610568 0.287671 0.610568 0.295499 +0.610568 0.303327 0.610568 0.311155 0.610568 0.318982 0.610568 0.32681 0.610568 +0.334638 0.610568 0.342466 0.610568 0.350294 0.610568 0.358121 0.610568 0.365949 +0.610568 0.373777 0.610568 0.381605 0.610568 0.389432 0.610568 0.39726 0.610568 +0.405088 0.610568 0.412916 0.610568 0.420744 0.610568 0.428571 0.610568 0.436399 +0.610568 0.444227 0.610568 0.452055 0.610568 0.459883 0.610568 0.46771 0.610568 +0.475538 0.610568 0.483366 0.610568 0.491194 0.610568 0.499022 0.610568 0.506849 +0.610568 0.514677 0.610568 0.522505 0.610568 0.530333 0.610568 0.53816 0.610568 +0.545988 0.610568 0.553816 0.610568 0.561644 0.610568 0.569472 0.610568 0.577299 +0.610568 0.585127 0.610568 0.592955 0.610568 0.600783 0.610568 0.608611 0.610568 + diff --git a/data/mesh_05.obj b/data/mesh_05.obj new file mode 100644 index 0000000..d8023e1 --- /dev/null +++ b/data/mesh_05.obj @@ -0,0 +1,8863 @@ +# Viewpoint Datalabs International, Inc. Copyright 1996 + + +mtllib ./vp.mtl + +g +v 0.000000 8.407028 0.000000 +v 0.000000 8.380042 -0.204985 +v 0.053054 8.380042 -0.198000 +v 0.102492 8.380042 -0.177522 +v 0.144946 8.380042 -0.144946 +v 0.177522 8.380042 -0.102492 +v 0.198000 8.380042 -0.053054 +v 0.204985 8.380042 0.000000 +v 0.198000 8.380042 0.053054 +v 0.177522 8.380042 0.102492 +v 0.144946 8.380042 0.144946 +v 0.102493 8.380042 0.177522 +v 0.053054 8.380042 0.198000 +v 0.000000 8.380042 0.204985 +v -0.053054 8.380042 0.198000 +v -0.102492 8.380042 0.177522 +v -0.144946 8.380042 0.144946 +v -0.177522 8.380042 0.102493 +v -0.198000 8.380042 0.053054 +v -0.204985 8.380042 0.000000 +v -0.198000 8.380042 -0.053054 +v -0.177522 8.380042 -0.102492 +v -0.144946 8.380042 -0.144946 +v -0.102493 8.380042 -0.177522 +v -0.053054 8.380042 -0.198000 +v 0.000000 8.300921 -0.396000 +v 0.102492 8.300921 -0.382507 +v 0.198000 8.300921 -0.342946 +v 0.280014 8.300921 -0.280014 +v 0.342946 8.300921 -0.198000 +v 0.382506 8.300921 -0.102493 +v 0.396000 8.300921 0.000000 +v 0.382507 8.300921 0.102492 +v 0.342946 8.300921 0.198000 +v 0.280015 8.300921 0.280014 +v 0.198000 8.300921 0.342946 +v 0.102493 8.300921 0.382506 +v 0.000000 8.300921 0.396000 +v -0.102492 8.300921 0.382507 +v -0.197999 8.300921 0.342946 +v -0.280014 8.300921 0.280015 +v -0.342946 8.300921 0.198000 +v -0.382506 8.300921 0.102493 +v -0.396000 8.300921 0.000000 +v -0.382507 8.300921 -0.102492 +v -0.342946 8.300921 -0.197999 +v -0.280015 8.300921 -0.280014 +v -0.198001 8.300921 -0.342946 +v -0.102493 8.300921 -0.382506 +v 0.000000 8.175057 -0.560028 +v 0.144946 8.175057 -0.540946 +v 0.280014 8.175057 -0.484999 +v 0.396000 8.175057 -0.396000 +v 0.484999 8.175057 -0.280015 +v 0.540946 8.175057 -0.144947 +v 0.560028 8.175057 0.000000 +v 0.540946 8.175057 0.144945 +v 0.484999 8.175057 0.280014 +v 0.396000 8.175057 0.395999 +v 0.280015 8.175057 0.484999 +v 0.144947 8.175057 0.540946 +v 0.000000 8.175057 0.560028 +v -0.144945 8.175057 0.540946 +v -0.280014 8.175057 0.484999 +v -0.395999 8.175057 0.396001 +v -0.484998 8.175057 0.280015 +v -0.540946 8.175057 0.144947 +v -0.560028 8.175057 0.000000 +v -0.540946 8.175057 -0.144945 +v -0.484999 8.175057 -0.280013 +v -0.396001 8.175057 -0.395999 +v -0.280015 8.175057 -0.484998 +v -0.144947 8.175057 -0.540946 +v 0.000000 8.011028 -0.685892 +v 0.177521 8.011028 -0.662521 +v 0.342946 8.011028 -0.594000 +v 0.484999 8.011028 -0.484999 +v 0.594000 8.011028 -0.342947 +v 0.662521 8.011028 -0.177523 +v 0.685892 8.011028 0.000000 +v 0.662521 8.011028 0.177521 +v 0.594000 8.011028 0.342945 +v 0.484999 8.011028 0.484998 +v 0.342947 8.011028 0.594000 +v 0.177523 8.011028 0.662521 +v 0.000000 8.011028 0.685892 +v -0.177521 8.011028 0.662521 +v -0.342945 8.011028 0.594000 +v -0.484998 8.011028 0.485000 +v -0.593999 8.011028 0.342947 +v -0.662521 8.011028 0.177523 +v -0.685892 8.011028 0.000001 +v -0.662521 8.011028 -0.177521 +v -0.594001 8.011028 -0.342945 +v -0.485000 8.011028 -0.484998 +v -0.342947 8.011028 -0.593999 +v -0.177523 8.011028 -0.662521 +v 0.000000 7.820013 -0.765013 +v 0.197999 7.820013 -0.738946 +v 0.382506 7.820013 -0.662521 +v 0.540946 7.820013 -0.540946 +v 0.662521 7.820013 -0.382507 +v 0.738946 7.820013 -0.198001 +v 0.765013 7.820013 0.000000 +v 0.738946 7.820013 0.197999 +v 0.662521 7.820013 0.382506 +v 0.540947 7.820013 0.540945 +v 0.382507 7.820013 0.662520 +v 0.198001 7.820013 0.738946 +v 0.000001 7.820013 0.765013 +v -0.197999 7.820013 0.738946 +v -0.382506 7.820013 0.662521 +v -0.540945 7.820013 0.540947 +v -0.662520 7.820013 0.382508 +v -0.738946 7.820013 0.198001 +v -0.765013 7.820013 0.000001 +v -0.738946 7.820013 -0.197999 +v -0.662522 7.820013 -0.382505 +v -0.540947 7.820013 -0.540945 +v -0.382508 7.820013 -0.662520 +v -0.198001 7.820013 -0.738946 +v 0.000000 7.615029 -0.792000 +v 0.204984 7.615029 -0.765013 +v 0.395999 7.615029 -0.685892 +v 0.560028 7.615029 -0.560029 +v 0.685892 7.615029 -0.396001 +v 0.765013 7.615029 -0.204985 +v 0.792000 7.615029 0.000000 +v 0.765013 7.615029 0.204984 +v 0.685893 7.615029 0.395999 +v 0.560029 7.615029 0.560028 +v 0.396001 7.615029 0.685892 +v 0.204986 7.615029 0.765013 +v 0.000001 7.615029 0.792000 +v -0.204984 7.615029 0.765014 +v -0.395999 7.615029 0.685893 +v -0.560028 7.615029 0.560029 +v -0.685892 7.615029 0.396001 +v -0.765013 7.615029 0.204986 +v -0.792000 7.615029 0.000001 +v -0.765014 7.615029 -0.204983 +v -0.685893 7.615029 -0.395999 +v -0.560030 7.615029 -0.560028 +v -0.396001 7.615029 -0.685891 +v -0.204986 7.615029 -0.765013 +v 0.000000 7.410044 -0.765013 +v 0.198000 7.410044 -0.738946 +v 0.382506 7.410044 -0.662521 +v 0.540946 7.410044 -0.540947 +v 0.662521 7.410044 -0.382507 +v 0.738946 7.410044 -0.198001 +v 0.765013 7.410044 0.000000 +v 0.738946 7.410044 0.197999 +v 0.662521 7.410044 0.382506 +v 0.540947 7.410044 0.540945 +v 0.382507 7.410044 0.662521 +v 0.198001 7.410044 0.738946 +v 0.000001 7.410044 0.765013 +v -0.197999 7.410044 0.738946 +v -0.382506 7.410044 0.662522 +v -0.540945 7.410044 0.540947 +v -0.662520 7.410044 0.382508 +v -0.738946 7.410044 0.198001 +v -0.765013 7.410044 0.000001 +v -0.738946 7.410044 -0.197999 +v -0.662522 7.410044 -0.382506 +v -0.540947 7.410044 -0.540945 +v -0.382508 7.410044 -0.662520 +v -0.198001 7.410044 -0.738946 +v 0.000000 7.219029 -0.685892 +v 0.177522 7.219029 -0.662521 +v 0.342946 7.219029 -0.594000 +v 0.484999 7.219029 -0.485000 +v 0.594000 7.219029 -0.342947 +v 0.662521 7.219029 -0.177523 +v 0.685892 7.219029 0.000000 +v 0.662521 7.219029 0.177521 +v 0.594001 7.219029 0.342946 +v 0.485000 7.219029 0.484999 +v 0.342947 7.219029 0.594000 +v 0.177523 7.219029 0.662521 +v 0.000000 7.219029 0.685892 +v -0.177521 7.219029 0.662521 +v -0.342945 7.219029 0.594001 +v -0.484998 7.219029 0.485000 +v -0.594000 7.219029 0.342947 +v -0.662521 7.219029 0.177523 +v -0.685892 7.219029 0.000001 +v -0.662521 7.219029 -0.177521 +v -0.594001 7.219029 -0.342945 +v -0.485000 7.219029 -0.484998 +v -0.342947 7.219029 -0.594000 +v -0.177523 7.219029 -0.662521 +v 0.000000 7.055001 -0.560029 +v 0.144946 7.055001 -0.540946 +v 0.280014 7.055001 -0.484999 +v 0.396000 7.055001 -0.396001 +v 0.484999 7.055001 -0.280015 +v 0.540946 7.055001 -0.144947 +v 0.560029 7.055001 0.000000 +v 0.540946 7.055001 0.144946 +v 0.485000 7.055001 0.280014 +v 0.396001 7.055001 0.396000 +v 0.280015 7.055001 0.484999 +v 0.144947 7.055001 0.540946 +v 0.000000 7.055001 0.560029 +v -0.144945 7.055001 0.540947 +v -0.280014 7.055001 0.485000 +v -0.396000 7.055001 0.396001 +v -0.484999 7.055001 0.280015 +v -0.540946 7.055001 0.144947 +v -0.560029 7.055001 0.000000 +v -0.540947 7.055001 -0.144945 +v -0.485000 7.055001 -0.280014 +v -0.396001 7.055001 -0.395999 +v -0.280015 7.055001 -0.484999 +v -0.144947 7.055001 -0.540946 +v 0.000000 6.929136 -0.396000 +v 0.102492 6.929136 -0.382507 +v 0.198000 6.929136 -0.342947 +v 0.280014 6.929136 -0.280015 +v 0.342946 6.929136 -0.198000 +v 0.382507 6.929136 -0.102493 +v 0.396000 6.929136 0.000000 +v 0.382507 6.929136 0.102492 +v 0.342947 6.929136 0.198000 +v 0.280015 6.929136 0.280014 +v 0.198001 6.929136 0.342946 +v 0.102493 6.929136 0.382507 +v 0.000000 6.929136 0.396000 +v -0.102492 6.929136 0.382507 +v -0.198000 6.929136 0.342947 +v -0.280014 6.929136 0.280015 +v -0.342946 6.929136 0.198001 +v -0.382507 6.929136 0.102493 +v -0.396000 6.929136 0.000000 +v -0.382507 6.929136 -0.102492 +v -0.342947 6.929136 -0.198000 +v -0.280015 6.929136 -0.280014 +v -0.198001 6.929136 -0.342946 +v -0.102493 6.929136 -0.382507 +v 0.000000 6.850015 -0.204985 +v 0.053054 6.850015 -0.198000 +v 0.102492 6.850015 -0.177522 +v 0.144946 6.850015 -0.144947 +v 0.177522 6.850015 -0.102493 +v 0.198000 6.850015 -0.053054 +v 0.204985 6.850015 0.000000 +v 0.198001 6.850015 0.053054 +v 0.177522 6.850015 0.102492 +v 0.144947 6.850015 0.144946 +v 0.102493 6.850015 0.177522 +v 0.053054 6.850015 0.198000 +v 0.000000 6.850015 0.204985 +v -0.053054 6.850015 0.198001 +v -0.102492 6.850015 0.177522 +v -0.144946 6.850015 0.144947 +v -0.177522 6.850015 0.102493 +v -0.198000 6.850015 0.053054 +v -0.204985 6.850015 0.000000 +v -0.198001 6.850015 -0.053054 +v -0.177523 6.850015 -0.102492 +v -0.144947 6.850015 -0.144946 +v -0.102493 6.850015 -0.177522 +v -0.053054 6.850015 -0.198000 +v 0.000000 6.823029 0.000000 +v 1.871946 7.231124 0.000000 +v 1.924999 7.204138 -0.198000 +v 1.871946 7.204138 -0.204985 +v 1.974438 7.204138 -0.177522 +v 2.016892 7.204138 -0.144946 +v 2.049468 7.204138 -0.102492 +v 2.069946 7.204138 -0.053054 +v 2.076930 7.204138 0.000000 +v 2.069946 7.204138 0.053054 +v 2.049468 7.204138 0.102492 +v 2.016892 7.204138 0.144946 +v 1.974438 7.204138 0.177522 +v 1.925000 7.204138 0.198000 +v 1.871946 7.204138 0.204985 +v 1.818892 7.204138 0.198000 +v 1.769454 7.204138 0.177522 +v 1.727000 7.204138 0.144946 +v 1.694424 7.204138 0.102493 +v 1.673946 7.204138 0.053054 +v 1.666961 7.204138 0.000000 +v 1.673946 7.204138 -0.053054 +v 1.694424 7.204138 -0.102492 +v 1.726999 7.204138 -0.144946 +v 1.769453 7.204138 -0.177522 +v 1.818891 7.204138 -0.198000 +v 1.974438 7.125016 -0.382507 +v 1.871946 7.125016 -0.396000 +v 2.069945 7.125016 -0.342946 +v 2.151960 7.125016 -0.280014 +v 2.214891 7.125016 -0.198000 +v 2.254452 7.125016 -0.102493 +v 2.267946 7.125016 0.000000 +v 2.254452 7.125016 0.102492 +v 2.214892 7.125016 0.198000 +v 2.151960 7.125016 0.280014 +v 2.069946 7.125016 0.342946 +v 1.974439 7.125016 0.382506 +v 1.871946 7.125016 0.396000 +v 1.769454 7.125016 0.382507 +v 1.673946 7.125016 0.342946 +v 1.591932 7.125016 0.280015 +v 1.529000 7.125016 0.198000 +v 1.489439 7.125016 0.102493 +v 1.475946 7.125016 0.000000 +v 1.489439 7.125016 -0.102492 +v 1.528999 7.125016 -0.197999 +v 1.591931 7.125016 -0.280014 +v 1.673945 7.125016 -0.342946 +v 1.769453 7.125016 -0.382506 +v 2.016891 6.999153 -0.540946 +v 1.871945 6.999153 -0.560028 +v 2.151960 6.999153 -0.484999 +v 2.267945 6.999153 -0.396000 +v 2.356944 6.999153 -0.280015 +v 2.412892 6.999153 -0.144947 +v 2.431974 6.999153 0.000000 +v 2.412892 6.999153 0.144945 +v 2.356945 6.999153 0.280014 +v 2.267946 6.999153 0.395999 +v 2.151961 6.999153 0.484999 +v 2.016892 6.999153 0.540946 +v 1.871946 6.999153 0.560028 +v 1.727000 6.999153 0.540946 +v 1.591932 6.999153 0.484999 +v 1.475946 6.999153 0.396001 +v 1.386947 6.999153 0.280015 +v 1.331000 6.999153 0.144947 +v 1.311917 6.999153 0.000000 +v 1.330999 6.999153 -0.144945 +v 1.386946 6.999153 -0.280013 +v 1.475945 6.999153 -0.395999 +v 1.591931 6.999153 -0.484998 +v 1.726999 6.999153 -0.540946 +v 2.049467 6.835124 -0.662521 +v 1.871945 6.835124 -0.685892 +v 2.214891 6.835124 -0.594000 +v 2.356944 6.835124 -0.484999 +v 2.465945 6.835124 -0.342947 +v 2.534467 6.835124 -0.177523 +v 2.557838 6.835124 0.000000 +v 2.534467 6.835124 0.177521 +v 2.465946 6.835124 0.342945 +v 2.356945 6.835124 0.484998 +v 2.214892 6.835124 0.594000 +v 2.049469 6.835124 0.662521 +v 1.871947 6.835124 0.685892 +v 1.694425 6.835124 0.662521 +v 1.529001 6.835124 0.594000 +v 1.386948 6.835124 0.485000 +v 1.277946 6.835124 0.342947 +v 1.209425 6.835124 0.177523 +v 1.186054 6.835124 0.000001 +v 1.209425 6.835124 -0.177521 +v 1.277945 6.835124 -0.342945 +v 1.386946 6.835124 -0.484998 +v 1.528999 6.835124 -0.593999 +v 1.694423 6.835124 -0.662521 +v 2.069945 6.644109 -0.738946 +v 1.871945 6.644109 -0.765013 +v 2.254452 6.644109 -0.662521 +v 2.412891 6.644109 -0.540946 +v 2.534466 6.644109 -0.382507 +v 2.610892 6.644109 -0.198001 +v 2.636959 6.644109 0.000000 +v 2.610892 6.644109 0.197999 +v 2.534467 6.644109 0.382506 +v 2.412892 6.644109 0.540945 +v 2.254453 6.644109 0.662520 +v 2.069947 6.644109 0.738946 +v 1.871947 6.644109 0.765013 +v 1.673947 6.644109 0.738946 +v 1.489440 6.644109 0.662521 +v 1.331001 6.644109 0.540947 +v 1.209425 6.644109 0.382508 +v 1.133000 6.644109 0.198001 +v 1.106933 6.644109 0.000001 +v 1.132999 6.644109 -0.197999 +v 1.209424 6.644109 -0.382505 +v 1.330999 6.644109 -0.540945 +v 1.489438 6.644109 -0.662520 +v 1.673944 6.644109 -0.738946 +v 2.076930 6.439125 -0.765013 +v 1.871945 6.439125 -0.792000 +v 2.267945 6.439125 -0.685892 +v 2.431974 6.439125 -0.560029 +v 2.557837 6.439125 -0.396001 +v 2.636959 6.439125 -0.204985 +v 2.663946 6.439125 0.000000 +v 2.636959 6.439125 0.204984 +v 2.557838 6.439125 0.395999 +v 2.431975 6.439125 0.560028 +v 2.267946 6.439125 0.685892 +v 2.076931 6.439125 0.765013 +v 1.871947 6.439125 0.792000 +v 1.666962 6.439125 0.765014 +v 1.475947 6.439125 0.685893 +v 1.311918 6.439125 0.560029 +v 1.186054 6.439125 0.396001 +v 1.106933 6.439125 0.204986 +v 1.079946 6.439125 0.000001 +v 1.106932 6.439125 -0.204983 +v 1.186053 6.439125 -0.395999 +v 1.311916 6.439125 -0.560028 +v 1.475945 6.439125 -0.685891 +v 1.666960 6.439125 -0.765013 +v 2.069945 6.234140 -0.738946 +v 1.871945 6.234140 -0.765013 +v 2.254452 6.234140 -0.662521 +v 2.412891 6.234140 -0.540947 +v 2.534466 6.234140 -0.382507 +v 2.610892 6.234140 -0.198001 +v 2.636959 6.234140 0.000000 +v 2.610892 6.234140 0.197999 +v 2.534467 6.234140 0.382506 +v 2.412892 6.234140 0.540945 +v 2.254453 6.234140 0.662521 +v 2.069947 6.234140 0.738946 +v 1.871947 6.234140 0.765013 +v 1.673947 6.234140 0.738946 +v 1.489440 6.234140 0.662522 +v 1.331000 6.234140 0.540947 +v 1.209425 6.234140 0.382508 +v 1.133000 6.234140 0.198001 +v 1.106932 6.234140 0.000001 +v 1.132999 6.234140 -0.197999 +v 1.209424 6.234140 -0.382506 +v 1.330999 6.234140 -0.540945 +v 1.489438 6.234140 -0.662520 +v 1.673944 6.234140 -0.738946 +v 2.049467 6.043124 -0.662521 +v 1.871945 6.043124 -0.685892 +v 2.214891 6.043124 -0.594000 +v 2.356945 6.043124 -0.485000 +v 2.465946 6.043124 -0.342947 +v 2.534467 6.043124 -0.177523 +v 2.557838 6.043124 0.000000 +v 2.534467 6.043124 0.177521 +v 2.465946 6.043124 0.342946 +v 2.356946 6.043124 0.484999 +v 2.214893 6.043124 0.594000 +v 2.049469 6.043124 0.662521 +v 1.871947 6.043124 0.685892 +v 1.694425 6.043124 0.662521 +v 1.529000 6.043124 0.594001 +v 1.386947 6.043124 0.485000 +v 1.277946 6.043124 0.342947 +v 1.209425 6.043124 0.177523 +v 1.186054 6.043124 0.000001 +v 1.209424 6.043124 -0.177521 +v 1.277945 6.043124 -0.342945 +v 1.386946 6.043124 -0.484998 +v 1.528998 6.043124 -0.594000 +v 1.694422 6.043124 -0.662521 +v 2.016891 5.879096 -0.540946 +v 1.871945 5.879096 -0.560029 +v 2.151960 5.879096 -0.484999 +v 2.267946 5.879096 -0.396001 +v 2.356945 5.879096 -0.280015 +v 2.412892 5.879096 -0.144947 +v 2.431975 5.879096 0.000000 +v 2.412892 5.879096 0.144946 +v 2.356945 5.879096 0.280014 +v 2.267946 5.879096 0.396000 +v 2.151961 5.879096 0.484999 +v 2.016892 5.879096 0.540946 +v 1.871946 5.879096 0.560029 +v 1.727000 5.879096 0.540947 +v 1.591932 5.879096 0.485000 +v 1.475946 5.879096 0.396001 +v 1.386947 5.879096 0.280015 +v 1.331000 5.879096 0.144947 +v 1.311917 5.879096 0.000000 +v 1.330999 5.879096 -0.144945 +v 1.386946 5.879096 -0.280014 +v 1.475945 5.879096 -0.395999 +v 1.591930 5.879096 -0.484999 +v 1.726999 5.879096 -0.540946 +v 1.974438 5.753232 -0.382507 +v 1.871946 5.753232 -0.396000 +v 2.069946 5.753232 -0.342947 +v 2.151960 5.753232 -0.280015 +v 2.214892 5.753232 -0.198000 +v 2.254453 5.753232 -0.102493 +v 2.267946 5.753232 0.000000 +v 2.254453 5.753232 0.102492 +v 2.214892 5.753232 0.198000 +v 2.151961 5.753232 0.280014 +v 2.069946 5.753232 0.342946 +v 1.974439 5.753232 0.382507 +v 1.871946 5.753232 0.396000 +v 1.769454 5.753232 0.382507 +v 1.673946 5.753232 0.342947 +v 1.591932 5.753232 0.280015 +v 1.529000 5.753232 0.198001 +v 1.489439 5.753232 0.102493 +v 1.475945 5.753232 0.000000 +v 1.489439 5.753232 -0.102492 +v 1.528999 5.753232 -0.198000 +v 1.591931 5.753232 -0.280014 +v 1.673945 5.753232 -0.342946 +v 1.769453 5.753232 -0.382507 +v 1.925000 5.674111 -0.198000 +v 1.871946 5.674111 -0.204985 +v 1.974438 5.674111 -0.177522 +v 2.016892 5.674111 -0.144947 +v 2.049468 5.674111 -0.102493 +v 2.069946 5.674111 -0.053054 +v 2.076931 5.674111 0.000000 +v 2.069946 5.674111 0.053054 +v 2.049468 5.674111 0.102492 +v 2.016892 5.674111 0.144946 +v 1.974439 5.674111 0.177522 +v 1.925000 5.674111 0.198000 +v 1.871946 5.674111 0.204985 +v 1.818892 5.674111 0.198001 +v 1.769453 5.674111 0.177522 +v 1.727000 5.674111 0.144947 +v 1.694424 5.674111 0.102493 +v 1.673945 5.674111 0.053054 +v 1.666961 5.674111 0.000000 +v 1.673945 5.674111 -0.053054 +v 1.694423 5.674111 -0.102492 +v 1.726999 5.674111 -0.144946 +v 1.769453 5.674111 -0.177522 +v 1.818891 5.674111 -0.198000 +v 1.871946 5.647125 0.000000 +v 0.309896 5.515944 -0.041455 +v 0.345870 5.486310 -0.041455 +v 0.424286 5.504072 -0.093361 +v 0.418141 5.501982 -0.113838 +v 0.396498 5.533141 -0.113838 +v 0.411730 5.534671 -0.093361 +v 0.454673 5.520028 -0.112858 +v 0.438094 5.507370 -0.092381 +v 0.425538 5.537968 -0.092381 +v 0.443761 5.538089 -0.112858 +v 0.453302 5.457216 -0.089738 +v 0.441317 5.475670 -0.110215 +v 0.481455 5.465744 -0.089738 +v 0.606229 5.515820 -0.123867 +v 0.602834 5.475719 -0.123867 +v 0.579542 5.483232 -0.123867 +v 0.582807 5.538704 -0.123867 +v 0.445729 5.233723 -0.123867 +v 0.821135 5.315813 -0.123867 +v 1.000863 5.651269 -0.123867 +v 0.998508 5.634236 -0.123867 +v 0.802170 5.613324 -0.123867 +v 0.877842 5.588543 -0.123867 +v 0.948260 5.556879 -0.123867 +v 0.919384 5.572126 -0.123867 +v 0.887220 5.368674 -0.123867 +v 0.394917 5.657471 -0.123867 +v 0.406946 5.503573 -0.123867 +v 0.381454 5.531240 -0.123867 +v 0.531150 5.719302 -0.123867 +v 0.736686 5.605947 -0.123867 +v 0.458223 5.412295 -0.113265 +v 0.428678 5.362868 -0.113265 +v 0.402774 5.356741 -0.092786 +v 0.439946 5.417790 -0.092786 +v 0.403944 5.274145 -0.113282 +v 0.376874 5.259162 -0.092804 +v 0.416054 5.201977 -0.113084 +v 0.399372 5.179461 -0.092606 +v 0.480014 5.144361 -0.113117 +v 0.478291 5.118040 -0.092638 +v 0.527722 5.136270 -0.113282 +v 0.573570 5.146466 -0.113282 +v 0.582210 5.122450 -0.092804 +v 0.525999 5.109948 -0.092804 +v 0.610153 5.170753 -0.112581 +v 0.623349 5.197310 -0.112581 +v 0.646468 5.194917 -0.092102 +v 0.618793 5.146736 -0.092102 +v 0.623135 5.227768 -0.112810 +v 0.606183 5.243670 -0.112810 +v 0.622495 5.253418 -0.092331 +v 0.646254 5.225375 -0.092331 +v 0.570921 5.255943 -0.114459 +v 0.513188 5.262099 -0.114459 +v 0.550742 5.267126 -0.093982 +v 0.587233 5.265692 -0.093982 +v 0.509146 5.282185 -0.114400 +v 0.560599 5.325606 -0.114400 +v 0.575304 5.316366 -0.093922 +v 0.546701 5.287212 -0.093922 +v 0.593234 5.371274 -0.113305 +v 0.607939 5.362035 -0.092826 +v 0.625473 5.470294 -0.113282 +v 0.628868 5.510393 -0.113282 +v 0.649330 5.520258 -0.092804 +v 0.645166 5.471096 -0.092804 +v 0.615937 5.547515 -0.112902 +v 0.592514 5.570402 -0.112902 +v 0.599770 5.592010 -0.092425 +v 0.636398 5.557381 -0.092425 +v 0.536419 5.601588 -0.113282 +v 0.537775 5.625658 -0.092804 +v 0.502804 5.605110 -0.112799 +v 0.504160 5.629180 -0.092322 +v 0.433839 5.604552 -0.091985 +v 0.450710 5.583147 -0.112462 +v 0.482219 5.499254 -0.114462 +v 0.530931 5.473194 -0.114462 +v 0.499634 5.474578 -0.093983 +v 0.465640 5.486594 -0.093983 +v 0.534608 5.457798 -0.114274 +v 0.493435 5.445159 -0.114274 +v 0.475158 5.450655 -0.093796 +v 0.503310 5.459183 -0.093796 +v 0.421121 5.612298 -0.093871 +v 0.418937 5.628274 -0.114350 +v 0.506708 5.666801 -0.113882 +v 0.501502 5.648447 -0.093404 +v 0.550349 5.662285 -0.114218 +v 0.545143 5.643930 -0.093740 +v 0.629492 5.612260 -0.113562 +v 0.664060 5.578382 -0.113562 +v 0.650154 5.569179 -0.093084 +v 0.613526 5.603806 -0.093084 +v 0.696662 5.549114 -0.114802 +v 0.682757 5.539909 -0.094323 +v 0.760234 5.486811 -0.113282 +v 0.730038 5.495645 -0.092804 +v 0.810358 5.424101 -0.113282 +v 0.786797 5.426218 -0.092804 +v 0.819314 5.365025 -0.113282 +v 0.797526 5.360498 -0.092804 +v 0.802562 5.320957 -0.113282 +v 0.788883 5.308403 -0.113282 +v 0.762682 5.295666 -0.092804 +v 0.779451 5.311057 -0.092804 +v 0.794186 5.297959 -0.111517 +v 0.804707 5.297311 -0.111517 +v 0.767983 5.285222 -0.091038 +v 0.836627 5.301105 -0.113282 +v 0.843061 5.281743 -0.092804 +v 0.896286 5.324542 -0.113282 +v 0.909790 5.306975 -0.092804 +v 0.928906 5.373504 -0.113282 +v 0.946826 5.360417 -0.092804 +v 0.926206 5.448348 -0.113700 +v 0.907602 5.497252 -0.113700 +v 0.930586 5.489536 -0.093222 +v 0.945004 5.442576 -0.093222 +v 0.919570 5.525727 -0.113282 +v 0.942554 5.518014 -0.092804 +v 0.984745 5.550106 -0.113325 +v 1.015682 5.544410 -0.092846 +v 1.023436 5.590175 -0.113106 +v 1.049458 5.591613 -0.092627 +v 1.029258 5.632510 -0.113424 +v 1.018718 5.655898 -0.113424 +v 1.039579 5.667114 -0.092946 +v 1.051585 5.640802 -0.092946 +v 1.005948 5.675226 -0.110215 +v 0.995631 5.701816 -0.089738 +v 1.026809 5.686442 -0.089738 +v 0.993280 5.668571 -0.114556 +v 0.978032 5.657892 -0.114556 +v 0.980578 5.679368 -0.094078 +v 0.982963 5.695159 -0.094078 +v 0.927556 5.636914 -0.113282 +v 0.923474 5.656149 -0.092804 +v 0.877212 5.640411 -0.113949 +v 0.802427 5.662618 -0.113949 +v 0.810786 5.676223 -0.093471 +v 0.873130 5.659646 -0.093471 +v 0.539941 5.773489 -0.113282 +v 0.526252 5.797686 -0.092804 +v 0.457298 5.767262 -0.113282 +v 0.434858 5.792035 -0.092804 +v 0.382350 5.721624 -0.113282 +v 0.350880 5.742265 -0.092804 +v 0.342812 5.652568 -0.113282 +v 0.306206 5.666270 -0.092804 +v 0.335251 5.577381 -0.113282 +v 0.296974 5.582496 -0.092804 +v 0.362685 5.519274 -0.113282 +v 0.392027 5.495102 -0.113282 +v 0.361985 5.488284 -0.092804 +v 0.326010 5.517920 -0.092804 +v 0.417923 5.476707 -0.110215 +v 0.429909 5.458251 -0.089737 +v 0.387881 5.469887 -0.089737 +v 0.439370 5.482518 -0.110215 +v 0.445514 5.484608 -0.089738 +v 0.479508 5.472592 -0.089738 +v 0.440389 5.273817 -0.123867 +v 0.802856 5.311946 -0.123867 +v 0.470522 5.538355 -0.123867 +v 0.479066 5.555797 -0.123867 +v 0.530146 5.494235 -0.123867 +v 0.481434 5.520294 -0.123867 +v 0.527090 5.570638 -0.123867 +v 0.549926 5.504280 -0.123867 +v 0.591474 5.219917 -0.123867 +v 0.547534 5.217666 -0.123867 +v 0.574522 5.235818 -0.123867 +v 0.510551 5.186327 -0.123867 +v 0.856916 5.339489 -0.123867 +v 0.785386 5.561415 -0.123867 +v 0.831140 5.511280 -0.123867 +v 0.970352 5.590698 -0.123867 +v 0.874926 5.424644 -0.123867 +v 0.861703 5.463790 -0.123867 +v 0.385730 5.608974 -0.123867 +v 0.490694 5.715039 -0.123867 +v 0.541191 5.438536 -0.123867 +v 0.564482 5.431025 -0.123867 +v 0.470473 5.376470 -0.123867 +v 0.500018 5.425898 -0.123867 +v 0.545513 5.349375 -0.123867 +v 0.494061 5.305954 -0.123867 +v 0.426899 5.454040 -0.000178 +v 0.384872 5.465675 -0.000178 +v 0.392157 5.356647 -0.000178 +v 0.429328 5.417697 -0.000178 +v 0.364079 5.254062 -0.000178 +v 0.389204 5.170083 -0.000178 +v 0.474331 5.106178 -0.000178 +v 0.583881 5.110291 -0.000178 +v 0.527670 5.097790 -0.000178 +v 0.653498 5.188813 -0.000178 +v 0.625824 5.140632 -0.000178 +v 0.631697 5.254966 -0.000178 +v 0.655456 5.226924 -0.000178 +v 0.565082 5.271138 -0.000178 +v 0.601572 5.269704 -0.000178 +v 0.589741 5.315586 -0.000178 +v 0.561138 5.286431 -0.000178 +v 0.616228 5.359894 -0.000178 +v 0.659029 5.522835 -0.000178 +v 0.654866 5.473672 -0.000178 +v 0.670598 5.539687 -0.000178 +v 0.717054 5.498289 -0.000178 +v 0.775843 5.425636 -0.000178 +v 0.786682 5.357014 -0.000178 +v 0.750770 5.290197 -0.000178 +v 0.767541 5.305588 -0.000178 +v 0.763965 5.278866 -0.000178 +v 0.847876 5.272824 -0.000178 +v 0.917379 5.299571 -0.000178 +v 0.955695 5.355863 -0.000178 +v 0.941216 5.485821 -0.000178 +v 0.955634 5.438861 -0.000178 +v 0.955578 5.514775 -0.000178 +v 1.029874 5.543750 -0.000178 +v 1.061003 5.594168 -0.000178 +v 1.050158 5.671900 -0.000178 +v 1.062163 5.645587 -0.000178 +v 0.997389 5.708117 -0.000178 +v 1.028566 5.692743 -0.000178 +v 0.978222 5.692117 -0.000178 +v 0.980607 5.707908 -0.000178 +v 0.923102 5.665982 -0.000178 +v 0.811612 5.684768 -0.000178 +v 0.873955 5.668191 -0.000178 +v 0.517526 5.809513 -0.000178 +v 0.421837 5.803005 -0.000178 +v 0.334437 5.750560 -0.000178 +v 0.288120 5.670815 -0.000178 +v 0.278871 5.583405 -0.000178 +v 0.345870 5.486310 -0.000178 +v 0.309896 5.515944 -0.000178 +v 0.494061 5.305954 0.123511 +v 0.545513 5.349375 0.123511 +v 0.500018 5.425898 0.123511 +v 0.470473 5.376470 0.123511 +v 0.564482 5.431025 0.123511 +v 0.541191 5.438536 0.123511 +v 0.490694 5.715039 0.123511 +v 0.385730 5.608974 0.123511 +v 0.861703 5.463790 0.123511 +v 0.874926 5.424644 0.123511 +v 0.970352 5.590698 0.123511 +v 0.831140 5.511280 0.123511 +v 0.785386 5.561415 0.123511 +v 0.856916 5.339489 0.123511 +v 0.510551 5.186327 0.123511 +v 0.574522 5.235818 0.123511 +v 0.547534 5.217666 0.123511 +v 0.591474 5.219917 0.123511 +v 0.549926 5.504280 0.123511 +v 0.527090 5.570638 0.123511 +v 0.481434 5.520294 0.123511 +v 0.530146 5.494235 0.123511 +v 0.479066 5.555797 0.123511 +v 0.470522 5.538355 0.123511 +v 0.802856 5.311946 0.123511 +v 0.440389 5.273817 0.123511 +v 0.479508 5.472592 0.089382 +v 0.445514 5.484608 0.089382 +v 0.439370 5.482518 0.109859 +v 0.387881 5.469887 0.089381 +v 0.429909 5.458251 0.089381 +v 0.417923 5.476707 0.109859 +v 0.326010 5.517920 0.092448 +v 0.361985 5.488284 0.092448 +v 0.392027 5.495102 0.112926 +v 0.362685 5.519274 0.112926 +v 0.296974 5.582496 0.092448 +v 0.335251 5.577381 0.112926 +v 0.306206 5.666270 0.092448 +v 0.342812 5.652568 0.112926 +v 0.350880 5.742265 0.092448 +v 0.382350 5.721624 0.112926 +v 0.434858 5.792035 0.092448 +v 0.457298 5.767262 0.112926 +v 0.526252 5.797686 0.092448 +v 0.539941 5.773489 0.112926 +v 0.873130 5.659646 0.093115 +v 0.810786 5.676223 0.093115 +v 0.802427 5.662618 0.113593 +v 0.877212 5.640411 0.113593 +v 0.923474 5.656149 0.092448 +v 0.927556 5.636914 0.112926 +v 0.982963 5.695159 0.093722 +v 0.980578 5.679368 0.093722 +v 0.978032 5.657892 0.114200 +v 0.993280 5.668571 0.114200 +v 1.026809 5.686442 0.089382 +v 0.995631 5.701816 0.089382 +v 1.005948 5.675226 0.109859 +v 1.051585 5.640802 0.092590 +v 1.039579 5.667114 0.092590 +v 1.018718 5.655898 0.113068 +v 1.029258 5.632510 0.113068 +v 1.049458 5.591613 0.092271 +v 1.023436 5.590175 0.112750 +v 1.015682 5.544410 0.092490 +v 0.984745 5.550106 0.112969 +v 0.942554 5.518014 0.092448 +v 0.919570 5.525727 0.112926 +v 0.945004 5.442576 0.092866 +v 0.930586 5.489536 0.092866 +v 0.907602 5.497252 0.113344 +v 0.926206 5.448348 0.113344 +v 0.946826 5.360417 0.092448 +v 0.928906 5.373504 0.112926 +v 0.909790 5.306975 0.092448 +v 0.896286 5.324542 0.112926 +v 0.843061 5.281743 0.092448 +v 0.836627 5.301105 0.112926 +v 0.767983 5.285222 0.090682 +v 0.804707 5.297311 0.111161 +v 0.794186 5.297959 0.111161 +v 0.779451 5.311057 0.092448 +v 0.762682 5.295666 0.092448 +v 0.788883 5.308403 0.112926 +v 0.802562 5.320957 0.112926 +v 0.797526 5.360498 0.092448 +v 0.819314 5.365025 0.112926 +v 0.786797 5.426218 0.092448 +v 0.810358 5.424101 0.112926 +v 0.730038 5.495645 0.092448 +v 0.760234 5.486811 0.112926 +v 0.682757 5.539909 0.093967 +v 0.696662 5.549114 0.114446 +v 0.613526 5.603806 0.092728 +v 0.650154 5.569179 0.092728 +v 0.664060 5.578382 0.113206 +v 0.629492 5.612260 0.113206 +v 0.545143 5.643930 0.093384 +v 0.550349 5.662285 0.113862 +v 0.501502 5.648447 0.093048 +v 0.506708 5.666801 0.113526 +v 0.418937 5.628274 0.113994 +v 0.421121 5.612298 0.093515 +v 0.503310 5.459183 0.093440 +v 0.475158 5.450655 0.093440 +v 0.493435 5.445159 0.113918 +v 0.534608 5.457798 0.113918 +v 0.465640 5.486594 0.093627 +v 0.499634 5.474578 0.093627 +v 0.530931 5.473194 0.114106 +v 0.482219 5.499254 0.114106 +v 0.450710 5.583147 0.112106 +v 0.433839 5.604552 0.091629 +v 0.504160 5.629180 0.091966 +v 0.502804 5.605110 0.112443 +v 0.537775 5.625658 0.092448 +v 0.536419 5.601588 0.112926 +v 0.636398 5.557381 0.092069 +v 0.599770 5.592010 0.092069 +v 0.592514 5.570402 0.112546 +v 0.615937 5.547515 0.112546 +v 0.645166 5.471096 0.092448 +v 0.649330 5.520258 0.092448 +v 0.628868 5.510393 0.112926 +v 0.625473 5.470294 0.112926 +v 0.607939 5.362035 0.092470 +v 0.593234 5.371274 0.112949 +v 0.546701 5.287212 0.093566 +v 0.575304 5.316366 0.093566 +v 0.560599 5.325606 0.114044 +v 0.509146 5.282185 0.114044 +v 0.587233 5.265692 0.093626 +v 0.550742 5.267126 0.093626 +v 0.513188 5.262099 0.114103 +v 0.570921 5.255943 0.114103 +v 0.646254 5.225375 0.091975 +v 0.622495 5.253418 0.091975 +v 0.606183 5.243670 0.112454 +v 0.623135 5.227768 0.112454 +v 0.618793 5.146736 0.091746 +v 0.646468 5.194917 0.091746 +v 0.623349 5.197310 0.112225 +v 0.610153 5.170753 0.112225 +v 0.525999 5.109948 0.092448 +v 0.582210 5.122450 0.092448 +v 0.573570 5.146466 0.112926 +v 0.527722 5.136270 0.112926 +v 0.478291 5.118040 0.092282 +v 0.480014 5.144361 0.112761 +v 0.399372 5.179461 0.092250 +v 0.416054 5.201977 0.112728 +v 0.376874 5.259162 0.092448 +v 0.403944 5.274145 0.112926 +v 0.439946 5.417790 0.092430 +v 0.402774 5.356741 0.092430 +v 0.428678 5.362868 0.112909 +v 0.458223 5.412295 0.112909 +v 0.736686 5.605947 0.123511 +v 0.531150 5.719302 0.123511 +v 0.381454 5.531240 0.123511 +v 0.406946 5.503573 0.123511 +v 0.394917 5.657471 0.123511 +v 0.887220 5.368674 0.123511 +v 0.919384 5.572126 0.123511 +v 0.948260 5.556879 0.123511 +v 0.877842 5.588543 0.123511 +v 0.802170 5.613324 0.123511 +v 0.998508 5.634236 0.123511 +v 1.000863 5.651269 0.123511 +v 0.821135 5.315813 0.123511 +v 0.445729 5.233723 0.123511 +v 0.582807 5.538704 0.123511 +v 0.579542 5.483232 0.123511 +v 0.602834 5.475719 0.123511 +v 0.606229 5.515820 0.123511 +v 0.481455 5.465744 0.089382 +v 0.441317 5.475670 0.109859 +v 0.453302 5.457216 0.089382 +v 0.443761 5.538089 0.112502 +v 0.425538 5.537968 0.092025 +v 0.438094 5.507370 0.092025 +v 0.454673 5.520028 0.112502 +v 0.411730 5.534671 0.093005 +v 0.396498 5.533141 0.113482 +v 0.418141 5.501982 0.113482 +v 0.424286 5.504072 0.093005 +v 0.345870 5.486310 0.041099 +v 0.309896 5.515944 0.041099 +v 2.041447 5.441407 0.000016 +v 1.902422 5.157276 0.000038 +v 2.000598 5.267411 -0.000016 +v 0.827715 5.464243 -0.018954 +v 1.649046 5.069851 -0.032847 +v 1.776509 5.091953 -0.036823 +v 1.898296 5.160740 -0.040898 +v 1.994962 5.269464 -0.045596 +v 2.035121 5.441407 -0.048052 +v 2.109306 5.441407 -0.067926 +v 2.146399 5.479807 -0.077862 +v 2.084578 5.531006 -0.061302 +v 1.991847 5.569407 -0.036460 +v 2.041304 5.595008 -0.049708 +v 2.096942 5.665406 -0.064614 +v 2.127852 5.665406 -0.072894 +v 2.127852 5.697407 -0.072894 +v 0.830914 5.470578 -0.036093 +v 0.836005 5.480661 -0.050811 +v 1.643436 5.101691 -0.088847 +v 1.758191 5.123687 -0.100293 +v 1.866940 5.187052 -0.111804 +v 1.952135 5.285051 -0.124545 +v 1.987059 5.441407 -0.131312 +v 2.041368 5.441407 -0.185614 +v 2.068523 5.479807 -0.212766 +v 2.023265 5.531006 -0.167514 +v 1.955379 5.569407 -0.099636 +v 1.991585 5.595008 -0.135838 +v 2.032317 5.665406 -0.176565 +v 2.054945 5.665406 -0.199190 +v 2.054945 5.697407 -0.199190 +v 0.850366 5.509098 -0.069204 +v 1.633711 5.156838 -0.121179 +v 1.726459 5.178650 -0.136939 +v 1.812627 5.232628 -0.152744 +v 1.877953 5.312052 -0.170130 +v 1.903806 5.441407 -0.179386 +v 1.923689 5.441407 -0.253568 +v 1.933629 5.479807 -0.290659 +v 1.917061 5.531006 -0.228842 +v 1.892206 5.569407 -0.136114 +v 1.905463 5.595008 -0.185568 +v 1.920375 5.665406 -0.241205 +v 1.928659 5.665406 -0.272114 +v 1.928659 5.697407 -0.272114 +v 0.866946 5.541935 -0.069204 +v 1.622482 5.220516 -0.121182 +v 1.689813 5.242119 -0.136943 +v 1.749908 5.285254 -0.152750 +v 1.792290 5.343229 -0.170137 +v 1.807669 5.441407 -0.179394 +v 1.787799 5.441407 -0.253579 +v 1.777863 5.479807 -0.290672 +v 1.794421 5.531006 -0.228851 +v 1.819260 5.569407 -0.136119 +v 1.806012 5.595008 -0.185577 +v 1.791109 5.665406 -0.241215 +v 1.782831 5.665406 -0.272125 +v 1.782831 5.697407 -0.272125 +v 0.881305 5.570374 -0.050811 +v 1.612755 5.275664 -0.088854 +v 1.658075 5.297085 -0.100303 +v 1.695589 5.330832 -0.111818 +v 1.718102 5.370231 -0.124564 +v 1.724408 5.441407 -0.131333 +v 1.670107 5.441407 -0.185643 +v 1.642957 5.479807 -0.212799 +v 1.688207 5.531006 -0.167541 +v 1.756084 5.569407 -0.099651 +v 1.719882 5.595008 -0.135859 +v 1.679158 5.665406 -0.176592 +v 1.656531 5.665406 -0.199222 +v 1.656531 5.697407 -0.199222 +v 1.733685 5.569407 -0.070469 +v 0.889594 5.586796 -0.018954 +v 1.607137 5.307508 -0.032856 +v 1.639748 5.328821 -0.036838 +v 1.664223 5.357145 -0.040918 +v 1.675264 5.385822 -0.045622 +v 1.676331 5.441407 -0.048081 +v 1.602150 5.441407 -0.067966 +v 1.565059 5.479807 -0.077909 +v 1.626877 5.531006 -0.061338 +v 1.719603 5.569407 -0.036482 +v 1.670149 5.595008 -0.049738 +v 1.614513 5.665406 -0.064651 +v 1.583606 5.665406 -0.072936 +v 1.583606 5.697407 -0.072936 +v 0.889594 5.586796 0.017833 +v 1.607132 5.307511 0.031806 +v 1.639743 5.328824 0.036450 +v 1.664215 5.357148 0.040955 +v 1.675255 5.385825 0.045538 +v 1.676321 5.441407 0.048057 +v 1.602136 5.441407 0.067926 +v 1.565044 5.479807 0.077860 +v 1.626865 5.531006 0.061302 +v 1.719597 5.569407 0.036466 +v 1.670139 5.595008 0.049711 +v 1.614500 5.665406 0.064614 +v 1.583589 5.665406 0.072893 +v 1.583589 5.697407 0.072893 +v 1.691782 5.379807 0.088014 +v 0.881302 5.570380 0.049690 +v 1.612743 5.275675 0.087806 +v 1.658060 5.297095 0.099922 +v 1.695569 5.330838 0.111863 +v 1.718076 5.370237 0.124489 +v 1.724379 5.441407 0.131318 +v 1.670067 5.441407 0.185618 +v 1.642911 5.479807 0.212767 +v 1.688171 5.531006 0.167518 +v 1.756062 5.569407 0.099644 +v 1.719855 5.595008 0.135843 +v 1.679120 5.665406 0.176567 +v 1.656490 5.665406 0.199191 +v 1.656490 5.697407 0.199191 +v 0.866942 5.541945 0.068085 +v 1.622465 5.220531 0.120141 +v 1.689792 5.242130 0.136571 +v 1.749879 5.285265 0.152806 +v 1.792256 5.343235 0.170078 +v 1.807631 5.441407 0.179396 +v 1.787743 5.441407 0.253577 +v 1.777802 5.479807 0.290667 +v 1.794373 5.531006 0.228850 +v 1.819231 5.569407 0.136125 +v 1.805974 5.595008 0.185578 +v 1.791058 5.665406 0.241213 +v 1.782773 5.665406 0.272123 +v 1.782773 5.697407 0.272123 +v 0.850362 5.509104 0.068087 +v 1.633698 5.156850 0.120147 +v 1.726436 5.178664 0.136579 +v 1.812598 5.232639 0.152818 +v 1.877919 5.312058 0.170090 +v 1.903767 5.441407 0.179410 +v 1.923634 5.441407 0.253595 +v 1.933568 5.479807 0.290689 +v 1.917012 5.531006 0.228866 +v 1.892178 5.569407 0.136134 +v 1.905423 5.595008 0.185592 +v 1.920323 5.665406 0.241231 +v 1.928601 5.665406 0.272141 +v 1.928601 5.697407 0.272141 +v 0.836002 5.480664 0.049696 +v 1.643425 5.101700 0.087822 +v 1.758174 5.123696 0.099943 +v 1.866919 5.187061 0.111890 +v 1.952110 5.285056 0.124521 +v 1.987030 5.441407 0.131352 +v 2.041330 5.441407 0.185667 +v 2.068478 5.479807 0.212822 +v 2.023230 5.531006 0.167562 +v 1.955357 5.569407 0.099670 +v 1.991556 5.595008 0.135879 +v 2.032280 5.665406 0.176614 +v 2.054904 5.665406 0.199245 +v 2.054904 5.697407 0.199245 +v 1.977757 5.569407 0.070487 +v 0.827713 5.464243 0.017841 +v 1.649043 5.069855 0.031826 +v 1.776505 5.091958 0.036479 +v 1.898288 5.160743 0.040991 +v 1.994951 5.269464 0.045582 +v 2.035112 5.441407 0.048103 +v 2.109293 5.441407 0.067991 +v 2.146382 5.479807 0.077937 +v 2.084566 5.531006 0.061362 +v 1.991841 5.569407 0.036501 +v 2.041295 5.595008 0.049761 +v 2.096928 5.665406 0.064676 +v 2.127837 5.665406 0.072964 +v 2.127837 5.697407 0.072964 +v 1.480159 5.243531 -0.106571 +v 1.502341 5.287462 -0.078158 +v 1.454546 5.192803 -0.106571 +v 1.432361 5.148871 -0.078157 +v 1.515146 5.312833 0.027885 +v 1.502338 5.287472 0.077100 +v 1.480153 5.243540 0.105516 +v 1.454540 5.192812 0.105519 +v 1.432358 5.148880 0.077109 +v 1.419550 5.123511 0.027896 +v 1.516179 5.312378 -0.028960 +v 1.419042 5.123801 -0.028934 +v 1.563461 5.304673 0.030392 +v 1.564023 5.304605 -0.031455 +v 1.558218 5.274195 -0.084999 +v 1.549126 5.221419 -0.115918 +v 1.529535 5.107703 -0.084997 +v 1.538628 5.160480 -0.115917 +v 1.558211 5.274205 0.083947 +v 1.549116 5.221431 0.114869 +v 1.538617 5.160491 0.114874 +v 1.529527 5.107712 0.083959 +v 1.523994 5.077298 -0.031438 +v 1.524280 5.077236 0.030408 +v -0.935916 7.231124 1.621186 +v -0.790965 7.204138 1.766126 +v -0.758390 7.204138 1.723672 +v -0.833417 7.204138 1.798704 +v -0.882855 7.204138 1.819184 +v -0.935909 7.204138 1.826170 +v -0.988963 7.204138 1.819188 +v -1.038402 7.204138 1.798711 +v -1.080857 7.204138 1.766137 +v -1.113434 7.204138 1.723684 +v -1.133914 7.204138 1.674246 +v -1.140901 7.204138 1.621192 +v -1.133918 7.204138 1.568139 +v -1.113442 7.204138 1.518699 +v -1.080867 7.204138 1.476245 +v -1.038415 7.204138 1.443668 +v -0.988977 7.204138 1.423187 +v -0.935924 7.204138 1.416201 +v -0.882869 7.204138 1.423184 +v -0.833430 7.204138 1.443660 +v -0.790975 7.204138 1.476234 +v -0.758398 7.204138 1.518687 +v -0.737918 7.204138 1.568124 +v -0.730931 7.204138 1.621178 +v -0.737914 7.204138 1.674232 +v -0.655892 7.125016 1.901190 +v -0.592963 7.125016 1.819174 +v -0.737904 7.125016 1.964124 +v -0.833411 7.125016 2.003688 +v -0.935902 7.125016 2.017184 +v -1.038394 7.125016 2.003695 +v -1.133904 7.125016 1.964139 +v -1.215920 7.125016 1.901209 +v -1.278855 7.125016 1.819197 +v -1.318419 7.125016 1.723691 +v -1.331916 7.125016 1.621200 +v -1.318426 7.125016 1.518708 +v -1.278869 7.125016 1.423198 +v -1.215941 7.125016 1.341181 +v -1.133928 7.125016 1.278246 +v -1.038423 7.125016 1.238682 +v -0.935930 7.125016 1.225186 +v -0.833438 7.125016 1.238675 +v -0.737928 7.125016 1.278233 +v -0.655912 7.125016 1.341161 +v -0.592978 7.125016 1.423172 +v -0.553413 7.125016 1.518679 +v -0.539916 7.125016 1.621171 +v -0.553406 7.125016 1.723664 +v -0.539902 6.999153 2.017171 +v -0.450907 6.999153 1.901182 +v -0.655885 6.999153 2.106174 +v -0.790951 6.999153 2.162126 +v -0.935896 6.999153 2.181214 +v -1.080843 6.999153 2.162137 +v -1.215913 6.999153 2.106194 +v -1.331902 6.999153 2.017200 +v -1.420905 6.999153 1.901217 +v -1.476856 6.999153 1.766151 +v -1.495945 6.999153 1.621206 +v -1.476867 6.999153 1.476258 +v -1.420925 6.999153 1.341189 +v -1.331930 6.999153 1.225199 +v -1.215948 6.999153 1.136197 +v -1.080882 6.999153 1.080244 +v -0.935937 6.999153 1.061157 +v -0.790990 6.999153 1.080234 +v -0.655919 6.999153 1.136176 +v -0.539931 6.999153 1.225170 +v -0.450928 6.999153 1.341153 +v -0.394976 6.999153 1.476219 +v -0.375888 6.999153 1.621165 +v -0.394965 6.999153 1.766112 +v -0.450900 6.835124 2.106167 +v -0.341904 6.835124 1.964110 +v -0.592949 6.835124 2.215173 +v -0.758371 6.835124 2.283700 +v -0.935891 6.835124 2.307077 +v -1.113414 6.835124 2.283713 +v -1.278841 6.835124 2.215197 +v -1.420897 6.835124 2.106202 +v -1.529903 6.835124 1.964153 +v -1.598430 6.835124 1.798731 +v -1.621808 6.835124 1.621209 +v -1.598444 6.835124 1.443688 +v -1.529929 6.835124 1.278261 +v -1.420933 6.835124 1.136204 +v -1.278884 6.835124 1.027199 +v -1.113463 6.835124 0.958671 +v -0.935941 6.835124 0.935293 +v -0.758418 6.835124 0.958658 +v -0.592992 6.835124 1.027173 +v -0.450935 6.835124 1.136169 +v -0.341929 6.835124 1.278217 +v -0.273402 6.835124 1.443639 +v -0.250024 6.835124 1.621160 +v -0.273389 6.835124 1.798683 +v -0.394951 6.644109 2.162112 +v -0.273382 6.644109 2.003668 +v -0.553386 6.644109 2.283693 +v -0.737890 6.644109 2.360124 +v -0.935889 6.644109 2.386198 +v -1.133890 6.644109 2.360139 +v -1.318400 6.644109 2.283720 +v -1.476843 6.644109 2.162151 +v -1.598423 6.644109 2.003716 +v -1.674855 6.644109 1.819212 +v -1.700929 6.644109 1.621213 +v -1.674870 6.644109 1.423212 +v -1.598451 6.644109 1.238703 +v -1.476882 6.644109 1.080259 +v -1.318446 6.644109 0.958678 +v -1.133944 6.644109 0.882247 +v -0.935944 6.644109 0.856172 +v -0.737943 6.644109 0.882232 +v -0.553434 6.644109 0.958651 +v -0.394989 6.644109 1.080219 +v -0.273410 6.644109 1.238654 +v -0.196978 6.644109 1.423158 +v -0.170903 6.644109 1.621157 +v -0.196962 6.644109 1.819158 +v -0.375868 6.439125 2.181194 +v -0.250010 6.439125 2.017161 +v -0.539892 6.439125 2.307063 +v -0.730904 6.439125 2.386191 +v -0.935887 6.439125 2.413185 +v -1.140874 6.439125 2.386206 +v -1.331892 6.439125 2.307091 +v -1.495925 6.439125 2.181234 +v -1.621794 6.439125 2.017210 +v -1.700922 6.439125 1.826198 +v -1.727916 6.439125 1.621213 +v -1.700937 6.439125 1.416228 +v -1.621823 6.439125 1.225210 +v -1.495965 6.439125 1.061177 +v -1.331942 6.439125 0.935308 +v -1.140928 6.439125 0.856180 +v -0.935945 6.439125 0.829185 +v -0.730960 6.439125 0.856165 +v -0.539941 6.439125 0.935279 +v -0.375908 6.439125 1.061136 +v -0.250038 6.439125 1.225160 +v -0.170910 6.439125 1.416173 +v -0.143917 6.439125 1.621156 +v -0.170895 6.439125 1.826142 +v -0.394951 6.234140 2.162112 +v -0.273382 6.234140 2.003668 +v -0.553386 6.234140 2.283693 +v -0.737889 6.234140 2.360124 +v -0.935889 6.234140 2.386198 +v -1.133890 6.234140 2.360139 +v -1.318400 6.234140 2.283720 +v -1.476843 6.234140 2.162151 +v -1.598423 6.234140 2.003716 +v -1.674855 6.234140 1.819212 +v -1.700930 6.234140 1.621213 +v -1.674870 6.234140 1.423212 +v -1.598451 6.234140 1.238703 +v -1.476882 6.234140 1.080259 +v -1.318447 6.234140 0.958678 +v -1.133943 6.234140 0.882246 +v -0.935944 6.234140 0.856172 +v -0.737943 6.234140 0.882232 +v -0.553433 6.234140 0.958650 +v -0.394989 6.234140 1.080219 +v -0.273409 6.234140 1.238654 +v -0.196978 6.234140 1.423158 +v -0.170903 6.234140 1.621157 +v -0.196962 6.234140 1.819158 +v -0.450900 6.043124 2.106167 +v -0.341904 6.043124 1.964110 +v -0.592949 6.043124 2.215173 +v -0.758370 6.043124 2.283701 +v -0.935891 6.043124 2.307078 +v -1.113414 6.043124 2.283713 +v -1.278841 6.043124 2.215197 +v -1.420897 6.043124 2.106202 +v -1.529904 6.043124 1.964153 +v -1.598432 6.043124 1.798732 +v -1.621809 6.043124 1.621211 +v -1.598444 6.043124 1.443688 +v -1.529929 6.043124 1.278261 +v -1.420933 6.043124 1.136204 +v -1.278884 6.043124 1.027197 +v -1.113462 6.043124 0.958670 +v -0.935941 6.043124 0.935293 +v -0.758418 6.043124 0.958658 +v -0.592992 6.043124 1.027173 +v -0.450935 6.043124 1.136168 +v -0.341929 6.043124 1.278217 +v -0.273402 6.043124 1.443639 +v -0.250023 6.043124 1.621160 +v -0.273388 6.043124 1.798683 +v -0.539902 5.879096 2.017171 +v -0.450907 5.879096 1.901182 +v -0.655885 5.879096 2.106174 +v -0.790950 5.879096 2.162127 +v -0.935896 5.879096 2.181215 +v -1.080843 5.879096 2.162137 +v -1.215914 5.879096 2.106194 +v -1.331902 5.879096 2.017200 +v -1.420905 5.879096 1.901217 +v -1.476857 5.879096 1.766150 +v -1.495945 5.879096 1.621206 +v -1.476867 5.879096 1.476258 +v -1.420925 5.879096 1.341188 +v -1.331931 5.879096 1.225199 +v -1.215949 5.879096 1.136196 +v -1.080882 5.879096 1.080244 +v -0.935937 5.879096 1.061157 +v -0.790990 5.879096 1.080234 +v -0.655919 5.879096 1.136176 +v -0.539931 5.879096 1.225170 +v -0.450927 5.879096 1.341153 +v -0.394976 5.879096 1.476219 +v -0.375887 5.879096 1.621165 +v -0.394965 5.879096 1.766112 +v -0.655892 5.753232 1.901190 +v -0.592963 5.753232 1.819174 +v -0.737903 5.753232 1.964125 +v -0.833410 5.753232 2.003689 +v -0.935902 5.753232 2.017185 +v -1.038395 5.753232 2.003696 +v -1.133904 5.753232 1.964139 +v -1.215921 5.753232 1.901210 +v -1.278855 5.753232 1.819197 +v -1.318419 5.753232 1.723692 +v -1.331916 5.753232 1.621200 +v -1.318427 5.753232 1.518707 +v -1.278869 5.753232 1.423198 +v -1.215941 5.753232 1.341181 +v -1.133929 5.753232 1.278246 +v -1.038423 5.753232 1.238682 +v -0.935931 5.753232 1.225185 +v -0.833438 5.753232 1.238675 +v -0.737928 5.753232 1.278232 +v -0.655912 5.753232 1.341161 +v -0.592977 5.753232 1.423173 +v -0.553413 5.753232 1.518679 +v -0.539916 5.753232 1.621171 +v -0.553405 5.753232 1.723664 +v -0.790965 5.674111 1.766127 +v -0.758390 5.674111 1.723672 +v -0.833417 5.674111 1.798704 +v -0.882854 5.674111 1.819184 +v -0.935909 5.674111 1.826171 +v -0.988963 5.674111 1.819188 +v -1.038403 5.674111 1.798711 +v -1.080857 5.674111 1.766137 +v -1.113434 5.674111 1.723684 +v -1.133914 5.674111 1.674246 +v -1.140901 5.674111 1.621193 +v -1.133918 5.674111 1.568139 +v -1.113442 5.674111 1.518699 +v -1.080868 5.674111 1.476244 +v -1.038415 5.674111 1.443667 +v -0.988978 5.674111 1.423187 +v -0.935924 5.674111 1.416201 +v -0.882869 5.674111 1.423183 +v -0.833430 5.674111 1.443660 +v -0.790975 5.674111 1.476233 +v -0.758398 5.674111 1.518686 +v -0.737918 5.674111 1.568124 +v -0.730931 5.674111 1.621178 +v -0.737914 5.674111 1.674232 +v -0.935916 5.647125 1.621186 +v -0.935916 7.231124 -1.621186 +v -1.133918 7.204138 -1.568138 +v -1.113442 7.204138 -1.518699 +v -1.140901 7.204138 -1.621192 +v -1.133914 7.204138 -1.674246 +v -1.113434 7.204138 -1.723684 +v -1.080857 7.204138 -1.766137 +v -1.038402 7.204138 -1.798711 +v -0.988963 7.204138 -1.819188 +v -0.935909 7.204138 -1.826170 +v -0.882855 7.204138 -1.819184 +v -0.833417 7.204138 -1.798704 +v -0.790965 7.204138 -1.766127 +v -0.758390 7.204138 -1.723672 +v -0.737914 7.204138 -1.674233 +v -0.730932 7.204138 -1.621179 +v -0.737918 7.204138 -1.568125 +v -0.758397 7.204138 -1.518687 +v -0.790975 7.204138 -1.476234 +v -0.833430 7.204138 -1.443660 +v -0.882869 7.204138 -1.423184 +v -0.935923 7.204138 -1.416201 +v -0.988977 7.204138 -1.423187 +v -1.038415 7.204138 -1.443667 +v -1.080867 7.204138 -1.476244 +v -1.318427 7.125016 -1.518706 +v -1.278869 7.125016 -1.423198 +v -1.331916 7.125016 -1.621199 +v -1.318419 7.125016 -1.723691 +v -1.278855 7.125016 -1.819197 +v -1.215921 7.125016 -1.901209 +v -1.133904 7.125016 -1.964139 +v -1.038395 7.125016 -2.003695 +v -0.935902 7.125016 -2.017185 +v -0.833411 7.125016 -2.003688 +v -0.737904 7.125016 -1.964125 +v -0.655893 7.125016 -1.901190 +v -0.592963 7.125016 -1.819174 +v -0.553406 7.125016 -1.723665 +v -0.539916 7.125016 -1.621172 +v -0.553413 7.125016 -1.518680 +v -0.592977 7.125016 -1.423174 +v -0.655911 7.125016 -1.341161 +v -0.737928 7.125016 -1.278233 +v -0.833437 7.125016 -1.238675 +v -0.935929 7.125016 -1.225185 +v -1.038421 7.125016 -1.238682 +v -1.133928 7.125016 -1.278245 +v -1.215940 7.125016 -1.341181 +v -1.476867 6.999153 -1.476258 +v -1.420924 6.999153 -1.341188 +v -1.495945 6.999153 -1.621205 +v -1.476857 6.999153 -1.766150 +v -1.420906 6.999153 -1.901216 +v -1.331903 6.999153 -2.017199 +v -1.215913 6.999153 -2.106194 +v -1.080844 6.999153 -2.162136 +v -0.935897 6.999153 -2.181214 +v -0.790952 6.999153 -2.162126 +v -0.655885 6.999153 -2.106175 +v -0.539902 6.999153 -2.017172 +v -0.450908 6.999153 -1.901183 +v -0.394965 6.999153 -1.766113 +v -0.375888 6.999153 -1.621166 +v -0.394974 6.999153 -1.476221 +v -0.450926 6.999153 -1.341155 +v -0.539929 6.999153 -1.225172 +v -0.655919 6.999153 -1.136176 +v -0.790988 6.999153 -1.080234 +v -0.935934 6.999153 -1.061157 +v -1.080880 6.999153 -1.080244 +v -1.215946 6.999153 -1.136196 +v -1.331930 6.999153 -1.225199 +v -1.598443 6.835124 -1.443686 +v -1.529928 6.835124 -1.278260 +v -1.621808 6.835124 -1.621209 +v -1.598431 6.835124 -1.798730 +v -1.529905 6.835124 -1.964151 +v -1.420899 6.835124 -2.106201 +v -1.278841 6.835124 -2.215197 +v -1.113416 6.835124 -2.283712 +v -0.935893 6.835124 -2.307077 +v -0.758372 6.835124 -2.283700 +v -0.592949 6.835124 -2.215173 +v -0.450901 6.835124 -2.106169 +v -0.341905 6.835124 -1.964112 +v -0.273390 6.835124 -1.798685 +v -0.250025 6.835124 -1.621162 +v -0.273401 6.835124 -1.443642 +v -0.341927 6.835124 -1.278219 +v -0.450933 6.835124 -1.136170 +v -0.592990 6.835124 -1.027174 +v -0.758417 6.835124 -0.958659 +v -0.935939 6.835124 -0.935293 +v -1.113460 6.835124 -0.958670 +v -1.278882 6.835124 -1.027197 +v -1.420932 6.835124 -1.136203 +v -1.674869 6.644109 -1.423211 +v -1.598450 6.644109 -1.238701 +v -1.700929 6.644109 -1.621212 +v -1.674855 6.644109 -1.819211 +v -1.598424 6.644109 -2.003714 +v -1.476844 6.644109 -2.162150 +v -1.318400 6.644109 -2.283720 +v -1.133891 6.644109 -2.360138 +v -0.935890 6.644109 -2.386199 +v -0.737891 6.644109 -2.360124 +v -0.553387 6.644109 -2.283693 +v -0.394952 6.644109 -2.162114 +v -0.273383 6.644109 -2.003670 +v -0.196964 6.644109 -1.819160 +v -0.170903 6.644109 -1.621159 +v -0.196977 6.644109 -1.423161 +v -0.273407 6.644109 -1.238656 +v -0.394988 6.644109 -1.080221 +v -0.553432 6.644109 -0.958652 +v -0.737941 6.644109 -0.882232 +v -0.935941 6.644109 -0.856172 +v -1.133941 6.644109 -0.882246 +v -1.318445 6.644109 -0.958677 +v -1.476880 6.644109 -1.080257 +v -1.700936 6.439125 -1.416227 +v -1.621822 6.439125 -1.225209 +v -1.727916 6.439125 -1.621213 +v -1.700922 6.439125 -1.826196 +v -1.621795 6.439125 -2.017208 +v -1.495925 6.439125 -2.181233 +v -1.331892 6.439125 -2.307091 +v -1.140875 6.439125 -2.386206 +v -0.935889 6.439125 -2.413185 +v -0.730905 6.439125 -2.386192 +v -0.539892 6.439125 -2.307064 +v -0.375868 6.439125 -2.181195 +v -0.250011 6.439125 -2.017163 +v -0.170896 6.439125 -1.826144 +v -0.143916 6.439125 -1.621159 +v -0.170910 6.439125 -1.416175 +v -0.250037 6.439125 -1.225162 +v -0.375906 6.439125 -1.061138 +v -0.539939 6.439125 -0.935280 +v -0.730957 6.439125 -0.856165 +v -0.935943 6.439125 -0.829185 +v -1.140927 6.439125 -0.856179 +v -1.331939 6.439125 -0.935307 +v -1.495964 6.439125 -1.061176 +v -1.674869 6.234140 -1.423211 +v -1.598450 6.234140 -1.238701 +v -1.700929 6.234140 -1.621212 +v -1.674856 6.234140 -1.819210 +v -1.598424 6.234140 -2.003714 +v -1.476844 6.234140 -2.162150 +v -1.318400 6.234140 -2.283720 +v -1.133891 6.234140 -2.360138 +v -0.935890 6.234140 -2.386199 +v -0.737891 6.234140 -2.360124 +v -0.553387 6.234140 -2.283693 +v -0.394952 6.234140 -2.162114 +v -0.273383 6.234140 -2.003670 +v -0.196964 6.234140 -1.819160 +v -0.170902 6.234140 -1.621160 +v -0.196976 6.234140 -1.423160 +v -0.273407 6.234140 -1.238656 +v -0.394988 6.234140 -1.080221 +v -0.553432 6.234140 -0.958651 +v -0.737941 6.234140 -0.882232 +v -0.935942 6.234140 -0.856172 +v -1.133941 6.234140 -0.882246 +v -1.318445 6.234140 -0.958677 +v -1.476880 6.234140 -1.080257 +v -1.598443 6.043124 -1.443686 +v -1.529928 6.043124 -1.278260 +v -1.621808 6.043124 -1.621209 +v -1.598432 6.043124 -1.798730 +v -1.529905 6.043124 -1.964152 +v -1.420899 6.043124 -2.106201 +v -1.278841 6.043124 -2.215197 +v -1.113416 6.043124 -2.283712 +v -0.935892 6.043124 -2.307078 +v -0.758372 6.043124 -2.283701 +v -0.592950 6.043124 -2.215174 +v -0.450901 6.043124 -2.106169 +v -0.341905 6.043124 -1.964112 +v -0.273390 6.043124 -1.798685 +v -0.250023 6.043124 -1.621162 +v -0.273401 6.043124 -1.443641 +v -0.341927 6.043124 -1.278219 +v -0.450933 6.043124 -1.136170 +v -0.592990 6.043124 -1.027174 +v -0.758416 6.043124 -0.958658 +v -0.935939 6.043124 -0.935293 +v -1.113460 6.043124 -0.958670 +v -1.278882 6.043124 -1.027196 +v -1.420931 6.043124 -1.136202 +v -1.476867 5.879096 -1.476258 +v -1.420925 5.879096 -1.341187 +v -1.495945 5.879096 -1.621205 +v -1.476858 5.879096 -1.766150 +v -1.420906 5.879096 -1.901217 +v -1.331903 5.879096 -2.017199 +v -1.215914 5.879096 -2.106194 +v -1.080844 5.879096 -2.162137 +v -0.935897 5.879096 -2.181214 +v -0.790951 5.879096 -2.162127 +v -0.655885 5.879096 -2.106175 +v -0.539902 5.879096 -2.017172 +v -0.450907 5.879096 -1.901183 +v -0.394964 5.879096 -1.766113 +v -0.375887 5.879096 -1.621167 +v -0.394974 5.879096 -1.476221 +v -0.450926 5.879096 -1.341155 +v -0.539929 5.879096 -1.225172 +v -0.655919 5.879096 -1.136176 +v -0.790988 5.879096 -1.080234 +v -0.935935 5.879096 -1.061156 +v -1.080880 5.879096 -1.080244 +v -1.215947 5.879096 -1.136195 +v -1.331930 5.879096 -1.225199 +v -1.318427 5.753232 -1.518706 +v -1.278869 5.753232 -1.423198 +v -1.331917 5.753232 -1.621199 +v -1.318420 5.753232 -1.723691 +v -1.278855 5.753232 -1.819197 +v -1.215922 5.753232 -1.901210 +v -1.133904 5.753232 -1.964139 +v -1.038396 5.753232 -2.003696 +v -0.935902 5.753232 -2.017185 +v -0.833411 5.753232 -2.003689 +v -0.737904 5.753232 -1.964125 +v -0.655892 5.753232 -1.901191 +v -0.592963 5.753232 -1.819174 +v -0.553406 5.753232 -1.723665 +v -0.539915 5.753232 -1.621172 +v -0.553413 5.753232 -1.518680 +v -0.592976 5.753232 -1.423174 +v -0.655911 5.753232 -1.341161 +v -0.737928 5.753232 -1.278232 +v -0.833437 5.753232 -1.238675 +v -0.935930 5.753232 -1.225185 +v -1.038421 5.753232 -1.238682 +v -1.133928 5.753232 -1.278245 +v -1.215940 5.753232 -1.341180 +v -1.133918 5.674111 -1.568139 +v -1.113442 5.674111 -1.518699 +v -1.140901 5.674111 -1.621192 +v -1.133915 5.674111 -1.674246 +v -1.113435 5.674111 -1.723684 +v -1.080857 5.674111 -1.766137 +v -1.038403 5.674111 -1.798711 +v -0.988963 5.674111 -1.819188 +v -0.935909 5.674111 -1.826170 +v -0.882855 5.674111 -1.819184 +v -0.833418 5.674111 -1.798705 +v -0.790965 5.674111 -1.766127 +v -0.758390 5.674111 -1.723672 +v -0.737913 5.674111 -1.674233 +v -0.730931 5.674111 -1.621178 +v -0.737917 5.674111 -1.568125 +v -0.758397 5.674111 -1.518687 +v -0.790975 5.674111 -1.476233 +v -0.833430 5.674111 -1.443660 +v -0.882869 5.674111 -1.423183 +v -0.935923 5.674111 -1.416200 +v -0.988977 5.674111 -1.423187 +v -1.038415 5.674111 -1.443667 +v -1.080867 5.674111 -1.476244 +v -0.935916 5.647125 -1.621186 +v -0.190840 5.515944 -0.247657 +v -0.243367 5.517920 -0.235939 +v -0.261354 5.488284 -0.267095 +v -0.208826 5.486310 -0.278812 +v -0.173079 5.486310 -0.299449 +v -0.155093 5.515944 -0.268294 +v -0.228850 5.582496 -0.210793 +v -0.139581 5.583405 -0.241425 +v -0.233466 5.666270 -0.218788 +v -0.144205 5.670815 -0.249435 +v -0.255802 5.742265 -0.257478 +v -0.167363 5.750560 -0.289548 +v -0.297788 5.792035 -0.330207 +v -0.211060 5.803005 -0.365240 +v -0.343482 5.797686 -0.409358 +v -0.258901 5.809513 -0.448111 +v -0.486318 5.676223 -0.655443 +v -0.405936 5.684768 -0.702802 +v -0.517488 5.659646 -0.709435 +v -0.437105 5.668191 -0.756794 +v -0.571735 5.679368 -0.802186 +v -0.542081 5.656149 -0.753369 +v -0.461677 5.665982 -0.799357 +v -0.489236 5.692117 -0.847093 +v -0.572927 5.695159 -0.804252 +v -0.490428 5.707908 -0.849159 +v -0.591090 5.686442 -0.844394 +v -0.575502 5.701816 -0.817393 +v -0.498818 5.708117 -0.863693 +v -0.514406 5.692743 -0.890693 +v -0.606256 5.640802 -0.864248 +v -0.600253 5.667114 -0.853850 +v -0.525201 5.671900 -0.909393 +v -0.531203 5.645587 -0.919790 +v -0.604916 5.591613 -0.862565 +v -0.530623 5.594168 -0.918785 +v -0.588219 5.544410 -0.833204 +v -0.515060 5.543750 -0.891826 +v -0.551621 5.518014 -0.769893 +v -0.477914 5.514775 -0.827483 +v -0.553208 5.442576 -0.771806 +v -0.545999 5.489536 -0.759319 +v -0.470734 5.485821 -0.815044 +v -0.477942 5.438861 -0.827531 +v -0.553757 5.360417 -0.773593 +v -0.477973 5.355863 -0.827584 +v -0.535240 5.306975 -0.741518 +v -0.458816 5.299571 -0.794401 +v -0.501877 5.281743 -0.683728 +v -0.424066 5.272824 -0.734208 +v -0.462811 5.285222 -0.619590 +v -0.382114 5.278866 -0.661537 +v -0.470074 5.311057 -0.628639 +v -0.461690 5.295666 -0.614116 +v -0.375516 5.290197 -0.650110 +v -0.383901 5.305588 -0.664634 +v -0.479111 5.360498 -0.644293 +v -0.393471 5.357014 -0.681211 +v -0.473747 5.426218 -0.635001 +v -0.388052 5.425636 -0.671824 +v -0.445369 5.495645 -0.585845 +v -0.358659 5.498289 -0.620911 +v -0.423046 5.539909 -0.544138 +v -0.335433 5.539687 -0.580678 +v -0.402936 5.471096 -0.512342 +v -0.405018 5.520258 -0.515948 +v -0.329649 5.522835 -0.570658 +v -0.327567 5.473672 -0.567053 +v -0.384342 5.362035 -0.480091 +v -0.308249 5.359894 -0.533591 +v -0.354674 5.287212 -0.426508 +v -0.368975 5.316366 -0.451280 +v -0.295007 5.315586 -0.510652 +v -0.280706 5.286431 -0.485881 +v -0.374991 5.265692 -0.461581 +v -0.356747 5.267126 -0.429978 +v -0.282678 5.271138 -0.489296 +v -0.300922 5.269704 -0.520898 +v -0.403070 5.225375 -0.513521 +v -0.391191 5.253418 -0.492945 +v -0.315984 5.254966 -0.546988 +v -0.327862 5.226924 -0.567564 +v -0.389142 5.146736 -0.489853 +v -0.402979 5.194917 -0.513821 +v -0.326883 5.188813 -0.565868 +v -0.313047 5.140632 -0.541901 +v -0.343356 5.109948 -0.409139 +v -0.371460 5.122450 -0.457820 +v -0.292077 5.110291 -0.505577 +v -0.263973 5.097790 -0.456896 +v -0.279875 5.179461 -0.299573 +v -0.319359 5.118040 -0.367904 +v -0.237305 5.106178 -0.410702 +v -0.194744 5.170083 -0.336978 +v -0.268798 5.259162 -0.279990 +v -0.182183 5.254062 -0.315219 +v -0.281731 5.356741 -0.302429 +v -0.196221 5.356647 -0.339536 +v -0.300316 5.417790 -0.334622 +v -0.214805 5.417697 -0.371727 +v -0.271645 5.469887 -0.291056 +v -0.292658 5.458251 -0.327454 +v -0.213591 5.454040 -0.369624 +v -0.192578 5.465675 -0.333227 +v -0.296826 5.533141 -0.286469 +v -0.286707 5.534671 -0.309898 +v -0.292985 5.504072 -0.320772 +v -0.307646 5.501982 -0.305212 +v -0.292762 5.537968 -0.322346 +v -0.319607 5.538089 -0.327890 +v -0.325063 5.520028 -0.337341 +v -0.299040 5.507370 -0.333220 +v -0.318430 5.465744 -0.372094 +v -0.304354 5.457216 -0.347713 +v -0.316096 5.475670 -0.327095 +v -0.397028 5.483232 -0.439979 +v -0.398660 5.538704 -0.442806 +v -0.410370 5.515820 -0.463091 +v -0.408673 5.475719 -0.460150 +v -0.381025 5.217666 -0.412258 +v -0.362534 5.186327 -0.380229 +v -0.330125 5.233723 -0.324091 +v -0.355705 5.262099 -0.387217 +v -0.546223 5.324542 -0.719585 +v -0.516395 5.301105 -0.667917 +v -0.517817 5.315813 -0.649208 +v -0.535706 5.339489 -0.680196 +v -0.588197 5.657892 -0.789743 +v -0.595820 5.668571 -0.802949 +v -0.607675 5.651269 -0.804861 +v -0.606498 5.634236 -0.802821 +v -0.522819 5.511280 -0.657873 +v -0.499943 5.561415 -0.618248 +v -0.508335 5.613324 -0.632784 +v -0.546169 5.588543 -0.698319 +v -0.592421 5.590698 -0.778437 +v -0.581375 5.556879 -0.759304 +v -0.566938 5.572126 -0.734296 +v -0.561544 5.448348 -0.745288 +v -0.562532 5.373504 -0.747835 +v -0.550857 5.368674 -0.706441 +v -0.544711 5.424644 -0.695794 +v -0.300127 5.608974 -0.272129 +v -0.265722 5.577381 -0.233704 +v -0.269503 5.652568 -0.240252 +v -0.304721 5.657471 -0.280085 +v -0.310735 5.503573 -0.290503 +v -0.297990 5.531240 -0.268426 +v -0.374076 5.662285 -0.419520 +v -0.351965 5.666801 -0.381893 +v -0.352606 5.715039 -0.363032 +v -0.372833 5.719302 -0.398069 +v -0.327190 5.412295 -0.340212 +v -0.312418 5.362868 -0.314624 +v -0.300067 5.274145 -0.293195 +v -0.305950 5.201977 -0.303782 +v -0.337957 5.144361 -0.359158 +v -0.361952 5.136270 -0.400392 +v -0.384875 5.146466 -0.440099 +v -0.402558 5.170753 -0.472132 +v -0.409156 5.197310 -0.483560 +v -0.409247 5.227768 -0.483260 +v -0.400771 5.243670 -0.468579 +v -0.384570 5.255943 -0.437216 +v -0.353633 5.282185 -0.383746 +v -0.379358 5.325606 -0.428306 +v -0.394726 5.371274 -0.457117 +v -0.410825 5.470294 -0.485049 +v -0.412522 5.510393 -0.487989 +v -0.379911 5.592010 -0.473217 +v -0.398224 5.557381 -0.504938 +v -0.405728 5.547515 -0.476980 +v -0.394017 5.570402 -0.456695 +v -0.349243 5.625658 -0.419337 +v -0.366300 5.601588 -0.407924 +v -0.296569 5.604552 -0.329733 +v -0.332020 5.629180 -0.390466 +v -0.349076 5.605110 -0.379054 +v -0.322738 5.583147 -0.334107 +v -0.331195 5.474578 -0.385716 +v -0.314199 5.486594 -0.356276 +v -0.340224 5.499254 -0.360395 +v -0.364578 5.473194 -0.402582 +v -0.318796 5.450655 -0.364612 +v -0.332871 5.459183 -0.388993 +v -0.366254 5.457798 -0.405860 +v -0.345669 5.445159 -0.370202 +v -0.308488 5.628274 -0.305646 +v -0.291844 5.612298 -0.317776 +v -0.331628 5.648447 -0.387623 +v -0.387359 5.603806 -0.484801 +v -0.353738 5.643930 -0.425250 +v -0.413076 5.612260 -0.488390 +v -0.405672 5.569179 -0.516522 +v -0.430359 5.578382 -0.518327 +v -0.447733 5.549114 -0.545942 +v -0.478201 5.486811 -0.601758 +v -0.503262 5.424101 -0.645167 +v -0.507739 5.365025 -0.652924 +v -0.499364 5.320957 -0.638416 +v -0.492525 5.308403 -0.626569 +v -0.493647 5.297959 -0.632044 +v -0.498908 5.297311 -0.641156 +v -0.552243 5.497252 -0.729176 +v -0.557864 5.525727 -0.739749 +v -0.590487 5.550106 -0.796172 +v -0.609642 5.590175 -0.829790 +v -0.612828 5.632510 -0.834673 +v -0.607558 5.655898 -0.825545 +v -0.598394 5.675226 -0.816090 +v -0.561857 5.636914 -0.746666 +v -0.537264 5.640411 -0.702732 +v -0.499874 5.662618 -0.637965 +v -0.368061 5.773489 -0.410975 +v -0.326742 5.767262 -0.339402 +v -0.289270 5.721624 -0.274494 +v -0.279439 5.519274 -0.257463 +v -0.294109 5.495102 -0.282875 +v -0.304400 5.476707 -0.306835 +v -0.317456 5.472592 -0.370408 +v -0.315123 5.482518 -0.325409 +v -0.300460 5.484608 -0.340968 +v -0.508678 5.311946 -0.633378 +v -0.372331 5.494235 -0.397199 +v -0.347977 5.520294 -0.355013 +v -0.342521 5.538355 -0.345562 +v -0.346793 5.555797 -0.352962 +v -0.370803 5.570638 -0.394553 +v -0.382220 5.504280 -0.414330 +v -0.394518 5.235818 -0.435631 +v -0.402993 5.219917 -0.450312 +v -0.538100 5.463790 -0.684342 +v -0.342496 5.376470 -0.345520 +v -0.357268 5.425898 -0.371107 +v -0.377853 5.438536 -0.406765 +v -0.389498 5.431025 -0.426936 +v -0.380014 5.349375 -0.410508 +v -0.354290 5.305954 -0.365948 +v -0.327455 5.273817 -0.319466 +v -0.475595 5.605947 -0.576072 +v -0.155791 5.282185 -0.497961 +v -0.140050 5.305954 -0.489630 +v -0.113215 5.273817 -0.443148 +v -0.115885 5.233723 -0.447772 +v -0.157760 5.262099 -0.501491 +v -0.233969 5.578382 -0.631704 +v -0.249195 5.549114 -0.660559 +v -0.261355 5.605947 -0.699753 +v -0.244751 5.569179 -0.609422 +v -0.238444 5.557381 -0.597180 +v -0.244581 5.520258 -0.608569 +v -0.259978 5.539909 -0.638278 +v -0.303458 5.320957 -0.751513 +v -0.321466 5.339489 -0.803878 +v -0.311833 5.365025 -0.766021 +v -0.216686 5.612260 -0.601767 +v -0.158593 5.719302 -0.521750 +v -0.176548 5.662285 -0.533553 +v -0.167981 5.504280 -0.538011 +v -0.184420 5.538704 -0.566488 +v -0.156563 5.570638 -0.518234 +v -0.285703 5.561415 -0.741930 +v -0.294095 5.613324 -0.756465 +v -0.294438 5.311946 -0.757060 +v -0.296619 5.308403 -0.739666 +v -0.300799 5.297959 -0.743376 +v -0.323860 5.463790 -0.808024 +v -0.308579 5.511280 -0.781555 +v -0.307356 5.424101 -0.758264 +v -0.191680 5.643930 -0.518806 +v -0.170152 5.648447 -0.480843 +v -0.172418 5.629180 -0.482604 +v -0.188807 5.625658 -0.511957 +v -0.170394 5.601588 -0.521021 +v -0.154006 5.605110 -0.491668 +v -0.165774 5.349375 -0.534189 +v -0.181516 5.325606 -0.542521 +v -0.198780 5.371274 -0.570237 +v -0.180278 5.235818 -0.559312 +v -0.205683 5.243670 -0.581204 +v -0.186625 5.255943 -0.551490 +v -0.188753 5.219917 -0.573994 +v -0.214464 5.197310 -0.595956 +v -0.214159 5.227768 -0.595885 +v -0.148294 5.186327 -0.503911 +v -0.188969 5.146466 -0.553196 +v -0.207866 5.170753 -0.584528 +v -0.166785 5.217666 -0.535940 +v -0.142337 5.144361 -0.472090 +v -0.166046 5.136270 -0.513489 +v -0.143028 5.425898 -0.494789 +v -0.148045 5.445159 -0.484291 +v -0.131314 5.412295 -0.453292 +v -0.397708 5.668571 -0.917320 +v -0.393435 5.651269 -0.928542 +v -0.411406 5.655898 -0.938784 +v -0.407801 5.675226 -0.926120 +v -0.163613 5.438536 -0.530446 +v -0.182788 5.483232 -0.563660 +v -0.158091 5.494235 -0.520881 +v -0.166629 5.473194 -0.516859 +v -0.168630 5.457798 -0.519949 +v -0.210480 5.547515 -0.589697 +v -0.196130 5.515820 -0.586772 +v -0.216616 5.510393 -0.601086 +v -0.162331 5.472592 -0.459963 +v -0.163304 5.465744 -0.461649 +v -0.170717 5.459183 -0.482605 +v -0.168717 5.474578 -0.479515 +v -0.133737 5.520294 -0.478694 +v -0.129891 5.520028 -0.450014 +v -0.142274 5.499254 -0.474672 +v -0.124529 5.482518 -0.435439 +v -0.110778 5.501982 -0.418866 +v -0.096495 5.503573 -0.414184 +v -0.098203 5.495102 -0.395972 +v -0.113806 5.476707 -0.416865 +v -0.125503 5.475670 -0.437126 +v -0.145335 5.484608 -0.430523 +v -0.151721 5.486594 -0.450075 +v -0.139336 5.507370 -0.425418 +v -0.131584 5.504072 -0.413950 +v -0.355613 5.497252 -0.842691 +v -0.361958 5.525727 -0.852847 +v -0.352698 5.572126 -0.857978 +v -0.331929 5.588543 -0.822001 +v -0.116542 5.362868 -0.427705 +v -0.128256 5.376470 -0.469202 +v -0.100918 5.488284 -0.359716 +v -0.116521 5.469887 -0.380609 +v -0.365951 5.636914 -0.859763 +v -0.381645 5.656149 -0.845989 +v -0.355897 5.659646 -0.802723 +v -0.340203 5.640411 -0.816496 +v -0.420377 5.701816 -0.906947 +v -0.410284 5.695159 -0.898146 +v -0.439571 5.667114 -0.946612 +v -0.435965 5.686442 -0.933949 +v -0.384839 5.489536 -0.852358 +v -0.391184 5.518014 -0.862513 +v -0.350317 5.324542 -0.832682 +v -0.366626 5.373504 -0.860932 +v -0.336617 5.368674 -0.830122 +v -0.301254 5.295666 -0.706737 +v -0.305434 5.285222 -0.710445 +v -0.303577 5.315813 -0.772890 +v -0.155020 5.666801 -0.495590 +v -0.128253 5.583147 -0.446384 +v -0.124435 5.538089 -0.440564 +v -0.128281 5.538355 -0.469244 +v -0.132553 5.555797 -0.476643 +v -0.133059 5.537968 -0.414544 +v -0.137552 5.604552 -0.421535 +v -0.129560 5.612298 -0.411464 +v -0.125306 5.534671 -0.403076 +v -0.198769 5.570402 -0.569412 +v -0.220131 5.592010 -0.565458 +v -0.226438 5.603806 -0.577701 +v -0.214919 5.470294 -0.598146 +v -0.194433 5.475719 -0.583832 +v -0.175258 5.431025 -0.550617 +v -0.206602 5.316366 -0.545018 +v -0.223868 5.362035 -0.572733 +v -0.194270 5.267126 -0.523776 +v -0.192302 5.287212 -0.520247 +v -0.231574 5.253418 -0.585092 +v -0.212515 5.265692 -0.555379 +v -0.243758 5.194917 -0.605739 +v -0.243453 5.225375 -0.605668 +v -0.211023 5.122450 -0.550440 +v -0.229922 5.146736 -0.581772 +v -0.159211 5.118040 -0.460359 +v -0.182920 5.109948 -0.501759 +v -0.110387 5.201977 -0.416681 +v -0.104161 5.274145 -0.406292 +v -0.139911 5.417790 -0.427224 +v -0.156642 5.450655 -0.458224 +v -0.282295 5.486811 -0.714855 +v -0.302813 5.662618 -0.751729 +v -0.172155 5.773489 -0.524072 +v -0.138366 5.715039 -0.486714 +v -0.130836 5.767262 -0.452499 +v -0.083750 5.531240 -0.392107 +v -0.083533 5.519274 -0.370560 +v -0.110732 5.628274 -0.419811 +v -0.085887 5.608974 -0.395810 +v -0.099957 5.533141 -0.400122 +v -0.090481 5.657471 -0.403767 +v -0.093365 5.721624 -0.387591 +v -0.073597 5.652568 -0.353349 +v -0.330471 5.424644 -0.819475 +v -0.367135 5.556879 -0.882986 +v -0.394507 5.550106 -0.909312 +v -0.378181 5.590698 -0.902118 +v -0.414041 5.590175 -0.942711 +v -0.392258 5.634236 -0.926503 +v -0.416676 5.632510 -0.947912 +v -0.390084 5.657892 -0.904114 +v -0.149229 5.457216 -0.437267 +v -0.137534 5.458251 -0.417007 +v -0.137331 5.486310 -0.320087 +v -0.069817 5.577381 -0.346801 +v -0.364914 5.448348 -0.858803 +v -0.306059 5.297311 -0.752488 +v -0.320489 5.301105 -0.781014 +v -0.082931 5.517920 -0.328560 +v -0.068414 5.582496 -0.303413 +v -0.073030 5.666270 -0.311409 +v -0.095365 5.742265 -0.350098 +v -0.137352 5.792035 -0.422827 +v -0.183046 5.797686 -0.501978 +v -0.324727 5.676223 -0.748730 +v -0.409092 5.679368 -0.896081 +v -0.445574 5.640802 -0.957010 +v -0.444787 5.591613 -0.955008 +v -0.427710 5.544410 -0.925866 +v -0.392047 5.442576 -0.864844 +v -0.393320 5.360417 -0.866213 +v -0.374803 5.306975 -0.834138 +v -0.341441 5.281743 -0.776348 +v -0.309638 5.311057 -0.721259 +v -0.318675 5.360498 -0.736913 +v -0.313311 5.426218 -0.727621 +v -0.284933 5.495645 -0.678465 +v -0.242500 5.471096 -0.604963 +v -0.119781 5.179461 -0.391995 +v -0.108362 5.259162 -0.372610 +v -0.121326 5.356741 -0.395032 +v -0.119345 5.515944 -0.288931 +v -0.398380 5.464243 -0.725755 +v -0.430247 5.464243 -0.707360 +v -0.734536 5.123801 -1.214485 +v -0.685573 5.123511 -1.243338 +v -0.796909 5.069855 -1.444054 +v -0.852920 5.069851 -1.411722 +v -0.920091 5.091953 -1.520123 +v -0.856606 5.091958 -1.556768 +v -0.913586 5.160743 -1.664493 +v -0.984510 5.160740 -1.623558 +v -0.951120 5.157276 -1.647598 +v -0.957939 5.269464 -1.750503 +v -1.036909 5.269464 -1.704926 +v -1.000252 5.267411 -1.732596 +v -0.975835 5.441407 -1.786544 +v -1.059114 5.441407 -1.738478 +v -1.020648 5.441407 -1.767989 +v -1.113416 5.441407 -1.792789 +v -0.995699 5.441407 -1.860732 +v -1.140566 5.479807 -1.819945 +v -1.005629 5.479807 -1.897825 +v -1.095316 5.531006 -1.774685 +v -0.989078 5.531006 -1.836003 +v -1.027439 5.569407 -1.706796 +v -0.964249 5.569407 -1.743269 +v -1.063639 5.595008 -1.743004 +v -0.977490 5.595008 -1.792728 +v -1.104366 5.665406 -1.783737 +v -0.992388 5.665406 -1.848366 +v -1.126991 5.665406 -1.806366 +v -1.000664 5.665406 -1.879278 +v -1.126991 5.697407 -1.806366 +v -1.000664 5.697407 -1.879278 +v -0.446690 5.470578 -0.701562 +v -0.461982 5.480661 -0.698612 +v -0.783824 5.148871 -1.201410 +v -0.898613 5.101691 -1.378865 +v -0.965900 5.123687 -1.472525 +v -1.030241 5.187052 -1.560951 +v -1.083870 5.285051 -1.628364 +v -1.107191 5.441407 -1.655226 +v -1.181372 5.441407 -1.675111 +v -1.218463 5.479807 -1.685053 +v -1.156646 5.531006 -1.668482 +v -1.063919 5.569407 -1.643627 +v -1.113374 5.595008 -1.656883 +v -1.169010 5.665406 -1.671797 +v -1.199917 5.665406 -1.680082 +v -1.199917 5.697407 -1.680082 +v -0.789177 5.077298 -1.304126 +v -0.838332 5.107703 -1.282147 +v -0.869656 5.160480 -1.274563 +v -0.921752 5.156838 -1.354278 +v -0.981772 5.178650 -1.426722 +v -1.038541 5.232628 -1.493445 +v -1.086259 5.312052 -1.541328 +v -1.107201 5.441407 -1.559090 +v -1.181387 5.441407 -1.539221 +v -1.218479 5.479807 -1.529285 +v -1.156659 5.531006 -1.545843 +v -1.063926 5.569407 -1.570679 +v -1.113384 5.595008 -1.557434 +v -1.169023 5.665406 -1.542532 +v -1.199933 5.665406 -1.534253 +v -1.199933 5.697407 -1.534253 +v -0.874906 5.221419 -1.283654 +v -0.916141 5.220516 -1.344552 +v -0.963454 5.242119 -1.394983 +v -1.007189 5.285254 -1.439125 +v -1.043437 5.343229 -1.467137 +v -1.059143 5.441407 -1.475827 +v -1.113456 5.441407 -1.421529 +v -1.140612 5.479807 -1.394378 +v -1.095351 5.531006 -1.439627 +v -1.027460 5.569407 -1.507502 +v -1.063669 5.595008 -1.471301 +v -1.104403 5.665406 -1.430577 +v -1.127033 5.665406 -1.407954 +v -1.127033 5.697407 -1.407954 +v -0.852675 5.274195 -1.306987 +v -0.883280 5.275664 -1.352291 +v -0.915854 5.297085 -1.385816 +v -0.944582 5.330832 -1.412547 +v -0.966877 5.370231 -1.425672 +v -0.975892 5.441407 -1.427749 +v -0.995778 5.441407 -1.353568 +v -1.005722 5.479807 -1.316478 +v -0.989150 5.531006 -1.378294 +v -0.964291 5.569407 -1.471022 +v -0.977549 5.595008 -1.421566 +v -0.992464 5.665406 -1.365932 +v -1.000750 5.665406 -1.335022 +v -1.000750 5.697407 -1.335022 +v -0.809206 5.304605 -1.338784 +v -0.831975 5.307508 -1.375422 +v -0.851728 5.328821 -1.401674 +v -0.867498 5.357145 -1.420831 +v -0.877092 5.385822 -1.428041 +v -0.879755 5.441407 -1.427736 +v -0.859888 5.441407 -1.353550 +v -0.849955 5.479807 -1.316456 +v -0.866511 5.531006 -1.378278 +v -0.891344 5.569407 -1.471010 +v -0.927819 5.569407 -1.466213 +v -0.878099 5.595008 -1.421553 +v -0.863198 5.665406 -1.365914 +v -0.854921 5.665406 -1.335005 +v -0.854921 5.697407 -1.335005 +v -0.755362 5.304673 -1.369219 +v -0.775972 5.307511 -1.407747 +v -0.788254 5.328824 -1.438312 +v -0.796588 5.357148 -1.461758 +v -0.798139 5.385825 -1.473610 +v -0.796490 5.441407 -1.475793 +v -0.742193 5.441407 -1.421479 +v -0.715044 5.479807 -1.394323 +v -0.760293 5.531006 -1.439584 +v -0.828165 5.569407 -1.507477 +v -0.791967 5.595008 -1.471266 +v -0.751243 5.665406 -1.430531 +v -0.728618 5.665406 -1.407900 +v -0.728618 5.697407 -1.407900 +v -0.706357 5.274205 -1.391448 +v -0.730279 5.275675 -1.440605 +v -0.742443 5.297095 -1.485909 +v -0.750855 5.330838 -1.524364 +v -0.751173 5.370237 -1.550168 +v -0.769616 5.379807 -1.509160 +v -0.748410 5.441407 -1.559041 +v -0.674230 5.441407 -1.539153 +v -0.637140 5.479807 -1.529208 +v -0.698957 5.531006 -1.545782 +v -0.791682 5.569407 -1.570644 +v -0.742229 5.595008 -1.557386 +v -0.686594 5.665406 -1.542468 +v -0.655687 5.665406 -1.534181 +v -0.655687 5.697407 -1.534181 +v -0.429326 5.586796 -0.779343 +v -0.397591 5.570380 -0.788089 +v -0.684352 5.287472 -1.339637 +v -0.733378 5.312833 -1.326123 +v -0.648650 5.243540 -1.334631 +v -0.675030 5.221431 -1.399032 +v -0.707136 5.220531 -1.465191 +v -0.726568 5.242130 -1.531714 +v -0.742550 5.285265 -1.591869 +v -0.748779 5.343235 -1.637205 +v -0.748396 5.441407 -1.655179 +v -0.674209 5.441407 -1.675043 +v -0.637117 5.479807 -1.684978 +v -0.698938 5.531006 -1.668422 +v -0.791670 5.569407 -1.643591 +v -0.742214 5.595008 -1.656834 +v -0.686574 5.665406 -1.671732 +v -0.655662 5.665406 -1.680011 +v -0.655662 5.697407 -1.680011 +v -0.635842 5.192812 -1.312450 +v -0.669776 5.160491 -1.389942 +v -0.712747 5.156850 -1.474922 +v -0.744882 5.178664 -1.563453 +v -0.773897 5.232639 -1.646192 +v -0.791597 5.312058 -1.711398 +v -0.796449 5.441407 -1.738443 +v -0.742135 5.441407 -1.792739 +v -0.714976 5.479807 -1.819889 +v -0.760240 5.531006 -1.774641 +v -0.828134 5.569407 -1.706770 +v -0.791923 5.595008 -1.742968 +v -0.751187 5.665406 -1.783690 +v -0.728556 5.665406 -1.806314 +v -0.728556 5.697407 -1.806314 +v -0.649356 5.148880 -1.279036 +v -0.692005 5.107712 -1.366613 +v -0.745605 5.101700 -1.467185 +v -0.792479 5.123696 -1.572623 +v -0.836501 5.187061 -1.672774 +v -0.868155 5.285056 -1.752868 +v -0.879698 5.441407 -1.786525 +v -0.859808 5.441407 -1.860707 +v -0.849863 5.479807 -1.897795 +v -0.866438 5.531006 -1.835980 +v -0.891301 5.569407 -1.743255 +v -0.878041 5.595008 -1.792708 +v -0.863123 5.665406 -1.848343 +v -0.854835 5.665406 -1.879251 +v -0.854835 5.697407 -1.879251 +v -0.735759 5.077236 -1.335295 +v -0.927774 5.569407 -1.748064 +v -0.374937 5.480664 -0.748860 +v -0.366189 5.509104 -0.770491 +v -0.374480 5.541945 -0.784849 +v -0.783124 5.312378 -1.298597 +v -0.461185 5.586796 -0.760950 +v -0.818813 5.287462 -1.262015 +v -0.484630 5.570374 -0.737844 +v -0.832330 5.243531 -1.228599 +v -0.493380 5.541935 -0.716213 +v -0.819524 5.192803 -1.206417 +v -0.485091 5.509098 -0.701854 +v -0.119037 5.515944 0.289109 +v -0.082623 5.517920 0.328738 +v -0.100609 5.488284 0.359894 +v -0.137023 5.486310 0.320264 +v -0.172770 5.486310 0.299627 +v -0.154784 5.515944 0.268472 +v -0.068106 5.582496 0.303591 +v -0.139273 5.583405 0.241603 +v -0.072721 5.666270 0.311587 +v -0.143897 5.670815 0.249613 +v -0.095057 5.742265 0.350276 +v -0.167054 5.750560 0.289726 +v -0.137044 5.792035 0.423005 +v -0.210752 5.803005 0.365418 +v -0.182738 5.797686 0.502156 +v -0.258593 5.809513 0.448289 +v -0.324419 5.676223 0.748908 +v -0.405627 5.684768 0.702980 +v -0.355589 5.659646 0.802901 +v -0.436797 5.668191 0.756972 +v -0.408784 5.679368 0.896259 +v -0.381337 5.656149 0.846167 +v -0.461369 5.665982 0.799535 +v -0.488927 5.692117 0.847271 +v -0.409976 5.695159 0.898324 +v -0.490120 5.707908 0.849337 +v -0.435656 5.686442 0.934127 +v -0.420068 5.701816 0.907125 +v -0.498510 5.708117 0.863871 +v -0.514098 5.692743 0.890871 +v -0.445265 5.640802 0.957188 +v -0.439263 5.667114 0.946790 +v -0.524893 5.671900 0.909571 +v -0.530895 5.645587 0.919968 +v -0.444478 5.591613 0.955186 +v -0.530315 5.594168 0.918963 +v -0.427402 5.544410 0.926044 +v -0.514752 5.543750 0.892004 +v -0.390876 5.518014 0.862691 +v -0.477606 5.514775 0.827661 +v -0.391739 5.442576 0.865022 +v -0.384531 5.489536 0.852536 +v -0.470425 5.485821 0.815222 +v -0.477634 5.438861 0.827709 +v -0.393012 5.360417 0.866391 +v -0.477664 5.355863 0.827762 +v -0.374495 5.306975 0.834316 +v -0.458508 5.299571 0.794579 +v -0.341133 5.281743 0.776526 +v -0.423758 5.272824 0.734386 +v -0.305125 5.285222 0.710622 +v -0.381805 5.278866 0.661715 +v -0.309330 5.311057 0.721437 +v -0.300946 5.295666 0.706915 +v -0.375208 5.290197 0.650288 +v -0.383593 5.305588 0.664812 +v -0.318367 5.360498 0.737091 +v -0.393163 5.357014 0.681389 +v -0.313002 5.426218 0.727799 +v -0.387744 5.425636 0.672002 +v -0.284625 5.495645 0.678643 +v -0.358351 5.498289 0.621089 +v -0.259670 5.539909 0.638456 +v -0.335124 5.539687 0.580856 +v -0.242191 5.471096 0.605141 +v -0.244273 5.520258 0.608747 +v -0.329340 5.522835 0.570836 +v -0.327259 5.473672 0.567231 +v -0.223560 5.362035 0.572911 +v -0.307941 5.359894 0.533769 +v -0.191993 5.287212 0.520425 +v -0.206294 5.316366 0.545196 +v -0.294698 5.315586 0.510830 +v -0.280398 5.286431 0.486059 +v -0.212206 5.265692 0.555557 +v -0.193962 5.267126 0.523954 +v -0.282370 5.271138 0.489474 +v -0.300614 5.269704 0.521076 +v -0.243145 5.225375 0.605846 +v -0.231266 5.253418 0.585270 +v -0.315675 5.254966 0.547166 +v -0.327554 5.226924 0.567742 +v -0.229613 5.146736 0.581950 +v -0.243450 5.194917 0.605917 +v -0.326575 5.188813 0.566046 +v -0.312739 5.140632 0.542079 +v -0.182611 5.109948 0.501937 +v -0.210715 5.122450 0.550618 +v -0.291769 5.110291 0.505755 +v -0.263665 5.097790 0.457074 +v -0.119473 5.179461 0.392173 +v -0.158903 5.118040 0.460537 +v -0.236997 5.106178 0.410880 +v -0.194436 5.170083 0.337156 +v -0.108053 5.259162 0.372788 +v -0.181874 5.254062 0.315397 +v -0.121018 5.356741 0.395210 +v -0.195912 5.356647 0.339714 +v -0.139603 5.417790 0.427402 +v -0.214497 5.417697 0.371905 +v -0.116213 5.469887 0.380787 +v -0.137225 5.458251 0.417185 +v -0.213282 5.454040 0.369802 +v -0.192270 5.465675 0.333405 +v -0.099648 5.533141 0.400300 +v -0.124998 5.534671 0.403254 +v -0.131276 5.504072 0.414128 +v -0.110469 5.501982 0.419044 +v -0.132750 5.537968 0.414722 +v -0.124127 5.538089 0.440742 +v -0.129583 5.520028 0.450192 +v -0.139028 5.507370 0.425596 +v -0.162996 5.465744 0.461827 +v -0.148920 5.457216 0.437445 +v -0.125194 5.475670 0.437304 +v -0.182479 5.483232 0.563838 +v -0.184112 5.538704 0.566666 +v -0.195822 5.515820 0.586950 +v -0.194125 5.475719 0.584010 +v -0.166476 5.217666 0.536118 +v -0.147986 5.186327 0.504089 +v -0.115577 5.233723 0.447950 +v -0.157452 5.262099 0.501669 +v -0.350009 5.324542 0.832860 +v -0.320181 5.301105 0.781192 +v -0.303268 5.315813 0.773068 +v -0.321158 5.339489 0.804056 +v -0.389776 5.657892 0.904292 +v -0.397399 5.668571 0.917498 +v -0.393127 5.651269 0.928720 +v -0.391950 5.634236 0.926681 +v -0.308271 5.511280 0.781733 +v -0.285395 5.561415 0.742108 +v -0.293787 5.613324 0.756643 +v -0.331620 5.588543 0.822179 +v -0.377872 5.590698 0.902296 +v -0.366827 5.556879 0.883164 +v -0.352390 5.572126 0.858156 +v -0.364606 5.448348 0.858981 +v -0.366318 5.373504 0.861110 +v -0.336309 5.368674 0.830300 +v -0.330162 5.424644 0.819653 +v -0.085579 5.608974 0.395988 +v -0.069508 5.577381 0.346979 +v -0.073289 5.652568 0.353527 +v -0.090172 5.657471 0.403945 +v -0.096187 5.503573 0.414362 +v -0.083441 5.531240 0.392285 +v -0.176240 5.662285 0.533731 +v -0.154712 5.666801 0.495768 +v -0.138058 5.715039 0.486892 +v -0.158285 5.719302 0.521928 +v -0.131005 5.412295 0.453470 +v -0.116234 5.362868 0.427883 +v -0.103853 5.274145 0.406470 +v -0.110079 5.201977 0.416859 +v -0.142028 5.144361 0.472268 +v -0.165738 5.136270 0.513667 +v -0.188661 5.146466 0.553374 +v -0.207558 5.170753 0.584706 +v -0.214156 5.197310 0.596134 +v -0.213850 5.227768 0.596063 +v -0.205375 5.243670 0.581382 +v -0.186317 5.255943 0.551668 +v -0.155482 5.282185 0.498139 +v -0.181207 5.325606 0.542699 +v -0.198472 5.371274 0.570415 +v -0.214610 5.470294 0.598324 +v -0.216308 5.510393 0.601264 +v -0.219823 5.592010 0.565636 +v -0.238136 5.557381 0.597358 +v -0.210172 5.547515 0.589875 +v -0.198461 5.570402 0.569590 +v -0.188499 5.625658 0.512135 +v -0.170086 5.601588 0.521199 +v -0.137243 5.604552 0.421713 +v -0.172110 5.629180 0.482782 +v -0.153698 5.605110 0.491846 +v -0.127944 5.583147 0.446562 +v -0.168409 5.474578 0.479693 +v -0.151413 5.486594 0.450253 +v -0.141966 5.499254 0.474850 +v -0.166320 5.473194 0.517037 +v -0.156333 5.450655 0.458402 +v -0.170408 5.459183 0.482783 +v -0.168322 5.457798 0.520127 +v -0.147736 5.445159 0.484469 +v -0.110424 5.628274 0.419989 +v -0.129251 5.612298 0.411642 +v -0.169844 5.648447 0.481021 +v -0.226130 5.603806 0.577879 +v -0.191372 5.643930 0.518984 +v -0.216377 5.612260 0.601945 +v -0.244443 5.569179 0.609600 +v -0.233660 5.578382 0.631882 +v -0.248886 5.549114 0.660737 +v -0.281987 5.486811 0.715033 +v -0.307047 5.424101 0.758442 +v -0.311525 5.365025 0.766199 +v -0.303150 5.320957 0.751691 +v -0.296311 5.308403 0.739844 +v -0.300490 5.297959 0.743554 +v -0.305751 5.297311 0.752666 +v -0.355304 5.497252 0.842869 +v -0.361650 5.525727 0.853025 +v -0.394198 5.550106 0.909490 +v -0.413732 5.590175 0.942889 +v -0.416368 5.632510 0.948090 +v -0.411098 5.655898 0.938962 +v -0.407493 5.675226 0.926298 +v -0.365643 5.636914 0.859941 +v -0.339895 5.640411 0.816674 +v -0.302504 5.662618 0.751907 +v -0.171847 5.773489 0.524250 +v -0.130528 5.767262 0.452677 +v -0.093056 5.721624 0.387769 +v -0.083224 5.519274 0.370738 +v -0.097895 5.495102 0.396150 +v -0.113498 5.476707 0.417043 +v -0.162023 5.472592 0.460141 +v -0.124221 5.482518 0.435617 +v -0.145027 5.484608 0.430701 +v -0.294130 5.311946 0.757238 +v -0.157783 5.494235 0.521059 +v -0.133428 5.520294 0.478872 +v -0.127973 5.538355 0.469422 +v -0.132244 5.555797 0.476821 +v -0.156255 5.570638 0.518412 +v -0.167672 5.504280 0.538189 +v -0.179969 5.235818 0.559490 +v -0.188445 5.219917 0.574172 +v -0.323551 5.463790 0.808201 +v -0.127948 5.376470 0.469380 +v -0.142720 5.425898 0.494967 +v -0.163305 5.438536 0.530624 +v -0.174950 5.431025 0.550795 +v -0.165466 5.349375 0.534367 +v -0.139741 5.305954 0.489808 +v -0.112907 5.273817 0.443326 +v -0.261047 5.605947 0.699931 +v -0.353325 5.282185 0.383924 +v -0.353981 5.305954 0.366126 +v -0.327147 5.273817 0.319644 +v -0.329817 5.233723 0.324269 +v -0.355397 5.262099 0.387395 +v -0.430051 5.578382 0.518505 +v -0.447425 5.549114 0.546120 +v -0.475286 5.605947 0.576250 +v -0.405364 5.569179 0.516700 +v -0.397915 5.557381 0.505116 +v -0.404709 5.520258 0.516126 +v -0.422737 5.539909 0.544316 +v -0.499055 5.320957 0.638594 +v -0.535398 5.339489 0.680374 +v -0.507431 5.365025 0.653102 +v -0.412768 5.612260 0.488568 +v -0.372525 5.719302 0.398247 +v -0.373767 5.662285 0.419698 +v -0.381912 5.504280 0.414508 +v -0.398352 5.538704 0.442984 +v -0.370495 5.570638 0.394731 +v -0.499635 5.561415 0.618426 +v -0.508026 5.613324 0.632962 +v -0.508370 5.311946 0.633556 +v -0.492216 5.308403 0.626747 +v -0.493339 5.297959 0.632222 +v -0.537791 5.463790 0.684520 +v -0.522511 5.511280 0.658051 +v -0.502953 5.424101 0.645345 +v -0.353430 5.643930 0.425428 +v -0.331319 5.648447 0.387801 +v -0.331711 5.629180 0.390644 +v -0.348935 5.625658 0.419515 +v -0.365992 5.601588 0.408102 +v -0.348767 5.605110 0.379232 +v -0.379706 5.349375 0.410686 +v -0.379050 5.325606 0.428484 +v -0.394418 5.371274 0.457295 +v -0.394209 5.235818 0.435809 +v -0.400463 5.243670 0.468757 +v -0.384261 5.255943 0.437394 +v -0.402685 5.219917 0.450490 +v -0.408847 5.197310 0.483738 +v -0.408939 5.227768 0.483438 +v -0.362226 5.186327 0.380407 +v -0.384566 5.146466 0.440277 +v -0.402250 5.170753 0.472310 +v -0.380716 5.217666 0.412436 +v -0.337648 5.144361 0.359336 +v -0.361644 5.136270 0.400570 +v -0.356960 5.425898 0.371285 +v -0.345360 5.445159 0.370380 +v -0.326882 5.412295 0.340390 +v -0.595512 5.668571 0.803127 +v -0.607367 5.651269 0.805039 +v -0.607250 5.655898 0.825723 +v -0.598086 5.675226 0.816268 +v -0.377545 5.438536 0.406943 +v -0.396719 5.483232 0.440156 +v -0.372023 5.494235 0.397377 +v -0.364270 5.473194 0.402759 +v -0.365946 5.457798 0.406038 +v -0.405419 5.547515 0.477158 +v -0.410062 5.515820 0.463269 +v -0.412214 5.510393 0.488167 +v -0.317148 5.472592 0.370586 +v -0.318122 5.465744 0.372272 +v -0.332563 5.459183 0.389171 +v -0.330887 5.474578 0.385894 +v -0.347668 5.520294 0.355191 +v -0.324754 5.520028 0.337519 +v -0.339916 5.499254 0.360573 +v -0.314814 5.482518 0.325587 +v -0.307338 5.501982 0.305390 +v -0.310426 5.503573 0.290681 +v -0.293800 5.495102 0.283053 +v -0.304091 5.476707 0.307013 +v -0.315788 5.475670 0.327273 +v -0.300152 5.484608 0.341146 +v -0.313891 5.486594 0.356454 +v -0.298731 5.507370 0.333398 +v -0.292676 5.504072 0.320950 +v -0.551934 5.497252 0.729354 +v -0.557556 5.525727 0.739928 +v -0.566630 5.572126 0.734474 +v -0.545860 5.588543 0.698497 +v -0.312110 5.362868 0.314802 +v -0.342188 5.376470 0.345698 +v -0.261045 5.488284 0.267273 +v -0.271337 5.469887 0.291234 +v -0.561549 5.636914 0.746844 +v -0.541773 5.656149 0.753547 +v -0.517180 5.659646 0.709613 +v -0.536956 5.640411 0.702910 +v -0.575194 5.701816 0.817571 +v -0.572619 5.695159 0.804430 +v -0.599945 5.667114 0.854028 +v -0.590782 5.686442 0.844572 +v -0.545691 5.489536 0.759497 +v -0.551312 5.518014 0.770071 +v -0.545915 5.324542 0.719763 +v -0.562224 5.373504 0.748013 +v -0.550549 5.368674 0.706619 +v -0.461382 5.295666 0.614294 +v -0.462503 5.285222 0.619768 +v -0.517508 5.315813 0.649386 +v -0.351657 5.666801 0.382071 +v -0.322430 5.583147 0.334285 +v -0.319299 5.538089 0.328068 +v -0.342213 5.538355 0.345740 +v -0.346484 5.555797 0.353140 +v -0.292454 5.537968 0.322524 +v -0.296261 5.604552 0.329911 +v -0.291536 5.612298 0.317954 +v -0.286399 5.534671 0.310076 +v -0.393709 5.570402 0.456873 +v -0.379603 5.592010 0.473395 +v -0.387051 5.603806 0.484979 +v -0.410516 5.470294 0.485227 +v -0.408365 5.475719 0.460328 +v -0.389190 5.431025 0.427114 +v -0.368667 5.316366 0.451458 +v -0.384034 5.362035 0.480269 +v -0.356438 5.267126 0.430156 +v -0.354366 5.287212 0.426686 +v -0.390883 5.253418 0.493123 +v -0.374683 5.265692 0.461759 +v -0.402670 5.194917 0.513999 +v -0.402762 5.225375 0.513699 +v -0.371151 5.122450 0.457998 +v -0.388834 5.146736 0.490031 +v -0.319051 5.118040 0.368082 +v -0.343047 5.109948 0.409317 +v -0.305642 5.201977 0.303960 +v -0.299758 5.274145 0.293373 +v -0.300008 5.417790 0.334800 +v -0.318488 5.450655 0.364790 +v -0.477893 5.486811 0.601936 +v -0.499566 5.662618 0.638143 +v -0.367753 5.773489 0.411153 +v -0.352298 5.715039 0.363210 +v -0.326434 5.767262 0.339580 +v -0.297681 5.531240 0.268604 +v -0.279130 5.519274 0.257641 +v -0.308179 5.628274 0.305824 +v -0.299819 5.608974 0.272307 +v -0.296517 5.533141 0.286647 +v -0.304412 5.657471 0.280263 +v -0.288962 5.721624 0.274672 +v -0.269194 5.652568 0.240430 +v -0.544402 5.424644 0.695972 +v -0.581067 5.556879 0.759482 +v -0.590179 5.550106 0.796350 +v -0.592112 5.590698 0.778615 +v -0.609333 5.590175 0.829968 +v -0.606190 5.634236 0.802999 +v -0.612520 5.632510 0.834851 +v -0.587888 5.657892 0.789921 +v -0.304046 5.457216 0.347891 +v -0.292349 5.458251 0.327632 +v -0.208518 5.486310 0.278990 +v -0.265414 5.577381 0.233882 +v -0.561236 5.448348 0.745466 +v -0.498599 5.297311 0.641334 +v -0.516087 5.301105 0.668095 +v -0.243059 5.517920 0.236117 +v -0.228542 5.582496 0.210971 +v -0.233158 5.666270 0.218966 +v -0.255493 5.742265 0.257656 +v -0.297480 5.792035 0.330384 +v -0.343174 5.797686 0.409536 +v -0.486010 5.676223 0.655621 +v -0.571427 5.679368 0.802365 +v -0.605947 5.640802 0.864426 +v -0.604608 5.591613 0.862743 +v -0.587911 5.544410 0.833382 +v -0.552899 5.442576 0.771984 +v -0.553448 5.360417 0.773771 +v -0.534931 5.306975 0.741696 +v -0.501569 5.281743 0.683906 +v -0.469766 5.311057 0.628817 +v -0.478803 5.360498 0.644471 +v -0.473439 5.426218 0.635179 +v -0.445061 5.495645 0.586023 +v -0.402627 5.471096 0.512520 +v -0.279566 5.179461 0.299751 +v -0.268490 5.259162 0.280168 +v -0.281423 5.356741 0.302607 +v -0.190532 5.515944 0.247835 +v -0.429282 5.464243 0.707915 +v -0.397417 5.464243 0.726313 +v -0.684420 5.123801 1.243417 +v -0.733891 5.123511 1.215444 +v -0.852034 5.069855 1.412230 +v -0.796026 5.069851 1.444567 +v -0.856310 5.091953 1.556943 +v -0.919791 5.091958 1.520291 +v -0.984586 5.160743 1.623505 +v -0.913671 5.160740 1.664454 +v -0.951186 5.157276 1.647560 +v -1.036891 5.269464 1.704924 +v -0.957932 5.269464 1.750519 +v -1.000224 5.267411 1.732612 +v -1.059154 5.441407 1.738444 +v -0.975884 5.441407 1.786527 +v -1.020675 5.441407 1.767973 +v -0.995762 5.441407 1.860711 +v -1.113466 5.441407 1.792745 +v -1.005703 5.479807 1.897802 +v -1.140623 5.479807 1.819893 +v -0.989136 5.531006 1.835983 +v -1.095362 5.531006 1.774645 +v -0.964287 5.569407 1.743254 +v -1.027472 5.569407 1.706770 +v -0.977541 5.595008 1.792709 +v -1.063681 5.595008 1.742970 +v -0.992449 5.665406 1.848347 +v -1.104413 5.665406 1.783694 +v -1.000732 5.665406 1.879256 +v -1.127044 5.665406 1.806318 +v -1.000732 5.697407 1.879256 +v -1.127044 5.697407 1.806318 +v -0.384174 5.470578 0.737653 +v -0.373973 5.480661 0.749420 +v -0.648450 5.148871 1.279562 +v -0.744723 5.101691 1.467707 +v -0.792184 5.123687 1.572812 +v -0.836586 5.187052 1.672749 +v -0.868147 5.285051 1.752901 +v -0.879747 5.441407 1.786530 +v -0.859872 5.441407 1.860714 +v -0.849934 5.479807 1.897806 +v -0.866497 5.531006 1.835986 +v -0.891341 5.569407 1.743257 +v -0.878091 5.595008 1.792713 +v -0.863184 5.665406 1.848351 +v -0.854903 5.665406 1.879260 +v -0.854903 5.697407 1.879260 +v -0.734724 5.077298 1.335562 +v -0.691110 5.107703 1.367139 +v -0.668878 5.160480 1.390473 +v -0.711860 5.156838 1.475450 +v -0.744582 5.178650 1.563653 +v -0.773976 5.232628 1.646180 +v -0.791580 5.312052 1.711448 +v -0.796489 5.441407 1.738465 +v -0.742185 5.441407 1.792774 +v -0.715033 5.479807 1.819926 +v -0.760285 5.531006 1.774671 +v -0.828165 5.569407 1.706784 +v -0.791964 5.595008 1.742991 +v -0.751235 5.665406 1.783722 +v -0.728609 5.665406 1.806350 +v -0.728609 5.697407 1.806350 +v -0.674126 5.221419 1.399565 +v -0.706243 5.220516 1.465726 +v -0.726257 5.242119 1.531918 +v -0.742613 5.285254 1.591866 +v -0.748745 5.343229 1.637263 +v -0.748417 5.441407 1.655210 +v -0.674235 5.441407 1.675092 +v -0.637143 5.479807 1.685033 +v -0.698961 5.531006 1.668464 +v -0.791690 5.569407 1.643613 +v -0.742234 5.595008 1.656867 +v -0.686598 5.665406 1.671777 +v -0.655689 5.665406 1.680062 +v -0.655689 5.697407 1.680062 +v -0.705449 5.274195 1.391981 +v -0.729377 5.275664 1.441139 +v -0.742121 5.297085 1.486113 +v -0.750904 5.330832 1.524358 +v -0.751121 5.370231 1.550228 +v -0.748412 5.441407 1.559074 +v -0.674228 5.441407 1.539200 +v -0.637136 5.479807 1.529264 +v -0.698955 5.531006 1.545825 +v -0.791687 5.569407 1.570667 +v -0.742229 5.595008 1.557417 +v -0.686592 5.665406 1.542514 +v -0.655681 5.665406 1.534232 +v -0.655681 5.697407 1.534232 +v -0.754723 5.304605 1.370238 +v -0.775065 5.307508 1.408277 +v -0.787921 5.328821 1.438510 +v -0.796624 5.357145 1.461746 +v -0.798071 5.385822 1.473660 +v -0.796475 5.441407 1.475814 +v -0.742165 5.441407 1.421512 +v -0.715010 5.479807 1.394360 +v -0.760268 5.531006 1.439612 +v -0.828154 5.569407 1.507490 +v -0.805761 5.569407 1.536678 +v -0.791949 5.595008 1.471288 +v -0.751217 5.665406 1.430561 +v -0.728589 5.665406 1.407937 +v -0.728589 5.697407 1.407937 +v -0.808004 5.304673 1.338829 +v -0.831063 5.307511 1.375943 +v -0.851389 5.328824 1.401864 +v -0.867526 5.357148 1.420805 +v -0.877015 5.385825 1.428075 +v -0.879729 5.441407 1.427739 +v -0.859846 5.441407 1.353558 +v -0.849905 5.479807 1.316468 +v -0.866473 5.531006 1.378286 +v -0.891328 5.569407 1.471013 +v -0.878071 5.595008 1.421558 +v -0.863160 5.665406 1.365921 +v -0.854875 5.665406 1.335012 +v -0.854875 5.697407 1.335012 +v -0.851760 5.274205 1.307507 +v -0.882366 5.275675 1.352804 +v -0.915516 5.297095 1.385993 +v -0.944611 5.330838 1.412507 +v -0.966799 5.370237 1.425687 +v -0.922064 5.379807 1.421152 +v -0.975864 5.441407 1.427731 +v -0.995736 5.441407 1.353546 +v -1.005671 5.479807 1.316454 +v -0.989112 5.531006 1.378275 +v -0.964274 5.569407 1.471006 +v -0.977521 5.595008 1.421551 +v -0.992424 5.665406 1.365912 +v -1.000703 5.665406 1.335002 +v -1.000703 5.697407 1.335002 +v -0.460214 5.586796 0.761511 +v -0.483658 5.570380 0.738402 +v -0.817895 5.287472 1.262542 +v -0.781677 5.312833 1.298240 +v -0.831413 5.243540 1.229121 +v -0.873993 5.221431 1.284170 +v -0.915231 5.220531 1.345057 +v -0.963121 5.242130 1.395151 +v -1.007223 5.285265 1.439072 +v -1.043369 5.343235 1.467137 +v -1.059125 5.441407 1.475793 +v -1.113426 5.441407 1.421481 +v -1.140577 5.479807 1.394328 +v -1.095326 5.531006 1.439586 +v -1.027450 5.569407 1.507474 +v -1.063651 5.595008 1.471268 +v -1.104375 5.665406 1.430534 +v -1.127003 5.665406 1.407905 +v -1.127003 5.697407 1.407905 +v -0.818610 5.192812 1.206938 +v -0.868748 5.160491 1.275075 +v -0.920852 5.156850 1.354783 +v -0.981449 5.178664 1.426882 +v -1.038591 5.232639 1.493383 +v -1.086208 5.312058 1.541319 +v -1.107203 5.441407 1.559044 +v -1.181383 5.441407 1.539160 +v -1.218475 5.479807 1.529217 +v -1.156656 5.531006 1.545789 +v -1.063930 5.569407 1.570644 +v -1.113384 5.595008 1.557388 +v -1.169020 5.665406 1.542474 +v -1.199928 5.665406 1.534189 +v -1.199928 5.697407 1.534189 +v -0.782915 5.148880 1.201931 +v -0.837429 5.107712 1.282659 +v -0.897720 5.101700 1.379368 +v -0.965589 5.123696 1.472686 +v -1.030305 5.187061 1.560890 +v -1.083836 5.285056 1.628354 +v -1.107211 5.441407 1.655181 +v -1.181399 5.441407 1.675052 +v -1.218489 5.479807 1.684986 +v -1.156670 5.531006 1.668428 +v -1.063938 5.569407 1.643591 +v -1.113395 5.595008 1.656838 +v -1.169034 5.665406 1.671740 +v -1.199944 5.665406 1.680019 +v -1.199944 5.697407 1.680019 +v -0.788428 5.077236 1.304889 +v -1.049863 5.569407 1.677581 +v -0.461015 5.480664 0.699167 +v -0.484121 5.509104 0.702409 +v -0.492409 5.541945 0.716769 +v -0.732963 5.312378 1.327555 +v -0.428355 5.586796 0.779903 +v -0.683437 5.287462 1.340168 +v -0.396621 5.570374 0.788652 +v -0.647740 5.243531 1.335163 +v -0.373513 5.541935 0.785412 +v -0.634934 5.192803 1.312981 +v -0.365224 5.509098 0.771053 +v -0.255882 6.871280 0.000000 +v -0.255882 6.823281 0.000000 +v -0.207882 6.815281 0.000000 +v -0.175883 6.775281 0.000000 +v -0.111882 6.751280 0.000000 +v -0.143882 6.727280 0.000000 +v -0.135882 6.671281 0.000000 +v -0.143882 6.607280 0.000000 +v -0.175883 6.535279 0.000000 +v -0.239882 6.479280 0.000000 +v -0.239882 6.439281 0.000000 +v -0.307844 6.439281 0.000000 +v -0.331844 6.391280 0.000000 +v -0.283844 6.359281 0.000000 +v -0.227844 6.287280 0.000000 +v -0.179844 6.135281 0.000000 +v -0.171844 5.991281 0.000000 +v -0.243844 5.991281 0.000000 +v -0.243844 5.927280 0.000000 +v -0.187844 5.927280 0.000000 +v -0.187844 5.847281 0.000000 +v -0.239774 5.847281 0.000000 +v -0.295774 5.791280 0.000000 +v -0.295774 5.023280 0.000000 +v -0.351774 5.023280 0.000000 +v -0.399774 4.967279 0.000000 +v -0.401771 4.865267 0.000000 +v -0.355758 4.767281 0.000000 +v -0.411919 -0.855625 0.000000 +v -0.525026 -0.855625 0.000000 +v -0.581026 -0.903625 0.000000 +v -0.581026 -1.079625 0.000000 +v -0.541026 -1.127625 0.000000 +v -0.449117 -1.127625 0.000000 +v -0.425117 -1.183625 0.000000 +v -0.441708 -1.365037 0.000000 +v -0.511333 -1.530860 0.000000 +v -0.564391 -1.673745 0.000000 +v -0.660251 -1.819721 0.000000 +v -0.932420 -1.996708 0.000000 +v -1.076103 -2.040090 0.000000 +v -1.100103 -2.072090 0.000000 +v -1.100103 -2.128090 0.000000 +v -1.076103 -2.160089 0.000000 +v -1.012103 -2.192089 0.000000 +v -1.004103 -2.256090 0.000000 +v -1.028103 -2.356090 0.000000 +v -1.108103 -2.524090 0.000000 +v -1.192103 -2.600090 0.000000 +v -1.256103 -2.602085 0.000000 +v -1.304103 -2.642078 0.000000 +v -1.304103 -2.728091 0.000000 +v -1.272103 -2.760090 0.000000 +v -1.224103 -2.760090 0.000000 +v -1.224103 -3.284090 0.000000 +v -1.182394 -3.284090 0.316816 +v -1.182394 -2.760090 0.316816 +v -1.228759 -2.760090 0.329239 +v -1.259668 -2.728091 0.337521 +v -1.259668 -2.642078 0.337521 +v -1.213304 -2.602085 0.325098 +v -1.151484 -2.600090 0.308534 +v -1.070347 -2.524090 0.286793 +v -0.993072 -2.356090 0.266088 +v -0.969890 -2.256090 0.259877 +v -0.977618 -2.192089 0.261947 +v -1.039437 -2.160089 0.278511 +v -1.062619 -2.128090 0.284723 +v -1.062619 -2.072090 0.284723 +v -1.039437 -2.040090 0.278511 +v -0.900649 -1.996708 0.241324 +v -0.637754 -1.819721 0.170883 +v -0.545161 -1.673745 0.146073 +v -0.493910 -1.530860 0.132340 +v -0.426657 -1.365037 0.114321 +v -0.410632 -1.183625 0.110027 +v -0.433814 -1.127625 0.116238 +v -0.522592 -1.127625 0.140026 +v -0.561229 -1.079625 0.150378 +v -0.561229 -0.903625 0.150378 +v -0.507137 -0.855625 0.135884 +v -0.397884 -0.855625 0.106611 +v -0.386152 4.967279 0.103467 +v -0.131252 6.671281 0.035168 +v -0.108070 6.751280 0.028957 +v -1.060110 -3.284090 0.612042 +v -1.060110 -2.760090 0.612042 +v -1.101679 -2.760090 0.636042 +v -1.129392 -2.728091 0.652042 +v -1.129392 -2.642078 0.652042 +v -1.087823 -2.602085 0.628042 +v -1.032397 -2.600090 0.596043 +v -0.959650 -2.524090 0.554043 +v -0.890368 -2.356090 0.514044 +v -0.869583 -2.256090 0.502044 +v -0.876511 -2.192089 0.506044 +v -0.931937 -2.160089 0.538043 +v -0.952722 -2.128090 0.550043 +v -0.952722 -2.072090 0.550043 +v -0.931937 -2.040090 0.538043 +v -0.807503 -1.996708 0.466203 +v -0.571797 -1.819721 0.330120 +v -0.488780 -1.673745 0.282191 +v -0.442829 -1.530860 0.255662 +v -0.382532 -1.365037 0.220851 +v -0.368164 -1.183625 0.212555 +v -0.388949 -1.127625 0.224555 +v -0.468545 -1.127625 0.270509 +v -0.503186 -1.079625 0.290509 +v -0.503186 -0.903625 0.290509 +v -0.454688 -0.855625 0.262509 +v -0.356734 -0.855625 0.205956 +v -0.308097 4.767281 0.177876 +v -0.347946 4.865267 0.200882 +v -0.346216 4.967279 0.199884 +v -0.304647 5.023280 0.175884 +v -0.256149 5.023280 0.147885 +v -0.256149 5.791280 0.147885 +v -0.207651 5.847281 0.119885 +v -0.162678 5.847281 0.093921 +v -0.162678 5.927280 0.093921 +v -0.211176 5.927280 0.121920 +v -0.211176 5.991281 0.121920 +v -0.148822 5.991281 0.085921 +v -0.155750 6.135281 0.089921 +v -0.197320 6.287280 0.113920 +v -0.245817 6.359281 0.141920 +v -0.287387 6.391280 0.165919 +v -0.266602 6.439281 0.153920 +v -0.207745 6.439281 0.119939 +v -0.207745 6.479280 0.119939 +v -0.152320 6.535279 0.087940 +v -0.124606 6.607280 0.071940 +v -0.117678 6.671281 0.067940 +v -0.124606 6.727280 0.071940 +v -0.096893 6.751280 0.055940 +v -0.152320 6.775281 0.087940 +v -0.180032 6.815281 0.103939 +v -0.221601 6.823281 0.127939 +v -0.221601 6.871280 0.127939 +v -0.865583 -3.284090 0.865560 +v -0.865583 -2.760090 0.865560 +v -0.899524 -2.760090 0.899501 +v -0.922152 -2.728091 0.922128 +v -0.922152 -2.642078 0.922128 +v -0.888211 -2.602085 0.888187 +v -0.842955 -2.600090 0.842933 +v -0.783557 -2.524090 0.783537 +v -0.726988 -2.356090 0.726969 +v -0.710017 -2.256090 0.709999 +v -0.715674 -2.192089 0.715655 +v -0.760930 -2.160089 0.760910 +v -0.777901 -2.128090 0.777880 +v -0.777901 -2.072090 0.777880 +v -0.760930 -2.040090 0.760910 +v -0.659329 -1.996708 0.659312 +v -0.466874 -1.819721 0.466862 +v -0.399090 -1.673745 0.399080 +v -0.361571 -1.530860 0.361562 +v -0.312339 -1.365037 0.312330 +v -0.300607 -1.183625 0.300599 +v -0.317578 -1.127625 0.317569 +v -0.382568 -1.127625 0.382558 +v -0.410853 -1.079625 0.410842 +v -0.410853 -0.903625 0.410842 +v -0.371254 -0.855625 0.371245 +v -0.291275 -0.855625 0.291267 +v -0.132827 5.927280 0.132824 +v -0.172426 5.927280 0.172421 +v -0.161112 6.287280 0.161108 +v -0.200711 6.359281 0.200705 +v -0.234652 6.391280 0.234646 +v -0.101741 6.727280 0.101739 +v -0.079114 6.751280 0.079111 +v -0.612070 -3.284090 1.060094 +v -0.612070 -2.760090 1.060094 +v -0.636071 -2.760090 1.101662 +v -0.652071 -2.728091 1.129375 +v -0.652071 -2.642078 1.129375 +v -0.628071 -2.602085 1.087806 +v -0.596070 -2.600090 1.032381 +v -0.554068 -2.524090 0.959636 +v -0.514067 -2.356090 0.890354 +v -0.502067 -2.256090 0.869570 +v -0.506067 -2.192089 0.876498 +v -0.538068 -2.160089 0.931923 +v -0.550068 -2.128090 0.952708 +v -0.550068 -2.072090 0.952708 +v -0.538068 -2.040090 0.931923 +v -0.466224 -1.996708 0.807491 +v -0.330135 -1.819721 0.571788 +v -0.282204 -1.673745 0.488772 +v -0.255674 -1.530860 0.442823 +v -0.220861 -1.365037 0.382526 +v -0.212565 -1.183625 0.368158 +v -0.224565 -1.127625 0.388943 +v -0.270521 -1.127625 0.468538 +v -0.290522 -1.079625 0.503178 +v -0.290522 -0.903625 0.503178 +v -0.262521 -0.855625 0.454681 +v -0.205966 -0.855625 0.356729 +v -0.177884 4.767281 0.308092 +v -0.200892 4.865267 0.347940 +v -0.199893 4.967279 0.346211 +v -0.175892 5.023280 0.304642 +v -0.147891 5.023280 0.256145 +v -0.147891 5.791280 0.256145 +v -0.119891 5.847281 0.207648 +v -0.093925 5.847281 0.162676 +v -0.093925 5.927280 0.162676 +v -0.121926 5.927280 0.211173 +v -0.121926 5.991281 0.211173 +v -0.085925 5.991281 0.148820 +v -0.089925 6.135281 0.155748 +v -0.113925 6.287280 0.197317 +v -0.141926 6.359281 0.245814 +v -0.165927 6.391280 0.287382 +v -0.153927 6.439281 0.266598 +v -0.119945 6.439281 0.207742 +v -0.119945 6.479280 0.207742 +v -0.087944 6.535279 0.152318 +v -0.071943 6.607280 0.124604 +v -0.067943 6.671281 0.117676 +v -0.071943 6.727280 0.124604 +v -0.055943 6.751280 0.096892 +v -0.087944 6.775281 0.152318 +v -0.103944 6.815281 0.180029 +v -0.127945 6.823281 0.221598 +v -0.127945 6.871280 0.221598 +v -0.316847 -3.284090 1.182386 +v -0.316847 -2.760090 1.182386 +v -0.329271 -2.760090 1.228750 +v -0.337554 -2.728091 1.259659 +v -0.337554 -2.642078 1.259659 +v -0.325130 -2.602085 1.213295 +v -0.308564 -2.600090 1.151476 +v -0.286822 -2.524090 1.070339 +v -0.266114 -2.356090 0.993065 +v -0.259902 -2.256090 0.969883 +v -0.261973 -2.192089 0.977611 +v -0.278539 -2.160089 1.039430 +v -0.284751 -2.128090 1.062612 +v -0.284751 -2.072090 1.062612 +v -0.278539 -2.040090 1.039430 +v -0.241348 -1.996708 0.900643 +v -0.170899 -1.819721 0.637750 +v -0.146087 -1.673745 0.545157 +v -0.132353 -1.530860 0.493906 +v -0.114332 -1.365037 0.426654 +v -0.110037 -1.183625 0.410629 +v -0.116250 -1.127625 0.433811 +v -0.140039 -1.127625 0.522588 +v -0.150393 -1.079625 0.561225 +v -0.150393 -0.903625 0.561225 +v -0.135898 -0.855625 0.507133 +v -0.106621 -0.855625 0.397881 +v -0.092084 4.767281 0.343634 +v -0.091053 5.023280 0.339786 +v -0.037242 6.727280 0.138978 +v -0.028960 6.751280 0.108069 +v -0.000032 -3.284090 1.224103 +v -0.000032 -2.760090 1.224103 +v -0.000033 -2.760090 1.272103 +v -0.000034 -2.728091 1.304103 +v -0.000034 -2.642078 1.304103 +v -0.000033 -2.602085 1.256103 +v -0.000031 -2.600090 1.192103 +v -0.000029 -2.524090 1.108103 +v -0.000027 -2.356090 1.028103 +v -0.000026 -2.256090 1.004103 +v -0.000027 -2.192089 1.012103 +v -0.000028 -2.160089 1.076103 +v -0.000029 -2.128090 1.100103 +v -0.000029 -2.072090 1.100103 +v -0.000028 -2.040090 1.076103 +v -0.000025 -1.996708 0.932420 +v -0.000017 -1.819721 0.660251 +v -0.000015 -1.673745 0.564391 +v -0.000013 -1.530860 0.511333 +v -0.000012 -1.365037 0.441708 +v -0.000011 -1.183625 0.425117 +v -0.000012 -1.127625 0.449117 +v -0.000014 -1.127625 0.541026 +v -0.000015 -1.079625 0.581026 +v -0.000015 -0.903625 0.581026 +v -0.000014 -0.855625 0.525026 +v -0.000011 -0.855625 0.411919 +v -0.000009 4.767281 0.355758 +v -0.000011 4.865267 0.401771 +v -0.000011 4.967279 0.399774 +v -0.000009 5.023280 0.351774 +v -0.000008 5.023280 0.295774 +v -0.000008 5.791280 0.295774 +v -0.000006 5.847281 0.239774 +v -0.000005 5.847281 0.187844 +v -0.000005 5.927280 0.187844 +v -0.000006 5.927280 0.243844 +v -0.000006 5.991281 0.243844 +v -0.000005 5.991281 0.171844 +v -0.000005 6.135281 0.179844 +v -0.000006 6.287280 0.227844 +v -0.000007 6.359281 0.283844 +v -0.000009 6.391280 0.331844 +v -0.000008 6.439281 0.307844 +v -0.000006 6.439281 0.239882 +v -0.000006 6.479280 0.239882 +v -0.000005 6.535279 0.175883 +v -0.000004 6.607280 0.143882 +v -0.000004 6.671281 0.135882 +v -0.000004 6.727280 0.143882 +v -0.000003 6.751280 0.111882 +v -0.000005 6.775281 0.175883 +v -0.000005 6.815281 0.207882 +v -0.000007 6.823281 0.255882 +v -0.000007 6.871280 0.255882 +v 0.316785 -3.284090 1.182402 +v 0.316785 -2.760090 1.182402 +v 0.329207 -2.760090 1.228767 +v 0.337488 -2.728091 1.259677 +v 0.337488 -2.642078 1.259677 +v 0.325066 -2.602085 1.213312 +v 0.308504 -2.600090 1.151493 +v 0.286765 -2.524090 1.070354 +v 0.266062 -2.356090 0.993079 +v 0.259851 -2.256090 0.969897 +v 0.261921 -2.192089 0.977624 +v 0.278484 -2.160089 1.039444 +v 0.284695 -2.128090 1.062627 +v 0.284695 -2.072090 1.062627 +v 0.278484 -2.040090 1.039444 +v 0.241300 -1.996708 0.900656 +v 0.170866 -1.819721 0.637759 +v 0.146058 -1.673745 0.545165 +v 0.132327 -1.530860 0.493913 +v 0.114309 -1.365037 0.426660 +v 0.110016 -1.183625 0.410635 +v 0.116227 -1.127625 0.433817 +v 0.140012 -1.127625 0.522595 +v 0.150363 -1.079625 0.561233 +v 0.150363 -0.903625 0.561233 +v 0.135871 -0.855625 0.507140 +v 0.106600 -0.855625 0.397886 +v 0.092066 4.767281 0.343639 +v 0.612014 -3.284090 1.060126 +v 0.612014 -2.760090 1.060126 +v 0.636013 -2.760090 1.101696 +v 0.652012 -2.728091 1.129409 +v 0.652012 -2.642078 1.129409 +v 0.628013 -2.602085 1.087839 +v 0.596015 -2.600090 1.032412 +v 0.554018 -2.524090 0.959665 +v 0.514020 -2.356090 0.890381 +v 0.502021 -2.256090 0.869596 +v 0.506021 -2.192089 0.876525 +v 0.538019 -2.160089 0.931951 +v 0.550018 -2.128090 0.952736 +v 0.550018 -2.072090 0.952736 +v 0.538019 -2.040090 0.931951 +v 0.466182 -1.996708 0.807515 +v 0.330105 -1.819721 0.571806 +v 0.282179 -1.673745 0.488787 +v 0.255651 -1.530860 0.442836 +v 0.220840 -1.365037 0.382538 +v 0.212546 -1.183625 0.368170 +v 0.224545 -1.127625 0.388955 +v 0.270497 -1.127625 0.468552 +v 0.290495 -1.079625 0.503193 +v 0.290495 -0.903625 0.503193 +v 0.262497 -0.855625 0.454695 +v 0.205947 -0.855625 0.356740 +v 0.177868 4.767281 0.308102 +v 0.200873 4.865267 0.347951 +v 0.199875 4.967279 0.346221 +v 0.175876 5.023280 0.304651 +v 0.147878 5.023280 0.256153 +v 0.147878 5.791280 0.256153 +v 0.119880 5.847281 0.207655 +v 0.093916 5.847281 0.162681 +v 0.093916 5.927280 0.162681 +v 0.121915 5.927280 0.211179 +v 0.121915 5.991281 0.211179 +v 0.085917 5.991281 0.148824 +v 0.089917 6.135281 0.155753 +v 0.113915 6.287280 0.197323 +v 0.141913 6.359281 0.245821 +v 0.165912 6.391280 0.287391 +v 0.153913 6.439281 0.266606 +v 0.119934 6.439281 0.207748 +v 0.119934 6.479280 0.207748 +v 0.087936 6.535279 0.152322 +v 0.071937 6.607280 0.124608 +v 0.067937 6.671281 0.117680 +v 0.071937 6.727280 0.124608 +v 0.055938 6.751280 0.096895 +v 0.087936 6.775281 0.152322 +v 0.103935 6.815281 0.180035 +v 0.127933 6.823281 0.221605 +v 0.127933 6.871280 0.221605 +v 0.865537 -3.284090 0.865606 +v 0.865537 -2.760090 0.865606 +v 0.899477 -2.760090 0.899548 +v 0.922104 -2.728091 0.922177 +v 0.922104 -2.642078 0.922177 +v 0.888164 -2.602085 0.888234 +v 0.842911 -2.600090 0.842978 +v 0.783516 -2.524090 0.783578 +v 0.726950 -2.356090 0.727007 +v 0.709980 -2.256090 0.710036 +v 0.715637 -2.192089 0.715693 +v 0.760890 -2.160089 0.760950 +v 0.777860 -2.128090 0.777921 +v 0.777860 -2.072090 0.777921 +v 0.760890 -2.040090 0.760950 +v 0.659294 -1.996708 0.659346 +v 0.466849 -1.819721 0.466886 +v 0.399069 -1.673745 0.399101 +v 0.361552 -1.530860 0.361581 +v 0.312322 -1.365037 0.312347 +v 0.300591 -1.183625 0.300615 +v 0.317561 -1.127625 0.317586 +v 0.382548 -1.127625 0.382578 +v 0.410831 -1.079625 0.410864 +v 0.410831 -0.903625 0.410864 +v 0.371235 -0.855625 0.371264 +v 0.291259 -0.855625 0.291282 +v 0.132821 5.927280 0.132831 +v 0.172417 5.927280 0.172431 +v 0.172417 5.991281 0.172431 +v 0.121507 5.991281 0.121517 +v 0.127164 6.135281 0.127174 +v 0.161104 6.287280 0.161116 +v 0.096079 6.671281 0.096087 +v 0.101736 6.727280 0.101744 +v 0.079109 6.751280 0.079116 +v 1.060077 -3.284090 0.612098 +v 1.060077 -2.760090 0.612098 +v 1.101646 -2.760090 0.636100 +v 1.129358 -2.728091 0.652101 +v 1.129358 -2.642078 0.652101 +v 1.087790 -2.602085 0.628099 +v 1.032365 -2.600090 0.596097 +v 0.959621 -2.524090 0.554094 +v 0.890341 -2.356090 0.514091 +v 0.869557 -2.256090 0.502090 +v 0.876485 -2.192089 0.506090 +v 0.931909 -2.160089 0.538092 +v 0.952693 -2.128090 0.550093 +v 0.952693 -2.072090 0.550093 +v 0.931909 -2.040090 0.538092 +v 0.807479 -1.996708 0.466245 +v 0.571779 -1.819721 0.330150 +v 0.488765 -1.673745 0.282217 +v 0.442816 -1.530860 0.255686 +v 0.382520 -1.365037 0.220871 +v 0.368153 -1.183625 0.212575 +v 0.388937 -1.127625 0.224576 +v 0.468530 -1.127625 0.270534 +v 0.503170 -1.079625 0.290535 +v 0.503170 -0.903625 0.290535 +v 0.454674 -0.855625 0.262533 +v 0.356723 -0.855625 0.205975 +v 0.308088 4.767281 0.177893 +v 0.347935 4.865267 0.200901 +v 0.346206 4.967279 0.199902 +v 0.304637 5.023280 0.175900 +v 0.256141 5.023280 0.147898 +v 0.256141 5.791280 0.147898 +v 0.207645 5.847281 0.119896 +v 0.162674 5.847281 0.093929 +v 0.162674 5.927280 0.093929 +v 0.211170 5.927280 0.121931 +v 0.211170 5.991281 0.121931 +v 0.148817 5.991281 0.085929 +v 0.155746 6.135281 0.089929 +v 0.197314 6.287280 0.113931 +v 0.245810 6.359281 0.141933 +v 0.287378 6.391280 0.165935 +v 0.266594 6.439281 0.153934 +v 0.207739 6.439281 0.119950 +v 0.207739 6.479280 0.119950 +v 0.152315 6.535279 0.087948 +v 0.124602 6.607280 0.071946 +v 0.117674 6.671281 0.067946 +v 0.124602 6.727280 0.071946 +v 0.096890 6.751280 0.055945 +v 0.152315 6.775281 0.087948 +v 0.180027 6.815281 0.103949 +v 0.221595 6.823281 0.127951 +v 0.221595 6.871280 0.127951 +v 1.182377 -3.284090 0.316878 +v 1.182377 -2.760090 0.316878 +v 1.228741 -2.760090 0.329304 +v 1.259650 -2.728091 0.337587 +v 1.259650 -2.642078 0.337587 +v 1.213287 -2.602085 0.325162 +v 1.151468 -2.600090 0.308595 +v 1.070332 -2.524090 0.286850 +v 0.993058 -2.356090 0.266141 +v 0.969876 -2.256090 0.259928 +v 0.977604 -2.192089 0.261999 +v 1.039422 -2.160089 0.278566 +v 1.062604 -2.128090 0.284779 +v 1.062604 -2.072090 0.284779 +v 1.039422 -2.040090 0.278566 +v 0.900637 -1.996708 0.241371 +v 0.637745 -1.819721 0.170916 +v 0.545153 -1.673745 0.146102 +v 0.493903 -1.530860 0.132366 +v 0.426651 -1.365037 0.114343 +v 0.410626 -1.183625 0.110048 +v 0.433808 -1.127625 0.116261 +v 0.522584 -1.127625 0.140053 +v 0.561221 -1.079625 0.150408 +v 0.561221 -0.903625 0.150408 +v 0.507130 -0.855625 0.135911 +v 0.397878 -0.855625 0.106632 +v 0.131250 6.671281 0.035175 +v 0.108068 6.751280 0.028962 +v 1.224103 -3.284090 0.000064 +v 1.224103 -2.760090 0.000064 +v 1.272103 -2.760090 0.000067 +v 1.304103 -2.728091 0.000069 +v 1.304103 -2.642078 0.000069 +v 1.256103 -2.602085 0.000066 +v 1.192103 -2.600090 0.000063 +v 1.108103 -2.524090 0.000058 +v 1.028103 -2.356090 0.000054 +v 1.004103 -2.256090 0.000053 +v 1.012103 -2.192089 0.000053 +v 1.076103 -2.160089 0.000057 +v 1.100103 -2.128090 0.000058 +v 1.100103 -2.072090 0.000058 +v 1.076103 -2.040090 0.000057 +v 0.932420 -1.996708 0.000049 +v 0.660251 -1.819721 0.000035 +v 0.564391 -1.673745 0.000030 +v 0.511333 -1.530860 0.000027 +v 0.441708 -1.365037 0.000023 +v 0.425117 -1.183625 0.000022 +v 0.449117 -1.127625 0.000024 +v 0.541026 -1.127625 0.000028 +v 0.581026 -1.079625 0.000031 +v 0.581026 -0.903625 0.000031 +v 0.525026 -0.855625 0.000028 +v 0.411919 -0.855625 0.000022 +v 0.355758 4.767281 0.000019 +v 0.401771 4.865267 0.000021 +v 0.399774 4.967279 0.000021 +v 0.351774 5.023280 0.000019 +v 0.295774 5.023280 0.000016 +v 0.295774 5.791280 0.000016 +v 0.239774 5.847281 0.000013 +v 0.187844 5.847281 0.000010 +v 0.187844 5.927280 0.000010 +v 0.243844 5.927280 0.000013 +v 0.243844 5.991281 0.000013 +v 0.171844 5.991281 0.000009 +v 0.179844 6.135281 0.000009 +v 0.227844 6.287280 0.000012 +v 0.283844 6.359281 0.000015 +v 0.331844 6.391280 0.000017 +v 0.307844 6.439281 0.000016 +v 0.239882 6.439281 0.000013 +v 0.239882 6.479280 0.000013 +v 0.175883 6.535279 0.000009 +v 0.143882 6.607280 0.000008 +v 0.135882 6.671281 0.000007 +v 0.143882 6.727280 0.000008 +v 0.111882 6.751280 0.000006 +v 0.175883 6.775281 0.000009 +v 0.207882 6.815281 0.000011 +v 0.255882 6.823281 0.000013 +v 0.255882 6.871280 0.000013 +v 1.182411 -3.284090 -0.316754 +v 1.182411 -2.760090 -0.316754 +v 1.228776 -2.760090 -0.329174 +v 1.259686 -2.728091 -0.337455 +v 1.259686 -2.642078 -0.337455 +v 1.213321 -2.602085 -0.325034 +v 1.151501 -2.600090 -0.308473 +v 1.070362 -2.524090 -0.286737 +v 0.993086 -2.356090 -0.266036 +v 0.969904 -2.256090 -0.259826 +v 0.977631 -2.192089 -0.261896 +v 1.039451 -2.160089 -0.278457 +v 1.062634 -2.128090 -0.284667 +v 1.062634 -2.072090 -0.284667 +v 1.039451 -2.040090 -0.278457 +v 0.900662 -1.996708 -0.241277 +v 0.637763 -1.819721 -0.170849 +v 0.545169 -1.673745 -0.146044 +v 0.493917 -1.530860 -0.132314 +v 0.426663 -1.365037 -0.114298 +v 0.410638 -1.183625 -0.110005 +v 0.433820 -1.127625 -0.116215 +v 0.522599 -1.127625 -0.139998 +v 0.561237 -1.079625 -0.150349 +v 0.561237 -0.903625 -0.150349 +v 0.507144 -0.855625 -0.135858 +v 0.397889 -0.855625 -0.106590 +v 0.138981 6.727280 -0.037231 +v 1.060142 -3.284090 -0.611986 +v 1.060142 -2.760090 -0.611986 +v 1.101713 -2.760090 -0.635984 +v 1.129426 -2.728091 -0.651982 +v 1.129426 -2.642078 -0.651982 +v 1.087856 -2.602085 -0.627985 +v 1.032428 -2.600090 -0.595988 +v 0.959679 -2.524090 -0.553992 +v 0.890395 -2.356090 -0.513997 +v 0.869610 -2.256090 -0.501998 +v 0.876538 -2.192089 -0.505998 +v 0.931966 -2.160089 -0.537994 +v 0.952751 -2.128090 -0.549993 +v 0.952751 -2.072090 -0.549993 +v 0.931966 -2.040090 -0.537994 +v 0.807528 -1.996708 -0.466160 +v 0.571814 -1.819721 -0.330090 +v 0.488795 -1.673745 -0.282166 +v 0.442843 -1.530860 -0.255639 +v 0.382544 -1.365037 -0.220830 +v 0.368175 -1.183625 -0.212536 +v 0.388961 -1.127625 -0.224535 +v 0.468559 -1.127625 -0.270484 +v 0.503201 -1.079625 -0.290482 +v 0.503201 -0.903625 -0.290482 +v 0.454702 -0.855625 -0.262485 +v 0.356745 -0.855625 -0.205938 +v 0.308106 4.767281 -0.177860 +v 0.347956 4.865267 -0.200864 +v 0.346227 4.967279 -0.199866 +v 0.304656 5.023280 -0.175868 +v 0.256157 5.023280 -0.147871 +v 0.256157 5.791280 -0.147871 +v 0.207658 5.847281 -0.119874 +v 0.162683 5.847281 -0.093912 +v 0.162683 5.927280 -0.093912 +v 0.211183 5.927280 -0.121909 +v 0.211183 5.991281 -0.121909 +v 0.148827 5.991281 -0.085913 +v 0.155755 6.135281 -0.089912 +v 0.197326 6.287280 -0.113910 +v 0.245825 6.359281 -0.141907 +v 0.287396 6.391280 -0.165904 +v 0.266610 6.439281 -0.153906 +v 0.207751 6.439281 -0.119928 +v 0.207751 6.479280 -0.119928 +v 0.152325 6.535279 -0.087932 +v 0.124610 6.607280 -0.071933 +v 0.117681 6.671281 -0.067934 +v 0.124610 6.727280 -0.071933 +v 0.096896 6.751280 -0.055935 +v 0.152325 6.775281 -0.087932 +v 0.180037 6.815281 -0.103930 +v 0.221608 6.823281 -0.127927 +v 0.221608 6.871280 -0.127927 +v 0.865629 -3.284090 -0.865515 +v 0.865629 -2.760090 -0.865515 +v 0.899572 -2.760090 -0.899453 +v 0.922201 -2.728091 -0.922079 +v 0.922201 -2.642078 -0.922079 +v 0.888258 -2.602085 -0.888140 +v 0.843000 -2.600090 -0.842889 +v 0.783599 -2.524090 -0.783496 +v 0.727027 -2.356090 -0.726931 +v 0.710055 -2.256090 -0.709961 +v 0.715712 -2.192089 -0.715618 +v 0.760970 -2.160089 -0.760870 +v 0.777942 -2.128090 -0.777839 +v 0.777942 -2.072090 -0.777839 +v 0.760970 -2.040090 -0.760870 +v 0.659364 -1.996708 -0.659277 +v 0.466899 -1.819721 -0.466837 +v 0.399111 -1.673745 -0.399059 +v 0.361591 -1.530860 -0.361543 +v 0.312355 -1.365037 -0.312314 +v 0.300623 -1.183625 -0.300583 +v 0.317595 -1.127625 -0.317553 +v 0.382588 -1.127625 -0.382538 +v 0.410874 -1.079625 -0.410820 +v 0.410874 -0.903625 -0.410820 +v 0.371274 -0.855625 -0.371225 +v 0.291290 -0.855625 -0.291252 +v 0.132835 5.927280 -0.132817 +v 0.101747 6.607280 -0.101733 +v 0.180948 6.823281 -0.180924 +v 0.612126 -3.284090 -1.060061 +v 0.612126 -2.760090 -1.060061 +v 0.636129 -2.760090 -1.101629 +v 0.652131 -2.728091 -1.129341 +v 0.652131 -2.642078 -1.129341 +v 0.628128 -2.602085 -1.087773 +v 0.596124 -2.600090 -1.032350 +v 0.554119 -2.524090 -0.959607 +v 0.514114 -2.356090 -0.890327 +v 0.502112 -2.256090 -0.869543 +v 0.506113 -2.192089 -0.876471 +v 0.538117 -2.160089 -0.931895 +v 0.550118 -2.128090 -0.952679 +v 0.550118 -2.072090 -0.952679 +v 0.538117 -2.040090 -0.931895 +v 0.466266 -1.996708 -0.807466 +v 0.330165 -1.819721 -0.571771 +v 0.282230 -1.673745 -0.488758 +v 0.255697 -1.530860 -0.442809 +v 0.220881 -1.365037 -0.382515 +v 0.212584 -1.183625 -0.368147 +v 0.224586 -1.127625 -0.388931 +v 0.270546 -1.127625 -0.468523 +v 0.290548 -1.079625 -0.503163 +v 0.290548 -0.903625 -0.503163 +v 0.262545 -0.855625 -0.454667 +v 0.205984 -0.855625 -0.356718 +v 0.177901 4.767281 -0.308083 +v 0.200910 4.865267 -0.347930 +v 0.199911 4.967279 -0.346200 +v 0.175908 5.023280 -0.304633 +v 0.147905 5.023280 -0.256137 +v 0.147905 5.791280 -0.256137 +v 0.119902 5.847281 -0.207642 +v 0.093933 5.847281 -0.162671 +v 0.093933 5.927280 -0.162671 +v 0.121937 5.927280 -0.211167 +v 0.121937 5.991281 -0.211167 +v 0.085932 5.991281 -0.148815 +v 0.089933 6.135281 -0.155743 +v 0.113936 6.287280 -0.197311 +v 0.141939 6.359281 -0.245806 +v 0.165942 6.391280 -0.287374 +v 0.153941 6.439281 -0.266590 +v 0.119956 6.439281 -0.207736 +v 0.119956 6.479280 -0.207736 +v 0.087952 6.535279 -0.152313 +v 0.071950 6.607280 -0.124600 +v 0.067949 6.671281 -0.117672 +v 0.071950 6.727280 -0.124600 +v 0.055948 6.751280 -0.096889 +v 0.087952 6.775281 -0.152313 +v 0.103954 6.815281 -0.180024 +v 0.127956 6.823281 -0.221591 +v 0.127956 6.871280 -0.221591 +v 0.316910 -3.284090 -1.182369 +v 0.316910 -2.760090 -1.182369 +v 0.329336 -2.760090 -1.228732 +v 0.337621 -2.728091 -1.259642 +v 0.337621 -2.642078 -1.259642 +v 0.325194 -2.602085 -1.213278 +v 0.308625 -2.600090 -1.151460 +v 0.286878 -2.524090 -1.070324 +v 0.266167 -2.356090 -0.993051 +v 0.259953 -2.256090 -0.969869 +v 0.262025 -2.192089 -0.977597 +v 0.278594 -2.160089 -1.039415 +v 0.284807 -2.128090 -1.062597 +v 0.284807 -2.072090 -1.062597 +v 0.278594 -2.040090 -1.039415 +v 0.241395 -1.996708 -0.900630 +v 0.170933 -1.819721 -0.637740 +v 0.146116 -1.673745 -0.545149 +v 0.132380 -1.530860 -0.493899 +v 0.114354 -1.365037 -0.426648 +v 0.110059 -1.183625 -0.410623 +v 0.116272 -1.127625 -0.433805 +v 0.140067 -1.127625 -0.522581 +v 0.150423 -1.079625 -0.561217 +v 0.150423 -0.903625 -0.561217 +v 0.135925 -0.855625 -0.507126 +v 0.106642 -0.855625 -0.397875 +v 0.000097 -3.284090 -1.224103 +v 0.000097 -2.760090 -1.224103 +v 0.000101 -2.760090 -1.272103 +v 0.000103 -2.728091 -1.304103 +v 0.000103 -2.642078 -1.304103 +v 0.000099 -2.602085 -1.256103 +v 0.000094 -2.600090 -1.192103 +v 0.000088 -2.524090 -1.108103 +v 0.000081 -2.356090 -1.028103 +v 0.000079 -2.256090 -1.004103 +v 0.000080 -2.192089 -1.012103 +v 0.000085 -2.160089 -1.076103 +v 0.000087 -2.128090 -1.100103 +v 0.000087 -2.072090 -1.100103 +v 0.000085 -2.040090 -1.076103 +v 0.000074 -1.996708 -0.932420 +v 0.000052 -1.819721 -0.660251 +v 0.000045 -1.673745 -0.564391 +v 0.000040 -1.530860 -0.511333 +v 0.000035 -1.365037 -0.441708 +v 0.000034 -1.183625 -0.425117 +v 0.000036 -1.127625 -0.449117 +v 0.000043 -1.127625 -0.541026 +v 0.000046 -1.079625 -0.581026 +v 0.000046 -0.903625 -0.581026 +v 0.000042 -0.855625 -0.525026 +v 0.000033 -0.855625 -0.411919 +v 0.000028 4.767281 -0.355758 +v 0.000032 4.865267 -0.401771 +v 0.000032 4.967279 -0.399774 +v 0.000028 5.023280 -0.351774 +v 0.000023 5.023280 -0.295774 +v 0.000023 5.791280 -0.295774 +v 0.000019 5.847281 -0.239774 +v 0.000015 5.847281 -0.187844 +v 0.000015 5.927280 -0.187844 +v 0.000019 5.927280 -0.243844 +v 0.000019 5.991281 -0.243844 +v 0.000014 5.991281 -0.171844 +v 0.000014 6.135281 -0.179844 +v 0.000018 6.287280 -0.227844 +v 0.000022 6.359281 -0.283844 +v 0.000026 6.391280 -0.331844 +v 0.000024 6.439281 -0.307844 +v 0.000019 6.439281 -0.239882 +v 0.000019 6.479280 -0.239882 +v 0.000014 6.535279 -0.175883 +v 0.000011 6.607280 -0.143882 +v 0.000011 6.671281 -0.135882 +v 0.000011 6.727280 -0.143882 +v 0.000009 6.751280 -0.111882 +v 0.000014 6.775281 -0.175883 +v 0.000016 6.815281 -0.207882 +v 0.000020 6.823281 -0.255882 +v 0.000020 6.871280 -0.255882 +v -0.316722 -3.284090 -1.182419 +v -0.316722 -2.760090 -1.182419 +v -0.329142 -2.760090 -1.228785 +v -0.337422 -2.728091 -1.259695 +v -0.337422 -2.642078 -1.259695 +v -0.325002 -2.602085 -1.213330 +v -0.308443 -2.600090 -1.151509 +v -0.286709 -2.524090 -1.070369 +v -0.266010 -2.356090 -0.993093 +v -0.259800 -2.256090 -0.969911 +v -0.261870 -2.192089 -0.977638 +v -0.278429 -2.160089 -1.039459 +v -0.284639 -2.128090 -1.062642 +v -0.284639 -2.072090 -1.062642 +v -0.278429 -2.040090 -1.039459 +v -0.241253 -1.996708 -0.900668 +v -0.170832 -1.819721 -0.637768 +v -0.146030 -1.673745 -0.545173 +v -0.132301 -1.530860 -0.493920 +v -0.114287 -1.365037 -0.426666 +v -0.109994 -1.183625 -0.410641 +v -0.116204 -1.127625 -0.433823 +v -0.139984 -1.127625 -0.522603 +v -0.150334 -1.079625 -0.561241 +v -0.150334 -0.903625 -0.561241 +v -0.135844 -0.855625 -0.507147 +v -0.106579 -0.855625 -0.397892 +v -0.037228 6.727280 -0.138982 +v -0.028948 6.751280 -0.108072 +v -0.611958 -3.284090 -1.060158 +v -0.611958 -2.760090 -1.060158 +v -0.635955 -2.760090 -1.101729 +v -0.651952 -2.728091 -1.129444 +v -0.651952 -2.642078 -1.129444 +v -0.627956 -2.602085 -1.087872 +v -0.595961 -2.600090 -1.032444 +v -0.553967 -2.524090 -0.959694 +v -0.513973 -2.356090 -0.890408 +v -0.501975 -2.256090 -0.869623 +v -0.505975 -2.192089 -0.876551 +v -0.537970 -2.160089 -0.931980 +v -0.549968 -2.128090 -0.952765 +v -0.549968 -2.072090 -0.952765 +v -0.537970 -2.040090 -0.931980 +v -0.466139 -1.996708 -0.807540 +v -0.330075 -1.819721 -0.571823 +v -0.282153 -1.673745 -0.488802 +v -0.255627 -1.530860 -0.442849 +v -0.220820 -1.365037 -0.382550 +v -0.212526 -1.183625 -0.368181 +v -0.224524 -1.127625 -0.388966 +v -0.270472 -1.127625 -0.468566 +v -0.290469 -1.079625 -0.503209 +v -0.290469 -0.903625 -0.503209 +v -0.262473 -0.855625 -0.454709 +v -0.205928 -0.855625 -0.356750 +v -0.177852 4.767281 -0.308111 +v -0.200855 4.865267 -0.347962 +v -0.199857 4.967279 -0.346232 +v -0.175860 5.023280 -0.304661 +v -0.147864 5.023280 -0.256161 +v -0.147864 5.791280 -0.256161 +v -0.119869 5.847281 -0.207661 +v -0.093908 5.847281 -0.162686 +v -0.093908 5.927280 -0.162686 +v -0.121903 5.927280 -0.211186 +v -0.121903 5.991281 -0.211186 +v -0.085909 5.991281 -0.148829 +v -0.089908 6.135281 -0.155757 +v -0.113905 6.287280 -0.197329 +v -0.141900 6.359281 -0.245829 +v -0.165897 6.391280 -0.287400 +v -0.153899 6.439281 -0.266614 +v -0.119923 6.439281 -0.207754 +v -0.119923 6.479280 -0.207754 +v -0.087928 6.535279 -0.152327 +v -0.071930 6.607280 -0.124612 +v -0.067931 6.671281 -0.117683 +v -0.071930 6.727280 -0.124612 +v -0.055932 6.751280 -0.096898 +v -0.087928 6.775281 -0.152327 +v -0.103925 6.815281 -0.180040 +v -0.127922 6.823281 -0.221612 +v -0.127922 6.871280 -0.221612 +v -0.865492 -3.284090 -0.865651 +v -0.865492 -2.760090 -0.865651 +v -0.899430 -2.760090 -0.899596 +v -0.922055 -2.728091 -0.922225 +v -0.922055 -2.642078 -0.922225 +v -0.888117 -2.602085 -0.888281 +v -0.842866 -2.600090 -0.843022 +v -0.783475 -2.524090 -0.783619 +v -0.726912 -2.356090 -0.727046 +v -0.709943 -2.256090 -0.710073 +v -0.715599 -2.192089 -0.715731 +v -0.760850 -2.160089 -0.760990 +v -0.777819 -2.128090 -0.777962 +v -0.777819 -2.072090 -0.777962 +v -0.760850 -2.040090 -0.760990 +v -0.659259 -1.996708 -0.659381 +v -0.466825 -1.819721 -0.466911 +v -0.399048 -1.673745 -0.399122 +v -0.361533 -1.530860 -0.361600 +v -0.312306 -1.365037 -0.312363 +v -0.300575 -1.183625 -0.300631 +v -0.317544 -1.127625 -0.317603 +v -0.382528 -1.127625 -0.382598 +v -0.410810 -1.079625 -0.410885 +v -0.410810 -0.903625 -0.410885 +v -0.371215 -0.855625 -0.371284 +v -0.291244 -0.855625 -0.291298 +v -0.251536 4.767281 -0.251582 +v -0.284069 4.865267 -0.284121 +v -0.132814 5.847281 -0.132838 +v -0.132814 5.927280 -0.132838 +v -0.172408 5.927280 -0.172440 +v -0.121501 5.991281 -0.121523 +v -0.127157 6.135281 -0.127181 +v -0.161095 6.287280 -0.161125 +v -0.200690 6.359281 -0.200727 +v -0.169607 6.439281 -0.169638 +v -0.124357 6.535279 -0.124380 +v -0.101731 6.607280 -0.101749 +v -0.096074 6.671281 -0.096092 +v -0.101731 6.727280 -0.101749 +v -0.079105 6.751280 -0.079120 +v -0.124357 6.775281 -0.124380 +v -0.146981 6.815281 -0.147008 +v -0.180919 6.871280 -0.180953 +v -1.060045 -3.284090 -0.612154 +v -1.060045 -2.760090 -0.612154 +v -1.101612 -2.760090 -0.636158 +v -1.129323 -2.728091 -0.652160 +v -1.129323 -2.642078 -0.652160 +v -1.087757 -2.602085 -0.628156 +v -1.032334 -2.600090 -0.596151 +v -0.959592 -2.524090 -0.554144 +v -0.890314 -2.356090 -0.514137 +v -0.869530 -2.256090 -0.502135 +v -0.876458 -2.192089 -0.506136 +v -0.931881 -2.160089 -0.538141 +v -0.952664 -2.128090 -0.550143 +v -0.952664 -2.072090 -0.550143 +v -0.931881 -2.040090 -0.538141 +v -0.807454 -1.996708 -0.466288 +v -0.571762 -1.819721 -0.330181 +v -0.488750 -1.673745 -0.282243 +v -0.442802 -1.530860 -0.255709 +v -0.382509 -1.365037 -0.220891 +v -0.368142 -1.183625 -0.212594 +v -0.388925 -1.127625 -0.224596 +v -0.468516 -1.127625 -0.270558 +v -0.503155 -1.079625 -0.290562 +v -0.503155 -0.903625 -0.290562 +v -0.454661 -0.855625 -0.262557 +v -0.356712 -0.855625 -0.205994 +v -0.308078 4.767281 -0.177909 +v -0.347925 4.865267 -0.200919 +v -0.346195 4.967279 -0.199920 +v -0.304628 5.023280 -0.175916 +v -0.256134 5.023280 -0.147912 +v -0.256134 5.791280 -0.147912 +v -0.207639 5.847281 -0.119907 +v -0.162669 5.847281 -0.093938 +v -0.162669 5.927280 -0.093938 +v -0.211163 5.927280 -0.121942 +v -0.211163 5.991281 -0.121942 +v -0.148813 5.991281 -0.085936 +v -0.155741 6.135281 -0.089937 +v -0.197308 6.287280 -0.113941 +v -0.245802 6.359281 -0.141946 +v -0.287369 6.391280 -0.165950 +v -0.266586 6.439281 -0.153948 +v -0.207732 6.439281 -0.119961 +v -0.207732 6.479280 -0.119961 +v -0.152311 6.535279 -0.087956 +v -0.124599 6.607280 -0.071953 +v -0.117671 6.671281 -0.067952 +v -0.124599 6.727280 -0.071953 +v -0.096887 6.751280 -0.055950 +v -0.152311 6.775281 -0.087956 +v -0.180021 6.815281 -0.103958 +v -0.221588 6.823281 -0.127962 +v -0.221588 6.871280 -0.127962 +v -1.182361 -3.284090 -0.316940 +v -1.182361 -2.760090 -0.316940 +v -1.228724 -2.760090 -0.329368 +v -1.259633 -2.728091 -0.337654 +v -1.259633 -2.642078 -0.337654 +v -1.213270 -2.602085 -0.325226 +v -1.151452 -2.600090 -0.308655 +v -1.070316 -2.524090 -0.286906 +v -0.993044 -2.356090 -0.266193 +v -0.969863 -2.256090 -0.259979 +v -0.977590 -2.192089 -0.262050 +v -1.039407 -2.160089 -0.278621 +v -1.062589 -2.128090 -0.284835 +v -1.062589 -2.072090 -0.284835 +v -1.039407 -2.040090 -0.278621 +v -0.900624 -1.996708 -0.241419 +v -0.637736 -1.819721 -0.170950 +v -0.545146 -1.673745 -0.146130 +v -0.493896 -1.530860 -0.132392 +v -0.426645 -1.365037 -0.114365 +v -0.410620 -1.183625 -0.110070 +v -0.433802 -1.127625 -0.116284 +v -0.522577 -1.127625 -0.140081 +v -0.561213 -1.079625 -0.150437 +v -0.561213 -0.903625 -0.150437 +v -0.507122 -0.855625 -0.135938 +v -0.397872 -0.855625 -0.106653 +v -0.343627 4.767281 -0.092112 +v -0.138976 6.727280 -0.037253 +v -0.215708 4.671280 0.000000 +v -0.271708 4.671280 0.000000 +v -0.303708 4.639273 0.000000 +v -0.303708 4.591273 0.000000 +v -0.275705 4.561275 0.000000 +v -0.331920 0.793487 0.000000 +v -0.403919 0.779474 0.000000 +v -0.419919 0.707474 0.000000 +v -0.403919 0.641487 0.000000 +v -0.363919 0.601487 0.000000 +v -0.403919 -0.543625 0.000000 +v -0.451919 -0.543625 0.000000 +v -0.483920 -0.583625 0.000000 +v -0.483920 -0.665634 0.000000 +v -0.453928 -0.695625 0.000000 +v -0.411927 -0.695618 0.000000 +v -0.397891 -0.695618 0.106613 +v -0.438461 -0.695625 0.117483 +v -0.467431 -0.665634 0.125246 +v -0.467431 -0.583625 0.125246 +v -0.436521 -0.543625 0.116963 +v -0.390156 -0.543625 0.104540 +v -0.351519 0.601487 0.094188 +v -0.390156 0.641487 0.104540 +v -0.405611 0.707474 0.108681 +v -0.390156 0.779474 0.104540 +v -0.320610 0.793487 0.085906 +v -0.231540 4.559279 0.062040 +v -0.356741 -0.695618 0.205960 +v -0.393115 -0.695625 0.226961 +v -0.419089 -0.665634 0.241956 +v -0.419089 -0.583625 0.241956 +v -0.391375 -0.543625 0.225956 +v -0.349806 -0.543625 0.201956 +v -0.315165 0.601487 0.181957 +v -0.349806 0.641487 0.201956 +v -0.363662 0.707474 0.209956 +v -0.349806 0.779474 0.201956 +v -0.287453 0.793487 0.165957 +v -0.207594 4.559279 0.119852 +v -0.238769 4.561275 0.137850 +v -0.263020 4.591273 0.151852 +v -0.263020 4.639273 0.151852 +v -0.235307 4.671280 0.135852 +v -0.186810 4.671280 0.107852 +v -0.291280 -0.695618 0.291273 +v -0.320980 -0.695625 0.320971 +v -0.342188 -0.665634 0.342179 +v -0.342188 -0.583625 0.342179 +v -0.319559 -0.543625 0.319551 +v -0.285618 -0.543625 0.285610 +v -0.257333 0.601487 0.257326 +v -0.285618 0.641487 0.285610 +v -0.296931 0.707474 0.296924 +v -0.285618 0.779474 0.285610 +v -0.234706 0.793487 0.234700 +v -0.169501 4.559279 0.169497 +v -0.205970 -0.695618 0.356736 +v -0.226971 -0.695625 0.393109 +v -0.241967 -0.665634 0.419083 +v -0.241967 -0.583625 0.419083 +v -0.225966 -0.543625 0.391369 +v -0.201966 -0.543625 0.349801 +v -0.181965 0.601487 0.315160 +v -0.201966 0.641487 0.349801 +v -0.209966 0.707474 0.363657 +v -0.201966 0.779474 0.349801 +v -0.165965 0.793487 0.287448 +v -0.119858 4.559279 0.207591 +v -0.137857 4.561275 0.238765 +v -0.151859 4.591273 0.263016 +v -0.151859 4.639273 0.263016 +v -0.135858 4.671280 0.235304 +v -0.107857 4.671280 0.186807 +v -0.106623 -0.695618 0.397889 +v -0.117495 -0.695625 0.438458 +v -0.125258 -0.665634 0.467428 +v -0.125258 -0.583625 0.467428 +v -0.116975 -0.543625 0.436518 +v -0.104550 -0.543625 0.390153 +v -0.094197 0.601487 0.351517 +v -0.104550 0.641487 0.390153 +v -0.108692 0.707474 0.405608 +v -0.104550 0.779474 0.390153 +v -0.085914 0.793487 0.320608 +v -0.062046 4.559279 0.231539 +v -0.078612 4.639273 0.293358 +v -0.070329 4.671280 0.262448 +v -0.055834 4.671280 0.208357 +v -0.000011 -0.695618 0.411927 +v -0.000012 -0.695625 0.453928 +v -0.000013 -0.665634 0.483920 +v -0.000013 -0.583625 0.483920 +v -0.000012 -0.543625 0.451919 +v -0.000011 -0.543625 0.403919 +v -0.000010 0.601487 0.363919 +v -0.000011 0.641487 0.403919 +v -0.000011 0.707474 0.419919 +v -0.000011 0.779474 0.403919 +v -0.000009 0.793487 0.331920 +v -0.000006 4.559279 0.239708 +v -0.000007 4.561275 0.275705 +v -0.000008 4.591273 0.303708 +v -0.000008 4.639273 0.303708 +v -0.000007 4.671280 0.271708 +v -0.000006 4.671280 0.215708 +v 0.106602 -0.695618 0.397894 +v 0.117472 -0.695625 0.438464 +v 0.125233 -0.665634 0.467435 +v 0.125233 -0.583625 0.467435 +v 0.116952 -0.543625 0.436524 +v 0.104530 -0.543625 0.390159 +v 0.094178 0.601487 0.351522 +v 0.104530 0.641487 0.390159 +v 0.108671 0.707474 0.405614 +v 0.104530 0.779474 0.390159 +v 0.085897 0.793487 0.320613 +v 0.062034 4.559279 0.231542 +v 0.078596 4.591273 0.293362 +v 0.078596 4.639273 0.293362 +v 0.055823 4.671280 0.208360 +v 0.205951 -0.695618 0.356746 +v 0.226950 -0.695625 0.393121 +v 0.241945 -0.665634 0.419095 +v 0.241945 -0.583625 0.419095 +v 0.225946 -0.543625 0.391381 +v 0.201947 -0.543625 0.349811 +v 0.181948 0.601487 0.315169 +v 0.201947 0.641487 0.349811 +v 0.209947 0.707474 0.363668 +v 0.201947 0.779474 0.349811 +v 0.165950 0.793487 0.287457 +v 0.119847 4.559279 0.207597 +v 0.137844 4.561275 0.238772 +v 0.151845 4.591273 0.263024 +v 0.151845 4.639273 0.263024 +v 0.135846 4.671280 0.235311 +v 0.107847 4.671280 0.186812 +v 0.291265 -0.695618 0.291288 +v 0.320963 -0.695625 0.320988 +v 0.342170 -0.665634 0.342197 +v 0.342170 -0.583625 0.342197 +v 0.319542 -0.543625 0.319568 +v 0.285603 -0.543625 0.285625 +v 0.257319 0.601487 0.257340 +v 0.285603 0.641487 0.285625 +v 0.296916 0.707474 0.296939 +v 0.285603 0.779474 0.285625 +v 0.234694 0.793487 0.234712 +v 0.169492 4.559279 0.169506 +v 0.214745 4.591273 0.214762 +v 0.356730 -0.695618 0.205979 +v 0.393103 -0.695625 0.226981 +v 0.419076 -0.665634 0.241978 +v 0.419076 -0.583625 0.241978 +v 0.391363 -0.543625 0.225977 +v 0.349795 -0.543625 0.201975 +v 0.315155 0.601487 0.181973 +v 0.349795 0.641487 0.201975 +v 0.363651 0.707474 0.209975 +v 0.349795 0.779474 0.201975 +v 0.287444 0.793487 0.165973 +v 0.207588 4.559279 0.119863 +v 0.238761 4.561275 0.137863 +v 0.263012 4.591273 0.151866 +v 0.263012 4.639273 0.151866 +v 0.235300 4.671280 0.135864 +v 0.186804 4.671280 0.107862 +v 0.397886 -0.695618 0.106634 +v 0.438455 -0.695625 0.117506 +v 0.467425 -0.665634 0.125270 +v 0.467425 -0.583625 0.125270 +v 0.436515 -0.543625 0.116986 +v 0.390151 -0.543625 0.104561 +v 0.351514 0.601487 0.094206 +v 0.390151 0.641487 0.104561 +v 0.405605 0.707474 0.108703 +v 0.390151 0.779474 0.104561 +v 0.320606 0.793487 0.085923 +v 0.231537 4.559279 0.062052 +v 0.208355 4.671280 0.055839 +v 0.411927 -0.695618 0.000022 +v 0.453928 -0.695625 0.000024 +v 0.483920 -0.665634 0.000025 +v 0.483920 -0.583625 0.000025 +v 0.451919 -0.543625 0.000024 +v 0.403919 -0.543625 0.000021 +v 0.363919 0.601487 0.000019 +v 0.403919 0.641487 0.000021 +v 0.419919 0.707474 0.000022 +v 0.403919 0.779474 0.000021 +v 0.331920 0.793487 0.000017 +v 0.239708 4.559279 0.000013 +v 0.275705 4.561275 0.000015 +v 0.303708 4.591273 0.000016 +v 0.303708 4.639273 0.000016 +v 0.271708 4.671280 0.000014 +v 0.215708 4.671280 0.000011 +v 0.397897 -0.695618 -0.106592 +v 0.438467 -0.695625 -0.117460 +v 0.467438 -0.665634 -0.125221 +v 0.467438 -0.583625 -0.125221 +v 0.436527 -0.543625 -0.116940 +v 0.390162 -0.543625 -0.104520 +v 0.351524 0.601487 -0.094169 +v 0.390162 0.641487 -0.104520 +v 0.405617 0.707474 -0.108660 +v 0.390162 0.779474 -0.104520 +v 0.320615 0.793487 -0.085889 +v 0.231544 4.559279 -0.062028 +v 0.356752 -0.695618 -0.205942 +v 0.393127 -0.695625 -0.226940 +v 0.419102 -0.665634 -0.241934 +v 0.419102 -0.583625 -0.241934 +v 0.391387 -0.543625 -0.225935 +v 0.349817 -0.543625 -0.201938 +v 0.315174 0.601487 -0.181940 +v 0.349817 0.641487 -0.201938 +v 0.363673 0.707474 -0.209937 +v 0.349817 0.779474 -0.201938 +v 0.287461 0.793487 -0.165942 +v 0.207601 4.559279 -0.119841 +v 0.238776 4.561275 -0.137838 +v 0.263028 4.591273 -0.151838 +v 0.263028 4.639273 -0.151838 +v 0.235314 4.671280 -0.135840 +v 0.186815 4.671280 -0.107842 +v 0.291296 -0.695618 -0.291257 +v 0.320997 -0.695625 -0.320954 +v 0.342206 -0.665634 -0.342161 +v 0.342206 -0.583625 -0.342161 +v 0.319576 -0.543625 -0.319534 +v 0.285633 -0.543625 -0.285595 +v 0.257347 0.601487 -0.257313 +v 0.285633 0.641487 -0.285595 +v 0.296947 0.707474 -0.296908 +v 0.285633 0.779474 -0.285595 +v 0.234718 0.793487 -0.234687 +v 0.169510 4.559279 -0.169488 +v 0.205988 -0.695618 -0.356725 +v 0.226992 -0.695625 -0.393097 +v 0.241989 -0.665634 -0.419070 +v 0.241989 -0.583625 -0.419070 +v 0.225987 -0.543625 -0.391358 +v 0.201984 -0.543625 -0.349790 +v 0.181982 0.601487 -0.315150 +v 0.201984 0.641487 -0.349790 +v 0.209985 0.707474 -0.363646 +v 0.201984 0.779474 -0.349790 +v 0.165980 0.793487 -0.287440 +v 0.119869 4.559279 -0.207585 +v 0.137869 4.561275 -0.238758 +v 0.151872 4.591273 -0.263008 +v 0.151872 4.639273 -0.263008 +v 0.135870 4.671280 -0.235297 +v 0.107867 4.671280 -0.186801 +v 0.106644 -0.695618 -0.397883 +v 0.117518 -0.695625 -0.438452 +v 0.125283 -0.665634 -0.467421 +v 0.125283 -0.583625 -0.467421 +v 0.116998 -0.543625 -0.436511 +v 0.104571 -0.543625 -0.390148 +v 0.094215 0.601487 -0.351512 +v 0.104571 0.641487 -0.390148 +v 0.108713 0.707474 -0.405602 +v 0.104571 0.779474 -0.390148 +v 0.085931 0.793487 -0.320604 +v 0.062058 4.559279 -0.231535 +v 0.070343 4.671280 -0.262444 +v 0.000033 -0.695618 -0.411927 +v 0.000036 -0.695625 -0.453928 +v 0.000038 -0.665634 -0.483920 +v 0.000038 -0.583625 -0.483920 +v 0.000036 -0.543625 -0.451919 +v 0.000032 -0.543625 -0.403919 +v 0.000029 0.601487 -0.363919 +v 0.000032 0.641487 -0.403919 +v 0.000033 0.707474 -0.419919 +v 0.000032 0.779474 -0.403919 +v 0.000026 0.793487 -0.331920 +v 0.000019 4.559279 -0.239708 +v 0.000022 4.561275 -0.275705 +v 0.000024 4.591273 -0.303708 +v 0.000024 4.639273 -0.303708 +v 0.000022 4.671280 -0.271708 +v 0.000017 4.671280 -0.215708 +v -0.106581 -0.695618 -0.397900 +v -0.117449 -0.695625 -0.438471 +v -0.125209 -0.665634 -0.467441 +v -0.125209 -0.583625 -0.467441 +v -0.116929 -0.543625 -0.436530 +v -0.104509 -0.543625 -0.390165 +v -0.094160 0.601487 -0.351527 +v -0.104509 0.641487 -0.390165 +v -0.108649 0.707474 -0.405620 +v -0.104509 0.779474 -0.390165 +v -0.085880 0.793487 -0.320617 +v -0.062022 4.559279 -0.231545 +v -0.078581 4.591273 -0.293366 +v -0.205932 -0.695618 -0.356757 +v -0.226929 -0.695625 -0.393133 +v -0.241923 -0.665634 -0.419108 +v -0.241923 -0.583625 -0.419108 +v -0.225925 -0.543625 -0.391393 +v -0.201929 -0.543625 -0.349822 +v -0.181932 0.601487 -0.315179 +v -0.201929 0.641487 -0.349822 +v -0.209928 0.707474 -0.363679 +v -0.201929 0.779474 -0.349822 +v -0.165935 0.793487 -0.287466 +v -0.119836 4.559279 -0.207604 +v -0.137832 4.561275 -0.238780 +v -0.151831 4.591273 -0.263032 +v -0.151831 4.639273 -0.263032 +v -0.135833 4.671280 -0.235318 +v -0.107838 4.671280 -0.186818 +v -0.291250 -0.695618 -0.291303 +v -0.320946 -0.695625 -0.321005 +v -0.342152 -0.665634 -0.342215 +v -0.342152 -0.583625 -0.342215 +v -0.319526 -0.543625 -0.319584 +v -0.285588 -0.543625 -0.285640 +v -0.257306 0.601487 -0.257353 +v -0.285588 0.641487 -0.285640 +v -0.296900 0.707474 -0.296955 +v -0.285588 0.779474 -0.285640 +v -0.234681 0.793487 -0.234725 +v -0.169484 4.559279 -0.169515 +v -0.152515 4.671280 -0.152543 +v -0.356719 -0.695618 -0.205998 +v -0.393091 -0.695625 -0.227002 +v -0.419064 -0.665634 -0.242000 +v -0.419064 -0.583625 -0.242000 +v -0.391352 -0.543625 -0.225997 +v -0.349785 -0.543625 -0.201993 +v -0.315146 0.601487 -0.181990 +v -0.349785 0.641487 -0.201993 +v -0.363640 0.707474 -0.209995 +v -0.349785 0.779474 -0.201993 +v -0.287435 0.793487 -0.165988 +v -0.207582 4.559279 -0.119874 +v -0.238754 4.561275 -0.137876 +v -0.263004 4.591273 -0.151879 +v -0.263004 4.639273 -0.151879 +v -0.235293 4.671280 -0.135877 +v -0.186798 4.671280 -0.107872 +v -0.397880 -0.695618 -0.106655 +v -0.438449 -0.695625 -0.117529 +v -0.467418 -0.665634 -0.125295 +v -0.467418 -0.583625 -0.125295 +v -0.436508 -0.543625 -0.117009 +v -0.390145 -0.543625 -0.104581 +v -0.351509 0.601487 -0.094225 +v -0.390145 0.641487 -0.104581 +v -0.405600 0.707474 -0.108724 +v -0.390145 0.779474 -0.104581 +v -0.320601 0.793487 -0.085940 +v -0.231534 4.559279 -0.062064 +v -0.208352 4.671280 -0.055850 +v 0.042099 0.760516 0.319849 +v 0.049195 0.755443 0.373756 +v 0.049945 0.707794 0.379455 +v 0.048430 0.657846 0.367941 +v 0.043001 0.613739 0.326701 +v 0.047878 -0.544789 0.363746 +v -0.140407 -0.544789 0.338953 +v -0.291071 -0.544789 0.223341 +v -0.363745 -0.544789 0.047887 +v 0.223334 -0.544789 0.291076 +v 0.200588 0.613739 0.261432 +v 0.225910 0.657846 0.294434 +v 0.232979 0.707794 0.303647 +v 0.229480 0.755443 0.299087 +v 0.196382 0.760516 0.255949 +v -0.123463 0.760516 0.298048 +v -0.255945 0.760516 0.196388 +v -0.319848 0.760516 0.042108 +v -0.373755 0.755443 0.049205 +v -0.299081 0.755444 0.229487 +v -0.144271 0.755443 0.348281 +v -0.142026 0.657846 0.342863 +v -0.126108 0.613739 0.304434 +v -0.146471 0.707794 0.353592 +v -0.303641 0.707794 0.232987 +v -0.261427 0.613739 0.200596 +v -0.294428 0.657846 0.225917 +v -0.379454 0.707794 0.049955 +v -0.367940 0.657846 0.048439 +v -0.326700 0.613739 0.043010 +v -0.298039 0.760516 -0.123487 +v -0.196368 0.760516 -0.255960 +v -0.042083 0.760516 -0.319851 +v -0.049175 0.755443 -0.373759 +v -0.049925 0.707794 -0.379458 +v -0.048410 0.657846 -0.367944 +v -0.042984 0.613739 -0.326704 +v -0.200575 0.613739 -0.261443 +v -0.225894 0.657846 -0.294446 +v -0.232963 0.707794 -0.303660 +v -0.229464 0.755443 -0.299099 +v -0.348270 0.755443 -0.144298 +v -0.353580 0.707794 -0.146499 +v -0.342852 0.657846 -0.142053 +v -0.304424 0.613739 -0.126132 +v -0.338942 -0.544789 -0.140434 +v -0.223319 -0.544789 -0.291089 +v -0.047858 -0.544789 -0.363749 +v 0.140425 -0.544789 -0.338946 +v 0.291083 -0.544789 -0.223326 +v 0.363748 -0.544789 -0.047868 +v 0.123478 0.760516 -0.298043 +v 0.144289 0.755444 -0.348273 +v 0.146489 0.707794 -0.353584 +v 0.142044 0.657846 -0.342855 +v 0.126124 0.613739 -0.304427 +v 0.261438 0.613739 -0.200582 +v 0.294440 0.657846 -0.225902 +v 0.303653 0.707794 -0.232971 +v 0.299093 0.755444 -0.229471 +v 0.255955 0.760516 -0.196375 +v 0.319851 0.760516 -0.042092 +v 0.373758 0.755443 -0.049186 +v 0.379457 0.707794 -0.049935 +v 0.367943 0.657846 -0.048420 +v 0.326702 0.613739 -0.042993 +v 0.298045 0.760516 0.123471 +v 0.348277 0.755444 0.144280 +v 0.353588 0.707794 0.146480 +v 0.342859 0.657846 0.142035 +v 0.304430 0.613739 0.126115 +v 0.338950 -0.544789 0.140416 +v -0.026067 4.543957 0.197960 +v -0.038002 0.778164 0.288601 +v -0.121553 4.543957 0.158406 +v -0.177209 0.778164 0.230936 +v -0.184470 4.543957 0.076408 +v -0.268934 0.778164 0.111395 +v -0.197958 4.543957 -0.026072 +v -0.288597 0.778165 -0.038010 +v 0.184475 4.543957 -0.076399 +v 0.268941 0.778164 -0.111380 +v 0.121561 4.543957 -0.158400 +v 0.177221 0.778164 -0.230926 +v 0.026077 4.543957 -0.197959 +v 0.038017 0.778164 -0.288599 +v -0.076395 4.543957 -0.184476 +v -0.111373 0.778164 -0.268943 +v -0.158396 4.543957 -0.121565 +v -0.230922 0.778164 -0.177227 +v 0.197959 4.543957 0.026072 +v 0.288599 0.778164 0.038010 +v 0.158403 4.543957 0.121557 +v 0.230932 0.778164 0.177215 +v 0.076404 4.543957 0.184472 +v 0.111387 0.778164 0.268937 +v -0.231537 4.559279 -0.000012 +# 4440 vertices + +# 0 vertex parms + +# 0 texture vertices + +# 0 normals + +g globes +f 1669 1692 1691 +f 1688 1692 1687 +f 1684 1692 1683 +f 1680 1692 1679 +f 1676 1692 1675 +f 1672 1692 1671 +f 1645 1669 1691 1667 +f 1664 1688 1687 1663 +f 1660 1684 1683 1659 +f 1656 1680 1679 1655 +f 1652 1676 1675 1651 +f 1648 1672 1671 1647 +f 1621 1645 1667 1643 +f 1640 1664 1663 1639 +f 1636 1660 1659 1635 +f 1632 1656 1655 1631 +f 1628 1652 1651 1627 +f 1624 1648 1647 1623 +f 1597 1621 1643 1619 +f 1616 1640 1639 1615 +f 1612 1636 1635 1611 +f 1608 1632 1631 1607 +f 1604 1628 1627 1603 +f 1600 1624 1623 1599 +f 1573 1597 1619 1595 +f 1592 1616 1615 1591 +f 1588 1612 1611 1587 +f 1584 1608 1607 1583 +f 1580 1604 1603 1579 +f 1576 1600 1599 1575 +f 1549 1573 1595 1571 +f 1568 1592 1591 1567 +f 1564 1588 1587 1563 +f 1560 1584 1583 1559 +f 1556 1580 1579 1555 +f 1552 1576 1575 1551 +f 1525 1549 1571 1547 +f 1544 1568 1567 1543 +f 1540 1564 1563 1539 +f 1536 1560 1559 1535 +f 1532 1556 1555 1531 +f 1528 1552 1551 1527 +f 1501 1525 1547 1523 +f 1520 1544 1543 1519 +f 1516 1540 1539 1515 +f 1512 1536 1535 1511 +f 1508 1532 1531 1507 +f 1504 1528 1527 1503 +f 1477 1501 1523 1499 +f 1496 1520 1519 1495 +f 1492 1516 1515 1491 +f 1488 1512 1511 1487 +f 1484 1508 1507 1483 +f 1480 1504 1503 1479 +f 1453 1477 1499 1475 +f 1472 1496 1495 1471 +f 1468 1492 1491 1467 +f 1464 1488 1487 1463 +f 1460 1484 1483 1459 +f 1456 1480 1479 1455 +f 1429 1453 1475 1451 +f 1448 1472 1471 1447 +f 1444 1468 1467 1443 +f 1440 1464 1463 1439 +f 1436 1460 1459 1435 +f 1432 1456 1455 1431 +f 1427 1429 1451 +f 1427 1448 1447 +f 1427 1444 1443 +f 1427 1440 1439 +f 1427 1436 1435 +f 1427 1432 1431 +f 1403 1426 1425 +f 1422 1426 1421 +f 1418 1426 1417 +f 1414 1426 1413 +f 1410 1426 1409 +f 1406 1426 1405 +f 1379 1403 1425 1401 +f 1398 1422 1421 1397 +f 1394 1418 1417 1393 +f 1390 1414 1413 1389 +f 1386 1410 1409 1385 +f 1382 1406 1405 1381 +f 1355 1379 1401 1377 +f 1374 1398 1397 1373 +f 1370 1394 1393 1369 +f 1366 1390 1389 1365 +f 1362 1386 1385 1361 +f 1358 1382 1381 1357 +f 1331 1355 1377 1353 +f 1350 1374 1373 1349 +f 1346 1370 1369 1345 +f 1342 1366 1365 1341 +f 1338 1362 1361 1337 +f 1334 1358 1357 1333 +f 1307 1331 1353 1329 +f 1326 1350 1349 1325 +f 1322 1346 1345 1321 +f 1318 1342 1341 1317 +f 1314 1338 1337 1313 +f 1310 1334 1333 1309 +f 1283 1307 1329 1305 +f 1302 1326 1325 1301 +f 1298 1322 1321 1297 +f 1294 1318 1317 1293 +f 1290 1314 1313 1289 +f 1286 1310 1309 1285 +f 1259 1283 1305 1281 +f 1278 1302 1301 1277 +f 1274 1298 1297 1273 +f 1270 1294 1293 1269 +f 1266 1290 1289 1265 +f 1262 1286 1285 1261 +f 1235 1259 1281 1257 +f 1254 1278 1277 1253 +f 1250 1274 1273 1249 +f 1246 1270 1269 1245 +f 1242 1266 1265 1241 +f 1238 1262 1261 1237 +f 1211 1235 1257 1233 +f 1230 1254 1253 1229 +f 1226 1250 1249 1225 +f 1222 1246 1245 1221 +f 1218 1242 1241 1217 +f 1214 1238 1237 1213 +f 1187 1211 1233 1209 +f 1206 1230 1229 1205 +f 1202 1226 1225 1201 +f 1198 1222 1221 1197 +f 1194 1218 1217 1193 +f 1190 1214 1213 1189 +f 1163 1187 1209 1185 +f 1182 1206 1205 1181 +f 1178 1202 1201 1177 +f 1174 1198 1197 1173 +f 1170 1194 1193 1169 +f 1166 1190 1189 1165 +f 1161 1163 1185 +f 1161 1182 1181 +f 1161 1178 1177 +f 1161 1174 1173 +f 1161 1170 1169 +f 1161 1166 1165 +f 531 532 530 +f 527 532 526 +f 523 532 522 +f 519 532 518 +f 515 532 514 +f 511 532 510 +f 507 531 530 506 +f 503 527 526 502 +f 499 523 522 498 +f 495 519 518 494 +f 491 515 514 490 +f 487 511 510 486 +f 483 507 506 482 +f 479 503 502 478 +f 475 499 498 474 +f 471 495 494 470 +f 467 491 490 466 +f 463 487 486 462 +f 459 483 482 458 +f 455 479 478 454 +f 451 475 474 450 +f 447 471 470 446 +f 443 467 466 442 +f 439 463 462 438 +f 435 459 458 434 +f 431 455 454 430 +f 427 451 450 426 +f 423 447 446 422 +f 419 443 442 418 +f 415 439 438 414 +f 411 435 434 410 +f 407 431 430 406 +f 403 427 426 402 +f 399 423 422 398 +f 395 419 418 394 +f 391 415 414 390 +f 387 411 410 386 +f 383 407 406 382 +f 379 403 402 378 +f 375 399 398 374 +f 371 395 394 370 +f 367 391 390 366 +f 363 387 386 362 +f 359 383 382 358 +f 355 379 378 354 +f 351 375 374 350 +f 347 371 370 346 +f 343 367 366 342 +f 339 363 362 338 +f 335 359 358 334 +f 331 355 354 330 +f 327 351 350 326 +f 323 347 346 322 +f 319 343 342 318 +f 315 339 338 314 +f 311 335 334 310 +f 307 331 330 306 +f 303 327 326 302 +f 299 323 322 298 +f 295 319 318 294 +f 291 315 314 290 +f 287 311 310 286 +f 283 307 306 282 +f 279 303 302 278 +f 275 299 298 274 +f 271 295 294 270 +f 267 291 290 +f 267 287 286 +f 267 283 282 +f 267 279 278 +f 267 275 274 +f 267 271 270 +f 265 266 264 +f 261 266 260 +f 257 266 256 +f 253 266 252 +f 249 266 248 +f 245 266 244 +f 241 265 264 240 +f 237 261 260 236 +f 233 257 256 232 +f 229 253 252 228 +f 225 249 248 224 +f 221 245 244 220 +f 217 241 240 216 +f 213 237 236 212 +f 209 233 232 208 +f 205 229 228 204 +f 201 225 224 200 +f 197 221 220 196 +f 193 217 216 192 +f 189 213 212 188 +f 185 209 208 184 +f 181 205 204 180 +f 177 201 200 176 +f 173 197 196 172 +f 169 193 192 168 +f 165 189 188 164 +f 161 185 184 160 +f 157 181 180 156 +f 153 177 176 152 +f 149 173 172 148 +f 145 169 168 144 +f 141 165 164 140 +f 137 161 160 136 +f 133 157 156 132 +f 129 153 152 128 +f 125 149 148 124 +f 121 145 144 120 +f 117 141 140 116 +f 113 137 136 112 +f 109 133 132 108 +f 105 129 128 104 +f 101 125 124 100 +f 97 121 120 96 +f 93 117 116 92 +f 89 113 112 88 +f 85 109 108 84 +f 81 105 104 80 +f 77 101 100 76 +f 73 97 96 72 +f 69 93 92 68 +f 65 89 88 64 +f 61 85 84 60 +f 57 81 80 56 +f 53 77 76 52 +f 49 73 72 48 +f 45 69 68 44 +f 41 65 64 40 +f 37 61 60 36 +f 33 57 56 32 +f 29 53 52 28 +f 25 49 48 24 +f 21 45 44 20 +f 17 41 40 16 +f 13 37 36 12 +f 9 33 32 8 +f 5 29 28 4 +f 1 25 24 +f 1 21 20 +f 1 17 16 +f 1 13 12 +f 1 9 8 +f 1 5 4 +f 1 4 3 +f 1 8 7 +f 1 12 11 +f 1 16 15 +f 1 20 19 +f 1 24 23 +f 4 28 27 3 +f 8 32 31 7 +f 12 36 35 11 +f 16 40 39 15 +f 20 44 43 19 +f 24 48 47 23 +f 28 52 51 27 +f 32 56 55 31 +f 36 60 59 35 +f 40 64 63 39 +f 44 68 67 43 +f 48 72 71 47 +f 52 76 75 51 +f 56 80 79 55 +f 60 84 83 59 +f 64 88 87 63 +f 68 92 91 67 +f 72 96 95 71 +f 76 100 99 75 +f 80 104 103 79 +f 84 108 107 83 +f 88 112 111 87 +f 92 116 115 91 +f 96 120 119 95 +f 100 124 123 99 +f 104 128 127 103 +f 108 132 131 107 +f 112 136 135 111 +f 116 140 139 115 +f 120 144 143 119 +f 124 148 147 123 +f 128 152 151 127 +f 132 156 155 131 +f 136 160 159 135 +f 140 164 163 139 +f 144 168 167 143 +f 148 172 171 147 +f 152 176 175 151 +f 156 180 179 155 +f 160 184 183 159 +f 164 188 187 163 +f 168 192 191 167 +f 172 196 195 171 +f 176 200 199 175 +f 180 204 203 179 +f 184 208 207 183 +f 188 212 211 187 +f 192 216 215 191 +f 196 220 219 195 +f 200 224 223 199 +f 204 228 227 203 +f 208 232 231 207 +f 212 236 235 211 +f 216 240 239 215 +f 220 244 243 219 +f 224 248 247 223 +f 228 252 251 227 +f 232 256 255 231 +f 236 260 259 235 +f 240 264 263 239 +f 244 266 243 +f 248 266 247 +f 252 266 251 +f 256 266 255 +f 260 266 259 +f 264 266 263 +f 267 270 268 +f 267 274 273 +f 267 278 277 +f 267 282 281 +f 267 286 285 +f 267 290 289 +f 270 294 292 268 +f 274 298 297 273 +f 278 302 301 277 +f 282 306 305 281 +f 286 310 309 285 +f 290 314 313 289 +f 294 318 316 292 +f 298 322 321 297 +f 302 326 325 301 +f 306 330 329 305 +f 310 334 333 309 +f 314 338 337 313 +f 318 342 340 316 +f 322 346 345 321 +f 326 350 349 325 +f 330 354 353 329 +f 334 358 357 333 +f 338 362 361 337 +f 342 366 364 340 +f 346 370 369 345 +f 350 374 373 349 +f 354 378 377 353 +f 358 382 381 357 +f 362 386 385 361 +f 366 390 388 364 +f 370 394 393 369 +f 374 398 397 373 +f 378 402 401 377 +f 382 406 405 381 +f 386 410 409 385 +f 390 414 412 388 +f 394 418 417 393 +f 398 422 421 397 +f 402 426 425 401 +f 406 430 429 405 +f 410 434 433 409 +f 414 438 436 412 +f 418 442 441 417 +f 422 446 445 421 +f 426 450 449 425 +f 430 454 453 429 +f 434 458 457 433 +f 438 462 460 436 +f 442 466 465 441 +f 446 470 469 445 +f 450 474 473 449 +f 454 478 477 453 +f 458 482 481 457 +f 462 486 484 460 +f 466 490 489 465 +f 470 494 493 469 +f 474 498 497 473 +f 478 502 501 477 +f 482 506 505 481 +f 486 510 508 484 +f 490 514 513 489 +f 494 518 517 493 +f 498 522 521 497 +f 502 526 525 501 +f 506 530 529 505 +f 510 532 508 +f 514 532 513 +f 518 532 517 +f 522 532 521 +f 526 532 525 +f 530 532 529 +f 1161 1162 1163 +f 1161 1167 1166 +f 1161 1171 1170 +f 1161 1175 1174 +f 1161 1179 1178 +f 1161 1183 1182 +f 1162 1186 1187 1163 +f 1167 1191 1190 1166 +f 1171 1195 1194 1170 +f 1175 1199 1198 1174 +f 1179 1203 1202 1178 +f 1183 1207 1206 1182 +f 1186 1210 1211 1187 +f 1191 1215 1214 1190 +f 1195 1219 1218 1194 +f 1199 1223 1222 1198 +f 1203 1227 1226 1202 +f 1207 1231 1230 1206 +f 1210 1234 1235 1211 +f 1215 1239 1238 1214 +f 1219 1243 1242 1218 +f 1223 1247 1246 1222 +f 1227 1251 1250 1226 +f 1231 1255 1254 1230 +f 1234 1258 1259 1235 +f 1239 1263 1262 1238 +f 1243 1267 1266 1242 +f 1247 1271 1270 1246 +f 1251 1275 1274 1250 +f 1255 1279 1278 1254 +f 1258 1282 1283 1259 +f 1263 1287 1286 1262 +f 1267 1291 1290 1266 +f 1271 1295 1294 1270 +f 1275 1299 1298 1274 +f 1279 1303 1302 1278 +f 1282 1306 1307 1283 +f 1287 1311 1310 1286 +f 1291 1315 1314 1290 +f 1295 1319 1318 1294 +f 1299 1323 1322 1298 +f 1303 1327 1326 1302 +f 1306 1330 1331 1307 +f 1311 1335 1334 1310 +f 1315 1339 1338 1314 +f 1319 1343 1342 1318 +f 1323 1347 1346 1322 +f 1327 1351 1350 1326 +f 1330 1354 1355 1331 +f 1335 1359 1358 1334 +f 1339 1363 1362 1338 +f 1343 1367 1366 1342 +f 1347 1371 1370 1346 +f 1351 1375 1374 1350 +f 1354 1378 1379 1355 +f 1359 1383 1382 1358 +f 1363 1387 1386 1362 +f 1367 1391 1390 1366 +f 1371 1395 1394 1370 +f 1375 1399 1398 1374 +f 1378 1402 1403 1379 +f 1383 1407 1406 1382 +f 1387 1411 1410 1386 +f 1391 1415 1414 1390 +f 1395 1419 1418 1394 +f 1399 1423 1422 1398 +f 1402 1426 1403 +f 1407 1426 1406 +f 1411 1426 1410 +f 1415 1426 1414 +f 1419 1426 1418 +f 1423 1426 1422 +f 1427 1428 1429 +f 1427 1433 1432 +f 1427 1437 1436 +f 1427 1441 1440 +f 1427 1445 1444 +f 1427 1449 1448 +f 1428 1452 1453 1429 +f 1433 1457 1456 1432 +f 1437 1461 1460 1436 +f 1441 1465 1464 1440 +f 1445 1469 1468 1444 +f 1449 1473 1472 1448 +f 1452 1476 1477 1453 +f 1457 1481 1480 1456 +f 1461 1485 1484 1460 +f 1465 1489 1488 1464 +f 1469 1493 1492 1468 +f 1473 1497 1496 1472 +f 1476 1500 1501 1477 +f 1481 1505 1504 1480 +f 1485 1509 1508 1484 +f 1489 1513 1512 1488 +f 1493 1517 1516 1492 +f 1497 1521 1520 1496 +f 1500 1524 1525 1501 +f 1505 1529 1528 1504 +f 1509 1533 1532 1508 +f 1513 1537 1536 1512 +f 1517 1541 1540 1516 +f 1521 1545 1544 1520 +f 1524 1548 1549 1525 +f 1529 1553 1552 1528 +f 1533 1557 1556 1532 +f 1537 1561 1560 1536 +f 1541 1565 1564 1540 +f 1545 1569 1568 1544 +f 1548 1572 1573 1549 +f 1553 1577 1576 1552 +f 1557 1581 1580 1556 +f 1561 1585 1584 1560 +f 1565 1589 1588 1564 +f 1569 1593 1592 1568 +f 1572 1596 1597 1573 +f 1577 1601 1600 1576 +f 1581 1605 1604 1580 +f 1585 1609 1608 1584 +f 1589 1613 1612 1588 +f 1593 1617 1616 1592 +f 1596 1620 1621 1597 +f 1601 1625 1624 1600 +f 1605 1629 1628 1604 +f 1609 1633 1632 1608 +f 1613 1637 1636 1612 +f 1617 1641 1640 1616 +f 1620 1644 1645 1621 +f 1625 1649 1648 1624 +f 1629 1653 1652 1628 +f 1633 1657 1656 1632 +f 1637 1661 1660 1636 +f 1641 1665 1664 1640 +f 1644 1668 1669 1645 +f 1649 1673 1672 1648 +f 1653 1677 1676 1652 +f 1657 1681 1680 1656 +f 1661 1685 1684 1660 +f 1665 1689 1688 1664 +f 1668 1692 1669 +f 1673 1692 1672 +f 1677 1692 1676 +f 1681 1692 1680 +f 1685 1692 1684 +f 1689 1692 1688 +f 1691 1692 1690 +f 1687 1692 1686 +f 1683 1692 1682 +f 1679 1692 1678 +f 1675 1692 1674 +f 1671 1692 1670 +f 1667 1691 1690 1666 +f 1663 1687 1686 1662 +f 1659 1683 1682 1658 +f 1655 1679 1678 1654 +f 1651 1675 1674 1650 +f 1647 1671 1670 1646 +f 1643 1667 1666 1642 +f 1639 1663 1662 1638 +f 1635 1659 1658 1634 +f 1631 1655 1654 1630 +f 1627 1651 1650 1626 +f 1623 1647 1646 1622 +f 1619 1643 1642 1618 +f 1615 1639 1638 1614 +f 1611 1635 1634 1610 +f 1607 1631 1630 1606 +f 1603 1627 1626 1602 +f 1599 1623 1622 1598 +f 1595 1619 1618 1594 +f 1591 1615 1614 1590 +f 1587 1611 1610 1586 +f 1583 1607 1606 1582 +f 1579 1603 1602 1578 +f 1575 1599 1598 1574 +f 1571 1595 1594 1570 +f 1567 1591 1590 1566 +f 1563 1587 1586 1562 +f 1559 1583 1582 1558 +f 1555 1579 1578 1554 +f 1551 1575 1574 1550 +f 1547 1571 1570 1546 +f 1543 1567 1566 1542 +f 1539 1563 1562 1538 +f 1535 1559 1558 1534 +f 1531 1555 1554 1530 +f 1527 1551 1550 1526 +f 1523 1547 1546 1522 +f 1519 1543 1542 1518 +f 1515 1539 1538 1514 +f 1511 1535 1534 1510 +f 1507 1531 1530 1506 +f 1503 1527 1526 1502 +f 1499 1523 1522 1498 +f 1495 1519 1518 1494 +f 1491 1515 1514 1490 +f 1487 1511 1510 1486 +f 1483 1507 1506 1482 +f 1479 1503 1502 1478 +f 1475 1499 1498 1474 +f 1471 1495 1494 1470 +f 1467 1491 1490 1466 +f 1463 1487 1486 1462 +f 1459 1483 1482 1458 +f 1455 1479 1478 1454 +f 1451 1475 1474 1450 +f 1447 1471 1470 1446 +f 1443 1467 1466 1442 +f 1439 1463 1462 1438 +f 1435 1459 1458 1434 +f 1431 1455 1454 1430 +f 1427 1451 1450 +f 1427 1447 1446 +f 1427 1443 1442 +f 1427 1439 1438 +f 1427 1435 1434 +f 1427 1431 1430 +f 1425 1426 1424 +f 1421 1426 1420 +f 1417 1426 1416 +f 1413 1426 1412 +f 1409 1426 1408 +f 1405 1426 1404 +f 1401 1425 1424 1400 +f 1397 1421 1420 1396 +f 1393 1417 1416 1392 +f 1389 1413 1412 1388 +f 1385 1409 1408 1384 +f 1381 1405 1404 1380 +f 1377 1401 1400 1376 +f 1373 1397 1396 1372 +f 1369 1393 1392 1368 +f 1365 1389 1388 1364 +f 1361 1385 1384 1360 +f 1357 1381 1380 1356 +f 1353 1377 1376 1352 +f 1349 1373 1372 1348 +f 1345 1369 1368 1344 +f 1341 1365 1364 1340 +f 1337 1361 1360 1336 +f 1333 1357 1356 1332 +f 1329 1353 1352 1328 +f 1325 1349 1348 1324 +f 1321 1345 1344 1320 +f 1317 1341 1340 1316 +f 1313 1337 1336 1312 +f 1309 1333 1332 1308 +f 1305 1329 1328 1304 +f 1301 1325 1324 1300 +f 1297 1321 1320 1296 +f 1293 1317 1316 1292 +f 1289 1313 1312 1288 +f 1285 1309 1308 1284 +f 1281 1305 1304 1280 +f 1277 1301 1300 1276 +f 1273 1297 1296 1272 +f 1269 1293 1292 1268 +f 1265 1289 1288 1264 +f 1261 1285 1284 1260 +f 1257 1281 1280 1256 +f 1253 1277 1276 1252 +f 1249 1273 1272 1248 +f 1245 1269 1268 1244 +f 1241 1265 1264 1240 +f 1237 1261 1260 1236 +f 1233 1257 1256 1232 +f 1229 1253 1252 1228 +f 1225 1249 1248 1224 +f 1221 1245 1244 1220 +f 1217 1241 1240 1216 +f 1213 1237 1236 1212 +f 1209 1233 1232 1208 +f 1205 1229 1228 1204 +f 1201 1225 1224 1200 +f 1197 1221 1220 1196 +f 1193 1217 1216 1192 +f 1189 1213 1212 1188 +f 1185 1209 1208 1184 +f 1181 1205 1204 1180 +f 1177 1201 1200 1176 +f 1173 1197 1196 1172 +f 1169 1193 1192 1168 +f 1165 1189 1188 1164 +f 1161 1185 1184 +f 1161 1181 1180 +f 1161 1177 1176 +f 1161 1173 1172 +f 1161 1169 1168 +f 1161 1165 1164 +f 509 532 531 +f 528 532 527 +f 524 532 523 +f 520 532 519 +f 516 532 515 +f 512 532 511 +f 485 509 531 507 +f 504 528 527 503 +f 500 524 523 499 +f 496 520 519 495 +f 492 516 515 491 +f 488 512 511 487 +f 461 485 507 483 +f 480 504 503 479 +f 476 500 499 475 +f 472 496 495 471 +f 468 492 491 467 +f 464 488 487 463 +f 437 461 483 459 +f 456 480 479 455 +f 452 476 475 451 +f 448 472 471 447 +f 444 468 467 443 +f 440 464 463 439 +f 413 437 459 435 +f 432 456 455 431 +f 428 452 451 427 +f 424 448 447 423 +f 420 444 443 419 +f 416 440 439 415 +f 389 413 435 411 +f 408 432 431 407 +f 404 428 427 403 +f 400 424 423 399 +f 396 420 419 395 +f 392 416 415 391 +f 365 389 411 387 +f 384 408 407 383 +f 380 404 403 379 +f 376 400 399 375 +f 372 396 395 371 +f 368 392 391 367 +f 341 365 387 363 +f 360 384 383 359 +f 356 380 379 355 +f 352 376 375 351 +f 348 372 371 347 +f 344 368 367 343 +f 317 341 363 339 +f 336 360 359 335 +f 332 356 355 331 +f 328 352 351 327 +f 324 348 347 323 +f 320 344 343 319 +f 293 317 339 315 +f 312 336 335 311 +f 308 332 331 307 +f 304 328 327 303 +f 300 324 323 299 +f 296 320 319 295 +f 269 293 315 291 +f 288 312 311 287 +f 284 308 307 283 +f 280 304 303 279 +f 276 300 299 275 +f 272 296 295 271 +f 267 269 291 +f 267 288 287 +f 267 284 283 +f 267 280 279 +f 267 276 275 +f 267 272 271 +f 242 266 265 +f 262 266 261 +f 258 266 257 +f 254 266 253 +f 250 266 249 +f 246 266 245 +f 218 242 265 241 +f 238 262 261 237 +f 234 258 257 233 +f 230 254 253 229 +f 226 250 249 225 +f 222 246 245 221 +f 194 218 241 217 +f 214 238 237 213 +f 210 234 233 209 +f 206 230 229 205 +f 202 226 225 201 +f 198 222 221 197 +f 170 194 217 193 +f 190 214 213 189 +f 186 210 209 185 +f 182 206 205 181 +f 178 202 201 177 +f 174 198 197 173 +f 146 170 193 169 +f 166 190 189 165 +f 162 186 185 161 +f 158 182 181 157 +f 154 178 177 153 +f 150 174 173 149 +f 122 146 169 145 +f 142 166 165 141 +f 138 162 161 137 +f 134 158 157 133 +f 130 154 153 129 +f 126 150 149 125 +f 98 122 145 121 +f 118 142 141 117 +f 114 138 137 113 +f 110 134 133 109 +f 106 130 129 105 +f 102 126 125 101 +f 74 98 121 97 +f 94 118 117 93 +f 90 114 113 89 +f 86 110 109 85 +f 82 106 105 81 +f 78 102 101 77 +f 50 74 97 73 +f 70 94 93 69 +f 66 90 89 65 +f 62 86 85 61 +f 58 82 81 57 +f 54 78 77 53 +f 26 50 73 49 +f 46 70 69 45 +f 42 66 65 41 +f 38 62 61 37 +f 34 58 57 33 +f 30 54 53 29 +f 2 26 49 25 +f 22 46 45 21 +f 18 42 41 17 +f 14 38 37 13 +f 10 34 33 9 +f 6 30 29 5 +f 1 2 25 +f 1 22 21 +f 1 18 17 +f 1 14 13 +f 1 10 9 +f 1 6 5 +f 1 3 2 +f 1 7 6 +f 1 11 10 +f 1 15 14 +f 1 19 18 +f 1 23 22 +f 3 27 26 2 +f 7 31 30 6 +f 11 35 34 10 +f 15 39 38 14 +f 19 43 42 18 +f 23 47 46 22 +f 27 51 50 26 +f 31 55 54 30 +f 35 59 58 34 +f 39 63 62 38 +f 43 67 66 42 +f 47 71 70 46 +f 51 75 74 50 +f 55 79 78 54 +f 59 83 82 58 +f 63 87 86 62 +f 67 91 90 66 +f 71 95 94 70 +f 75 99 98 74 +f 79 103 102 78 +f 83 107 106 82 +f 87 111 110 86 +f 91 115 114 90 +f 95 119 118 94 +f 99 123 122 98 +f 103 127 126 102 +f 107 131 130 106 +f 111 135 134 110 +f 115 139 138 114 +f 119 143 142 118 +f 123 147 146 122 +f 127 151 150 126 +f 131 155 154 130 +f 135 159 158 134 +f 139 163 162 138 +f 143 167 166 142 +f 147 171 170 146 +f 151 175 174 150 +f 155 179 178 154 +f 159 183 182 158 +f 163 187 186 162 +f 167 191 190 166 +f 171 195 194 170 +f 175 199 198 174 +f 179 203 202 178 +f 183 207 206 182 +f 187 211 210 186 +f 191 215 214 190 +f 195 219 218 194 +f 199 223 222 198 +f 203 227 226 202 +f 207 231 230 206 +f 211 235 234 210 +f 215 239 238 214 +f 219 243 242 218 +f 223 247 246 222 +f 227 251 250 226 +f 231 255 254 230 +f 235 259 258 234 +f 239 263 262 238 +f 243 266 242 +f 247 266 246 +f 251 266 250 +f 255 266 254 +f 259 266 258 +f 263 266 262 +f 267 268 269 +f 267 273 272 +f 267 277 276 +f 267 281 280 +f 267 285 284 +f 267 289 288 +f 268 292 293 269 +f 273 297 296 272 +f 277 301 300 276 +f 281 305 304 280 +f 285 309 308 284 +f 289 313 312 288 +f 292 316 317 293 +f 297 321 320 296 +f 301 325 324 300 +f 305 329 328 304 +f 309 333 332 308 +f 313 337 336 312 +f 316 340 341 317 +f 321 345 344 320 +f 325 349 348 324 +f 329 353 352 328 +f 333 357 356 332 +f 337 361 360 336 +f 340 364 365 341 +f 345 369 368 344 +f 349 373 372 348 +f 353 377 376 352 +f 357 381 380 356 +f 361 385 384 360 +f 364 388 389 365 +f 369 393 392 368 +f 373 397 396 372 +f 377 401 400 376 +f 381 405 404 380 +f 385 409 408 384 +f 388 412 413 389 +f 393 417 416 392 +f 397 421 420 396 +f 401 425 424 400 +f 405 429 428 404 +f 409 433 432 408 +f 412 436 437 413 +f 417 441 440 416 +f 421 445 444 420 +f 425 449 448 424 +f 429 453 452 428 +f 433 457 456 432 +f 436 460 461 437 +f 441 465 464 440 +f 445 469 468 444 +f 449 473 472 448 +f 453 477 476 452 +f 457 481 480 456 +f 460 484 485 461 +f 465 489 488 464 +f 469 493 492 468 +f 473 497 496 472 +f 477 501 500 476 +f 481 505 504 480 +f 484 508 509 485 +f 489 513 512 488 +f 493 517 516 492 +f 497 521 520 496 +f 501 525 524 500 +f 505 529 528 504 +f 508 532 509 +f 513 532 512 +f 517 532 516 +f 521 532 520 +f 525 532 524 +f 529 532 528 +f 1161 1164 1162 +f 1161 1168 1167 +f 1161 1172 1171 +f 1161 1176 1175 +f 1161 1180 1179 +f 1161 1184 1183 +f 1164 1188 1186 1162 +f 1168 1192 1191 1167 +f 1172 1196 1195 1171 +f 1176 1200 1199 1175 +f 1180 1204 1203 1179 +f 1184 1208 1207 1183 +f 1188 1212 1210 1186 +f 1192 1216 1215 1191 +f 1196 1220 1219 1195 +f 1200 1224 1223 1199 +f 1204 1228 1227 1203 +f 1208 1232 1231 1207 +f 1212 1236 1234 1210 +f 1216 1240 1239 1215 +f 1220 1244 1243 1219 +f 1224 1248 1247 1223 +f 1228 1252 1251 1227 +f 1232 1256 1255 1231 +f 1236 1260 1258 1234 +f 1240 1264 1263 1239 +f 1244 1268 1267 1243 +f 1248 1272 1271 1247 +f 1252 1276 1275 1251 +f 1256 1280 1279 1255 +f 1260 1284 1282 1258 +f 1264 1288 1287 1263 +f 1268 1292 1291 1267 +f 1272 1296 1295 1271 +f 1276 1300 1299 1275 +f 1280 1304 1303 1279 +f 1284 1308 1306 1282 +f 1288 1312 1311 1287 +f 1292 1316 1315 1291 +f 1296 1320 1319 1295 +f 1300 1324 1323 1299 +f 1304 1328 1327 1303 +f 1308 1332 1330 1306 +f 1312 1336 1335 1311 +f 1316 1340 1339 1315 +f 1320 1344 1343 1319 +f 1324 1348 1347 1323 +f 1328 1352 1351 1327 +f 1332 1356 1354 1330 +f 1336 1360 1359 1335 +f 1340 1364 1363 1339 +f 1344 1368 1367 1343 +f 1348 1372 1371 1347 +f 1352 1376 1375 1351 +f 1356 1380 1378 1354 +f 1360 1384 1383 1359 +f 1364 1388 1387 1363 +f 1368 1392 1391 1367 +f 1372 1396 1395 1371 +f 1376 1400 1399 1375 +f 1380 1404 1402 1378 +f 1384 1408 1407 1383 +f 1388 1412 1411 1387 +f 1392 1416 1415 1391 +f 1396 1420 1419 1395 +f 1400 1424 1423 1399 +f 1404 1426 1402 +f 1408 1426 1407 +f 1412 1426 1411 +f 1416 1426 1415 +f 1420 1426 1419 +f 1424 1426 1423 +f 1427 1430 1428 +f 1427 1434 1433 +f 1427 1438 1437 +f 1427 1442 1441 +f 1427 1446 1445 +f 1427 1450 1449 +f 1430 1454 1452 1428 +f 1434 1458 1457 1433 +f 1438 1462 1461 1437 +f 1442 1466 1465 1441 +f 1446 1470 1469 1445 +f 1450 1474 1473 1449 +f 1454 1478 1476 1452 +f 1458 1482 1481 1457 +f 1462 1486 1485 1461 +f 1466 1490 1489 1465 +f 1470 1494 1493 1469 +f 1474 1498 1497 1473 +f 1478 1502 1500 1476 +f 1482 1506 1505 1481 +f 1486 1510 1509 1485 +f 1490 1514 1513 1489 +f 1494 1518 1517 1493 +f 1498 1522 1521 1497 +f 1502 1526 1524 1500 +f 1506 1530 1529 1505 +f 1510 1534 1533 1509 +f 1514 1538 1537 1513 +f 1518 1542 1541 1517 +f 1522 1546 1545 1521 +f 1526 1550 1548 1524 +f 1530 1554 1553 1529 +f 1534 1558 1557 1533 +f 1538 1562 1561 1537 +f 1542 1566 1565 1541 +f 1546 1570 1569 1545 +f 1550 1574 1572 1548 +f 1554 1578 1577 1553 +f 1558 1582 1581 1557 +f 1562 1586 1585 1561 +f 1566 1590 1589 1565 +f 1570 1594 1593 1569 +f 1574 1598 1596 1572 +f 1578 1602 1601 1577 +f 1582 1606 1605 1581 +f 1586 1610 1609 1585 +f 1590 1614 1613 1589 +f 1594 1618 1617 1593 +f 1598 1622 1620 1596 +f 1602 1626 1625 1601 +f 1606 1630 1629 1605 +f 1610 1634 1633 1609 +f 1614 1638 1637 1613 +f 1618 1642 1641 1617 +f 1622 1646 1644 1620 +f 1626 1650 1649 1625 +f 1630 1654 1653 1629 +f 1634 1658 1657 1633 +f 1638 1662 1661 1637 +f 1642 1666 1665 1641 +f 1646 1670 1668 1644 +f 1650 1674 1673 1649 +f 1654 1678 1677 1653 +f 1658 1682 1681 1657 +f 1662 1686 1685 1661 +f 1666 1690 1689 1665 +f 1670 1692 1668 +f 1674 1692 1673 +f 1678 1692 1677 +f 1682 1692 1681 +f 1686 1692 1685 +f 1690 1692 1689 +g arms +usemtl bronze +f 2106 2107 1728 1726 1725 2029 +f 2936 2922 2921 2753 +f 2892 2907 2908 2893 +f 2829 2815 2945 2943 +f 2945 2947 2948 2946 +f 2858 2890 2889 2872 +f 2753 2921 2938 2750 +f 2932 2776 2778 2933 +f 2928 2768 2770 2929 +f 2924 2757 2758 2925 +f 2918 2933 2934 2919 +f 2914 2929 2930 2915 +f 2910 2925 2926 2911 +f 2904 2919 2920 2905 +f 2900 2915 2916 2901 +f 2896 2911 2912 2897 +f 2891 2906 2907 2892 +f 2882 2901 2902 2883 +f 2878 2897 2898 2879 +f 2873 2893 2894 2874 +f 2869 2884 2885 2870 +f 2865 2880 2881 2866 +f 2861 2875 2876 2877 2862 +f 2856 2870 2871 2857 +f 2851 2866 2867 2852 +f 2847 2862 2863 2848 +f 2843 2858 2859 2844 +f 2838 2853 2852 2854 2839 +f 2834 2848 2849 2835 +f 2830 2844 2845 2831 +f 2825 2839 2840 2826 +f 2821 2835 2836 2822 +f 2817 2831 2832 2818 +f 2812 2826 2827 2813 +f 2808 2822 2823 2809 +f 2804 2818 2819 2805 +f 2797 2813 2814 2798 +f 2793 2809 2810 2794 +f 2789 2805 2806 2790 +f 2800 2801 2802 2786 +f 2775 2795 2796 2777 +f 2767 2791 2792 2769 +f 2756 2787 2788 2759 +f 2778 2777 2779 2780 +f 2770 2769 2771 2772 +f 2761 2758 2760 2759 2762 2763 +f 2721 2649 2726 2749 2326 2325 +f 2729 2730 2334 2332 +f 2652 2733 2344 2343 +f 2736 2660 2360 2358 +f 2739 2740 2370 2368 +f 2742 2743 2380 2378 +f 2745 2683 2390 2388 +f 2688 2691 2406 2405 +f 2747 2748 2418 2416 +f 2669 2672 2641 2631 +f 2725 2661 2574 2666 +f 2662 2723 2711 2663 +f 2696 2748 2647 2613 +f 2693 2690 2606 2610 +f 2685 2682 2597 2561 +f 2677 2593 2594 2676 +f 2628 2697 2612 2622 +f 2678 2569 2566 2576 +f 2742 2741 2573 2575 +f 2739 2738 2662 2661 +f 2736 2735 2715 2713 +f 2656 2733 2718 2614 +f 2731 2730 2702 2700 +f 2727 2726 2704 2722 +f 2586 2724 2725 2666 2584 +f 2606 2605 2610 +f 2723 2643 2587 2711 +f 2681 2648 2562 2596 +f 2658 2657 2353 2350 +f 2683 2682 2393 2390 +f 2691 2690 2409 2406 +f 2642 2634 2633 2639 +f 2627 2719 2697 2628 +f 2624 2680 2679 2625 +f 2651 2714 2716 2718 +f 2714 2712 2713 2715 +f 2705 2667 2701 2708 2706 +f 2583 2699 2700 2577 2568 +f 2613 2647 2648 2611 +f 2606 2690 2691 2607 +f 2600 2686 2687 2601 +f 2597 2682 2683 2598 +f 2677 2678 2590 2593 +f 2668 2671 2581 2595 +f 2632 2621 2620 2630 +f 2566 2569 2572 2567 +f 2643 2659 2660 2644 +f 2636 2649 2650 2637 +f 2633 2634 2635 2636 2637 2638 +f 2618 2619 2579 2620 2621 2622 +f 2605 2606 2607 2608 +f 2581 2594 2595 +f 2582 2583 2568 +f 2569 2570 2571 2572 +f 2515 2560 2516 +f 2549 2548 2437 +f 2510 2512 2494 2497 +f 2551 2482 2481 +f 2450 2449 2530 2529 +f 2545 2502 2431 +f 2559 2474 2553 2558 +f 2352 2529 2530 2347 +f 2521 2520 2446 2543 +f 2500 2503 2506 2505 +f 2496 2429 2426 2509 +f 2495 2493 2437 2548 +f 2556 2439 2488 2487 2557 +f 2443 2484 2550 2440 +f 2481 2480 2440 2551 +f 2474 2559 2475 +f 2517 2516 2560 2453 +f 2463 2508 2425 2468 +f 2458 2457 2526 2525 +f 2451 2450 2529 2528 +f 2436 2439 2556 2555 +f 2435 2434 2422 2539 +f 2431 2430 2546 2545 +f 2412 2407 2410 2413 +f 2396 2391 2394 2397 +f 2362 2359 2360 2363 +f 2324 2323 2421 2424 2325 +f 2537 2464 2463 2468 +f 2519 2461 2447 +f 2544 2545 2546 2547 +f 2323 2322 2537 2538 +f 2331 2333 2535 2536 +f 2342 2341 2448 2531 +f 2351 2355 2527 2528 +f 2361 2365 2460 2459 +f 2374 2373 2520 2521 +f 2381 2383 2516 2517 +f 2425 2508 2509 2426 +f 2496 2497 2498 2499 +f 2385 2389 2487 2488 +f 2404 2403 2480 2481 +f 2415 2417 2474 2475 +f 2463 2464 2465 2466 +f 2448 2449 2450 2451 +f 2433 2434 2435 +f 2419 2417 2418 2420 +f 2407 2408 2409 2410 +f 2391 2392 2393 2394 +f 2381 2379 2380 2382 +f 2371 2369 2370 2372 +f 2361 2362 2363 2364 +f 2351 2352 2353 2354 +f 2339 2337 2338 2340 +f 2331 2329 2330 2332 +f 2153 2170 2186 2200 2214 2229 2243 2258 2277 2292 2307 2154 +f 2172 2171 2124 2157 +f 2173 2172 2157 2319 +f 2230 2215 2313 2262 +f 2313 2315 2316 2314 +f 2278 2263 2312 2311 +f 2306 2152 2154 2307 +f 2302 2144 2146 2309 2303 +f 2298 2133 2136 2299 +f 2294 2308 2126 2295 +f 2288 2303 2304 2289 +f 2284 2299 2300 2285 +f 2280 2295 2296 2281 +f 2274 2289 2290 2275 +f 2270 2285 2286 2271 +f 2266 2281 2282 2267 +f 2256 2275 2276 2257 +f 2252 2271 2272 2253 +f 2247 2267 2268 2248 +f 2259 2260 2261 2262 +f 2239 2254 2255 2240 +f 2235 2250 2251 2236 +f 2231 2245 2246 2232 +f 2226 2240 2241 2227 +f 2221 2236 2237 2222 +f 2217 2232 2233 2218 +f 2212 2227 2228 2213 +f 2208 2222 2223 2209 +f 2204 2218 2219 2205 +f 2199 2213 2214 2200 +f 2195 2209 2210 2196 +f 2191 2205 2206 2192 +f 2187 2201 2202 2188 +f 2182 2196 2197 2183 +f 2178 2192 2193 2179 +f 2174 2188 2189 2175 +f 2167 2183 2184 2168 +f 2163 2179 2180 2164 +f 2159 2175 2176 2160 +f 2151 2169 2170 2153 +f 2143 2165 2166 2145 +f 2134 2161 2162 2137 +f 2123 2155 2156 2157 2124 +f 2146 2145 2147 2148 +f 2136 2138 2137 2139 2140 +f 2126 2127 2128 2129 +f 2099 2100 1702 1700 +f 2103 2104 1710 1708 +f 2027 2030 1722 1721 +f 2109 2110 1738 1736 +f 2036 2113 1748 1747 +f 2116 1944 1756 1754 +f 2056 2059 1770 1769 +f 2064 2118 1786 1785 +f 2092 2022 1796 1795 +f 1952 1991 2052 1996 +f 1954 1960 2018 1955 +f 2006 2079 2075 2007 +f 2119 2118 2066 2067 +f 2061 2058 1972 1976 +f 2117 1943 1997 2051 +f 2044 2041 2040 2045 +f 2046 1963 2039 2077 +f 2116 2115 1961 2070 +f 2037 2112 2097 2096 1958 +f 2109 2031 2015 2095 +f 2106 2029 1988 2089 +f 2025 2104 2071 2026 +f 2101 2100 2082 2081 +f 2022 2092 2009 +f 2043 1992 1951 1953 +f 2070 1961 1960 1954 +f 2074 2081 2080 2073 +f 2025 2024 1715 1712 +f 2037 2036 1747 1744 +f 2059 2058 1773 1770 +f 2068 2069 2091 2092 1795 1792 +f 2003 2013 2012 2004 +f 1991 1952 1951 +f 1936 1935 2067 2066 +f 2086 2023 2026 2018 2017 +f 1959 1961 1947 2035 2083 +f 2007 2075 2076 2008 +f 1940 1948 1938 +f 2066 1981 1977 1936 +f 1975 2060 2061 1976 +f 1937 2056 2057 1933 +f 1997 1943 1942 1995 +f 1966 1965 1964 1967 +f 2040 2041 2042 2043 +f 1994 1984 1983 1990 +f 1957 2036 2037 1958 +f 1989 2027 2028 1986 +f 2015 2016 2017 2018 1960 1959 +f 1998 1999 2000 2001 +f 1983 1984 1985 +f 1971 1972 1973 +f 1959 1960 1961 +f 1948 1940 1949 1950 +f 1933 1934 1935 1936 1937 +f 1892 1891 1819 +f 1915 1894 1893 +f 1929 1859 1858 +f 1813 1850 1849 +f 1864 1861 1810 +f 1873 1914 1799 1804 +f 1714 1903 1904 1711 +f 1832 1816 1819 1833 +f 1882 1842 1841 1884 +f 1873 1872 1912 1914 +f 1869 1868 1881 1882 +f 1863 1862 1883 1886 +f 1858 1857 1930 1929 +f 1855 1854 1923 1922 +f 1784 1849 1850 1779 +f 1845 1791 1876 1879 +f 1844 1843 1907 1906 +f 1838 1837 1908 +f 1827 1826 1905 1904 +f 1892 1819 1818 +f 1810 1809 1865 1864 +f 1805 1807 1913 1912 +f 1799 1798 1801 1804 +f 1776 1771 1774 1777 +f 1758 1755 1756 1759 +f 1720 1717 1718 1721 +f 1925 1926 1927 1928 +f 1900 1899 1828 1823 +f 1922 1923 1812 +f 1912 1913 1914 +f 1699 1701 1837 1836 +f 1707 1709 1905 1906 +f 1719 1902 1720 +f 1729 1731 1897 1898 +f 1739 1741 1817 1816 +f 1749 1751 1890 1891 +f 1883 1884 1841 1885 +f 1872 1873 1874 1875 +f 1862 1863 1864 1865 +f 1768 1767 1856 1815 +f 1784 1783 1848 1849 +f 1841 1842 1843 1844 +f 1828 1829 1830 +f 1812 1813 1814 1815 +f 1797 1798 1799 1800 +f 1787 1783 1786 1788 +f 1771 1772 1773 1774 +f 1757 1758 1759 1760 +f 1749 1745 1748 1750 +f 1739 1737 1738 1740 +f 1729 1727 1728 1730 +f 1717 1713 1716 1718 +f 1707 1705 1706 1708 +f 1699 1694 1693 1698 1700 +f 1160 1158 1145 1146 +f 1156 1157 1095 1081 +f 1151 1152 1137 1138 +f 1137 1139 994 1008 +f 1149 1141 1142 1155 +f 1146 1145 1108 1123 +f 1118 1133 1134 1119 +f 1114 1129 1130 1115 +f 1110 1125 1126 1111 +f 1105 1119 1120 1106 +f 1101 1115 1116 1102 +f 1097 1111 1112 1098 +f 1092 1106 1107 1093 +f 1088 1102 1103 1089 +f 1084 1098 1099 1085 +f 1143 1144 1157 1156 +f 1075 1089 1090 1076 +f 1071 1085 1086 1072 +f 1067 1081 1082 1068 +f 1062 1077 1078 1063 +f 1058 1073 1074 1059 +f 1054 1069 1070 1065 1055 +f 1049 1063 1064 1050 +f 1045 1059 1060 1046 +f 1041 1055 1056 1042 +f 1150 1149 1052 1038 +f 1031 1036 1046 1047 1032 +f 1027 1042 1043 1028 +f 1023 1038 1039 1024 +f 1018 1032 1033 1019 +f 1014 1028 1029 1015 +f 1010 1024 1025 1011 +f 1005 1019 1020 1006 +f 1001 1015 1016 1002 +f 997 1011 1012 998 +f 992 1006 1007 993 +f 988 1002 1003 989 +f 984 998 999 985 +f 1153 1154 995 981 +f 975 990 991 976 +f 971 986 987 972 +f 967 982 983 968 +f 1134 976 977 1135 +f 1130 972 973 1131 +f 1127 1126 963 968 969 964 +f 960 806 805 961 772 771 +f 813 815 767 768 +f 823 826 761 763 +f 832 836 756 758 +f 842 846 751 753 +f 856 855 747 746 +f 863 865 742 743 +f 906 905 736 735 +f 921 923 727 728 +f 803 802 723 722 +f 945 946 947 948 +f 785 784 939 940 +f 958 957 933 934 +f 925 923 924 926 +f 909 910 911 912 +f 895 896 897 898 +f 953 952 885 886 +f 876 873 874 875 +f 863 861 862 864 +f 852 850 851 853 854 +f 842 843 844 845 +f 832 833 834 835 +f 819 820 821 822 +f 813 811 812 814 +f 802 803 804 +f 795 794 791 792 +f 864 862 784 785 +f 816 814 935 779 +f 819 823 763 765 +f 852 856 746 748 +f 905 910 733 736 +f 927 878 951 803 722 725 +f 955 954 881 884 +f 946 945 791 +f 944 798 926 924 +f 783 824 822 939 937 +f 781 862 860 936 782 +f 934 933 808 807 +f 931 870 869 +f 924 922 787 944 +f 915 914 909 912 +f 907 906 901 904 +f 897 896 891 894 +f 890 889 887 888 +f 885 952 796 795 +f 880 879 775 778 +f 857 856 852 854 +f 831 830 825 828 +f 844 841 937 939 784 781 +f 799 949 877 882 +f 775 879 930 +f 788 911 908 +f 781 784 862 +f 870 931 932 872 +f 904 773 798 944 907 +f 636 634 708 +f 697 640 637 +f 720 594 591 +f 707 574 572 +f 600 597 546 +f 613 694 535 540 +f 671 670 672 675 +f 647 645 708 558 +f 621 620 622 623 +f 613 612 695 694 +f 607 608 618 621 +f 603 602 627 626 +f 591 590 721 720 +f 583 582 704 706 +f 573 572 574 577 +f 564 567 616 615 +f 562 715 678 676 +f 559 682 680 +f 555 554 673 672 +f 636 708 551 +f 546 549 601 600 +f 545 544 693 695 +f 535 538 541 540 +f 580 585 734 731 +f 598 629 742 740 +f 664 669 762 759 +f 718 719 716 717 +f 659 657 711 553 +f 706 704 705 +f 695 693 694 +f 685 683 682 684 +f 677 674 673 676 +f 665 663 664 +f 656 654 653 655 +f 646 644 643 645 +f 635 633 632 634 +f 627 623 622 624 +f 612 613 610 611 +f 602 603 600 601 +f 588 589 586 587 +f 573 571 570 572 +f 622 620 715 562 +f 711 556 557 +f 705 707 550 587 +f 537 538 535 536 +f 569 571 727 726 +f 585 584 733 734 +f 599 598 740 741 +f 635 639 747 745 +f 646 648 751 750 +f 656 658 756 755 +f 669 668 761 762 +f 677 679 767 766 +f 685 689 533 772 770 +f 683 685 770 769 +f 674 677 766 764 +f 665 664 759 760 +f 654 656 755 754 +f 644 646 750 749 +f 633 635 745 744 +f 595 599 741 739 +f 581 580 731 732 +f 566 569 726 724 +f 541 542 539 540 +f 645 643 551 708 +f 649 647 558 712 +f 566 567 564 565 +f 576 577 574 575 +f 592 593 590 591 +f 605 602 601 604 +f 616 617 614 615 +f 626 627 624 625 +f 639 635 634 636 +f 648 646 645 647 +f 658 656 655 657 +f 668 669 666 667 +f 679 677 676 678 +f 689 685 684 686 +f 643 641 640 697 551 +f 575 574 707 +f 650 649 712 713 +f 718 717 720 721 +f 661 665 760 757 +f 592 595 739 737 +f 576 581 732 729 +f 536 535 694 693 +f 543 545 617 616 +f 547 546 597 596 +f 711 670 667 553 +f 556 711 657 655 +f 715 620 619 714 559 +f 676 673 554 563 562 +f 565 564 719 718 +f 576 575 578 581 +f 584 583 586 589 +f 592 591 594 595 +f 627 602 605 623 +f 699 609 606 702 +f 611 610 701 700 +f 626 625 628 629 +f 651 650 653 654 +f 688 687 690 692 +f 687 560 536 693 544 690 +f 700 703 548 716 614 611 +f 575 707 705 578 +f 702 606 604 +f 709 563 554 +f 603 626 629 598 +f 869 866 931 +f 791 945 792 +f 871 873 887 889 +f 790 915 912 +f 828 942 834 831 +f 793 955 884 +f 929 798 773 776 +f 834 833 829 831 +f 858 857 797 943 +f 883 882 877 880 +f 953 886 876 956 +f 893 890 792 945 +f 898 947 777 774 900 +f 908 907 789 788 +f 916 915 790 789 +f 929 926 798 +f 866 864 785 931 +f 875 780 933 957 +f 938 937 841 839 +f 942 941 835 834 +f 947 946 778 777 +f 951 950 804 803 +f 952 955 793 796 +f 917 921 728 730 +f 901 906 735 738 +f 840 843 752 754 +f 802 806 960 771 723 +f 810 808 933 780 +f 860 786 936 +f 793 794 795 796 +f 805 806 807 808 +f 815 813 814 816 +f 826 823 824 827 +f 836 832 835 837 +f 846 842 845 847 +f 855 856 857 858 +f 865 863 864 866 +f 875 957 956 876 +f 887 886 885 888 +f 899 895 898 900 +f 913 914 915 916 +f 928 925 926 929 +f 810 780 935 812 +f 828 827 941 942 +f 949 950 951 +f 928 927 725 724 +f 918 917 730 729 +f 902 901 738 737 +f 861 863 743 744 +f 850 852 748 749 +f 843 842 753 752 +f 833 832 758 757 +f 820 819 765 764 +f 811 813 768 769 +f 1123 965 1148 1146 +f 1128 1127 964 969 970 962 +f 1131 973 974 1132 +f 1135 977 978 1136 +f 968 983 984 969 +f 972 987 988 973 +f 976 991 992 977 +f 981 995 996 982 +f 985 999 1000 986 +f 989 1003 1004 990 +f 1154 1152 1009 995 +f 998 1012 1013 999 +f 1002 1016 1017 1003 +f 1006 1020 1021 1007 +f 1011 1025 1026 1012 +f 1015 1029 1030 1016 +f 1019 1033 1034 1020 +f 1024 1039 1040 1025 +f 1028 1043 1044 1029 +f 1032 1047 1048 1033 +f 1038 1052 1053 1039 +f 1042 1056 1057 1043 +f 1046 1060 1061 1047 +f 1149 1155 1067 1052 +f 1055 1065 1070 1071 1056 +f 1059 1074 1075 1060 +f 1063 1078 1079 1064 +f 1068 1082 1083 1069 +f 1072 1086 1087 1073 +f 1076 1090 1091 1077 +f 1081 1095 1096 1082 +f 1085 1099 1100 1086 +f 1089 1103 1104 1090 +f 1144 1145 1158 1157 +f 1098 1112 1113 1099 +f 1102 1116 1117 1103 +f 1106 1120 1121 1107 +f 1111 1126 1127 1112 +f 1115 1130 1131 1116 +f 1119 1134 1135 1120 +f 1145 1144 1094 1108 +f 1141 1147 1037 1051 +f 1139 1140 980 994 +f 1152 1154 1139 1137 +f 1157 1158 1109 1095 +f 1080 1066 1051 1037 1022 1008 994 980 979 965 1123 1108 1094 +f 1701 1699 1700 1702 +f 1709 1707 1708 1710 +f 1719 1720 1721 1722 +f 1731 1729 1730 1732 +f 1741 1739 1740 1742 +f 1751 1749 1750 1752 +f 1761 1757 1760 1762 +f 1775 1776 1777 1778 +f 1789 1787 1788 1790 +f 1801 1802 1803 1804 +f 1816 1817 1818 1819 +f 1831 1832 1833 1834 +f 1789 1791 1845 1846 +f 1780 1779 1850 1851 +f 1764 1763 1857 1858 +f 1866 1862 1865 1867 +f 1876 1877 1878 1879 +f 1886 1883 1885 1887 +f 1745 1749 1891 1892 +f 1737 1739 1816 1832 +f 1727 1729 1898 1899 +f 1713 1717 1821 1820 +f 1705 1707 1906 1907 +f 1694 1699 1836 1909 +f 1817 1895 1894 1915 1818 +f 1851 1850 1813 +f 1896 1831 1834 1924 +f 1925 1928 1929 1930 +f 1724 1719 1722 1725 +f 1764 1761 1762 1765 +f 1780 1775 1778 1781 +f 1800 1799 1914 1913 +f 1806 1805 1877 1876 +f 1811 1810 1861 1860 +f 1828 1903 1820 1823 +f 1829 1828 1899 1898 +f 1843 1842 1880 1835 1838 +f 1906 1905 1826 1932 1844 +f 1846 1845 1926 1925 +f 1780 1851 1852 1775 +f 1772 1855 1856 1767 +f 1764 1858 1859 1761 +f 1883 1862 1866 1884 +f 1919 1871 1870 1920 +f 1875 1874 1917 1916 +f 1886 1887 1888 1755 +f 1734 1896 1897 1731 +f 1695 1910 1911 1793 +f 1910 1839 1800 1913 1807 1911 +f 1916 1921 1808 1927 1878 1875 +f 1851 1813 1812 1852 +f 1920 1870 1867 +f 1825 1932 1826 +f 1863 1886 1755 1758 +f 1938 1939 1940 +f 1951 1952 1953 +f 1962 1963 1964 1965 +f 1974 1975 1976 +f 1986 1987 1988 1989 +f 2002 2003 2004 +f 2019 1935 1934 2020 +f 1988 2029 2030 1989 +f 1945 1957 1956 2038 +f 1993 2001 2000 1994 +f 2044 2045 2046 2047 +f 2048 1966 1953 1952 +f 2051 2052 2053 1968 1970 +f 1973 1937 1980 1971 +f 1979 1975 1974 1980 +f 2019 2067 1935 +f 1939 2070 1954 1940 +f 2077 2078 2075 2079 +f 2084 2017 2016 2085 +f 1987 2088 2089 1988 +f 2052 1991 1990 2053 +f 2091 2010 2009 2092 +f 2041 2003 2002 2042 +f 2065 2064 1785 1782 +f 2057 2056 1769 1766 +f 2032 2031 1735 1732 +f 2022 2021 2093 1697 1796 +f 2094 2076 2075 2078 +f 1947 1946 2035 +f 2002 1992 2043 2042 +f 2098 2021 2008 2076 +f 2102 2101 2081 2074 +f 2105 2024 2023 2090 +f 2107 2106 2089 2087 +f 2110 2109 2095 2034 +f 2113 2036 1957 1945 +f 1944 2116 2070 1939 +f 2077 2079 2047 2046 +f 1964 2045 2040 1967 +f 2055 2117 2051 1970 +f 2063 2060 1975 1979 +f 2120 2119 2067 2019 +f 2094 2078 2080 2082 +f 1986 2090 2088 1987 +f 1999 2010 2091 +f 2120 2068 1792 1790 +f 2062 2065 1782 1781 +f 2054 2057 1766 1765 +f 2115 2116 1754 1752 +f 2112 2037 1744 1742 +f 2031 2109 1736 1735 +f 2105 2028 1718 1716 +f 2102 2103 1708 1706 +f 2121 2098 2099 1700 1698 +f 2130 2129 2128 2131 2132 +f 2140 2139 2141 2142 +f 2148 2147 2149 2150 +f 2127 2158 2159 2128 +f 2137 2162 2163 2139 +f 2145 2166 2167 2147 +f 2127 2171 2172 2158 +f 2160 2176 2177 2161 +f 2164 2180 2181 2165 +f 2168 2184 2185 2169 +f 2175 2189 2190 2176 +f 2179 2193 2194 2180 +f 2183 2197 2198 2184 +f 2188 2202 2203 2189 +f 2192 2206 2207 2193 +f 2196 2210 2211 2197 +f 2201 2215 2216 2202 +f 2205 2219 2220 2206 +f 2209 2223 2224 2225 2210 +f 2213 2228 2229 2214 +f 2218 2233 2234 2219 +f 2222 2237 2238 2223 +f 2227 2241 2242 2228 +f 2232 2246 2247 2233 +f 2236 2251 2252 2237 +f 2240 2255 2256 2241 +f 2261 2263 2264 2244 +f 2248 2268 2269 2250 +f 2253 2272 2273 2254 +f 2257 2276 2277 2258 +f 2267 2282 2283 2268 +f 2271 2286 2287 2272 +f 2275 2290 2291 2276 +f 2281 2296 2297 2282 +f 2285 2300 2301 2286 +f 2289 2304 2305 2290 +f 2295 2126 2129 2296 +f 2299 2136 2140 2300 +f 2303 2309 2146 2148 2304 +f 2308 2171 2127 2126 +f 2263 2261 2260 2312 +f 2315 2317 2318 2316 +f 2215 2201 2315 2313 +f 2244 2264 2265 2245 +f 2171 2308 2125 2124 +f 2321 2322 2323 2324 2325 2326 +f 2333 2331 2332 2334 +f 2341 2342 2343 2344 +f 2355 2351 2354 2356 +f 2365 2361 2364 2366 +f 2373 2374 2375 2376 +f 2383 2381 2382 2384 +f 2395 2396 2397 2398 +f 2411 2412 2413 2414 +f 2421 2422 2423 2424 +f 2436 2437 2438 2439 +f 2452 2453 2454 2455 +f 2425 2428 2467 2468 +f 2411 2415 2475 2476 +f 2400 2399 2482 2483 +f 2386 2385 2488 2489 +f 2430 2429 2496 2499 +f 2510 2509 2508 2470 +f 2379 2381 2517 2518 +f 2445 2369 2371 2522 2523 +f 2362 2361 2459 2524 +f 2352 2351 2528 2529 +f 2337 2339 2532 2533 +f 2329 2331 2536 2465 +f 2421 2539 2422 +f 2544 2547 2548 2549 +f 2518 2517 2453 2452 +f 2536 2535 2471 2466 +f 2342 2339 2340 2343 +f 2374 2371 2372 2375 +f 2400 2395 2398 2401 +f 2422 2434 2504 2419 2420 2423 +f 2432 2431 2502 2501 +f 2436 2549 2437 +f 2559 2442 2476 2475 +f 2532 2531 2456 2458 2455 +f 2519 2518 2552 2462 2461 +f 2468 2467 2538 2537 +f 2560 2515 2513 +f 2477 2476 2442 2441 +f 2404 2481 2482 2399 +f 2396 2443 2485 2391 +f 2386 2489 2492 2491 +f 2494 2495 2498 2497 +f 2430 2499 2547 2546 +f 2507 2506 2555 2554 +f 2374 2521 2522 2371 +f 2348 2530 2449 2345 +f 2455 2458 2525 2524 2552 2452 +f 2433 2540 2500 2505 +f 2554 2473 2507 +f 2550 2484 2483 +f 2552 2518 2452 +f 2560 2513 2469 2472 +f 2559 2558 2485 2443 2442 +f 2573 2574 2575 +f 2584 2585 2586 +f 2596 2597 2598 +f 2605 2609 2610 +f 2623 2624 2625 +f 2639 2640 2641 2642 +f 2651 2652 2653 2654 +f 2661 2662 2663 2574 +f 2667 2591 2590 2578 +f 2629 2640 2639 2626 +f 2673 2592 2591 2674 +f 2677 2570 2569 2678 +f 2561 2597 2596 2562 +f 2604 2600 2599 2602 +f 2609 2692 2693 2610 +f 2696 2613 2612 2697 +f 2701 2577 2700 2702 +f 2708 2709 2710 +f 2583 2646 2654 2699 +f 2573 2666 2574 +f 2580 2624 2623 2676 +f 2638 2627 2626 2633 +f 2675 2642 2641 2672 +f 2689 2688 2405 2402 +f 2572 2571 2387 2384 +f 2656 2655 2349 2346 +f 2611 2648 2681 2618 +f 2715 2717 2716 2714 +f 2599 2608 2602 +f 2626 2639 2633 +f 2728 2727 2722 2710 +f 2732 2731 2700 2699 +f 2658 2655 2617 +f 2660 2736 2713 2644 +f 2740 2739 2661 2725 +f 2743 2742 2575 2589 +f 2590 2678 2576 2578 +f 2640 2629 2621 2632 +f 2570 2677 2676 2623 +f 2687 2684 2565 2601 +f 2746 2692 2609 2694 +f 2667 2578 2577 2701 +f 2714 2645 2712 +f 2605 2608 2565 2564 +f 2675 2707 2634 2642 +f 2746 2747 2416 2414 +f 2686 2689 2402 2401 +f 2571 2745 2388 2387 +f 2741 2742 2378 2376 +f 2738 2739 2368 2366 +f 2735 2736 2358 2356 +f 2732 2653 2340 2338 +f 2728 2729 2332 2330 +f 2750 2751 2752 2753 +f 2764 2761 2763 2762 2765 2766 +f 2772 2771 2773 2774 +f 2780 2779 2781 2782 +f 2759 2788 2789 2762 +f 2769 2792 2793 2771 +f 2777 2796 2797 2779 +f 2786 2802 2803 2787 +f 2790 2806 2807 2791 +f 2794 2810 2811 2795 +f 2801 2815 2816 2802 +f 2805 2819 2820 2806 +f 2809 2823 2824 2810 +f 2813 2827 2828 2814 +f 2818 2832 2833 2819 +f 2822 2836 2837 2823 +f 2826 2840 2841 2827 +f 2831 2845 2846 2832 +f 2835 2849 2850 2836 +f 2839 2854 2855 2840 +f 2844 2859 2860 2845 +f 2848 2863 2864 2849 +f 2852 2867 2868 2854 +f 2858 2872 2873 2859 +f 2862 2877 2876 2878 2863 +f 2866 2881 2882 2867 +f 2870 2885 2886 2871 +f 2874 2894 2895 2875 +f 2879 2898 2899 2880 +f 2883 2902 2903 2884 +f 2893 2908 2909 2894 +f 2897 2912 2913 2898 +f 2901 2916 2917 2902 +f 2906 2921 2922 2907 +f 2911 2926 2927 2912 +f 2915 2930 2931 2916 +f 2919 2934 2935 2920 +f 2925 2758 2761 2926 +f 2929 2770 2772 2930 +f 2933 2778 2780 2934 +f 2921 2906 2939 2938 +f 2890 2941 2942 2887 +f 2947 2785 2784 2948 +f 2815 2801 2947 2945 +f 2907 2922 2923 2908 +f 2940 2888 2887 2942 2944 2946 2948 2784 2783 2751 2750 2938 2939 +f 2799 2936 2753 2752 +f 2872 2892 2893 2873 +f 2843 2829 2943 2941 +f 2943 2945 2946 2944 +f 2891 2889 2888 2940 +f 2936 2799 2755 2754 +f 2931 2937 2774 2776 2932 +f 2927 2764 2768 2928 +f 2923 2754 2757 2924 +f 2917 2932 2933 2918 +f 2913 2928 2929 2914 +f 2909 2924 2925 2910 +f 2903 2918 2919 2904 +f 2899 2914 2915 2900 +f 2895 2910 2911 2896 +f 2885 2904 2905 2886 +f 2881 2900 2901 2882 +f 2876 2896 2897 2878 +f 2889 2891 2892 2872 +f 2868 2883 2884 2869 +f 2864 2879 2880 2865 +f 2860 2874 2875 2861 +f 2855 2869 2870 2856 +f 2850 2865 2866 2851 +f 2846 2861 2862 2847 +f 2841 2856 2857 2842 +f 2837 2851 2852 2853 2838 +f 2833 2847 2848 2834 +f 2829 2843 2844 2830 +f 2824 2838 2839 2825 +f 2820 2834 2835 2821 +f 2816 2830 2831 2817 +f 2811 2825 2826 2812 +f 2807 2821 2822 2808 +f 2803 2817 2818 2804 +f 2796 2812 2813 2797 +f 2792 2808 2809 2793 +f 2788 2804 2805 2789 +f 2755 2799 2800 2786 +f 2773 2794 2795 2775 +f 2765 2790 2791 2767 +f 2755 2786 2787 2756 +f 2776 2775 2777 2778 +f 2768 2767 2769 2770 +f 2758 2757 2756 2759 2760 +f 2749 2726 2727 2328 2326 +f 2730 2731 2336 2334 +f 2733 2656 2346 2344 +f 2659 2737 2364 2363 +f 2740 2665 2372 2370 +f 2743 2744 2382 2380 +f 2682 2685 2394 2393 +f 2690 2693 2410 2409 +f 2748 2696 2420 2418 +f 2627 2638 2719 +f 2614 2718 2716 2615 +f 2722 2706 2708 2710 +f 2748 2747 2695 2647 +f 2691 2688 2603 2607 +f 2683 2745 2679 2598 +f 2592 2673 2668 2595 +f 2705 2707 2675 2674 +f 2572 2744 2698 2567 +f 2741 2664 2585 2573 +f 2738 2737 2723 2662 +f 2735 2734 2717 2715 +f 2733 2652 2651 2718 +f 2730 2729 2709 2702 +f 2726 2649 2636 2704 +f 2630 2620 2671 2670 +f 2575 2574 2663 +f 2722 2704 2703 2706 +f 2650 2649 2721 2325 2424 +f 2660 2659 2363 2360 +f 2685 2684 2397 2394 +f 2693 2692 2413 2410 +f 2669 2631 2630 2670 +f 2719 2638 2637 2720 +f 2680 2619 2618 2681 +f 2615 2716 2717 2616 +f 2712 2645 2644 2713 +f 2705 2706 2703 2707 +f 2567 2698 2582 2568 +f 2647 2695 2563 +f 2607 2603 2602 2608 +f 2601 2565 2608 2599 +f 2679 2680 2681 2596 2598 +f 2676 2594 2581 2580 +f 2672 2673 2674 2675 +f 2621 2629 2628 2622 +f 2573 2585 2584 2666 +f 2616 2657 2658 2617 +f 2647 2563 2562 2648 +f 2630 2631 2632 +f 2614 2615 2616 2617 +f 2602 2603 2604 +f 2590 2591 2592 2593 +f 2579 2580 2581 +f 2566 2567 2568 +f 2491 2514 2383 2386 +f 2453 2560 2454 +f 2548 2498 2495 +f 2479 2441 2440 2480 +f 2544 2549 2436 2555 2506 2503 +f 2538 2467 2428 2541 2435 2539 +f 2323 2538 2539 2421 +f 2362 2524 2525 2359 +f 2514 2515 2516 2383 +f 2503 2502 2545 2544 +f 2547 2499 2498 2548 +f 2511 2490 2494 2512 +f 2392 2486 2487 2389 +f 2400 2483 2484 2395 +f 2408 2479 2480 2403 +f 2474 2473 2554 2553 +f 2534 2533 2454 2560 2472 +f 2471 2470 2508 2463 2466 +f 2457 2456 2527 2526 +f 2456 2531 2448 2451 +f 2439 2438 2489 2488 +f 2434 2433 2505 2504 +f 2428 2427 2542 2541 +f 2408 2403 2406 2409 +f 2392 2389 2390 2393 +f 2352 2347 2350 2353 +f 2553 2556 2557 2558 +f 2524 2459 2462 2552 +f 2479 2478 2441 +f 2445 2523 2522 2543 2446 +f 2322 2327 2464 2537 +f 2333 2335 2534 2535 +f 2341 2345 2449 2448 +f 2355 2357 2526 2527 +f 2365 2367 2444 2460 +f 2373 2377 2519 2520 +f 2514 2511 2513 2515 +f 2504 2505 2506 2507 +f 2494 2490 2493 2495 +f 2392 2391 2485 2486 +f 2408 2407 2478 2479 +f 2417 2419 2473 2474 +f 2459 2460 2461 2462 +f 2444 2445 2446 2447 +f 2429 2430 2431 2432 +f 2417 2415 2416 2418 +f 2403 2404 2405 2406 +f 2389 2385 2388 2390 +f 2379 2377 2378 2380 +f 2369 2367 2368 2370 +f 2359 2357 2358 2360 +f 2347 2348 2349 2350 +f 2337 2335 2336 2338 +f 2329 2327 2328 2330 +f 2312 2260 2259 2314 2316 2318 2320 2156 2155 2123 2122 2310 2311 +f 2279 2294 2295 2280 +f 2187 2173 2319 2317 +f 2319 2157 2156 2320 +f 2262 2313 2314 2259 +f 2293 2278 2311 2310 +f 2305 2150 2152 2306 +f 2301 2142 2144 2302 +f 2297 2130 2133 2298 +f 2291 2306 2307 2292 +f 2287 2302 2303 2288 +f 2283 2298 2299 2284 +f 2278 2293 2294 2279 +f 2273 2288 2289 2274 +f 2269 2284 2285 2270 +f 2265 2280 2281 2266 +f 2255 2274 2275 2256 +f 2251 2270 2271 2252 +f 2246 2266 2267 2247 +f 2242 2257 2258 2243 +f 2238 2253 2254 2239 +f 2234 2249 2248 2250 2235 +f 2230 2244 2245 2231 +f 2224 2239 2240 2226 +f 2220 2235 2236 2221 +f 2216 2231 2232 2217 +f 2211 2226 2227 2212 +f 2207 2221 2222 2208 +f 2203 2217 2218 2204 +f 2198 2212 2213 2199 +f 2194 2208 2209 2195 +f 2190 2204 2205 2191 +f 2185 2199 2200 2186 +f 2181 2195 2196 2182 +f 2177 2191 2192 2178 +f 2173 2187 2188 2174 +f 2166 2182 2183 2167 +f 2162 2178 2179 2163 +f 2158 2174 2175 2159 +f 2149 2168 2169 2151 +f 2141 2164 2165 2143 +f 2131 2160 2161 2134 +f 2152 2151 2153 2154 +f 2144 2143 2145 2146 +f 2136 2133 2135 2134 2137 2138 +f 2122 2123 2124 2125 +f 2100 2101 1704 1702 +f 2104 2025 1712 1710 +f 2107 2108 1730 1728 +f 2110 2111 1740 1738 +f 2113 2114 1750 1748 +f 1943 2117 1760 1759 +f 2058 2061 1774 1773 +f 2118 2119 1788 1786 +f 2047 2079 2006 2014 +f 1977 1980 1937 1936 +f 2086 2017 2084 +f 2039 1950 1949 2073 +f 2118 2064 1981 2066 +f 2059 2056 1937 1973 +f 1942 2049 2048 1995 +f 2012 2001 1993 2004 +f 1962 2050 1948 1950 +f 2115 2114 1947 1961 +f 2112 2111 2033 2097 +f 2032 2108 2085 2016 +f 2030 2027 1989 +f 2104 2103 2072 2071 +f 2100 2099 2094 2082 +f 1998 2011 2005 +f 1971 1980 1974 +f 2087 2089 2088 2086 +f 1983 2020 2053 1990 +f 2028 2027 1721 1718 +f 1944 1943 1759 1756 +f 2061 2060 1777 1774 +f 2047 2014 2013 2044 +f 2010 1999 1998 2005 +f 1952 1996 1995 2048 +f 1945 2038 1946 +f 1955 2018 2026 2071 +f 2080 2081 2082 +f 2073 1949 2072 2074 +f 2068 1985 1984 2069 +f 1981 2064 2065 1982 +f 1976 1972 1971 1974 +f 1933 1969 1968 1934 +f 2049 1942 1941 2050 +f 2045 1964 1963 2046 +f 2001 2012 2011 1998 +f 2039 1963 1962 1950 +f 2033 2034 2035 1946 +f 2023 2024 2025 2026 +f 2011 2012 2013 2014 +f 1995 1996 1997 +f 1977 1981 1982 +f 1968 1969 1970 +f 1956 1957 1958 +f 1945 1946 1947 +f 1931 1930 1857 1815 1814 +f 1932 1885 1841 1844 +f 1924 1890 1824 +f 1922 1856 1855 +f 1926 1845 1879 +f 1805 1912 1872 1877 +f 1827 1830 1897 1896 1924 1824 +f 1720 1902 1821 1717 +f 1746 1893 1894 1743 +f 1879 1878 1927 1926 +f 1802 1871 1919 1918 +f 1866 1867 1870 1869 +f 1758 1861 1864 1863 +f 1768 1815 1857 1763 +f 1776 1853 1854 1771 +f 1849 1848 1814 1813 +f 1932 1887 1885 +f 1840 1839 1910 1909 +f 1891 1890 1924 1834 1833 +f 1904 1903 1828 1830 1827 +f 1931 1814 1848 1847 +f 1808 1921 1809 +f 1804 1803 1874 1873 +f 1794 1806 1876 1791 1792 1795 +f 1772 1767 1770 1773 +f 1746 1743 1744 1747 +f 1714 1711 1712 1715 +f 1908 1907 1843 1838 +f 1890 1889 1825 1824 +f 1916 1919 1920 1921 +f 1793 1911 1794 +f 1701 1703 1908 1837 +f 1709 1711 1904 1905 +f 1724 1723 1900 1901 +f 1734 1733 1831 1896 +f 1817 1741 1743 1894 1895 +f 1751 1753 1889 1890 +f 1882 1881 1880 1842 +f 1802 1801 1868 1871 +f 1758 1757 1860 1861 +f 1772 1771 1854 1855 +f 1783 1787 1847 1848 +f 1797 1800 1839 1840 +f 1824 1825 1826 1827 +f 1808 1809 1810 1811 +f 1793 1794 1795 1796 +f 1783 1784 1785 1786 +f 1767 1768 1769 1770 +f 1755 1753 1754 1756 +f 1745 1746 1747 1748 +f 1737 1733 1736 1738 +f 1727 1723 1726 1728 +f 1713 1714 1715 1716 +f 1705 1703 1704 1706 +f 1693 1694 1695 1696 1697 1698 +f 1159 1160 1146 1148 +f 1155 1156 1081 1067 +f 1150 1151 1138 1147 +f 1138 1137 1008 1022 +f 1143 1142 1066 1080 +f 1160 1159 966 1124 +f 1117 1122 1132 1133 1118 +f 1113 1128 1129 1114 +f 1109 1124 1125 1110 +f 1104 1118 1119 1105 +f 1100 1114 1115 1101 +f 1096 1110 1111 1097 +f 1091 1105 1106 1092 +f 1087 1101 1102 1088 +f 1083 1097 1098 1084 +f 1078 1092 1093 1079 +f 1074 1088 1089 1075 +f 1070 1084 1085 1071 +f 1142 1143 1156 1155 +f 1061 1076 1077 1062 +f 1057 1072 1073 1058 +f 1053 1068 1069 1054 +f 1048 1062 1063 1049 +f 1044 1058 1059 1045 +f 1040 1054 1055 1041 +f 1034 1049 1050 1035 +f 1030 1045 1046 1036 1031 +f 1026 1041 1042 1027 +f 1151 1150 1038 1023 +f 1017 1031 1032 1018 +f 1013 1027 1028 1014 +f 1009 1023 1024 1010 +f 1004 1018 1019 1005 +f 1000 1014 1015 1001 +f 996 1010 1011 997 +f 991 1005 1006 992 +f 987 1001 1002 988 +f 983 997 998 984 +f 966 1159 1153 981 +f 974 989 990 975 +f 970 985 986 971 +f 966 981 982 967 +f 1133 975 976 1134 +f 1129 971 972 1130 +f 1126 1125 967 968 963 +f 961 805 809 770 772 +f 815 817 766 767 +f 826 825 762 761 +f 836 838 755 756 +f 846 848 750 751 +f 855 859 745 747 +f 896 895 741 740 +f 910 909 734 733 +f 923 925 726 727 +f 956 957 958 959 +f 787 789 907 944 +f 783 937 938 +f 874 872 932 779 +f 923 921 922 924 +f 905 906 907 908 +f 891 892 893 894 +f 881 882 883 884 +f 871 867 870 872 +f 861 859 860 862 +f 850 848 849 851 +f 840 838 839 841 +f 829 830 831 +f 820 817 818 821 +f 811 809 810 812 +f 799 800 801 +f 788 789 790 +f 837 835 941 783 +f 775 776 777 778 +f 825 830 759 762 +f 865 896 740 742 +f 909 914 731 734 +f 956 959 954 953 +f 950 949 799 801 +f 945 948 894 893 +f 858 943 786 +f 940 939 822 821 +f 935 814 812 +f 779 932 818 816 +f 927 930 879 878 +f 922 921 917 920 +f 912 911 788 790 +f 904 903 774 773 +f 892 891 868 867 +f 886 887 873 876 +f 882 881 800 799 +f 874 873 871 872 +f 849 847 936 786 +f 824 823 819 822 +f 800 881 954 959 +f 894 948 897 +f 787 922 920 +f 774 903 900 +f 797 857 854 +f 858 786 860 +f 696 721 590 587 550 +f 563 624 622 562 +f 713 632 710 +f 706 586 583 +f 719 564 615 +f 545 695 612 617 +f 555 557 653 650 713 710 +f 664 663 666 669 +f 638 637 640 642 +f 615 614 716 719 +f 542 609 699 698 +f 605 604 606 607 +f 598 597 600 603 +f 588 587 590 593 +f 580 579 582 585 +f 572 570 550 707 +f 563 625 624 +f 561 560 687 686 +f 634 632 713 712 558 +f 672 670 711 557 555 +f 696 550 570 568 +f 548 703 549 +f 540 539 610 613 +f 691 543 616 567 725 722 +f 584 589 736 733 +f 638 642 748 746 +f 671 675 765 763 +f 680 678 715 559 +f 632 630 709 710 +f 700 699 702 703 +f 692 690 691 +f 683 681 680 682 +f 674 675 672 673 +f 661 662 659 660 +f 651 652 649 650 +f 643 644 642 640 641 +f 633 631 630 632 +f 621 618 619 620 +f 542 541 608 609 +f 598 599 596 597 +f 584 585 582 583 +f 571 569 568 570 +f 537 536 560 561 +f 710 709 554 555 +f 548 549 546 547 +f 692 691 722 723 +f 571 573 728 727 +f 589 588 735 736 +f 629 631 743 742 +f 639 638 746 747 +f 648 652 753 751 +f 658 662 758 756 +f 668 671 763 761 +f 679 681 768 767 +f 533 689 688 534 771 772 +f 681 683 769 768 +f 675 674 764 765 +f 662 661 757 758 +f 652 651 752 753 +f 642 644 749 748 +f 631 633 744 743 +f 593 592 737 738 +f 577 576 729 730 +f 567 566 724 725 +f 545 543 544 +f 667 666 552 553 +f 714 684 682 559 +f 569 566 565 568 +f 580 581 578 579 +f 599 595 594 596 +f 608 607 606 609 +f 537 619 618 538 +f 631 629 628 630 +f 638 639 636 637 +f 652 648 647 649 +f 662 658 657 659 +f 671 668 667 670 +f 681 679 678 680 +f 688 689 686 687 +f 700 701 698 699 +f 634 558 708 +f 686 684 714 561 +f 534 688 692 723 771 +f 651 654 754 752 +f 588 593 738 735 +f 573 577 730 728 +f 539 542 698 701 +f 544 543 691 690 +f 548 547 717 716 +f 553 552 660 659 +f 557 556 655 653 +f 714 619 537 561 +f 630 628 563 709 +f 565 696 568 +f 579 578 705 704 +f 587 586 706 705 +f 717 547 596 594 720 +f 604 601 549 702 +f 608 541 538 618 +f 612 611 614 617 +f 637 636 551 697 +f 661 660 663 665 +f 696 565 718 721 +f 701 610 539 +f 552 666 663 660 +f 704 582 579 +f 621 623 605 607 +f 703 702 549 +f 625 563 628 +f 868 891 896 865 +f 785 940 931 +f 792 890 888 +f 787 919 916 789 +f 778 946 791 794 883 880 +f 801 958 934 807 804 950 +f 807 806 802 804 +f 844 843 840 841 +f 869 868 865 866 +f 884 883 794 793 +f 885 795 792 888 +f 892 867 871 889 +f 903 902 899 900 +f 911 910 905 908 +f 919 918 913 916 +f 930 929 776 775 +f 940 821 818 932 931 +f 875 874 779 935 780 +f 783 938 839 837 +f 824 783 941 827 +f 948 947 898 897 +f 949 951 878 877 +f 959 958 801 800 +f 913 918 729 732 +f 899 902 737 739 +f 829 833 757 760 +f 777 776 773 774 +f 845 844 781 782 +f 919 787 920 +f 854 853 851 943 797 +f 809 805 808 810 +f 817 815 816 818 +f 825 826 827 828 +f 838 836 837 839 +f 848 846 847 849 +f 859 855 858 860 +f 867 868 869 870 +f 877 878 879 880 +f 892 889 890 893 +f 901 902 903 904 +f 917 918 919 920 +f 927 928 929 930 +f 847 845 782 936 +f 851 849 786 943 +f 952 953 954 955 +f 925 928 724 726 +f 914 913 732 731 +f 895 899 739 741 +f 859 861 744 745 +f 848 850 749 750 +f 838 840 754 755 +f 830 829 760 759 +f 817 820 764 766 +f 809 811 769 770 +f 1124 966 967 1125 +f 1128 962 970 971 1129 +f 1132 974 975 1133 +f 965 979 980 1140 1148 +f 969 984 985 970 +f 973 988 989 974 +f 977 992 993 978 +f 982 996 997 983 +f 986 1000 1001 987 +f 990 1004 1005 991 +f 995 1009 1010 996 +f 999 1013 1014 1000 +f 1003 1017 1018 1004 +f 1152 1151 1023 1009 +f 1012 1026 1027 1013 +f 1016 1030 1031 1017 +f 1020 1034 1035 1021 +f 1025 1040 1041 1026 +f 1029 1044 1045 1030 +f 1033 1048 1049 1034 +f 1039 1053 1054 1040 +f 1043 1057 1058 1044 +f 1047 1061 1062 1048 +f 1052 1067 1068 1053 +f 1056 1071 1072 1057 +f 1060 1075 1076 1061 +f 1051 1066 1142 1141 +f 1069 1083 1084 1070 +f 1073 1087 1088 1074 +f 1077 1091 1092 1078 +f 1082 1096 1097 1083 +f 1086 1100 1101 1087 +f 1090 1104 1105 1091 +f 1095 1109 1110 1096 +f 1099 1113 1114 1100 +f 1103 1117 1118 1104 +f 1158 1160 1124 1109 +f 1112 1127 1128 1113 +f 1116 1131 1132 1122 1117 +f 1120 1135 1136 1121 +f 1144 1143 1080 1094 +f 1147 1138 1022 1037 +f 1149 1150 1147 1141 +f 1154 1153 1140 1139 +f 1153 1159 1148 1140 +f 978 993 1007 1021 1035 1050 1064 1079 1093 1107 1121 1136 +f 1703 1701 1702 1704 +f 1711 1709 1710 1712 +f 1723 1724 1725 1726 +f 1733 1734 1735 1736 +f 1743 1741 1742 1744 +f 1753 1751 1752 1754 +f 1763 1764 1765 1766 +f 1779 1780 1781 1782 +f 1791 1789 1790 1792 +f 1805 1806 1807 +f 1820 1821 1822 1823 +f 1835 1836 1837 1838 +f 1787 1789 1846 1847 +f 1776 1775 1852 1853 +f 1757 1761 1859 1860 +f 1868 1869 1870 1871 +f 1797 1880 1881 1798 +f 1753 1755 1888 1889 +f 1746 1745 1892 1893 +f 1733 1737 1832 1831 +f 1723 1727 1899 1900 +f 1714 1713 1820 1903 +f 1703 1705 1907 1908 +f 1695 1694 1909 1910 +f 1916 1917 1918 1919 +f 1891 1833 1819 +f 1909 1836 1835 1840 +f 1696 1695 1793 1796 1697 +f 1734 1731 1732 1735 +f 1768 1763 1766 1769 +f 1784 1779 1782 1785 +f 1803 1802 1918 1917 +f 1807 1806 1794 1911 +f 1808 1811 1928 1927 +f 1823 1822 1901 1900 +f 1830 1829 1898 1897 +f 1835 1880 1797 1840 +f 1889 1888 1932 1825 +f 1846 1931 1847 +f 1853 1852 1812 1923 +f 1815 1856 1922 1812 +f 1928 1811 1860 1859 1929 +f 1867 1865 1809 1920 +f 1868 1801 1798 1881 +f 1872 1875 1878 1877 +f 1893 1892 1818 1915 +f 1724 1901 1902 1719 +f 1931 1846 1925 1930 +f 1917 1874 1803 +f 1822 1821 1902 1901 +f 1923 1854 1853 +f 1882 1884 1866 1869 +f 1921 1920 1809 +f 1887 1932 1888 +f 1941 1942 1943 1944 +f 1954 1955 1940 +f 1953 1966 1967 +f 1977 1978 1979 1980 +f 1990 1991 1951 1992 1993 1994 +f 2005 2006 2007 2008 2009 2010 +f 2008 2021 2022 2009 +f 2015 2031 2032 2016 +f 1938 1941 1944 1939 +f 2004 1993 1992 2002 +f 2040 2043 1953 1967 +f 2049 2050 1962 1965 +f 1969 2054 2055 1970 +f 1972 2058 2059 1973 +f 1978 2062 2063 1979 +f 1985 2019 2020 1983 +f 1955 2071 2072 1949 1940 +f 2077 2039 2073 2080 2078 +f 2086 2084 2085 2087 +f 2023 2086 2088 2090 +f 1996 2052 2051 1997 +f 1999 2091 2069 2000 +f 2014 2006 2005 2011 +f 2063 2062 1781 1778 +f 2055 2054 1765 1762 +f 2030 2029 1725 1722 +f 2053 2020 1934 1968 +f 2095 2015 1959 2083 +f 1978 1977 1982 +f 1958 2096 2097 2038 1956 +f 2099 2098 2076 2094 +f 2103 2102 2074 2072 +f 2028 2105 2090 1986 +f 2108 2107 2087 2085 +f 2111 2110 2034 2033 +f 2114 2113 1945 1947 +f 2050 1941 1938 1948 +f 2000 2069 1984 1994 +f 2049 1965 1966 2048 +f 2057 2054 1969 1933 +f 2065 2062 1978 1982 +f 2068 2120 2019 1985 +f 2034 2095 2083 2035 +f 2097 2033 1946 2038 +f 2041 2044 2013 2003 +f 2119 2120 1790 1788 +f 2060 2063 1778 1777 +f 2117 2055 1762 1760 +f 2114 2115 1752 1750 +f 2111 2112 1742 1740 +f 2108 2032 1732 1730 +f 2024 2105 1716 1715 +f 2101 2102 1706 1704 +f 2093 2021 2098 2121 1698 1697 +f 2133 2130 2132 2131 2134 2135 +f 2142 2141 2143 2144 +f 2150 2149 2151 2152 +f 2128 2159 2160 2131 +f 2139 2163 2164 2141 +f 2147 2167 2168 2149 +f 2172 2173 2174 2158 +f 2161 2177 2178 2162 +f 2165 2181 2182 2166 +f 2169 2185 2186 2170 +f 2176 2190 2191 2177 +f 2180 2194 2195 2181 +f 2184 2198 2199 2185 +f 2189 2203 2204 2190 +f 2193 2207 2208 2194 +f 2197 2211 2212 2198 +f 2202 2216 2217 2203 +f 2206 2220 2221 2207 +f 2210 2225 2224 2226 2211 +f 2215 2230 2231 2216 +f 2219 2234 2235 2220 +f 2223 2238 2239 2224 +f 2228 2242 2243 2229 +f 2233 2247 2248 2249 2234 +f 2237 2252 2253 2238 +f 2241 2256 2257 2242 +f 2245 2265 2266 2246 +f 2250 2269 2270 2251 +f 2254 2273 2274 2255 +f 2263 2278 2279 2264 +f 2268 2283 2284 2269 +f 2272 2287 2288 2273 +f 2276 2291 2292 2277 +f 2282 2297 2298 2283 +f 2286 2301 2302 2287 +f 2290 2305 2306 2291 +f 2296 2129 2130 2297 +f 2300 2140 2142 2301 +f 2304 2148 2150 2305 +f 2125 2293 2310 2122 +f 2230 2262 2261 2244 +f 2317 2319 2320 2318 +f 2201 2187 2317 2315 +f 2264 2279 2280 2265 +f 2308 2294 2293 2125 +f 2327 2322 2321 2326 2328 +f 2335 2333 2334 2336 +f 2345 2341 2344 2346 +f 2357 2355 2356 2358 +f 2367 2365 2366 2368 +f 2377 2373 2376 2378 +f 2385 2386 2387 2388 +f 2399 2400 2401 2402 +f 2415 2411 2414 2416 +f 2425 2426 2427 2428 +f 2440 2441 2442 2443 +f 2456 2457 2458 +f 2469 2470 2471 2472 +f 2412 2411 2476 2477 +f 2396 2395 2484 2443 +f 2490 2491 2492 2493 +f 2500 2501 2502 2503 +f 2511 2512 2469 2513 +f 2377 2379 2518 2519 +f 2367 2369 2445 2444 +f 2357 2359 2525 2526 +f 2347 2530 2348 +f 2335 2337 2533 2534 +f 2327 2329 2465 2464 +f 2540 2541 2542 +f 2550 2551 2440 +f 2528 2527 2456 2451 +f 2553 2554 2555 2556 +f 2348 2345 2346 2349 +f 2386 2383 2384 2387 +f 2404 2399 2402 2405 +f 2427 2426 2429 2432 +f 2433 2435 2541 2540 +f 2438 2437 2493 2492 +f 2520 2447 2446 +f 2455 2454 2533 2532 +f 2466 2465 2536 +f 2472 2471 2535 2534 +f 2473 2419 2504 2507 +f 2412 2477 2478 2407 +f 2483 2482 2551 2550 +f 2486 2485 2558 2557 +f 2491 2490 2511 2514 +f 2497 2496 2509 2510 +f 2501 2500 2540 2542 +f 2510 2470 2469 2512 +f 2460 2444 2447 2461 +f 2342 2531 2532 2339 +f 2501 2542 2427 2432 +f 2492 2489 2438 +f 2441 2478 2477 +f 2557 2487 2486 +f 2543 2522 2521 +f 2520 2519 2447 +f 2561 2562 2563 2564 2565 +f 2576 2568 2577 2578 +f 2587 2588 2589 +f 2599 2600 2601 +f 2611 2612 2613 +f 2626 2627 2628 2629 +f 2643 2644 2645 2646 2588 2587 +f 2617 2655 2656 2614 +f 2585 2664 2665 2586 +f 2622 2612 2611 2618 +f 2668 2669 2670 2671 +f 2594 2593 2592 2595 +f 2625 2571 2570 2623 +f 2565 2684 2685 2561 +f 2603 2688 2689 2604 +f 2694 2609 2605 2564 +f 2568 2576 2566 +f 2635 2703 2704 2636 +f 2587 2589 2575 2663 2711 +f 2714 2651 2654 2646 2645 +f 2564 2563 2695 2694 +f 2619 2580 2579 +f 2631 2641 2640 2632 +f 2696 2697 2719 2720 2423 2420 +f 2687 2686 2401 2398 +f 2665 2664 2375 2372 +f 2653 2652 2343 2340 +f 2702 2709 2708 2701 +f 2698 2589 2588 2582 +f 2671 2620 2579 2581 +f 2650 2720 2637 +f 2729 2728 2710 2709 +f 2653 2732 2699 2654 +f 2734 2657 2616 2717 +f 2737 2659 2643 2723 +f 2665 2740 2725 2724 2586 +f 2744 2743 2589 2698 +f 2674 2591 2667 2705 +f 2672 2669 2668 2673 +f 2745 2571 2625 2679 +f 2689 2686 2600 2604 +f 2747 2746 2694 2695 +f 2634 2707 2703 2635 +f 2582 2588 2646 2583 +f 2580 2619 2680 2624 +f 2720 2650 2424 2423 +f 2692 2746 2414 2413 +f 2684 2687 2398 2397 +f 2744 2572 2384 2382 +f 2664 2741 2376 2375 +f 2737 2738 2366 2364 +f 2655 2658 2350 2349 +f 2731 2732 2338 2336 +f 2727 2728 2330 2328 +f 2754 2755 2756 2757 +f 2764 2766 2765 2767 2768 +f 2774 2773 2775 2776 +f 2751 2783 2784 2785 2752 +f 2762 2789 2790 2765 +f 2771 2793 2794 2773 +f 2779 2797 2798 2781 +f 2787 2803 2804 2788 +f 2791 2807 2808 2792 +f 2795 2811 2812 2796 +f 2802 2816 2817 2803 +f 2806 2820 2821 2807 +f 2810 2824 2825 2811 +f 2815 2829 2830 2816 +f 2819 2833 2834 2820 +f 2823 2837 2838 2824 +f 2827 2841 2842 2828 +f 2832 2846 2847 2833 +f 2836 2850 2851 2837 +f 2840 2855 2856 2841 +f 2845 2860 2861 2846 +f 2849 2864 2865 2850 +f 2854 2868 2869 2855 +f 2859 2873 2874 2860 +f 2863 2878 2879 2864 +f 2867 2882 2883 2868 +f 2887 2888 2889 2890 +f 2875 2895 2896 2876 +f 2880 2899 2900 2881 +f 2884 2903 2904 2885 +f 2894 2909 2910 2895 +f 2898 2913 2914 2899 +f 2902 2917 2918 2903 +f 2908 2923 2924 2909 +f 2912 2927 2928 2913 +f 2916 2931 2932 2917 +f 2922 2936 2754 2923 +f 2926 2761 2764 2927 +f 2930 2772 2774 2937 2931 +f 2934 2780 2782 2935 +f 2906 2891 2940 2939 +f 2941 2943 2944 2942 +f 2858 2843 2941 2890 +f 2801 2800 2785 2947 +f 2800 2799 2752 2785 +f 2781 2798 2814 2828 2842 2857 2871 2886 2905 2920 2935 2782 +f 2734 2735 2356 2354 2353 2657 +g post +f 4422 4440 4342 +f 4147 4134 4436 +f 4163 4176 4435 +f 4324 4325 4432 4433 +f 4265 4252 4428 +f 4222 4234 4427 +f 4205 4206 4424 4425 +f 4023 4024 4420 4421 +f 4085 4070 4416 +f 4401 4400 4218 4219 +f 4396 4395 4234 4233 +f 4392 4399 4230 4229 +f 4380 4379 4261 4260 +f 4383 4382 4308 4309 +f 4386 4385 4323 4322 +f 4373 4352 4006 4007 +f 4361 4362 4010 4011 +f 4369 4370 4020 4019 +f 4367 4365 4066 4067 +f 4346 4345 4083 4082 +f 4354 4353 4128 4129 +f 4358 4357 4132 4133 +f 4409 4408 4173 4172 +f 4413 4412 4144 4143 +f 4340 3991 3990 4341 +f 4336 3995 3994 4337 +f 4332 3999 3998 4333 +f 4329 3986 3985 4343 4330 +f 4325 4342 4440 3989 4326 +f 4387 4338 4339 4386 +f 4317 4334 4335 4318 +f 3927 3982 4331 4314 +f 4308 4321 4322 4309 +f 4304 4317 4318 4305 +f 3882 3927 4314 4301 +f 4297 4327 4328 4298 +f 4384 4375 4294 4293 +f 4390 4381 4290 4289 +f 4285 4302 4303 4286 +f 4280 4293 4294 4281 +f 4276 4289 4290 4277 +f 4272 4285 4286 4273 +f 4269 4299 4300 4270 +f 4265 4282 4295 4296 4266 +f 4379 4278 4279 4378 +f 4257 4274 4275 4258 +f 3743 3798 4271 4254 +f 4248 4261 4262 4249 +f 4244 4257 4258 4245 +f 3716 3743 4254 4241 +f 4237 4267 4268 4238 +f 4396 4250 4251 4395 +f 4392 4246 4247 4399 +f 4225 4242 4243 4226 +f 4221 4233 4234 4222 +f 4217 4229 4230 4218 +f 4213 4225 4226 4214 +f 4210 4239 4240 4211 +f 4206 4223 4235 4236 4207 +f 4401 4402 4203 4202 +f 4198 4215 4216 4199 +f 3576 3631 4212 4195 +f 4190 4202 4203 4191 +f 4186 4198 4199 4187 +f 3548 3576 4195 4183 +f 4179 4208 4209 4180 +f 4406 4192 4193 4405 +f 4394 4188 4189 4409 +f 4167 4184 4185 4168 +f 4162 4175 4176 4163 +f 4158 4171 4172 4159 +f 4154 4167 4168 4155 +f 4151 4181 4182 4165 4152 +f 4147 4164 4177 4178 4148 +f 4413 4160 4161 4412 +f 4139 4156 4157 4140 +f 3409 3464 4153 4136 +f 4130 4143 4144 4131 +f 4126 4139 4140 4127 +f 3373 3409 4136 4123 +f 4119 4135 4149 4150 4120 +f 4357 4358 4116 4115 +f 4353 4354 4112 4111 +f 4107 4124 4125 4108 +f 4100 4115 4116 4101 +f 4096 4111 4112 4097 +f 4092 4107 4108 4093 +f 4089 4121 4122 4105 4090 +f 4085 4102 4117 4118 4086 +f 4347 4098 4099 4346 +f 4077 4094 4095 4078 +f 3235 3290 4091 4074 +f 4066 4081 4082 4067 +f 4062 4077 4078 4063 +f 3204 3235 4074 4059 +f 4055 4087 4088 4071 4056 +f 4364 4359 4052 4051 +f 4350 4366 4048 4047 +f 4043 4060 4061 4044 +f 4039 4051 4052 4040 +f 4035 4047 4048 4036 +f 4031 4043 4044 4032 +f 4028 4057 4058 4029 +f 4024 4041 4053 4054 4025 +f 4370 4037 4038 4368 +f 4016 4033 4034 4017 +f 3060 3115 4030 4013 +f 4008 4020 4021 4009 +f 4004 4016 4017 4005 +f 3030 3060 4013 4001 +f 3988 4026 4027 3987 +f 4362 4361 3990 3991 +f 4352 4373 3994 3995 +f 3999 4002 4003 3998 +f 3772 3717 3690 3635 3605 3550 3522 3467 3438 3383 3347 3292 3264 3209 3178 3123 3089 3034 3004 3003 3956 3901 3856 3801 +f 2980 3979 3978 2981 +f 2984 3975 3974 2985 +f 2988 3971 3970 2989 +f 2992 3967 3966 2993 +f 2996 3963 3962 2997 +f 3000 3959 3958 3001 +f 2951 2950 3954 3953 +f 2955 2954 3984 3950 3949 +f 2959 2958 3946 3945 +f 2963 2962 3942 3941 +f 2967 2966 3938 3937 +f 2971 2970 3934 3933 +f 2975 2974 3930 3929 +f 3980 3925 3924 3979 +f 3976 3921 3920 3975 +f 3972 3917 3916 3971 +f 3968 3913 3912 3967 +f 3964 3909 3908 3963 +f 3960 3905 3904 3959 +f 3927 3882 3881 3926 +f 3923 3878 3877 3922 +f 3919 3874 3873 3918 +f 3915 3870 3869 3914 +f 3911 3866 3865 3910 +f 3907 3862 3861 3906 +f 3903 3858 3857 3902 +f 3952 3953 3899 3853 3852 3898 +f 3948 3949 3895 3849 3848 3894 +f 3944 3945 3892 3845 3844 +f 3940 3941 3890 3841 3840 3889 +f 3936 3937 3887 3837 3836 3886 +f 3932 3933 3833 3832 +f 3928 3929 3884 3829 3828 3883 +f 3879 3824 3823 3878 +f 3875 3820 3819 3874 +f 3871 3816 3815 3870 +f 3867 3812 3811 3866 +f 3863 3808 3807 3862 +f 3859 3804 3803 3858 +f 3826 3797 3796 3825 +f 3822 3793 3792 3821 +f 3818 3789 3788 3817 +f 3814 3785 3784 3813 +f 3810 3781 3780 3809 +f 3806 3777 3776 3805 +f 3802 3773 3772 3801 +f 3851 3852 3768 3767 3800 +f 3847 3848 3764 3763 +f 3843 3844 3760 3759 +f 3839 3840 3756 3755 +f 3835 3836 3752 3751 +f 3831 3832 3748 3747 +f 3798 3743 3742 3797 +f 3794 3739 3738 3793 +f 3790 3735 3734 3789 +f 3786 3731 3730 3785 +f 3782 3727 3726 3781 +f 3778 3723 3722 3777 +f 3774 3719 3718 3773 +f 3741 3714 3713 3740 +f 3737 3710 3709 3736 +f 3733 3706 3705 3732 +f 3729 3702 3701 3728 +f 3725 3698 3697 3724 +f 3721 3694 3693 3720 +f 3770 3771 3689 3688 +f 3766 3767 3685 3684 +f 3762 3763 3681 3680 +f 3758 3759 3677 3676 +f 3754 3755 3673 3672 +f 3750 3751 3669 3668 +f 3746 3747 3665 3664 +f 3715 3660 3659 3714 +f 3711 3656 3655 3710 +f 3707 3652 3651 3706 +f 3703 3648 3647 3702 +f 3699 3644 3643 3698 +f 3695 3640 3639 3694 +f 3691 3636 3635 3690 +f 3658 3628 3627 3657 +f 3654 3624 3623 3653 +f 3650 3620 3619 3649 +f 3646 3616 3615 3645 +f 3642 3612 3611 3641 +f 3638 3608 3607 3637 +f 3687 3688 3634 3603 3602 +f 3683 3684 3599 3598 +f 3679 3680 3595 3594 +f 3675 3676 3591 3590 +f 3671 3672 3587 3586 +f 3667 3668 3583 3582 +f 3663 3664 3579 3578 +f 3629 3574 3573 3628 +f 3625 3570 3569 3624 +f 3621 3566 3565 3620 +f 3617 3562 3561 3616 +f 3613 3558 3557 3612 +f 3609 3554 3553 3608 +f 3576 3548 3547 3575 +f 3572 3544 3543 3571 +f 3568 3540 3539 3567 +f 3564 3536 3535 3563 +f 3560 3532 3531 3559 +f 3556 3528 3527 3555 +f 3552 3524 3523 3551 +f 3601 3602 3519 3518 +f 3597 3598 3515 3514 +f 3593 3594 3511 3510 +f 3589 3590 3507 3506 +f 3585 3586 3503 3502 +f 3581 3582 3499 3498 +f 3578 3495 3494 3577 +f 3545 3490 3489 3544 +f 3541 3486 3485 3540 +f 3537 3482 3481 3536 +f 3533 3478 3477 3532 +f 3529 3474 3473 3528 +f 3525 3470 3469 3524 +f 3492 3463 3462 3491 +f 3488 3459 3458 3487 +f 3484 3455 3454 3483 +f 3480 3451 3450 3479 +f 3476 3447 3446 3475 +f 3472 3443 3442 3471 +f 3468 3439 3438 3467 +f 3517 3518 3434 3433 3466 +f 3513 3514 3430 3429 +f 3509 3510 3426 3425 +f 3505 3506 3422 3421 +f 3501 3502 3418 3417 +f 3497 3498 3414 3413 +f 3464 3409 3408 3463 +f 3460 3405 3404 3459 +f 3456 3401 3400 3455 +f 3452 3397 3396 3451 +f 3448 3393 3392 3447 +f 3444 3389 3388 3443 +f 3440 3385 3384 3439 +f 3407 3371 3370 3406 +f 3403 3367 3366 3402 +f 3399 3363 3362 3398 +f 3395 3359 3358 3394 +f 3391 3355 3354 3390 +f 3387 3351 3350 3386 +f 3436 3437 3346 3345 +f 3432 3433 3382 3342 3341 3381 +f 3428 3429 3338 3337 +f 3424 3425 3334 3333 +f 3420 3421 3377 3330 3329 3376 +f 3416 3417 3326 3325 +f 3412 3413 3322 3321 +f 3372 3317 3316 3371 +f 3368 3313 3312 3367 +f 3364 3309 3308 3363 +f 3360 3305 3304 3359 +f 3356 3301 3300 3355 +f 3352 3297 3296 3351 +f 3348 3293 3292 3347 +f 3315 3287 3286 3314 +f 3311 3283 3282 3310 +f 3307 3279 3278 3306 +f 3303 3275 3274 3302 +f 3299 3271 3270 3298 +f 3295 3267 3266 3294 +f 3344 3345 3262 3261 +f 3340 3341 3258 3257 +f 3336 3337 3254 3253 +f 3332 3333 3250 3249 +f 3328 3329 3246 3245 +f 3324 3325 3242 3241 +f 3320 3321 3238 3237 +f 3288 3233 3232 3287 +f 3284 3229 3228 3283 +f 3280 3225 3224 3279 +f 3276 3221 3220 3275 +f 3272 3217 3216 3271 +f 3268 3213 3212 3267 +f 3235 3204 3203 3234 +f 3231 3200 3199 3230 +f 3227 3196 3195 3226 +f 3223 3192 3191 3222 +f 3219 3188 3187 3218 +f 3215 3184 3183 3214 +f 3211 3180 3179 3210 +f 3260 3261 3175 3174 +f 3256 3257 3171 3170 +f 3252 3253 3167 3166 +f 3248 3249 3163 3162 +f 3244 3245 3159 3158 +f 3240 3241 3155 3154 +f 3236 3237 3151 3150 3205 +f 3201 3146 3145 3200 +f 3197 3142 3141 3196 +f 3193 3138 3137 3192 +f 3189 3134 3133 3188 +f 3185 3130 3129 3184 +f 3181 3126 3125 3180 +f 3148 3114 3113 3147 +f 3144 3110 3109 3143 +f 3140 3106 3105 3139 +f 3136 3102 3101 3135 +f 3132 3098 3097 3131 +f 3128 3094 3093 3127 +f 3124 3090 3089 3123 +f 3173 3174 3085 3084 3122 +f 3169 3170 3081 3080 +f 3165 3166 3077 3076 3120 +f 3161 3162 3073 3072 +f 3157 3158 3116 3069 3068 +f 3153 3154 3065 3064 +f 3115 3060 3059 3114 +f 3111 3056 3055 3110 +f 3107 3052 3051 3106 +f 3103 3048 3047 3102 +f 3099 3044 3043 3098 +f 3095 3040 3039 3094 +f 3091 3036 3035 3090 +f 3058 3028 3027 3057 +f 3054 3024 3023 3053 +f 3050 3020 3019 3049 +f 3046 3016 3015 3045 +f 3042 3012 3011 3041 +f 3038 3008 3007 3037 +f 3087 3088 2949 2950 +f 3083 3084 3033 2953 2954 +f 3079 3080 2957 2958 +f 3075 3076 2961 2962 +f 3071 3072 2965 2966 +f 3067 3068 2969 2970 +f 3063 3064 2973 2974 3031 +f 3029 2978 2979 3028 +f 3025 2982 2983 3024 +f 3021 2986 2987 3020 +f 3017 2990 2991 3016 +f 3013 2994 2995 3012 +f 3009 2998 2999 3008 +f 3005 3002 3003 3004 +f 3008 2999 3000 3007 +f 3012 2995 2996 3011 +f 3016 2991 2992 3015 +f 3020 2987 2988 3019 +f 3024 2983 2984 3023 +f 3028 2979 2980 3027 +f 3062 3063 3031 2974 2975 +f 3066 3067 2970 2971 +f 3070 3071 2966 2967 +f 3074 3075 2962 2963 +f 3078 3079 2958 2959 +f 3082 3083 2954 2955 3032 +f 3086 3087 2950 2951 +f 3037 3007 3006 3036 +f 3041 3011 3010 3040 +f 3045 3015 3014 3044 +f 3049 3019 3018 3048 +f 3053 3023 3022 3052 +f 3057 3027 3026 3056 +f 3090 3035 3034 3089 +f 3094 3039 3038 3093 +f 3098 3043 3042 3097 +f 3102 3047 3046 3101 +f 3106 3051 3050 3105 +f 3110 3055 3054 3109 +f 3114 3059 3058 3113 +f 3152 3153 3064 3063 +f 3156 3157 3068 3067 +f 3160 3161 3072 3071 +f 3164 3165 3120 3076 3075 3119 +f 3168 3169 3080 3079 +f 3172 3173 3122 3084 3083 3121 +f 3176 3177 3088 3087 +f 3127 3093 3092 3126 +f 3131 3097 3096 3130 +f 3135 3101 3100 3134 +f 3139 3105 3104 3138 +f 3143 3109 3108 3142 +f 3147 3113 3112 3146 +f 3180 3125 3124 3179 +f 3184 3129 3128 3183 +f 3188 3133 3132 3187 +f 3192 3137 3136 3191 +f 3196 3141 3140 3195 +f 3200 3145 3144 3199 +f 3204 3149 3148 3203 +f 3239 3240 3154 3153 3206 +f 3243 3244 3158 3157 +f 3247 3248 3162 3161 +f 3251 3252 3166 3165 +f 3255 3256 3170 3169 +f 3259 3260 3174 3173 3208 +f 3210 3179 3178 3209 +f 3214 3183 3182 3213 +f 3218 3187 3186 3217 +f 3222 3191 3190 3221 +f 3226 3195 3194 3225 +f 3230 3199 3198 3229 +f 3234 3203 3202 3233 +f 3267 3212 3211 3266 +f 3271 3216 3215 3270 +f 3275 3220 3219 3274 +f 3279 3224 3223 3278 +f 3283 3228 3227 3282 +f 3287 3232 3231 3286 +f 3319 3320 3237 3236 3291 +f 3323 3324 3241 3240 +f 3327 3328 3245 3244 +f 3331 3332 3249 3248 +f 3335 3336 3253 3252 +f 3339 3340 3257 3256 +f 3343 3344 3261 3260 +f 3294 3266 3265 3293 +f 3298 3270 3269 3297 +f 3302 3274 3273 3301 +f 3306 3278 3277 3305 +f 3310 3282 3281 3309 +f 3314 3286 3285 3313 +f 3318 3290 3289 3317 +f 3351 3296 3295 3350 +f 3355 3300 3299 3354 +f 3359 3304 3303 3358 +f 3363 3308 3307 3362 +f 3367 3312 3311 3366 +f 3371 3316 3315 3370 +f 3411 3412 3321 3320 +f 3415 3416 3325 3324 +f 3419 3420 3376 3329 3328 3375 +f 3423 3424 3333 3332 3379 +f 3427 3428 3337 3336 +f 3431 3432 3381 3341 3340 3380 +f 3435 3436 3345 3344 +f 3386 3350 3349 3385 +f 3390 3354 3353 3389 +f 3394 3358 3357 3393 +f 3398 3362 3361 3397 +f 3402 3366 3365 3401 +f 3406 3370 3369 3405 +f 3439 3384 3383 3438 +f 3443 3388 3387 3442 +f 3447 3392 3391 3446 +f 3451 3396 3395 3450 +f 3455 3400 3399 3454 +f 3459 3404 3403 3458 +f 3463 3408 3407 3462 +f 3496 3497 3413 3412 +f 3500 3501 3417 3416 +f 3504 3505 3421 3420 +f 3508 3509 3425 3424 +f 3512 3513 3429 3428 +f 3516 3517 3466 3433 3432 +f 3520 3521 3437 3436 +f 3471 3442 3441 3470 +f 3475 3446 3445 3474 +f 3479 3450 3449 3478 +f 3483 3454 3453 3482 +f 3487 3458 3457 3486 +f 3491 3462 3461 3490 +f 3524 3469 3468 3523 +f 3528 3473 3472 3527 +f 3532 3477 3476 3531 +f 3536 3481 3480 3535 +f 3540 3485 3484 3539 +f 3544 3489 3488 3543 +f 3548 3493 3492 3547 +f 3580 3581 3498 3497 +f 3584 3585 3502 3501 +f 3588 3589 3506 3505 +f 3592 3593 3510 3509 +f 3596 3597 3514 3513 +f 3600 3601 3518 3517 +f 3551 3523 3522 3550 +f 3555 3527 3526 3554 +f 3559 3531 3530 3558 +f 3563 3535 3534 3562 +f 3567 3539 3538 3566 +f 3571 3543 3542 3570 +f 3575 3547 3546 3574 +f 3608 3553 3552 3607 +f 3612 3557 3556 3611 +f 3616 3561 3560 3615 +f 3620 3565 3564 3619 +f 3624 3569 3568 3623 +f 3628 3573 3572 3627 +f 3663 3578 3577 3662 +f 3666 3667 3582 3581 +f 3670 3671 3586 3585 3632 +f 3674 3675 3590 3589 +f 3678 3679 3594 3593 +f 3682 3683 3598 3597 3633 +f 3686 3687 3602 3601 +f 3637 3607 3606 3636 +f 3641 3611 3610 3640 +f 3645 3615 3614 3644 +f 3649 3619 3618 3648 +f 3653 3623 3622 3652 +f 3657 3627 3626 3656 +f 3661 3631 3630 3660 +f 3694 3639 3638 3693 +f 3698 3643 3642 3697 +f 3702 3647 3646 3701 +f 3706 3651 3650 3705 +f 3710 3655 3654 3709 +f 3714 3659 3658 3713 +f 3745 3746 3664 3663 +f 3749 3750 3668 3667 +f 3753 3754 3672 3671 +f 3757 3758 3676 3675 +f 3761 3762 3680 3679 +f 3765 3766 3684 3683 +f 3769 3770 3688 3687 +f 3720 3693 3692 3719 +f 3724 3697 3696 3723 +f 3728 3701 3700 3727 +f 3732 3705 3704 3731 +f 3736 3709 3708 3735 +f 3740 3713 3712 3739 +f 3773 3718 3717 3772 +f 3777 3722 3721 3776 +f 3781 3726 3725 3780 +f 3785 3730 3729 3784 +f 3789 3734 3733 3788 +f 3793 3738 3737 3792 +f 3797 3742 3741 3796 +f 3830 3831 3747 3746 +f 3834 3835 3751 3750 +f 3838 3839 3755 3754 +f 3842 3843 3759 3758 +f 3846 3847 3763 3762 +f 3850 3851 3800 3767 3766 3799 +f 3854 3855 3771 3770 +f 3805 3776 3775 3804 +f 3809 3780 3779 3808 +f 3813 3784 3783 3812 +f 3817 3788 3787 3816 +f 3821 3792 3791 3820 +f 3825 3796 3795 3824 +f 3858 3803 3802 3857 +f 3862 3807 3806 3861 +f 3866 3811 3810 3865 +f 3870 3815 3814 3869 +f 3874 3819 3818 3873 +f 3878 3823 3822 3877 +f 3882 3827 3826 3881 +f 3931 3932 3832 3831 +f 3935 3936 3886 3836 3835 3885 +f 3939 3940 3889 3840 3839 3888 +f 3943 3944 3844 3843 +f 3947 3948 3894 3848 3847 3893 +f 3951 3952 3898 3852 3851 3897 +f 3902 3857 3856 3901 +f 3906 3861 3860 3905 +f 3910 3865 3864 3909 +f 3914 3869 3868 3913 +f 3918 3873 3872 3917 +f 3922 3877 3876 3921 +f 3926 3881 3880 3925 +f 3959 3904 3903 3958 +f 3963 3908 3907 3962 +f 3967 3912 3911 3966 +f 3971 3916 3915 3970 +f 3975 3920 3919 3974 +f 3979 3924 3923 3978 +f 2976 2975 3929 3928 3983 +f 2972 2971 3933 3932 +f 2968 2967 3937 3936 +f 2964 2963 3941 3940 +f 2960 2959 3945 3944 +f 2956 2955 3949 3948 +f 2952 2951 3953 3952 +f 3001 3958 3957 3002 +f 2997 3962 3961 2998 +f 2993 3966 3965 2994 +f 2989 3970 3969 2990 +f 2985 3974 3973 2986 +f 2981 3978 3977 2982 +f 2977 3982 3981 2978 +f 4000 4001 4002 3999 +f 3995 3996 4005 4006 4352 +f 4371 4362 3991 3992 +f 3989 4025 4026 3988 +f 3985 4029 3061 2976 +f 4003 4015 4016 4004 +f 4007 4019 4020 4008 +f 4012 4011 4421 4420 +f 4015 4032 4033 4016 +f 4369 4036 4037 4370 +f 4023 4360 4040 4041 4024 +f 4027 4056 4057 4028 +f 4030 4042 4043 4031 +f 4034 4046 4047 4035 +f 4038 4050 4051 4039 +f 4042 4059 4060 4043 +f 4047 4046 4063 4064 4350 +f 4367 4364 4051 4050 +f 4054 4086 4087 4055 +f 4058 4073 4090 3236 3205 3150 +f 4061 4076 4077 4062 +f 4065 4080 4081 4066 +f 4070 4069 4417 4416 +f 4076 4093 4094 4077 +f 4348 4097 4098 4347 +f 4084 4344 4101 4102 4085 +f 4088 4104 4120 4121 4089 +f 4091 4106 4107 4092 +f 4095 4110 4111 4096 +f 4099 4114 4115 4100 +f 4106 4123 4124 4107 +f 4111 4110 4127 4128 4353 +f 4356 4357 4115 4114 +f 4118 4148 4149 4135 4119 +f 4122 4152 3410 3319 +f 4125 4138 4139 4126 +f 4129 4142 4143 4130 +f 4134 4133 4437 4436 +f 4138 4155 4156 4139 +f 4414 4159 4160 4413 +f 4146 4410 4163 4164 4147 +f 4150 4180 4181 4151 +f 4153 4166 4167 4154 +f 4157 4170 4171 4158 +f 4161 4174 4175 4162 +f 4166 4183 4184 4167 +f 4171 4170 4187 4188 4394 +f 4407 4191 4192 4406 +f 4178 4207 4208 4179 +f 4182 4211 3577 3494 +f 4185 4197 4198 4186 +f 4189 4201 4202 4190 +f 4194 4193 4425 4424 +f 4197 4214 4215 4198 +f 4400 4401 4202 4201 +f 4205 4404 4222 4223 4206 +f 4209 4238 4239 4210 +f 4212 4224 4225 4213 +f 4216 4228 4229 4217 +f 4220 4232 4233 4221 +f 4224 4241 4242 4225 +f 4229 4228 4245 4246 4392 +f 4397 4249 4250 4396 +f 4236 4266 4267 4237 +f 4240 4270 3744 3662 +f 4243 4256 4257 4244 +f 4247 4260 4261 4248 +f 4252 4251 4429 4428 +f 4256 4273 4274 4257 +f 4380 4277 4278 4379 +f 4264 4376 4281 4282 4265 +f 4268 4298 4299 4269 +f 4271 4284 4285 4272 +f 4275 4288 4289 4276 +f 4279 4292 4293 4280 +f 4284 4301 4302 4285 +f 4289 4288 4305 4306 4390 +f 4383 4384 4293 4292 +f 4296 4326 4327 4297 +f 4300 4313 4330 3928 3883 3828 +f 4303 4316 4317 4304 +f 4307 4320 4321 4308 +f 4312 4311 4433 4432 +f 4316 4333 4334 4317 +f 4388 4337 4338 4387 +f 4324 4374 4341 4342 4325 +f 4328 3987 3986 4329 +f 4331 4000 3999 4332 +f 4335 3996 3995 4336 +f 4339 3992 3991 4340 +f 4414 4413 4143 4142 +f 4394 4409 4172 4171 +f 4406 4405 4176 4175 +f 4355 4354 4129 4130 +f 4347 4346 4082 4081 +f 4364 4367 4067 4068 +f 4351 4369 4019 4018 +f 4363 4360 4023 4022 +f 4372 4373 4007 4008 +f 4387 4386 4322 4321 +f 4384 4383 4309 4310 +f 4391 4380 4260 4259 +f 4377 4376 4264 4263 +f 4397 4396 4233 4232 +f 4402 4401 4219 4220 +f 4069 4084 4417 +f 4053 4041 4418 +f 4341 3990 4423 +f 4234 4235 4426 4427 +f 4251 4264 4429 +f 4295 4282 4430 +f 4176 4177 4434 4435 +f 4133 4146 4437 +f 4117 4102 4438 +f 4440 4422 4423 3990 +f 4116 4117 4438 4439 +f 4177 4164 4434 +f 4311 4324 4433 +f 4294 4295 4430 4431 +f 4235 4223 4426 +f 4193 4205 4425 +f 4011 4023 4421 +f 4052 4053 4418 4419 +f 4400 4393 4217 4218 +f 4404 4403 4221 4222 +f 4399 4398 4231 4230 +f 4379 4378 4262 4261 +f 4382 4381 4307 4308 +f 4385 4374 4324 4323 +f 4389 4388 4320 4319 +f 4362 4371 4009 4010 +f 4370 4368 4021 4020 +f 4365 4366 4065 4066 +f 4344 4084 4083 4345 +f 4349 4348 4080 4079 +f 4357 4356 4131 4132 +f 4408 4407 4174 4173 +f 4412 4411 4145 4144 +f 4342 4341 4423 4422 +f 4337 3994 3993 4338 +f 4333 3998 3997 4334 +f 4330 4343 3985 2976 3983 3928 +f 4326 3989 3988 4327 +f 4386 4339 4340 4385 +f 4319 4318 4335 4336 4389 +f 4314 4331 4332 4315 +f 4309 4322 4323 4310 +f 4305 4318 4319 4306 +f 4301 4314 4315 4302 +f 4298 4328 4329 4299 +f 4294 4375 4311 4312 4295 +f 4381 4382 4291 4290 +f 4286 4303 4304 4287 +f 4282 4281 4431 4430 +f 4277 4290 4291 4278 +f 4273 4286 4287 4274 +f 4270 4300 3828 3744 +f 4266 4296 4297 4283 4267 +f 4378 4279 4280 4377 +f 4259 4258 4275 4276 4391 +f 4254 4271 4272 4255 +f 4249 4262 4263 4250 +f 4245 4258 4259 4246 +f 4241 4254 4255 4242 +f 4238 4268 4269 4253 4239 +f 4234 4395 4251 4252 4235 +f 4399 4247 4248 4398 +f 4226 4243 4244 4227 +f 4223 4222 4427 4426 +f 4218 4230 4231 4219 +f 4214 4226 4227 4215 +f 4211 4240 3662 3577 +f 4207 4236 4237 4208 +f 4402 4403 4204 4203 +f 4200 4199 4216 4217 4393 +f 4195 4212 4213 4196 +f 4191 4203 4204 4192 +f 4187 4199 4200 4188 +f 4183 4195 4196 4184 +f 4180 4209 4210 4181 +f 4176 4405 4193 4194 4177 +f 4409 4189 4190 4408 +f 4168 4185 4186 4169 +f 4164 4163 4435 4434 +f 4159 4172 4173 4160 +f 4155 4168 4169 4156 +f 4152 4165 4182 3494 3410 +f 4148 4178 4179 4149 +f 4412 4161 4162 4411 +f 4141 4140 4157 4158 4415 +f 4136 4153 4154 4137 +f 4131 4144 4145 4132 +f 4127 4140 4141 4128 +f 4123 4136 4137 4124 +f 4120 4150 4151 4121 +f 4116 4358 4133 4134 4117 +f 4354 4355 4113 4112 +f 4108 4125 4126 4109 +f 4102 4101 4439 4438 +f 4097 4112 4113 4098 +f 4093 4108 4109 4094 +f 4090 4105 4122 3319 3291 3236 +f 4086 4118 4119 4103 4087 +f 4346 4099 4100 4345 +f 4079 4078 4095 4096 4349 +f 4074 4091 4092 4075 +f 4067 4082 4083 4068 +f 4063 4078 4079 4064 +f 4059 4074 4075 4060 +f 4056 4071 4088 4089 4072 4057 +f 4052 4359 4069 4070 4053 +f 4366 4365 4049 4048 +f 4044 4061 4062 4045 +f 4041 4040 4419 4418 +f 4036 4048 4049 4037 +f 4032 4044 4045 4033 +f 4029 4058 3150 3061 +f 4025 4054 4055 4026 +f 4368 4038 4039 4363 +f 4018 4017 4034 4035 4351 +f 4013 4030 4031 4014 +f 4009 4021 4022 4010 +f 4005 4017 4018 4006 +f 4001 4013 4014 4002 +f 3987 4027 4028 3986 +f 4440 3990 4361 4011 4012 +f 4373 4372 3993 3994 +f 3998 4003 4004 3997 +f 3088 3177 3263 3346 3437 3521 3604 3689 3771 3855 3900 3955 2949 +f 2979 3980 3979 2980 +f 2983 3976 3975 2984 +f 2987 3972 3971 2988 +f 2991 3968 3967 2992 +f 2995 3964 3963 2996 +f 2999 3960 3959 3000 +f 2950 2949 3955 3954 +f 2954 2953 3951 3950 3984 +f 2958 2957 3947 3946 +f 2962 2961 3943 3942 +f 2966 2965 3939 3938 +f 2970 2969 3935 3934 +f 2974 2973 3931 3930 +f 3981 3926 3925 3980 +f 3977 3922 3921 3976 +f 3973 3918 3917 3972 +f 3969 3914 3913 3968 +f 3965 3910 3909 3964 +f 3961 3906 3905 3960 +f 3957 3902 3901 3956 +f 3924 3879 3878 3923 +f 3920 3875 3874 3919 +f 3916 3871 3870 3915 +f 3912 3867 3866 3911 +f 3908 3863 3862 3907 +f 3904 3859 3858 3903 +f 3953 3954 3854 3853 3899 +f 3949 3950 3896 3850 3849 3895 +f 3945 3946 3846 3845 3892 +f 3941 3942 3891 3842 3841 3890 +f 3937 3938 3838 3837 3887 +f 3933 3934 3834 3833 +f 3929 3930 3830 3829 3884 +f 3880 3825 3824 3879 +f 3876 3821 3820 3875 +f 3872 3817 3816 3871 +f 3868 3813 3812 3867 +f 3864 3809 3808 3863 +f 3860 3805 3804 3859 +f 3827 3798 3797 3826 +f 3823 3794 3793 3822 +f 3819 3790 3789 3818 +f 3815 3786 3785 3814 +f 3811 3782 3781 3810 +f 3807 3778 3777 3806 +f 3803 3774 3773 3802 +f 3852 3853 3769 3768 +f 3848 3849 3765 3764 +f 3844 3845 3761 3760 +f 3840 3841 3757 3756 +f 3836 3837 3753 3752 +f 3832 3833 3749 3748 +f 3829 3745 3744 3828 +f 3795 3740 3739 3794 +f 3791 3736 3735 3790 +f 3787 3732 3731 3786 +f 3783 3728 3727 3782 +f 3779 3724 3723 3778 +f 3775 3720 3719 3774 +f 3742 3715 3714 3741 +f 3738 3711 3710 3737 +f 3734 3707 3706 3733 +f 3730 3703 3702 3729 +f 3726 3699 3698 3725 +f 3722 3695 3694 3721 +f 3718 3691 3690 3717 +f 3767 3768 3686 3685 +f 3763 3764 3682 3681 +f 3759 3760 3678 3677 +f 3755 3756 3674 3673 +f 3751 3752 3670 3669 +f 3747 3748 3666 3665 +f 3716 3661 3660 3715 +f 3712 3657 3656 3711 +f 3708 3653 3652 3707 +f 3704 3649 3648 3703 +f 3700 3645 3644 3699 +f 3696 3641 3640 3695 +f 3692 3637 3636 3691 +f 3659 3629 3628 3658 +f 3655 3625 3624 3654 +f 3651 3621 3620 3650 +f 3647 3617 3616 3646 +f 3643 3613 3612 3642 +f 3639 3609 3608 3638 +f 3688 3689 3604 3603 3634 +f 3684 3685 3600 3599 +f 3680 3681 3596 3595 +f 3676 3677 3592 3591 +f 3672 3673 3588 3587 +f 3668 3669 3584 3583 +f 3664 3665 3580 3579 +f 3630 3575 3574 3629 +f 3626 3571 3570 3625 +f 3622 3567 3566 3621 +f 3618 3563 3562 3617 +f 3614 3559 3558 3613 +f 3610 3555 3554 3609 +f 3606 3551 3550 3605 +f 3573 3545 3544 3572 +f 3569 3541 3540 3568 +f 3565 3537 3536 3564 +f 3561 3533 3532 3560 +f 3557 3529 3528 3556 +f 3553 3525 3524 3552 +f 3602 3603 3520 3519 +f 3598 3599 3549 3516 3515 +f 3594 3595 3512 3511 +f 3590 3591 3508 3507 +f 3586 3587 3504 3503 +f 3582 3583 3500 3499 +f 3578 3579 3496 3495 +f 3546 3491 3490 3545 +f 3542 3487 3486 3541 +f 3538 3483 3482 3537 +f 3534 3479 3478 3533 +f 3530 3475 3474 3529 +f 3526 3471 3470 3525 +f 3493 3464 3463 3492 +f 3489 3460 3459 3488 +f 3485 3456 3455 3484 +f 3481 3452 3451 3480 +f 3477 3448 3447 3476 +f 3473 3444 3443 3472 +f 3469 3440 3439 3468 +f 3518 3519 3435 3434 +f 3514 3515 3465 3431 3430 +f 3510 3511 3427 3426 +f 3506 3507 3423 3422 +f 3502 3503 3419 3418 +f 3498 3499 3415 3414 +f 3495 3411 3410 3494 +f 3461 3406 3405 3460 +f 3457 3402 3401 3456 +f 3453 3398 3397 3452 +f 3449 3394 3393 3448 +f 3445 3390 3389 3444 +f 3441 3386 3385 3440 +f 3408 3372 3371 3407 +f 3404 3368 3367 3403 +f 3400 3364 3363 3399 +f 3396 3360 3359 3395 +f 3392 3356 3355 3391 +f 3388 3352 3351 3387 +f 3384 3348 3347 3383 +f 3433 3434 3343 3342 3382 +f 3429 3430 3339 3338 +f 3425 3426 3335 3334 +f 3421 3422 3378 3331 3330 3377 +f 3417 3418 3374 3327 3326 +f 3413 3414 3323 3322 +f 3373 3318 3317 3372 +f 3369 3314 3313 3368 +f 3365 3310 3309 3364 +f 3361 3306 3305 3360 +f 3357 3302 3301 3356 +f 3353 3298 3297 3352 +f 3349 3294 3293 3348 +f 3316 3288 3287 3315 +f 3312 3284 3283 3311 +f 3308 3280 3279 3307 +f 3304 3276 3275 3303 +f 3300 3272 3271 3299 +f 3296 3268 3267 3295 +f 3345 3346 3263 3262 +f 3341 3342 3259 3258 +f 3337 3338 3255 3254 +f 3333 3334 3251 3250 +f 3329 3330 3247 3246 +f 3325 3326 3243 3242 +f 3321 3322 3239 3238 +f 3289 3234 3233 3288 +f 3285 3230 3229 3284 +f 3281 3226 3225 3280 +f 3277 3222 3221 3276 +f 3273 3218 3217 3272 +f 3269 3214 3213 3268 +f 3265 3210 3209 3264 +f 3232 3201 3200 3231 +f 3228 3197 3196 3227 +f 3224 3193 3192 3223 +f 3220 3189 3188 3219 +f 3216 3185 3184 3215 +f 3212 3181 3180 3211 +f 3261 3262 3176 3175 +f 3257 3258 3207 3172 3171 +f 3253 3254 3168 3167 +f 3249 3250 3164 3163 +f 3245 3246 3160 3159 +f 3241 3242 3156 3155 +f 3237 3238 3152 3151 +f 3202 3147 3146 3201 +f 3198 3143 3142 3197 +f 3194 3139 3138 3193 +f 3190 3135 3134 3189 +f 3186 3131 3130 3185 +f 3182 3127 3126 3181 +f 3149 3115 3114 3148 +f 3145 3111 3110 3144 +f 3141 3107 3106 3140 +f 3137 3103 3102 3136 +f 3133 3099 3098 3132 +f 3129 3095 3094 3128 +f 3125 3091 3090 3124 +f 3174 3175 3086 3085 +f 3170 3171 3082 3081 +f 3166 3167 3078 3077 +f 3162 3163 3118 3074 3073 +f 3158 3159 3117 3070 3069 3116 +f 3154 3155 3066 3065 +f 3151 3062 3061 3150 +f 3112 3057 3056 3111 +f 3108 3053 3052 3107 +f 3104 3049 3048 3103 +f 3100 3045 3044 3099 +f 3096 3041 3040 3095 +f 3092 3037 3036 3091 +f 3059 3029 3028 3058 +f 3055 3025 3024 3054 +f 3051 3021 3020 3050 +f 3047 3017 3016 3046 +f 3043 3013 3012 3042 +f 3039 3009 3008 3038 +f 3035 3005 3004 3034 +f 3084 3085 2952 2953 3033 +f 3080 3081 2956 2957 +f 3076 3077 2960 2961 +f 3072 3073 2964 2965 +f 3068 3069 2968 2969 +f 3064 3065 2972 2973 +f 3030 2977 2978 3029 +f 3026 2981 2982 3025 +f 3022 2985 2986 3021 +f 3018 2989 2990 3017 +f 3014 2993 2994 3013 +f 3010 2997 2998 3009 +f 3006 3001 3002 3005 +f 3007 3000 3001 3006 +f 3011 2996 2997 3010 +f 3015 2992 2993 3014 +f 3019 2988 2989 3018 +f 3023 2984 2985 3022 +f 3027 2980 2981 3026 +f 3062 2975 2976 3061 +f 3065 3066 2971 2972 +f 3069 3070 2967 2968 +f 3073 3074 2963 2964 +f 3077 3078 2959 2960 +f 3081 3082 3032 2955 2956 +f 3085 3086 2951 2952 +f 3036 3006 3005 3035 +f 3040 3010 3009 3039 +f 3044 3014 3013 3043 +f 3048 3018 3017 3047 +f 3052 3022 3021 3051 +f 3056 3026 3025 3055 +f 3060 3030 3029 3059 +f 3093 3038 3037 3092 +f 3097 3042 3041 3096 +f 3101 3046 3045 3100 +f 3105 3050 3049 3104 +f 3109 3054 3053 3108 +f 3113 3058 3057 3112 +f 3151 3152 3063 3062 +f 3155 3156 3067 3066 +f 3159 3160 3071 3070 3117 +f 3163 3164 3119 3075 3074 3118 +f 3167 3168 3079 3078 +f 3171 3172 3121 3083 3082 +f 3175 3176 3087 3086 +f 3126 3092 3091 3125 +f 3130 3096 3095 3129 +f 3134 3100 3099 3133 +f 3138 3104 3103 3137 +f 3142 3108 3107 3141 +f 3146 3112 3111 3145 +f 3179 3124 3123 3178 +f 3183 3128 3127 3182 +f 3187 3132 3131 3186 +f 3191 3136 3135 3190 +f 3195 3140 3139 3194 +f 3199 3144 3143 3198 +f 3203 3148 3147 3202 +f 3238 3239 3206 3153 3152 +f 3242 3243 3157 3156 +f 3246 3247 3161 3160 +f 3250 3251 3165 3164 +f 3254 3255 3169 3168 +f 3258 3259 3208 3173 3172 3207 +f 3262 3263 3177 3176 +f 3213 3182 3181 3212 +f 3217 3186 3185 3216 +f 3221 3190 3189 3220 +f 3225 3194 3193 3224 +f 3229 3198 3197 3228 +f 3233 3202 3201 3232 +f 3266 3211 3210 3265 +f 3270 3215 3214 3269 +f 3274 3219 3218 3273 +f 3278 3223 3222 3277 +f 3282 3227 3226 3281 +f 3286 3231 3230 3285 +f 3290 3235 3234 3289 +f 3322 3323 3240 3239 +f 3326 3327 3244 3243 +f 3330 3331 3248 3247 +f 3334 3335 3252 3251 +f 3338 3339 3256 3255 +f 3342 3343 3260 3259 +f 3293 3265 3264 3292 +f 3297 3269 3268 3296 +f 3301 3273 3272 3300 +f 3305 3277 3276 3304 +f 3309 3281 3280 3308 +f 3313 3285 3284 3312 +f 3317 3289 3288 3316 +f 3350 3295 3294 3349 +f 3354 3299 3298 3353 +f 3358 3303 3302 3357 +f 3362 3307 3306 3361 +f 3366 3311 3310 3365 +f 3370 3315 3314 3369 +f 3411 3320 3319 3410 +f 3414 3415 3324 3323 +f 3418 3419 3375 3328 3327 3374 +f 3422 3423 3379 3332 3331 3378 +f 3426 3427 3336 3335 +f 3430 3431 3380 3340 3339 +f 3434 3435 3344 3343 +f 3385 3349 3348 3384 +f 3389 3353 3352 3388 +f 3393 3357 3356 3392 +f 3397 3361 3360 3396 +f 3401 3365 3364 3400 +f 3405 3369 3368 3404 +f 3409 3373 3372 3408 +f 3442 3387 3386 3441 +f 3446 3391 3390 3445 +f 3450 3395 3394 3449 +f 3454 3399 3398 3453 +f 3458 3403 3402 3457 +f 3462 3407 3406 3461 +f 3495 3496 3412 3411 +f 3499 3500 3416 3415 +f 3503 3504 3420 3419 +f 3507 3508 3424 3423 +f 3511 3512 3428 3427 +f 3515 3516 3432 3431 3465 +f 3519 3520 3436 3435 +f 3470 3441 3440 3469 +f 3474 3445 3444 3473 +f 3478 3449 3448 3477 +f 3482 3453 3452 3481 +f 3486 3457 3456 3485 +f 3490 3461 3460 3489 +f 3523 3468 3467 3522 +f 3527 3472 3471 3526 +f 3531 3476 3475 3530 +f 3535 3480 3479 3534 +f 3539 3484 3483 3538 +f 3543 3488 3487 3542 +f 3547 3492 3491 3546 +f 3579 3580 3497 3496 +f 3583 3584 3501 3500 +f 3587 3588 3505 3504 +f 3591 3592 3509 3508 +f 3595 3596 3513 3512 +f 3599 3600 3517 3516 3549 +f 3603 3604 3521 3520 +f 3554 3526 3525 3553 +f 3558 3530 3529 3557 +f 3562 3534 3533 3561 +f 3566 3538 3537 3565 +f 3570 3542 3541 3569 +f 3574 3546 3545 3573 +f 3607 3552 3551 3606 +f 3611 3556 3555 3610 +f 3615 3560 3559 3614 +f 3619 3564 3563 3618 +f 3623 3568 3567 3622 +f 3627 3572 3571 3626 +f 3631 3576 3575 3630 +f 3665 3666 3581 3580 +f 3669 3670 3632 3585 3584 +f 3673 3674 3589 3588 +f 3677 3678 3593 3592 +f 3681 3682 3633 3597 3596 +f 3685 3686 3601 3600 +f 3636 3606 3605 3635 +f 3640 3610 3609 3639 +f 3644 3614 3613 3643 +f 3648 3618 3617 3647 +f 3652 3622 3621 3651 +f 3656 3626 3625 3655 +f 3660 3630 3629 3659 +f 3693 3638 3637 3692 +f 3697 3642 3641 3696 +f 3701 3646 3645 3700 +f 3705 3650 3649 3704 +f 3709 3654 3653 3708 +f 3713 3658 3657 3712 +f 3745 3663 3662 3744 +f 3748 3749 3667 3666 +f 3752 3753 3671 3670 +f 3756 3757 3675 3674 +f 3760 3761 3679 3678 +f 3764 3765 3683 3682 +f 3768 3769 3687 3686 +f 3719 3692 3691 3718 +f 3723 3696 3695 3722 +f 3727 3700 3699 3726 +f 3731 3704 3703 3730 +f 3735 3708 3707 3734 +f 3739 3712 3711 3738 +f 3743 3716 3715 3742 +f 3776 3721 3720 3775 +f 3780 3725 3724 3779 +f 3784 3729 3728 3783 +f 3788 3733 3732 3787 +f 3792 3737 3736 3791 +f 3796 3741 3740 3795 +f 3829 3830 3746 3745 +f 3833 3834 3750 3749 +f 3837 3838 3754 3753 +f 3841 3842 3758 3757 +f 3845 3846 3762 3761 +f 3849 3850 3799 3766 3765 +f 3853 3854 3770 3769 +f 3804 3775 3774 3803 +f 3808 3779 3778 3807 +f 3812 3783 3782 3811 +f 3816 3787 3786 3815 +f 3820 3791 3790 3819 +f 3824 3795 3794 3823 +f 3857 3802 3801 3856 +f 3861 3806 3805 3860 +f 3865 3810 3809 3864 +f 3869 3814 3813 3868 +f 3873 3818 3817 3872 +f 3877 3822 3821 3876 +f 3881 3826 3825 3880 +f 3930 3931 3831 3830 +f 3934 3935 3885 3835 3834 +f 3938 3939 3888 3839 3838 +f 3942 3943 3843 3842 3891 +f 3946 3947 3893 3847 3846 +f 3950 3951 3897 3851 3850 3896 +f 3954 3955 3900 3855 3854 +f 3905 3860 3859 3904 +f 3909 3864 3863 3908 +f 3913 3868 3867 3912 +f 3917 3872 3871 3916 +f 3921 3876 3875 3920 +f 3925 3880 3879 3924 +f 3958 3903 3902 3957 +f 3962 3907 3906 3961 +f 3966 3911 3910 3965 +f 3970 3915 3914 3969 +f 3974 3919 3918 3973 +f 3978 3923 3922 3977 +f 3982 3927 3926 3981 +f 2973 2972 3932 3931 +f 2969 2968 3936 3935 +f 2965 2964 3940 3939 +f 2961 2960 3944 3943 +f 2957 2956 3948 3947 +f 2953 2952 3952 3951 +f 3002 3957 3956 3003 +f 2998 3961 3960 2999 +f 2994 3965 3964 2995 +f 2990 3969 3968 2991 +f 2986 3973 3972 2987 +f 2982 3977 3976 2983 +f 2978 3981 3980 2979 +f 2977 3030 4001 4000 +f 3997 4004 4005 3996 +f 4372 4371 3992 3993 +f 4440 4012 4024 4025 3989 +f 3986 4028 4029 3985 +f 4002 4014 4015 4003 +f 4006 4018 4019 4007 +f 4010 4022 4023 4011 +f 4014 4031 4032 4015 +f 4351 4035 4036 4369 +f 4363 4039 4040 4360 +f 4026 4055 4056 4027 +f 3115 3149 4042 4030 +f 4033 4045 4046 4034 +f 4037 4049 4050 4038 +f 3149 3204 4059 4042 +f 4045 4062 4063 4046 +f 4365 4367 4050 4049 +f 4053 4070 4085 4086 4054 +f 4057 4072 4089 4090 4073 4058 +f 4060 4075 4076 4061 +f 4064 4079 4080 4065 +f 4068 4083 4084 4069 +f 4075 4092 4093 4076 +f 4349 4096 4097 4348 +f 4345 4100 4101 4344 +f 4087 4103 4119 4120 4104 4088 +f 3290 3318 4106 4091 +f 4094 4109 4110 4095 +f 4098 4113 4114 4099 +f 3318 3373 4123 4106 +f 4109 4126 4127 4110 +f 4355 4356 4114 4113 +f 4117 4134 4147 4148 4118 +f 4121 4151 4152 4122 +f 4124 4137 4138 4125 +f 4128 4141 4142 4129 +f 4132 4145 4146 4133 +f 4137 4154 4155 4138 +f 4415 4158 4159 4414 +f 4411 4162 4163 4410 +f 4149 4179 4180 4150 +f 3464 3493 4166 4153 +f 4156 4169 4170 4157 +f 4160 4173 4174 4161 +f 3493 3548 4183 4166 +f 4169 4186 4187 4170 +f 4408 4190 4191 4407 +f 4177 4194 4206 4207 4178 +f 4181 4210 4211 4182 +f 4184 4196 4197 4185 +f 4188 4200 4201 4189 +f 4192 4204 4205 4193 +f 4196 4213 4214 4197 +f 4393 4400 4201 4200 +f 4403 4404 4205 4204 +f 4208 4237 4238 4209 +f 3631 3661 4224 4212 +f 4215 4227 4228 4216 +f 4219 4231 4232 4220 +f 3661 3716 4241 4224 +f 4227 4244 4245 4228 +f 4398 4248 4249 4397 +f 4235 4252 4265 4266 4236 +f 4239 4253 4269 4270 4240 +f 4242 4255 4256 4243 +f 4246 4259 4260 4247 +f 4250 4263 4264 4251 +f 4255 4272 4273 4256 +f 4391 4276 4277 4380 +f 4377 4280 4281 4376 +f 4267 4283 4297 4298 4268 +f 3798 3827 4284 4271 +f 4274 4287 4288 4275 +f 4278 4291 4292 4279 +f 3827 3882 4301 4284 +f 4287 4304 4305 4288 +f 4382 4383 4292 4291 +f 4295 4312 4325 4326 4296 +f 4299 4329 4330 4313 4300 +f 4302 4315 4316 4303 +f 4306 4319 4320 4307 +f 4310 4323 4324 4311 +f 4315 4332 4333 4316 +f 4389 4336 4337 4388 +f 4385 4340 4341 4374 +f 4327 3988 3987 4328 +f 3982 2977 4000 4331 +f 4334 3997 3996 4335 +f 4338 3993 3992 4339 +f 4415 4414 4142 4141 +f 4411 4410 4146 4145 +f 4407 4406 4175 4174 +f 4356 4355 4130 4131 +f 4348 4347 4081 4080 +f 4359 4364 4068 4069 +f 4366 4350 4064 4065 +f 4368 4363 4022 4021 +f 4371 4372 4008 4009 +f 4388 4387 4321 4320 +f 4375 4384 4310 4311 +f 4381 4390 4306 4307 +f 4378 4377 4263 4262 +f 4398 4397 4232 4231 +f 4403 4402 4220 4221 +f 4084 4085 4416 4417 +f 4040 4052 4419 +f 4024 4012 4420 +f 4206 4194 4424 +f 4264 4265 4428 4429 +f 4281 4294 4431 +f 4325 4312 4432 +f 4146 4147 4436 4437 +f 4101 4116 4439 +# 4404 elements diff --git a/data/mesh_06.vtk b/data/mesh_06.vtk new file mode 100644 index 0000000..ab3dc65 --- /dev/null +++ b/data/mesh_06.vtk @@ -0,0 +1,12 @@ +# vtk DataFile Version 3.0 +vtk output +ASCII +DATASET POLYDATA +POINTS 4 float +0 0 0 +10 0 0 +0 10 0 +10 10 0 +POLYGONS 2 8 +3 0 1 2 +3 1 3 2 diff --git a/doc/uml/cpMesh_Deformation_classes.dia b/doc/uml/cpMesh_Deformation_classes.dia new file mode 100644 index 0000000..4d52686 --- /dev/null +++ b/doc/uml/cpMesh_Deformation_classes.dia @@ -0,0 +1,2040 @@ + + + + + + + + + + + + + #Letter# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Energy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #ContourInternalEnergy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #VectorImageEnergy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #DeformationFunction# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + + + + + + + + + + ## + + + #1# + + + + + + + + + #m_Energies# + + + #*# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Simplex1InternalEnergy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #Simplex2InternalEnergy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #TriangularMeshInternalEnergy# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #vtkPolyData# + + + #vtk# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Mesh# + + + #itk# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #QuadEdgeMesh# + + + #itk# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + #ITKVTKMeshAdaptor# + + + #cpmd# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + ## + + + + + + + + + + + + ## + + + #1# + + + + + + + + + #m_Mesh# + + + #1# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + + + + + + + + + + ## + + + #1# + + + + + + + + + #m_Mesh# + + + #1# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + + + + + + + + + + ## + + + #*# + + + + + + + + + #m_Mesh (const)# + + + #1# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #Object# + + + #itk# + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## + + + ## + + + + + + + + diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 0000000..7062a39 --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,6 @@ + +SUBDIRS( + cpm + ) + +## eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Base/FindClosestPointInMesh.h b/lib/cpm/Algorithms/Base/FindClosestPointInMesh.h new file mode 100644 index 0000000..52691a4 --- /dev/null +++ b/lib/cpm/Algorithms/Base/FindClosestPointInMesh.h @@ -0,0 +1,94 @@ +#ifndef __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__H__ +#define __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__H__ + +#include +#include +#include + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace Base + { + /** + */ + template< class M, class S = float > + class FindClosestPointInMesh + : public itk::Object + { + public: + typedef FindClosestPointInMesh Self; + typedef itk::Object Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + itkStaticConstMacro( Dimension, unsigned int, M::PointDimension ); + typedef S TKDScalar; + typedef cpm::DataStructures::KDVector< S, Dimension > TKDVector; + typedef itk::Statistics::ListSample< TKDVector > TKDSample; + + typedef + itk::Statistics::WeightedCentroidKdTreeGenerator< TKDSample > + TKDGenerator; + typedef typename TKDGenerator::KdTreeType TKDTree; + typedef typename TKDTree::KdTreeNodeType TKDNode; + + public: + itkNewMacro( Self ); + itkTypeMacro( FindClosestPointInMesh, itkObject ); + + itkGetConstMacro( BucketSize, unsigned int ); + itkSetMacro( BucketSize, unsigned int ); + + itkGetConstObjectMacro( Mesh, M ); + + public: + void SetMesh( const M* m ); + + void Build( ); + + template< class P > + typename M::PointIdentifier FindClosestPoint( const P& p ) const; + + template< class P, class C > + typename M::PointIdentifier FindClosestPoint( + const P& p, const C& c + ) const; + + template< class V, class N > + void _Dummy( TKDNode* root, const V& d, const V& n, const N& nd ) const; + + protected: + FindClosestPointInMesh( ); + virtual ~FindClosestPointInMesh( ); + + template< class V, class N, class P > + static S _LinePointDistance( const P& p0, const V& d, const V& n, const N& nd ); + + private: + // Purposely not implemented + FindClosestPointInMesh( Self& ); + Self& operator=( Self& ); + + protected: + unsigned int m_BucketSize; + typename M::ConstPointer m_Mesh; + typename TKDSample::Pointer m_KDSample; + typename TKDGenerator::Pointer m_KDGenerator; + typename TKDTree::Pointer m_KDTree; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Base/FindClosestPointInMesh.hxx b/lib/cpm/Algorithms/Base/FindClosestPointInMesh.hxx new file mode 100644 index 0000000..de0e3dd --- /dev/null +++ b/lib/cpm/Algorithms/Base/FindClosestPointInMesh.hxx @@ -0,0 +1,222 @@ +#ifndef __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__HXX__ +#define __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< class M, class S > +void cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +SetMesh( const M* m ) +{ + this->m_Mesh = m; + this->Modified( ); +} + +// ------------------------------------------------------------------------- +template< class M, class S > +void cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +Build( ) +{ + // Fill in samples + this->m_KDSample = TKDSample::New( ); + this->m_KDSample->SetMeasurementVectorSize( TKDVector::Dimension ); + + TKDVector mv; + for( + unsigned long pId = 0; + pId < this->m_Mesh->GetNumberOfPoints( ); + ++pId + ) + { + typename M::PointType pnt = this->m_Mesh->GetPoint( pId ); + for( unsigned int d = 0; d < TKDVector::Dimension; ++d ) + mv[ d ] = S( pnt[ d ] ); + mv.PointId = ( typename M::PointIdentifier )( pId ); + this->m_KDSample->PushBack( mv ); + + } // rof + + // Compute kd-Tree + this->m_KDGenerator = TKDGenerator::New( ); + this->m_KDGenerator->SetSample( this->m_KDSample ); + this->m_KDGenerator->SetBucketSize( this->m_BucketSize ); + this->m_KDGenerator->Update( ); + this->m_KDTree = this->m_KDGenerator->GetOutput( ); +} + +// ------------------------------------------------------------------------- +template< class M, class S > +template< class P > +typename M::PointIdentifier cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +FindClosestPoint( const P& p ) const +{ + TKDVector query; + for( unsigned int d = 0; d < TKDVector::Dimension; ++d ) + query[ d ] = S( p[ d ] ); + + typename TKDTree::InstanceIdentifierVectorType neighs; + std::vector< double > distances; + this->m_KDTree->Search( query, this->m_BucketSize, neighs, distances ); + unsigned int minId = 0; + double minD = distances[ 0 ]; + for( unsigned int i = 1; i < distances.size( ); ++i ) + { + if( distances[ i ] < minD ) + { + minId = i; + minD = distances[ i ]; + + } // fi + + } // rof + std::cout << "TODO: " << minD << std::endl; + return( neighs[ minId ] ); +} + +// ------------------------------------------------------------------------- +template< class M, class S > +template< class P, class C > +typename M::PointIdentifier cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +FindClosestPoint( const P& p, const C& c ) const +{ + typename TKDVector::Superclass p1, p2, d; + for( unsigned int i = 0; i < TKDVector::Dimension; ++i ) + { + p1[ i ] = S( p[ i ] ); + p2[ i ] = S( c[ i ] ); + d[ i ] = p1[ i ] - p2[ i ]; + + } // rof + TKDScalar nd = d.GetNorm( ); + typename TKDVector::Superclass n = itk::CrossProduct( p2, p1 ); + this->_Dummy( this->m_KDTree->GetRoot( ), d, n, nd ); + + return( 0 ); +} + +// ------------------------------------------------------------------------- +template< class M, class S > +template< class V, class N > +void cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +_Dummy( TKDNode* root, const V& d, const V& n, const N& nd ) const +{ + typedef + itk::Statistics::KdTreeWeightedCentroidNonterminalNode< TKDSample > + _TNode; + _TNode* node = dynamic_cast< _TNode* >( root ); + if( node != NULL ) + { + // Get centroids + S left = std::numeric_limits< S >::max( ); + S right = left; + if( root->Left( ) != NULL ) + { + if( !( root->Left( )->IsTerminal( ) ) ) + { + typename _TNode::CentroidType c; + root->Left( )->GetCentroid( c ); + left = Self::_LinePointDistance( c, d, n, nd ); + + } // fi + + } // fi + if( root->Right( ) != NULL ) + { + if( !( root->Right( )->IsTerminal( ) ) ) + { + typename _TNode::CentroidType c; + root->Right( )->GetCentroid( c ); + right = Self::_LinePointDistance( c, d, n, nd ); + + } // fi + + } // fi + + // Recursive!!! + if( left <= right && root->Left( ) != NULL ) + this->_Dummy( root->Left( ), d, n, nd ); + else if( left > right && root->Right( ) != NULL ) + this->_Dummy( root->Right( ), d, n, nd ); + else + { + std::cout << "Something nasty happened" << std::endl; + + } // fi + + } + else + { + std::cout << "Leaf!!!" << std::endl; + + } // fi + + /* + _LinePointDistance( const P& p0, const D& d, const N& n, const T& nd ) + std::cout << n << " " << d << " " << nd << std::endl; + typedef + itk::Statistics::KdTreeWeightedCentroidNonterminalNode< TKDSample > + _TNode; + _TNode* node = dynamic_cast< _TNode* >( root ); + if( node != NULL ) + { + // Get centroids + typename _TNode::CentroidType left, right; + if( root->Left( ) != NULL ) + root->Left( )->GetCentroid( left ); + if( root->Right( ) != NULL ) + root->Right( )->GetCentroid( right ); + + } // fi + */ + /* + if( root->Left( ) != NULL ) + this->_Dummy( root->Left( ) ); + if( root->Right( ) != NULL ) + this->_Dummy( root->Right( ) ); + */ + /* + if( root->IsTerminal( ) ) + { + } + else + { + if( root->Left( ) != NULL ) + this->_Dummy( root->Left( ) ); + if( root->Right( ) != NULL ) + this->_Dummy( root->Right( ) ); + } // fi + */ + +} + +// ------------------------------------------------------------------------- +template< class M, class S > +cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +FindClosestPointInMesh( ) + : Superclass( ), + m_BucketSize( 16 ) +{ +} + +// ------------------------------------------------------------------------- +template< class M, class S > +cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +~FindClosestPointInMesh( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M, class S > +template< class V, class N, class P > +S cpm::Algorithms::Base::FindClosestPointInMesh< M, S >:: +_LinePointDistance( const P& p0, const V& d, const V& n, const N& nd ) +{ + V v0; + for( unsigned int i = 0; i < Self::Dimension; ++i ) + v0[ i ] = N( p0[ i ] ); + return( S( ( itk::CrossProduct( v0, d ) - n ).GetNorm( ) / nd ) ); +} + +#endif // __CPM__ALGORITHMS__BASE__FINDCLOSESTPOINTINMESH__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Base/ForceFunction.h b/lib/cpm/Algorithms/Base/ForceFunction.h new file mode 100644 index 0000000..a681523 --- /dev/null +++ b/lib/cpm/Algorithms/Base/ForceFunction.h @@ -0,0 +1,57 @@ +#ifndef __CPM__ALGORITHMS__BASE__FORCEFUNCTION__H__ +#define __CPM__ALGORITHMS__BASE__FORCEFUNCTION__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace Base + { + /** + */ + template< class M > + class ForceFunction + : public itk::FunctionBase< typename M::PointIdentifier, typename M::VectorType > + { + public: + typedef M TMesh; + typedef typename M::PointIdentifier TPointId; + typedef typename M::VectorType TVector; + + typedef ForceFunction Self; + typedef itk::FunctionBase< TPointId, TVector > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + public: + itkTypeMacro( ForceFunction, itkFunctionBase ); + + itkGetConstObjectMacro( Mesh, M ); + itkSetConstObjectMacro( Mesh, M ); + + protected: + ForceFunction( ) + : Superclass( ) + { } + virtual ~ForceFunction( ) + { } + + private: + ForceFunction( const Self& ); + Self& operator=( const Self& ); + + protected: + typename M::ConstPointer m_Mesh; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#endif // __CPM__ALGORITHMS__BASE__FORCEFUNCTION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Base/InPlaceMeshFilter.h b/lib/cpm/Algorithms/Base/InPlaceMeshFilter.h new file mode 100644 index 0000000..07480c6 --- /dev/null +++ b/lib/cpm/Algorithms/Base/InPlaceMeshFilter.h @@ -0,0 +1,52 @@ +#ifndef __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__H__ +#define __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace Base + { + /** + */ + template< class M > + class InPlaceMeshFilter + : public itk::MeshToMeshFilter< M, M > + { + public: + typedef InPlaceMeshFilter Self; + typedef itk::MeshToMeshFilter< M, M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + + public: + itkTypeMacro( InPlaceMeshFilter, itkMeshToMeshFilter ); + + protected: + InPlaceMeshFilter( ); + virtual ~InPlaceMeshFilter( ); + + virtual void PrepareOutputs( ); + virtual void ReleaseInputs( ); + + private: + // Purposely not implemented + InPlaceMeshFilter( const Self& ); + Self& operator=( const Self& ); + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Base/InPlaceMeshFilter.hxx b/lib/cpm/Algorithms/Base/InPlaceMeshFilter.hxx new file mode 100644 index 0000000..d238bec --- /dev/null +++ b/lib/cpm/Algorithms/Base/InPlaceMeshFilter.hxx @@ -0,0 +1,54 @@ +#ifndef __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__HXX__ +#define __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__HXX__ + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Base::InPlaceMeshFilter< M >:: +InPlaceMeshFilter( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Base::InPlaceMeshFilter< M >:: +~InPlaceMeshFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Base::InPlaceMeshFilter< M >:: +PrepareOutputs( ) +{ + const M* inPtr = dynamic_cast< const M* >( + this->itk::ProcessObject::GetInput( 0 ) + ); + M* outPtr = this->GetOutput( ); + + if( inPtr != NULL ) + { + typename M::Pointer inAsOut = NULL; + inAsOut = const_cast< M* >( inPtr ); + this->GraftOutput( inAsOut ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Base::InPlaceMeshFilter< M >:: +ReleaseInputs( ) +{ + /* + this->itk::ProcessObject::ReleaseInputs( ); + M* ptr = const_cast< M* >( this->GetInput( ) ); + if( ptr ) + ptr->ReleaseData( ); + */ + std::cout << "InPlaceMeshFilter::ReleaseData" << std::endl; +} + +#endif // __CPM__ALGORITHMS__BASE__INPLACEMESHFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/DecimationCriteria.h b/lib/cpm/Algorithms/QuadEdge/DecimationCriteria.h new file mode 100644 index 0000000..bef8a11 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/DecimationCriteria.h @@ -0,0 +1,246 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__DECIMATIONCRITERIA__H__ +#define __CPM__ALGORITHMS__QUADEDGE__DECIMATIONCRITERIA__H__ + +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class M, class E = unsigned long, class S = double, class Q = itk::MinPriorityQueueElementWrapper< class M::TPrimalEdge*, std::pair< bool, S > > > + class DecimationCriterion + : public itk::Object + { + public: + typedef DecimationCriterion Self; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + typedef itk::Object Superclass; + + typedef M TMesh; + typedef E TElement; + typedef S TScalar; + typedef Q TQueueWrapper; + typedef typename Q::ElementPriorityType TPriority; + + public: + itkTypeMacro( DecimationCriterion, itkObject ); + + itkBooleanMacro( TopologicalChange ); + itkGetConstMacro( TopologicalChange, bool ); + itkSetMacro( TopologicalChange, bool ); + + void SetNumberOfElements( const unsigned long& numberOfElements ) + { + this->m_SizeCriterion = true; + this->m_NumberOfElements = numberOfElements; + } + + void SetMeasureBound( const S& bound ) + { + this->m_SizeCriterion = false; + this->m_MeasureBound = bound; + } + + virtual bool is_satisfied( M* m, const E& e, const S& v ) const = 0; + + protected: + DecimationCriterion( ) + : Superclass( ) + { + this->m_TopologicalChange = true; + this->m_SizeCriterion = true; + this->m_NumberOfElements = 0; + this->m_MeasureBound = itk::NumericTraits< TScalar >::Zero; + } + virtual ~DecimationCriterion( ) + { } + + protected: + bool m_TopologicalChange; + bool m_SizeCriterion; + unsigned long m_NumberOfElements; + S m_MeasureBound; + + private: + // Purposely not implemented + DecimationCriterion( const Self& ); + void operator=( const Self& ); + }; + + /** + */ + template< class M, class E = unsigned long, class S = double, class Q = itk::MinPriorityQueueElementWrapper< class M::TPrimalEdge*, std::pair< bool, S > > > + class NumberOfPointsCriterion + : public DecimationCriterion< M, E, S, Q > + { + public: + typedef NumberOfPointsCriterion Self; + typedef DecimationCriterion< M, E, S, Q > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TElement TElement; + typedef typename Superclass::TScalar TScalar; + typedef typename Superclass::TQueueWrapper TQueueWrapper; + typedef typename Superclass::TPriority TPriority; + + public: + itkNewMacro( Self ); + itkTypeMacro( NumberOfPointsCriterion, DecimationCriterion ); + + public: + inline bool is_satisfied( M* m, const E& e, const S& v ) const + { + return( m->GetNumberOfPoints( ) <= this->m_NumberOfElements ); + } + + protected: + NumberOfPointsCriterion( ) + : Superclass( ) + { } + virtual ~NumberOfPointsCriterion( ) + { } + + private: + // Purposely not implemented + NumberOfPointsCriterion( const Self& ); + void operator=( const Self& ); + }; + + /** + */ + template< class M, class E = unsigned long, class S = double, class Q = itk::MinPriorityQueueElementWrapper< class M::TPrimalEdge*, std::pair< bool, S > > > + class NumberOfFacesCriterion + : public DecimationCriterion< M, E, S, Q > + { + public: + typedef NumberOfFacesCriterion Self; + typedef DecimationCriterion< M, E, S, Q > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TElement TElement; + typedef typename Superclass::TScalar TScalar; + typedef typename Superclass::TQueueWrapper TQueueWrapper; + typedef typename Superclass::TPriority TPriority; + + public: + itkNewMacro( Self ); + itkTypeMacro( NumberOfFacesCriterion, DecimationCriterion ); + + public: + inline bool is_satisfied( M* m, const E& e, const S& v ) const + { + return( m->GetNumberOfFaces( ) <= this->m_NumberOfElements ); + } + + protected: + NumberOfFacesCriterion( ) + : Superclass( ) + { } + virtual ~NumberOfFacesCriterion( ) + { } + + private: + // Purposely not implemented + NumberOfFacesCriterion( const Self& ); + void operator=( const Self& ); + }; + + /** + */ + template< class M, class E = unsigned long, class S = double, class Q = itk::MinPriorityQueueElementWrapper< class M::TPrimalEdge*, std::pair< bool, S > > > + class MaxMeasureBoundCriterion + : public DecimationCriterion< M, E, S, Q > + { + public: + typedef MaxMeasureBoundCriterion Self; + typedef DecimationCriterion< M, E, S, Q > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TElement TElement; + typedef typename Superclass::TScalar TScalar; + typedef typename Superclass::TQueueWrapper TQueueWrapper; + typedef typename Superclass::TPriority TPriority; + + public: + itkNewMacro( Self ); + itkTypeMacro( MaxMeasureBoundCriterion, DecimationCriterion ); + + inline bool is_satisfied( M* m, const E& e, const S& v ) const + { + return( v <= this->m_MeasureBound ); + } + + protected: + MaxMeasureBoundCriterion( ) + : Superclass( ) + { } + virtual ~MaxMeasureBoundCriterion( ) + { } + + private: + // Purposely not implemented + MaxMeasureBoundCriterion( const Self& ); + void operator=( const Self& ); + }; + + /** + */ + template< class M, class E = unsigned long, class S = double, class Q = itk::MaxPriorityQueueElementWrapper< class M::TPrimalEdge*, std::pair< bool, S > > > + class MinMeasureBoundCriterion + : public DecimationCriterion< M, E, S, Q > + { + public: + typedef MinMeasureBoundCriterion Self; + typedef DecimationCriterion< M, E, S, Q > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TElement TElement; + typedef typename Superclass::TScalar TScalar; + typedef typename Superclass::TQueueWrapper TQueueWrapper; + typedef typename Superclass::TPriority TPriority; + + public: + itkNewMacro( Self ); + itkTypeMacro( MinMeasureBoundCriterion, DecimationCriterion ); + + inline bool is_satisfied( M* m, const E& e, const S& v ) const + { + return( v >= this->m_MeasureBound ); + } + + protected: + MinMeasureBoundCriterion( ) + : Superclass( ) + { } + virtual ~MinMeasureBoundCriterion( ) + { } + + private: + // Purposely not implemented + MinMeasureBoundCriterion( const Self& ); + void operator=( const Self& ); + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#endif // __CPM__ALGORITHMS__QUADEDGE__DECIMATIONCRITERIA__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/DecimationFilter.h b/lib/cpm/Algorithms/QuadEdge/DecimationFilter.h new file mode 100644 index 0000000..3596a3a --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/DecimationFilter.h @@ -0,0 +1,65 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__ +#define __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class I, class O, class C > + class DecimationFilter + : public itk::MeshToMeshFilter< I, O > + { + public: + typedef DecimationFilter Self; + typedef itk::MeshToMeshFilter< I, O > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef I TInputMesh; + typedef O TOutputMesh; + typedef C TCriterion; + + public: + itkTypeMacro( DecimationFilter, itkMeshToMeshFilter ); + itkSetObjectMacro( Criterion, C ); + + protected: + DecimationFilter( ); + virtual ~DecimationFilter( ); + + virtual void GenerateData( ); + virtual void Initialize( ); + + virtual void FillPriorityQueue( ) = 0; + virtual void Extract( ) = 0; + virtual bool ProcessWithoutAnyTopologicalGuarantee( ) = 0; + virtual bool ProcessWithTopologicalGuarantee( ) = 0; + virtual bool IsCriterionSatisfied( ) = 0; + + private: + // Purposely not implemented + DecimationFilter( const Self& ); + void operator=( const Self& ); + + protected: + typename C::Pointer m_Criterion; + unsigned long m_Iteration; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/DecimationFilter.hxx b/lib/cpm/Algorithms/QuadEdge/DecimationFilter.hxx new file mode 100644 index 0000000..dbdcbb6 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/DecimationFilter.hxx @@ -0,0 +1,54 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__HXX__ + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +cpm::Algorithms::QuadEdge::DecimationFilter< I, O, C >:: +DecimationFilter( ) + : Superclass( ) +{ + this->m_Iteration = 0; +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +cpm::Algorithms::QuadEdge::DecimationFilter< I, O, C >:: +~DecimationFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::DecimationFilter< I, O, C >:: +GenerateData( ) +{ + // TODO: this->CopyInputMeshToOutputMesh( ); + + this->Initialize( ); + this->FillPriorityQueue( ); + this->m_Iteration = 0; + bool stop = false; + do + { + this->Extract( ); + stop = this->ProcessWithTopologicalGuarantee( ); + ++this->m_Iteration; + } + while( !( this->IsCriterionSatisfied( ) ) && !stop ); + + /* TODO + if( stop ) + this->GetOutput( )->SqueezePointsIds( ); + */ +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::DecimationFilter< I, O, C >:: +Initialize( ) +{ +} + +#endif // __CPM__ALGORITHMS__QUADEDGE__DECIMATIONFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.h b/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.h new file mode 100644 index 0000000..3dc80a3 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.h @@ -0,0 +1,108 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__H__ +#define __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__H__ + +#include + +#include + +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class I, class O, class C > + class EdgeDecimationFilter + : public DecimationFilter< I, O, C > + { + public: + typedef EdgeDecimationFilter Self; + typedef DecimationFilter< I, O, C > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef I TInputMesh; + typedef O TOutputMesh; + typedef C TCriterion; + + typedef typename O::PointType TOutPoint; + typedef typename O::PointIdentifier TOutPointIdentifier; + typedef typename O::TPrimalEdge TOutPrimalEdge; + + typedef typename C::TPriority TPriority; + typedef typename C::TQueueWrapper TQueueWrapper; + typedef typename C::TQueueWrapper TPriorityQueueItem; + typedef typename C::TScalar TScalar; + + typedef std::map< TOutPrimalEdge*, TPriorityQueueItem* > TQueueMap; + typedef MeshEulerOperatorJoinVertexFunction< O > TOperator; + + typedef itk::PriorityQueueContainer< TPriorityQueueItem*, itk::ElementWrapperPointerInterface< TPriorityQueueItem* >, TPriority > TPriorityQueue; + + public: + itkTypeMacro( EdgeDecimationFilter, DecimationFilter ); + + protected: + EdgeDecimationFilter( ); + virtual ~EdgeDecimationFilter( ); + + virtual TScalar MeasureEdge( TOutPrimalEdge* iEdge ) = 0; + void FillPriorityQueue( ); + void PushElement( TOutPrimalEdge* iEdge ); + bool IsEdgeOKToBeProcessed( TOutPrimalEdge* iEdge ); + void Extract( ); + void DeleteElement( TOutPrimalEdge* iEdge ); + virtual void DeletePoint( + const TOutPointIdentifier& iIdToBeDeleted, + const TOutPointIdentifier& iRemaining + ); + virtual void PushOrUpdateElement( TOutPrimalEdge* iEdge ); + virtual void JoinVertexFailed( ); + virtual bool ProcessWithoutAnyTopologicalGuarantee( ); + virtual unsigned int CheckQEProcessingStatus( ); + virtual bool ProcessWithTopologicalGuarantee( ); + unsigned long NumberOfCommonVerticesIn0Ring( ) const; + void RemoveSamosa( ); + void TagElementOut( TOutPrimalEdge* iEdge ); + void RemoveEye( ); + virtual TOutPoint Relocate( TOutPrimalEdge* iEdge ) = 0; + bool CheckOrientation( + TOutPrimalEdge* iEdge, + const TOutPointIdentifier& iId, + const TOutPoint& iPt + ); + bool IsCriterionSatisfied( ); + + private: + // Purposely not implemented + EdgeDecimationFilter( const Self& ); + void operator=( const Self& ); + + protected: + bool m_Relocate; + bool m_CheckOrientation; + + typename TPriorityQueue::Pointer m_PriorityQueue; + typename TOperator::Pointer m_JoinVertexFunction; + + TQueueMap m_QueueMapper; + TOutPrimalEdge* m_Element; + TPriority m_Priority; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.hxx b/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.hxx new file mode 100644 index 0000000..c5dd78b --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/EdgeDecimationFilter.hxx @@ -0,0 +1,654 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +EdgeDecimationFilter( ) + : Superclass( ), + m_Relocate( true ), + m_CheckOrientation( false ), + m_Element( NULL ) +{ + this->m_JoinVertexFunction = TOperator::New( ); + this->m_PriorityQueue = TPriorityQueue::New( ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +~EdgeDecimationFilter( ) +{ + TOutPrimalEdge* edge; + + while( !( this->m_PriorityQueue->Empty( ) ) ) + { + edge = this->m_PriorityQueue->Peek( )->m_Element; + this->m_PriorityQueue->Pop( ); + + typename TQueueMap::iterator it = this->m_QueueMapper.find( edge ); + delete it->second; + this->m_QueueMapper.erase( it ); + + } // elihw +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +FillPriorityQueue( ) +{ + typename O::Pointer output = this->GetOutput( ); + + this->m_JoinVertexFunction->SetMesh( output ); + + /* TODO: fill queue with qedges + typename O::CellsContainerIterator it = output->GetEdgeCells( )->Begin( ); + typename O::CellsContainerIterator end = output->GetEdgeCells( )->End( ); + + OutputEdgeCellType* edge; + + // cache for use in MeasureEdge + this->GetOutput( ) = this->GetOutput( ); + + while( it != end ) + { + edge = dynamic_cast< OutputEdgeCellType* >( it.Value( ) ); + + if( edge ) + { + PushElement( edge->GetQEGeom( ) ); + } + ++it; + } + */ +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +PushElement( TOutPrimalEdge* iEdge ) +{ + TOutPointIdentifier id_org = iEdge->GetOrigin( ); + TOutPointIdentifier id_dest = iEdge->GetDestination( ); + + TOutPrimalEdge* temp =( id_org < id_dest ) ? iEdge : iEdge->GetSym( ); + TScalar measure = MeasureEdge( temp ); + + TPriorityQueueItem* qi = new TPriorityQueueItem( temp, + TPriority( false, measure ) ); + + this->m_QueueMapper[ temp ] = qi; + this->m_PriorityQueue->Push( qi ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +bool cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +IsEdgeOKToBeProcessed( TOutPrimalEdge* iEdge ) +{ + return( true ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +Extract( ) +{ + typename O::Pointer output = this->GetOutput( ); + + do + { + this->m_Element = this->m_PriorityQueue->Peek( )->m_Element; + this->m_Priority = this->m_PriorityQueue->Peek( )->m_Priority; + + this->m_PriorityQueue->Pop( ); + typename TQueueMap::iterator it = this->m_QueueMapper.find( this->m_Element ); + delete it->second; + this->m_QueueMapper.erase( it ); + } + while( !IsEdgeOKToBeProcessed( this->m_Element ) ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +DeleteElement( TOutPrimalEdge* iEdge ) +{ + if( iEdge ) // this test can be removed + { + TOutPrimalEdge* temp =( iEdge->GetOrigin( ) < iEdge->GetDestination( ) ) ? + iEdge : iEdge->GetSym( ); + + typename TQueueMap::iterator map_it = this->m_QueueMapper.find( temp ); + if( map_it != this->m_QueueMapper.end( ) ) + { + if( !map_it->second->m_Priority.first ) + { + TPriorityQueueItem* e( map_it->second ); + this->m_PriorityQueue->DeleteElement( e ); + delete map_it->second; + this->m_QueueMapper.erase( map_it ); + } + } + } +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +DeletePoint( + const TOutPointIdentifier& iIdToBeDeleted, + const TOutPointIdentifier& iRemaining + ) +{ + /* TODO + ( void )iRemaining; + this->GetOutput( )->DeletePoint( iIdToBeDeleted ); + */ +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +PushOrUpdateElement( TOutPrimalEdge* iEdge ) +{ + TOutPrimalEdge* temp = iEdge; + + if( temp->GetOrigin( ) > temp->GetDestination( ) ) + { + temp = temp->GetSym( ); + } + + typename TQueueMap::iterator map_it = this->m_QueueMapper.find( temp ); + + TScalar measure = MeasureEdge( temp ); + if( map_it != this->m_QueueMapper.end( ) ) + { + if( !map_it->second->m_Priority.first ) + { + map_it->second->m_Priority.second = measure; + this->m_PriorityQueue->Update( map_it->second ); + } + } + else + { + TPriorityQueueItem* qi = new TPriorityQueueItem( temp, + TPriority( false, measure ) ); + this->m_QueueMapper[ temp ] = qi; + this->m_PriorityQueue->Push( qi ); + } +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +JoinVertexFailed( ) +{ + typename TOperator::TEdgeStatus + status = this->m_JoinVertexFunction->GetEdgeStatus( ); + switch( status ) + { + default: + case TOperator::EDGE_NULL: + case TOperator::MESH_NULL: + case TOperator::FACE_ISOLATED: + break; + case TOperator::EDGE_ISOLATED: + itkDebugMacro( "EDGE_ISOLATED, at iteration: " << this->m_Iteration ); + TagElementOut( this->m_Element ); + break; + // more than 2 common vertices in 0-ring of org and dest respectively + case TOperator::TOO_MANY_COMMON_VERTICES: + itkDebugMacro( "TOO_MANY_COMMON_VERTICES, at iteration " + << this->m_Iteration ); + itkDebugMacro( << this->m_Element->GetOrigin( ) << " -> " + << this->m_Element->GetDestination( ) ); + this->TagElementOut( this->m_Element ); + break; + // ****************************************************************** + // Tetrahedron case + case TOperator::TETRAHEDRON_CONFIG: + itkDebugMacro( "TETRAHEDRON_CONFIG, at iteration " << this->m_Iteration ); + + this->TagElementOut( this->m_Element ); + this->TagElementOut( this->m_Element->GetOnext( ) ); + this->TagElementOut( this->m_Element->GetOprev( ) ); + this->TagElementOut( this->m_Element->GetSym( ) ); + this->TagElementOut( this->m_Element->GetSym( )->GetOnext( ) ); + this->TagElementOut( this->m_Element->GetSym( )->GetOprev( ) ); + this->TagElementOut( this->m_Element->GetOnext( )->GetLnext( ) ); + break; + // ****************************************************************** + // Samosa case + case TOperator::SAMOSA_CONFIG: + itkDebugMacro( "SAMOSA_CONFIG, at iteration " << this->m_Iteration ); + this->RemoveSamosa( ); + break; + // ****************************************************************** + // Eye case + case TOperator::EYE_CONFIG: + itkDebugMacro( "EYE_CONFIG, at iteration " << this->m_Iteration ); + this->RemoveEye( ); + break; + case TOperator::EDGE_JOINING_DIFFERENT_BORDERS: + itkDebugMacro( "EDGE_JOINING_DIFFERENT_BORDERS, at iteration " + << this->m_Iteration ); + this->TagElementOut( this->m_Element ); + break; + } +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +bool cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +ProcessWithoutAnyTopologicalGuarantee( ) +{ + TOutPoint pt; + + TOutPointIdentifier id_org = this->m_Element->GetOrigin( ); + TOutPointIdentifier id_dest = this->m_Element->GetDestination( ); + TOutPointIdentifier idx =( id_org < id_dest ) ? id_org : id_dest; + + bool to_be_processed( true ); + + if( this->m_Relocate ) + { + pt = Relocate( this->m_Element ); + } + else + { + pt = this->GetOutput( )->GetPoint( idx ); + } + +///TODO use CheckOrientation!!! +// if( this->m_CheckOrientation ) +// to_be_processed = CheckOrientation( this->m_Element, idx, pt ); + + if( !to_be_processed ) + { + return( false ); + } + + std::list< TOutPrimalEdge* > list_qe_to_be_deleted; + TOutPrimalEdge* temp = this->m_Element->GetOnext( ); + + while( temp != this->m_Element ) + { + list_qe_to_be_deleted.push_back( temp ); + temp = temp->GetOnext( ); + } + + temp = this->m_Element->GetSym( )->GetOnext( ); + while( temp != this->m_Element->GetSym( ) ) + { + list_qe_to_be_deleted.push_back( temp ); + temp = temp->GetOnext( ); + } + + typename std::list< TOutPrimalEdge* >::iterator + it = list_qe_to_be_deleted.begin( ); + + while( it != list_qe_to_be_deleted.end( ) ) + { + DeleteElement( *it ); + ++it; + } + + if( !this->m_JoinVertexFunction->Evaluate( this->m_Element ) ) + { + it = list_qe_to_be_deleted.begin( ); + + while( it != list_qe_to_be_deleted.end( ) ) + { + PushOrUpdateElement( *it ); + ++it; + } + + JoinVertexFailed( ); + } + else + { + TOutPointIdentifier old_id = this->m_JoinVertexFunction->GetOldPointID( ); + + TOutPointIdentifier new_id =( old_id == id_dest ) ? id_org : id_dest; + DeletePoint( old_id, new_id ); + + TOutPrimalEdge* edge = this->GetOutput( )->FindEdge( new_id ); + if( edge == ITK_NULLPTR ) + { + itkDebugMacro( "edge == 0, at iteration " << this->m_Iteration ); + return( false ); + } + + if( this->m_Relocate ) + { + this->GetOutput( )->SetPoint( new_id, pt ); + } + + temp = edge; + + do + { + PushOrUpdateElement( temp ); + temp = temp->GetOnext( ); + } + while( temp != edge ); + } + return( false ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +unsigned int cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +CheckQEProcessingStatus( ) +{ + TOutPrimalEdge* qe = this->m_Element; + TOutPrimalEdge* qe_sym = qe->GetSym( ); + + /* TODO + bool LeftIsTriangle = qe->IsLnextOfTriangle( ); + bool RightIsTriangle = qe->GetSym( )->IsLnextOfTriangle( ); + */ + bool LeftIsTriangle = false; + bool RightIsTriangle = false; + + if( LeftIsTriangle || RightIsTriangle ) + { + if( LeftIsTriangle && RightIsTriangle ) + { + // two triangles + bool OriginOrderIsTwo;// TODO: =( qe->GetOrder( ) == 2 ); + bool DestinationOrderIsTwo;// TODO: =( qe_sym->GetOrder( ) == 2 ); + + if( OriginOrderIsTwo || DestinationOrderIsTwo ) + { + if( OriginOrderIsTwo && DestinationOrderIsTwo ) + { + // isolated component made of two triangles + // sharing same points but with opposite orientation + // looks like a samosa + itkDebugMacro( "RemoveSamosa" ); + return( 1 ); + } // end if( OriginOrderIsTwo && DestinationOrderIsTwo ) + else + { + // two triangles share three points and two edges + // the last edge is duplicated = two edge cells + // having the same points. It is a valid manifold case + // but you have to decimate it the right way. + // from the top the drawing of that case looks like an Eye + itkDebugMacro( "RemoveEye" ); + return( 2 ); + } // end else if( OriginOrderIsTwo && DestinationOrderIsTwo ) + } // end if( OriginOrderIsTwo || DestinationOrderIsTwo ) + else // if( OriginOrderIsTwo || DestinationOrderIsTwo ) + { + if( NumberOfCommonVerticesIn0Ring( ) > 2 ) + { + // both points have more than 2 edges on their O-ring + itkDebugMacro( "NumberOfCommonVerticesIn0Ring( ) > 2" ); + return( 3 ); + } //end if( NumberOfCommonVerticesIn0Ring( ) > 2 ) + else + { + return( 0 ); + } + } // end else if( OriginOrderIsTwo || DestinationOrderIsTwo ) + } // end if( LeftIsTriangle && RightIsTriangle ) + else // if( LeftIsTriangle && RightIsTriangle ) + { + if( NumberOfCommonVerticesIn0Ring( ) > 1 ) + { + itkDebugMacro( "NumberOfCommonVerticesIn0Ring( ) > 1" ); + return( 4 ); + } // end if( NumberOfCommonVerticesIn0Ring( ) > 1 ) + else // if( NumberOfCommonVerticesIn0Ring( ) > 1 ) + { + if( RightIsTriangle ) + { + return( 5 ); + } + else + { + return( 6 ); + } + } // end else if( NumberOfCommonVerticesIn0Ring( ) > 1 ) + } // end else if( LeftIsTriangle && RightIsTriangle ) + } // end if( LeftIsTriangle || RightIsTriangle ) + else // if( LeftIsTriangle || RightIsTriangle ) + { + if( NumberOfCommonVerticesIn0Ring( ) > 0 ) + { + return( 7 ); + } + else + { + return( 0 ); + } + } // end if( LeftIsTriangle || RightIsTriangle ) + + // return( 0 ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +bool cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +ProcessWithTopologicalGuarantee( ) +{ + if( this->m_Priority.first ) + { + return( true ); + } + + ProcessWithoutAnyTopologicalGuarantee( ); + return( false ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +unsigned long cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +NumberOfCommonVerticesIn0Ring( ) const +{ + TOutPrimalEdge* qe = this->m_Element; + TOutPrimalEdge* e_it = qe->GetOnext( ); + + std::list< TOutPointIdentifier > dir_list, sym_list, intersection_list; + do + { + dir_list.push_back( e_it->GetDestination( ) ); + e_it = e_it->GetOnext( ); + } + while( e_it != qe ); + + qe = qe->GetSym( ); + e_it = qe; + + do + { + sym_list.push_back( e_it->GetDestination( ) ); + e_it = e_it->GetOnext( ); + } + while( e_it != qe ); + + dir_list.sort( ); + sym_list.sort( ); + + std::set_intersection( dir_list.begin( ), dir_list.end( ), + sym_list.begin( ), sym_list.end( ), + std::back_inserter( intersection_list ) ); + + return( static_cast< unsigned long >( intersection_list.size( ) ) ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +RemoveSamosa( ) +{ + DeleteElement( this->m_Element->GetLnext( ) ); + DeleteElement( this->m_Element->GetLprev( ) ); + DeleteElement( this->m_Element->GetRnext( ) ); + DeleteElement( this->m_Element->GetRprev( ) ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +TagElementOut( TOutPrimalEdge* iEdge ) +{ + typename TQueueMap::iterator map_it = this->m_QueueMapper.find( iEdge ); + + if( map_it != this->m_QueueMapper.end( ) ) + { + map_it->second->m_Priority.first = true; + map_it->second->m_Priority.second = static_cast< TScalar >( 0. ); + this->m_PriorityQueue->Update( map_it->second ); + } + else + { + TPriorityQueueItem* qi = new TPriorityQueueItem( iEdge, + TPriority( true, static_cast< TScalar >( 0. ) ) ); + + this->m_QueueMapper[ iEdge ] = qi; + this->m_PriorityQueue->Push( qi ); + } +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +void cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +RemoveEye( ) +{ + TOutPrimalEdge* qe = this->m_Element; + TOutPrimalEdge* qe_sym = this->m_Element->GetSym( ); + + /* TODO + if( qe->GetSym( )->GetOrder( ) == 2 ) + { + qe = qe_sym; + } + */ + + TagElementOut( qe ); + TagElementOut( qe->GetOnext( ) ); + TagElementOut( qe->GetSym( )->GetOnext( ) ); + TagElementOut( qe->GetSym( )->GetOprev( ) ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +bool cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +CheckOrientation( TOutPrimalEdge* iEdge, + const TOutPointIdentifier& iId, + const TOutPoint& iPt ) +{ + typename O::Pointer output = this->GetOutput( ); + typename O::CellsContainerPointer cells = output->GetCells( ); + + std::list< typename O::CellIdentifier > r1, r2, elements_to_be_tested; + TOutPrimalEdge* qe = iEdge; + TOutPrimalEdge* qe_it = qe->GetOnext( ); + + do + { + r1.push_back( qe_it->GetLeft( ) ); + qe_it = qe_it->GetOnext( ); + } + while( qe_it != qe ); + + qe = iEdge->GetSym( ); + qe_it = qe->GetOnext( ); + + do + { + r2.push_back( qe_it->GetLeft( ) ); + qe_it = qe_it->GetOnext( ); + } + while( qe_it != qe ); + + r1.sort( ); + r2.sort( ); + + std::set_symmetric_difference( r1.begin( ), r1.end( ), + r2.begin( ), r2.end( ), + std::back_inserter( elements_to_be_tested ) ); + + typename std::list< typename O::CellIdentifier >::iterator + it = elements_to_be_tested.begin( ); + + typedef itk::TriangleHelper< TOutPoint > TTriangle; + + bool orientation_ok( true ); + typename O::CellIdentifier c_id( 0 ); + + /* TODO: iterate over polygons + OutputPolygonType* poly; + TOutPointIdentifier p_id; + + int k( 0 ), replace_k( 0 ); + TOutPoint pt[ 3 ]; + + OutputVectorType n_bef, n_aft; + + while( ( it != elements_to_be_tested.end( ) ) && orientation_ok ) + { + c_id =* it; + poly = dynamic_cast< OutputPolygonType* >( cells->GetElement( c_id ) ); + qe = poly->GetEdgeRingEntry( ); + qe_it = qe; + k = 0; + do + { + p_id = qe_it->GetOrigin( ); + if( p_id == iId ) + { + replace_k = k; + } + pt[ k++ ] = output->GetPoint( p_id ); + qe_it = qe_it->GetLnext( ); + } + while( qe_it != qe ); + + n_bef = TTriangle::ComputeNormal( pt[ 0 ], pt[ 1 ], pt[ 2 ] ); + switch( replace_k ) + { + default: + case 0: + n_aft = TTriangle::ComputeNormal( iPt, pt[ 1 ], pt[ 2 ] ); + break; + case 1: + n_aft = TTriangle::ComputeNormal( pt[ 0 ], iPt, pt[ 2 ] ); + break; + case 2: + n_aft = TTriangle::ComputeNormal( pt[ 0 ], pt[ 1 ], iPt ); + break; + } + + orientation_ok =( n_bef * n_aft ) < 0.; + ++it; + } + */ + return( orientation_ok ); +} + +// ------------------------------------------------------------------------- +template< class I, class O, class C > +bool cpm::Algorithms::QuadEdge::EdgeDecimationFilter< I, O, C >:: +IsCriterionSatisfied( ) +{ + if( this->m_PriorityQueue->Empty( ) ) + { + return( true ); + } + else + { + return( this->m_Criterion->is_satisfied( this->GetOutput( ), 0, this->m_Priority.second ) ); + } +} + +#endif // __CPM__ALGORITHMS__QUADEDGE__EDGEDECIMATIONFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.h b/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.h new file mode 100644 index 0000000..649fe38 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.h @@ -0,0 +1,95 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__H__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__H__ + +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class M > + class MeshEulerOperatorJoinVertexFunction + : public MeshFunctionBase< M, typename M::TPrimalEdge*, typename M::TPrimalEdge* > + { + public: + typedef typename M::TPrimalEdge TEdge; + typedef MeshEulerOperatorJoinVertexFunction Self; + typedef MeshFunctionBase< M, TEdge*, TEdge* > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + typedef typename Superclass::TInput TInput; + typedef typename Superclass::TOutput TOutput; + typedef typename M::PointIdentifier TPointId; + + typedef std::stack< TEdge* > TStack; + + enum TEdgeStatus + { + STANDARD_CONFIG = 0, + EDGE_NULL, + MESH_NULL, + EDGE_ISOLATED, + TOO_MANY_COMMON_VERTICES, + TETRAHEDRON_CONFIG, + QUADEDGE_ISOLATED, + FACE_ISOLATED, + SAMOSA_CONFIG, + EYE_CONFIG, + EDGE_JOINING_DIFFERENT_BORDERS + }; + + public: + itkNewMacro( Self ); + itkTypeMacro( MeshEulerOperatorJoinVertexFunction, MeshFunctionBase ); + + itkGetConstMacro( OldPointID, TPointId ); + itkGetConstMacro( EdgeStatus, TEdgeStatus ); + + public: + virtual TOutput Evaluate( const TInput& e ); + + protected: + MeshEulerOperatorJoinVertexFunction( ); + virtual ~MeshEulerOperatorJoinVertexFunction( ); + + TPointId CommonVertexNeighboor( TEdge* e ); + bool IsTetrahedron( TEdge* e ); + bool IsFaceIsolated( + TEdge* e, bool iWasLeftFace, TStack& oToBeDeleted + ); + bool IsSamosa( TEdge* e ); + bool IsEye( TEdge* e ); + bool IsEdgeLinkingTwoDifferentBorders( TEdge* e ); + TEdgeStatus CheckStatus( TEdge* e, TStack& oToBeDeleted ); + TEdge* Process( TEdge* e ); + TEdge* ProcessQuadEdge( TEdge* e ); + TEdge* ProcessFace( TEdge* e, TStack& EdgesToBeDeleted ); + + private: + // Purposely not implemented + MeshEulerOperatorJoinVertexFunction( const Self& ); + void operator=( const Self& ); + + protected: + TPointId m_OldPointID; + TEdgeStatus m_EdgeStatus; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.hxx b/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.hxx new file mode 100644 index 0000000..f869f96 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshEulerOperatorJoinVertexFunction.hxx @@ -0,0 +1,541 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TOutput +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +Evaluate( const TInput& e ) +{ + TStack del_edges; + this->m_EdgeStatus = this->CheckStatus( e, del_edges ); + + TOutput out; + switch( this->m_EdgeStatus ) + { + case Self::STANDARD_CONFIG: out = this->Process( e ); break; + case Self::QUADEDGE_ISOLATED: out = this->ProcessQuadEdge( e ); break; + case Self::FACE_ISOLATED: out = this->ProcessFace( e, del_edges ); break; + default: out = NULL; break; + /* TODO: + case Self::EDGE_NULL: + // this->m_Mesh == 0 + case Self::MESH_NULL: + // e->IsIsolated( ) && e_sym->IsIsolated( ) + case Self::EDGE_ISOLATED: + // more than 2 common vertices in 0-ring of org and dest respectively + case Self::TOO_MANY_COMMON_VERTICES: + // Tetrahedron case + case Self::TETRAHEDRON_CONFIG: + // Samosa case + case Self::SAMOSA_CONFIG: + // Eye case + case Self::EYE_CONFIG: + return( NULL ); + case Self::EDGE_JOINING_DIFFERENT_BORDERS: + return( NULL ); + */ + } // hctiws + return( out ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +MeshEulerOperatorJoinVertexFunction( ) + : Superclass( ), + m_OldPointID( 0 ), + m_EdgeStatus( Self::STANDARD_CONFIG ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +~MeshEulerOperatorJoinVertexFunction( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TPointId +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +CommonVertexNeighboor( TEdge* e ) +{ + TEdge* qe = e; + TEdge* e_it = qe->GetOnext( ); + + typedef std::list< TPointId > TPointIdList; + TPointIdList dir_list; + TPointIdList sym_list; + TPointIdList intersection_list; + + TPointId id; + do + { + id = e_it->GetDestination( ); + dir_list.push_back( id ); + e_it = e_it->GetOnext( ); + } + while( e_it != qe ); + + qe = qe->GetSym( ); + e_it = qe; + + do + { + id = e_it->GetDestination( ); + sym_list.push_back( id ); + e_it = e_it->GetOnext( ); + } + while( e_it != qe ); + + dir_list.sort( ); + sym_list.sort( ); + + std::set_intersection( + dir_list.begin( ), dir_list.end( ), + sym_list.begin( ), sym_list.end( ), + std::back_inserter( intersection_list ) + ); + + return( static_cast< TPointId >( intersection_list.size( ) ) ); +} + +// ------------------------------------------------------------------------- +template< class M > +bool +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +IsTetrahedron( TEdge* e ) +{ + typedef typename M::CellIdentifier _TCellId; + if( true /* TODO: e->GetOrder( ) == 3 */ ) + { + TEdge* e_sym = e->GetSym( ); + if( true /* TODO e_sym->GetOrder( ) == 3 */ ) + { + if( true /* TODO e->GetLprev( )->GetOrder( ) == 3 */ ) + { + if( true /* TODO e_sym->GetLprev( )->GetOrder( ) == 3 */ ) + { + bool left_triangle; // TODO: = e->IsLnextOfTriangle( ); + bool right_triangle; // TODO: = e_sym->IsLnextOfTriangle( ); + + if( left_triangle && right_triangle ) + { + _TCellId id_left_right_triangle; + if( e->GetLprev( )->IsRightSet( ) ) + id_left_right_triangle = e->GetLprev( )->GetRight( ); + else + return( false ); + + _TCellId id_left_left_triangle; + if( e->GetLnext( )->IsRightSet( ) ) + id_left_left_triangle = e->GetLnext( )->GetRight( ); + else + return( false ); + + _TCellId id_right_left_triangle; + if( e_sym->GetLnext( )->IsRightSet( ) ) + id_right_left_triangle = e_sym->GetLnext( )->GetRight( ); + else + return( false ); + + _TCellId id_right_right_triangle; + if( e_sym->GetLprev( )->IsRightSet( ) ) + id_right_right_triangle = e_sym->GetLprev( )->GetRight( ); + else + return( false ); + + return( + ( id_left_right_triangle == id_right_left_triangle ) && + ( id_left_left_triangle == id_right_right_triangle ) + ); + + } // fi + + } // fi + + } // fi + + } // fi + + } // fi + return( false ); +} + +// ------------------------------------------------------------------------- +template< class M > +bool +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +IsFaceIsolated( TEdge* e, bool iWasLeftFace, TStack& oToBeDeleted ) +{ + bool border; + TEdge* e_sym = e->GetSym( ); + + // turn around the face( left or right one ) while edges are on the border + // and push them into a stack( which will be used to delete properly all + // elements ) + TEdge* temp =( iWasLeftFace == true )? e: e_sym; + TEdge* e_it = temp; + + oToBeDeleted.push( e_it ); + e_it = e_it->GetLnext( ); + do + { + oToBeDeleted.push( e_it ); + border = e_it->IsAtBorder( ); + e_it = e_it->GetLnext( ); + } + while( ( e_it != temp ) && border ); + + return( border ); +} + +// ------------------------------------------------------------------------- +template< class M > +bool +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +IsSamosa( TEdge* e ) +{ + // TODO return( ( e->GetOrder( ) == 2 ) && ( e->GetSym( )->GetOrder( ) == 2 ) ); + return( false ); +} + +// ------------------------------------------------------------------------- +template< class M > +bool +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +IsEye( TEdge* e ) +{ + bool OriginOrderIsTwo; // TODO =( e->GetOrder( ) == 2 ); + bool DestinationOrderIsTwo; // TODO =( e->GetSym( )->GetOrder( ) == 2 ); + + return( + ( OriginOrderIsTwo && !DestinationOrderIsTwo ) || + ( !OriginOrderIsTwo && DestinationOrderIsTwo ) + ); +} + +// ------------------------------------------------------------------------- +template< class M > +bool +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +IsEdgeLinkingTwoDifferentBorders( TEdge* e ) +{ + TEdge* t = e; + TEdge* e_it = t; + bool org_border; + + do + { + org_border = e_it->IsAtBorder( ); + e_it = e_it->GetOnext( ); + } + while( ( e_it != t ) &&( !org_border ) ); + if( org_border ) + { + t = e->GetSym( ); + e_it = t; + bool dest_border; + do + { + dest_border = e_it->IsAtBorder( ); + e_it = e_it->GetOnext( ); + } + while( ( e_it != t ) &&( !dest_border ) ); + + return( dest_border ); + } + else + return( false ); +} + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TEdgeStatus +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +CheckStatus( TEdge* e, TStack& oToBeDeleted ) +{ + TEdge* e_sym = e->GetSym( ); + + bool IsEdgeIsolated = e->IsIsolated( ); + bool IsSymEdgeIsolated = e_sym->IsIsolated( ); + if( IsEdgeIsolated || IsSymEdgeIsolated ) + { + if( IsEdgeIsolated && IsSymEdgeIsolated ) + { + // We could shrink the edge to a point, + // But we consider this case to be degenerated. + itkDebugMacro( "Argument edge isolated." ); + return( Self::EDGE_ISOLATED ); + + } // fi + + // One the endpoints( and only one ) of the incoming edge is isolated. + // Instead of "shrinking" the edge it suffice to delete it. Note that + // this also avoids trouble since the definition of leftZip or rightZip + // would be improper in this case( in fact leftZip or rightZip would + // in fact be e or e->GetSym( )... + // + // When e is adjacent to a face, we must retrieve the edge [ a, b ] + // in order to rebuild the face after edge deletion. If the left face + // of e is set then the right face is also set... since it is the same + // face ! Here is the situation: + // + // b----a----X + // | | | + // | e | + // | | | + // | | + // X----X----X + // + // We are not yet sure of the orientation of e and which endpoint + // of e is attached in a. + return( Self::QUADEDGE_ISOLATED ); + } + + TPointId number_common_vertices = this->CommonVertexNeighboor( e ); + if( number_common_vertices > 2 ) + { + itkDebugMacro( + "The 2 vertices have more than 2 common neighboor vertices." + ); + return( Self::TOO_MANY_COMMON_VERTICES ); + + } // fi + + if( number_common_vertices == 2 ) + { + if( this->IsTetrahedron( e ) ) + { + itkDebugMacro( "It forms a tetrahedron." ); + return( Self::TETRAHEDRON_CONFIG ); + + } // fi + + } // fi + + // General case + bool wasLeftFace = e->IsLeftSet( ); + bool wasRightFace = e->IsRightSet( ); + + if( wasLeftFace && wasRightFace ) + { + if( this->IsSamosa( e ) ) + { + itkDebugMacro( "Self::SAMOSA_CONFIG." ); + return( Self::SAMOSA_CONFIG ); + + } // fi + if( this->IsEye( e ) ) + { + itkDebugMacro( "Self::EYE_CONFIG." ); + return( Self::EYE_CONFIG ); + + } // fi + if( this->IsEdgeLinkingTwoDifferentBorders( e ) ) + { + itkDebugMacro( "Self::EDGE_JOINING_DIFFERENT_BORDERS." ); + return( Self::EDGE_JOINING_DIFFERENT_BORDERS ); + + } // fi + } + else + { + if( wasLeftFace || wasRightFace ) + { + if( this->IsFaceIsolated( e, wasLeftFace, oToBeDeleted ) ) + { + itkDebugMacro( "Self::FACE_ISOLATED." ); + return( Self::FACE_ISOLATED ); + + } // fi + + } // fi + + } // fi + return( Self::STANDARD_CONFIG ); +} + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TEdge* +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +Process( TEdge* e ) +{ + TEdge* e_sym = e->GetSym( ); + + // General case + bool wasLeftFace = e->IsLeftSet( ); + bool wasRightFace = e->IsRightSet( ); + bool wasLeftTriangle; // TODO = e->IsLnextOfTriangle( ); + bool wasRightTriangle; // TODO = e_sym->IsLnextOfTriangle( ); + + TPointId NewDest = e->GetDestination( ); + TPointId NewOrg = e->GetOrigin( ); + TEdge* leftZip = e->GetLnext( ); + TEdge* rightZip = e->GetOprev( ); + + // + // \ | / // + // \ | / // + // \ | / // + // ------------------ b ------------- Y // + // ___/ | | // + // _<_leftZip__/ | | // + // / ^ | // + // X left e right | // + // \____________ | | // + // \___ | | // + // \ | | // + // ------------------ a -rightZip->-- Y // + // / | \ // + // / | \ // + // / | \ // + // + // TODO: this->m_Mesh->LightWeightDeleteEdge( e ); + // TODO: this->m_OldPointID = this->m_Mesh->Splice( leftZip, rightZip ); + + // + // | / __Y // + // | / __/ | // + // __<_leftZip___ | / __/ | // + // / \ | / __/ | // + // / \__ | / / | // + // X NOFACE __ [a = b] NOFACE | // + // \ / / / | \ \__ | // + // \______________/ _/ / | \ \__ | // + // __/ / | \ rightZip | // + // __/ / | \ \__| // + // / / | \ Y // + // + // When the Lnext and/or the Rnext ring of the argument edge was originally + // the one[s] of a triangle, the above edge deletion created the odd + // situation of having two different edges adjacent to the same two + // vertices( which is quite a bad thing ). This is was is depicted on + // the above ascii-graph, the original left face was a triangle and + // the resulting situation has two different edges adjacent to the + // two vertices X and a. In order to clean up things, we can call the + // Zip( MeshFunction ) algorithm which handles this case. + // Once things are back to normal, we recreate faces when they were + // originally present. + // + + typedef MeshZipFunction< M > _TZip; + if( wasLeftTriangle ) + { + typename _TZip::Pointer zip = _TZip::New( ); + zip->SetMesh( this->m_Mesh ); + if( TEdge::NoGeometry != zip->Evaluate( leftZip ) ) + { + itkDebugMacro( "Zip must return NoPoint( left )." ); + return( NULL ); + + } // fi + } + else + { + /* TODO + if( wasLeftFace ) + this->m_Mesh->AddFace( leftZip ); + */ + } // fi + + // NewOrg = rightZip->GetOprev( )->GetDestination( ); + if( wasRightTriangle ) + { + NewOrg = rightZip->GetDestination( ); + typename _TZip::Pointer zip = _TZip::New( ); + zip->SetMesh( this->m_Mesh ); + if( TEdge::NoGeometry != zip->Evaluate( rightZip ) ) + { + itkDebugMacro( "Zip must return NoPoint( right )." ); + return( NULL ); + + } // fi + } + else + { + NewOrg = rightZip->GetLprev( )->GetOrigin( ); + /* TODO + if( wasRightFace ) + this->m_Mesh->AddFace( rightZip ); + */ + } // fi + + TOutput result = this->m_Mesh->FindEdge( NewOrg, NewDest ); + if( !result ) + result = this->m_Mesh->FindEdge( NewDest )->GetSym( ); + return( result ); +} + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TEdge* +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +ProcessQuadEdge( TEdge* e ) +{ + TEdge* temp = ( e->IsIsolated( ) == true )? e->GetSym( ): e; + TEdge* rebuildEdge = temp->GetOprev( ); + + this->m_OldPointID = temp->GetSym( )->GetOrigin( ); + + bool e_leftset = e->IsLeftSet( ); + // TODO: this->m_Mesh->LightWeightDeleteEdge( e ); + /* TODO: + if( e_leftset ) + this->m_Mesh->AddFace( rebuildEdge ); + */ + + // this case has no symetric case in SPlitVertex + // i.e. it is impossible to reconstruct such a pathological + // case using SplitVertex. Thus the return value is + // of less interest. + // We return an edge whose dest is a, whichever. + return( rebuildEdge ); +} + +// ------------------------------------------------------------------------- +template< class M > +typename +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +TEdge* +cpm::Algorithms::QuadEdge::MeshEulerOperatorJoinVertexFunction< M >:: +ProcessFace( TEdge* e, TStack& EdgesToBeDeleted ) +{ + TPointId org = e->GetOrigin( ); + TPointId dest = e->GetDestination( ); + + // delete all elements + while( !EdgesToBeDeleted.empty( ) ) + { + // TODO: this->m_Mesh->LightWeightDeleteEdge( EdgesToBeDeleted.top( ) ); + EdgesToBeDeleted.pop( ); + } + + // it now retuns one edge from NewDest or NewOrg if there are any + // else NULL + TEdge* temp = this->m_Mesh->FindEdge( dest ); + if( temp != NULL ) + return( temp ); + else + return( this->m_Mesh->FindEdge( org ) ); +} + +#endif +// __CPM__ALGORITHMS__QUADEDGE__MESHEULEROPERATORJOINVERTEXFUNCTION__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshFunctionBase.h b/lib/cpm/Algorithms/QuadEdge/MeshFunctionBase.h new file mode 100644 index 0000000..39b2c6f --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshFunctionBase.h @@ -0,0 +1,63 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHFUNCTIONBASE__H__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHFUNCTIONBASE__H__ + +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class M, class I, class O > + class MeshFunctionBase + : public itk::Object + { + public: + typedef MeshFunctionBase Self; + typedef itk::Object Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + typedef I TInput; + typedef O TOutput; + + public: + itkTypeMacro( MeshFunctionBase, itkObject ); + + itkGetObjectMacro( Mesh, M ); + itkSetObjectMacro( Mesh, M ); + + public: + virtual O Evaluate( const I& input ) = 0; + + protected: + MeshFunctionBase( ) + : Superclass( ), + m_Mesh( NULL ) + { } + virtual ~MeshFunctionBase( ) + { } + + private: + // Purposely not implemented + MeshFunctionBase( const Self& ); + void operator=( const Self& ); + + protected: + typename M::Pointer m_Mesh; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHFUNCTIONBASE__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h b/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h new file mode 100644 index 0000000..d0fc93b --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.h @@ -0,0 +1,67 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class M > + class MeshPlaneCutterFilter + : public itk::MeshToMeshFilter< M, M > + { + public: + typedef MeshPlaneCutterFilter Self; + typedef itk::MeshToMeshFilter< M, M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + typedef typename M::TScalar TScalar; + typedef typename M::PointType TPoint; + typedef typename TPoint::VectorType TVector; + + public: + itkNewMacro( Self ); + itkTypeMacro( MeshPlaneCutterFilter, itkMeshToMeshFilter ); + + itkGetConstMacro( PlanePoint, TVector ); + itkGetConstMacro( PlaneNormal, TVector ); + + itkSetMacro( PlanePoint, TVector ); + + public: + void SetPlaneNormal( const TVector& n ); + + protected: + MeshPlaneCutterFilter( ); + virtual ~MeshPlaneCutterFilter( ); + + virtual void GenerateData( ); + + private: + // Purposely not implemented + MeshPlaneCutterFilter( const Self& ); + void operator=( const Self& ); + + protected: + TVector m_PlanePoint; + TVector m_PlaneNormal; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.hxx b/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.hxx new file mode 100644 index 0000000..abdc7f6 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshPlaneCutterFilter.hxx @@ -0,0 +1,158 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__HXX__ + +#include +#include +#include + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< M >:: +SetPlaneNormal( const TVector& n ) +{ + TScalar nn = n.GetNorm( ); + if( TScalar( 0 ) < nn ) + { + this->m_PlaneNormal = n / nn; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< M >:: +MeshPlaneCutterFilter( ) + : Superclass( ) +{ + this->m_PlanePoint.Fill( TScalar( 0 ) ); + this->m_PlaneNormal.Fill( TScalar( 0 ) ); + this->m_PlaneNormal[ 0 ] = TScalar( 1 ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< M >:: +~MeshPlaneCutterFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::QuadEdge::MeshPlaneCutterFilter< M >:: +GenerateData( ) +{ + typedef typename M::TPrimalEdge _TEdge; + typedef typename M::TQuadEdgeCell _TCell; + typedef typename _TEdge::Iterator _TEdgeIt; + + const M* input = this->GetInput( ); + M* output = this->GetOutput( ); + + // Clear output data + output->Initialize( ); + + // Marked edges + std::set< _TEdge* > marks; + + unsigned long nCells = input->GetNumberOfCells( ); + unsigned long actualCell = 0; + + TVector pp = this->m_PlanePoint; + TVector np = this->m_PlaneNormal; + TVector pl, pm, pml; + TScalar num, den; + while( actualCell < nCells ) + { + std::queue< _TEdge* > q; + + // Is the next cell a QuadEdgeCell? + typename M::CellAutoPointer cell_ptr; + input->GetCell( actualCell++, cell_ptr ); + _TCell* cell = dynamic_cast< _TCell* >( cell_ptr.GetPointer( ) ); + if( cell == NULL ) + continue; + + // Ok, it is... now, does its face needs to be analyzed? + _TEdge* edge = cell->GetEntryPrimalEdge( ); + _TEdgeIt fIt = edge->BeginLnext( ); + for( ; fIt != edge->EndLnext( ); ++fIt ) + { + // Has the edge already been visited? + if( marks.find( *fIt ) != marks.end( ) ) + continue; + + // No, ok -> intersection candidate + q.push( *fIt ); + + } // rof + + // Main loop + while( !( q.empty( ) ) ) + { + // Pick next candidate + edge = q.front( ); + q.pop( ); + + // Check it + if( marks.find( edge ) != marks.end( ) ) + continue; + + // Mark it (with its symmetric) + marks.insert( edge ); + marks.insert( edge->GetSym( ) ); + + // Now, edge is a true candidate: check intersection + pl = input->GetPoint( edge->GetOrigin( ) ).GetVectorFromOrigin( ); + pm = input->GetPoint( edge->GetDestination( ) ).GetVectorFromOrigin( ); + pml = pm - pl; + num = ( pp - pl ) * pml; + den = pml * np; + // std::cout << num << " " << den << " " << pp << " " << np << " " << pl << " " << pm << " {" << edge->GetOrigin( ) << "," << edge->GetDestination( ) << "}" << std::endl; + if( !( double( 0 ) < std::fabs( double( den ) ) ) ) + { + if( !( double( 0 ) < std::fabs( double( num ) ) ) ) + { + // Line lies on plane: both points intersect + // std::cout << pl << " " << pm << " "; + + } // fi + // else: Line parallel to plane -> no intersection + } + else + { + num /= den; + if( TScalar( 0 ) <= num && num <= TScalar( 1 ) ) + { + // One point intersection + // TPoint pnt( TScalar( 0 ) + output->SetPoint( + output->GetNumberOfPoints( ), + ( ( pm - pl ) * num ) + pl + ); + + // Check over face + fIt = edge->BeginLnext( ); + for( ; fIt != edge->EndLnext( ); ++fIt ) + { + // Has the edge already been visited? + if( marks.find( *fIt ) != marks.end( ) ) + continue; + + // No, ok -> intersection candidate + q.push( *fIt ); + + } // rof + } + // else: no intersection between pm and pl + + } // fi + + } // elihw + + } // elihw +} + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHPLANECUTTERFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.h b/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.h new file mode 100644 index 0000000..c05da39 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.h @@ -0,0 +1,63 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHTODUALFILTER__H__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHTODUALFILTER__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< class I, class O = I > + class MeshToDualFilter + : public itk::MeshToMeshFilter< I, O > + { + public: + typedef MeshToDualFilter Self; + typedef itk::MeshToMeshFilter< I, O > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef I TInputMesh; + typedef O TOutputMesh; + // TODO: typedef F TFunction; + + typedef typename I::PointIdentifier TPointId; + + public: + itkNewMacro( Self ); + itkTypeMacro( MeshToDualFilter, itkMeshToMeshFilter ); + + /* TODO + itkGetObjectMacro( Function, F ); + itkSetObjectMacro( Function, F ); + */ + + protected: + MeshToDualFilter( ); + virtual ~MeshToDualFilter( ); + + void GenerateData( ); + + private: + MeshToDualFilter( const Self& ); + Self& operator=( const Self& ); + + protected: + // TODO: typename F::Pointer m_Function; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHTODUALFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.hxx b/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.hxx new file mode 100644 index 0000000..24a6481 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshToDualFilter.hxx @@ -0,0 +1,129 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGEMESHTO__DUALFILTER__HXX__ +#define __CPM__ALGORITHMS__QUADEDGEMESHTO__DUALFILTER__HXX__ + +#include +#include +#include + +// ------------------------------------------------------------------------- +template< class I, class O > +cpm::Algorithms::QuadEdge::MeshToDualFilter< I, O >:: +MeshToDualFilter( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< class I, class O > +cpm::Algorithms::QuadEdge::MeshToDualFilter< I, O >:: +~MeshToDualFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class I, class O > +void cpm::Algorithms::QuadEdge::MeshToDualFilter< I, O >:: +GenerateData( ) +{ + typedef itk::PolygonCell< typename O::CellType > TPolygon; + typedef typename I::TPrimalEdge TInPrimalEdge; + typedef typename I::PixelType TInScalar; + typedef typename O::PixelType TOutScalar; + typedef typename I::PointType TInPoint; + typedef typename O::PointType TOutPoint; + typedef typename TInPoint::VectorType TInVector; + typedef std::map< TPointId, TPointId > _TBorderColumn; + typedef std::map< TPointId, _TBorderColumn > _TBorderMatrix; + + const I* in = this->GetInput( ); + O* out = this->GetOutput( ); + // TODO: this->m_Function->SetInputMesh( in ); + + // Convert faces to points + unsigned long nCells = in->GetNumberOfCells( ); + out->GetPoints( )->Reserve( nCells ); + for( unsigned long cId = 0; cId < nCells; cId++ ) + { + const typename I::TPrimalEdge* e = in->FindEntryEdge( cId ); + if( e == NULL ) + continue; + if( !( e->IsLeftSet( ) ) ) + continue; + + // Compute new point + TInVector bc( TInScalar( 0 ) ); + typename TInPrimalEdge::PointConstIterator pIt = e->BeginPointLnext( ); + unsigned long pCount = 0; + for( ; pIt != e->EndPointLnext( ); pIt++ ) + { + bc += in->GetPoint( *pIt ).GetVectorFromOrigin( ); + pCount++; + + } // rof + if( pCount != 0 ) + bc /= TInScalar( pCount ); + + TOutPoint pnt; + for( unsigned int d = 0; d < I::PointDimension; d++ ) + pnt[ d ] = TOutScalar( bc[ d ] ); + out->SetPoint( e->GetLeft( ), pnt ); + + } // rof + + _TBorderMatrix borderIds; + unsigned long nPoints = in->GetNumberOfPoints( ); + for( unsigned long pId = 0; pId < nPoints; pId++ ) + { + const TInPrimalEdge* e = in->FindEdge( pId ); + + // Add dual faces: each point becomes a face + typename O::CellAutoPointer cell; + TPolygon* face = new TPolygon( ); + typename TInPrimalEdge::ConstIterator eIt = e->BeginOnext( ); + for( ; eIt != e->EndOnext( ); eIt++ ) + { + if( ( *eIt )->IsAtBorder( ) ) + { + // Keep track of created border points + TPointId ori = ( *eIt )->GetOrigin( ); + TPointId des = ( *eIt )->GetDestination( ); + typename _TBorderMatrix::const_iterator bmIt = + borderIds.find( ori ); + bool found = false; + if( bmIt != borderIds.end( ) ) + found = ( bmIt->second.find( des ) != bmIt->second.end( ) ); + if( !found ) + { + // Compute border point + TInVector bc = in->GetPoint( ( *eIt )->GetOrigin( ) ). + GetVectorFromOrigin( ); + bc += in->GetPoint( ( *eIt )->GetDestination( ) ). + GetVectorFromOrigin( ); + bc /= TInScalar( 2 ); + + TOutPoint pnt; + for( unsigned int d = 0; d < I::PointDimension; d++ ) + pnt[ d ] = TOutScalar( bc[ d ] ); + + unsigned long nOutPoints = out->GetNumberOfPoints( ); + out->SetPoint( nOutPoints, pnt ); + borderIds[ ori ][ des ] = nOutPoints; + borderIds[ des ][ ori ] = nOutPoints; + + } // fi + face->AddPointId( borderIds[ ori ][ des ] ); + + } // fi + if( ( *eIt )->IsLeftSet( ) ) + face->AddPointId( ( *eIt )->GetLeft( ) ); + + } // rof + cell.TakeOwnership( face ); + out->SetCell( out->GetNumberOfCells( ), cell ); + + } // rof +} + +#endif // __CPM__ALGORITHMS__QUADEDGEMESHTO__DUALFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h b/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h new file mode 100644 index 0000000..c69fe17 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.h @@ -0,0 +1,57 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< typename M > + class MeshZipFunction + : public MeshFunctionBase< M, typename M::TPrimalEdge*, typename M::TPrimalEdge::TPrimalGeometry > + { + public: + typedef typename M::TPrimalEdge TEdge; + typedef typename TEdge::TPrimalGeometry TGeometry; + typedef MeshZipFunction Self; + typedef MeshFunctionBase< M, TEdge*, TGeometry > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + typedef typename Superclass::TInput TInput; + typedef typename Superclass::TOutput TOutput; + + public: + itkNewMacro( Self ); + itkTypeMacro( MeshZipFunction, MeshFunctionBase ); + + public: + virtual TOutput Evaluate( const TInput& e ); + + protected: + MeshZipFunction( ); + virtual ~MeshZipFunction( ); + + private: + // Purposely not implemented + MeshZipFunction( const Self& ); + void operator=( const Self& ); + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.hxx b/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.hxx new file mode 100644 index 0000000..06931b6 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/MeshZipFunction.hxx @@ -0,0 +1,216 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__HXX__ + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::Algorithms::QuadEdge::MeshZipFunction< M >:: +TOutput cpm::Algorithms::QuadEdge::MeshZipFunction< M >:: +Evaluate( const TInput& e ) +{ + if( !this->m_Mesh ) + { + itkDebugMacro( "No mesh present" ); + return( TEdge::NoGeometry ); + + } // fi + + if( e->IsLeftSet( ) ) + { + itkDebugMacro( "Incoming edge must be adjacent to NOFACE" ); + return( TEdge::NoGeometry ); + + } // fi + + // Initial state Final state // + // // + // | | \ / // + // | | \ / // + // | | \ / // + // | | \ / // + // VTrashed Vkept V // + // \ / | // + // \ / | // + // \ ^ | // + // \ / | // + // \ e | // + // \ / | // + // \ / | // + // ------- Org -------- --------- Org --------- // + // / | \ / | \ // + // / | \ / | \ // + // / | \ / | \ // + // + // This is the original situation: + // + // \ / // + // \ ^ // + // \ a // + // \ / // + // ------ VRite VLeft -------- // + // / \ / \ // + // / \ / \ // + // / b ^ \ // + // / \ / \ // + // / v e Rite \ // + // / \ / Face \ // + // / \ / \ // + // V ------------ Org ------------ VOpposite // + // / | \ // + // / | \ // + // + // Store for latter usage (since e and e->GetRight( ) will be deleted): + TEdge* a = e->GetLnext( ); + TEdge* b = e->GetOnext( )->GetSym( ); + TOutput VLeft = e->GetDestination( ); + TOutput VRight = b->GetOrigin( ); + bool wasFacePresent = e->IsRightSet( ); + TOutput resultingPointId = TEdge::NoGeometry; + + // We should be cautious and consider the case when the very + // initial situation was the following: + // // + // * // + // * * // + // // + // VRight = VLeft // + // / \ // + // / \ // + // / \ // + // * | * | * // + // \ / // + // \ / // + // \ / // + // --------- Org --------- // + // / | \ // + // / | \ // + // / | \ // + if( VRight == VLeft ) + { + if( e->IsWire( ) && b->IsWire( ) ) + { + /* TODO + this->m_Mesh->LightWeightDeleteEdge(e); + this->m_Mesh->LightWeightDeleteEdge(b); + */ + return( resultingPointId ); + + } // fi + + } // fi + + // Delete the Edge e and it's right face: + /* TODO: + if( wasFacePresent ) + this->m_Mesh->DeleteFace( e->GetRight( ) ); + this->m_Mesh->LightWeightDeleteEdge(e); + */ + + // We should be cautious and consider the case when the very + // initial situation was the following: + // \ / // + // \ / // + // \ / // + // \ / // + // VRight = VLeft ------- VOpposite // + // / \ _/ // + // / \ _/ // + // / \ * _/ // + // | | _/ // + // \ / _/ // + // \ / _/ // + // \ /_/ // + // --------- Org --------- // + // / | \ // + // / | \ // + // / | \ // + // + // in which case the current situation is the following: + // + // \ / // + // \ / // + // \ / // + // \ / // + // VRight = VLeft ------- VOpposite // + // / _/ // + // / _/ // + // / _/ // + // | _/ // + // \ _/ // + // \ _/ // + // \ _/ // + // --------- Org --------- // + // / | \ // + // / | \ // + // / | \ // + // + // and hence the connectivity part of "Zip" job is already done. + // Check for that case: + // + if( VLeft != VRight ) + { + // We are now left with the following situation + // + // \ / // + // \ ^ // + // \ a // + // \ / // + // ----- VRight VLeft -------- // + // / \ \ // + // / \ \ // + // / b \ // + // / \ \ // + // / v \ // + // / \ \ // + // / \ \ // + // V ------------ Org ------------ VOpposite // + // / | \ // + // / | \ // + // + // where we just miss a simple Mesh::Splice( ) to obtain:: + // + // \ / // + // \ / // + // \ / // + // ---- VRight = VLeft ------ VOpposite // + // / \ / // + // / \ / // + // / b / // + // / \ / // + // / v / // + // / \ / // + // / \ / // + // V ------------ Org ------------ // + // / | \ // + // / | \ // + // + // TODO: resultingPointId = this->m_Mesh->Splice(a, b); + + } // fi + + // We restore the deleted face (when it was present): + /* TODO: + if( wasFacePresent ) + this->m_Mesh->AddFace(b); + */ + this->m_Mesh->Modified( ); + return( resultingPointId ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshZipFunction< M >:: +MeshZipFunction( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::QuadEdge::MeshZipFunction< M >:: +~MeshZipFunction( ) +{ +} + +#endif // __CPM__ALGORITHMS__QUADEDGE__MESHZIPFUNCTION__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.h b/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.h new file mode 100644 index 0000000..5fada6d --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.h @@ -0,0 +1,76 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__ +#define __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__ + +#include + +namespace cpm +{ + namespace Algorithms + { + namespace QuadEdge + { + /** + */ + template< typename I, typename O, typename C > + class SquaredEdgeLengthDecimationFilter + : public EdgeDecimationFilter< I, O, C > + { + public: + typedef SquaredEdgeLengthDecimationFilter Self; + typedef EdgeDecimationFilter< I, O, C > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef I TInputMesh; + typedef O TOutputMesh; + typedef C TCriterion; + + typedef typename Superclass::TOutPoint TOutPoint; + typedef typename Superclass::TOutPrimalEdge TOutPrimalEdge; + typedef typename Superclass::TScalar TScalar; + + public: + itkNewMacro( Self ); + itkTypeMacro( + SquaredEdgeLengthDecimationFilter, EdgeDecimationFilter + ); + + protected: + SquaredEdgeLengthDecimationFilter( ); + virtual ~SquaredEdgeLengthDecimationFilter( ); + + // keep the start of this documentation text on very first comment line, + // it prevents a Doxygen bug + /** Compute the measure value for iEdge. + * + * \param[in] iEdge + * \return measure value, here the squared edge length + */ + inline TScalar MeasureEdge(TOutPrimalEdge *iEdge); + + // keep the start of this documentation text on very first comment line, + // it prevents a Doxygen bug + /** Calculate the position of the remaining vertex from collapsing iEdge. + * + * \param[in] iEdge + * \return the optimal point location + */ + TOutPoint Relocate(TOutPrimalEdge *iEdge); + + private: + // Purposely not implemented + SquaredEdgeLengthDecimationFilter( const Self& ); + void operator=( const Self& ); + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.hxx b/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.hxx new file mode 100644 index 0000000..4b013e5 --- /dev/null +++ b/lib/cpm/Algorithms/QuadEdge/SquaredEdgeLengthDecimationFilter.hxx @@ -0,0 +1,59 @@ +#ifndef __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ +#define __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ + +// ------------------------------------------------------------------------- +template< typename I, typename O, typename C > +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +SquaredEdgeLengthDecimationFilter( ) + : Superclass( ) +{ +} + + +// ------------------------------------------------------------------------- +template< typename I, typename O, typename C > +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +~SquaredEdgeLengthDecimationFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename I, typename O, typename C > +typename +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +TScalar +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +MeasureEdge(TOutPrimalEdge *iEdge) +{ + typename O::PointIdentifier id_org = iEdge->GetOrigin(); + typename O::PointIdentifier id_dest = iEdge->GetDestination(); + + typename O::PointType org = this->GetOutput( )->GetPoint(id_org); + typename O::PointType dest = this->GetOutput( )->GetPoint(id_dest); + + return(static_cast< TScalar >( org.SquaredEuclideanDistanceTo(dest) )); +} + +// ------------------------------------------------------------------------- +template< typename I, typename O, typename C > +typename +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +TOutPoint +cpm::Algorithms::QuadEdge::SquaredEdgeLengthDecimationFilter< I, O, C >:: +Relocate(TOutPrimalEdge *iEdge) +{ + typename O::Pointer output = this->GetOutput(); + typename O::PointIdentifier id_org = iEdge->GetOrigin(); + typename O::PointIdentifier id_dest = iEdge->GetDestination(); + + typename O::PointType oPt; + + oPt.SetToMidPoint( output->GetPoint(id_org), + output->GetPoint(id_dest) ); + + return oPt; +} + +#endif // __CPM__ALGORITHMS__QUADEDGE__SQUAREDEDGELENGTHDECIMATIONFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Simplex/DeformationFilter.h b/lib/cpm/Algorithms/Simplex/DeformationFilter.h new file mode 100644 index 0000000..dd4085b --- /dev/null +++ b/lib/cpm/Algorithms/Simplex/DeformationFilter.h @@ -0,0 +1,135 @@ +#ifndef __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__H__ +#define __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__H__ + +#include +#include +#include +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace Simplex + { + /** + */ + template< class M > + class DeformationFilter + : public cpm::Algorithms::Base::InPlaceMeshFilter< M > + { + public: + typedef DeformationFilter Self; + typedef cpm::Algorithms::Base::InPlaceMeshFilter< M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M TMesh; + typedef typename M::PointIdentifier TPointId; + typedef typename M::ValueType TScalar; + + typedef cpm::Algorithms::Base::ForceFunction< M > TForceFunction; + typedef typename TForceFunction::Pointer PtrFunction; + typedef std::pair< PtrFunction, TScalar > TFunctionPair; + typedef std::vector< TFunctionPair > TFunctionContainer; + + /** + */ + class AllMeshUpdatedEvent + : public itk::EventObject + { + public: + AllMeshUpdatedEvent( ) { } + AllMeshUpdatedEvent( const AllMeshUpdatedEvent& b ) { } + virtual ~AllMeshUpdatedEvent( ) { } + itk::EventObject* MakeObject( ) const + { return( new AllMeshUpdatedEvent( ) ); } + virtual const char* GetEventName( ) const + { + return( + "cpm::Algoritms::Simplex::DeformationFilter::AllMeshUpdatedEvent" + ); + } + virtual bool CheckEvent( const itk::EventObject* e ) const + { + return( + dynamic_cast< const AllMeshUpdatedEvent* >( e ) != NULL + ); + } + private: + AllMeshUpdatedEvent& operator=( const AllMeshUpdatedEvent& b ); + }; + + /** + */ + class PointUpdatedEvent + : public itk::EventObject + { + public: + PointUpdatedEvent( ) + : PointId( TPointId( 0 ) ) + { } + PointUpdatedEvent( const TPointId& pId ) + : PointId( pId ) + { } + PointUpdatedEvent( const PointUpdatedEvent& b ) + : PointId( b.PointId ) + { } + virtual ~PointUpdatedEvent( ) { } + itk::EventObject* MakeObject( ) const + { return( new PointUpdatedEvent( ) ); } + virtual const char* GetEventName( ) const + { + return( + "cpm::Algoritms::Simplex::DeformationFilter::PointUpdatedEvent" + ); + } + virtual bool CheckEvent( const itk::EventObject* e ) const + { + return( + dynamic_cast< const PointUpdatedEvent* >( e ) != NULL + ); + } + private: + PointUpdatedEvent& operator=( const PointUpdatedEvent& b ); + public: + TPointId PointId; + }; + + public: + itkNewMacro( Self ); + itkTypeMacro( DeformationFilter, InPlaceMeshFilter ); + + itkGetConstMacro( Damping, TScalar ); + itkSetMacro( Damping, TScalar ); + + public: + void AddForce( TForceFunction* f, const TScalar& w ); + + protected: + DeformationFilter( ); + virtual ~DeformationFilter( ); + + virtual void GenerateData( ); + + private: + DeformationFilter( const Self& ); + Self& operator=( const Self& ); + + protected: + TFunctionContainer m_Forces; + TScalar m_Damping; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Simplex/DeformationFilter.hxx b/lib/cpm/Algorithms/Simplex/DeformationFilter.hxx new file mode 100644 index 0000000..d039bf6 --- /dev/null +++ b/lib/cpm/Algorithms/Simplex/DeformationFilter.hxx @@ -0,0 +1,91 @@ +#ifndef __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__HXX__ +#define __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__HXX__ + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::DeformationFilter< M >:: +AddForce( TForceFunction* f, const TScalar& w ) +{ + this->m_Forces.push_back( TFunctionPair( f, w ) ); + this->Modified( ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Simplex::DeformationFilter< M >:: +DeformationFilter( ) + : Superclass( ), + m_Damping( TScalar( 1 ) ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Simplex::DeformationFilter< M >:: +~DeformationFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::DeformationFilter< M >:: +GenerateData( ) +{ + typedef typename M::VectorType TVector; + + const M* in = this->GetInput( ); + M* out = this->GetOutput( ); + unsigned int nPoints = in->GetNumberOfPoints( ); + std::vector< TVector > final_forces[ 2 ]; + unsigned int aForces = 0; + final_forces[ 0 ].resize( nPoints, TVector( TScalar( 0 ) ) ); + final_forces[ 1 ].resize( nPoints, TVector( TScalar( 0 ) ) ); + + // Configure forces + typename TFunctionContainer::iterator fIt = this->m_Forces.begin( ); + for( ; fIt != this->m_Forces.end( ); ++fIt ) + fIt->first->SetMesh( in ); + + unsigned int leo = 0; + while( leo < 20000 ) // TODO: !!!! + { + leo++; + TScalar damping = TScalar( 1 ) - this->m_Damping; + unsigned int pForces = ( aForces + 1 ) % 2; + + // Compute forces + for( TPointId pId = 0; pId < nPoints; ++pId ) + { + if( in->FindEdge( pId )->IsOriginInternal( ) ) + { + fIt = this->m_Forces.begin( ); + TVector f = fIt->first->Evaluate( pId ) * fIt->second; + for( ++fIt; fIt != this->m_Forces.end( ); ++fIt ) + f += fIt->first->Evaluate( pId ) * fIt->second; + f += final_forces[ pForces ][ pId ] * damping; + final_forces[ aForces ][ pId ] = f; + } + else + final_forces[ aForces ][ pId ].Fill( TScalar( 0 ) ); + + } // rof + + // Move points + for( TPointId pId = 0; pId < nPoints; ++pId ) + { + typename M::PointType pnt = in->GetPoint( pId ); + pnt += final_forces[ aForces ][ pId ]; + out->SetPoint( pId, pnt ); + this->InvokeEvent( PointUpdatedEvent( pId ) ); + + } // rof + aForces = pForces; + + this->InvokeEvent( AllMeshUpdatedEvent( ) ); + + } //elihw +} + +#endif // __CPM__ALGORITHMS__SIMPLEX__DEFORMATIONFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Simplex/InternalForceFunction.h b/lib/cpm/Algorithms/Simplex/InternalForceFunction.h new file mode 100644 index 0000000..80c35fa --- /dev/null +++ b/lib/cpm/Algorithms/Simplex/InternalForceFunction.h @@ -0,0 +1,76 @@ +#ifndef __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__H__ +#define __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__H__ + +#include +#include + +namespace cpm +{ + namespace Algorithms + { + namespace Simplex + { + /** + */ + template< class M > + class InternalForceFunction + : public cpm::Algorithms::Base::ForceFunction< M > + { + public: + typedef InternalForceFunction Self; + typedef cpm::Algorithms::Base::ForceFunction< M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TPointId TPointId; + typedef typename Superclass::TVector TVector; + typedef typename TVector::ValueType TScalar; + + enum PhiConstraint { C0 = 0, C1, C2, C3 }; + + public: + itkNewMacro( Self ); + itkTypeMacro( InternalForceFunction, ForceFunction ); + + public: + virtual TVector Evaluate( const TPointId& pId ) const; + + virtual void SetMesh( const M* m ); + void SetPhiConstraintToC0( ); + void SetPhiConstraintToC1( ); + void SetPhiConstraintToC2( const unsigned int& neigh_order = 1 ); + void SetPhiConstraintToC3( ); + + protected: + InternalForceFunction( ); + virtual ~InternalForceFunction( ); + + TScalar _ComputeMeanPhi( const TPointId& pId ) const; + + static TScalar _L( + const TScalar& delta, const TScalar& d, const TScalar& phi + ); + + private: + // Purposely not implemented + InternalForceFunction( const Self& ); + Self& operator=( const Self& ); + + protected: + PhiConstraint m_PhiConstraint; + unsigned int m_NeighborhoodOrder; + std::vector< TScalar > m_InitialPhiAngles; + }; + + } // ecapseman + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/Algorithms/Simplex/InternalForceFunction.hxx b/lib/cpm/Algorithms/Simplex/InternalForceFunction.hxx new file mode 100644 index 0000000..6c0cf83 --- /dev/null +++ b/lib/cpm/Algorithms/Simplex/InternalForceFunction.hxx @@ -0,0 +1,199 @@ +#ifndef __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__HXX__ +#define __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__HXX__ + +#include +#include + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::Algorithms::Simplex::InternalForceFunction< M >:: +TVector cpm::Algorithms::Simplex::InternalForceFunction< M >:: +Evaluate( const TPointId& pId ) const +{ + typedef typename M::BarycenterVector TBarycenter; + + static const TScalar _1_3 = TScalar( 1 ) / TScalar( 3 ); + + TVector f( TScalar( 0 ) ); + if( this->m_Mesh.IsNotNull( ) ) + { + if( pId < this->m_Mesh->GetNumberOfPoints( ) ) + { + TVector A, B, C, N; + TBarycenter b; + TScalar r, d, dp, phi; + if( + this->m_Mesh-> + ComputeSimplexParameters( pId, A, B, C, N, b, r, d, dp, phi ) + ) + { + // Parallel force + f = A * ( _1_3 - b[ 0 ] ); + f += B * ( _1_3 - b[ 1 ] ); + f += C * ( _1_3 - b[ 2 ] ); + + // Desired phi + TScalar dphi; + switch( this->m_PhiConstraint ) + { + case Self::C1: + dphi = TScalar( 0 ); + break; + case Self::C2: + dphi = this->_ComputeMeanPhi( pId ); + break; + case Self::C3: + dphi = this->m_InitialPhiAngles[ pId ]; + break; + case Self::C0: + default: + dphi = phi; + break; + } // hctiws + + // Regularizing force + f += N * ( Self::_L( r, dp, dphi ) - Self::_L( r, d, phi ) ); + + } // fi + + } // fi + + } // fi + return( f ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::InternalForceFunction< M >:: +SetMesh( const M* m ) +{ + typedef typename M::BarycenterVector TBarycenter; + + if( this->m_Mesh != m && m != NULL ) + { + this->m_InitialPhiAngles.clear( ); + for( TPointId i = 0; i < m->GetNumberOfPoints( ); ++i ) + { + TVector A, B, C, N; + TBarycenter e; + TScalar a, b, c, phi = TScalar( 0 ); + m->ComputeSimplexParameters( i, A, B, C, N, e, a, b, c, phi ); + this->m_InitialPhiAngles.push_back( phi ); + + } // rof + + } // fi + this->Superclass::SetMesh( m ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::InternalForceFunction< M >:: +SetPhiConstraintToC0( ) +{ + if( this->m_PhiConstraint != Self::C0 ) + { + this->m_PhiConstraint = Self::C0; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::InternalForceFunction< M >:: +SetPhiConstraintToC1( ) +{ + if( this->m_PhiConstraint != Self::C1 ) + { + this->m_PhiConstraint = Self::C1; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::InternalForceFunction< M >:: +SetPhiConstraintToC2( const unsigned int& neigh_order ) +{ + if( this->m_PhiConstraint != Self::C2 ) + { + this->m_PhiConstraint = Self::C2; + this->m_NeighborhoodOrder = neigh_order; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::Algorithms::Simplex::InternalForceFunction< M >:: +SetPhiConstraintToC3( ) +{ + if( this->m_PhiConstraint != Self::C3 ) + { + this->m_PhiConstraint = Self::C3; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Simplex::InternalForceFunction< M >:: +InternalForceFunction( ) + : Superclass( ), + m_PhiConstraint( Self::C0 ), + m_NeighborhoodOrder( 1 ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::Algorithms::Simplex::InternalForceFunction< M >:: +~InternalForceFunction( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::Algorithms::Simplex::InternalForceFunction< M >:: +TScalar cpm::Algorithms::Simplex::InternalForceFunction< M >:: +_ComputeMeanPhi( const TPointId& pId ) const +{ + // TODO: use this->m_NeighborhoodOrder + return( TScalar( 0 ) ); +} + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::Algorithms::Simplex::InternalForceFunction< M >:: +TScalar cpm::Algorithms::Simplex::InternalForceFunction< M >:: +_L( const TScalar& delta, const TScalar& d, const TScalar& phi ) +{ + static const double _pi2 = double( vnl_math::pi ) / double( 2 ); + + TScalar eps = TScalar( 1 ); + if( _pi2 < std::fabs( double( phi ) ) ) + eps = TScalar( -1 ); + + TScalar sphi = TScalar( std::sin( double( phi ) ) ); + TScalar cphi = TScalar( std::fabs( std::cos( double( phi ) ) ) ); + + TScalar den = delta * cphi; + TScalar s = ( delta + ( d * sphi ) ) * ( delta - ( d * sphi ) ); + if( s < TScalar( 0 ) ) + return( TScalar( 0 ) ); + + den += eps * TScalar( std::sqrt( double( s ) ) ); + if( !( TScalar( 0 ) < den ) ) + return( TScalar( 0 ) ); + + TScalar num = eps * ( delta + d ) * ( delta - d ) * sphi; + return( num / den ); +} + +#endif // __CPM__ALGORITHMS__SIMPLEX__INTERNALFORCEFUNCTION__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/CMakeLists.txt b/lib/cpm/CMakeLists.txt new file mode 100644 index 0000000..12f5311 --- /dev/null +++ b/lib/cpm/CMakeLists.txt @@ -0,0 +1,61 @@ +## =============== +## = Source code = +## =============== + +FILE(GLOB cpm_HEADERS "*.h") +FILE(GLOB cpm_TEMPLATES "*.hxx") +FILE(GLOB cpm_SOURCES "*.cxx") + +FILE(GLOB cpm_DataStructures_HEADERS "DataStructures/*.h") +FILE(GLOB cpm_DataStructures_TEMPLATES "DataStructures/*.hxx") +FILE(GLOB cpm_DataStructures_SOURCES "DataStructures/*.cxx") + +FILE(GLOB cpm_Algorithms_Base_HEADERS "Algorithms/Base/*.h") +FILE(GLOB cpm_Algorithms_Base_TEMPLATES "Algorithms/Base/*.hxx") +FILE(GLOB cpm_Algorithms_Base_SOURCES "Algorithms/Base/*.cxx") + +FILE(GLOB cpm_Algorithms_QuadEdge_HEADERS "Algorithms/QuadEdge/*.h") +FILE(GLOB cpm_Algorithms_QuadEdge_TEMPLATES "Algorithms/QuadEdge/*.hxx") +FILE(GLOB cpm_Algorithms_QuadEdge_SOURCES "Algorithms/QuadEdge/*.cxx") + +FILE(GLOB cpm_Algorithms_Simplex_HEADERS "Algorithms/Simplex/*.h") +FILE(GLOB cpm_Algorithms_Simplex_TEMPLATES "Algorithms/Simplex/*.hxx") +FILE(GLOB cpm_Algorithms_Simplex_SOURCES "Algorithms/Simplex/*.cxx") + +FILE(GLOB cpm_IO_HEADERS "IO/*.h") +FILE(GLOB cpm_IO_TEMPLATES "IO/*.hxx") +FILE(GLOB cpm_IO_SOURCES "IO/*.cxx") + +FILE(GLOB cpm_VTK_HEADERS "VTK/*.h") +FILE(GLOB cpm_VTK_TEMPLATES "VTK/*.hxx") +FILE(GLOB cpm_VTK_SOURCES "VTK/*.cxx") + +## ===================== +## = Compilation rules = +## ===================== + +ADD_LIBRARY( + cpm + ${cpm_LIBRARY_TYPE} + ${cpm_SOURCES} + ${cpm_DataStructures_SOURCES} + ${cpm_Algorithms_Base_SOURCES} + ${cpm_Algorithms_QuadEdge_SOURCES} + ${cpm_Algorithms_Simplex_SOURCES} + ${cpm_IO_SOURCES} + ${cpm_VTK_SOURCES} + ) +GENERATE_EXPORT_HEADER( + cpm + BASE_NAME cpm + EXPORT_MACRO_NAME cpm_EXPORT + EXPORT_FILE_NAME cpm_Export.h + STATIC_DEFINE cpm_BUILT_AS_STATIC + ) +TARGET_LINK_LIBRARIES( + cpm + ${ITK_LIBRARIES} + ${VTK_LIBRARIES} + ) + +## eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdge.h b/lib/cpm/DataStructures/QuadEdge.h new file mode 100644 index 0000000..f383d5e --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdge.h @@ -0,0 +1,465 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGE__H__ +#define __CPM__DATASTRUCTURES__QUADEDGE__H__ + +#include +#include + +namespace cpm +{ + namespace DataStructures + { + /** + */ + template< typename P, typename D, bool IsPrimal = true > + class QuadEdge + : public itk::LightObject + { + public: + typedef QuadEdge Self; + typedef itk::LightObject Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + /// Vertices and faces types + typedef P TPrimalGeometry; + typedef D TDualGeometry; + + /** + * Dual type, basically the same type with swapped template + * parameters. + */ + typedef QuadEdge< D, P, !IsPrimal > TDual; + typedef Self TPrimal; + typedef typename TDual::Pointer PtrDual; + friend TDual; + + /// Iterators + typedef QuadEdgeIterator< TPrimal > Iterator; + typedef QuadEdgeConstIterator< TPrimal > ConstIterator; + typedef QuadEdgePointIterator< TPrimal > PointIterator; + typedef QuadEdgePointConstIterator< TPrimal > PointConstIterator; + + public: + itkNewMacro( Self ); + itkTypeMacro( QuadEdge, itkLightObject ); + + cpmDataStructuresQEAllIteratorsMacro( Onext ); + cpmDataStructuresQEAllIteratorsMacro( Lnext ); + cpmDataStructuresQEAllIteratorsMacro( Rnext ); + cpmDataStructuresQEAllIteratorsMacro( Dnext ); + cpmDataStructuresQEAllIteratorsMacro( Oprev ); + cpmDataStructuresQEAllIteratorsMacro( Lprev ); + cpmDataStructuresQEAllIteratorsMacro( Rprev ); + cpmDataStructuresQEAllIteratorsMacro( Dprev ); + + public: + void CreateRings( ); + + /// First order access methods + inline TPrimal* GetOnext( ) + { return( this->m_Onext ); } + inline TDual* GetRot( ) + { return( this->m_Rot ); } + inline const TPrimal* GetOnext( ) const + { return( this->m_Onext ); } + inline const TDual* GetRot( ) const + { return( this->m_Rot ); } + + /// First order configuration methods + inline void SetOnext( TPrimal* e ) + { this->m_Onext = e; } + inline void SetRot( TDual* e ) + { this->m_Rot = e; } + + /// Second order accessors: around base rings + inline TPrimal* GetSym( ) + { return( this->m_Rot->m_Rot ); } + inline TDual* GetInvRot( ) + { return( this->m_Rot->m_Rot->m_Rot ); } + + /// Second order accessors: neighboring topology + inline TPrimal* GetLnext( ) + { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot ); } + inline TPrimal* GetRnext( ) + { return( this->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); } + inline TPrimal* GetDnext( ) + { return( this->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot ); } + inline TPrimal* GetOprev( ) + { return( this->m_Rot->m_Onext->m_Rot ); } + inline TPrimal* GetLprev( ) + { return( this->m_Onext->m_Rot->m_Rot ); } + inline TPrimal* GetRprev( ) + { return( this->m_Rot->m_Rot->m_Onext ); } + inline TPrimal* GetDprev( ) + { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); } + + /// Second order accessors: around base rings (const versions) + inline const TPrimal* GetSym( ) const + { return( this->m_Rot->m_Rot ); } + inline const TDual* GetInvRot( ) const + { return( this->m_Rot->m_Rot->m_Rot ); } + + /// Second order accessors: neighboring topology (const versions) + inline const TPrimal* GetLnext( ) const + { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot ); } + inline const TPrimal* GetRnext( ) const + { return( this->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); } + inline const TPrimal* GetDnext( ) const + { return( this->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot ); } + inline const TPrimal* GetOprev( ) const + { return( this->m_Rot->m_Onext->m_Rot ); } + inline const TPrimal* GetLprev( ) const + { return( this->m_Onext->m_Rot->m_Rot ); } + inline const TPrimal* GetRprev( ) const + { return( this->m_Rot->m_Rot->m_Onext ); } + inline const TPrimal* GetDprev( ) const + { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); } + + /// Get geometry methods + inline P& GetOrigin( ) + { return ( this->m_Origin ); } + inline P& GetDestination( ) + { return ( this->m_Rot->m_Rot->m_Origin ); } + inline D& GetRight( ) + { return ( this->m_Rot->m_Origin ); } + inline D& GetLeft( ) + { return ( this->m_Rot->m_Rot->m_Rot->m_Origin ); } + + /// Get geometry methods (const versions) + inline const P& GetOrigin( ) const + { return ( this->m_Origin ); } + inline const P& GetDestination( ) const + { return ( this->m_Rot->m_Rot->m_Origin ); } + inline const D& GetRight( ) const + { return ( this->m_Rot->m_Origin ); } + inline const D& GetLeft( ) const + { return ( this->m_Rot->m_Rot->m_Rot->m_Origin ); } + + /// Set geometry methods + inline void SetOrigin( const P& v ) + { this->m_Origin = v; } + inline void SetDestination( const P& v ) + { this->m_Rot->m_Rot->m_Origin = v; } + inline void SetRight( const D& v ) + { this->m_Rot->m_Origin = v; } + inline void SetLeft( const D& v ) + { this->m_Rot->m_Rot->m_Rot->m_Origin = v; } + inline void UnsetOrigin( ) + { this->m_Origin = TPrimal::NoGeometry; } + inline void UnsetDestination( ) + { this->m_Rot->m_Rot->m_Origin = TPrimal::NoGeometry; } + inline void UnsetRight( ) + { this->m_Rot->m_Origin = TDual::NoGeometry; } + inline void UnsetLeft( ) + { this->m_Rot->m_Rot->m_Rot->m_Origin = TDual::NoGeometry; } + + /** + * Set the Left( ) of all the edges in the Lnext( ) ring of "this" + * with the same given geometrical information. + * @param faceGeom Looks at most maxSize edges in the Lnext( ) ring. + * @return Returns true on success. False otherwise. + */ + void SetLnextRingGeometry( const D& v ); + void UnsetLnextRingGeometry( ); + + /// Topological queries + inline bool IsIsolated( ) const + { return( this == this->m_Onext ); } + bool IsEdgeInOnextRing( const TPrimal* e ) const; + bool IsEdgeInLnextRing( const TPrimal* e ) const; + unsigned int GetOnextRingSize( ) const; + unsigned int GetLnextRingSize( ) const; + + /** + * @return Returns true when "this" has no faces set on both sides. + * Return false otherwise. + */ + inline bool IsWire( ) + { return( !( this->IsLeftSet( ) ) && !( this->IsRightSet( ) ) ); } + + /** + * @return Returns true when "this" is on the boundary i.e. + * one and only one of the faces is set. Return false + * otherwise. + */ + inline bool IsAtBorder( ) const; + + /** + * @return Returns true when "this" has faces set on both sides. + * Return false otherwise. + */ + inline bool IsInternal( ) const + { return ( this->IsLeftSet( ) && this->IsRightSet( ) ); } + + /// Geometrical queries + inline bool IsOriginSet( ) const + { return ( this->m_Origin != Self::NoGeometry ); } + inline bool IsDestinationSet( ) const + { return ( this->m_Rot->m_Rot->IsOriginSet( ) ); } + inline bool IsRightSet( ) const + { return ( this->m_Rot->IsOriginSet( ) ); } + inline bool IsLeftSet( ) const + { return ( this->m_Rot->m_Rot->m_Rot->IsOriginSet( ) ); } + + /** + * \brief Check wether edge's Origin is internal to the mesh (as + * opposed to being on the boundary) by looking if all the edges + * in the Onext() ring have a face set on both their Left() and + * Right() side. + */ + bool IsOriginInternal( ) const; + + /** + * Definition: an edge is said to be a boundary edge when it is + * adjacent to i.e. when at least one of the faces edge->GetLeft() or + * edge->GetRight() is unset. Definition: an point is said to be a + * boundary point when at least one of the edges of it's Onext() ring + * is a boundary edge. + * + * Assume "this" edge belongs to a triangulation (i.e. it belongs to a + * QEMesh which represents a 2-manifold) which possesses a boundary. + * Assume "this" edge instance is a boundary edge. Let us denote by P + * the point which is the origin of "this" edge i.e. P is + * this->Origin(). By definition P is a boundary point. Then AT + * LEAST two [see the note below] edges of the Onext() ring of P + * [which all have the point P as Origin()] are themselves boundary + * edges. And among those boundary edges AT LEAST one has it's Left() + * face unset. By iterating over the Onext() ring (which defines a + * local ordering on edges) this method searches for the first edge + * whose Left() face is unset AND which is encountered AFTER edgeTest. + * + * @param edgeTest When present, this edge will be considered as + * the entry edge in the Onext() ring. When absent it shall + * be defaulted to "this" edge. (see the warning below). + * @return When "this" edge is a boundary edge, return the first + * edge in "this" Onext() ring whose Left() face is unset + * AND located after edgeTest. + * When "this" edge is NOT a boundary edge the 0 is + * returned. + * @warning When the Mesh possessing "this" edge is a 2-manifold + * then result of this method is unique in the sense that + * it is independent from the edgeTest parameter. + * But when the Mesh is not 2-manifold (this state can + * happen at intermediary stages of the building process, + * or during "surgical" operations on the Mesh, and + * even though the Mesh represents a triangulation) + * the result of this method is not unique in the sense + * that the result depends on the edgeTest parameter. + * Let us illusatre this dependence by considering a + * Mesh (which is a triangulation) which is not a 2-manifold. + * Assume the point P (the origin of "this" edge i.e. + * P = this->Originv()) is TWICE on the border i.e. it + * is adjacent twice to noface. We can consider the situation + * of the following diagram, which depicts some Onext() + * ring around point P: + * + * \ / // + * \ * / // + * i3 b2 counter-clockwise // + * * \ / NO FACE Onext() order. // + * \ / // + * ----b4-----P----b1------ // + * /|\ // + * NO FACE / | \ // + * / | \ * <------ a * indicates the // + * / | \ the presence of a face // + * / | \ // + * b5 i6 i7 // + * / * | * \ // + * / | \ // + * + * On this example, and if we assume the Onext() oder is + * represented counter-clockwise, the edges are ordered as + * follows: + * b1, b2, i3, b4, b5, i6, i7 + * (when arbitrarily starting at edge b1). + * We have four Boundary edges labeled b1, b2, b4, b5 and + * we have three internal edges (i.e. non boundary edges) + * labeled i3, i6 and i7. + * Depending on edgeTest, the result of this method + * will NOT return the same edge: + * - when edgeTest == b5 (or i6 or i7 or b1) then the edge + * b1 will be returned, + * - when edgeTest == b2 (or i3 or b4) then the edge + * b4 will be returned, + * Eventually, when edgeTest is absent, the result shall + * depend on the position of "this" in the Onext() ring(). + * + */ + TPrimal* GetNextBorderEdgeWithUnsetLeft( TPrimal* edge = NULL ) const; + + /** + * Assume "this->Originv()" is a boundary point P that is thrice adjacent + * to noface and consider the given situation is the one depicted by + * the following diagram where: + * - P is "this->Originv()" instance, + * - the * (star) indicates the presence of a face, + * - b1, b2, b3, b4, b5, b6 denote boundary edges, + * - p denotes some generic point, + * - A and B denote some specific points we want to discuss, + * - the Onext() ring order is represented counter-clockwise + * [which is coherent with the definition of edge->GetRigth()] + * i.e. the ordering of the edges is: + * b1, b2, b3, b4, b5, b6, b1... + * + * p N p + * / \ O / \ // + * / \ / \ // + * / \ F / \ counter-clockwise // + * / b3 A b2 \ Onext() ring order // + * / \ C / \ // + * / * \ E / * \ // + * / \ / \ // + * A------b4------P------b1-------B // + * / \ // + * / \ // + * NO FACE / \ NO FACE // + * / \ // + * b5 b6 // + * / * \ // + * / \ // + * p---------------p // + * + * At P this Mesh doesn't represent a 2-manifold (since we are thrice + * on the boundary). Nevertheless such a situation could arise in + * intermediary stages (e.g. when building the Mesh, or during + * surgical changes on the Mesh). + * Now, assume we are asked to build the triangle [P, A, B]. Note + * that this request is not absurd since the current situation at + * P isn't the one of a 2-manifold: hence when building the current + * Onext() ring of P, we had not enough information to decide + * wheter b4.Onext() should be b5 or b1. It is ONLY when we are + * required to build the triangle [P, A, B] that we have the + * additional information that b4.Onext() is indeed b1. + * When we are required to build triangle [P, A, B], we hence + * need to change the Onext() ring order at P, i.e. we need to deal + * with the triangle [P, b5, b6] which currently prevents + * b4.Onext() to be b1. In other terms, when considering the + * additional information that b4.Onext() is b1, and before + * building the triangle [P, A, B], we need to reorder + * the Onext() ring of P from it's current state + * b1, b2, b3, b4, b5, b6, b1... + * to an order coherent with the [P, A, B] request, i.e. + * b1, b2, b5, b6, b3, b4, b1... + * + * In order to establish the "proper" Onext() ring at P we use + * two Splice operations. The algorithm goes: + * - first disconnect the piece of the surface containing the edge + * [PB] (it would be the same process if we chose [PA]) from + * the Onext() ring at P. + * - second, re-integrate the disconnected piece at the desired + * location i.e. side by side with [PA] (respectively [PB] if + * we chose [PA] at first stage). + * By "piece of surface containing the edge [PB]" we mean [all] + * the triangle[s] starting at [PB] in the Onext() order and + * having a left face set. + * + * We can illustrate this process on bit more general diagram than + * the last case (where the "piece of surface containing the edge + * [PB]" is constituted by two triangles) and when using + * the arguments of this method (i.e. [PA] = this and [PB] = second). + * The initial stage is the following (we note first=this=[PA] and + * second=[PB]) where the Onext() ring order is: + * first, b2, b3, second, b5, bsplice, b7, first... + * + * p N A // + * / \ O / \ // + * / \ / \ // + * / \ F / \ counter-clockwise // + * / b2 A first \ Onext() ring order // + * / \ C / \ // + * / * \ E / * \ // + * / \ / \ // + * p-------b3------P------b7-------p // + * /|\ // + * / | \ // + * NO FACE / | \ NO FACE // + * / | \ // + * second b5 bsplice // + * / * | * \ // + * / | \ // + * B-------p-------p // + * + * The first stage, implemented as + * second->Oprev()->Splice( bsplice ), + * yields the following diagram: + * + * p N A // + * / \ O / \ // + * / \ F / \ // + * / \ A / \ counter-clockwise // + * / b2 C first \ Onext() ring order // + * / \ E / \ // + * / * \ / * \ // + * / \ / \ // + * p-------b3------P------b7-------p // + * // + * NO FACE // + * // + * /|\ // + * / | \ // + * / | \ // + * / | \ // + * second b5 bsplice // + * / * | * \ // + * / | \ // + * B-------p-------p // + * + * and the second stage, implemented as + * first->Splice( bsplice ), + * yields the following diagram: + * + * A // + * B__ NO FACE / \ // + * | \__ / \ // + * | \__ / \ counter- // + * | second first \ clockwise for all // + * | \__ / \ // + * | * \__ / * \ // + * | \ / \ // + * p-------b5---------P------b7-------p // + * | __/|\ // + * | * __/ | \ // + * | / | \ NO FACE // + * | bsplice | \ // + * | __/ b2 b3 // + * p__/ | * \ // + * NO FACE | \ // + * p-------p // + * + */ + inline static bool ReorderOnextRing( TPrimal* first, TPrimal* second ); + + /** + * \brief Basic quad-edge topological method. + * + * This method describes all possible topological operations on an + * edge since it is its own inverse. It works in two ways: + * + * 1. If this->m_Org != b->m_Org, it slice a face in two. + * 2. If this->m_Org == b->m_Org, it unifies two faces. + */ + inline static void Splice( TPrimal* a, TPrimal* b ); + + protected: + QuadEdge( ); + virtual ~QuadEdge( ); + + public: + static const TPrimalGeometry NoGeometry; + + protected: + Pointer m_Onext; /**< Onext ring */ + PtrDual m_Rot; /**< Rot ring */ + TPrimalGeometry m_Origin; /**< Geometry attached to edge's origin */ + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__DATASTRUCTURES__QUADEDGE__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdge.hxx b/lib/cpm/DataStructures/QuadEdge.hxx new file mode 100644 index 0000000..2efa61a --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdge.hxx @@ -0,0 +1,238 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGE__HXX__ +#define __CPM__DATASTRUCTURES__QUADEDGE__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +const typename cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +TPrimalGeometry cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +NoGeometry = std::numeric_limits< P >::max( ); + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +void cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +CreateRings( ) +{ + TPrimal* e = this; + PtrDual r = TDual::New( ); + Pointer s = Self::New( ); + PtrDual i = TDual::New( ); + + // Create Rot ring + e->m_Rot = r; + r->m_Rot = s; + s->m_Rot = i; + i->m_Rot = e; + + // Update Onext rings + r->m_Onext = i; + i->m_Onext = r; +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +void cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +SetLnextRingGeometry( const D& v ) +{ + for( Iterator i = this->BeginLnext( ); i != this->EndLnext( ); ++i ) + ( *i )->SetLeft( v ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +void cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +UnsetLnextRingGeometry( ) +{ + this->SetLnextRingGeometry( TDual::NoGeometry ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +bool cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +IsEdgeInOnextRing( const TPrimal* e ) const +{ + bool found = false; + for( + ConstIterator i = this->BeginOnext( ); + i != this->EndOnext( ) && !found; + ++i + ) + found |= ( *i == e ); + return( found ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +bool cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +IsEdgeInLnextRing( const TPrimal* e ) const +{ + bool found = false; + for( + ConstIterator i = this->BeginLnext( ); + i != this->EndLnext( ) && !found; + ++i + ) + found |= ( *i == e ); + return( found ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +unsigned int cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +GetOnextRingSize( ) const +{ + unsigned int count = 0; + for( + ConstIterator i = this->BeginOnext( ); + i != this->EndOnext( ); + ++i + ) + count++; + return( count ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +unsigned int cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +GetLnextRingSize( ) const +{ + unsigned int count = 0; + for( + ConstIterator i = this->BeginLnext( ); + i != this->EndLnext( ); + ++i + ) + count++; + return( count ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +bool cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +IsAtBorder( ) const +{ + return( + ( this->IsLeftSet( ) && !( this->IsRightSet( ) ) ) || + ( !( this->IsLeftSet( ) ) && this->IsRightSet( ) ) + ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +bool cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +IsOriginInternal( ) const +{ + bool internal = true; + for( + ConstIterator i = this->BeginOnext( ); + i != this->EndOnext( ) && internal; + ++i + ) + internal &= ( *i )->IsInternal( ); + return( internal ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +typename cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +TPrimal* cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +GetNextBorderEdgeWithUnsetLeft( TPrimal* edge ) const +{ + // Be sure the Onext ring isn't already full + if( this->IsOriginInternal( ) ) + return( NULL ); + + // Update reference + edge = ( edge == NULL )? const_cast< TPrimal* >( this ): edge; + + // On efficiency purposes + if( edge->IsIsolated( ) ) + return( edge ); + + // Ok, no more special cases + const TPrimal* cedge = const_cast< const TPrimal* >( edge ); + ConstIterator it = cedge->BeginOnext( ); + TPrimal* found = NULL; + for( ; it != cedge->EndOnext( ) && found == NULL; ++it ) + if( !( ( *it )->IsLeftSet( ) ) ) + found = const_cast< TPrimal* >( *it ); + return( found ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +bool cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +ReorderOnextRing( TPrimal* first, TPrimal* second ) +{ + // Making sure point adjacency is correct: + if( first->GetOrigin( ) != second->GetOrigin( ) ) + return( false ); + + if( first->GetOnext( ) == second ) + return( true ); + + if( first->IsLeftSet( ) ) + return( false ); + + // Second is an internal edge. + if( second->IsInternal( ) ) + return( false ); + + // Disconnect the triangles containing second: + TPrimal* bsplice; + if( second->IsLeftSet( ) ) + bsplice = second->GetNextBorderEdgeWithUnsetLeft( ); + else + bsplice = second; + TPrimal::Splice( second->GetOprev( ), bsplice ); + + // Reconnect second after first: + TPrimal::Splice( first, bsplice ); + return( true ); +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +void cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +Splice( TPrimal* a, TPrimal* b ) +{ + // Don't waste time splicing the same edge (or non-existent) + // remember: it is its own inverse! + if( a != b || a == NULL || b == NULL ) + { + TPrimal* aNext = a->m_Onext; + TPrimal* bNext = b->m_Onext; + TDual* al = aNext->m_Rot; + TDual* be = bNext->m_Rot; + TDual* alNext = al->m_Onext; + TDual* beNext = be->m_Onext; + + a->SetOnext( bNext ); + b->SetOnext( aNext ); + al->SetOnext( beNext ); + be->SetOnext( alNext ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +QuadEdge( ) + : m_Origin( Self::NoGeometry ) +{ + this->m_Onext = this; + this->m_Rot = NULL; +} + +// ------------------------------------------------------------------------- +template< typename P, typename D, bool IsPrimal > +cpm::DataStructures::QuadEdge< P, D, IsPrimal >:: +~QuadEdge( ) +{ +} + +#endif // __CPM__DATASTRUCTURES__QUADEDGE__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeCell.h b/lib/cpm/DataStructures/QuadEdgeCell.h new file mode 100644 index 0000000..f863d5a --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeCell.h @@ -0,0 +1,124 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGECELL__H__ +#define __CPM__DATASTRUCTURES__QUADEDGECELL__H__ + +#include + +namespace cpm +{ + namespace DataStructures + { + /** + */ + template< class I, class E > + class QuadEdgeCell + : public I + { + public: + // Base types + typedef QuadEdgeCell Self; + typedef I Superclass; + typedef itk::AutoPointer< Self > SelfAutoPointer; + typedef itk::AutoPointer< const Self > ConstSelfAutoPointer; + typedef Self* RawPointer; + typedef const Self* ConstRawPointer; + + // QuadEdge objects + typedef E TPrimalEdge; + typedef typename E::TDual TDualEdge; + + // Inherited types + typedef typename I::PixelType PixelType; + typedef typename I::CellType CellType; + typedef typename I::CellAutoPointer CellAutoPointer; + typedef typename I::CellConstAutoPointer CellConstAutoPointer; + typedef typename I::CellRawPointer CellRawPointer; + typedef typename I::CellConstRawPointer CellConstRawPointer; + typedef typename I::CellTraits CellTraits; + typedef typename I::CoordRepType CoordRepType; + typedef typename I::InterpolationWeightType InterpolationWeightType; + typedef typename I::PointIdentifier PointIdentifier; + typedef typename I::PointIdIterator PointIdIterator; + typedef typename I::PointIdConstIterator PointIdConstIterator; + typedef typename I::CellIdentifier CellIdentifier; + typedef typename I::CellFeatureIdentifier CellFeatureIdentifier; + typedef typename I::CellFeatureIdentifier CellFeatureCount; + typedef typename I::PointType PointType; + typedef typename I::VectorType VectorType; + typedef typename I::PointsContainer PointsContainer; + typedef typename I::UsingCellsContainer UsingCellsContainer; + typedef typename I::CellGeometry CellGeometry; + typedef typename I::ParametricCoordArrayType ParametricCoordArrayType; + typedef typename I::ShapeFunctionsArrayType ShapeFunctionsArrayType; + + itkStaticConstMacro( PointDimension, unsigned int, I::PointDimension ); + itkStaticConstMacro( CellDimension, unsigned int, 2 ); + + public: + itkTypeMacro( QuadEdgeCell, I ); + + public: + QuadEdgeCell( ); + QuadEdgeCell( E* entry ); + virtual ~QuadEdgeCell( ); + + /// Implement the standard CellInterface. + virtual CellGeometry GetType( ) const; + virtual void MakeCopy( CellAutoPointer& other ) const; + virtual unsigned int GetDimension( ) const; + virtual unsigned int GetNumberOfPoints( ) const; + virtual CellFeatureCount GetNumberOfBoundaryFeatures( + int dimension + ) const; + virtual bool GetBoundaryFeature( + int dimension, CellFeatureIdentifier fId, CellAutoPointer& ptr + ); + virtual void SetPointIds( PointIdConstIterator first ); + virtual void SetPointIds( + PointIdConstIterator first, PointIdConstIterator last + ); + virtual void AddPointId( PointIdentifier pId ); + virtual void RemovePointId( PointIdentifier pId ); + virtual void SetPointIds( + int dummy, int num, PointIdConstIterator first + ); + virtual void BuildEdges( ); + virtual void ClearPoints( ); + virtual void SetPointId( int localId, PointIdentifier pId ); + + // Visitor methods + static int GetTopologyId( ); + virtual void Accept( + CellIdentifier cellid, + typename itk::CellInterface< PixelType, CellTraits >:: + MultiVisitor* mv + ); + + // Iterators + virtual PointIdIterator PointIdsBegin( ); + virtual PointIdConstIterator PointIdsBegin( ) const; + virtual PointIdIterator PointIdsEnd( ); + virtual PointIdConstIterator PointIdsEnd( ) const; + + /// QuadEdgeCell-specific interface. + virtual E* GetEntryPrimalEdge( ); + virtual const E* GetEntryPrimalEdge( ) const; + virtual void SetEntryPrimalEdge( E* entry ); + + private: + /// Purposely not implemented. + QuadEdgeCell( const Self& ); + Self& operator=( const Self& ); + + protected: + E* m_EntryEdge; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__DATASTRUCTURES__QUADEDGECELL__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeCell.hxx b/lib/cpm/DataStructures/QuadEdgeCell.hxx new file mode 100644 index 0000000..de919ec --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeCell.hxx @@ -0,0 +1,256 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGECELL__HXX__ +#define __CPM__DATASTRUCTURES__QUADEDGECELL__HXX__ + +// ------------------------------------------------------------------------- +template< class I, class E > +cpm::DataStructures::QuadEdgeCell< I, E >:: +QuadEdgeCell( ) + : Superclass( ), + m_EntryEdge( NULL ) +{ +} + +// ------------------------------------------------------------------------- +template< class I, class E > +cpm::DataStructures::QuadEdgeCell< I, E >:: +QuadEdgeCell( E* entry ) + : Superclass( ), + m_EntryEdge( entry ) +{ + this->SetEntryPrimalEdge( entry ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +cpm::DataStructures::QuadEdgeCell< I, E >:: +~QuadEdgeCell( ) +{ +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +CellGeometry cpm::DataStructures::QuadEdgeCell< I, E >:: +GetType( ) const +{ + std::cout << "QuadEdgeCell GetType" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +MakeCopy( CellAutoPointer& other ) const +{ + std::cout << "QuadEdgeCell MakeCopy" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +unsigned int cpm::DataStructures::QuadEdgeCell< I, E >:: +GetDimension( ) const +{ + std::cout << "QuadEdgeCell GetDimension" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +unsigned int cpm::DataStructures::QuadEdgeCell< I, E >:: +GetNumberOfPoints( ) const +{ + return( this->m_EntryEdge->GetLnextRingSize( ) ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +CellFeatureCount cpm::DataStructures::QuadEdgeCell< I, E >:: +GetNumberOfBoundaryFeatures( int dimension ) const +{ + std::cout << "QuadEdgeCell GetNumberOfBoundaryFeatures" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +bool cpm::DataStructures::QuadEdgeCell< I, E >:: +GetBoundaryFeature( + int dimension, + CellFeatureIdentifier fId, + CellAutoPointer& ptr + ) +{ + std::cout << "QuadEdgeCell GetBoundaryFeature" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +SetPointIds( PointIdConstIterator first ) +{ + std::cout << "QuadEdgeCell SetPointIds" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +SetPointIds( + PointIdConstIterator first, + PointIdConstIterator last + ) +{ + std::cout << "QuadEdgeCell SetPointIds(first,last)" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +AddPointId( PointIdentifier pId ) +{ + std::cout << "QuadEdgeCell AddPointId" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +RemovePointId( PointIdentifier pId ) +{ + std::cout << "QuadEdgeCell RemovePointId" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +SetPointIds( + int dummy, + int num, + PointIdConstIterator first + ) +{ + std::cout << "QuadEdgeCell SetPointIds(dummy,num,first)" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +BuildEdges( ) +{ + std::cout << "QuadEdgeCell BuildEdges" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +ClearPoints( ) +{ + std::cout << "QuadEdgeCell ClearPoints" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +SetPointId( int localId, PointIdentifier pId ) +{ + std::cout << "QuadEdgeCell SetPointId(localId,pId)" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +int cpm::DataStructures::QuadEdgeCell< I, E >:: +GetTopologyId( ) +{ + // TODO: return( Superclass::POLYGON_CELL ); + std::cout << "QuadEdgeCell GetTopologyId" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +Accept( + CellIdentifier cellid, + typename itk::CellInterface< PixelType, CellTraits >::MultiVisitor* mv + ) +{ + std::cout << "QuadEdgeCell Accept" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdIterator cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdsBegin( ) +{ + std::cout << "QuadEdgeCell PointIdsBegin" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdConstIterator cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdsBegin( ) const +{ + std::cout << "QuadEdgeCell PointIdsBegin (const)" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdIterator cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdsEnd( ) +{ + std::cout << "QuadEdgeCell PointIdsEnd" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +typename cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdConstIterator cpm::DataStructures::QuadEdgeCell< I, E >:: +PointIdsEnd( ) const +{ + std::cout << "QuadEdgeCell PointIdsEnd (const)" << std::endl; + std::exit( 1 ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +E* cpm::DataStructures::QuadEdgeCell< I, E >:: +GetEntryPrimalEdge( ) +{ + return( this->m_EntryEdge ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +const E* cpm::DataStructures::QuadEdgeCell< I, E >:: +GetEntryPrimalEdge( ) const +{ + return( this->m_EntryEdge ); +} + +// ------------------------------------------------------------------------- +template< class I, class E > +void cpm::DataStructures::QuadEdgeCell< I, E >:: +SetEntryPrimalEdge( E* entry ) +{ + this->m_EntryEdge = entry; +} + +#endif // __CPM__DATASTRUCTURES__QUADEDGECELL__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeIterators.h b/lib/cpm/DataStructures/QuadEdgeIterators.h new file mode 100644 index 0000000..19cb256 --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeIterators.h @@ -0,0 +1,171 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ +#define __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ + +#include + +// ------------------------------------------------------------------------- +#define cpmDataStructuresQEIteratorsMacro( op, it, cit ) \ + inline it Begin##op( ) \ + { return( it( this, it::Op##op, true ) ); } \ + inline it End##op( ) \ + { return( it( this, it::Op##op, false ) ); } \ + inline cit Begin##op( ) const \ + { return( cit( this, cit::Op##op, true ) ); } \ + inline cit End##op( ) const \ + { return( cit( this, cit::Op##op, false ) ); } + +// ------------------------------------------------------------------------- +#define cpmDataStructuresQEPointIteratorsMacro( op, it, cit ) \ + inline Point##it BeginPoint##op( ) \ + { return( Point##it( this, it::Op##op, true ) ); } \ + inline Point##it EndPoint##op( ) \ + { return( Point##it( this, it::Op##op, false ) ); } \ + inline Point##cit BeginPoint##op( ) const \ + { return( Point##cit( this, cit::Op##op, true ) ); } \ + inline Point##cit EndPoint ##op( ) const \ + { return( Point##cit( this, cit::Op##op, false ) ); } + +// ------------------------------------------------------------------------- +#define cpmDataStructuresQEAllIteratorsMacro( op ) \ + cpmDataStructuresQEIteratorsMacro( op, Iterator, ConstIterator ); \ + cpmDataStructuresQEPointIteratorsMacro( op, Iterator, ConstIterator ); + +namespace cpm +{ + namespace DataStructures + { + /** + */ + template< class E > + class QuadEdgeBaseIterator + { + public: + typedef QuadEdgeBaseIterator Self; + typedef E TQuadEdge; + + // Different types of logical iterators + enum + { + OpOnext = 0, + OpLnext = 1, + OpRnext = 2, + OpDnext = 3, + OpOprev = 4, + OpLprev = 5, + OpRprev = 6, + OpDprev = 7 + }; + + public: + QuadEdgeBaseIterator( E* e, int op = OpOnext, bool start = true ); + virtual ~QuadEdgeBaseIterator( ); + Self& operator=( const Self& r ); + + E* GetStartEdge( ) const; + E* GetIterator( ) const; + int GetOpType( ) const; + bool GetStart( ) const; + + bool operator==( Self& r ); + bool operator==( const Self& r ) const; + bool operator!=( Self& r ); + bool operator!=( const Self& r ) const; + Self& operator++( ); + Self& operator++( int ); + + protected: + /// Method that should do all the iteration work + virtual void _GoToNext( ); + + protected: + E* m_StartEdge; /**< Start edge */ + E* m_Iterator; /**< Current iteration position */ + int m_OpType; /**< Operation type */ + bool m_Start; /**< Indicates iteration has just started */ + }; + + /** + */ + template< class E > + class QuadEdgeIterator + : public QuadEdgeBaseIterator< E > + { + public: + typedef QuadEdgeIterator Self; + typedef QuadEdgeBaseIterator< E > Superclass; + typedef E TQuadEdge; + + public: + QuadEdgeIterator( + E* e = NULL, int op = Superclass::OpOnext, bool start = true + ); + virtual ~QuadEdgeIterator( ); + E* operator*( ); + }; + + /** + */ + template< class E > + class QuadEdgeConstIterator + : public QuadEdgeBaseIterator< const E > + { + public: + typedef QuadEdgeConstIterator Self; + typedef QuadEdgeBaseIterator< const E > Superclass; + typedef E TQuadEdge; + + public: + QuadEdgeConstIterator( + const E* e = NULL, int op = Superclass::OpOnext, bool start = true + ); + virtual ~QuadEdgeConstIterator( ); + const E* operator*( ) const; + }; + + /** + */ + template< class E > + class QuadEdgePointIterator + : public QuadEdgeBaseIterator< const E > + { + public: + typedef QuadEdgePointIterator Self; + typedef QuadEdgeBaseIterator< const E > Superclass; + typedef E TQuadEdge; + + public: + QuadEdgePointIterator( + const E* e = NULL, int op = Superclass::OpOnext, bool start = true + ); + virtual ~QuadEdgePointIterator( ); + typename E::TPrimalGeometry& operator*( ); + }; + + /** + */ + template< class E > + class QuadEdgePointConstIterator + : public QuadEdgeBaseIterator< const E > + { + public: + typedef QuadEdgePointConstIterator Self; + typedef QuadEdgeBaseIterator< const E > Superclass; + typedef E TQuadEdge; + + public: + QuadEdgePointConstIterator( + const E* e = NULL, int op = Superclass::OpOnext, bool start = true + ); + virtual ~QuadEdgePointConstIterator( ); + const typename E::TPrimalGeometry& operator*( ) const; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__DATASTRUCTURES__QUADEDGEITERATORS__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeIterators.hxx b/lib/cpm/DataStructures/QuadEdgeIterators.hxx new file mode 100644 index 0000000..184fd1b --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeIterators.hxx @@ -0,0 +1,275 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGEITERATORS__HXX__ +#define __CPM__DATASTRUCTURES__QUADEDGEITERATORS__HXX__ + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeBaseIterator< E >:: +QuadEdgeBaseIterator( E* e, int op, bool start ) + : m_StartEdge( e ), + m_Iterator( e ), + m_OpType( op ), + m_Start( start ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeBaseIterator< E >:: +~QuadEdgeBaseIterator( ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +typename cpm::DataStructures::QuadEdgeBaseIterator< E >:: +Self& cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator=( const Self& r ) +{ + if( this != &r ) + { + this->m_StartEdge = r.m_StartEdge; + this->m_Iterator = r.m_Iterator; + this->m_OpType = r.m_OpType; + this->m_Start = r.m_Start; + + } // fi + return( *this ); +} + +// ------------------------------------------------------------------------- +template< class E > +E* cpm::DataStructures::QuadEdgeBaseIterator< E >:: +GetStartEdge( ) const +{ + return( this->m_StartEdge ); +} + +// ------------------------------------------------------------------------- +template< class E > +E* cpm::DataStructures::QuadEdgeBaseIterator< E >:: +GetIterator( ) const +{ + return( this->m_Iterator ); +} + +// ------------------------------------------------------------------------- +template< class E > +int cpm::DataStructures::QuadEdgeBaseIterator< E >:: +GetOpType( ) const +{ + return( this->m_OpType ); +} + +// ------------------------------------------------------------------------- +template< class E > +bool cpm::DataStructures::QuadEdgeBaseIterator< E >:: +GetStart( ) const +{ + return( this->m_Start ); +} + +// ------------------------------------------------------------------------- +template< class E > +bool cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator==( Self& r ) +{ + return( + ( this->m_StartEdge == r.m_StartEdge ) && + ( this->m_Iterator == r.m_Iterator ) && + ( this->m_OpType == r.m_OpType ) && + ( this->m_Start == r.m_Start ) + ); +} + +// ------------------------------------------------------------------------- +template< class E > +bool cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator==( const Self& r ) const +{ + return( + ( this->m_StartEdge == r.m_StartEdge ) && + ( this->m_Iterator == r.m_Iterator ) && + ( this->m_OpType == r.m_OpType ) && + ( this->m_Start == r.m_Start ) + ); +} + +// ------------------------------------------------------------------------- +template< class E > +bool cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator!=( Self& r ) +{ + return( !( this->operator==( r ) ) ); +} + +// ------------------------------------------------------------------------- +template< class E > +bool cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator!=( const Self& r ) const +{ + return( !( this->operator==( r ) ) ); +} + +// ------------------------------------------------------------------------- +template< class E > +typename cpm::DataStructures::QuadEdgeBaseIterator< E >:: +Self& cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator++( ) +{ + if( this->m_Start ) + { + this->_GoToNext( ); + this->m_Start = !( this->m_Iterator == this->m_StartEdge ); + + } // fi + return( *this ); +} + +// ------------------------------------------------------------------------- +template< class E > +typename cpm::DataStructures::QuadEdgeBaseIterator< E >:: +Self& cpm::DataStructures::QuadEdgeBaseIterator< E >:: +operator++( int ) +{ + if( this->m_Start ) + { + this->_GoToNext( ); + this->m_Start = !( this->m_Iterator == this->m_StartEdge ); + + } // fi + return( *this ); +} + +// ------------------------------------------------------------------------- +template< class E > +void cpm::DataStructures::QuadEdgeBaseIterator< E >:: +_GoToNext( ) +{ + switch( this->m_OpType ) + { + case Self::OpOnext: + this->m_Iterator = this->m_Iterator->GetOnext( ); + break; + case Self::OpLnext: + this->m_Iterator = this->m_Iterator->GetLnext( ); + break; + case Self::OpRnext: + this->m_Iterator = this->m_Iterator->GetRnext( ); + break; + case Self::OpDnext: + this->m_Iterator = this->m_Iterator->GetDnext( ); + break; + case Self::OpOprev: + this->m_Iterator = this->m_Iterator->GetOprev( ); + break; + case Self::OpLprev: + this->m_Iterator = this->m_Iterator->GetLprev( ); + break; + case Self::OpRprev: + this->m_Iterator = this->m_Iterator->GetRprev( ); + break; + case Self::OpDprev: + this->m_Iterator = this->m_Iterator->GetDprev( ); + break; + default: + break; + } // hctiws +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeIterator< E >:: +QuadEdgeIterator( E* e, int op, bool start ) + : Superclass( e, op, start ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeIterator< E >:: +~QuadEdgeIterator( ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +E* cpm::DataStructures::QuadEdgeIterator< E >:: +operator*( ) +{ + return( this->m_Iterator ); +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeConstIterator< E >:: +QuadEdgeConstIterator( const E* e, int op, bool start ) + : Superclass( e, op, start ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgeConstIterator< E >:: +~QuadEdgeConstIterator( ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +const E* cpm::DataStructures::QuadEdgeConstIterator< E >:: +operator*( ) const +{ + return( this->m_Iterator ); +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgePointIterator< E >:: +QuadEdgePointIterator( const E* e, int op, bool start ) + : Superclass( e, op, start ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgePointIterator< E >:: +~QuadEdgePointIterator( ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +typename E::TPrimalGeometry& +cpm::DataStructures::QuadEdgePointIterator< E >:: +operator*( ) +{ + return( this->m_Iterator->GetOrigin( ) ); +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgePointConstIterator< E >:: +QuadEdgePointConstIterator( const E* e, int op, bool start ) + : Superclass( e, op, start ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +cpm::DataStructures::QuadEdgePointConstIterator< E >:: +~QuadEdgePointConstIterator( ) +{ +} + +// ------------------------------------------------------------------------- +template< class E > +const typename E::TPrimalGeometry& +cpm::DataStructures::QuadEdgePointConstIterator< E >:: +operator*( ) const +{ + return( this->m_Iterator->GetOrigin( ) ); +} + +#endif // __CPM__DATASTRUCTURES__QUADEDGEITERATORS__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeMesh.h b/lib/cpm/DataStructures/QuadEdgeMesh.h new file mode 100644 index 0000000..a1a00f6 --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeMesh.h @@ -0,0 +1,283 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGEMESH__H__ +#define __CPM__DATASTRUCTURES__QUADEDGEMESH__H__ + +#include +#include + +#include +#include +#include + +namespace cpm +{ + namespace DataStructures + { + /** + */ + template< typename P, unsigned int D = 3, typename T = itk::DefaultStaticMeshTraits< P, D, D > > + class QuadEdgeMesh + : public itk::Mesh< P, D, T > + { + public: + typedef QuadEdgeMesh Self; + typedef itk::Mesh< P, D, T > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + /// Types from superclass + typedef typename + Superclass::BoundaryAssignmentsContainer + BoundaryAssignmentsContainer; + + typedef typename + Superclass::BoundaryAssignmentsContainerPointer + BoundaryAssignmentsContainerPointer; + + typedef typename Superclass::BoundingBoxType BoundingBoxType; + typedef typename Superclass::CellAutoPointer CellAutoPointer; + typedef typename Superclass::CellsContainer CellsContainer; + typedef typename Superclass::CellDataContainer CellDataContainer; + typedef typename Superclass::CellFeatureCount CellFeatureCount; + typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier; + typedef typename Superclass::CellIdentifier CellIdentifier; + typedef typename Superclass::CellLinksContainer CellLinksContainer; + typedef typename Superclass::CellMultiVisitorType CellMultiVisitorType; + typedef typename Superclass::CellPixelType CellPixelType; + typedef typename Superclass::CellType CellType; + typedef typename Superclass::PointIdentifier PointIdentifier; + typedef typename Superclass::PointsContainer PointsContainer; + typedef typename Superclass::PointType PointType; + + /// QuadEdge types (primal and dual) + typedef QuadEdge< PointIdentifier, CellIdentifier > TPrimalEdge; + typedef typename TPrimalEdge::TDual TDualEdge; + typedef QuadEdgeCell< CellType, TPrimalEdge > TQuadEdgeCell; + + /// Memory management objects + typedef std::set< typename TPrimalEdge::Pointer > CntPrimalEdges; + typedef std::set< typename TDualEdge::Pointer > CntDualEdges; + typedef std::vector< TPrimalEdge* > CntOnextRings; + + /// More geometry types + typedef typename PointType::VectorType VectorType; + typedef typename VectorType::ValueType TScalar; + typedef std::vector< VectorType > CntNormals; + typedef typename CntNormals::const_iterator NormalsIterator; + + protected: + typedef std::vector< TPrimalEdge* > _TEdges; + + public: + itkNewMacro( Self ); + itkTypeMacro( QuadEdgeMesh, itkMesh ); + + public: + // Edge related methods + TPrimalEdge* FindEdge( const PointIdentifier& a ) const; + TPrimalEdge* FindEdge( + const PointIdentifier& a, const PointIdentifier& b + ) const; + TPrimalEdge* FindEntryEdge( const CellIdentifier& i ) const; + + /// New geometric methods + const CntNormals& GetPointNormalsContainer( ) const; + NormalsIterator BeginPointNormals( ) const; + NormalsIterator EndPointNormals( ) const; + const VectorType& GetPointNormal( const PointIdentifier& id ) const; + + /// itk::DataObject methods overloading + virtual bool RequestedRegionIsOutsideOfTheBufferedRegion( ); + + /// itk::PointSet methods overloading + virtual void SetPoints( PointsContainer* points ); + virtual void SetPoint( PointIdentifier id , PointType point ); + + /// itk::Mesh methods overloading + virtual void PassStructure( Self* inputMesh ) + { + std::cout << "PassStructure" << std::endl; + std::exit( 1 ); + } + + virtual void Initialize( ); + virtual void Graft( const itk::DataObject* data ); + + void SetCellLinks( CellLinksContainer* cellLinks ) + { + std::cout << "SetCellLinks" << std::endl; + std::exit( 1 ); + } + virtual CellLinksContainer* GetCellLinks( ) + { + std::cout << "GetCellLinks" << std::endl; + std::exit( 1 ); + } + virtual const CellLinksContainer* GetCellLinks( ) const + { + std::cout << "GetCellLinks (const)" << std::endl; + std::exit( 1 ); + } + virtual void SetCells( CellsContainer* cells ); + virtual void SetCellData( CellDataContainer* data ); + virtual CellDataContainer* GetCellData( ) + { + std::cout << "GetCellData" << std::endl; + std::exit( 1 ); + } + virtual const CellDataContainer* GetCellData( ) const + { + std::cout << "GetCellData (const)" << std::endl; + std::exit( 1 ); + } + +#if !defined( CABLE_CONFIGURATION ) + virtual void SetBoundaryAssignments( + int dimension, BoundaryAssignmentsContainer* container + ) + { + std::cout << "SetBoundaryAssignments" << std::endl; + std::exit( 1 ); + } + virtual BoundaryAssignmentsContainerPointer + GetBoundaryAssignments( int dimension ) + { + std::cout << "GetBoundaryAssignments" << std::endl; + std::exit( 1 ); + } + virtual const BoundaryAssignmentsContainerPointer + GetBoundaryAssignments( int dimension ) const + { + std::cout << "GetBoundaryAssignments (const)" << std::endl; + std::exit( 1 ); + } +#endif + + virtual void SetCell( CellIdentifier id, CellAutoPointer& ptr ); + virtual void SetCellData( CellIdentifier id, CellPixelType data ); + virtual bool GetCellData( CellIdentifier id, CellPixelType* data ) const + { + std::cout << "GetCellData" << std::endl; + std::exit( 1 ); + } + virtual void SetBoundaryAssignment( + int dimension, CellIdentifier cellId, + CellFeatureIdentifier featureId, + CellIdentifier boundaryId + ) + { + std::cout << "SetBoundaryAssignment" << std::endl; + std::exit( 1 ); + } + virtual bool GetBoundaryAssignment( + int dimension, CellIdentifier cellId, + CellFeatureIdentifier featureId, + CellIdentifier* boundaryId + ) const + { + std::cout << "GetBoundaryAssignment" << std::endl; + std::exit( 1 ); + } + virtual bool RemoveBoundaryAssignment( + int dimension, CellIdentifier cellId, + CellFeatureIdentifier featureId + ) + { + std::cout << "RemoveBoundaryAssignment" << std::endl; + std::exit( 1 ); + } + virtual CellFeatureCount GetNumberOfCellBoundaryFeatures( + int dimension, + CellIdentifier id + ) const + { + std::cout << "GetNumberOfCellBoundaryFeatures" << std::endl; + std::exit( 1 ); + } + virtual bool GetCellBoundaryFeature( + int dimension, CellIdentifier id, + CellFeatureIdentifier fid, + CellAutoPointer& ptr + ) const + { + std::cout << "GetCellBoundaryFeature" << std::endl; + std::exit( 1 ); + } + virtual CellIdentifier GetCellBoundaryFeatureNeighbors( + int dimension, + CellIdentifier id, + CellFeatureIdentifier fid, + std::set< CellIdentifier >* cellSet ) + { + std::cout << "GetCellBoundaryFeatureNeighbors" << std::endl; + std::exit( 1 ); + } + virtual CellIdentifier GetCellNeighbors( + CellIdentifier cellId, + std::set< CellIdentifier >* cellSet + ) + { + std::cout << "GetCellNeighbors" << std::endl; + std::exit( 1 ); + } + virtual bool GetAssignedCellBoundaryIfOneExists( + int dimension, CellIdentifier id, + CellFeatureIdentifier fid, + CellAutoPointer& ptr + ) const + { + std::cout << "GetAssignedCellBoundaryIfOneExists" << std::endl; + std::exit( 1 ); + } + virtual void BuildCellLinks( ) const; + + virtual void Accept( CellMultiVisitorType* mv ) const + { + std::cout << "Accept" << std::endl; + std::exit( 1 ); + } + + protected: + QuadEdgeMesh( ); + virtual ~QuadEdgeMesh( ); + + virtual void ReleaseCellsMemory( ) + { + std::cout << "ReleaseCellsMemory" << std::endl; + std::exit( 1 ); + } + + inline bool _CheckPoints( const CellAutoPointer& ptr ) const; + inline void _DeletePoint( const PointIdentifier& pId ); + inline TPrimalEdge* _CreateQuadEdge( + const PointIdentifier& a, const PointIdentifier& b + ); + inline void _DeleteEdge( TPrimalEdge* edge ); + inline void _DeleteFace( const CellIdentifier& f ); + inline void _ConstructEdges( + _TEdges& edges, const CellAutoPointer& ptr + ); + virtual VectorType _ComputePointNormal( const TPrimalEdge* e ) const; + inline void _ReleaseQuadEdgeObjects( ); + + private: + QuadEdgeMesh( const Self& ); // Not implemented + void operator=( const Self& ); // Not implemented + + protected: + CntPrimalEdges m_PrimalEdges; + CntDualEdges m_DualEdges; + + CntOnextRings m_OnextRings; + + CntNormals m_PointNormals; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__DATASTRUCTURES__QUADEDGEMESH__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/QuadEdgeMesh.hxx b/lib/cpm/DataStructures/QuadEdgeMesh.hxx new file mode 100644 index 0000000..cdf5b81 --- /dev/null +++ b/lib/cpm/DataStructures/QuadEdgeMesh.hxx @@ -0,0 +1,528 @@ +#ifndef __CPM__DATASTRUCTURES__QUADEDGEMESH__HXX__ +#define __CPM__DATASTRUCTURES__QUADEDGEMESH__HXX__ + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +TPrimalEdge* cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +FindEdge( const PointIdentifier& a ) const +{ + if( a < this->m_OnextRings.size( ) ) + return( this->m_OnextRings[ a ] ); + else + return( NULL ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +TPrimalEdge* cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +FindEdge( const PointIdentifier& a, const PointIdentifier& b ) const +{ + TPrimalEdge* found = NULL; + TPrimalEdge* e = this->FindEdge( a ); + if( e != NULL ) + { + typename TPrimalEdge::Iterator eIt = e->BeginOnext( ); + for( ; eIt != e->EndOnext( ) && found == NULL; eIt++ ) + if( ( *eIt )->GetDestination( ) == b ) + found = *eIt; + + } // fi + return( found ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +TPrimalEdge* cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +FindEntryEdge( const CellIdentifier& i ) const +{ + if( i < this->GetNumberOfCells( ) ) + { + CellAutoPointer c; + this->GetCell( i, c ); + + TQuadEdgeCell* ec = dynamic_cast< TQuadEdgeCell* >( c.GetPointer( ) ); + if( ec != NULL ) + return( ec->GetEntryPrimalEdge( ) ); + else + return( NULL ); + } + else + return( NULL ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +const typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +CntNormals& cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +GetPointNormalsContainer( ) const +{ + return( this->m_PointNormals ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +NormalsIterator cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +BeginPointNormals( ) const +{ + return( this->m_PointNormals.begin( ) ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +NormalsIterator cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +EndPointNormals( ) const +{ + return( this->m_PointNormals.end( ) ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +const typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +VectorType& cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +GetPointNormal( const PointIdentifier& id ) const +{ + static const VectorType zero( TScalar( 0 ) ); + if( id < this->m_PointNormals.size( ) ) + return( this->m_PointNormals[ id ] ); + else + return( zero ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +bool cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +RequestedRegionIsOutsideOfTheBufferedRegion( ) +{ + // Mesh regions don't have meaning with QuadEdges, this is important + // in order to guarantee correct pipeline execution + return( false ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetPoints( PointsContainer* points ) +{ + this->_ReleaseQuadEdgeObjects( ); + this->m_OnextRings.resize( points->Size( ), NULL ); + this->m_PointNormals.resize( + points->Size( ), VectorType( TScalar( 0 ) ) + ); + this->Superclass::SetPoints( points ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetPoint( PointIdentifier id , PointType point ) +{ + // If the point is brand new, add some non-existent edges and normals + unsigned long N = this->GetNumberOfPoints( ); + N = ( N < id + 1 )? id + 1: N; + if( this->m_OnextRings.size( ) < N ) + { + this->m_OnextRings.resize( N, NULL ); + this->m_PointNormals.resize( N, VectorType( TScalar( 0 ) ) ); + + } // fi + + // Ok pass it to itk + this->Superclass::SetPoint( id, point ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +Initialize( ) +{ + this->Superclass::Initialize( ); + this->_ReleaseQuadEdgeObjects( ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +Graft( const itk::DataObject* data ) +{ + this->Superclass::Graft( data ); + const Self* mesh = dynamic_cast< const Self* >( data ); + if( mesh != NULL ) + { + this->_ReleaseQuadEdgeObjects( ); + this->m_PrimalEdges = mesh->m_PrimalEdges; + this->m_DualEdges = mesh->m_DualEdges; + this->m_OnextRings = mesh->m_OnextRings; + this->m_PointNormals = mesh->m_PointNormals; + + } // fi +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetCells( CellsContainer* cells ) +{ + // Clear cells + if( this->GetCells( ) != NULL ) + this->SetCells( CellsContainer::New( ) ); + this->_ReleaseQuadEdgeObjects( ); + this->m_OnextRings.resize( this->GetNumberOfPoints( ), NULL ); + + // Copy cells + if( cells != NULL ) + { + for( unsigned long cId = 0; cId < cells->Size( ); ++cId ) + { + CellAutoPointer cell( cells->GetElement( cId ), false ); + this->SetCell( cId, cell ); + + } // rof + + } // fi +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetCellData( CellDataContainer* data ) +{ + /* TODO + No need for CellData in initial application: + how should this be overridden? + */ +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetCell( CellIdentifier id, CellAutoPointer& ptr ) +{ + // Overwrite an existing cell? + if( id < this->GetNumberOfCells( ) ) + { + itkExceptionMacro( + << "TODO: What do I do here? Trying to overwrite a cell!" + ); + + } // fi + + // Do not allow to add vertices or edges as cells for the sake of + // correct mesh construction + if( ptr->GetNumberOfPoints( ) < 3 ) + { + itkExceptionMacro( + << "Face have less than 3 points (" + << ptr->GetNumberOfPoints( ) + << ")" + ); + + } // fi + + // Fill up geometrical prerrequisites + if( !( this->_CheckPoints( ptr ) ) ) + { + itkExceptionMacro( << "Points missing in the mesh" ); + + } // fi + + // Get (or create) individual edges + _TEdges edges; + this->_ConstructEdges( edges, ptr ); + + // Configure new face's geometry + edges[ 0 ]->SetLnextRingGeometry( id ); + + // Update normals + typename _TEdges::const_iterator eIt = edges.begin( ); + for( ; eIt != edges.end( ); ++eIt ) + this->m_PointNormals[ ( *eIt )->GetOrigin( ) ] = + this->_ComputePointNormal( *eIt ); + + // Save cell + TQuadEdgeCell* qcell = new TQuadEdgeCell( edges[ 0 ] ); + CellAutoPointer cell; + cell.TakeOwnership( qcell ); + this->Superclass::SetCell( id, cell ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +SetCellData( CellIdentifier id, CellPixelType data ) +{ + /* TODO + No need for CellData in initial application: + how should this be overridden? + */ +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +BuildCellLinks( ) const +{ + // This is no longer required when using QuadEdges +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +QuadEdgeMesh( ) + : Superclass( ) +{ + this->_ReleaseQuadEdgeObjects( ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +~QuadEdgeMesh( ) +{ + this->_ReleaseQuadEdgeObjects( ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +bool cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_CheckPoints( const CellAutoPointer& ptr ) const +{ + const typename Superclass::PointsContainer* pnts = this->GetPoints( ); + + bool all_exist = true; + typename CellType::PointIdConstIterator pIt = ptr->PointIdsBegin( ); + for( ; pIt != ptr->PointIdsEnd( ) && all_exist; ++pIt ) + all_exist &= pnts->IndexExists( *pIt ); + return( all_exist ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_DeletePoint( const PointIdentifier& pId ) +{ + PointIdentifier lastId = this->GetNumberOfPoints( ) - 1; + if( lastId < pId ) + return; + + // Modify point container + PointType to_delete = this->GetPoint( pId ); + PointType last = this->GetPoint( lastId ); + this->Superclass::SetPoint( pId, last ); + + // Modify Onext ring and normals containers + this->m_OnextRings[ pId ] = this->m_OnextRings[ lastId ]; + this->m_PointNormals[ pId ] = this->m_PointNormals[ lastId ]; + this->m_OnextRings.pop_back( ); + this->m_PointNormals.pop_back( ); + + // Update origins + typename TPrimalEdge::Iterator oIt = + this->m_OnextRings[ pId ]->BeginOnext( ); + for( ; oIt != this->m_OnextRings[ pId ]->EndOnext( ); ++oIt ) + ( *oIt )->SetOrigin( pId ); + + // Erase the point + this->GetPoints( )->CastToSTLContainer( ).pop_back( ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +TPrimalEdge* cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_CreateQuadEdge( const PointIdentifier& a, const PointIdentifier& b ) +{ + // Create brand new object + typename TPrimalEdge::Pointer edge = TPrimalEdge::New( ); + edge->CreateRings( ); + + // Configure geometry + edge->SetOrigin( a ); + edge->SetDestination( b ); + + // Keep trace of all reserved memory + this->m_PrimalEdges.insert( edge ); + this->m_PrimalEdges.insert( edge->GetSym( ) ); + this->m_DualEdges.insert( edge->GetRot( ) ); + this->m_DualEdges.insert( edge->GetInvRot( ) ); + + return( edge ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_DeleteEdge( TPrimalEdge* edge ) +{ + this->m_DualEdges.erase( edge->GetInvRot( ) ); + this->m_PrimalEdges.erase( edge->GetSym( ) ); + this->m_DualEdges.erase( edge->GetRot( ) ); + this->m_PrimalEdges.erase( edge ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_DeleteFace( const CellIdentifier& f ) +{ + unsigned long cellId = this->GetNumberOfCells( ) - 1; + if( cellId < f ) + return; + + // Exchange desired face with last one + CellAutoPointer to_delete, last; + this->GetCell( f, to_delete ); + this->GetCell( cellId, last ); + this->Superclass::SetCell( f, last ); + this->Superclass::SetCell( cellId, to_delete ); + + // This will delete cell's memory when to_delete is no longer used + to_delete.TakeOwnership( ); + + // Squeeze container + this->GetCells( )->CastToSTLContainer( ).pop_back( ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_ConstructEdges( _TEdges& edges, const CellAutoPointer& ptr ) +{ + edges.clear( ); + typename CellType::PointIdConstIterator pIt = ptr->PointIdsBegin( ); + for( pIt = ptr->PointIdsBegin( ); pIt != ptr->PointIdsEnd( ); ++pIt ) + { + typename CellType::PointIdConstIterator nIt = pIt; + ++nIt; + if( nIt == ptr->PointIdsEnd( ) ) + nIt = ptr->PointIdsBegin( ); + + TPrimalEdge* edge = this->FindEdge( *pIt, *nIt ); + if( edge == NULL ) + { + edge = this->_CreateQuadEdge( *pIt, *nIt ); + if( this->m_OnextRings[ *pIt ] != NULL ) + { + if( this->m_OnextRings[ *pIt ]->IsOriginInternal( ) ) + { + itkExceptionMacro( + << "Edge [" + << *pIt << ", " << *nIt << "] is already internal." + ); + + } // fi + + // Put edge in Onext ring + typename TPrimalEdge::Iterator eIt = + this->m_OnextRings[ *pIt ]->BeginOnext( ); + while( eIt != this->m_OnextRings[ *pIt ]->EndOnext( ) ) + { + if( !( ( *eIt )->IsLeftSet( ) ) ) + { + TPrimalEdge::Splice( *eIt, edge ); + eIt = this->m_OnextRings[ *pIt ]->EndOnext( ); + } + else + ++eIt; + + } // elihw + } + else + this->m_OnextRings[ *pIt ] = edge; + } + else + { + if( edge->IsLeftSet( ) ) + { + itkExceptionMacro( + << "Edge [" + << edge->GetOrigin( ) << ", " + << edge->GetDestination( ) << "] already have a left face (" + << edge->GetLeft( ) + << "). Face already exits (at least in part)." + ); + + } // fi + + } // fi + edges.push_back( edge ); + + } // rof + + // Reorder Onext rings + typename _TEdges::iterator ecIt; + for( ecIt = edges.begin( ); ecIt != edges.end( ); ++ecIt ) + { + TPrimalEdge* e = *ecIt; + TPrimalEdge* eOprev; + if( ecIt != edges.begin( ) ) + { + typename _TEdges::iterator eOprevIt = ecIt; + --eOprevIt; + eOprev = ( *eOprevIt )->GetSym( ); + } + else + eOprev = edges.back( )->GetSym( ); + TPrimalEdge::ReorderOnextRing( e, eOprev ); + + } // rof +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +typename cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +VectorType cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_ComputePointNormal( const TPrimalEdge* e ) const +{ + static const TScalar zero = TScalar( 0 ); + + VectorType n( zero ); + if( Superclass::PointDimension == 3 ) + { + PointType p0 = this->GetPoint( e->GetOrigin( ) ); + typename TPrimalEdge::ConstIterator eIt = e->BeginOnext( ); + unsigned int count = 0; + for( ; eIt != e->EndOnext( ); eIt++ ) + { + if( ( *eIt )->IsLeftSet( ) ) + { + typename TPrimalEdge::ConstIterator nIt = eIt; + nIt++; + if( nIt == e->EndOnext( ) ) + nIt = e->BeginOnext( ); + + n += itk::CrossProduct( + this->GetPoint( ( *eIt )->GetDestination( ) ) - p0, + this->GetPoint( ( *nIt )->GetDestination( ) ) - p0 + ); + count++; + + } // fi + + } // rof + TScalar nn = n.GetNorm( ); + if( nn > zero && count > 0 ) + n /= nn * TScalar( count ); + + } // fi + return( n ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int D, typename T > +void cpm::DataStructures::QuadEdgeMesh< P, D, T >:: +_ReleaseQuadEdgeObjects( ) +{ + this->m_PrimalEdges.clear( ); + this->m_OnextRings.clear( ); + this->m_DualEdges.clear( ); + this->m_PointNormals.clear( ); +} + +#endif // __CPM__DATASTRUCTURES__QUADEDGEMESH__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/SimplexMesh.h b/lib/cpm/DataStructures/SimplexMesh.h new file mode 100644 index 0000000..d634a98 --- /dev/null +++ b/lib/cpm/DataStructures/SimplexMesh.h @@ -0,0 +1,98 @@ +#ifndef __CPM__DATASTRUCTURES__SIMPLEXMESH__H__ +#define __CPM__DATASTRUCTURES__SIMPLEXMESH__H__ + +#include +#include + +namespace cpm +{ + namespace DataStructures + { + /** + */ + template< typename P, unsigned int K, unsigned int D = 3, typename T = itk::DefaultStaticMeshTraits< P, D, D > > + class SimplexMesh + : public QuadEdgeMesh< P, D, T > + { + public: + typedef SimplexMesh Self; + typedef QuadEdgeMesh< P, D, T > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + // Input templates + itkStaticConstMacro( Order, unsigned int, K ); + + /// Types from superclass + typedef + typename Superclass::BoundaryAssignmentsContainer + BoundaryAssignmentsContainer; + + typedef + typename Superclass::BoundaryAssignmentsContainerPointer + BoundaryAssignmentsContainerPointer; + typedef typename Superclass::BoundingBoxType BoundingBoxType; + typedef typename Superclass::CellAutoPointer CellAutoPointer; + typedef typename Superclass::CellsContainer CellsContainer; + typedef typename Superclass::CellDataContainer CellDataContainer; + typedef typename Superclass::CellFeatureCount CellFeatureCount; + typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier; + typedef typename Superclass::CellIdentifier CellIdentifier; + typedef typename Superclass::CellLinksContainer CellLinksContainer; + typedef typename Superclass::CellMultiVisitorType CellMultiVisitorType; + typedef typename Superclass::CellPixelType CellPixelType; + typedef typename Superclass::CellType CellType; + typedef typename Superclass::PointIdentifier PointIdentifier; + typedef typename Superclass::PointsContainer PointsContainer; + typedef typename Superclass::PointType PointType; + typedef typename Superclass::TPrimalEdge TPrimalEdge; + typedef typename Superclass::TDualEdge TDualEdge; + typedef typename Superclass::VectorType VectorType; + typedef typename VectorType::ValueType ValueType; + typedef typename Superclass::TQuadEdgeCell TQuadEdgeCell; + + typedef itk::Vector< P, K + 1 > BarycenterVector; + + public: + itkNewMacro( Self ); + itkTypeMacro( SimplexMesh, QuadEdgeMesh ); + + public: + bool ComputeSimplexParameters( + const PointIdentifier& pId, + VectorType& A, + VectorType& B, + VectorType& C, + VectorType& N, + BarycenterVector& barycenter, + ValueType& r, + ValueType& d, + ValueType& dp, + ValueType& phi + ) const; + + bool VerifySimplexOrder( ) const; + bool OperatorDeleteEdge( + const PointIdentifier& a, const PointIdentifier& b + ); + + protected: + SimplexMesh( ); + virtual ~SimplexMesh( ); + + virtual VectorType _ComputePointNormal( const TPrimalEdge* e ) const; + + private: + SimplexMesh( const Self& ); // Not implemented + void operator=( const Self& ); // Not implemented + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__DATASTRUCTURES__SIMPLEXMESH__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/DataStructures/SimplexMesh.hxx b/lib/cpm/DataStructures/SimplexMesh.hxx new file mode 100644 index 0000000..46d43d4 --- /dev/null +++ b/lib/cpm/DataStructures/SimplexMesh.hxx @@ -0,0 +1,376 @@ +#ifndef __CPM__DATASTRUCTURES__SIMPLEXMESH__HXX__ +#define __CPM__DATASTRUCTURES__SIMPLEXMESH__HXX__ + +#include +#include +#include + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +bool cpm::DataStructures::SimplexMesh< P, K, D, T >:: +ComputeSimplexParameters( + const PointIdentifier& pId, + VectorType& A, + VectorType& B, + VectorType& C, + VectorType& N, + BarycenterVector& barycenter, + ValueType& r, + ValueType& d, + ValueType& dp, + ValueType& phi + ) const +{ + typedef itk::Matrix< ValueType, 4, 4 > TTetraMatrix; + + static const ValueType _0 = ValueType( 0 ); + static const ValueType _1 = ValueType( 1 ); + static const ValueType _2 = ValueType( 2 ); + static const ValueType _3 = ValueType( 3 ); + static const ValueType _4 = ValueType( 4 ); + + // Get topological neighborhood + const TPrimalEdge* eA = this->FindEdge( pId ); + if( eA == NULL ) + return( false ); + const TPrimalEdge* eB = eA->GetOnext( ); + if( eB == NULL ) + return( false ); + const TPrimalEdge* eC = eB->GetOnext( ); + if( eC == NULL ) + return( false ); + + // Get geometrical neighborhood + VectorType Q; + Q = this->GetPoint( eA->GetOrigin( ) ).GetVectorFromOrigin( ); + A = this->GetPoint( eA->GetDestination( ) ).GetVectorFromOrigin( ); + B = this->GetPoint( eB->GetDestination( ) ).GetVectorFromOrigin( ); + C = this->GetPoint( eC->GetDestination( ) ).GetVectorFromOrigin( ); + + // Auxiliary values + VectorType BA = B - A; + VectorType CA = C - A; + VectorType BAxCA = itk::CrossProduct( BA, CA ); + ValueType nBAxCA = BAxCA.GetNorm( ); + if( !( _0 < nBAxCA ) ) + return( false ); + + // More auxiliary values + VectorType QA = Q - A; + + // Compute barycenter + ValueType nBAxCA2 = nBAxCA * nBAxCA; + barycenter[ 2 ] = ( itk::CrossProduct( BA, QA ) * BAxCA ) / nBAxCA2; + barycenter[ 1 ] = ( itk::CrossProduct( QA, CA ) * BAxCA ) / nBAxCA2; + barycenter[ 0 ] = _1 - barycenter[ 2 ] - barycenter[ 1 ]; + + // Compute Q projection onto neighboring plane + VectorType Qp = + ( A * barycenter[ 0 ] ) + + ( B * barycenter[ 1 ] ) + + ( C * barycenter[ 2 ] ); + + // Compute normal + N = BAxCA / nBAxCA; + + // Compute circumcircle center and radius (r) + VectorType CC = BA * CA.GetSquaredNorm( ); + CC -= CA * BA.GetSquaredNorm( ); + CC = itk::CrossProduct( BAxCA, CC ); + CC /= _2 * nBAxCA2; + r = CC.GetNorm( ); + CC += A; + + // Barycenter distance + d = ( Qp - CC ).GetNorm( ); + + // Desired barycenter distance + dp = ( ( ( A + B + C ) / _3 ) - CC ).GetNorm( ); + + // Compute tetrahedron's circumsphere + TTetraMatrix mA; + for( unsigned int dId = 0; dId < 3; dId++ ) + { + mA[ 0 ][ dId ] = A[ dId ]; + mA[ 1 ][ dId ] = B[ dId ]; + mA[ 2 ][ dId ] = C[ dId ]; + mA[ 3 ][ dId ] = Q[ dId ]; + + } // rof + mA[ 0 ][ 3 ] = _1; + mA[ 1 ][ 3 ] = _1; + mA[ 2 ][ 3 ] = _1; + mA[ 3 ][ 3 ] = _1; + + ValueType dA = vnl_determinant( mA.GetVnlMatrix( ) ); + if( dA > _0 ) // Tetrahedron IS NOT planar + { + TTetraMatrix mD; + mD[ 0 ][ 3 ] = _1; + mD[ 1 ][ 3 ] = _1; + mD[ 2 ][ 3 ] = _1; + mD[ 3 ][ 3 ] = _1; + mD[ 0 ][ 0 ] = A.GetSquaredNorm( ); + mD[ 1 ][ 0 ] = B.GetSquaredNorm( ); + mD[ 2 ][ 0 ] = C.GetSquaredNorm( ); + mD[ 3 ][ 0 ] = Q.GetSquaredNorm( ); + + mD[ 0 ][ 1 ] = A[ 1 ]; + mD[ 1 ][ 1 ] = B[ 1 ]; + mD[ 2 ][ 1 ] = C[ 1 ]; + mD[ 3 ][ 1 ] = Q[ 1 ]; + mD[ 0 ][ 2 ] = A[ 2 ]; + mD[ 1 ][ 2 ] = B[ 2 ]; + mD[ 2 ][ 2 ] = C[ 2 ]; + mD[ 3 ][ 2 ] = Q[ 2 ]; + ValueType Dx = vnl_determinant( mD.GetVnlMatrix( ) ); + + mD[ 0 ][ 1 ] = A[ 0 ]; + mD[ 1 ][ 1 ] = B[ 0 ]; + mD[ 2 ][ 1 ] = C[ 0 ]; + mD[ 3 ][ 1 ] = Q[ 0 ]; + mD[ 0 ][ 2 ] = A[ 2 ]; + mD[ 1 ][ 2 ] = B[ 2 ]; + mD[ 2 ][ 2 ] = C[ 2 ]; + mD[ 3 ][ 2 ] = Q[ 2 ]; + ValueType Dy = vnl_determinant( mD.GetVnlMatrix( ) ); + + mD[ 0 ][ 1 ] = A[ 0 ]; + mD[ 1 ][ 1 ] = B[ 0 ]; + mD[ 2 ][ 1 ] = C[ 0 ]; + mD[ 3 ][ 1 ] = Q[ 0 ]; + mD[ 0 ][ 2 ] = A[ 1 ]; + mD[ 1 ][ 2 ] = B[ 1 ]; + mD[ 2 ][ 2 ] = C[ 1 ]; + mD[ 3 ][ 2 ] = Q[ 1 ]; + ValueType Dz = vnl_determinant( mD.GetVnlMatrix( ) ); + + mD[ 0 ][ 2 ] = A[ 2 ]; + mD[ 1 ][ 2 ] = B[ 2 ]; + mD[ 2 ][ 2 ] = C[ 2 ]; + mD[ 3 ][ 2 ] = Q[ 2 ]; + ValueType dC = vnl_determinant( mD.GetVnlMatrix( ) ); + + // Circumcenter + VectorType CS; + CS[ 0 ] = Dx; + CS[ 1 ] = Dy * -_1; + CS[ 2 ] = Dz; + CS /= _2 * dA; + + // Circumradius + /* + * WARNING: this is not necessary since sin(phi) and cos(phi) + * depend on R as divisor: + * + * ValueType R = ( Dx * Dx ) + ( Dy * Dy ) + ( Dz * Dz ); + * R -= _4 * dA * dC; + * R = ValueType( std::sqrt( double( R ) ) ); + * R /= _2 * ValueType( std::fabs( double( dA ) ) ); + */ + + // Phi sin and cos + ValueType sphi = r; + VectorType CCCS = CC - CS; + ValueType cphi = CCCS.GetNorm( ); + if( ( QA * N ) < _0 ) + sphi *= -_1; + if( ( CCCS * N ) < _0 ) + cphi *= -_1; + phi = ValueType( std::atan2( double( sphi ), double( cphi ) ) ); + } + else // Tetrahedron IS planar + phi = _0; + + return( true ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +bool cpm::DataStructures::SimplexMesh< P, K, D, T >:: +VerifySimplexOrder( ) const +{ + if( this->m_OnextRings.size( ) == 0 ) + return( true ); + + typename Superclass::CntOnextRings::const_iterator rIt = + this->m_OnextRings.begin( ); + unsigned int minOrder = ( *rIt )->GetOnextRingSize( ); + unsigned int maxOrder = minOrder; + ++rIt; + for( ; rIt != this->m_OnextRings.end( ); ++rIt ) + { + unsigned int order = ( *rIt )->GetOnextRingSize( ); + minOrder = ( order < minOrder )? order: minOrder; + maxOrder = ( maxOrder < order )? order: minOrder; + + } // rof + + if( K == 1 ) + return( + ( minOrder == 1 || minOrder == 2 ) && + ( maxOrder == 1 || maxOrder == 2 ) + ); + else if( K == 2 ) + return( ( minOrder == maxOrder ) && ( minOrder == K + 1 ) ); + else + return( false ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +bool cpm::DataStructures::SimplexMesh< P, K, D, T >:: +OperatorDeleteEdge( const PointIdentifier& a, const PointIdentifier& b ) +{ + TPrimalEdge* e0 = this->FindEdge( a, b ); + if( e0 == NULL ) + return( false ); + + // Name edges and faces + TPrimalEdge* e1 = e0->GetOnext( ); + TPrimalEdge* e2 = e1->GetOnext( ); + TPrimalEdge* e3 = e0->GetLnext( ); + TPrimalEdge* e4 = e0->GetRprev( ); + TPrimalEdge* e5 = e2->GetSym( )->GetOprev( ); + TPrimalEdge* e6 = e4->GetLnext( ); + + CellIdentifier f0 = e0->GetLeft( ); + CellIdentifier f1 = e0->GetRight( ); + CellIdentifier f2 = e1->GetLeft( ); + CellIdentifier f3 = e3->GetRight( ); + + // Disconnect edges e0, e2, e4 and origins of e1 and e3 + TPrimalEdge::Splice( e2, e0 ); + TPrimalEdge::Splice( e2, e1 ); + TPrimalEdge::Splice( e5, e2->GetSym( ) ); + TPrimalEdge::Splice( e3, e0->GetSym( ) ); + TPrimalEdge::Splice( e3, e4 ); + TPrimalEdge::Splice( e6, e4->GetSym( ) ); + + // Connect e1 and e3 origins + TPrimalEdge::Splice( e5, e1 ); + TPrimalEdge::Splice( e6, e3 ); + + // Change e1 and e3 origins + e1->SetOrigin( e5->GetOrigin( ) ); + e3->SetOrigin( e6->GetOrigin( ) ); + + // Assign face id (even if f1 is a "not face") + typename TPrimalEdge::Iterator eIt = e3->BeginLnext( ); + while( eIt != e3->EndLnext( ) && *eIt != e1->GetSym( ) ) + { + ( *eIt )->SetLeft( f1 ); + eIt++; + + } // elihw + + // Update points + this->m_OnextRings[ e5->GetOrigin( ) ] = e5; + this->m_OnextRings[ e6->GetOrigin( ) ] = e6; + + // Update cells entry points + CellAutoPointer c1, c2, c3; + this->GetCell( f1, c1 ); + this->GetCell( f2, c2 ); + this->GetCell( f3, c3 ); + + TQuadEdgeCell* ec1 = dynamic_cast< TQuadEdgeCell* >( c1.GetPointer( ) ); + TQuadEdgeCell* ec2 = dynamic_cast< TQuadEdgeCell* >( c2.GetPointer( ) ); + TQuadEdgeCell* ec3 = dynamic_cast< TQuadEdgeCell* >( c3.GetPointer( ) ); + + ec1->SetEntryPrimalEdge( e3 ); + ec2->SetEntryPrimalEdge( e1 ); + ec3->SetEntryPrimalEdge( e3->GetSym( ) ); + + // Delete face f0 + this->_DeleteFace( f0 ); + + // Delete e0 origin and destination + this->_DeletePoint( e0->GetOrigin( ) ); + this->_DeletePoint( e0->GetDestination( ) ); + + // Delete edges e0, e2 and e4 + this->_DeleteEdge( e0 ); + this->_DeleteEdge( e2 ); + this->_DeleteEdge( e4 ); + + return( true ); +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +cpm::DataStructures::SimplexMesh< P, K, D, T >:: +SimplexMesh( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +cpm::DataStructures::SimplexMesh< P, K, D, T >:: +~SimplexMesh( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename P, unsigned int K, unsigned int D, typename T > +typename cpm::DataStructures::SimplexMesh< P, K, D, T >:: +VectorType cpm::DataStructures::SimplexMesh< P, K, D, T >:: +_ComputePointNormal( const TPrimalEdge* e ) const +{ + VectorType N( ValueType( 0 ) ); + if( K == 1 ) + { + /* TODO + PointIdentifier iQp0 = e->GetOrigin( ); + PointIdentifier iQp1 = e->GetDestination( ); + PointIdentifier iQm1 = e->GetOnext( )->GetDestination( ); + PointIdentifier iQp2 = e->GetSym( )->GetOnext( )->GetDestination( ); + PointIdentifier iQm2 = + e->GetOnext( )->GetSym( )->GetOnext( )->GetDestination( ); + + VectorType Qp0 = this->GetPoint( iQp0 ).GetVectorFromOrigin( ); + VectorType Qp1 = this->GetPoint( iQp1 ).GetVectorFromOrigin( ); + VectorType Qm1 = this->GetPoint( iQm1 ).GetVectorFromOrigin( ); + VectorType Qp2 = this->GetPoint( iQp2 ).GetVectorFromOrigin( ); + VectorType Qm2 = this->GetPoint( iQm2 ).GetVectorFromOrigin( ); + + // Compute tangent + VectorType T( ValueType( 0 ) ); + T = Qp1 - Qm1; + ValueType nT = T.GetNorm( ); + if( nT > ValueType( 0 ) ) + T /= nT; + + // Compute auxiliary vector + VectorType R( ValueType( 0 ) ); + R = itk::CrossProduct( T, Qm1 - Qm2 ); + R = itk::CrossProduct( R, Qp2 - Qp1 ); + ValueType nR = R.GetNorm( ); + if( nR > ValueType( 0 ) ) + R /= nR; + */ + // TODO : psi??? see documentation + } + else if( K == 2 ) + { + PointIdentifier iA = e->GetDestination( ); + PointIdentifier iB = e->GetOnext( )->GetDestination( ); + PointIdentifier iC = e->GetOnext( )->GetOnext( )->GetDestination( ); + + VectorType A = this->GetPoint( iA ).GetVectorFromOrigin( ); + VectorType B = this->GetPoint( iB ).GetVectorFromOrigin( ); + VectorType C = this->GetPoint( iC ).GetVectorFromOrigin( ); + + N = itk::CrossProduct( B - A, C - A ); + ValueType nN = N.GetNorm( ); + if( nN > ValueType( 0 ) ) + N /= nN; + + } // fi + return( N ); +} + +#endif // __CPM__DATASTRUCTURES__SIMQLEXMESH__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/IO/MeshReader.h b/lib/cpm/IO/MeshReader.h new file mode 100644 index 0000000..2096ae3 --- /dev/null +++ b/lib/cpm/IO/MeshReader.h @@ -0,0 +1,62 @@ +#ifndef __CPM__IO__MESHREADER__H__ +#define __CPM__IO__MESHREADER__H__ + +#include +#include + +namespace cpm +{ + namespace IO + { + /** + */ + template< typename M > + class MeshReader + : public itk::MeshSource< M > + { + public: + typedef MeshReader Self; + typedef itk::MeshSource< M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M MeshType; + + public: + itkNewMacro( Self ); + itkTypeMacro( MeshReader, itkMeshSource ); + + itkSetStringMacro( FileName ); + itkGetStringMacro( FileName ); + + public: + virtual itk::ModifiedTimeType GetMTime( ) const; + + protected: + MeshReader( ); + virtual ~MeshReader( ); + + virtual void GenerateData( ); + + template< class R > + void _Read( ); + + private: + // Purposely not implemented + MeshReader( const Self& ); + Self& operator=( const Self & ); + + protected: + typename Superclass::Pointer m_Reader; + std::string m_FileName; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__IO__MESHREADER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/IO/MeshReader.hxx b/lib/cpm/IO/MeshReader.hxx new file mode 100644 index 0000000..91f56fe --- /dev/null +++ b/lib/cpm/IO/MeshReader.hxx @@ -0,0 +1,92 @@ +#ifndef __CPM__IO__MESHREADER__HXX__ +#define __CPM__IO__MESHREADER__HXX__ + +#include +#include +#include + +// ------------------------------------------------------------------------- +template< typename M > +itk::ModifiedTimeType cpm::IO::MeshReader< M >:: +GetMTime( ) const +{ + itk::ModifiedTimeType mtime = this->Superclass::GetMTime( ); + if( this->m_Reader.IsNotNull( ) ) + { + itk::ModifiedTimeType rtime = this->m_Reader->GetMTime( ); + mtime = ( rtime < mtime )? rtime: mtime; + + } // fi + return( mtime ); +} + +// ------------------------------------------------------------------------- +template< typename M > +cpm::IO::MeshReader< M >:: +MeshReader( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename M > +cpm::IO::MeshReader< M >:: +~MeshReader( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename M > +void cpm::IO::MeshReader< M >:: +GenerateData( ) +{ + std::string fn = this->m_FileName; + std::transform( fn.begin( ), fn.end( ), fn.begin( ), ::tolower ); + if( fn.rfind( ".vtk" ) != std::string::npos ) + this->_Read< itk::VTKPolyDataReader< M > >( ); + else if( fn.rfind( ".obj" ) != std::string::npos ) + this->_Read< cpm::IO::WaveFrontOBJReader< M > >( ); +} + +// ------------------------------------------------------------------------- +template< typename M > +template< class R > +void cpm::IO::MeshReader< M >:: +_Read( ) +{ + typename R::Pointer reader = NULL; + if( this->m_Reader.IsNotNull( ) ) + { + reader = dynamic_cast< R* >( this->m_Reader.GetPointer( ) ); + if( reader.IsNotNull( ) ) + { + if( reader->GetFileName( ) == this->m_FileName ) + reader = NULL; + } + else + { + reader = R::New( ); + this->m_Reader = reader; + + } // fi + } + else + { + reader = R::New( ); + this->m_Reader = reader; + + } // fi + + if( reader.IsNotNull( ) ) + { + reader->SetFileName( this->m_FileName ); + reader->GraftOutput( this->GetOutput( ) ); + reader->Update( ); + this->GraftOutput( reader->GetOutput( ) ); + + } // fi +} + +#endif // __CPM__IO__MESHREADER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/IO/WaveFrontOBJReader.h b/lib/cpm/IO/WaveFrontOBJReader.h new file mode 100644 index 0000000..42002d2 --- /dev/null +++ b/lib/cpm/IO/WaveFrontOBJReader.h @@ -0,0 +1,79 @@ +#ifndef __CPM__IO__WAVEFRONTOBJREADER__H__ +#define __CPM__IO__WAVEFRONTOBJREADER__H__ + +#include +#include +#include +#include +#include + +namespace cpm +{ + namespace IO + { + /** + * \class WaveFrontOBJReader + * \brief + * Reads a wavefront OBJ file and create an itkMesh. + * + * Caveat1: itkWaveFrontOBJReader will read only vertices and faces. + * Normal, parameters and textures vectors are ignored. + * + */ + template< typename M > + class WaveFrontOBJReader + : public itk::MeshSource< M > + { + public: + typedef WaveFrontOBJReader Self; + typedef itk::MeshSource< M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + typedef M MeshType; + typedef typename M::MeshTraits MeshTraits; + typedef typename M::PointType PointType; + typedef typename MeshTraits::PixelType PixelType; + typedef typename M::Pointer MeshPointer; + typedef typename M::CellTraits CellTraits; + typedef typename M::CellIdentifier CellIdentifier; + typedef typename M::CellType CellType; + typedef typename M::CellAutoPointer CellAutoPointer; + typedef typename M::PointIdentifier PointIdentifier; + typedef typename CellTraits::PointIdIterator PointIdIterator; + typedef typename M::PointsContainerPointer PointsContainerPointer; + typedef typename M::PointsContainer PointsContainer; + + typedef itk::PolygonCell< CellType > TPolygonCell; + + public: + itkNewMacro( Self ); + itkTypeMacro( WaveFrontOBJReader, itkMeshSource ); + + itkSetStringMacro( FileName ); + itkGetStringMacro( FileName ); + + protected: + WaveFrontOBJReader( ); + virtual ~WaveFrontOBJReader( ); + + virtual void GenerateData( ); + + private: + // Purposely not implemented + WaveFrontOBJReader( const Self& ); + Self& operator=( const Self & ); + + protected: + std::string m_FileName; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__IO__WAVEFRONTOBJREADER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/IO/WaveFrontOBJReader.hxx b/lib/cpm/IO/WaveFrontOBJReader.hxx new file mode 100644 index 0000000..88f9e97 --- /dev/null +++ b/lib/cpm/IO/WaveFrontOBJReader.hxx @@ -0,0 +1,123 @@ +#ifndef __CPM__IO__WAVEFRONTOBJREADER__HXX__ +#define __CPM__IO__WAVEFRONTOBJREADER__HXX__ + +#include +#include +#include + +// ------------------------------------------------------------------------- +template< typename M > +cpm::IO::WaveFrontOBJReader< M >:: +WaveFrontOBJReader( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename M > +cpm::IO::WaveFrontOBJReader< M >:: +~WaveFrontOBJReader( ) +{ +} + +// ------------------------------------------------------------------------- +template< typename M > +void cpm::IO::WaveFrontOBJReader< M >:: +GenerateData( ) +{ + typedef typename PointType::ValueType TScalar; + typename M::Pointer out = this->GetOutput( ); + + out->SetCellsAllocationMethod( M::CellsAllocatedDynamicallyCellByCell ); + if( this->m_FileName == "" ) + { + itkExceptionMacro( << "No input FileName" ); + + } // fi + + std::ifstream in( this->m_FileName.c_str( ) ); + if( !in.is_open( ) ) + { + itkExceptionMacro( + << "Unable to open file" << std::endl + << "\"" << m_FileName << "\"" + ); + + } // fi + + in.imbue( std::locale::classic( ) ); + std::string buffer; + + while( !in.eof( ) ) + { + std::getline( in, buffer, '\n' ); + + // Tokenize + std::stringstream ss( buffer ); + std::istream_iterator< std::string > it( ss ); + std::istream_iterator< std::string > end; + std::vector< std::string > line( it, end ); + if( line.size( ) == 0 ) + continue; + + // Now, we are talking... + if( line[ 0 ] == "v" || line[ 0 ] == "V" ) + { + // Add points + PointType pnt; + pnt.Fill( TScalar( 0 ) ); + + if( line.size( ) > 1 && M::PointDimension >= 1 ) + pnt[ 0 ] = TScalar( std::atof( line[ 1 ].c_str( ) ) ); + if( line.size( ) > 2 && M::PointDimension >= 2 ) + pnt[ 1 ] = TScalar( std::atof( line[ 2 ].c_str( ) ) ); + if( line.size( ) > 3 && M::PointDimension >= 3 ) + pnt[ 2 ] = TScalar( std::atof( line[ 3 ].c_str( ) ) ); + if( M::PointDimension >= 4 ) + { + if( line.size( ) > 4 ) + pnt[ 3 ] = TScalar( std::atof( line[ 4 ].c_str( ) ) ); + else + pnt[ 4 ] = TScalar( 1 ); + + } // fi + out->SetPoint( out->GetNumberOfPoints( ), pnt ); + } + else if( line[ 0 ] == "f" || line[ 0 ] == "F" ) + { + if( line.size( ) > 3 ) + { + // Add a face + CellAutoPointer cell; + TPolygonCell* face = new TPolygonCell( ); + + for( unsigned int k = 1; k < line.size( ); ++k ) + { + PointIdentifier pId = + PointIdentifier( + std::atoi( + line[ k ]. + substr( 0, line[ k ].find_first_of( "/" ) ).c_str( ) + ) + ); + + // In OBJ files, vertices are numbered from 1 + face->AddPointId( pId - 1 ); + + } // rof + cell.TakeOwnership( face ); + out->SetCell( out->GetNumberOfCells( ), cell ); + + } // fi + + } // fi + + } // elihw + + // Finish the job + in.close( ); +} + +#endif // __CPM__IO__WAVEFRONTOBJREADER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/MeshMapper.cxx b/lib/cpm/VTK/MeshMapper.cxx new file mode 100644 index 0000000..be79dd1 --- /dev/null +++ b/lib/cpm/VTK/MeshMapper.cxx @@ -0,0 +1,234 @@ +#include + +#include +#include + +#include + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::VTK::MeshMapper< M >:: +Self* cpm::VTK::MeshMapper< M >:: +New( ) +{ + return( cpm::VTK::OpenGLMeshMapper< M >::New( ) ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +ShallowCopy( vtkAbstractMapper* m ) +{ + Self* mapper = Self::SafeDownCast( m ); + if( m != NULL ) + this->SetInputData( mapper->GetInput( ) ); + this->vtkMapper::ShallowCopy( m ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +SetInputData( M* in ) +{ + if( this->Mesh != in ) + { + this->Mesh = in; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +M* cpm::VTK::MeshMapper< M >:: +GetInput( ) +{ + return( this->Mesh ); +} + +// ------------------------------------------------------------------------- +template< class M > +const M* cpm::VTK::MeshMapper< M >:: +GetInput( ) const +{ + return( this->Mesh ); +} + +// ------------------------------------------------------------------------- +template< class M > +double* cpm::VTK::MeshMapper< M >:: +GetBounds( ) +{ + // do we have an input + if( this->Mesh.IsNull( ) ) + { + vtkMath::UninitializeBounds( this->Bounds ); + return( this->Bounds ); + } + else + { + this->Mesh->Update( ); + this->ComputeBounds( ); + + if( !vtkMath::AreBoundsInitialized( this->Bounds ) ) + return( NULL ); + return( this->Bounds ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +GetBounds( double bounds[ 6 ] ) +{ + this->Superclass::GetBounds( bounds ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +Render( vtkRenderer* aren, vtkActor* act ) +{ + if( this->Mesh.IsNull( ) ) + { + vtkErrorMacro( "Mapper has no input." ); + return; + + } // fi + this->RenderPiece( aren, act ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +Update( ) +{ + // TODO: + std::cout << "Update( )" << std::endl; +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +Update( int port ) +{ + // TODO: + std::cout << "Update( port = " << port << " ) "<< std::endl; +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +MapDataArrayToVertexAttribute( + const char* vertexAttributeName, + const char* dataArrayName, + int fieldAssociation, + int componentno + ) +{ + vtkErrorMacro( "Not implemented at this level..." ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +MapDataArrayToMultiTextureAttribute( + int unit, + const char* dataArrayName, + int fieldAssociation, + int componentno + ) +{ + vtkErrorMacro( "Not implemented at this level..." ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +RemoveVertexAttributeMapping( const char* vertexAttributeName ) +{ + vtkErrorMacro( "Not implemented at this level..." ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +RemoveAllVertexAttributeMappings( ) +{ + vtkErrorMacro( "Not implemented at this level..." ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::MeshMapper< M >:: +MeshMapper( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::MeshMapper< M >:: +~MeshMapper( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::MeshMapper< M >:: +ComputeBounds( ) +{ + static const TScalar _0 = TScalar( 0 ); + if( this->Mesh.IsNotNull( ) ) + { + const typename M::BoundingBoxType* bb = this->Mesh->GetBoundingBox( ); + TPoint minP = bb->GetMinimum( ); + TPoint maxP = bb->GetMaximum( ); + this->Bounds[ 0 ] = double( ( Self::Dimension >= 1 )? minP[ 0 ]: _0 ); + this->Bounds[ 1 ] = double( ( Self::Dimension >= 1 )? maxP[ 0 ]: _0 ); + this->Bounds[ 2 ] = double( ( Self::Dimension >= 2 )? minP[ 1 ]: _0 ); + this->Bounds[ 3 ] = double( ( Self::Dimension >= 2 )? maxP[ 1 ]: _0 ); + this->Bounds[ 4 ] = double( ( Self::Dimension >= 3 )? minP[ 2 ]: _0 ); + this->Bounds[ 5 ] = double( ( Self::Dimension >= 3 )? maxP[ 2 ]: _0 ); + } + else + { + this->Bounds[ 0 ] = + this->Bounds[ 1 ] = + this->Bounds[ 2 ] = + this->Bounds[ 3 ] = + this->Bounds[ 4 ] = + this->Bounds[ 5 ] = + double( 0 ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +int cpm::VTK::MeshMapper< M >:: +FillInputPortInformation( int port, vtkInformation* info ) +{ + info->Set( vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE( ), "itk::Mesh" ); + return( 1 ); +} + +// ------------------------------------------------------------------------- +#include +#include + +using namespace cpm::DataStructures; +using namespace cpm::VTK; + +template class MeshMapper< QuadEdgeMesh< float, 2 > >; +template class MeshMapper< QuadEdgeMesh< float, 3 > >; +template class MeshMapper< QuadEdgeMesh< double, 2 > >; +template class MeshMapper< QuadEdgeMesh< double, 3 > >; + +template class MeshMapper< SimplexMesh< float, 2 > >; +template class MeshMapper< SimplexMesh< float, 3 > >; +template class MeshMapper< SimplexMesh< double, 2 > >; +template class MeshMapper< SimplexMesh< double, 3 > >; + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/MeshMapper.h b/lib/cpm/VTK/MeshMapper.h new file mode 100644 index 0000000..73d80ec --- /dev/null +++ b/lib/cpm/VTK/MeshMapper.h @@ -0,0 +1,101 @@ +#ifndef __CPM__VTK__MESHMAPPER__H__ +#define __CPM__VTK__MESHMAPPER__H__ + +#include +#include + +class vtkActor; +class vtkInformation; +class vtkRenderer; + +namespace cpm +{ + namespace VTK + { + /** + */ + template< class M > + class MeshMapper + : public vtkMapper + { + public: + typedef MeshMapper Self; + vtkTypeMacro( MeshMapper, vtkMapper ); + + typedef M TMesh; + typedef typename M::PointType TPoint; + typedef typename TPoint::VectorType TVector; + typedef typename TPoint::CoordRepType TScalar; + itkStaticConstMacro( Dimension, unsigned int, M::PointDimension ); + + // Begin concept checking +#ifdef ITK_USE_CONCEPT_CHECKING + /* TODO + itkConceptMacro( + InputMeshIsTwoOrThreeimensionalCheck, + ( itk::Concept::SameDimensionOrMinusOne< Self::Dimension, 3 > ) + ); + itkConceptMacro( + ScalarTypeHasFloatResolution, + ( itk::Concept::IsFloatingPoint< TScalar > ) + ); + */ +#endif + // End concept checking + + public: + static Self* New( ); + virtual void ShallowCopy( vtkAbstractMapper* m ); + + virtual void SetInputData( M* in ); + virtual M* GetInput( ); + virtual const M* GetInput( ) const; + + virtual double* GetBounds( ); + virtual void GetBounds( double bounds[ 6 ] ); + + virtual void RenderPiece( vtkRenderer* aren, vtkActor* act ) = 0; + virtual void Render( vtkRenderer* aren, vtkActor* act ); + virtual void Update( ); + virtual void Update( int port ); + + virtual void MapDataArrayToVertexAttribute( + const char* vertexAttributeName, + const char* dataArrayName, + int fieldAssociation, + int componentno = -1 + ); + virtual void MapDataArrayToMultiTextureAttribute( + int unit, + const char* dataArrayName, + int fieldAssociation, + int componentno = -1 + ); + virtual void RemoveVertexAttributeMapping( + const char* vertexAttributeName + ); + virtual void RemoveAllVertexAttributeMappings( ); + + protected: + MeshMapper( ); + virtual ~MeshMapper( ); + + virtual void ComputeBounds( ); + virtual int FillInputPortInformation( int port, vtkInformation* info ); + + private: + // These methods aren't supposed to be implemented + MeshMapper( const Self& other ); + Self& operator=( const Self& other ); + + protected: + typename M::Pointer Mesh; + }; + + } // ecapseman + +} // ecapseman + +#endif // __CPM__VTK__MESHMAPPER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/OpenGLMeshMapper.cxx b/lib/cpm/VTK/OpenGLMeshMapper.cxx new file mode 100644 index 0000000..3d7c11c --- /dev/null +++ b/lib/cpm/VTK/OpenGLMeshMapper.cxx @@ -0,0 +1,627 @@ +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#define GL_GLEXT_PROTOTYPES +#include + +// some definitions for what the polydata has in it +#define CPM_VTK_PDM_NORMALS 0x0001 +#define CPM_VTK_PDM_COLORS 0x0002 +#define CPM_VTK_PDM_TCOORDS 0x0004 +#define CPM_VTK_PDM_CELL_COLORS 0x0008 +#define CPM_VTK_PDM_CELL_NORMALS 0x0010 +#define CPM_VTK_PDM_POINT_TYPE_FLOAT 0x0020 +#define CPM_VTK_PDM_POINT_TYPE_DOUBLE 0x0040 +#define CPM_VTK_PDM_NORMAL_TYPE_FLOAT 0x0080 +#define CPM_VTK_PDM_NORMAL_TYPE_DOUBLE 0x0100 +#define CPM_VTK_PDM_TCOORD_TYPE_FLOAT 0x0200 +#define CPM_VTK_PDM_TCOORD_TYPE_DOUBLE 0x0400 +#define CPM_VTK_PDM_TCOORD_1D 0x0800 +#define CPM_VTK_PDM_OPAQUE_COLORS 0x1000 +#define CPM_VTK_PDM_USE_FIELD_DATA 0x2000 + +// ------------------------------------------------------------------------- +template< class M > +typename cpm::VTK::OpenGLMeshMapper< M >:: +Self* cpm::VTK::OpenGLMeshMapper< M >:: +New( ) +{ + return( new Self( ) ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::OpenGLMeshMapper< M >:: +RenderPiece( vtkRenderer* aren, vtkActor* act ) +{ + vtkOpenGLClearErrorMacro( ); + + // Is the renderer correctly initialized? + if( aren->GetRenderWindow( )->CheckAbortStatus( ) ) + return; + + // Get input mesh ( and check it ) + M* in = this->GetInput( ); + if( !in ) + { + vtkErrorMacro( << "No input!" ); + return; + + } // fi + unsigned long numPts = in->GetNumberOfPoints( ); + if( numPts == 0 ) + { + vtkDebugMacro( << "No points!" ); + return; + + } // fi + + // Update input, if needed + this->InvokeEvent( vtkCommand::StartEvent, NULL ); + if( !this->Static ) + in->Update( ); + this->InvokeEvent( vtkCommand::EndEvent, NULL ); + + // Update some visualization objects + if( !this->LookupTable ) + this->CreateDefaultLookupTable( ); + aren->GetRenderWindow( )->MakeCurrent( ); + + // Check clipping planes + int numClipPlanes = this->GetNumberOfClippingPlanes( ); + if( numClipPlanes > 6 ) + { + vtkErrorMacro( << "OpenGL has a limit of 6 clipping planes" ); + numClipPlanes = 6; + + } // fi + + // Add all the clipping planes + double eq[ 4 ]; + GLenum clipPlaneId; + for( int i = 0; i < numClipPlanes; i++ ) + { + this->GetClippingPlaneInDataCoords( act->GetMatrix( ), i, eq ); + + clipPlaneId = static_cast< GLenum >( GL_CLIP_PLANE0 + i ); + glEnable( clipPlaneId ); + glClipPlane( clipPlaneId, eq ); + + } // rof + + // Configure opacity + this->MapScalars( act->GetProperty( )->GetOpacity( ) ); + + // Configure textures + if( this->ColorTextureMap ) + { + /* TODO + if( !this->InternalColorTexture ) + { + this->InternalColorTexture = + vtkSmartPointer< vtkOpenGLTexture >::New( ); + this->InternalColorTexture->RepeatOff( ); + + } // fi + this->InternalColorTexture->SetInputData( this->ColorTextureMap ); + */ + + // Keep color from interacting with texture. + float info[ 4 ] = { float( 1 ), float( 1 ), float( 1 ), float( 1 ) }; + glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, info ); + + } // fi + + int noAbort = 1; + bool renderNeeded = !this->ImmediateModeRendering; + renderNeeded &= !this->GetGlobalImmediateModeRendering( ); + + // Something has changed in the pipeline? + if( + this->GetMTime( ) > this->BuildTime || + in->GetMTime( ) > this->BuildTime || + act->GetProperty( )->GetMTime( ) > this->BuildTime || + aren->GetRenderWindow( ) != this->LastWindow + ) + { + // Update visualization objects + this->ReleaseGraphicsResources( aren->GetRenderWindow( ) ); + this->LastWindow = aren->GetRenderWindow( ); + + if( renderNeeded ) + { + // Load textures + /* TODO + if( this->ColorTextureMap ) + this->InternalColorTexture->Load( aren ); + */ + + // Time the actual drawing + this->Timer->StartTimer( ); + noAbort = this->Draw( aren, act ); + this->Timer->StopTimer( ); + + } // fi + + if( noAbort ) + this->BuildTime.Modified( ); + } + else + { + // If nothing changed, just draw the mapped mesh + if( renderNeeded ) + { + // Load textures + /* TODO + if( this->ColorTextureMap ) + this->InternalColorTexture->Load( aren ); + */ + + // Time the actual drawing + this->Timer->StartTimer( ); + this->Draw( aren, act ); + this->Timer->StopTimer( ); + + } // fi + + } // fi + + // if we are in immediate mode rendering we always + // want to draw the primitives here + if( !renderNeeded ) + { + // Load textures + /* TODO + if( this->ColorTextureMap ) + this->InternalColorTexture->Load( aren ); + */ + + // Time the actual drawing + this->Timer->StartTimer( ); + this->Draw( aren, act ); + this->Timer->StopTimer( ); + + } // fi + this->TimeToDraw = this->Timer->GetElapsedTime( ); + + // If the timer is not accurate enough, set it to a small + // time so that it is not zero + if( this->TimeToDraw == double( 0 ) ) + this->TimeToDraw = double( 1e-3 ); + + for( int c = 0; c < numClipPlanes; c++ ) + { + GLenum clipPlaneId = static_cast< GLenum >( GL_CLIP_PLANE0 + c ); + glDisable( clipPlaneId ); + + } // rof + vtkOpenGLCheckErrorMacro( "failed after RenderPiece\n" ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::OpenGLMeshMapper< M >:: +ReleaseGraphicsResources( vtkWindow* win ) +{ + if( win && win->GetMapped( ) ) + { + win->MakeCurrent( ); + vtkOpenGLCheckErrorMacro( "failed after ReleaseGraphicsResources" ); + + } // fi + this->LastWindow = NULL; + + // TAKEN FROM BASIC vtkOpenGLPolyDataMapper: + // We may not want to do this here. + /* TODO + if( this->InternalColorTexture ) + this->InternalColorTexture->ReleaseGraphicsResources( win ); + */ +} + +// ------------------------------------------------------------------------- +template< class M > +int cpm::VTK::OpenGLMeshMapper< M >:: +Draw( vtkRenderer* aren, vtkActor* act ) +{ + vtkOpenGLClearErrorMacro( ); + + // First and second initialization check + if( this->FirstRendering ) + this->FirstRendering = !( this->_ConfigureOpenGL( ) ); + if( this->FirstRendering ) + return( 0 ); + + vtkOpenGLRenderer* ren = static_cast< vtkOpenGLRenderer* >( aren ); + int rep, interpolation; + float tran; + vtkProperty* prop; + vtkUnsignedCharArray* c = NULL; + int tDim; + int noAbort = 1; + M* input = this->GetInput( ); + int cellScalars = 0; + vtkIdType cellNum = 0; + int cellNormals; + int resolve = 0, zResolve = 0; + double zRes = 0.0; + + // get the property + prop = act->GetProperty( ); + + // get the transparency + tran = prop->GetOpacity( ); + + // if the primitives are invisable then get out of here + if( tran <= 0.0 ) + return( noAbort ); + + // get the representation ( e.g., surface / wireframe / points ) + rep = prop->GetRepresentation( ); + + // get the shading interpolation + interpolation = prop->GetInterpolation( ); + + // are they cell or point scalars + if( this->Colors ) + { + c = this->Colors; + if( + ( + this->ScalarMode == VTK_SCALAR_MODE_USE_CELL_DATA || + this->ScalarMode == VTK_SCALAR_MODE_USE_CELL_FIELD_DATA || + this->ScalarMode == VTK_SCALAR_MODE_USE_FIELD_DATA || + !input->GetPointData( ) + ) && + this->ScalarMode != VTK_SCALAR_MODE_USE_POINT_FIELD_DATA + ) + cellScalars = 1; + + } // fi + + cellNormals = 1; + + // if we are doing vertex colors then set lmcolor to adjust + // the current materials ambient and diffuse values using + // vertex color commands otherwise tell it not to. + glDisable( GL_COLOR_MATERIAL ); + if( c ) + { + GLenum lmcolorMode; + if( this->ScalarMaterialMode == VTK_MATERIALMODE_DEFAULT ) + { + if( prop->GetAmbient( ) > prop->GetDiffuse( ) ) + lmcolorMode = GL_AMBIENT; + else + lmcolorMode = GL_DIFFUSE; + } + else if( this->ScalarMaterialMode == VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE ) + lmcolorMode = GL_AMBIENT_AND_DIFFUSE; + else if( this->ScalarMaterialMode == VTK_MATERIALMODE_AMBIENT ) + lmcolorMode = GL_AMBIENT; + else // if( this->ScalarMaterialMode == VTK_MATERIALMODE_DIFFUSE ) + lmcolorMode = GL_DIFFUSE; + glColorMaterial( GL_FRONT_AND_BACK, lmcolorMode ); + glEnable( GL_COLOR_MATERIAL ); + + } // fi + + unsigned long idx = 0; + if( c ) + { + idx |= CPM_VTK_PDM_COLORS; + if( c->GetName( ) ) + idx |= CPM_VTK_PDM_OPAQUE_COLORS; + } // fi + if( cellScalars ) + idx |= CPM_VTK_PDM_CELL_COLORS; + if( cellNormals ) + idx |= CPM_VTK_PDM_CELL_NORMALS; + if( this->ScalarMode == VTK_SCALAR_MODE_USE_FIELD_DATA ) + idx |= CPM_VTK_PDM_USE_FIELD_DATA; + + // store the types in the index + if( typeid( typename M::CoordRepType ) == typeid( float ) ) + idx |= CPM_VTK_PDM_POINT_TYPE_FLOAT; + else if( typeid( typename M::CoordRepType ) == typeid( double ) ) + idx |= CPM_VTK_PDM_POINT_TYPE_DOUBLE; + + if( typeid( typename M::CoordRepType ) == typeid( float ) ) + idx |= CPM_VTK_PDM_NORMAL_TYPE_FLOAT; + else if( typeid( typename M::CoordRepType ) == typeid( double ) ) + idx |= CPM_VTK_PDM_NORMAL_TYPE_DOUBLE; + + if( this->GetResolveCoincidentTopology( ) ) + { + resolve = 1; + if( this->GetResolveCoincidentTopology( ) == VTK_RESOLVE_SHIFT_ZBUFFER ) + { + zResolve = 1; + zRes = this->GetResolveCoincidentTopologyZShift( ); + } + else + { +#ifdef GL_VERSION_1_1 + double f, u; + glEnable( GL_POLYGON_OFFSET_FILL ); + this->GetResolveCoincidentTopologyPolygonOffsetParameters( f, u ); + glPolygonOffset( f, u ); +#endif + } // fi + + } // fi + + // we need to know the total number of cells so that we can + // report progress + this->TotalCells = input->GetNumberOfCells( ); + + // Actual render + if( this->VBOSupported ) + { + glBindBuffer( GL_ARRAY_BUFFER, GLuint( this->VBOID1 ) ); + + void* ptr = glMapBuffer( GL_ARRAY_BUFFER, GL_READ_WRITE ); + if( ptr != NULL ) + { + // Copy source points to OpenGL buffer + const TPoint* src = + input->GetPoints( )->CastToSTLContainer( ).data( ); + TPoint* dest = reinterpret_cast< TPoint* >( ptr ); + if( dest != NULL ) + std::copy( src, src + input->GetNumberOfPoints( ), dest ); + glUnmapBuffer( GL_ARRAY_BUFFER ); + + } // fi + + std::size_t pSize = input->GetNumberOfPoints( ) * sizeof( TPoint ); + + // Bind vertices, normals and indices + glNormalPointer( this->ElementValueType, 0, ( void* )( pSize ) ); + glVertexPointer( 3, this->ElementValueType, 0, 0 ); + glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, GLuint( this->VBOID2 ) ); + + // Prepare to render polygons + glEnableClientState( GL_NORMAL_ARRAY ); + glEnableClientState( GL_VERTEX_ARRAY ); + + // Iterate over all input cells + unsigned int accum = 0; + const TCellsContainer* cells = input->GetCells( ); + TCellIt cIt = cells->Begin( ); + for( unsigned int nCell = 0; cIt != cells->End( ); nCell++, cIt++ ) + { + const TCell* cell = cIt.Value( ); + unsigned int nPoints = this->Sizes[ nCell ]; + + // Infere rendering mode + GLenum mode; + switch( prop->GetRepresentation( ) ) + { + case VTK_SURFACE: + { + switch( nPoints ) + { + case 1: mode = GL_POINTS; break; + case 2: mode = GL_LINES; break; + case 3: mode = GL_TRIANGLES; break; + case 4: mode = GL_QUADS; break; + default: mode = GL_POLYGON; break; + } // hctiws + // TODO: GL_LINE_STRIP, + // TODO: GL_LINE_LOOP, + // TODO: GL_TRIANGLE_STRIP, + // TODO: GL_TRIANGLE_FAN, + // TODO: GL_QUAD_STRIP, + } + break; + case VTK_WIREFRAME: mode = GL_LINE_LOOP; break; + case VTK_POINTS: default: mode = GL_POINTS; break; + } // hctiws + + // Actual draw all elements + if( nPoints < 3 ) + glDisable( GL_LIGHTING ); + + if( nPoints == 2 && zResolve ) + glDepthRange( zRes, 1. ); + + glDrawElements( + mode, nPoints, this->IndexElementType, ( GLuint* )( 0 ) + accum + ); + accum += nPoints; + + if( nPoints < 3 ) + glEnable( GL_LIGHTING ); + + } // rof + + glDisableClientState( GL_VERTEX_ARRAY ); + glDisableClientState( GL_NORMAL_ARRAY ); + + glBindBuffer( GL_ARRAY_BUFFER, 0 ); + glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0 ); + } + else + { + std::cout << "Not VBO rendering!!!" << std::endl; + + } // fi + + if( resolve ) + { + if( zResolve ) + glDepthRange( 0., 1. ); + else + { +#ifdef GL_VERSION_1_1 + glDisable( GL_POLYGON_OFFSET_FILL ); +#endif + } // fi + + } // fi + vtkOpenGLCheckErrorMacro( "failed after Draw" ); + this->UpdateProgress( 1.0 ); + return( noAbort ); +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::OpenGLMeshMapper< M >:: +OpenGLMeshMapper( ) + : Superclass( ), + TotalCells( 0 ), + FirstRendering( true ), + VBOID1( 0 ), + VBOID2( 0 ) +{ + // Infere index element type + switch( sizeof( TIndex ) ) + { + case 1 : this->IndexElementType = GL_UNSIGNED_BYTE; break; + case 2 : this->IndexElementType = GL_UNSIGNED_SHORT; break; + case 4 : this->IndexElementType = GL_UNSIGNED_INT; break; + default: this->IndexElementType = GL_UNSIGNED_BYTE; break; + } // hctiws + + // Infere point value type + if( typeid( TScalar ) == typeid( float ) ) + this->ElementValueType = GL_FLOAT; + else + this->ElementValueType = GL_DOUBLE; +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::OpenGLMeshMapper< M >:: +~OpenGLMeshMapper( ) +{ + if( this->LastWindow ) + this->ReleaseGraphicsResources( this->LastWindow ); + if( this->VBOSupported ) + { + GLuint id1 = GLuint( this->VBOID1 ); + GLuint id2 = GLuint( this->VBOID2 ); + if( id1 != GLuint( 0 ) ) glDeleteBuffers( 1, &id1 ); + if( id2 != GLuint( 0 ) ) glDeleteBuffers( 1, &id2 ); + this->VBOID1 = this->VBOID2 = 0; + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +bool cpm::VTK::OpenGLMeshMapper< M >:: +_ConfigureOpenGL( ) +{ + M* input = this->GetInput( ); + if( input == NULL ) + return( false ); + + // Check if VBO ( Vertex Buffer Object ) is supported + std::string str = ( const char* )( glGetString( GL_EXTENSIONS ) ); + this->VBOSupported = + ( str.find( "GL_ARB_vertex_buffer_object" ) != std::string::npos ); + + if( this->VBOSupported ) + { + // Create points and normals buffers + GLuint id1; + std::size_t pSize = input->GetNumberOfPoints( ) * sizeof( TPoint ); + std::size_t nSize = + input->GetPointNormalsContainer( ).size( ) * sizeof( TVector ); + const TPoint* verts = + input->GetPoints( )->CastToSTLContainer( ).data( ); + const TVector* norms = input->GetPointNormalsContainer( ).data( ); + glGenBuffers( 1, &id1 ); + glBindBuffer( GL_ARRAY_BUFFER, id1 ); + glBufferData( GL_ARRAY_BUFFER, pSize + nSize, 0, GL_STREAM_DRAW ); + glBufferSubData( GL_ARRAY_BUFFER, 0, pSize, verts ); + glBufferSubData( GL_ARRAY_BUFFER, pSize, nSize, norms ); + this->VBOID1 = ( unsigned int )( id1 ); + + // Create indices buffer + const TCellsContainer* cells = input->GetCells( ); + if( cells == NULL ) + { + itkExceptionMacro( + << "This QuadEdgeMesh does not have any cells!" + ); + + } // fi + + TCellIt cIt; + unsigned int cellPointsCount = 0; + this->Sizes.clear( ); + for( cIt = cells->Begin( ); cIt != cells->End( ); cIt++ ) + { + this->Sizes.push_back( cIt.Value( )->GetNumberOfPoints( ) ); + cellPointsCount += this->Sizes.back( ); + + } // rof + this->Indices.resize( cellPointsCount ); + unsigned int indId = 0; + for( cIt = cells->Begin( ); cIt != cells->End( ); cIt++ ) + { + const typename M::TQuadEdgeCell* cell = + dynamic_cast< const typename M::TQuadEdgeCell* >( cIt.Value( ) ); + const typename M::TPrimalEdge* edge = + cell->GetEntryPrimalEdge( ); + typename M::TPrimalEdge::ConstIterator iIt = edge->BeginLnext( ); + for( ; iIt != edge->EndLnext( ); ++iIt ) + this->Indices[ indId++ ] = ( *iIt )->GetOrigin( ); + + } // fi + + // Attach index buffer to VBO + std::size_t iSize = std::size_t( this->Indices.size( ) ); + iSize *= sizeof( TIndex ); + const unsigned int* indices = this->Indices.data( ); + GLuint id2; + glGenBuffers( 1, &id2 ); + glBindBuffer( GL_ARRAY_BUFFER, id2 ); + glBufferData( GL_ARRAY_BUFFER, iSize, indices, GL_STATIC_DRAW ); + + int bSize; + glGetBufferParameteriv( GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &bSize ); + if( iSize != bSize ) + { + glDeleteBuffers( 1, &id2 ); + id2 = 0; + vtkErrorMacro( << "Data size mismatch with input array" ); + + } // fi + this->VBOID2 = ( unsigned int )( id2 ); + + } // fi + return( true ); +} + +// ------------------------------------------------------------------------- +#include +#include + +using namespace cpm::DataStructures; +using namespace cpm::VTK; + +template class OpenGLMeshMapper< QuadEdgeMesh< float, 2 > >; +template class OpenGLMeshMapper< QuadEdgeMesh< float, 3 > >; +template class OpenGLMeshMapper< QuadEdgeMesh< double, 2 > >; +template class OpenGLMeshMapper< QuadEdgeMesh< double, 3 > >; + +template class OpenGLMeshMapper< SimplexMesh< float, 2 > >; +template class OpenGLMeshMapper< SimplexMesh< float, 3 > >; +template class OpenGLMeshMapper< SimplexMesh< double, 2 > >; +template class OpenGLMeshMapper< SimplexMesh< double, 3 > >; + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/OpenGLMeshMapper.h b/lib/cpm/VTK/OpenGLMeshMapper.h new file mode 100644 index 0000000..e8b5aec --- /dev/null +++ b/lib/cpm/VTK/OpenGLMeshMapper.h @@ -0,0 +1,84 @@ +#ifndef __CPM__VTK__OPENGLMESHMAPPER__H__ +#define __CPM__VTK__OPENGLMESHMAPPER__H__ + +#include + +/* + #include + #include +*/ + +#include +#include + +#include + +namespace cpm +{ + namespace VTK + { + /** + */ + template< class M > + class OpenGLMeshMapper + : public MeshMapper< M > + { + public: + typedef OpenGLMeshMapper Self; + vtkTypeMacro( OpenGLMeshMapper, MeshMapper< M > ); + + typedef typename Superclass::TMesh TMesh; + typedef typename Superclass::TPoint TPoint; + typedef typename Superclass::TVector TVector; + typedef typename Superclass::TScalar TScalar; + + protected: + typedef unsigned int TIndex; + typedef typename M::CellType TCell; + typedef typename M::CellsContainer TCellsContainer; + typedef typename TCellsContainer::ConstIterator TCellIt; + + public: + virtual const char* GetNameOfClass( ) const + { return( "cpm::VTK::OpenGLMeshMapper" ); } + static Self* New( ); + + virtual void RenderPiece( vtkRenderer* aren, vtkActor* act ); + virtual void ReleaseGraphicsResources( vtkWindow* win ); + virtual int Draw( vtkRenderer* aren, vtkActor* act ); + + protected: + OpenGLMeshMapper( ); + virtual ~OpenGLMeshMapper( ); + + bool _ConfigureOpenGL( ); + + private: + // Purposely not implemented + OpenGLMeshMapper( const Self& other ); + Self& operator=( const Self& other ); + + protected: + vtkIdType TotalCells; + // TODO: vtkSmartPointer< vtkOpenGLTexture > InternalColorTexture; + + bool FirstRendering; + + bool VBOSupported; + unsigned int VBOID1, VBOID2; + + std::vector< unsigned int > Sizes; + std::vector< TIndex > Indices; + long IndexElementType; + long ElementValueType; + }; + + } // ecapseman + +} // ecapseman + +//#include + +#endif // __CPM__VTK__OPENGLMESHMAPPER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/PointPickerRepresentation.h b/lib/cpm/VTK/PointPickerRepresentation.h new file mode 100644 index 0000000..50bda11 --- /dev/null +++ b/lib/cpm/VTK/PointPickerRepresentation.h @@ -0,0 +1,113 @@ +#ifndef __CPM__VTK__POINTPICKERREPRESENTATION__H__ +#define __CPM__VTK__POINTPICKERREPRESENTATION__H__ + +#include +#include +#include + +#include + +namespace cpm +{ + namespace VTK + { + template< class M > + class PointPickerRepresentation + : public vtkWidgetRepresentation + { + public: + typedef PointPickerRepresentation Self; + typedef M TMesh; + + typedef MeshMapper< M > TMapper; + + public: + vtkTypeMacro( PointPickerRepresentation, vtkWidgetRepresentation ); + + public: + static Self* New( ) + { + return( new Self( ) ); + } + + void SetMesh( M* mesh ) + { + this->m_Mesh = mesh; + this->m_MeshMapper = vtkSmartPointer< TMapper >::New( ); + this->m_MeshMapper->SetInputData( this->m_Mesh ); + + this->m_MeshActor = vtkSmartPointer< vtkActor >::New( ); + this->m_MeshActor->SetMapper( this->m_MeshMapper ); + + this->Modified( ); + } + + virtual void BuildRepresentation( ) + { + std::cout << "PointPickerRepresentation BuildRepresentation" << std::endl; + std::exit( 1 ); + } + virtual void PlaceWidget( double* bounds[ 6 ] ) + { + std::cout << "PointPickerRepresentation PlaceWidget" << std::endl; + std::exit( 1 ); + } + virtual void StartWidgetInteraction( double eventPos[ 2 ] ) + { + std::cout << "PointPickerRepresentation StartWidgetInteraction" << std::endl; + std::exit( 1 ); + } + virtual void WidgetInteraction( double newEventPos[ 2 ] ) + { + std::cout << "PointPickerRepresentation WidgetInteraction" << std::endl; + std::exit( 1 ); + } + virtual void EndWidgetInteraction( double newEventPos[ 2 ] ) + { + std::cout << "PointPickerRepresentation EndWidgetInteraction" << std::endl; + std::exit( 1 ); + } + virtual int ComputeInteractionState( int X, int Y, int modify = 0 ) + { + std::cout << "PointPickerRepresentation ComputeInteractionState" << std::endl; + std::exit( 1 ); + } + virtual int GetInteractionState( ) + { + std::cout << "PointPickerRepresentation GetInteractionState" << std::endl; + std::exit( 1 ); + } + virtual void Highlight(int highlightOn ) + { + std::cout << "PointPickerRepresentation Highlight" << std::endl; + std::exit( 1 ); + } + + protected: + PointPickerRepresentation( ) + : Superclass( ) + { + } + + virtual ~PointPickerRepresentation( ) + { + } + + private: + // Purposely not implemented + PointPickerRepresentation( const Self& ); + void operator=( const Self& ); + + protected: + typename M::Pointer m_Mesh; + vtkSmartPointer< TMapper > m_MeshMapper; + vtkSmartPointer< vtkActor > m_MeshActor; + }; + + } // ecapseman + +} // ecapseman + +#endif // __CPM__VTK__POINTPICKERREPRESENTATION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/PointPickerWidget.h b/lib/cpm/VTK/PointPickerWidget.h new file mode 100644 index 0000000..0349c4e --- /dev/null +++ b/lib/cpm/VTK/PointPickerWidget.h @@ -0,0 +1,248 @@ +#ifndef __CPM__VTK__POINTPICKERWIDGET__H__ +#define __CPM__VTK__POINTPICKERWIDGET__H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace cpm +{ + namespace VTK + { + template< class M > + class PointPickerWidget + : public vtk3DWidget + { + public: + typedef PointPickerWidget Self; + typedef M TMesh; + + typedef MeshMapper< M > TMapper; + typedef cpm::Algorithms::Base::FindClosestPointInMesh< M > TClosestPoint; + + public: + vtkTypeMacro( PointPickerWidget, vtk3DWidget ); + + public: + static Self* New( ) + { + return( new Self( ) ); + } + + void SetMesh( M* mesh ) + { + this->m_Mesh = mesh; + this->m_MeshMapper = vtkSmartPointer< TMapper >::New( ); + this->m_MeshMapper->SetInputData( this->m_Mesh ); + + this->m_MeshActor = vtkSmartPointer< vtkActor >::New( ); + this->m_MeshActor->SetMapper( this->m_MeshMapper ); + + this->m_ClosestPoint = TClosestPoint::New( ); + this->m_ClosestPoint->SetMesh( mesh ); + this->m_ClosestPoint->SetBucketSize( 16 ); + this->m_ClosestPoint->Build( ); + + this->Modified( ); + } + + virtual void PlaceWidget( double bounds[ 6 ] ) + { } + virtual void PlaceWidget( ) + { } + virtual void PlaceWidget( + double xmin, double xmax, + double ymin, double ymax, + double zmin, double zmax + ) + { } + + void SetEnabled( int enabling ) + { + if( !this->Interactor ) + return; + + if( enabling ) + { + if( this->Enabled ) + return; + if( !this->CurrentRenderer ) + { + this->SetCurrentRenderer( + this->Interactor->FindPokedRenderer( + this->Interactor->GetLastEventPosition( )[ 0 ], + this->Interactor->GetLastEventPosition( )[ 1 ] + ) + ); + if( this->CurrentRenderer == NULL ) + return; + + } // fi + this->Enabled = 1; + + this->Interactor->AddObserver( + vtkCommand::MouseMoveEvent, + this->EventCallbackCommand, + this->Priority + ); + /* + this->Interactor->AddObserver( + vtkCommand::LeftButtonPressEvent, + this->EventCallbackCommand, + this->Priority + ); + this->Interactor->AddObserver( + vtkCommand::LeftButtonReleaseEvent, + this->EventCallbackCommand, + this->Priority + ); + this->Interactor->AddObserver( + vtkCommand::RightButtonPressEvent, + this->EventCallbackCommand, + this->Priority + ); + this->Interactor->AddObserver( + vtkCommand::RightButtonReleaseEvent, + this->EventCallbackCommand, + this->Priority + ); + */ + + this->CurrentRenderer->AddActor( this->m_MeshActor ); + this->CurrentRenderer->AddActor( this->m_SphereActor ); + this->InvokeEvent( vtkCommand::EnableEvent, NULL ); + } + else + { + if( !this->Enabled ) + return; + this->Enabled = 0; + + this->Interactor->RemoveObserver( this->EventCallbackCommand ); + this->CurrentRenderer->RemoveActor( this->m_MeshActor ); + this->CurrentRenderer->RemoveActor( this->m_SphereActor ); + this->InvokeEvent( vtkCommand::DisableEvent, NULL ); + this->SetCurrentRenderer( NULL ); + + } // fi + this->Interactor->Render( ); + } + + protected: + PointPickerWidget( ) + : Superclass( ), + BucketSize( 16 ) + { + this->EventCallbackCommand->SetCallback( Self::ProcessEvents ); + this->m_Sphere = vtkSmartPointer< vtkSphereSource >::New( ); + this->m_SphereMapper = vtkSmartPointer< vtkPolyDataMapper >::New( ); + this->m_SphereActor = vtkSmartPointer< vtkActor >::New( ); + + this->m_Sphere->SetRadius( 1e-3 ); + this->m_SphereMapper->SetInputConnection( this->m_Sphere->GetOutputPort( ) ); + this->m_SphereActor->SetMapper( this->m_SphereMapper ); + this->m_SphereActor->GetProperty( )->SetColor( 1, 0, 0 ); + } + + virtual ~PointPickerWidget( ) + { + } + + static void ProcessEvents( + vtkObject* object, + unsigned long event, + void* clientdata, + void* calldata + ) + { + Self* wdg = reinterpret_cast< Self* >( clientdata ); + if( wdg == NULL ) + return; + + switch( event ) + { + case vtkCommand::MouseMoveEvent: + wdg->OnMouseMoveEvent( ); + break; + default: + break; + } // hctiws + } + + void OnMouseMoveEvent( ) + { + if( this->CurrentRenderer == NULL ) + return; + + // Does it have an actor picker? + vtkPropPicker* picker = + dynamic_cast< vtkPropPicker* >( this->Interactor->GetPicker( ) ); + if( picker == NULL ) + return; + + // Get last event position + double X = double( this->Interactor->GetEventPosition( )[ 0 ] ); + double Y = double( this->Interactor->GetEventPosition( )[ 1 ] ); + + // Ok, try to pick an actor + if( picker->PickProp( X, Y, this->CurrentRenderer ) == 0 ) + return; + + // Is the picked actor the current mesh actor? + vtkActor* actor = + dynamic_cast< vtkActor* >( picker->GetProp3D( ) ); + if( actor != this->m_MeshActor.GetPointer( ) ) + return; + + // Ok, we are ready to compute + double cPnt[ 3 ], aPnt[ 3 ]; + picker->GetPickPosition( cPnt ); + this->CurrentRenderer->GetActiveCamera( )->GetPosition( aPnt ); + typename M::PointIdentifier pId = + this->m_ClosestPoint->FindClosestPoint( cPnt, aPnt ); + typename M::PointType pnt = this->m_Mesh->GetPoint( pId ); + this->m_Sphere->SetCenter( + double( pnt[ 0 ] ), + double( pnt[ 1 ] ), + double( pnt[ 2 ] ) + ); + this->m_SphereMapper->Modified( ); + this->m_SphereActor->Modified( ); + this->Interactor->Render( ); + } + + private: + // Purposely not implemented + PointPickerWidget( const Self& ); + void operator=( const Self& ); + + protected: + unsigned int BucketSize; + + typename M::Pointer m_Mesh; + vtkSmartPointer< TMapper > m_MeshMapper; + vtkSmartPointer< vtkActor > m_MeshActor; + + typename TClosestPoint::Pointer m_ClosestPoint; + + vtkSmartPointer< vtkSphereSource > m_Sphere; + vtkSmartPointer< vtkPolyDataMapper > m_SphereMapper; + vtkSmartPointer< vtkActor > m_SphereActor; + }; + + } // ecapseman + +} // ecapseman + +#endif // __CPM__VTK__POINTPICKERWIDGET__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/PolyDataToMeshFilter.h b/lib/cpm/VTK/PolyDataToMeshFilter.h new file mode 100644 index 0000000..5f58db8 --- /dev/null +++ b/lib/cpm/VTK/PolyDataToMeshFilter.h @@ -0,0 +1,54 @@ +#ifndef __CPM__VTK__POLYDATATOMESHFILTER__H__ +#define __CPM__VTK__POLYDATATOMESHFILTER__H__ + +#include +#include + +namespace cpm +{ + namespace VTK + { + /** + */ + template< class M > + class PolyDataToMeshFilter + : public itk::MeshSource< M > + { + public: + typedef PolyDataToMeshFilter Self; + typedef itk::MeshSource< M > Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + public: + itkNewMacro( Self ); + itkTypeMacro( PolyDataToMeshFilter, itkMeshSource ); + + public: + const vtkPolyData* GetInput( ) const; + void SetInput( const vtkPolyData* input ); + + protected: + PolyDataToMeshFilter( ); + virtual ~PolyDataToMeshFilter( ); + + virtual void GenerateData( ); + + private: + // These methods aren't supposed to be implemented + PolyDataToMeshFilter( const Self& other ); + Self& operator=( const Self& other ); + + protected: + const vtkPolyData* m_Input; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__VTK__POLYDATATOMESHFILTER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/PolyDataToMeshFilter.hxx b/lib/cpm/VTK/PolyDataToMeshFilter.hxx new file mode 100644 index 0000000..7ba596b --- /dev/null +++ b/lib/cpm/VTK/PolyDataToMeshFilter.hxx @@ -0,0 +1,94 @@ +#ifndef __CPM__VTK__POLYDATATOMESHFILTER__HXX__ +#define __CPM__VTK__POLYDATATOMESHFILTER__HXx__ + +#include +#include + +// ------------------------------------------------------------------------- +template< class M > +const vtkPolyData* cpm::VTK::PolyDataToMeshFilter< M >:: +GetInput( ) const +{ + return( this->m_Input ); +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::PolyDataToMeshFilter< M >:: +SetInput( const vtkPolyData* input ) +{ + if( this->m_Input != input ) + { + this->m_Input = input; + this->Modified( ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::PolyDataToMeshFilter< M >:: +PolyDataToMeshFilter( ) + : Superclass( ), + m_Input( NULL ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +cpm::VTK::PolyDataToMeshFilter< M >:: +~PolyDataToMeshFilter( ) +{ +} + +// ------------------------------------------------------------------------- +template< class M > +void cpm::VTK::PolyDataToMeshFilter< M >:: +GenerateData( ) +{ + typedef typename M::PixelType _TScalar; + typedef itk::PolygonCell< typename M::CellType > _TPolygonCell; + + vtkPolyData* in = const_cast< vtkPolyData* >( this->m_Input ); + typename M::Pointer out = this->GetOutput( ); + out->Initialize( ); + if( in == NULL ) + return; + + // Assign points + double vpnt[ 3 ]; + typename M::PointType ipnt; + for( unsigned long pId = 0; pId < in->GetNumberOfPoints( ); ++pId ) + { + in->GetPoint( pId, vpnt ); + ipnt.Fill( _TScalar( 0 ) ); + if( M::PointDimension > 0 ) ipnt[ 0 ] = _TScalar( vpnt[ 0 ] ); + if( M::PointDimension > 1 ) ipnt[ 1 ] = _TScalar( vpnt[ 1 ] ); + if( M::PointDimension > 2 ) ipnt[ 2 ] = _TScalar( vpnt[ 2 ] ); + out->SetPoint( pId, ipnt ); + + } // rof + + // Assign cells + for( unsigned long cId = 0; cId < in->GetNumberOfCells( ); ++cId ) + { + vtkCell* vcell = in->GetCell( cId ); + unsigned int nPoints = vcell->GetNumberOfPoints( ); + if( 2 < nPoints ) + { + // Add a face + typename M::CellAutoPointer cell; + _TPolygonCell* face = new _TPolygonCell( ); + for( unsigned int k = 0; k < nPoints; ++k ) + face->AddPointId( vcell->GetPointId( k ) ); + cell.TakeOwnership( face ); + out->SetCell( out->GetNumberOfCells( ), cell ); + + } // fi + + } // rof +} + +#endif // __CPM__VTK__POLYDATATOMESHFILTER__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/ThreadedDeformation.h b/lib/cpm/VTK/ThreadedDeformation.h new file mode 100644 index 0000000..dbd76dd --- /dev/null +++ b/lib/cpm/VTK/ThreadedDeformation.h @@ -0,0 +1,61 @@ +#ifndef __CPM__VTK__THREADEDDEFORMATION__H__ +#define __CPM__VTK__THREADEDDEFORMATION__H__ + +// Configure compiler and headers +#include +#include +#include +#if ( defined( _WIN32 ) || defined ( _WIN64 ) ) && !defined( __CYGWIN__ ) +# undef CPM_VTK_THREADEDDEFORMATION_ON_LINUX +#else +# define CPM_VTK_THREADEDDEFORMATION_ON_LINUX +# include +# include +#endif + +namespace cpm +{ + namespace VTK + { + /** + */ + template< class F > + class ThreadedDeformation + : public vtkMultiThreader + { + public: + typedef ThreadedDeformation Self; + typedef F TFilter; + + protected: + typedef std::pair< F*, vtkRenderWindow* > _TData; + + public: + vtkTypeMacro( ThreadedDeformation, vtkMultiThreader ); + + public: + static Self* New( ); + static void InitThreadSupport( ); + int ExecuteFilter( F* filter, vtkRenderWindow* window ); + + protected: + ThreadedDeformation( ); + virtual ~ThreadedDeformation( ); + + static void* _Function( void* arg ); + + private: + // Purposely not implemented + ThreadedDeformation( const Self& ); + Self& operator=( const Self& ); + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__VTK__THREADEDDEFORMATION__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/ThreadedDeformation.hxx b/lib/cpm/VTK/ThreadedDeformation.hxx new file mode 100644 index 0000000..4b94d4a --- /dev/null +++ b/lib/cpm/VTK/ThreadedDeformation.hxx @@ -0,0 +1,81 @@ +#ifndef __CPM__VTK__THREADEDDEFORMATION__HXX__ +#define __CPM__VTK__THREADEDDEFORMATION__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< class F > +typename cpm::VTK::ThreadedDeformation< F >:: +Self* cpm::VTK::ThreadedDeformation< F >:: +New( ) +{ + return( new Self( ) ); +} + +// ------------------------------------------------------------------------- +template< class F > +void cpm::VTK::ThreadedDeformation< F >:: +InitThreadSupport( ) +{ +#ifdef CPM_VTK_THREADEDDEFORMATION_ON_LINUX + XInitThreads( ); +#endif +} + +// ------------------------------------------------------------------------- +template< class F > +int cpm::VTK::ThreadedDeformation< F >:: +ExecuteFilter( F* filter, vtkRenderWindow* window ) +{ + static _TData data; + data.first = filter; + data.second = window; + return( this->SpawnThread( Self::_Function, &data ) ); +} + +// ------------------------------------------------------------------------- +template< class F > +cpm::VTK::ThreadedDeformation< F >:: +ThreadedDeformation( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +template< class F > +cpm::VTK::ThreadedDeformation< F >:: +~ThreadedDeformation( ) +{ +} + +// ------------------------------------------------------------------------- +template< class F > +void* cpm::VTK::ThreadedDeformation< F >:: +_Function( void* arg ) +{ + typedef cpm::VTK::ThreadedDeformationObserver< F > _TObserver; + typedef Superclass::ThreadInfo _TInfo; + typedef typename F::AllMeshUpdatedEvent _TEvt; + + // Get inputs + _TInfo* info = reinterpret_cast< _TInfo* >( arg ); + if( info == NULL ) + return( 0 ); + _TData* data = reinterpret_cast< _TData* >( info->UserData ); + if( data == NULL ) + return( 0 ); + F* filter = data->first; + vtkRenderWindow* window = data->second; + + // Add observers, execute and remove observers + typename _TObserver::Pointer obs = _TObserver::New( ); + obs->Configure( window ); + unsigned long id = filter->AddObserver( _TEvt( ), obs ); + filter->Update( ); + filter->RemoveObserver( id ); + return( 0 ); +} + +#endif // __CPM__VTK__THREADEDDEFORMATION__HXX__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/ThreadedDeformationObserver.h b/lib/cpm/VTK/ThreadedDeformationObserver.h new file mode 100644 index 0000000..876e090 --- /dev/null +++ b/lib/cpm/VTK/ThreadedDeformationObserver.h @@ -0,0 +1,56 @@ +#ifndef __CPM__VTK__THREADEDDEFORMATIONOBSERVER__H__ +#define __CPM__VTK__THREADEDDEFORMATIONOBSERVER__H__ + +#include +#include +#include +#include + +namespace cpm +{ + namespace VTK + { + /** + */ + template< class F > + class ThreadedDeformationObserver + : public itk::Command + { + public: + typedef ThreadedDeformationObserver Self; + typedef itk::Command Superclass; + typedef itk::SmartPointer< Self > Pointer; + typedef itk::SmartPointer< const Self > ConstPointer; + + public: + itkNewMacro( Self ); + itkTypeMacro( ThreadedDeformationObserver, itkCommand ); + + public: + void Configure( vtkRenderWindow* w ); + void Execute( itk::Object* caller, const itk::EventObject& evt ); + void Execute( const itk::Object* caller, const itk::EventObject& evt ); + + protected: + ThreadedDeformationObserver( ); + virtual ~ThreadedDeformationObserver( ); + + private: + // Purposely not implemented + ThreadedDeformationObserver( const Self& ); + Self& operator=( const Self& ); + + protected: + vtkRenderWindow* m_Window; + vtkSmartPointer< vtkMutexLock > m_MutexLock; + }; + + } // ecapseman + +} // ecapseman + +#include + +#endif // __CPM__VTK__THREADEDDEFORMATIONOBSERVER__H__ + +// eof - $RCSfile$ diff --git a/lib/cpm/VTK/ThreadedDeformationObserver.hxx b/lib/cpm/VTK/ThreadedDeformationObserver.hxx new file mode 100644 index 0000000..ba291b5 --- /dev/null +++ b/lib/cpm/VTK/ThreadedDeformationObserver.hxx @@ -0,0 +1,73 @@ +#ifndef __CPM__VTK__THREADEDDEFORMATIONOBSERVER__HXX__ +#define __CPM__VTK__THREADEDDEFORMATIONOBSERVER__HXX__ + +#include + +// ------------------------------------------------------------------------- +template< class F > +void cpm::VTK::ThreadedDeformationObserver< F >:: +Configure( vtkRenderWindow* w ) +{ + this->m_Window = w; + this->Modified( ); +} + +// ------------------------------------------------------------------------- +template< class F > +void cpm::VTK::ThreadedDeformationObserver< F >:: +Execute( itk::Object* caller, const itk::EventObject& evt ) +{ + this->Execute( const_cast< const itk::Object* >( caller ), evt ); +} + +// ------------------------------------------------------------------------- +template< class F > +void cpm::VTK::ThreadedDeformationObserver< F >:: +Execute( const itk::Object* caller, const itk::EventObject& evt ) +{ + typedef typename F::AllMeshUpdatedEvent _TAllMeshEvt; + + if( this->m_Window == NULL ) + return; + + const _TAllMeshEvt* mevt = dynamic_cast< const _TAllMeshEvt* >( &evt ); + if( mevt != NULL ) + { + this->m_MutexLock->Lock( ); + this->m_Window->MakeCurrent( ); + this->m_Window->Render( ); +#ifdef CPM_VTK_THREADEDDEFORMATION_ON_LINUX + glXMakeCurrent( + ( Display* )( this->m_Window->GetGenericDisplayId( ) ), None, NULL + ); +#else + wglMakeCurrent( + ( HDC__* )( this->m_Window->GetGenericDisplayId( ) ), NULL + ); +#endif + this->m_MutexLock->Unlock( ); + vtksys::SystemTools::Delay( 1 ); + + } // fi +} + +// ------------------------------------------------------------------------- +template< class F > +cpm::VTK::ThreadedDeformationObserver< F >:: +ThreadedDeformationObserver( ) + : Superclass( ), + m_Window( NULL ) +{ + this->m_MutexLock = vtkSmartPointer< vtkMutexLock >::New( ); +} + +// ------------------------------------------------------------------------- +template< class F > +cpm::VTK::ThreadedDeformationObserver< F >:: +~ThreadedDeformationObserver( ) +{ +} + +#endif // __CPM__VTK__THREADEDDEFORMATIONOBSERVER__HXX__ + +// eof - $RCSfile$ -- 2.45.0